IDEA in 448 bytes of 80x86 (original) (raw)
By Fauzan Mirza fauzanm@jumper.mcc.ac.uk
Download <idea3a.zip> (local copy)
Idea is a symmetric key block cypher. Key sizes are 128 bits, and IDEA is believed to be stronger than both DES (56 bit keys) and triple-DES sometimes denoted "3DES" (112 bit keys).
IDEA also has the distinction of being the conventional cypher used in PGP in conjuction with the RSA public key algorithm.
There is one other feature of tiny IDEA. Because of the way CFB works, it doesn't need a decryption key (technically, tiny IDEA doesn't have an IDEAinvertkey function). This means whichever option you choose (+ or -) it will be encrypting your file; it's just that you need to choose the other option to reverse the operation.
There are a couple of problems with the tiny IDEA program:
- The key you enter becomes the IDEA encryption key. Because some characters cannot be typed at the keyboard (NUL, etc) it reduces the keyspace required for a brute force attack. It is still far stronger than PKZip encryption/DES/Norton Diskreet etc.
- The length of the encrypted file is the same as the plaintext. This feature can be used for traffic analysis. PGP compresses the plaintext first for additional efficiency. If you encrypt a file and forget your password, don't ever expect to recover your file unless you work for the NSA and don't mind letting a couple of Crays try brute force on it for a couple of million years.
Technical details about the tiny IDEA program
- Files are processed in place (effectively wiping the original).
- It uses 8 round IDEA in ciphertext feedback mode.
- The initalisation vector (IV) is set to zeros.
- The feedback is done on 8 byte blocks.
- The IDEA key is the user key followed by '\r' and filled with zeros.
- It is optimised for size, not speed (but it runs damn fast anyway).
Comments, html bugs to me (Adam Back) atadam@cypherspace.org