Suppose you encrypt a list of names of Americans with a 512-bit secret-key algorithm. Currently no supercomputer can break it, but someday a supercomputer might exist that could iterate through all possible keys and find a key that decrypts the list to what sound like American-sounding names, and when you find that, you know you've probably got the right key.
Is there a term for secret-key encryption where many possible keys will decrypt the ciphertext to realistic-looking plaintext, so the encryption can never be brute-forced, because even if you find a key that decrypts to one of the realistic plaintexts, you won't know if you got the right one? (And thus, presumably, the encryption could be done with a shorter encryption key, since it can't be brute-forced anyway.)
A one-time pad would have this property, of course, but presumably so could other systems.
Say, instead of storing a list of American names, you come up with an index of every American first name and every American last name. Then when storing the firstname-lastname pairs, you store them as pairs of numbers. Then any key that decrypts the ciphertext to a list of numbers will thereby decrypt to a list of names. (Except, you'd need to do more work than that, because some names are more common than others, so the attacker could try to find a key which decrypts to a list where the names follow the expected distribution. But that's the idea.)
So does this have a name? Many-plaintext encryption or something?
:)See wikipedia/Ciphertext_indistinguishability. Imagine your cipher is being used to encrypt one of two possible messages "Yes" and "No!". The attacker sees the ciphertext going by. If, based only on the ciphertext, they can do better than a random guess which plaintext it came from (even a 50.01% chance of being right) then it's considered to be a broken cipher. This concept is summarized as "indistinguishable from random". – Mike Ounsworth Sep 11 '18 at 13:15encr("yes")andencr("no"), b) distinguish betweenencr("yes"), andencr("oe8"), c) distinguish betweenencr("yes"), and"4ge". I guess technically they are different, but they are different ways of expressing the same "ciphertext indistinguishability" property of a good cipher. Like, if your cipher passes one of them, then it'll pass the others; if it fails one then it'll fail the others. – Mike Ounsworth Sep 13 '18 at 20:49