There is an apparently provably secure cipher that was proposed by Diffie, but enhanced by R.A. Rueppel. The scheme, which was mentioned in Applied Cryptography, works like this:
- Measure the length of the plain-text, $n$.
- Multiply it by $128$.
- Generate this much ($128·n$ bytes of) real random data and split it out into 128
byte-arrays of length each equal to the plain-text. This can be thought as a two
dimensional array:
- One of the indices gives the sequence number ($0\dots 127$).
- One of the indices gives the position in the sequence, $0 \dots n-1$.
- Use a 128-bit key to choose which of these streams to XOR together. Each bit of the key corresponds to "yes/no" on whether to use particular sequence. All the selected sequences are XORed together to make a single keystream, $K$.
- Compute $P \oplus K$ to give the cipher-text $C$.
- Serialize the two dimensional array and append it to the cipher text.
- Send the whole package to Bob, who can then decrypt by de-serializing the matrix and selecting the same rows.
Apparently, this scheme is completely secure. The attacker has to examine every possible combination of sequences ($2^{127}$ on average) in order to break the encryption scheme.
What is the proof of this? I can't find the paper that discusses this anywhere.