Serpent Cipher
Serpent is a strong 256-bit block cipher (a finalist in the AES competition),
but it is not included in OpenSSH by default.
Most SSH servers use AES (default) or ChaCha20-Poly1305 for performance and security.
Performance concerns –
Serpent is slower than AES,
Serpent is slower than AES due to its complex design.
especially in software implementations without hardware acceleration.
Serpent Pros
256-bit Block Cipher
Serpent uses 256-bit blocks, making it more resistant to certain attacks.
→ Unlike AES, which operates in 128-bit blocks, Serpent’s 256-bit blocks make it theoretically more resistant to attacks like meet-in-the-middle.
Stronger Against Side-Channel Attacks → AES implementations (especially hardware-accelerated ones) have been vulnerable to cache-timing attacks.
Serpent’s S-box design makes it more resistant to these threats.
No Known Practical Attacks → Unlike AES, where related-key attacks and potential
NSA
backdoors are rumored, Serpent remains untouched by practical cryptanalysis.
High-Round Security → Serpent uses 32 rounds of encryption
Serpent uses 32 encryption rounds, making it highly secure.
(AES uses only 10, 12, or 14).
This makes brute-force or differential cryptanalysis significantly more difficult.
Enabling Serpent Cipher Steps:
1. Recompile OpenSSH with a custom OpenSSL build that includes Serpent support.
This requires configuring OpenSSL with Serpent-enabled ciphers and linking OpenSSH to the modified library.
2. Patch OpenSSH source code to manually add Serpent as an accepted cipher.
Modify the cipher list in
cipher.c
and
myproposal.h
, then recompile OpenSSH.