home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.chalmers.se
/
ftp.chalmers.se.tar
/
ftp.chalmers.se
/
README-2.2
< prev
Wrap
Text File
|
1993-10-12
|
6KB
|
177 lines
DES SOFTWARE PACKAGE
Version 2.2
_
Copyright (c) 1990,1991,1992,1993 Stig Ostholm.
All Rights Reserved
The author takes no responsibility of actions caused by the use of this
software package and does not guarantee the correctness of the functions.
This software package may be freely distributed for non-commercial purpose
as long as the copyright notice is kept. Any changes made should be
accompanied by a comment indicating who made the change, when it was made
and what was changed.
This software package, or any parts of it, may not be used or in any way
re-distributed for commercial purpose without the authors permission.
The author keeps the right to decide between of what is commercial and
what is non-commercial purpose.
Restrictions due to national laws governing the use, import or export of
cryptographic software is the responsibility of the software user/importer/
exporter to follow.
DES SOFTWARE PACKAGE
Version 2.2
This software package is an implementation of the Data Encryption Standard
(DES) as described in "Federal Information Processing Standards Publication
46", 1977 January 15. The triple DES encryption described in "ANSI X9.17-1985"
has also been added.
The implementation contains a general purpose DES library and user programs
for file encryption/decryption. The library is compatible with the DES
library from MIT (Massachusetts Institute of Technology) at function call
level, as described in the manual DES(3). There are also functions
available in this implementation that are not a part of the MIT library.
The header file "des.h" contains ANSI C function prototypes for all library
functions.
This library has only been compared against the MIT library through the
manual page due to export restrictions of cryptographic software outside the
US.
Changes from the MIT library:
* The base encryption algorithm (default: `des_dea') may be
changed by setting `des_core'.
* The method of converting a text-string to a DES key may be changed
by setting `des_strkey'.
* Encryption methods using an initialization vector may return
a modified vector from the last iteration, making it possible
to chain calls to an encryption/decryption function into an
unbroken sequence.
* Additional functions not in the MIT library are:
des_dea - Identical to des_ecb_encrypt.
des_dea3 - Triple DES encryption.
des_dea3b - Triple DES encryption
(des_dea3b != des_dea3).
des_core - Pointer to `des_dea' (or `des_dea3').
des_sched - Same as des_key_sched without any parity
or weak-key test.
des_ecb2_encrypt - The Electronic Code Book mode of
encryption/decryption on a user
specified number of bytes.
des_cfb8_encrypt - The 8-bit Cipher Feed-Back mode of
encryption/decryption on a user
specified number of bytes.
des_ofb8_encrypt - The 8-bit Output Feed-Back mode of
encryption/decryption on a user
specified number of bytes.
des_is_weak_key - Tests if the key is weak.
des_is_semiweak_key - Tests if the key is semi-weak.
des_no_key_schedule - Returns the number of different keys
in a key schedule.
des_strkey - Pointer to the actual function used
by `des_string_to_key'.
des_random_cblock - Generates a random value in a 64-bit
block.
des_hex_to_cblock - returns the value of a string with a
64-bit hexadecimal number in a 64-bit
block.
des_print_cblock - Prints a 64-bits block as a 64-bit
hexadecimal value on stdout.
des_read_cblock - Similar to des_read_password but
accepts only 64-bit hexadecimal
numbers.
des_read_hexkey - Similar to des_read_cblock but
parity adjusts the value.
encrypt - Encryption/decryption function
described in X/Open Portability
Guide (December 1988).
setkey - Key handling function described
in X/Open Portability Guide.
* The `quad_cksum' routine is not a part for this release but
are separately available and easy to install in the package.
See the file QUAD_CKSUM for more information.
User programs:
* descrypt - General purpose file encryption/decryption
program.
* deskey - Show the actual DES keys used or returns random
keys.
Utility programs:
These programs are useful when modifying or optimizing the code.
* desktest - A simple test of the DES key algorithm.
* desbench - Simple benchmark program for the base DES,
triple DES and key schedule generation.
* desvrfy - Simple verification program for the base DES
and triple DES algorithms.
Building the package:
The building process is fairly straight-forward. There are,
however, some special things to note:
* Makefiles - Some makefile configurations (such as CC) can
be set in the top-level makefile are then
propagated to the subdirectory makfiles when
building. Note: typing `make' in a subdirectory
does NOT include changes made to the top makefile.
* make depend - Has not been tested.
* util/ranllib - This is a shell-script wich does nothing.
This script is run if no ranlib program can
be found in the path since the `util/' directory
is appeded to the path in the top-level makefile.
The idea is to prevent makefiles from failing
on systems wihtout ranlibmm (such as SunOS 5.x).
* lib/dea - Some files in this library are compiled by first
doing test-compiles of different version and
performing benchmarks to find the fastest method.
This can be prevented by making conigurations
by hand and changing the makefile. Please study
lib/dea/Makefile before attempting this.
If you find any bugs or porting problems, please inform the author about
these problems (and fixes if there are any).
_
Stig Ostholm
Department of Computer Engineering
Chalmers University of Technology
----------------------------------
Email: ostholm@ce.chalmers.se
Phone: +46 31 772 1703
Fax: +46 31 772 3663