格子基底簡約ツール

1行に1件。意味は「入力モード」で決まります。格子基底は1行に1ベクトル、ナップサックは a1,...,an; 目標値S、公開鍵は w1,...,wn; c と書きます
入力モード:   アルゴリズム:   
  基底ベクトル出力:   反復ステップ:      
     
番号 種類 ベクトル / 項目 値 説明

ツールの紹介と使い方

このツールは暗号学の教育とセキュリティ研究向けです。LLL 格子基底簡約がなぜ有効か、低密度部分和(ナップサック)暗号がなぜ破られるかをデモします。学習と許可済みのセキュリティテストのみに使用し、許可のないシステム攻撃には使わないでください。

1行1グループで入力し、意味は「入力モード」で決まります。lattice は1行に1つの基底ベクトル(例:1,1,1);knapsack は1行に a1,...,an; 目标和S(例:1,3,5,11,21; 24);publickey は1行にナップサック公開鍵と暗号文 w1,...,wn; c を書きます。

精度のトレードオフ:基底ベクトルは終始 BigInt で正確に保持し、Gram-Schmidt の μ と ‖b*‖² は Number の浮動小数点数で計算します。これにより実装がシンプルで高速になり、単一値のビット長 ≤ maxBits(デフォルト 128)なら検出余裕は十分で、ビット長超過時は明確に通知します。

安全策:次元 ≤ maxDim(デフォルト 12、LLL は O(n⁴) 規模)、数値 ≤ maxBits ビット、反復 ≤ 10000 回(超過時は無限ループにせず明確通知)、出力行数 ≤ maxRows。ナップサック攻撃で解を見つけた後は必ず代入検算して部分和 = 目標値を確認し、検証不可や短ベクトル未発見の場合は「今回は復元できませんでした(密度過高 / 次元過大)」と通知し、成功を偽りません。

操作手順

  1. 選択した入力モードに従い、行列・部分和インスタンス・ナップサック公開鍵を1行ずつ入力欄に貼り付けます。
  2. 入力モードとアルゴリズムを選択し、δ パラメータや次元の上限などを入力します。
  3. 実行ボタンをクリックします。
  4. 簡約基底または攻撃結果を確認し、コピーまたはエクスポートします。
0/200

  • まだ誰も書いていません。最初の一人になりませんか?