Super IDEA v1.0 Freebee encypherment for the paranoid cheapos (that's me!) and other cool people. IDEA stands for International Data Encryption Algorithm It was invented by Xuejia Lai and James Massey in Switzerland It's a private key symmetric block algorithm, and is thought to be very secure, although it is still too new to have undergone the scrutiny that other algorithms, notably DES, have endured. This manifestation of the algorithm is adapted pretty much wholesale from Dr. Dobbs Journal #208 December 1993 OVERVIEW OF IDEA The algorithm operates on 64-bit data blocks, divided into 4 16-bit subblocks. For DOS files, it packs two characters into a 16-bit word and treats 4 such words as the subblocks. Since not all files have the right length for this, a header is used to tell IDEA's decrypter how long the file will be. Thus encrypted files are a few bytes longer than they started. They are of course put back to normal when decrypted. SIMPLIFIED EXPLANATION OF PROGRAM OPERATION The key is a 128-bits. This program uses an algorithym to generate the key. It takes the key the user inputs and creates the following: (all letters herein are representations, one letter for each byte. This is not to say that the actual XOR of a and h is i) ____________________________________________________ | usrkey | shftkey | modkey | modshftkey | | abcdefgh | habcdefg | (see below) | (see below)<-+- final key +----------+----------+-------------+--------------+ MODKEY MAKEUP: MODSHFTKEY MAKEUP: a ^ h = i The eight bits in each character b ^ a = j Hence, modkey are shifted such that, if the bitcode c ^ b = k is equal to was 01011011 (random example--not an actual piece of code) d ^ c = l ijklmnop it would be shifted to 10101101. This yields e ^ d = m qrstuvwx (an identifier for the new pw, not what it actually f ^ e = n would be). g ^ f = o h ^ g = p usrkey : the key the user put in. Written as abcdefgh because all are 8 chars. if the user's key is shorter than eight chars, zeros are used to pad it. this does not make the user need to change the key--it is automatically padded. if a key is too long, it is truncated in the same way. You can encrypt a file with abcdefghijk, but only abcdefgh will be used. You can even enter abcdefghijk when decrypting it, because it is also truncated then. shftkey: the key after it is shifted to the right modkey : found by XORing the shftkey and the usrkey together. modshftkey : the modkey is shifted again to the right. OTHER INFORMATION I have also included the source code in the file called source.zip. Please feel free to make your own modifications of this and distribute it if you desire. Remember--trying to keey the algorithm you use secret is worse for you in the long run--the more people that see it, the faster it will be analyzed and errors that you overlooked will be found. USAGE usage is "idea " stands for either an "e" or a "d", instructing whether to e-ncypher or d-ecypher, plus an optional "w", which tells IDEA to overwrite the original file with the encyphered data. Leaving "w" off creates a new file called "filename.enc" or "filename.dec" (if decyphering) where "filename" is the same as the input file. Overwriting is more secure--it destroys old data--but may not be what you want. key is a word up to 8 characters BUT NOT MORE!!! extra characters will be truncated off of the key, and a warning will be displayed. Note that the truncated key will be used, and you can enter the long key when the time comes to decrypt the file. It will just be truncated again. Its not my code so don't send me money. This is freeware. (The IDEA algorithm is in fact patented, but it can be freely used and distributed for non-commercial use. The patent is held by Ascom-Tech AG in switzerland, tel: +41 65 242-885) If you need to contact me, I can be found at . Please note that use of this program is done with no insurance from me that it will work or anything----use it at your own risk. I've bug checked it and everything and it looks good, and the algorithm is straight out of Dr Dobbs Journal (#208), but I'm not gonna be responsible for failure. If you have a real and serious need for cryptography, please at the very least look over the source code---you'd be better advised to get a professional program. While we're on this topic, please do not forget your key!!! a brute-force attack on this algorithm "requires 2^128 encryptions to recover the key.....a billion chips testing a billion keys a second would take 10^13 years (the universe has only existed for 1/100th of that time) to break IDEA," according to Dr. Dobbs Journal #208 p.54. For even greater security compress the file(s) you are encrypting with PKZIP (NO PASSWORD) and then use this program to encrypt the zip file. This limits a cryptanalyst's ability to look for repetition in the cyphertext. Thanks for choosing Super IDEA v1.0 Regards, KwAnTAM_PoZeEtroN 01/19/96