Home | Trees | Indices | Help |
|
---|
|
Triple DES symmetric cipher
Triple DES (or TDES or TDEA or 3DES) is a symmetric block cipher standardized by NIST. It has a fixed data block size of 8 bytes. Its keys are 128 (Option 1) or 192 bits (Option 2) long. However, 1 out of 8 bits is used for redundancy and do not contribute to security. The effective key length is respectively 112 or 168 bits.
TDES consists of the concatenation of 3 simple DES ciphers.
The plaintext is first DES encrypted with K1, then decrypted with K2, and finally encrypted again with K3. The ciphertext is decrypted in the reverse manner.
The 192 bit key is a bundle of three 64 bit independent subkeys: K1, K2, and K3.
The 128 bit key is split into K1 and K2, whereas K1=K3.
It is important that all subkeys are different, otherwise TDES would degrade to single DES.
TDES is cryptographically secure, even though it is neither as secure nor as fast as AES.
As an example, encryption can be done as follows:
>>> from Crypto.Cipher import DES3 >>> from Crypto import Random >>> from Crypto.Util import Counter >>> >>> key = b'Sixteen byte key' >>> nonce = Random.new().read(DES3.block_size/2) >>> ctr = Counter.new(DES3.block_size*8/2, prefix=nonce) >>> cipher = DES3.new(key, DES3.MODE_CTR, counter=ctr) >>> plaintext = b'We are no longer the knights who say ni!' >>> msg = nonce + cipher.encrypt(plaintext)
Classes | |
DES3Cipher TDES cipher object |
Functions | |||
|
Variables | |
MODE_ECB = 1 Electronic Code Book (ECB). |
|
MODE_CBC = 2 Cipher-Block Chaining (CBC). |
|
MODE_CFB = 3 Cipher FeedBack (CFB). |
|
MODE_PGP = 4 This mode should not be used. |
|
MODE_OFB = 5 Output FeedBack (OFB). |
|
MODE_CTR = 6 CounTer Mode (CTR). |
|
MODE_OPENPGP = 7 OpenPGP Mode. |
|
MODE_EAX = 9 EAX Mode. |
|
block_size = 8 Size of a data block (in bytes) |
|
key_size =
Size of a key (in bytes) |
Function Details |
Attention: it is important that all 8 byte subkeys are different, otherwise TDES would degrade to single DES. |
Variables Details |
MODE_ECBElectronic Code Book (ECB). See blockalgo.MODE_ECB.
|
MODE_CBCCipher-Block Chaining (CBC). See blockalgo.MODE_CBC.
|
MODE_CFBCipher FeedBack (CFB). See blockalgo.MODE_CFB.
|
MODE_OFBOutput FeedBack (OFB). See blockalgo.MODE_OFB.
|
MODE_CTRCounTer Mode (CTR). See blockalgo.MODE_CTR.
|
MODE_OPENPGPOpenPGP Mode. See blockalgo.MODE_OPENPGP.
|
MODE_EAXEAX Mode. See blockalgo.MODE_EAX.
|
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Mon Apr 15 04:33:26 2019 | http://epydoc.sourceforge.net |