I get caught up sometimes in the romance of the great codebreakers, guys like Turing -- the ur-nerds won big. But the whole project also puzzles me. Let's take a simple scenario: there's an operation that A wants to carry out; B wants to thwart that operation. A sends a coded message. B intercepts that message and subjects it to the best codebreaking technology. Finally, a text appears: "Launch the invasion at midnight on Dec 8; land in San Francisco." Everyone's elated and begins work to shore up San Francisco. But why should they be elated? Their elation rests on the assumption that any code will encode one and only one appropriate message. If the codebreakers had found the text, "Apples are sour," they would have kept looking, because "Apples are sour" is not the sort of thing conspirators want to communicate to each other. But what keeps a code from encoding simultaneously an indefinite number of appropriate messages? If a code could do that, codebreakers would never know when their job was finished, and even the right message would be pretty much useless for planning.
One might think: well, the recipient must surely have a way of decoding the message that gets just the right one out of the welter of appropriate ones. So the codebreaker can search for that information as a way of selecting among appropriate messages decoded. But such a key might not even be necessary. Suppose the sender simply relies on the receiver's judgment -- giving him or her the key to all the appropriate messages. Sometimes that will result in very successful communication, because the sender knows how the receiver will sort out the messages. And sometimes, it may be enough for some of the appropriate messages to be discarded -- any one of the rest of the interpretations will result in successful coordination. In that case, the message can be genuinely indeterminate and still be successful.
One might think: the codebreakers could make at least this much progress: they could produce a list of messages on which the right message, the real plan, was very likely to be found. But it is not at all clear that this would help their cause in the slightest. My intuition is that, in many circumstances, the knowledge that something dangerous is going to happen is very much more useful than the knowledge that one of the 15 items on a list is going to happen. Breaking the code in this complex way may put the codebreakng party in a much worse state than it would have been in, had the code remained unbroken.
Perhaps there's something about encoding that limits the number of messages a given code-artifact can carry. But that's a matter that needs to be looked into.