我正在尝试分析Trivium中的相移故障分析,并遇到了要解决的非线性方程组。我读了有关饱和解算器和高斯消元的文章,但不幸的是,我在互联网上找不到的文章都没有显示如何处理带有大量变量的非线性方程组(此处trivium提供288个变量)。因此,我现在对如何求解这些变量非常困惑。
答案 0 :(得分:1)
您可以将问题表达为布尔门网络-网表-,然后使用bc2cnf将其转换为CNF。您可以指示bc2cnf
以XOR
格式输出XCNF
子句,这是扩展的CNF
格式,带有“ x”子句,表示XOR
子句。
SAT求解器能够读取XCNF
和/或检测包含的XOR
门并执行高斯消去。 Cryptominisat reportedly已被多次攻击Trivium流密码。
答案 1 :(得分:0)
我建议您看一下SMT求解器,例如Z3。使用SMT,您可以自然的方式来表达布尔方程和不等式,而不是将所有内容分解为SAT实例。在线上有很多文档可帮助您入门。