Hill CipherLab - ヒル暗号ツール

法26の世界で2×2 / 3×3の鍵行列で暗号化・復号する

🔑 鍵行列Kの設定

使用可否: -
詳細情報を表示
det(K): -
det(K) mod 26: -
gcd(det(K), 26): -
det(K)-1 mod 26: -
-

🔒 暗号化

非英字、空白、記号は無視。末尾はXでパディングされます。
-
処理ログ(ブロック計算の詳細)

        

🔓 復号

鍵行列のサイズによっては末尾をXでパディングします。
復号結果の末尾にXが現れた場合、パディング用のXの可能性が高いですが、元のメッセージの文字である可能性もあります。
処理ログ(ブロック計算の詳細)

        

📚 学びの要点

🔑 鍵の可逆性条件

逆行列が存在する(= 復号できる)ためには、以下の条件が必要です:

gcd(det(K), 26) = 1

つまり、行列式が 2 と 13 の倍数ではない 必要があります。

  • 2×2 行列より 3×3 行列のほうが可逆な鍵の比率は下がる傾向
  • 実装では 余因子 → 随伴 → det の逆元 の順で逆行列を計算
⚠️ 本ツールの制約

非英字の扱い

非英字・空白・記号は暗号化時に無視されます。そのため、復号結果には単語間の空白や文末のピリオドなどは含まれません

"HELLO WORLD." → 処理 → "HELLOWORLD" → 暗号化 → 復号 → "HELLOWORLD"

空白とピリオドは復元されないため、人間が文脈から "HELLO WORLD." に戻す必要があります。

パディングのX

復号結果の末尾にXが現れた場合:

  • 大半のケース: ブロック長を合わせるためのパディング用X
  • 稀なケース: 元のメッセージに含まれていた文字X

文脈から判断する必要があります。

🎓 教育的意義
  • 線形代数の応用: 行列式・余因子・随伴・逆行列を有限環 ℤ₂₆ 上で体験
  • 暗号の基礎: ブロック暗号の基本概念を理解
  • セキュリティの限界: 古典暗号の脆弱性(既知平文攻撃など)を学ぶ入口