格基約化分析工具

每行一組,含義由「輸入模式」決定:格基底模式每行一個基底向量;背包模式寫 a1,...,an; 目標和S;公鑰模式寫 w1,...,wn; c
輸入模式:   演算法:   
  基底向量輸出:   迭代步驟:      
     
計算結果 下載 CSV
序號 類型 向量 / 條目 值 說明

工具介紹及使用方法

本工具用於密碼學教學與安全研究:示範 LLL 格基約化為何有效,以及低密度子集和(背包)密碼為何會被攻破。僅供學習與授權的安全測試使用,請勿用於攻擊未授權的系統。

每行輸入一組,含義由「輸入模式」決定:lattice 每行一個格基向量(如 1,1,1);knapsack 每行寫 a1,...,an; 目标和S(如 1,3,5,11,21; 24);publickey 每行寫背包公鑰與密文 w1,...,wn; c。

精度取捨:基向量全程用 BigInt 精確保存,Gram-Schmidt 的 μ 與 ‖b*‖² 用 Number 浮點計算。這樣實現簡單、速度快,只要單一數值位數 ≤ maxBits(預設 128)偵測餘量就足夠;位數超限會明確提示。

防護:維度 ≤ maxDim(預設 12,LLL 是 O(n⁴) 量級)、數值 ≤ maxBits 位、迭代 ≤ 10000 次(超限明確提示而非死迴圈)、輸出行數 ≤ maxRows。背包攻擊找到解後一定回代驗證子集和 = 目標值,驗證不過或找不到短向量時提示「本次未能恢復(密度過高 / 維度過大)」,絕不謊報成功。

操作步驟

  1. 依所選輸入模式,把矩陣、子集和實例或背包公鑰逐行貼上到輸入框。
  2. 選擇輸入模式與演算法,填寫 δ 參數、維度上限等參數。
  3. 點擊執行。
  4. 查看約化基或攻擊結果,複製或匯出。

留言板

全部留言 →
0/200

  • 還沒人說話,來搶個沙發?