Original author(s) | Robert Morris |
---|---|
Developer(s) | AT&T Bell Laboratories |
Initial release | February 1973; 52 years ago (1973-02) |
Operating system | Unix,Unix-like,Inferno |
Type | Command |
InUnix computing,crypt orenigma is autility program used for encryption. Due to the ease of breaking it, it is considered to be obsolete.
The program is usually used as afilter, and it has traditionally been implemented using a "rotor machine"algorithm based on theEnigma machine. It is considered to becryptographically far too weak to provide any security againstbrute-force attacks by modern, commoditypersonal computers.[1]
Some versions of Unix shipped with an even weaker version of thecrypt(1) command in order to comply withcontemporaneous laws and regulations that limited the exportation of cryptographic software. Some of these were simply implementations of theCaesar cipher (effectively no more secure thanROT13, which is implemented as a Caesar cipher with a well-known key).
CryptographerRobert Morris wrote aM-209-basedcrypt, which first appeared inVersion 3 Unix, to encourage codebreaking experiments; Morris managed to breakcrypt by hand.Dennis Ritchie automated decryption with a method byJames Reeds, and a new Enigma-based version appeared inVersion 7, which Reeds andPeter J. Weinberger also broke.[2]
Linux distributions generally do not include a Unix compatible version of thecrypt command. This is largely due to a combination of three major factors:
The source code to several old versions of thecrypt command is available in The Unix Heritage Society's Unix Archive.[3] The recent crypt source code is available in theOpenSolaris project. Apublic domain version is available from the Crypt Breaker's Workbench.
Enhancedsymmetric encryption utilities are available for Linux (and should also beportable to any otherUnix-like system) includingmcrypt andccrypt.[4] While these provide support for much more sophisticated and modern algorithms, they can be used to encrypt[5] and decrypt files which are compatible with the traditionalcrypt(1) command by providing the correct command line options.
Programs for breaking crypt(1) encryption are widely available. Bob Baldwin'spublic domain Crypt Breaker's Workbench, which was written in 1984-1985, is an interactive tool that provides successive plaintext guesses that must be corrected by the user. It also provides a working crypt(1) implementation used by modern BSD distributions.[6]
Peter Selinger's unixcrypt-breaker uses a simple statistical model similar to a dictionary-attack that takes a set of plain texts as input and processes it to guess plausible plaintexts, and does not require user interaction.[7]
There is also a Unixpassword hash function with the same name,crypt. Though both are used for securing data in some sense, they are otherwise essentially unrelated. To distinguish between the two, writers often refer to the utility program ascrypt(1), because it is documented in section 1 of the Unixmanual pages, and refer to the password hash function ascrypt(3), because its documentation is in section 3 of the manual.
crypt(1)
– FreeBSD General CommandsManual