格基约化分析工具
每行一组,含义由「输入模式」决定:格基模式每行一个基向量;背包模式写 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。背包攻击找到解后一定回代验证子集和 = 目标值,验证不过或找不到短向量时提示「本次未能恢复(密度过高 / 维数过大)」,绝不谎报成功。

留言板

全部留言 →
0/200

  • 还没人说话,来占个沙发?