格基约化分析工具
每行一组,含义由「输入模式」决定:格基模式每行一个基向量;背包模式写 a1,...,an; 目标和S;公钥模式写 w1,...,wn; c
输入模式:
算法:
基向量输出:
迭代步骤:
计算结果
下载 CSV
| 序号 | 类型 | 向量 / 条目 | 值 | 说明 |
|---|
工具介绍及使用方法
本工具用于密码学教学与安全研究:演示 LLL 格基约化为什么有效,以及低密度子集和(背包)密码为何会被攻破。仅用于学习与授权的安全测试,请勿用于攻击未授权的系统。
输入每行一组,含义由「输入模式」决定:
精度取舍:基向量全程用 BigInt 精确保存,Gram-Schmidt 的 μ 与 ‖b*‖² 用 Number 浮点计算。这样实现简单、速度快,只要单个数值位数 ≤ maxBits(默认 128)检测余量就足够;位数超限会明确提示。
护栏:维数 ≤ maxDim(默认 12,LLL 是 O(n⁴) 量级)、数值 ≤ maxBits 位、迭代 ≤ 10000 次(超限明确提示而非死循环)、输出行数 ≤ maxRows。背包攻击找到解后一定回代验证子集和 = 目标值,验证不过或找不到短向量时提示「本次未能恢复(密度过高 / 维数过大)」,绝不谎报成功。
输入每行一组,含义由「输入模式」决定:
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。背包攻击找到解后一定回代验证子集和 = 目标值,验证不过或找不到短向量时提示「本次未能恢复(密度过高 / 维数过大)」,绝不谎报成功。
留言板
全部留言 →-
还没人说话,来占个沙发?