CoderTools

LOKI97暗号化・復号

オーストラリアのブロック暗号 - 128ビットブロック、可変キー長のAES候補

セキュリティ通知

LOKI97はAES候補でしたが、標準として選択されませんでした。強力なセキュリティが必要な新しいアプリケーションには、AES(Rijndael)の使用をお勧めします。

LOKI97は128ビット(16バイト)、192ビット(24バイト)、または256ビット(32バイト)のキーをサポートします。
フォーマットオプション

LOKI97について

LOKI97は、1997年にLawrie BrownとJosef Pieprzykによって設計された対称鍵ブロック暗号です。高度暗号化標準(AES)コンペティションの候補として提出され、オーストラリアで開発された以前のLOKI89およびLOKI91暗号の進化を表しています。

この暗号は128ビットのデータブロックで動作し、128、192、または256ビットのキーサイズをサポートします。S-boxと置換に基づく複雑なラウンド関数を持つ16ラウンドのFeistelネットワーク構造を使用し、差分および線形暗号解析に対する強力な耐性を提供するように設計されています。

主な特徴

  • 現代のセキュリティ標準に合致する128ビットブロックサイズ
  • 柔軟なキーサイズ:128、192、または256ビット
  • 徹底したデータ混合のための16ラウンドFeistel構造
  • 差分および線形暗号解析に耐性を持つ設計
  • オーストラリアで開発されたLOKI暗号ファミリーの一員

LOKIファミリーの歴史

  • LOKI89:1989年に設計されたオリジナル暗号。64ビットブロックと64ビットキー。
  • LOKI91:LOKI89で見つかった弱点に対処した改良版。
  • LOKI97:128ビットブロックを採用した最終進化版。AESコンペティションに提出。

暗号化モード

  • CBC: 暗号ブロック連鎖 - 各ブロックは暗号化前に前の暗号文ブロックとXORされます。強力なセキュリティを提供。IVが必要。
  • ECB: 電子コードブック - 各ブロックは独立して暗号化されます。シンプルですがデータのパターンが露出します。ほとんどの用途には推奨されません。
  • CFB: 暗号フィードバック - ブロック暗号をストリーム暗号に変換。自己同期で部分ブロックを処理可能。
  • OFB: 出力フィードバック - 平文から独立してキーストリームを生成。エラー伝播なし。
  • RAW: 生ブロック - チェーンモードなしの直接単一ブロック暗号化。IVは不要。単一の128ビットブロックのみ対象。

アルゴリズム構造

LOKI97は16ラウンドのFeistelネットワーク構造を使用します。各ラウンドは128ビットブロックを2つの64ビット半分(LとR)に分割して処理します。

鍵スケジュール

256ビットマスター鍵は、f関数と定数DELTA(黄金比から派生)を使用して48個のサブキー(SK[0]からSK[47])に拡張されます。128ビットまたは192ビット鍵の場合、拡張前に鍵材料が複製されて256ビット鍵レジスタを満たします。

ラウンド関数

各ラウンドは次を適用:L' = R + SK[3i]、R' = L XOR f(R + SK[3i], SK[3i+1], SK[3i+2])。加算は2^64を法とします。

f関数

コアf関数f(A, B)は4つの層で構成されます:

  • KP(鍵制御置換):Bの制御ビットに基づいてAからビットを選択
  • Sa(Sボックス層a):2種類の8つの並列Sボックス参照(S1:13→8ビット、S2:11→8ビット)
  • P(置換):8×8ビットインターリーブパターンを使用した64ビット置換
  • Sb(Sボックス層b):Bからの追加鍵材料を使用した2回目の8つのSボックス参照

Sボックス

S1は8192エントリ(13ビット入力→8ビット出力)、S2は2048エントリ(11ビット入力→8ビット出力)を持ちます。両方ともそれぞれGF(2^13)とGF(2^11)での立方演算を使用して計算され、強い非線形性のための特定の生成多項式を使用します。

復号処理

復号は同じ構造を使用しますが、サブキーを逆順(SK[47]からSK[0])で適用し、加算の代わりに減算を使用します。

アルゴリズム比較

アルゴリズム キー長 ブロックサイズ セキュリティ 速度
LOKI97 128/192/256 bits 128 bits 良好 中程度
AES 128/192/256 bits 128 bits 優秀 高速
Serpent 128/192/256 bits 128 bits 優秀 中程度
DES 56 bits 64 bits 弱い 高速

セキュリティに関する考慮事項

  • LOKI97は良好なセキュリティを提供し、完全な暗号に対する実用的な攻撃は見つかっていません
  • 128ビットブロックサイズは現代のセキュリティ要件に合致
  • AESとして選択されませんでしたが、LOKI97は暗号学的に健全なままです
  • 新しいアプリケーションには、国際標準としてAESが推奨されます

使用例

  • レガシーシステムの互換性と歴史的研究
  • 暗号学教育とアルゴリズム研究
  • 他のAES候補との比較分析
  • オーストラリア開発の暗号技術を必要とするアプリケーション

参考資料