Sat问题求解外包过程中的cnf公式数据保护方法

文档序号:6550933阅读:166来源:国知局
Sat问题求解外包过程中的cnf公式数据保护方法
【专利摘要】本发明公开了一种SAT问题计算外包中的CNF公式数据保护方法,实施步骤如下:生成Husk公式S2和Husk解Hr;将原始CNF公式S1、S2两者以保持解空间不变为前提混合生成新CNF公式S以及变量映射表M;将待求解数据使用新CNF公式S转换为CNF公式数据并外包到远端服务器,利用远端服务器对收到的CNF公式数据求解得到混淆解Or;基于变量映射表M对混淆解Or解映射,将解映射时在变量映射表M中被标记映射至原始CNF公式S1的实际变量填充至原始解R并进行正确性验证,最终得到混淆解Or对应的原始解R。本发明能够混淆任意CNF公式S1以隐藏其包含的结构信息、并保证混淆之后的CNF公式S可使用原SAT求解器求解,还可对外包计算的结果进行正确性验证。
【专利说明】SAT问题求解外包过程中的CNF公式数据保护方法

【技术领域】
[0001] 本发明涉及云计算环境下计算外包的数据隐私保护技术,具体涉及一种SAT问题 求解外包过程中的CNF公式数据保护方法。

【背景技术】
[0002] SAT (命题可满足)问题的求解目前已经在软硬件验证领域得到广泛应用。近年 来,一方面随着软硬件规模的日益扩大,服务于硬件验证的SAT问题规模也随之急剧膨胀, 从而对用户的计算基础设施形成了严峻的挑战。另一方面,目前成熟的云计算和网格计算 模式可以根据应用规模提供弹性的计算资源,从而成为应对这一挑战的有效手段。因此,使 用云计算或网格计算将SAT问题分布在远端的多计算机系统上并行求解来提高问题的求 解规模,从而利用云或网格等计算基础设施的计算外包正在成为一种新的趋势。
[0003] 云计算和网格计算模式下,SAT求解器部署在远端的节点服务器或云服务器上,将 硬件电路转化而成的CNF公式数据传输到存在位于远端的服务器上,由运行在服务器上的 SAT求解器求解;并获得求解结果。CNF公式是若干子句的合取;子句是若干文字的析取; 文字是布尔变量或是它的反。下例式(1)中P是一个典型的CNF公式。
[0004]

【权利要求】
1. 一种SAT问题计算外包中的CNF公式数据保护方法,其特征在于实施步骤如下: 1) 生成Husk公式S2,所述Husk公式S2为仅有一个可满足解的CNF公式,且所述Husk 公式S2解变量的赋值不是全0或全1 ; 2) 将计算外包中待求解的原始CNF公式Si、所述Husk公式S2两者以保持解空间不变 为前提混淆生成具有和原始CNF公式Si不同CNF结构的新CNF公式S,并生成用于记录原 始CNF公式SpHusk公式S 2两者及其变量之间映射关系的变量映射表M,所述变量映射表Μ 中的每一个表项包括var域和formula域共两个域,其中var域用于存储原始CNF公式Si 或Husk公式S 2中原始的变量名,formula域表示对应变量名的来源;所述解空间不变指原 始CNF公式Si、新CNF公式S可采用完全相同的SAT求解器进行求解且两者的解之间存在 如下的关系:原始CNF公式Si不可满足则新CNF公式S不可满足,反之新CNF公式S不可 满足则原始CNF公式Si不可满足,如果原始CNF公式Si可满足则新CNF公式S可满足,原 始CNF公式&的解可通过新CNF公式的解在原始CNF公式Si的变量集上投影获得;所述不 同CNF结构是指原始CNF公式Si、新CNF公式S之间的子句集合以及子句中的文字集合均 不同; 3) 将待求解数据使用新CNF公式S转换为CNF公式数据并外包到远端服务器,利用远 端服务器上现有的SAT求解器对收到的CNF公式数据求解得到混淆解Or ; 4) 针对混淆解Or中的每一个解文字lit,取出解文字lit对应的变量var,并根据解文 字lit对应的变量var从变量映射表Μ中取出对应的实际变量rvar,如果该实际变量rvar 在变量映射表Μ中被标记映射自原始CNF公式Si,则将该实际变量填充至原始解R,最终得 到混淆解Or对应的原始解R。
2. 根据权利要求1所述的SAT问题计算外包中的CNF公式数据保护方法,其特征在于, 所述步骤1)还包括生成Husk公式S 2的Husk解Hr的步骤;所述步骤4)中根据解文字lit 对应的变量var从变量映射表Μ中取出对应的实际变量rvar时,如果该实际变量rvar在 变量映射表Μ中被标记映射自Husk公式S 2,则将该实际变量rvar与所述Husk解Hr中对 应的赋值Hr [rvar]进行比较验证,如果验证不一致则判定远端服务器对CNF公式数据求解 出错,输出错误并退出。
3. 根据权利要求2所述的SAT问题计算外包中的CNF公式数据保护方法,其特征在于, 所述步骤1)中生成Husk公式S2的详细步骤如下 : 1. 1)生成一个质数,将所述质数采用二进制向量的形式表示; 1. 2)对所述采用二进制向量表示的质数取平方; 1. 3)将所述质数取平方后的值作为乘法器的输出变量并禁止乘法器的输入变量等于 1,将所述乘法器转换为CNF公式,该CNF公式即为生成得到的仅有一个可满足解、且解变 量的赋值不是全〇或全1的Husk公式S 2。
4. 根据权利要求3所述的SAT问题计算外包中的CNF公式数据保护方法,其特征在于, 所述步骤4)的详细步骤如下: 4. 1)从所述混淆解Or中取出一个未处理的解文字lit作为当前解文字; 4. 2)判断当前解文字lit是否大于0,如果大于0则将当前解文字lit的原值作为当 前解文字lit对应的变量var,否则将当前解文字lit取反后作为当前解文字lit对应的变 量 var ; 4. 3)使用所述当前解文字lit对应的变量var作为变量映射表Μ中var域的索引,从 所述变量映射表Μ中取出对应的实际变量rvar ; 4. 4)判断所述实际变量rvar在变量映射表Μ中对应匹配表项中formula域的值 M[rvar]. formula是否为原始CNF公式Si,如果是则表示所述实际变量rvar在变量映射表 Μ中被标记映射至原始CNF公式Si,则跳转执行步骤4. 5);否则表示该实际变量rvar在变 量映射表Μ中被标记映射至Husk公式S2,跳转执行步骤4. 6); 4. 5)判断当前解文字lit是否大于0,如果大于0则将所述实际变量rvar填充至原始 解R中实际变量rvar对应的赋值R[rvar],否则将所述实际变量rvar取反后填充至原始解 R中实际变量rvar对应的赋值R[rvar];跳转执行步骤4. 8); 4. 6)判断当前解文字lit是否大于0,如果当前解文字lit大于0,则判断所述实际变 量rvar、实际变量rvar在所述Husk解Hr中对应的赋值Hr [rvar]是否一致,跳转执行步骤 4. 7);如果当前解文字lit不大于0,则判断所述实际变量rvar取反后的值-rvar、实际变 量rvar在所述Husk解Hr中对应的赋值Hr [rvar]是否一致,跳转执行步骤4. 7); 4. 7)如果和实际变量rvar在所述Husk解Hr中对应的赋值Hr [rvar] -致,贝U跳转执 行步骤4.8);否则判定远端服务器对CNF公式数据求解结果错误,报错并退出; 4. 8)判断所述混淆解Or的所有解文字是否处理完毕,如果尚未处理完毕则跳转执行 步骤4. 1),否则表示原始解R已经填充完毕,得到混淆解Or对应的原始解R。
5. 根据权利要求4所述的SAT问题计算外包中的CNF公式数据保护方法,其特征在于, 所述步骤2)的详细步骤如下: A2. 1)接收待求解的原始CNF公式Si、Husk公式S2和Husk公式的Husk解Hr,获取原 始CNF公式Si中的子句平均长度AL ; A2. 2)从原始CNF公式Si中取出一个未处理的子句C作为当前子句; A2. 3)从所述Husk解Hr中随机取得一个文字lit,将所述文字lit取反后添加到原始 CNF公式Si的当前子句C中; A2. 4)判断原始CNF公式Si的所有子句是否处理完毕,如果尚未处理完毕则跳转继续 执行步骤A2. 2);否则,得到所有子句已添加文字的CNF公式&,跳转执行步骤A2. 5); A2. 5)从所述所有子句已添加文字的CNF公式Si中取出一个未处理的子句C作为当前 子句; A2. 6)判断当前子句C的长度|C|是否小于所述原始CNF公式Si中的子句平均长度 AL,如果小于所述子句平均长度AL则跳转执行步骤A2. 7),否则跳转执行步骤A2. 8); A2. 7)从所述Husk解Hr中随机取得一个反不属于当前子句C中的文字lit,将所述文 字lit取反后添加到所述所有子句已添加文字的CNF公式Si中的当前子句C中; A2. 8)判断所述所有子句已添加文字后的CNF公式Si的所有子句是否处理完毕,如果 尚未处理完毕则跳转继续执行步骤A2. 5);否则得到所有子句再次添加文字的CNF公式Sp 跳转执行步骤A2.9); A2. 9)将所述所有子句再次添加文字的CNF公式Si中的变量var、Husk公式S2中的变 量var进行重新排序混合,为每一个变量var生成一条记载了变量var和变量var在重新 排序混合前所属原始CNF公式Si或者Husk公式S 2两者映射关系的表项,最终得到变量映 射表M; A2. 10)将所述所有子句再次添加文字的CNF公式Sp Husk公式S2中的子句混合排序 得到具有和原始CNF公式Si不同CNF结构的新CNF公式S ; A2. 11)将变量映射表Μ和新的CNF公式S输出。
6. 根据权利要求4所述的SAT问题计算外包中的CNF公式数据保护方法,其特征在于, 所述步骤2)的详细步骤如下: B2. 1)接收待求解的原始CNF公式S^Husk公式S2和Husk公式的Husk解Hr ;检测并 标记出原始CNF公式Si中的关键子句和输出变量,初始化子句集合S3为空; B2. 2)从原始CNF公式Si中取出一个未处理的子句C作为当前子句; B2. 3)判断当前子句C是否为关键子句,如果当前子句C是关键子句,则跳转继续执行 步骤B2. 4);否则跳转执行步骤B2. 2); B2. 4)从所述Husk解Hr中随机取得一个文字lit,将所述文字lit取反后添加到原始 CNF公式Si的当前子句C中; B2. 5)获取当前子句C的输出文字olit,将所述文字lit、当前子句C的输出文字olit 取反后的值-olit组合产生新子句nC,将所述新子句nC放入子句集合S3中; B2. 6)判断原始CNF公式Si的所有子句是否处理完毕,如果尚未处理完毕则跳转继续 执行步骤B2. 2),否则,得到所有子句已添加文字后的CNF公式Si和由新子句nC构成的子 句集合S3,跳转执行步骤B2. 7); B2. 7)获取Husk公式S2中的子句平均长度AL ; B2. 8)从所述所有子句已添加文字后的CNF公式Si和由新子句nC构成的子句集合S3 构成的合并集合中取出一个未处理的子句C作为当前子句; B2. 9)判断当前子句C的长度是否小于所述Husk公式S2中的子句平均长度AL,如果 小于所述子句平均长度AL则跳转继续执行步骤B2. 10);否则跳转执行步骤B2. 8); B2. 10)从所述Husk解Hr中随机取得一个反不属于当前子句C中的文字lit,将所述 文字lit取反后分别添加到所有子句已添加文字后的CNF公式Si、由新子句nC构成的子句 集合S3对应的当前子句C中; B2. 11)判断所述所有子句已添加文字后的CNF公式Si和由新子句nC构成的子句集 合&构成的合并集合中的所有子句是否处理完毕,如果尚未处理完毕则跳转继续执行步骤 B2. 8),否则得到所有子句再次添加文字的CNF公式Si和子句已添加文字的子句集合S3,跳 转执行步骤B2. 12); B2. 12)将所述所有子句再次添加文字的CNF公式Si中的变量var、Husk公式S2中的 变量var进行重新排序混合,为每一个变量var生成一条记载了变量var和变量var在重 新排序混合前所属原始CNF公式&或Husk公式S 2两者映射关系的表项,最终得到变量映 射表M; B2. 13)将所述所有子句再次添加文字的CNF公式Si、Husk公式S2、子句已添加文字的 子句集合S3中的子句混合排序得到具有和原始CNF公式Si不同CNF结构的新CNF公式S ; B2. 14)将变量映射表Μ和新的CNF公式S输出。
7. 根据权利要求4所述的SAT问题计算外包中的CNF公式数据保护方法,其特征在于, 所述步骤2)的详细步骤如下: C2. 1)接收待求解的原始CNF公式S^Husk公式S2和Husk公式的Husk解Hr ;检测并 标记出原始CNF公式Si中的关键子句和输出变量,初始化子句集合S3为空; C2. 2)从原始CNF公式Si中取出一个未处理的子句C作为当前子句; C2. 3)从所述Husk解Hr中随机取得一个文字lit,将所述文字lit取反后添加到原始 CNF公式Si的当前子句C中; C2. 4)判定当前子句C是否为关键子句,如果当前子句C为关键子句,则获取当前子句 C的输出文字olit,将所述文字lit、当前子句C的输出文字olit取反后的值-olit组合产 生新子句nC,将所述新子句nC放入子句集合S 3中; C2. 5)判断原始CNF公式Si的所有子句是否处理完毕,如果尚未处理完毕则跳转继续 执行步骤C2. 2),否则,得到所有子句已添加文字后的CNF公式Si和由新子句nC构成的子 句集合S3,跳转执行步骤C2. 6); C2. 6)获取Husk公式S2中的子句平均长度AL ; C2. 7)从所述所有子句已添加文字后的CNF公式Si和由新子句nC构成的子句集合S3 构成的合并集合中取出一个未处理的子句C作为当前子句; C2. 8)判断当前子句C的长度是否小于所述Husk公式S2中的子句平均长度AL,如果 小于所述子句平均长度AL则跳转继续执行步骤C2. 9);否则跳转执行步骤C2. 7); C2. 9)从所述Husk解Hr中随机取得一个反不属于当前子句C中的文字lit,将所述文 字lit取反后分别添加到所有子句已添加文字后的CNF公式Si、由新子句nC构成的子句集 合33对应的当前子句C中; C2. 10)判断所述所有子句已添加文字后的CNF公式Si和由新子句nC构成的子句集 合&构成的合并集合中的所有子句是否处理完毕,如果尚未处理完毕则跳转继续执行步骤 C2. 7),否则得到所有子句再次添加文字的CNF公式Si和子句已添加文字的子句集合S3,跳 转执行步骤C2. 11); C2. 11)将所述所有子句再次添加文字的CNF公式Si中的变量var、Husk公式S2中的 变量var进行重新排序混合,为每一个变量var生成一条记载了变量var和变量var在重 新排序混合前所属原始CNF公式&或Husk公式S 2两者映射关系的表项,最终得到变量映 射表M; C2. 12)将所述所有子句再次添加文字的CNF公式Sp Husk公式S2、子句已添加文字的 子句集合S3中的子句混合排序得到具有和原始CNF公式Si不同CNF结构的新CNF公式S ; C2. 13)将变量映射表Μ和新的CNF公式S输出。
【文档编号】G06F21/60GK104123503SQ201410292502
【公开日】2014年10月29日 申请日期:2014年6月25日 优先权日:2014年6月25日
【发明者】秦莹, 吴庆波, 戴华东, 孔金珠, 杨沙洲, 沈胜宇, 谭郁松 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1