Home | Trees | Indices | Help |
|
---|
|
Blowfish symmetric cipher
Blowfish is a symmetric block cipher designed by Bruce Schneier.
It has a fixed data block size of 8 bytes and its keys can vary in length from 32 to 448 bits (4 to 56 bytes).
Blowfish is deemed secure and it is fast. However, its keys should be chosen to be big enough to withstand a brute force attack (e.g. at least 16 bytes).
As an example, encryption can be done as follows:
>>> from Crypto.Cipher import Blowfish >>> from Crypto import Random >>> from struct import pack >>> >>> bs = Blowfish.block_size >>> key = b'An arbitrarily long key' >>> iv = Random.new().read(bs) >>> cipher = Blowfish.new(key, Blowfish.MODE_CBC, iv) >>> plaintext = b'docendo discimus ' >>> plen = bs - divmod(len(plaintext),bs)[1] >>> padding = [plen]*plen >>> padding = pack('b'*plen, *padding) >>> msg = iv + cipher.encrypt(plaintext + padding)
Classes | |
BlowfishCipher Blowfish cipher object |
Functions | |||
|
Variables | |
MODE_ECB = 1 Electronic Code Book (ECB). See blockalgo.MODE_ECB. |
|
MODE_CBC = 2 Cipher-Block Chaining (CBC). See blockalgo.MODE_CBC. |
|
MODE_CFB = 3 Cipher FeedBack (CFB). See blockalgo.MODE_CFB. |
|
MODE_PGP = 4 This mode should not be used. |
|
MODE_OFB = 5 Output FeedBack (OFB). See blockalgo.MODE_OFB. |
|
MODE_CTR = 6 CounTer Mode (CTR). See blockalgo.MODE_CTR. |
|
MODE_OPENPGP = 7 OpenPGP Mode. See blockalgo.MODE_OPENPGP. |
|
block_size = 8 Size of a data block (in bytes) |
|
key_size = xrange(4, 57) Size of a key (in bytes) |
Function Details |
|
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Thu May 24 09:02:36 2012 | http://epydoc.sourceforge.net |