| 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 = 1Electronic Code Book (ECB). See blockalgo.MODE_ECB. |
|
MODE_CBC = 2Cipher-Block Chaining (CBC). See blockalgo.MODE_CBC. |
|
MODE_CFB = 3Cipher FeedBack (CFB). See blockalgo.MODE_CFB. |
|
MODE_PGP = 4This mode should not be used. |
|
MODE_OFB = 5Output FeedBack (OFB). See blockalgo.MODE_OFB. |
|
MODE_CTR = 6CounTer Mode (CTR). See blockalgo.MODE_CTR. |
|
MODE_OPENPGP = 7OpenPGP Mode. See blockalgo.MODE_OPENPGP. |
|
block_size = 8Size 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 |