Serpent (暗号)

From Wikipedia, the free encyclopedia

設計者 ロス・アンダーソン、エリ・ビーハム、ラーズ・クヌーセン
初版発行日 1998年8月21日
派生元 Square
認証 AES最終候補の1つ
Serpent
Serpentの線形混合ステージ
一般
設計者 ロス・アンダーソン、エリ・ビーハム、ラーズ・クヌーセン
初版発行日 1998年8月21日
派生元 Square
認証 AES最終候補の1つ
暗号詳細
鍵長 128, 192, 256 ビット
ブロック長 128 ビット
構造 SPN構造
ラウンド数 32

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に選ばれた。

セキュリティ

脚注・出典

外部リンク

Related Articles

Wikiwand AI