home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1998 February / PCOnline_02_1998.iso / filesbbs / win95 / cryptext.exe / README.TXT < prev    next >
Text File  |  1997-04-27  |  8KB  |  153 lines

  1. Copyright (c) Nick Payne 1996-1997
  2.  
  3. Cryptext v2.32
  4.  
  5. **IMPORTANT** This version of Cryptext is _not_ compatible with any version
  6. of Cryptext prior to v2.30. If you have files you have encrypted with an earlier
  7. version of Cryptext, you must decrypt them before installing the new version.
  8. If you do not, you will not be able to decrypt these files without 
  9. un-installing the new version and re-installing the previous version.
  10.  
  11. Alternatively, you can use the console application DECRYPT.EXE, which is 
  12. included in CRYPTEXT.ZIP, to decrypt any file encrypted with Cryptext 
  13. version 2.0 or later. DECRYPT.EXE can only decrypt a single file at a time.
  14.  
  15. Cryptext is a freeware Windows 95 / NT4 shell extension that performs strong 
  16. file encryption. It uses a combination of SHA-1 and RC4 to encrypt files using 
  17. a 160-bit key. The current version of Cryptext can be found on my home page at 
  18. http://www.pcug.org.au/~njpayne.
  19.  
  20. Cryptext may be used in any way, for any purpose, at no cost. It may be 
  21. distributed by any means, provided that the original files as supplied by the 
  22. author remain intact and that no charge is made other than for reasonable 
  23. distribution costs. Note that Cryptext contains strong cryptographic routines 
  24. upon which some countries place distribution and/or use restrictions. Verify 
  25. that you are allowed to use or distribute Cryptext before doing so.
  26.  
  27. DISCLAIMER OF WARRANTY
  28. THIS SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" AND WITHOUT WARRANTIES 
  29. AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED 
  30. OR IMPLIED. BECAUSE OF THE VARIOUS HARDWARE AND SOFTWARE ENVIRONMENTS INTO 
  31. WHICH THIS PROGRAM MAY BE PUT, NO WARRANTY OF FITNESS FOR PARTICULAR PURPOSE 
  32. IS OFFERED. GOOD DATA PROCESSING PROCEDURE DICTATES THAT ANY PROGRAM BE 
  33. THOROUGHLY TESTED WITH NON-CRITICAL DATA BEFORE RELYING ON IT. THE USER MUST 
  34. ASSUME THE ENTIRE RISK OF USING THE PROGRAM.
  35.  
  36. Any product or brand names mentioned in this document are trademarks or 
  37. registered trademarks of their respective owners.
  38.  
  39. To install Cryptext
  40. ===================
  41. 1. If you have a previous version of Cryptext installed, decrypt any 
  42.    encrypted files.
  43.  
  44. 2. Unzip the contents of CRYPTEXT.ZIP into a temporary directory
  45.  
  46. 3. In Explorer, right-click on CRYPTEXT.INF and select Install from the popup 
  47.    context menu. 
  48.  
  49. To install this shell extension on Windows NT you must be logged in as 
  50. administrator or a user who is a member of the Administrators group. This is 
  51. because installing a shell extension on NT requires update rights to a part of 
  52. the registry to which a normal user cannot write.
  53.  
  54. To uninstall Cryptext
  55. =====================
  56. 1. From the Start menu, select Settings, then Control Panel, then Add/Remove 
  57.    Programs. 
  58.  
  59. 2. Select the "Cryptext (Remove only)" entry.
  60.  
  61. 3. Click on the Add/Remove button.
  62.  
  63. How does it work?
  64. =================
  65. 1. When you install Cryptext it adds "Encrypt" and "Decrypt" items to the 
  66.    context menu you get when right-clicking on files or directories in 
  67.    Explorer.
  68.  
  69. 2. When you encrypt a file, Cryptext takes your passphrase and uses the SHA-1 
  70.    one-way hash function to generate a 160-bit key. 
  71.  
  72. 3. For each file selected, it then concatenates the key from step 2 with a 
  73.    salt value generated from (a) the number of 100-nanosecond intervals since 
  74.    January 1, 1601, and (b) a 32-bit random number, and hashes this concatenation 
  75.    with SHA-1 to produce the key which is used for the encryption. This step is 
  76.    taken to ensure that no two files are encrypted with the same keystream.
  77.  
  78. 4. The salt values from step 3 are stored in plaintext with the encrypted file, 
  79.    so that the file can be successfully decrypted when the correct passphrase is 
  80.    supplied. There is no requirement that these values be kept secret, only that 
  81.    they be unique for each file.
  82.  
  83. 5. In order to verify your passphrase on second and subsequent executions, 
  84.    Cryptext takes the key generated in step 2, adds it to the end of your 
  85.    passphrase, and applies the SHA-1 function to the concatenation of the 
  86.    passphrase and key. The resultant hash is saved so that subsequent passphrases 
  87.    can be checked for validity by being put through the same two-step hash and 
  88.    compared with the stored value.
  89.  
  90. For decryption, Cryptext first reads the values saved in step 4 from the encrypted 
  91. file and concatenates them with your hashed passphrase to obtain the decryption 
  92. key.
  93.  
  94. Verification
  95. ============
  96. To verify that Cryptext actually does what I claim, I have provided the source code 
  97. and a Visual C++ make file to build a Win32 console application that uses SHA-1 and 
  98. RC4 to decrypt files which have been encrypted with Cryptext. To verify:
  99. 1. Check the source code
  100. 2. Use the make file to build DECRYPT.EXE
  101. 3. Encrypt a file with Cryptext
  102. 4. Run DECRYPT.EXE in a DOS window to decrypt the file. You need to supply two command
  103.    line parameters. The first is the passphrase; the second is the filename. e.g.
  104.       DECRYPT " my pass phrase" c:\temp\test.txt.$#!
  105.    Don't forget that a file encrypted with Cryptext will have the added extension "$#!"
  106.    which is not shown in Explorer.
  107.  
  108. Notes
  109. =====
  110. 1. If you are running on Windows NT 4 then you have the option to retain the 
  111.    encryption password in memory for the duration of your NT session. If you 
  112.    are running on Windows 95 you must enter the password for each encryption 
  113.    or decryption.
  114.  
  115. 2. After the initial execution of Cryptext, you cannot change your encryption 
  116.    password unless you know the existing password. If you forget the password, 
  117.    you have to uninstall and reinstall Cryptext. If you have files you have 
  118.    encrypted and you have forgotten the password then those files are not 
  119.    recoverable. 
  120.  
  121. 3. Cryptext assumes that the file system on which it is running supports long 
  122.    filenames. When it encrypts a file it adds the extension ".$#!" to the 
  123.    filename. This name change will fail if the existing filename already 
  124.    exceeds 252 characters or if the file system does not support long 
  125.    filenames (such as a NetWare server volume which does not have long 
  126.    namespace support loaded). The resulting file is still encrypted but it 
  127.    does not have the extension which Cryptext recognises, and when you decrypt 
  128.    it you will be queried whether the file is actually encrypted.
  129.  
  130. 4. Password selection. Cryptext allows a password to be up to 255 characters 
  131.    long. As a file encryption password is generally in use for much longer 
  132.    than a login password, you should use more care selecting it. For more 
  133.    information on good password selection, use one of the www search engines 
  134.    to search for web documents containing "password", "selection", and "good".
  135.  
  136. 5. My thanks to Gary Mulhern for showing how to add the registry entries to 
  137.    get a meaningful icon and file type to display for encrypted files in 
  138.    Explorer.
  139.  
  140. If you are interested in finding out more about encryption and cryptography:
  141. a) RSA's web site at www.rsa.com has a good cryptography FAQ available both 
  142.    online and as a downloadable PDF file
  143. b) There is a lot of cryptographic source code at the ftp site
  144.    idea.sec.dsi.unimi.it/pub/security/crypt/code
  145. c) Bruce Schneier's book "Applied Cryptography" has a comprehensive coverage 
  146.    of both protocols and algorithms
  147. d) You can find an encryption library which provides a consistent interface
  148.    to many encryption algorithms, as both source code and 16- and 32-bit DLLs,
  149.    at http://www.cs.auckland.ac.nz/~pgut001/cryptlib.html.
  150.  
  151. Nick Payne
  152. njpayne@pcug.org.au
  153.