cryptominisat5运行需要的逻辑表达式

目前我知道的是windows在cmd窗口打开cryptominisat5之后可以直接运行cnf文件。

举例一个4位s-box的输入输出,并给出它们的逻辑表达式,步骤如下:

  1. 从第二行开始,前四位表示输入,后四位表示输出,第一行的字母A~H是对每一位的表示,即变量,(用字母是为了好说明问题,应该用1,2,3,…,8这八个数字表示变量放在第一行替换掉A-H的)后边的F0我目前认为是必须的,注意F0以及每行最后一个1之前的两个逗号

  2. 另存为.csv格式,且编码为UTF-8。如下图

  3. 完了打开刚另存的文件如下:

  4. 此时需要软件Logic Fridy来帮助生成逻辑表达式,析取范式还是合取范式我也分不太清楚了。

  5. 从File选项里找到 Import Truth Table, 导入刚才第二步另存的.csv文件。一开始是有乱码的,没关系,改它

  6. 在箭头处右键,点Modify Truth Table, 将汉字换成我的变量A,再点ok 确定即可,下拉右侧进度条可以看见整个真值表了

  7. 接下来就是生成逻辑表达式了,TruthTable -> Submit

    Equation -> Sum of products

    Operation -> Minimize

    Equation -> Product of sums

    好了,箭头所指的标注的部分就是我需要的这个sbox的逻辑表达式了,但是到sat可用的cnf模式还需要几步

  8. 将第7步得到的最终逻辑表达式,改为SAT认可的形式,保存到.cnf。更多cnf文件的含义我怕瞎说错了,可以参考此网站给出的解释(https://www.msoos.org/cryptominisat5/)
    可以下载安装包以及sample看看运行感受一下,我用ABC……这样的字母表示变量只是为了说明问题,应该用数字表示变量的。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值