IDEA in 448 bytes of 80x86
IDEA in 448 bytes of 80x86
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) at
<adam@cypherspace.org>