Paulo Barreto (pbarreto@nw.com.br)
Sun, 19 Jul 1998 17:03:35 -0300
At 12:35 1998.07.19 -0400, Doug Elznic wrote:
>What is the complementation property?
Let x denote some data (a plaintext, a ciphertext, or a key, for our
purposes), and let x* denote the result of flipping every bit in x, i.e. if
any given bit of x is 0 (resp. 1), the corresponding bit of x* is 1 (resp. 0).
Let E(x, k) denote the encryption of plaitext x under key k. The DES
complementation property states that E(x*, k*) = (E(x, k))*. In simpler
terms, encrypt the complement of a plaintext with the complement of a key
and you get the complement of the ciphertext. N.B. this is NOT a general
property of block ciphers, but it's true for DES.
Hence, given the presented solution:
key = 0E329232EA6D0D73
plaintext = 8787878787878787
ciphertext = 0000000000000000
a second solution is obtained by taking the complement of all data (and
correcting the key parity when needed), i.e.
key = F1CD6DCD1592F28C
plaintext = 7878787878787878
ciphertext = FFFFFFFFFFFFFFFF
Disclaimer: I didn't check these values in an actual implementation,
especially the key parity.
Regards,
Paulo.
The following archive was created by hippie-mail 7.98617-22 on Fri Aug 21 1998 - 17:20:38 ADT