Module Crypt_3des


module Crypt_3des: sig .. end
DES, created by the NSA, is a 64 bit block cipher. Triple-DES is a variant that applies DES three times to the same input block. More precisely, first the block is encrypted with key k1, then decrypted with key k2 and then encrypted again with key k3. It is best to choose k1,k2,k3 distinct. Sometimes k1=k3. This implementation accepts strings with 8, 16, or 24 bytes as keys, taking the first 8 bytes as k1, the second as k2, and the third as k3. Please note that some bits are used as parity bits, such that the effective key length is 56, resp. 112, resp. 168 bits.

Triple-DES is 3 times slower than DES.


module Cryptsystem: Cryptsystem_64.T 
module Cryptmodes: Cryptmodes_64.T  with type key = Cryptsystem.key

Key management functions:

Although only 56 bits count a DES key is written with 64 bits. The extra bits are used for parity checking.

val check_parity : string -> unit
Checks that the parity of the key given as string is ok. The string must have a length of 8 or 16 or 24 characters.
val set_parity : string -> string
Sets the parity bits in the given key and returns a new string.

- DES has been heavily studied and seems to have a rather good design