SerpentSerpentの線形混合ステージ
一般
設計者ロス・アンダーソン、エリ・ビーハム、ラーズ・クヌーセン
初版発行日1998年8月21日
派生元Square
Serpentは対称鍵ブロック暗号の一種で、AESの最終候補の1つとなったが、Rijndaelに一歩及ばなかった。Serpentはロス・アンダーソン、エリ・ビーハム、ラーズ・クヌーセンが設計した。
AESに応募した他の暗号と同様、ブロック長は128ビットで、鍵長としては128、192、256ビットをサポートしている[1]。暗号化に際しては、4個の32ビット語のブロックに対して32ラウンドのSPN構造を適用する。各ラウンドでは、8つある4ビットから4ビットへのSボックスのうちの1つを32回並行して適用する。Serpentは1ビットスライス32個を使い、全ての操作を並列に実行できるよう設計されている。このため並列性が最大化されているが、DESよりも暗号解読に要する作業が増えることにもつながっている。
Serpentは、他のAES最終候補よりもセキュリティに対して保守的なアプローチをとっていると見られており、セキュリティマージンを大きくとっている。設計者は既知の攻撃法に対しては16ラウンドで十分だと考えたが、今後新たな暗号解読法が開発されることを予想して、保険のために32ラウンドにした。
Serpentの方式は特許を取得していない。したがって完全なパブリックドメインであり、誰でも自由に使うことができる。したがって、ソフトウェア(またはハードウェア)でSerpentを自由に実装することができ、ライセンス料も徴収されない。 Rijndaelはラウンド数が10、12、14のSPN構造で、鍵長とブロック長は128ビット、192ビット、256ビットである(それぞれ独立して指定可能)。Serpentは32ラウンドのSPN構造で、最適化した実装を単純化するために最初と最後に並べ替えを行う。Rijndaelのラウンド関数は、非線形層、線形混合層、鍵混合XOR層という3つの部分で構成されている。Setpentのラウンド関数は、鍵混合XOR、4×4のSボックスを32回並行に動作させる部分、線形変換から成るが、最終ラウンドでは線形変換の代わりにもう1回鍵混合XORを行う。Rijndaelの非線形層は8×8のSボックスを1つ使うが、Serpentでは8個の異なる4×4のSボックスを使う。Serpentは32ラウンドも実施することでRijndaelよりもセキュリティマージンが高い。しかし、10ラウンドのRijndaelは、高速で実装も容易である。そのため、RijndaelがAESに選ばれた。 XSL攻撃
Rijndael と Serpent
セキュリティ
脚注・出典^ ⇒Serpent 公式サイト
外部リンク
⇒Serpentホームページ
⇒リファレンスコード
⇒SCAN's entry for Serpent
⇒In Pellicano Case, Lessons in Wiretapping Skills - ニューヨーク・タイムズ 2008年5月5日
表
話
編
歴
ブロック暗号
アルゴリズム
AES
ARIA
Blowfish
Camellia
CAST-128
CAST-256
DES
DES-X
3DES
FEAL
IDEA
KASUMI
Lucifer
MISTY1
MULTI2
RC2
RC5
RC6
SEED
Serpent
Square
Twofish
スキップジャック
設計
Feistel構造
S-box
SPN構造
攻撃
(暗号解読)
総当たり攻撃
レインボーテーブル
中間一致攻撃
線形解読法
差分解読法
切詰
高階
関連鍵攻撃
標準化
AES公募
CRYPTREC
NESSIE
用語
初期化ベクトル
暗号利用モード
カテゴリ
表
話
編
歴
暗号
暗号史
暗号解読
Cryptography portal
en:Outline of cryptography
共通鍵暗号
ブロック暗号
ストリーム暗号
暗号利用モード
公開鍵暗号
暗号学的ハッシュ関数
メッセージ認証コード
認証付き暗号
乱数生成器
ステガノグラフィー
カテゴリ