DESCRIPTION
===========

This software package is an implementation of the block-cipher algorithm SAFER
(Secure And Fast Encryption Routine). Two versions of that algorithm are
implemented: one using a 64-bit key (SAFER K-64) and the other using a 128-bit
key (SAFER K-128). A user-interface is also provided to use both algorithms as
UNIX, MS-DOS, VMS, ... commands.

Any compiler based on Kernighan & Ritchie C, ANSI C or C++ can be used to
compile the source code. Moreover, the input-output behaviour of the executable
programs are identical, i.e. the user-command 'safer' functions in a compatible
manner on any computer.

The source code belongs to the public domain.


RESTRICTIONS FOR V1.0
=====================

UNIX:         No restrictions.

MS-DOS:       MS-DOS pipes (|) cannot be used. [Comment: Since the input and
              output of the user-command 'safer' are binary-streams, it cannot
              be used with an MS-DOS pipe whose input and output must be
              text-streams]

VMS:          VMS translates all upper-case letters given on the command-line 
              to lower-case letters. Thus all key-strings are mapped to their
              lower-case representation.


FILES ON DISKETTE
=================

README        this documentation

safer.c       SAFER K-64 and SAFER K-128 source code
safer.h       header file to 'safer.c'
safercmd.c    source code for user-command 'safer' (applicable to UNIX, MS-DOS,
              VMS, ...)
makefile      describes how to generate user-command 'safer'

safer.exe     executable user-command 'safer' for MS-DOS
safer.txt     description of user-command 'safer'
man1/safer.1  UNIX manual page of user-command 'safer'

checking.bat  used to check the correctness of user-command 'safer'. Type 
              'make checking' to run this test which produces 'check.out'
              as output file. If the user-command 'safer' functions correctly,
              the files 'check.out' and 'check.ref' are identical.
check.c       source code for a program used by 'checking.bat'
check.ref     examples of encrypted data

safer_1.ps    paper in PostScript format: Massey, J.L., "SAFER K-64:
              A Byte-Oriented Block Ciphering Algorithm", pp. 1-17 in Fast
              Software Encryption (Ed. R. Anderson), Proceedings of the
              Cambridge Security  Workshop, Cambridge, U.K., Dec. 9-11, 1993,
              Lecture Notes in Computer Science No. 809. Heidelberg and
              New York: Springer, 1994.


FTP-SERVER
==========

This software package can be obtained by executing the following commands:

     [] ftp isidor.ethz.ch          (or: ftp 129.132.1.136)
     Name: anonymous
     Password: your_e-mail_address
     cd pub/simpl
     get safer.V1.0.tar.Z
     quit
     [] uncompress safer.V1.0.tar.Z
     [] tar -xf safer.V1.0.tar
     [] cd safer


INSTALLATION
============

1. Modify the "CC..." line in 'makefile' (and no other lines!!)

2. Execute the following commands:

     [] setenv MANPATH .:$MANPATH   include the current directory in search path
                                    for manual pages (UNIX only)
     [] man safer              display the manual page of safer (UNIX only)
     [] man -t safer           print the manual page of safer (UNIX only)
     [] make                   produce the user-command 'safer'
     [] make checking          check the correctness of the user-command 'safer'
