BSD 4_1c_2 development
[unix-history] / usr / man / man8 / makekey.8
CommitLineData
ce1056cb
C
1.TH MAKEKEY 8 "4 February 1983"
2.SH NAME
3makekey \- generate encryption key
4.SH SYNOPSIS
5.B /usr/lib/makekey
6.SH DESCRIPTION
7.I Makekey
8improves the usefulness of encryption schemes depending on a key by
9increasing the amount of time required to search the key space. It
10reads 10 bytes from its standard input, and writes 13 bytes on its
11standard output. The output depends on the input in a way intended to
12be difficult to compute (that is, to require a substantial fraction of
13a second).
14.PP
15The first eight input bytes
16(the
17.IR "input key" )
18can be arbitrary ASCII characters.
19The last two (the
20.IR salt )
21are best chosen from the set of digits, upper- and lower-case
22letters, and `.' and `/'.
23The salt characters are repeated as the first two characters of the output.
24The remaining 11 output characters are chosen from the same set as the salt
25and constitute the
26.I "output key."
27.PP
28The transformation performed is essentially the following:
29the salt is used to select one of 4096 cryptographic
30machines all based on the National Bureau of Standards
31DES algorithm, but modified in 4096 different ways.
32Using the input key as key,
33a constant string is fed into the machine and recirculated a number of times.
34The 64 bits that come out are distributed into the
3566 useful key bits in the result.
36.PP
37.I Makekey
38is intended for programs that perform encryption (for instance,
39.I ed
40and
41.IR crypt (1)).
42Usually makekey's input and output will be pipes.
43.SH SEE ALSO
44crypt(1), ed(1)