コンテンツへスキップ
uencoder

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=16bytes
    Output
    16-byte ciphertext

    AES finalist

よくあるエラー

Misusing an unoptimized software implementation yields poor performance
Use bitslice-optimized implementations

関連用語

関連ツール

References