Lucifer (暗号)

Lucifer: 初期のブロック暗号



Luciferは、主にホルスト・ファイステルらによってIBMで開発された初期の民間用ブロック暗号の一つです。これは、後に広く知られることとなるデータ暗号標準(DES)の基盤となった暗号方式です。特に、1970年代に使用されていたDTD-1というバージョンが有名です。

概要と技術的背景



Lucifer暗号にはいくつかのバージョンが存在しますが、ここでは特許番号3,798,359(1971年7月)による版に焦点を当てます。このバージョンは48ビットの鍵を使用し、同じく48ビットのブロックのデータを処理します。内部構造はSPN(Substitution-Permutation Network)で2つの4ビットSボックスを利用し、鍵によって使用するSボックスが選ばれます。

一方、特許番号3,796,830(1971年11月)のバージョンでは、64ビットの鍵と32ビットのブロックを扱います。この版では加算と4を法とする合同式演算を行い、1つの4ビットSボックスで4ビットずつ処理を行います。Luciferは、当時の暗号実装としては非常にコンパクトな設計でした。

さらに、より強力なバージョンとして1973年に発表されたFeistel構造を基にしたLuciferがあり、128ビットの鍵と128ビットのブロックを使用します。この構造もSPNを利用しており、鍵によってSボックスのどちらを使用するかが決まります。

Sorkin版の特徴



1984年にSorkinによって記述されたバージョンは、DESと同様に16ラウンドのFeistel構造を持ちますが、最初と最後の並べ替えは行われていません。ここでも鍵とブロックの長さは共に128ビットで、Feistel関数は64ビットのデータと64ビットの部分鍵を掛け合わせて操作します。このFeistel関数においては、任意のビットの交換操作を制御するためのICB(interchange control bits)も活用されます。

ブロックデータは8個のバイトに分けられ、それぞれにICBに従った形でビットの入れ替えが行われます。次に、二つの4×4ビットのSボックスを通過し、出力されたデータと部分鍵をXOR演算で組み合わせる「key interruption」のプロセスが行われます。処理の後に2段階の並べ替えを施して、セキュリティ強化が図られています。

鍵スケジュールと実装



鍵スケジュールのアルゴリズムは比較的シンプルで、128ビットの鍵をシフトレジスタに読み込みます。ラウンドごとにレジスタの左半分が部分鍵として利用され、右側の8ビットがICBビットとなります。レジスタは毎ラウンドごとに56ビット左に回転します。

まとめ



Luciferは、1970年代初頭の暗号技術の発展に大きく貢献した作品の一つであり、その後のDESの再設計においても重要な役割を果たしました。名前の由来は、ファイステルが開発していたプライバシーシステムの「Demonstration」から派生した駄洒落で、暗号の構造や機能には革新的な要素が多く見受けられました。これらの技術は、現在の暗号化技術にも多数影響を及ぼしています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。