Serpent
Serpent は Ross Anderson らが AES コンペティション向けに設計した対称ブロック暗号である。128 ビットブロックと 128/192/256 ビット鍵を用い、大きなセキュリティ余裕で知られている。
目的
Rijndael(10 ラウンド)に対して 32 ラウンドという保守的なセキュリティ余裕を提供し、速度と引き換えに解析への信頼性を高めました。
メカニズム
32 ラウンドの SPN(代入置換ネットワーク)である。各ラウンドでは 8 つの並列 4×4 S ボックス、線形変換、ラウンド鍵との XOR を適用する。S ボックスはタイミング攻撃を避けるためビットスライスで実装され、鍵スケジュールは 33 個の 128 ビットサブ鍵を生成する。
ユースケース
- AES 選考の研究
- 高いセキュリティ余裕の要求
- 暗号学における教育
- 保守的な設計アプローチの分析
例
- 入力
key=256bit, data=16bytesOutput16-byte ciphertextAES finalist
よくあるエラー
- Misusing an unoptimized software implementation yields poor performance
- Use bitslice-optimized implementations
関連用語
AES
AES(Advanced Encryption Standard)は NIST が 2001 年に確立した対称ブロック暗号であり、128/192/256 ビット鍵をサポートし、現代暗号化の事実上の標準である。 用語集
Twofish
Twofish は Bruce Schneier らが AES 競技のために設計した対称ブロック暗号である。128 ビットブロックと 128/192/256 ビット鍵を持ち、AES 決勝進出アルゴリズムの 1 つだった。 用語集
Block Cipher
ブロック暗号は固定長のブロック(例: 128 ビット)を暗号化・復号する対称暗号であり、任意長のデータを扱うには運用モードが必要である。 用語集