:: Characteristics of Ciphers/HMAC's used in SSH ::
HOME

Click Here for Comparison Chart for different VPN solutions


  1. Gary keessler's article provides a very good introduction to fundamental concepts in cryptography.
  2. This document focusses on the SSH protocol, as implemented by OpenSSH. There are two versions of SSH (1 & 2). AFAIK, only the newer version (Ver. 2) is standardized by the IETF secsh working group (Need to verify this).
  3. The table below list's all the ciphers (and some of their characteristics) that are available in OpenSSH. Do a man ssh_config and look at the explanation given for cipher and ciphers to find out which ciphers are available with SSH.
    Note:Most information extracted by hacking source code openssh-3.5p1/cipher.c.

    Symmetric Ciphers used in SSH
    Cipher SSH Version Block Size(Bytes) Key Length(Bytes) Cipher Type
    3des 1 8 16 Block Cipher
    blowfish 1 8 32 Block Cipher
    3des-cbc 2 8 24 Block Cipher(CBC-mode)
    blowfish-cbc 2 8 16 Block Cipher(CBC-mode)
    cast128-cbc 2 8 16 Block Cipher(CBC-mode)
    rc4 2 8 16 Stream Cipher
    aes128-cbc 2 16 16 Block Cipher(CBC-mode)
    aes192-cbc 2 16 24 Block Cipher(CBC-mode)
    aes256-cbc 2 16 32 Block Cipher(CBC-mode)

    Click Here for Comparison Chart for different VPN solutions Note the difference between block and stream ciphers. Block ciphers can operate in one of the following four modes.
    1. Electronic Codebook (ECB)
    2. Cipher Block Chaining (CBC)
    3. Cipher Feedback (CFB)
    4. Output Feedback (OFB)
    However in all these modes, the block cipher basically operates by dividing the input into fixed size blocks having size equal to the BLK_SIZE of the cipher. Hence it is essential that the input applied to a block cipher has a size which is an integer multiple of the BLK_SIZE of the cipher. Since this is not always possible, some form of padding must be applied to the input.
    Stream Ciphers on the other hand do not impose any such requirements. However, I think, SSH still adds padding bytes to the input, even in case of stream ciphers.
  4. The table below list's all the HMAC's(and some of their characteristics) that are available in OpenSSH. Do a man ssh_config and look at the explanation given for MACs to find out which HMAC's are available with SSH.
    Note:Most information extracted by hacking source code openssh-3.5p1/mac.c.

    HMAC's used in SSH
    HMAC Size(Bytes)
    hmac-sha1 20
    hmac-sha1-96 12 (First 12 Bytes of hmac-sha1)
    hmac-md5 16
    hmac-md5-96 12 (First 12 bytes of hmac-md5)
    hmac-ripemd160 20

    Click Here for Comparison Chart for different VPN solutions

Comments and corrections are appreciated and can be sent to papers@mia.ece.uic.edu. Click here for ©opyright information.