Contents of the README.1ST file
PIBCRYPT contains routines to encrypt and decrypt messages using a variation
of Vigenere's cipher.
You should find these files in the library:
DEC.COM VAX/VMS DCL file to execute decryption program
DECRYPT.PC IBM PC decryption program source (Turbo Pascal v5.0)
DECRYPT.VMS VAX/VMS decryption program source (Vax Pascal)
ENC.COM VAX/VMS DCL file to execute encryption program
ENCRYPT.PC IBM PC encryption program source (Turbo Pascal v5.0)
ENCRYPT.VMS VAX/VMS encryption program source (Vax Pascal)
README.1ST What you're reading now!
Upload and compile the DECRYPT.VAX and ENCRYPT.VAX programs with Vax Pascal.
See the comments in both programs for details on running the programs.
The variable "StringKey" in both the encryption and decryption programs
provides the key which is used to initialize a random-number sequence.
This sequence is used to construct a random encryption key which is as
long as the message being encoded. A variant of Vigenere's method is used
to perform the encoding. Only characters in the "printable" range
of Ascii 32 to Ascii 127 are encoded; control characters and upper Ascii
characters are left "as is."
If you use this method to exchange messages, you should change the value
of "StringKey" from time to time. You can also change the function used
to compute the initial random number seed. You can exchange the new values
of StringKey in public messages, and the code will still be secure as long
as you do not publish the initialization function.
A file encrypted by the Vax can be decrypted by the PC, and vice versa.
This is why I've included portable random number generator rather than
using the built-in functions in Vax Pascal and Turbo Pascal. The code
could be made more efficient for a given platform; my intent was to produce
programs that would be as similar as possible on VMS and DOS, and thus
likely to require minimal modification for other compilers or systems.
The random number generator is taken from Press et al, "Numerical Recipes,"
Cambridge University Press, 1986. They in turn based it on one suggested by
Donald Knuth (see his "Seminumerical Algorithms," Second edition,
I am contributing these routines to the public domain, so there are no
restrictions on their use. I'd appreciate receiving credit if you do
use them in a product.
-- Philip R. "Pib" Burns