オンライン格子暗号解析デモツール
2次元格子の最短ベクトルを探索する教育用デモ。基底ベクトルと係数範囲を入力して、最短ベクトルとその長さを確認できます. 処理はブラウザ内でローカルに行われます。
使ってみる
このツールの機能と使い方
このデモツールは、2次元格子における最短ベクトル問題(SVP)の概念を教育目的で体験するためのものです。暗号理論の学習や、格子基底簡約アルゴリズムの理解に役立ちます。
具体的な例
例えば、基底ベクトル v1 = (2, 1)、v2 = (1, 2) を入力し、係数範囲を 5 とします。ツールは i と j を -5 から 5 までの範囲で動かし、i×v1 + j×v2 の長さを計算します。この場合、i=1, j=-1 のときベクトル (1, -1) が得られ、その長さは √2 ≈ 1.41421 となり、これが最短ベクトルとして表示されます。
処理の詳細
ツールは、指定された範囲内のすべての非ゼロ係数ペアを総当たりで検査します。範囲が大きいほど組み合わせが増え、計算時間が長くなります。同じ長さのベクトルが複数存在する場合、そのすべてはリストされず、最初に見つかった1つだけが表示されます。
制限事項
このツールは2次元の教育用列挙であり、LLLアルゴリズムやBKZ、CVP、暗号解析、セキュリティ評価を実行するものではありません。実際の格子ベース暗号のパラメータを評価するために使用すべきではありません。
よくある質問
Q1: 係数範囲を大きくするとどうなりますか?
係数範囲を大きくすると、検査する係数ペアの数が増えるため、より広い探索窓で最短ベクトルを見つける可能性が高まりますが、計算時間も長くなります。
Q2: 結果は常に真の最短ベクトルですか?
結果は探索窓に依存します。指定した範囲内での最短ベクトルであり、範囲外にさらに短いベクトルが存在する可能性があります。また、同じ長さのベクトルが複数ある場合、そのすべては表示されません。
Q3: このツールは暗号解読に使えますか?
いいえ、このツールは教育目的の2次元デモであり、実際の格子ベース暗号のパラメータを評価するためのものではありません。LLLやBKZなどの高度なアルゴリズムは実装されていません。
チェックリスト
- 基底ベクトルが線形独立であることを確認する
- 各座標が絶対値1,000,000以下の整数であることを確認する
- 係数範囲が1から100の整数であることを確認する
- 結果が探索窓に依存することを理解する
処理はブラウザ内でローカルに行われます。