Given:
$m = \{0,1\}^{n}$; a plaintext message of length $n$ encoded in binary
$k = randomshuffle([0, 1, ..., 2n-1])$; A secret key consisting out of unique numbers between 0 and $2n-1$ in a true random order. The key is only used once and preshared between sender and receiver.
- We create $t = m||NOT(m)$; a temporary variable with the original message plus the inverse of the original message. (The intention here is to make the number of 1's and 0's equal)
We transpose $t$ using key $k$ as indices to create the ciphertext $c$.
For example, the key
5-4-3-2-1-0would reverse the order of the bits of $t$.
Full example:
- Given:
m = 010andk = 5-4-1-3-0-2 - We append the inverse of 010 (which is 101):
t = 010101 - We tranpose
tusingk. The resulting ciphertext:c = 101100
To decrypt the ciphertext you would simply reverse the transposition using your key and drop the second half of the message.
Is this scheme unbreakable?