home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / security / fe12.zip / FE.DOC < prev    next >
Text File  |  1994-02-04  |  13KB  |  325 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                     F A S T   E N C R Y P T
  8.  
  9.                          Version  1.2
  10.              Copyright (c) 1994 by Michael J. Harris
  11.  
  12.  
  13.  
  14.  
  15. OVERVIEW:
  16.  
  17.   Fast Encrypt is  a  state-of-the-art  Encryption/Decryption
  18.   program.   It is orders of  magnitude more secure than DES,
  19.   very fast, can use any 16 byte string as a key, and is very
  20.   simple to  use.  It  was written entirely  in 386 Assembler
  21.   (for speed)  and makes full use  of the 386's capabilities.
  22.   It won't run on XT/PC/AT (8088/8086/80286) systems.
  23.  
  24.  
  25. SHAREWARE NOTICE:
  26.  
  27.   Fast  Encrypt is SHAREWARE: This means  that if you want to
  28.   continue  to use product,  you are expected  to support the
  29.   author  for all his time spent developing/writing/debugging
  30.   the program.   To  register the  program, simply  print the
  31.   file ORDER.FRM and send  it  in,  or  just  write  out  the
  32.   information  by hand  if you  don't have  a printer.   Fast
  33.   Encrypt is not  "cripple-ware".    There  are  no  features
  34.   disabled  and the program will  not "self-destruct" after a
  35.   certain period  of time.  I ask  that you register it after
  36.   14  days of use.   This should be more  than enough time to
  37.   test  it and see  it's capabilities.   Registration is only
  38.   $15.     Site  licenses  are   also  available;  write  for
  39.   information.
  40.  
  41.  
  42.  
  43. HOW TO USE IT
  44.  
  45.  
  46.  The Key:
  47.  ~~~ ~~~
  48.  
  49.   When  you first run Fast Encrypt you will be asked for a 16
  50.   character  key.  You then must  enter 16 characters of your
  51.   choice.   You may use symbols or any other ASCII character,
  52.   remember that it  is CASE  SENSITIVE.   DO NOT  FORGET YOUR
  53.   KEY!   You will not be able  to unencrypt your file without
  54.   the  key.  There are no  "backdoors" or "magic-keys", so if
  55.   you to forget your  key  I  won't  be  able  to  help  you.
  56.  
  57.   Examples of valid keys are:
  58.  
  59.        BarbersAre Neat!
  60.        $#)'[p0p9ovm,d.a
  61.  
  62.   Anything  will work, but remember you must type EXACTLY the
  63.   same thing when you want to decrypt.  That means:
  64.  
  65.        BarbersAre Neat!   and
  66.        Barbersare neat!   are *NOT* the same
  67.  
  68.  
  69.  Tips for key selection:
  70.  ~~~~ ~~~ ~~~ ~~~~~~~~~
  71.  
  72.   Use  keys that are totally unrelated to anything (don't use
  73.   phone numbers, Social Securtity number, etc).  Include both
  74.   upper  AND lower  case letters.   You  should also  have at
  75.   least one symbol  in your  key (!@#$%^&*)_=+-/.,;'  and the
  76.   like.  Using weird characters increases the difficulty of a
  77.   brute  force   cracking  your  key   since  more  character
  78.   combinations have to be tried instead of just the alphabet.
  79.   
  80.  
  81.  The Substitution Boxes:
  82.  ~~~ ~~~~~~~~~~~~ ~~~~~
  83.  
  84.   After  you type in your key,  it will fill the substitution
  85.   boxes.   This may  take several  seconds (on  slower 386s).
  86.   Substitution is one of the  main  ways  that  Fast  Encrypt
  87.   encrypts   your  data  (see  below  for  a  more  technical
  88.   explanation).   After  it fills  the substitution  boxes it
  89.   will  ask you if you want to save the substitution boxes to
  90.   disk.  Saving the substitution boxes to disk will allow you
  91.   to  encrypt/decrypt as much as you  want with the same Key,
  92.   without  having to build the  substitution boxes every time
  93.   you  run the program (it can save LOTS of time).  HOWEVER -
  94.   anyone that  has access to the  substitution boxes saved to
  95.   your disk can  decrypt  your  data.    So  never  save  the
  96.   substitution box on  a computer  or diskette  that somebody
  97.   can  get access to.   Fast Encrypt  will automatically find
  98.   your saved  substitution boxes and  ask you if  you want to
  99.   use them.  If you answer no you will be prompted to enter a
  100.   new key.   The substitution boxes  are stored on  disk in a
  101.   file called: EXTERNAL.KEY
  102.  
  103.  
  104.  Encrypt/Decrypt:
  105.  ~~~~~~~~~~~~~~~
  106.  
  107.   After the  subsitution boxes have  been created/loaded from
  108.   disk, it will  ask you if  you want to  Encrypt or Decrypt.
  109.   Encrypt scrambles up your files; Decrypt unscrambles them.
  110.  
  111.  
  112.  The Files:
  113.  ~~~ ~~~~~
  114.  
  115.   You  must then enter two file names.   The first one is the
  116.   file that will  be processed  (encrypted or  decrypted) the
  117.   second file is where the output will be placed.
  118.  
  119.   Example: 
  120.  
  121.      Encrypt or Decrypt E/D: e
  122.      Enter the name of the file: WHATEVER.XXX
  123.  
  124.      Enter the name of the output file; it
  125.      MUST be different than the input file: WHATEVER.CPT
  126.   
  127.  
  128.   In  the above example, WHATEVER.XXX is being encrypted, and
  129.   the encrypted version of it is placed in WHATEVER.CPT.  Any
  130.   valid DOS names/extentions are valid.  Use of paths is also
  131.   OK,  so C:\DOS\WHATEVER.XXX is allowed  for either input or
  132.   output.
  133.  
  134.  Encryption/Decryption:
  135.  ~~~~~~~~~~~~~~~~~~~~~
  136.  
  137.   After all of the above is entered, the data is encrypted or
  138.   decrypted.   This goes very quickly  (except for really big
  139.   files,  of course).  You may find that your encrypted files
  140.   are slightly larger than the originals; they are never more
  141.   than 16  bytes larger, so  it shouldn't matter  much.  When
  142.   the  files are decrypted the files return to their original
  143.   size   (the  reason  why  is  discussed  in  the  technical
  144.   section at the end of the documentation).
  145.  
  146.  
  147.  
  148.  COMMAND LINE SUPPORT:
  149.  ~~~~~~~~~~~~~~~~~~~~
  150.  
  151.   If desired,  Fast Encrypt  can be  run completely  from the
  152.   command line.   The structure  of the command  line is very
  153.   simple.  The first thing entered on the command line is the
  154.   Encrypt/Decrypt selector.   This also  indicates whether to
  155.   process the files with  a key  on the  command line,  or to
  156.   load  EXTERNAL.KEY.  If a capital letter  ( 'E' or 'D' ) is
  157.   entered,  a key will be loaded from the command line.  If a
  158.   lower  case letter ( 'e' or  'd' ) is entered, EXTERNAL.KEY
  159.   will be used.
  160.  
  161.   The next information entered is the input file.  This is the
  162.   file that will be processed.  
  163.  
  164.   After that is  the output file.   This is  where the output
  165.   will be put.
  166.  
  167.   If command line key was selected, then the key is the final
  168.   thing entered on  the  command  line.    If  MORE  than  16
  169.   characters are entered, only the first 16 will be used.  If
  170.   LESS  than 16 characters are entered then the unused spaces
  171.   will be assigned a zero value.
  172.  
  173.  
  174.  EXAMPLES:
  175.  
  176.    fe E whatever.in whatever.out HereIsMyKeyOK:-)
  177.  
  178.   Encrypts WHATEVER.IN and places the out put in WHATEVER.OUT
  179.   Uses  HereIsMyKeyOK:-)  as the key.
  180.  
  181.    fe d myfile.in myfile.out
  182.  
  183.   Decrypt  MYFILE.IN  and  places  the  decrypted  copy  in
  184.   MYFILE.OUT,  uses the external file EXTERNAL.KEY as the key.
  185.  
  186.    fe D c:\dos\command.com c:\whatever\it.out ThisIsTheBestKey?
  187.  
  188.   Decrypts c:\dos\command.com and places the unencrypted file
  189.   in c:\whatever\it.out using ThisIsTheBestKey?  as the key.
  190.  
  191.  
  192.  
  193. CONTACTING THE AUTHOR:
  194.  
  195.  
  196.   If  you still have problems getting  the program to work or
  197.   have suggestions/comments, you may feel free to contact the
  198.   author  (even if you haven't registered yet).  There are no
  199.   known bugs  in Fast Encrypt,  but I'd be  very greatfull if
  200.   you would  let me  know if  you do  find one.   E-Mail/U.S.
  201.   Mail is the  perfered  method  of  contact,  however  phone
  202.   service is provided for  registered  users.    Be  sure  to
  203.   include ALL necessary details in any mail sent to me.  Fast
  204.   Encrypt  has been tested under DOS,  OS/2 2.0, OS/2 2.1 (in
  205.   fact, it was  developed mostly  under OS/2-DOS),  OS/2 HPFS
  206.   drives,  and on several 386 and 486 systems running various
  207.   DOS and OS/2 configurations.  No problems were encountered.
  208.  
  209.  
  210.       INTERNET:    mharris@clovis.felton.ca.us
  211.  
  212.       U.S. Mail:   Michael Harris
  213.                    125 Blueberry Dr.
  214.                    Scotts Valley, CA 95066
  215.  
  216.  
  217. TECHNICAL INFO:
  218.  
  219.   The Encryption Method: 
  220.   ~~~ ~~~~~~~~~~ ~~~~~~ 
  221.  
  222.   The method that  Fast  Encrypt  uses  to  encrypt  data  is
  223.   basically  a much improved version of  DES.  While there is
  224.   nothing  known to be  wrong with the  DES algorithm itself,
  225.   many (including the author) feel that the key size that DES
  226.   uses  is too small to adequetly protect data.  The key size
  227.   that Fast Encrypt  uses is 128  bits.  (16  characters at 8
  228.   bits each make up the 128  bits).    The  total  number  of
  229.   possible keys if some massive number with over 20 digits. I
  230.   haven't taken the time to calculate it exactly.
  231.  
  232.  
  233.   There  are two methods  that Fast Encrypt  uses to encrypt:
  234.   Substitution and  Permutation.  Substitution  does what the
  235.   name implies: it  takes a group  of bytes out  and places a
  236.   different group of bytes in its place.  You can think of it
  237.   like one of  those  puzzles  where  each  letter  has  been
  238.   switched with a different letter and you have to figure out
  239.   what it says.   This  is essentially  what Fast  Encrypt is
  240.   doing, but  on a much larger scale.   It is substituting 16
  241.   byte  blocks (2^128 (2 to the 128th power) possible values)
  242.   where in  the puzzle example  there are only  26 letters in
  243.   the  alphabet.  Fast Encrypt goes through this substitution
  244.   process  10 times, each time  with a different substitution
  245.   box.   The substitution boxes are functionally dependant on
  246.   the  key.  In  between each substitution  is a permutation.
  247.   The  permutations switch the order in which the bits occur.
  248.   The  combination of these makes  it virtually impossible to
  249.   break the encryption  even  with  multiple  arrays  of  the
  250.   fastest  supercomputers working for  literally hundreds (if
  251.   not thousands) of years.
  252.  
  253.  
  254.   Of course, there is no practical encryption program that is
  255.   100% secure  (Fast-Encrypt isn't  100% secure,  and doesn't
  256.   claim to  be.  No other methods  can truthfully claim to be
  257.   totally safe  either,  because  they  aren't).    The  only
  258.   encryption   method  that   can  be   mathmatically  proven
  259.   un-crackable  is the "one-time-tape" method.  However, this
  260.   method  requires that the key is  longer than what is being
  261.   encrypted  and the key must  contain totally random numbers
  262.   and the key  must never be  repeated.  For  example, if you
  263.   wanted to encrypt a 1 megabyte file, you would have to have
  264.   a key that was greater than 1 megabyte in size.  This makes
  265.   it totally useless for daily use.
  266.  
  267.  
  268.   Why files grow slightly when encrypted:
  269.   ~~~ ~~~~~ ~~~~ ~~~~~~~~ ~~~~ ~~~~~~~~~
  270.  
  271.   As  stated above, Fast Encrypt works on blocks of 16 bytes.
  272.   This  means that it is impossible for it to encrypt a group
  273.   of bytes  that is smaller than 16  bytes.  However, not all
  274.   files in this world will divide evenly into 16 byte blocks.
  275.   This means that Fast Encrypt  must  "fill  in"  the  needed
  276.   bytes  before encrypting the last block.  It also must save
  277.   a  byte that indicates how many bytes in the last block are
  278.   "original" ones  so that when  it decrypts the  file it can
  279.   return it to the correct size.
  280.  
  281.  
  282.   About the program:  
  283.   ~~~~~ ~~~ ~~~~~~~ 
  284.  
  285.   Fast Encrypt  was written entirely in  386 assembler.  This
  286.   was  done   because  most  good   encryption  programs  are
  287.   painfully  slow.   It makes  full use  of the  386's 32-bit
  288.   processing  abilities.  In  a lot of  areas the programming
  289.   was  easier and the program ran  much faster because of the
  290.   larger registers.  It  was  built  with  Borland(tm)  Turbo
  291.   Assembler Version 2.0 on  a  386-40  with  8  megs  of  RAM
  292.   running OS/2 version  2.1 (HPFS  on one  drive, FAT  on the
  293.   other one.  Fast Encrypt runs fine on both drives).
  294.  
  295.  
  296. DISCLAIMER:
  297.  
  298.   Use  of this software and/or  documentation for any purpose
  299.   whatsoever  constitutes your unqualified  acceptance of the
  300.   following statements.
  301.  
  302.   No  encryption program is totally secure.  The author makes
  303.   no  warranty that this  software will protect  your data in
  304.   any way whatsoever.
  305.  
  306.   The     author    makes     no    warranty     that    this
  307.   software/documentation will be  error  free.    The  author
  308.   disclaims   any  warranties,  either  express  or  implied,
  309.   including but  not  limited  to  any  implied  warranty  of
  310.   merchantability or fitness for any particular purpose.
  311.  
  312.   The  user  agrees  to  take  full  responsibility  for  any
  313.   selection  of and any  use whatsoever made  of the software
  314.   and documentation.
  315.  
  316.   In no event will the  author  be  liable  for  any  damages
  317.   whatsoever  (including without limitation  damages for loss
  318.   of   business  profits,  business   interruption,  loss  of
  319.   business information  or the like) arising  out of the use,
  320.   interruption in the  use  of,  or  inability  to  use  this
  321.   software, even if  the  author  has  been  advised  of  any
  322.   possibility or likelihood of such damages.
  323.  
  324. END OF DOCUMENTATION Feb. 4, 1994
  325.