Nonlinear functions 如何将非线性XOR方程组转换为CNF

Nonlinear functions 如何将非线性XOR方程组转换为CNF,nonlinear-functions,sat-solvers,stream-cipher,Nonlinear Functions,Sat Solvers,Stream Cipher,我试图分析trivium中的相移故障分析,遇到了一个需要求解的非线性方程组。我读过关于sat解算器和高斯消去法的文章,但不幸的是,我在互联网上找到的所有文章都没有展示如何处理一个包含大量变量的非线性方程组(这里trivium给出了288个变量)。因此,我现在非常专注于如何解决这些变量。您可以将您的问题表示为一个布尔门网络—一个网络列表—并将其转换为CNF。您可以指示bc2cnf以XCNF格式输出XOR子句,这是一种扩展的CNF格式,其中“x”子句表示XOR子句 SAT解算器能够读取XCNF和/或

我试图分析trivium中的相移故障分析,遇到了一个需要求解的非线性方程组。我读过关于sat解算器和高斯消去法的文章,但不幸的是,我在互联网上找到的所有文章都没有展示如何处理一个包含大量变量的非线性方程组(这里trivium给出了288个变量)。因此,我现在非常专注于如何解决这些变量。

您可以将您的问题表示为一个布尔门网络—一个网络列表—并将其转换为CNF。您可以指示
bc2cnf
XCNF
格式输出
XOR
子句,这是一种扩展的
CNF
格式,其中“x”子句表示
XOR
子句


SAT解算器能够读取
XCNF
和/或检测包含的
XOR
门并执行高斯消去。Cryptominisat曾多次被用于攻击流密码。

我建议您看看SMT解算器,例如Z3。有了SMT,你可以用一种自然的方式表达布尔方程和不等式,而不是把所有的东西都简化成SAT实例。网上有很多文档可以帮助您开始学习