keeloq-python
我用来破解 160 轮 KeeLoq 密码系统的代码库。 除了一些用于将 ANF 布尔多项式方程组收敛为 DIMACS CNF 形式的 sage 代码之外,所有内容都是用 python 编写的。 一旦采用这种形式,我们就可以将输出文件提供给确定系统是否可满足的 miniSAT。 如果是,您可以将输出通过管道传输到一个文件并使用另一个 python 文件解析它并检查是否恢复了正确的密钥。
通常,您必须向 miniSAT 提供至少 32 位的密钥作为提示。 如果你开始拿走密钥的一部分,那么你的系统将是未定义的(特别是如果你只给它一对明文/密文)。 在这种情况下,系统仍然是可满足的,除非你会得到错误的密钥,因为 miniSAT 一旦发现系统是可满足的就会停止,如果系统定义不足,它将有多种解决方案。
对此的快速解决方法是在同一密钥下生成另一个明文/密文。 然后为新
2022-03-25 10:41:53
15KB
Python
1