home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. CD ROM (Annual Premium Edition)
/
premium.zip
/
premium
/
DOSUTIL1
/
FSTCRYP1.ZIP
/
FE.DOC
next >
Wrap
Text File
|
1993-08-31
|
11KB
|
276 lines
F A S T E N C R Y P T
Version 1.0
Copyright (c) 1993 by Michael J. Harris
OVERVIEW:
Fast Encrypt is a state-of-the-art Encryption/Decryption
program. It is significantly more secure than DES, very fast,
can use any 16 byte string as a key, and is very simple to use.
It was written entirely in 386 Assembler (for speed) and makes
full use of the 386's capabilities. It won't run on XT/PC/AT
(8088/8086/80286) systems.
SHAREWARE NOTICE:
Fast Encrypt is SHAREWARE: This means that if you want to
continue to use product, you are expected to support the author
for all his time spent developing/writing/debugging the program.
To register the program, simply print the file ORDER.FRM and
send it in, or just write out the information by hand if you
don't have a printer. Fast Encrypt is not "cripple-ware".
There are no features disabled and the program will not
"self-destruct" after a certain period of time. I ask that you
register it after 14 days of use. This should be more than
enough time to test it and see it's capabilities. Registration
is only $15. Site licenses are also available; write for
information.
Pass it around!
~~~~ ~~ ~~~~~~~
Because of the way Shareware works, you are encouraged to give
copies of this program to all of your friends, for them to try
out. You may distribute this program in any form, however no
fee may be charged (except for minimal disk copying fees). You
also may upload this program to any BBS system that you call.
HOW TO USE IT
The Key:
~~~ ~~~
When you first run Fast Encrypt you will be asked for a 16
character key. You then must enter 16 characters of your
choice. You may use symbols or any other ASCII character,
remember that it is CASE SENSITIVE. DO NOT FORGET YOUR KEY!
You will not be able to unencrypt your file without the key.
There are no "backdoors" or "magic-keys", so if you to forget
your key I won't be able to help you.
Examples of valid keys are:
BarbersAre Neat!
$#)'[p0p9ovm,d.a
Anything will work, but remember you must type EXACTLY the same
thing when you want to decrypt. That means:
BarbersAre Neat! and
Barbersare neat! are *NOT* the same
Tips for key selection:
~~~~ ~~~ ~~~ ~~~~~~~~~
Use keys that are totally unrelated to anything (don't use phone
numbers, Social Securtity number, etc). Include both upper AND
lower case letters. You should also have at least one symbol in
your key (!@#$%^&*)_=+-/.,;' and the like. Using weird
characters increases the difficulty of a brute force cracking
your key since more character combinations have to be tried
instead of just the alphabet.
The Substitution Boxes:
~~~ ~~~~~~~~~~~~ ~~~~~
After you type in your key, it will fill the substitution boxes.
This may take several seconds (on slower 386s). This is the
main way that Fast Encrypt encrypts your data (see below for a
more technical explanation). After it fills the substitution
boxes it will ask you if you want to save the substitution boxes
to disk. Saving the substitution boxes to disk will allow you
to encrypt/decrypt as much as you want with the same Key,
without having to build the substitution boxes every time you
run the program (it can save LOTS of time). HOWEVER - anyone
that has access to the substitution boxes saved to your disk can
decrypt your data. So never save the substitution box on a
computer or diskette that somebody can get access to. Fast
Encrypt will automatically find your saved substitution boxes
and ask you if you want to use them. If you answer no you will
be prompted to enter a new key. The substitution boxes are
stored on disk in a file called: EXTERNAL.KEY
Encrypt/Decrypt:
~~~~~~~~~~~~~~~
After the subsitution boxes have been created/loaded from disk,
it will ask you if you want to Encrypt or Decrypt. Encrypt
scrambles up your files; Decrypt unscrambles them.
The Files:
~~~ ~~~~~
You must then enter two file names. The first one is the file
that will be processed (encrypted or decrypted) the second file
is where the output will be placed.
Example:
Encrypt or Decrypt E/D: e
Enter the name of the file: WHATEVER.XXX
Enter the name of the output file; it
MUST be different than the input file: WHATEVER.CPT
In the above example, WHATEVER.XXX is being encrypted, and the
encrypted version of it is placed in WHATEVER.CPT. Any valid
DOS names/extentions are valid. Use of paths is also OK, so
C:\DOS\WHATEVER.XXX is allowed for either input or output.
Encryption/Decryption:
~~~~~~~~~~~~~~~~~~~~~
After all of the above is entered, the data is encrypted or
decrypted. This goes very quickly (except for really big files,
of course). You may find that your encrypted files are slightly
larger than the originals; they are never more than 16 bytes
larger, so it shouldn't matter much. When the files are
decrypted the files return to their original size (the reason
why is discussed in the technical section at the end of the
documentation).
CONTACTING THE AUTHOR:
If you still have problems getting the program to work or have
suggestions/comments, you may feel free to contact the author
(even if you haven't registered yet). There are no known bugs
in Fast Encrypt, but I'd be very greatfull if you would let me
know if you do find one. E-Mail/U.S. Mail is the perfered
method of contact, and phone service will be provided for
registered users. Be sure to include ALL necessary details in
any mail sent to me. Fast Encrypt has been tested under DOS,
OS/2 2.0, OS/2 2.1 (in fact, it was developed mostly under
OS/2-DOS), OS/2 HPFS drives, and on several 386 and 486 systems
running various DOS and OS/2 configurations. No problems were
encountered.
INTERNET: mharris@clovis.felton.ca.us
U.S. Mail: Michael Harris
125 Blueberry Dr.
Scotts Valley, CA 95066
TECHNICAL INFO:
The Encryption Method:
~~~ ~~~~~~~~~~ ~~~~~~
The method that Fast Encrypt uses to encrypt data is basically a
much improved version of DES. While there is nothing known to
be wrong with the DES algorithm itself, many (including the
author) feel that the key size that DES uses (56 bits) is too
small to adequetly protect data. The key size that Fast Encrypt
uses is 128 bits. (16 characters at 8 bits each make up the 128
bits). The total number of possible keys if some massive number
with over 40 digits.
There are two methods that Fast Encrypt uses to encrypt:
Substitution and Permutation. Substitution does what the name
implies: it takes a group of bytes out and places a different
group of bytes in its place. You can think of it like one of
those puzzles where each letter has been switched with a
different letter and you have to figure out what it says. This
is essentially what Fast Encrypt is doing, but on a much larger
scale. It is substituting 16 byte blocks (2^128 (2 to the 128th
power) possible values) where in the puzzle example there are
only 26 letters in the alphabet. Fast Encrypt goes through this
substitution process 10 times, each time with a different
substitution box. The substitution boxes are functionally
dependant on the key. In between each substitution is a
permutation. The permutations switch the order in which the
bits occur. The combination of these makes it virtually
impossible to break the encryption even with multiple array
supercomputers working for literally hundreds (if not thousands)
of years.
Of course, there is no practical encryption program that is 100%
secure (Fast-Encrypt isn't 100% secure, and doesn't claim to be.
No other methods can truthfully claim to be totally safe either,
because they aren't). The only encryption method that can be
mathmatically proven un-crackable is the "one-time-tape" method.
However, this method requires that the key is longer than what
is being encrypted and the key must contain totally random
numbers and the key must never be repeated. For example, if you
wanted to encrypt a 1 megabyte file, you would have to have a
key that was greater than 1 megabyte in size. This makes it
totally useless for daily use.
Why files grow slightly when encrypted:
~~~ ~~~~~ ~~~~ ~~~~~~~~ ~~~~ ~~~~~~~~~
As stated above, Fast Encrypt works on blocks of 16 bytes. This
means that it is impossible for it to encrypt a group of bytes
that is smaller than 16 bytes. However, not all files in this
world will divide evenly into 16 byte blocks. This means that
Fast Encrypt must "fill in" the needed bytes before encrypting
the last block. It also must save a byte that indicates how
many bytes in the last block are "original" ones so that when it
decrypts the file it can return it to the correct size.
About the program:
~~~~~ ~~~ ~~~~~~~
Fast Encrypt was written entirely in 386 assembler. This was
done because most good encryption programs are painfully slow.
It makes full use of the 386's 32-bit processing abilities. In
a lot of areas the programming was easier and the program ran
much faster because of the larger registers. It was built with
Borland(tm) Turbo Assembler Version 2.0 on a 386-40 with 8 megs
of RAM running OS/2 version 2.1 (HPFS on one drive, FAT on the
other one. Fast Encrypt ran fine on both drives).
DISCLAIMER:
Use of this software and/or documentation for any purpose
whatsoever constitutes your unqualified acceptance of the
following statements.
No encryption program is totally secure. The author makes no
warranty that this software will protect your data in any way
whatsoever.
The author makes no warranty that this software/documentation
will be error free. The author disclaims any warranties, either
express or implied, including but not limited to any implied
warranty of merchantability or fitness for any particular
purpose.
The user agrees to take full responsibility for any selection of
and any use whatsoever made of the software and documentation.
In no event will the author be liable for any damages whatsoever
(including without limitation damages for loss of business
profits, business interruption, loss of business information or
the like) arising out of the use, interruption in the use of, or
inability to use this software, even if the author has been
advised of any possibility or likelihood of such damages.
END OF DOCUMENTATION 8-31-93