![]() | ![]() |
SSH-1.5 | SSH-2.0 | |
---|---|---|
Public-key | RSA | DSA, DH |
Hash | MD5, CRC-32 | SHA-1, MD5 |
Symmetric | 3DES, IDEA, ARCFOUR, DES | 3DES, Blowfish, Twofish, CAST-128, IDEA, ARCFOUR |
Compression | zlib | zlib |
Note that Table 3-4 simply lists algorithms in different categories used in the two protocol specifications, without regard to purpose. So for example, SSH-1 uses both MD5 and CRC-32, but for different purposes; this listing doesn't imply that SSH-1 has option to employ MD5 for integrity checking.
3DES | IDEA | RC4 | DES | (Blowfish) | |
---|---|---|---|---|---|
SSH1 | x | x | o | o | x |
OpenSSH | x | - | - | - | x |
3DES | Blowfish | Twofish | CAST-128 | IDEA | RC4 | |
---|---|---|---|---|---|---|
SSH2 | x | x | x | - | - | x |
F-Secure SSH2 | x | x | x | x | - | x |
OpenSSH | x | x | - | x | - | x |
Why are some algorithms unsupported by different programs? DES is often omitted from SSH-1 software as insufficiently secure. RC4 is omitted because of problems in the way it is used in the SSH-1 protocol, permitting vulnerabilities to active network-level attacks; this problem has been fixed in SSH-2. IDEA is omitted from OpenSSH and the noncommercial SSH1 and SSH2 because it is patented and requires royalties for commercial use. Twofish isn't in OpenSSH because it isn't yet part of the OpenSSL toolkit, which OpenSSH uses. CAST-128 is free, so we don't know why it is missing from the noncommercial SSH2.
The free version of SSH2 supports only the required DSA for public keys, while the commercial F-Secure SSH2 Server adds partial support for RSA keys for user authentication. [Section 6.2.2, "Generating RSA/DSA Keys for SSH2"]. The F-Secure server starts if its host key is RSA and reports that it successfully read the key. However, it still advertises its host key type as DSA in its key-exchange messages and then supplies the RSA key anyway, causing clients to fail when they try to read the supplied key. Of course, this problem masks the question of whether the client can handle an RSA host key even if it were properly identified. OpenSSH/2 doesn't contain RSA support at all, but now that the RSA patent has expired, the ssh-rsa key type will be added to the SSH-2 protocol, and support should follow shortly. We now summarize each of the algorithms we have mentioned. Don't treat these summaries as complete analyses, however. You can't necessarily extrapolate from characteristics of individual algorithms (positive or negative) to whole systems without considering the other parts. Security is complicated that way.[37]See James Bamford's book, The Puzzle Palace (Penguin), for an investigative history of the NSA.
[38]G. J. Simmons, "The Subliminal Channels in the U.S. Digital Signature Algorithm (DSA)." Proceedings of the Third Symposium on: State and Progress of Research in Cryptography, Rome: Fondazione Ugo Bordoni, 1993, pp. 35-54.The SSH-2 protocol uses DSA as its required (and currently, only defined) public-key algorithm for host identification.
[39]X. Lai and J. Massey, "A Proposal for a New Block Encryption Standard," Advances in Cryptology -- EUROCRYPT `92 Proceedings, Springer-Verlag, 1992, pp 389-404.IDEA is patented in Europe and the United States by the Swiss company Ascom-Tech AG.[40] The name "IDEA" is a trademark of Ascom-Tech. The attitude of Ascom-Tech towards this patent and the use of IDEA in the United States has changed over time, especially with regard to its inclusion in PGP. It is free for noncommercial use. Government or commercial use may require a royalty, where "commercial use" includes use of the algorithm internal to a commercial organization, not just directly selling an implementation or offering its use for profit. Here are two sites for more information:
[40]U.S. patent #5,214,703, 25 May 1993; international patent PCT/CH91/00117, 28 November 1991; European patent EP 482 154 B1.
http://www.ascom.ch/infosec/idea.html http://www.it-sec.com/index_e.php
[41]K. W. Campbell and M. J. Wiener, "DES Is Not a Group," Advances in Cryptology -- CRYPTO `92 Proceedings, Springer-Verlag, pp. 512-520.
http://www.counterpane.com/blowfish.html
http://www.counterpane.com/twofish.htmlYou can read more about the NIST AES program at:
http://www.nist.gov/aes/
Cipher | Transfer Time (seconds) | Throughput (KB/second) |
---|---|---|
RC4 | 22.5 | 227.4 |
Blowfish | 24.5 | 208.6 |
CAST-128 | 26.4 | 193.9 |
Twofish | 28.2 | 181.3 |
3DES | 51.8 | 98.8 |
Cipher | Transfer Time (seconds) | Throughput (KB/second) |
---|---|---|
RC4 | 5 | 1024.0 |
Blowfish | 6 | 853.3 |
CAST-128 | 7 | 731.4 |
Twofish | 14 | 365.7 |
3DES | 15 | 341.3 |
[42]International Organization for Standardization, ISO Information Processing Systems -- Data Communication High-Level Data Link Control Procedure -- Frame Structure, IS 3309, October 1984, 3rd Edition.
[43]RSA Laboratories Bulletin #4, 12 November 1996, ftp://ftp.rsasecurity.com/pub/pdfs/bulletn4.pdf.
[44]Not to be confused with another "RIPE," Réseaux IP Européens ("European IP Networks"), a technical and coordinating association of entities operating wide area IP networks in Europe and elsewhere (http://www.ripe.net).RIPEMD-160 isn't defined in the SSH protocol, but it is used for an implementation-specific MAC algorithm in OpenSSH, under the name hmac-ripemd160@openssh.com. RIPEMD-160 is unpatented and free for all uses. You can read more about it at:
http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
http://www.info-zip.org/pub/infozip/zlib/