|
|
1.1 ! root 1: .\" @(#)makekey.8 6.1 (Berkeley) 4/27/85 ! 2: .\" ! 3: .TH MAKEKEY 8 "April 27, 1985" ! 4: .AT 3 ! 5: .SH NAME ! 6: makekey \- generate encryption key ! 7: .SH SYNOPSIS ! 8: .B /usr/lib/makekey ! 9: .SH DESCRIPTION ! 10: .I Makekey ! 11: improves the usefulness of encryption schemes depending on a key by ! 12: increasing the amount of time required to search the key space. It ! 13: reads 10 bytes from its standard input, and writes 13 bytes on its ! 14: standard output. The output depends on the input in a way intended to ! 15: be difficult to compute (that is, to require a substantial fraction of ! 16: a second). ! 17: .PP ! 18: The first eight input bytes ! 19: (the ! 20: .IR "input key" ) ! 21: can be arbitrary ASCII characters. ! 22: The last two (the ! 23: .IR salt ) ! 24: are best chosen from the set of digits, upper- and lower-case ! 25: letters, and `.' and `/'. ! 26: The salt characters are repeated as the first two characters of the output. ! 27: The remaining 11 output characters are chosen from the same set as the salt ! 28: and constitute the ! 29: .I "output key." ! 30: .PP ! 31: The transformation performed is essentially the following: ! 32: the salt is used to select one of 4096 cryptographic ! 33: machines all based on the National Bureau of Standards ! 34: DES algorithm, but modified in 4096 different ways. ! 35: Using the input key as key, ! 36: a constant string is fed into the machine and recirculated a number of times. ! 37: The 64 bits that come out are distributed into the ! 38: 66 useful key bits in the result. ! 39: .PP ! 40: .I Makekey ! 41: is intended for programs that perform encryption (for instance, ! 42: .I ed ! 43: and ! 44: .IR crypt (1)). ! 45: Usually makekey's input and output will be pipes. ! 46: .SH SEE ALSO ! 47: crypt(1), ed(1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.