How to determine which tweak was used Imagine the following situation:


you have a tweakable block cipher
you have a plain text block
you have a cipher text block
you have the key which was used to encrypt the plain text block


I have these questions to it:


Is there a way to determine the tweak which was used? (a method which is significantly faster than brute forcing)
Is a tweakable cipher considered more secure if there is no fast method to do that?
Is any tweakable block cipher explicitly protected against that?


My concrete case is the following: I wrote an implementation of threefish in python. To check if I did sth wrong, I looked for test vectors in the internet. Every vector worked, except one. The difference between this vector and a previous example on the same page was only the tweak (to show that changing the tweak leads to another cipher block). So I wanted to know if there might be a fast way to calculate the tweak they actually used. Though this is very specific to threefish, I was curious if this might be a general design goal of tweakable ciphers.
This is outside the goal of tweakable block ciphers.  For a counterexample, the following is an example of a secure (if inefficient) tweakable block cipher in the paper introducing tweakable block ciphers as Theorem 1 (p. 35): $$\widetilde E_K(T, M) = E_K(T \oplus E_K(M)),$$ where $E_K(M)$ is a block cipher.  If you know $K$, $M$, and $C = \widetilde E_K(T, M)$, then it is trivial to compute $$T = E_K(M) \oplus {E_K}^{-1}(C).$$

The intentional nonsecrecy of the tweak is made clear in the introduction to the paper: all the uncertainty from the attacker's perspective is contained in the key; the tweak is just an index into a family of independent secret permutations.

It's unlikely that any tweakable block cipher is designed to keep the tweak secret.  You may as well just use a longer key if you're going to choose it unpredictably.  But maybe if you gave more details about your intended application, it might become clearer what you need?