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 <filename.ext> <e|d[w]> <key>"
        <e|d[w]> 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 <kwantam@mailhost.net>.

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
<kwantam@mailhost.net>
01/19/96