一种对计算透明的数据隐私保护方法及系统与流程

文档序号:16210496发布日期:2018-12-08 07:40阅读:313来源:国知局
一种对计算透明的数据隐私保护方法及系统与流程

本发明涉及开放云环境下计算外包的数据隐私保护,具体涉及一种对计算透明的数据隐私保护方法及系统,以针对sat问题求解计算外包过程中的输入输出数据隐私进行保护。

背景技术

命题可满足(简称sat)问题求解是软硬件验证和密码计算中的核心计算引擎。近年来随着软硬件规模的扩大以及对密码算法强度要求的提高,来源于软硬件验证和密码求解的sat问题规模急剧膨胀,对计算资源的需求量也随之增加。而随着云、网格等基于互联网开放环境的按需计算模式由概念走向实践,基于互联网的it基础设施逐渐成为计算和存储资源的主要提供方式。将sat问题外包到云或网格等开放式计算环境下,利用其弹性计算资源提供能力,满足sat问题求解规模的需要,成为应对这一问题的有效手段。

但是,云计算和网格计算需将用户数据部署在远端的服务器,数据处于失控状态。h.you.在ccs’09发表的文献《getoffofmycloud:exploringinformationleakageinthird-partycomputeclouds》指出,由于系统设计漏洞的存在,处于同一台物理机器上的虚拟机之间存在攻击的可能性,某些恶意用户可能通过虚拟机间数据共享的的方式实现未经授权的数据访问。而2018年1月引发热议的meltdown以及spectre漏洞事件都指出,非授权用户利用硬件设计缺陷获取计算机中内核信息以及其他用户数据的可能性不仅存在而且已经有实际可操作的方法。这些事实为云计算环境下的用户数据隐私安全投下阴影。

在云计算环境下的sat求解计算外包通常采用如下模式,sat求解器部署在远端的云服务器上,用户将硬件电路或软件程序转化而成的cnf公式数据传输到存在位于远端的服务器上,由运行在服务器上的sat求解器求解;取得求解结果后将输出数据返回给用户。一方面,在将网表表示的硬件电路结构编码转换为以cnf公式表示的sat实例过程中,电路结构信息并不会随之丢失,这就为潜在的攻击者提供了机会。已有文献探讨了从cnf中恢复出电路结构的方法,甚至还给出了完整的电路恢复算法。另一方面,外包计算结果可以归为隐式稀有事件和显式稀有事件两类。隐式稀有事件(camouflagedrareevents,简称cre)是指:对某类计算,仅给出x和f(x),并不能判断出x是不是稀有事件,例如寻找单向哈希值y的逆,为了找到产生y=h(x)的x,其中h是单向函数,每个参与者都得到一个y值。由于提交给计算参与者的y值不一定是有效值,即使参与者找到相应x值,依然无法确定是否得到正确值。显式稀有事件(obviousrareevents,简称ore)是指:对某类计算,判断解是否真实的标准是显而易见的,即给定x和f(x),计算者很容易确定x是否为f(x)的解。sat问题正是这样的一类问题。sat问题的计算结果分为满足(sat)和不可满足(unsat)两种情况:结果为sat时,求解器会给出一个可满足赋值。而结果为unsat时,求解器会给出不可满足证明。可满足赋值和不可满足证明都称为sat问题的解。给定一个sat问题的解,可以在线性时间内判断出它是否为真实解。在形式化验证领域和密码领域,sat问题的解反映了该系统的某些特性是否达到,其正确性和隐私性对用户都极为重要。由于sat问题的解是显式稀有事件,检测解的正确性相对容易。这虽然简化了用户对开放计算环境下懒惰和恶意计算参与者的鉴别,但由于存在自私计算参与者,计算结果(sat问题的解solution)的隐私保护仍然是一个亟待解决的问题。

鉴于上述事实,在将cnf公式数据外包到网格节点或云计算服务器之前,对其进行变形混淆以隐藏包含的结构信息变得非常必要,另外改变其解空间来实现计算结果的隐私保护也变得非常重要。同时为了不影响sat问题的正常求解,混淆之后的cnf公式还应可以使用原有sat求解器求解,即保持计算的透明性。

目前sat问题计算数据保护的方法之一是在cnf公式fc中嵌入一个husk公式fh,通过恰当的嵌入规则,在保持原有数据形态不变前提下(即保持对计算的透明性),隐藏原cnf公式中的结构信息,保证解空间不变。但是,如何基于优化husk公式fh以达到调制混淆后公式解空间、保护其输出数据隐私性且兼顾计算效率的要求,仍然是一项非常有实际应用前景的研究课题。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种对计算透明的数据隐私保护方法及系统,本发明可已使用目前已有的sat求解器求解,输出数据的隐私性好,在解的机密性和求解开销上取得折中,混淆算法为多项式复杂度,而解恢复算法仅为线性复杂度,引入的sat求解开销也在可接受的范围内。

为了解决上述技术问题,本发明采用的技术方案为:

本发明提供一种对计算透明的数据隐私保护方法,实施步骤包括:

1)私有云生成husk公式fh及husk公式的一个部分赋值解rh;

2)将硬件电路或者软件程序转换得到的cnf公式fc、husk公式fh、husk公式的解rh混淆生成新的cnf公式fo以及变量映射表mv,并将新的cnf公式fo发送给公共云上的sat求解器;当收到sat求解器针对新的cnf公式fo进行求解得到的求解结果so后跳转执行下一步;

3)根据变量映射表mv将求解结果so映射得到求解结果so的原始解sc;

4)根据变量映射表mv和求解结果so获取husk公式变量对应的赋值集合sh,判断husk公式的解rh和sh两者对应的赋值是否相等,如果相等则将原始解sc作为通过验证的原始解输出,否则判定原始解sc为未通过验证的噪音解,跳转执行步骤2)进行复算。

优选地,步骤1)的详细步骤包括:

1.1)输入任意大质数p1、p2、p3;

1.2)将质数p1、p2、p3相乘得到合数o;

1.3)将合数o作为乘法器m的输出,并限制输入的i1和i2不能为1,根据式(1)得到乘法器的一个电路实例

式(1)中,表示输出确定后的乘法器的一个电路实例,m表示一个乘法器实现,i1表示乘法器的一个输入,i2表示乘法器的另一个输入,o表示乘法器的输出;

1.4)根据式(2)生成husk公式fh,生成husk公式的一个部分赋值解rh;

式(2)中,fh表示husk公式,tseitin表示将电路转化为cnf公式的编码器,使用将电路转化为cnf公式,表示乘乘法器的电路实例。

优选地,步骤1.4)中生成husk公式的一个部分赋值解rh的函数表达式如式(3)所示;

rh=(p1*p2|p3)∩(p1*p3|p2)(3)

式(3)中,rh表示husk公式的部分赋值解,p1、p2、p3是步骤1.1)产生的三个质数。

优选地,步骤2)中混淆生成新的cnf公式fo以及变量映射表mv的详细步骤包括:

2.1)输入cnf公式fc、husk公式fh、husk公式的部分赋值解rh;

2.2)初始化变量f并赋值为cnf公式fc、变量f3为空;

2.3)判断变量f为空是否成立,如果变量f为空不成立则跳转执行下一步;否则,跳转执行步骤2.10);

2.4)从变量f中取出一个子句c,所述子句是若干文字的析取,文字是布尔变量或是布尔变量的反;

2.5)从husk公式rh中随机取得一个文字lit;

2.6)获取子句c、-lit两者的并集c1,-lit表示文字lit取反后得到的文字;

2.7)判断子句c是否是关键子句,如果子句c不是关键子句,则跳转执行步骤2.3);否则如果子句c是关键子句,则跳转执行下一步;

2.8)获取子句c的输出文字olit;

2.9)将文字lit、输出文字olit取反后得到的文字-olit合并得到文字nc,将变量f3赋值为的变量f3原值、文字nc、并集c1三者的并集,跳转执行步骤2.3);

2.10)计算husk公式fh的子句平均长度al;

2.11)将变量f赋值为变量f3;

2.12)判断变量f为空是否成立,如果变量f为空不成立则跳转执行下一步;否则,跳转执行步骤2.16);

2.13)从变量f中取出一个子句c;

2.14)判断子句c的绝对值小于husk公式fh的子句平均长度al是否成立,如果成立则跳转执行下一步;否则,跳转执行步骤2.12);

2.15)判断文字lit属于子句c是否成立,如果成立则跳转执行步骤2.14);否则,跳转执行步骤2.12);

2.16)将cnf公式fc、husk公式fh中的变量重命名,得到变量映射表mv;

2.17)将husk公式fh、变量f3中的子句合并并进行混合排序得到新的cnf公式fo;

2.18)输出新的cnf公式fo、变量映射表mv。

优选地,步骤4)的详细步骤包括:

4.1)输入求解结果so,变量映射表mv,husk公式的部分赋值解rh,所述变量映射表mv包括var域和formula域,var域为原始变量名,formula域为变量的公式来源;

4.2)初始化变量l并赋值为求解结果so;

4.3)判断变量l为空是否成立,如果不成立则跳转执行下一步;否则,将得到的真实解记录数组r作为公式fc的解sc输出,结束并退出;

4.4)从变量l中取出一个文字lit;

4.5)判断文字lit大于0是否成立,如果成立则设置变量var的值为文字lit,否则设置变量var的值为-lit,-lit表示文字lit取反后得到的文字;

4.6)根据变量var作为索引查找变量映射表mv得到变量rvar=m[var].var以及对应的公式来源m[var].formula;

4.7)判断变量rvar对应的公式来源m[var].formula等于cnf公式fc是否成立,如果成立则跳转执行步骤4.8);否则,跳转执行步骤4.9);

4.8)判断文字lit的值大于0是否成立,如果成立则设置真实解记录数组r的索引rvar的值r[rvar]为变量rvar,否则设置真实解记录数组r的索引rvar的值r[rvar]为变量rvar取反后得到的文字;跳转执行步骤4.3);

4.9)判断文字lit的值大于0是否成立,如果成立则以变量rvar作为索引获取部分赋值解rh中的文字rh[rvar],判断部分赋值解rh中的文字rh[rvar]等于变量rvar是否成立,如果成立则跳转执行步骤4.3),如果不成立则报错并跳转执行步骤4.11);如果文字lit的值大于0不成立,则跳转执行下一步;

4.10)判断部分赋值解rh中的文字rh[rvar]等于变量rvar取反后得到的文字-rvar是否成立,如果成立则跳转执行步骤4.3),如果不成立则报错并跳转执行步骤4.11);

4.11)判定原始解sc为未通过验证的噪音解,跳转执行步骤2)进行复算。

本发明还提供一种对计算透明的数据隐私保护系统,包括计算机设备,所述计算机设备通过网络与公共云上的sat求解器相连,所述计算机设备被编程以执行本发明前述对计算透明的数据隐私保护方法的步骤。

本发明具有下述优点:

1、本发明所给出的混淆算法仍然保留了原有cnf公式的形式,因此混淆后的cnf公式可已使用目前已有的sat求解器求解。

2、本发明通过采用特殊解空间结构的公式作为husk公式,使得混淆后的解空间是原公式的上估计,也就是在包含了全部原始解的同时,还引入一些伪解(噪音解),这使得sat求解器也无法知道确切的解信息,保护了输出数据的隐私性。

3、本发明通过构造解空间不同的husk公式,并使用该husk公式的部分赋值解作为混淆依据,达到噪音解比例可定制的效果,在解的机密性和求解开销上取得折中。

4、本发明的混淆算法为多项式复杂度,而解恢复算法仅为线性复杂度,引入的sat求解开销也在可接受的范围内。

附图说明

图1为本发明实施例的原理示意图。

图2为本发明实施例方法的基本流程示意图。

图3为本发明实施例中huks公式产生流程generator(p1,p2,p3)示意图。

图4为本发明实施例中一个部分赋值解的参考产生流程passigner(p1,p2,p3)示意图。

图5为本发明实施例中混淆流程obfuscator(fc,fh,rh)示意图。

图6为本发明实施例中解的映射和验证流程示意图。

图7为本发明实施例中将and2混淆为and3的示意图。

图8为本发明实施例中示例电路及其tseitin表示。

具体实施方式

如图1和图2所示,本实施例对计算透明的数据隐私保护方法的实施步骤包括:

1)私有云生成husk公式fh及husk公式的一个部分赋值解rh;

2)将硬件电路或者软件程序转换得到的cnf公式fc、husk公式fh、husk公式的解rh混淆生成新的cnf公式fo以及变量映射表mv,并将新的cnf公式fo发送给公共云上的sat求解器;当收到sat求解器针对新的cnf公式fo进行求解得到的求解结果so后跳转执行下一步;

3)根据变量映射表mv将求解结果so映射得到求解结果so的原始解sc;

4)根据变量映射表mv和求解结果so获取husk公式变量对应的赋值集合sh,判断husk公式的解rh和sh两者对应的赋值是否相等,如果相等则将原始解sc作为通过验证的原始解输出,否则判定原始解sc为未通过验证的噪音解,跳转执行步骤2)进行复算。

参见图2,本实施例中私有云生成husk公式fh表示generator(p1,p2,p3),如图3所示,步骤1)的详细步骤包括:

1.1)输入任意大质数p1、p2、p3;

1.2)将质数p1、p2、p3相乘得到合数o;

1.3)将合数o作为乘法器m的输出,并限制输入的i1和i2不能为1,根据式(1)得到乘法器的一个电路实例

式(1)中,表示输出确定后的乘法器的一个电路实例,m表示一个乘法器实现,i1表示乘法器的一个输入,i2表示乘法器的另一个输入,o表示乘法器的输出;

1.4)根据式(2)生成husk公式fh,生成husk公式的一个部分赋值解rh;

式(2)中,fh表示husk公式,tseitin表示将电路转化为cnf公式的编码器,使用将电路转化为cnf公式,表示乘乘法器的电路实例。

从密码学的角度看,husk公式和它的解是一个秘钥,用于加密cnf公式。而从sat问题求解的角度看,husk公式是一个可满足的cnf公式。产生可满足cnf公式的算法有多种,本文的混淆算法要求husk公式是一个特殊的可满足公式,首先,该公式有一个部分赋值解;另一方面,由于husk公式将作为新公式的一部分,它的结构应该与原公式的具有相似之处。为具体化,本文以来源于硬件电路cnf公式为考察对象,因此,本实施例中基于乘法器来构造husk公式。根据解空间结构的不同,定义三种husk公式。

定义1(单一husk公式):单一husk公式是仅有一个可满足解的cnf公式,并且解中变量的赋值是非特异的(不是全t或全f)。

定义2(部分husk公式):部分husk公式是仅有一个部分赋值解的可满足cnf公式,并且部分赋值解变量的赋值是非特异的(不是全t或全f)。m+n

定义3(部分赋值解):部分赋值解是指,假设cnf公式有m+n个变量且m和n均大于0,公式有k(k>=1)个可满足解,其中n个变量的赋值在k个解中都相同,另外m个变量的赋值在k个解中不全相同,具有部分赋值完全相同的这k个解就构成一个部分赋值解。

定义4(husks公式)husks公式是至少有三个解的可满足cnf公式。

首先构造一个最简单的部分husk公式,该公式有且只有一个部分赋值解,为叙述简便,本文给出的部分赋值解仅包含两个解。该husk公式采用质因数法构造:给定两个质数pa>pb,其二进制向量表示pa=<a1,a2,…,an,an+1,…,an+m>,pb=<a1,a2,…,an,bn+1,…,bn+m>。以p=pa×pb作为乘法器m的输出,并禁止乘法器输入等于1,假设乘法器为m(i1,i2,o),其中输入为i1和i2,输出为o,将该乘法器转换为cnf。由构造过程可知,使cnf满足的输入必然是(i1=pa,i2=pb)或(i1=pb,i2=pa)。由于两个解具有部分相同的赋值。由此得到具有一个部分赋值解的cnf公式fh,且令rh=<a1,a2,…,an>来表示这个部分赋值解。仅有一个可满足解的单一husk公式(见定义1)也可采用上述方法构造,只要加入限制pa≡pb,即pa恒等于pb。构造具有两个以上部分赋值解的husk公式也可采用类似的方法,本文给出一个简单构造方法:以一个两质数构成合数pb×pc替换原有质数pb作为新输入,由构造过程可知,使cnf公式满足的输入可以是s1=<i1=pa,i2=pb×pc>、s2=<i1=pb×pc,i2=pa>、s3=<i1=pa×pb,i2=pc>、s4=<i1=pc,i2=pa×pb>、s5=<i1=pa×pc,i2=pb>、s6=<i1=pb,i2=pa×pc>,这六种组合构成该公式的6个解,不妨任取其中四个解s1–s4,取解中赋值相同的变量所对应的文字集合作为rh;取另外两个解s5s6中赋值相同的变量所对应的文字集合作为sh;将得到两个部分赋值解rh和sh且两个部分赋值解所包含的解个数比例为2:1。使用类似的方法,通过选择合适的合数作为输入并且选择适当的解组合为部分赋值解,可以构造解结构可调制的husks公式。基于上述方法,可以构造仅有一个解的单一husk公式,有两个解的部分husk公式,以及两个以上解的husks公式。

参见图2,本实施例中生成husk公式的一个部分赋值解rh表示为passigner(p1,p2,p3),如图4所示,步骤1.4)中生成husk公式的一个部分赋值解rh的函数表达式如式(3)所示;

rh=(p1*p2|p3)∩(p1*p3|p2)(3)

式(3)中,rh表示husk公式的部分赋值解,p1、p2、p3是步骤1.1)产生的三个质数。

本实施例中部分赋值解rh表示的解个数是2,而全解空间的个数是6({p1|p2*p3,p2|p1*p3,p3|p1*p2,p2*p3|p1,p1*p2|p3,p1*p3|p2}),因此该部分解占全部解空间的比例为1:3。rh构造决定了空间的比例,策略有多种。

在设计可以防止电路结构信息泄露的混淆算法之前,首先讨论如何从cnf公式中获取电路结构信息。文献给出了从cnf公式中获取电路结构信息的算法细节,在介绍这些算法之前,首先了解算法中用到的概念。门g的cnf标记就是它的tseitin编码tseitin(g)。cnf标记中的每个子句称为门的特征子句。包含门中所有变量的特征子句称为关键子句。对应于门输出的变量称为输出变量。具有相同特征函数的门在同一种规则下都将被编码为相同的cnf标记。基于上述概念,roy等人首先将cnf公式转化超图g,而后在图中匹配cnf标记,通过同构子图的方式来恢复出cnf公式携带的门信息,最后,创建出最大无关集来表示恢复出来的电路信息。fu等人给出一种改进方法,基于关键子句和cnf标记的模式匹配检测出所有门,并构建最大匹配门的子集,潜在的攻击者可利用这些知识恢复出电路结构。因此,cnf标记和关键子句是需要保护的信息。为保护cnf公式以及解空间隐私信息,给出一个隐私保护的方法,该方法基于下面的事实和期望:事实1:改变公式中的cnf标记和关键子句可以使基于模式匹配或子图同构的电路结构恢复技术失效。事实2:混淆后的解空间不应该被缩小,否则会误导真实应用,例如验证等。期望1:鉴于事实2,解空间应该被扩大,以便误导公共云上包括sat求解器在内的第三方。期望2:可从混淆后的解中较快恢复出原公式的解。

如图2所示,本实施例中步骤2)中混淆生成新的cnf公式fo以及变量映射表mv表示为obfuscator(fc,fh,rh),如图5所示,步骤2)中混淆生成新的cnf公式fo以及变量映射表mv的详细步骤包括:

2.1)输入cnf公式fc、husk公式fh、husk公式的部分赋值解rh;

2.2)初始化变量f并赋值为cnf公式fc、变量f3为空;

2.3)判断变量f为空是否成立,如果变量f为空不成立则跳转执行下一步;否则,跳转执行步骤2.10);

2.4)从变量f中取出一个子句c,子句是若干文字的析取,文字是布尔变量(0或1)或是布尔变量的反;

2.5)从husk公式rh中随机取得一个文字lit;

2.6)获取子句c、-lit两者的并集c1,-lit表示文字lit取反后得到的文字;

2.7)判断子句c是否是关键子句,如果子句c不是关键子句,则跳转执行步骤2.3);否则如果子句c是关键子句,则跳转执行下一步;

2.8)获取子句c的输出文字olit;

2.9)将文字lit、输出文字olit取反后得到的文字-olit合并得到文字nc,将变量f3赋值为的变量f3原值、文字nc、并集c1三者的并集,跳转执行步骤2.3);

2.10)计算husk公式fh的子句平均长度al;

2.11)将变量f赋值为变量f3;

2.12)判断变量f为空是否成立,如果变量f为空不成立则跳转执行下一步;否则,跳转执行步骤2.16);

2.13)从变量f中取出一个子句c;

2.14)判断子句c的绝对值小于husk公式fh的子句平均长度al是否成立,如果成立则跳转执行下一步;否则,跳转执行步骤2.12);

2.15)判断文字lit属于子句c是否成立,如果成立则跳转执行步骤2.14);否则,跳转执行步骤2.12);

2.16)将cnf公式fc、husk公式fh中的变量重命名,得到变量映射表mv;

2.17)将husk公式fh、变量f3中的子句合并并进行混合排序得到新的cnf公式fo;

2.18)输出新的cnf公式fo、变量映射表mv。

如图2所示,公共云上的求解器针对fo=obfuscator(fc,fh,rh)上传的混淆后的数据进行求解表示为so=sat_solver(fo),得到求解结果so。根据变量映射表mv和求解结果so获取husk公式变量对应的赋值集合sh表示为mapper(so,fh),求解原始解sc表示为sc=mapper(so,fc)。

如图7所示,步骤4)的详细步骤包括:

4.1)输入求解结果so,变量映射表mv,husk公式的部分赋值解rh,所述变量映射表mv包括var域和formula域,var域为原始变量名,formula域为变量的公式来源;

4.2)初始化变量l并赋值为求解结果so;

4.3)判断变量l为空是否成立,如果不成立则跳转执行下一步;否则,将得到的真实解记录数组r作为公式fc的解sc输出,结束并退出;

4.4)从变量l中取出一个文字lit;

4.5)判断文字lit大于0是否成立,如果成立则设置变量var的值为文字lit,否则设置变量var的值为-lit,-lit表示文字lit取反后得到的文字;

4.6)根据变量var作为索引查找变量映射表mv得到变量rvar=m[var].var以及对应的公式来源m[var].formula;

4.7)判断变量rvar对应的公式来源m[var].formula等于cnf公式fc是否成立,如果成立则跳转执行步骤4.8);否则,跳转执行步骤4.9);

4.8)判断文字lit的值大于0是否成立,如果成立则设置真实解记录数组r的索引rvar的值r[rvar]为变量rvar,否则设置真实解记录数组r的索引rvar的值r[rvar]为变量rvar取反后得到的文字;跳转执行步骤4.3);

4.9)判断文字lit的值大于0是否成立,如果成立则以变量rvar作为索引获取部分赋值解rh中的文字rh[rvar],判断部分赋值解rh中的文字rh[rvar]等于变量rvar是否成立,如果成立则跳转执行步骤4.3),如果不成立则报错并跳转执行步骤4.11);如果文字lit的值大于0不成立,则跳转执行下一步;

4.10)判断部分赋值解rh中的文字rh[rvar]等于变量rvar取反后得到的文字-rvar是否成立,如果成立则跳转执行步骤4.3),如果不成立则报错并跳转执行步骤4.11);

4.11)判定原始解sc为未通过验证的噪音解,跳转执行步骤2)进行复算。

cnf公式是若干子句的合取;子句是若干文字的析取;文字是布尔变量或是它的反。下例中是一个典型的cnf公式。

包含4个变量x1,x2,x3,x4和四个子句其中x2称为变量x2的正文字,称为变量x2的负文字。子句中包含的文字的数量称为子句的长度,子句c的长度记做|c|,子句包含两个文字,其长度

sat求解的目标就是找到一组变量的赋值,使得任一子句都取值为真(t);而使一个子句为真,则要求子句中至少有一个文字取值为真。如果子句中所有文字都取值为假(f),则该子句取值为假;如果cnf公式中任一的子句取值为假,则该cnf公式取值为假。本实施例中t用数字1表示,f用0表示。

在上例中{x1=1,x2=1,x3=0,x4=0}可使每个子句取值为真,因此是sat的一个解。{x1=1,x2=1,x3=0,x4=1}也可以使每个子句为真,因此这一组取值也是cnf公式的一个解。这两组赋值可以合并表示为{x1=1,x2=1,x3=0},表明x1,x2,x3在这样的赋值下,无论x4取真还是假,都可使cnf公式取值为真。

如果存在使cnf公式为真的赋值,就称该cnf公式是可满足的(sat);反之,就称该cnf公式是不可满足的(unsat)。显然,公式是可满足的,而下例中的公式ψ是不可满足的。

ψ包含5个子句,由表一可知无论子句中的变量x1和x2如何取值,前4个子句都不能同时为真,导致ψ不可能取真,因此ψ是一个不可满足的cnf公式。彼此矛盾的这4个子句就称为公式ψ的不可满足核。

表1:真值表

本实施例的隐私保护方法根据电路结构感知(csa)策略和解空间保持(ssh)规则,将一个husk公式fh嵌入到原始公式fc中,产生一个新的cnf公式fo。通过电路结构(csa)感知策略,混淆器改变子句的文字集合以及公式中的子句集合,来隐藏原公式中的电路结构信息。通过ssh规则,混淆后的cnf公式的解空间完全包含原公式解空间。通过引入具有步骤一中产生的具有特殊解空间结构的husks公式,使得混淆后的解空间是原空间的上估计,即包含不是原解的噪音解;并且噪音解在所有解中的比例上限可确定。这就意味着混淆后的解包含所有的原始公式解,而且从混淆后的解中恢复出原始公式解的开销可以由husks公式动态调制。其中ssh规则已经在我们授权申请的专利中给出,为了叙述的完整性我们仍将在2.2)和2.3)分别介绍ssh规则和csa策略。为了在新公式中保持fc公式中的所有解,给出解空间保持(ssh)规则,使用husks公式fh和它的一个部分赋值解rh来混淆公式fc,以便保证混淆后公式具有上估计且投影等价的解空间。上估计意味着包含全部的解,并且存在噪音解的可能。投影等价意味着原解可以从混淆解中投影获得。解空间保持(ssh)规则bao包括:规则1:对任一子句c∈fc,从rh中任取出变量,并按下列规则插入到子句c:如果在rh中变量赋值是t,作为负文字;如果在rh中变量赋值是f,作为正文字;用新生成的子句代替原始子句c。规则2:用rh中的文字和fc中的变量创建新的子句,按下列规则:如果在rh中赋值是t,就作为正文字;如果在rh中赋值是f,就作为负文字。

对任意公式fc和可满足公式fh及其一个赋值rh,obf(fc,fh,rh)是在基于ssh规则将fc和fh混合后得到的公式。通过ssh规则,混淆器在子句中添加新文字并且创建新子句,同时保证解空间不被缩减。为了防止电路结构被恢复,在哪种子句中加入文字,创建何种类型的新子句,仍然是悬而未决的问题。由于门是电路的基本构件,并且cnf标记和关键子句是检测电路结构的关键。我们试图通过增加变量和子句来改变cnf的标记。为了误导潜在的攻击者,新加入的文字和子句还应和原有的子句构成新的合法标记,以便于将原始的公式无缝隐藏。以and2为例,图6是and2门a的cnf标记。将a添加到关键子句c1中,并且使用a和a产生子句c4,我们将门a从and2转变为and3,加入了一个输入变量a,并且该变量和原始输入变量b和c不可区分。or,nand,nor门和and门类似,均可以进行此类变换。

基于ssh和csa混淆流程obfssh_csa可以由如下动作1~动作4组合实现:输入:公式fc,部分husk公式fh,解rh。输出:公式fo。其中,fc包含关键子句和非关键子句,相应的子句集合不妨表示为fck和fcn。动作1:对关键子句c∈fck,从rh中取出文字lit,根据ssh规则1将lit加入到c。生成子句的集合记为s3。动作2:根据ssh规则2,使用rh中文字lit和c中的输出变量,产生新的子句,新产生的子句集合记为s4。动作3:将s3s4fh和fcn,混合产生fo。动作4:将fo中的变量通过置换更名,并生成相应的映射表m。在公共云上使用经典的sat求解器(minisat)完成求解并给出混淆后公式fo的解so。

混淆后公式fo解空间分析:经过混淆生成的cnf公式fo=obf(fc,fh,rh),包含了fc和fh的所有变量,这些变量可分为三类:fc变量、rh包含的变量fh中的除外的其他变量同时,fo包含了三类子句,fh中的子句ch,遵循ssh规则1修改过的fc中的子句chc,遵循ssh规则2新生成的子句cch。令ch子句满足的解是husks公式的解,而根据husks公式构造过程,它的解可分别计为rh和sh。当取值为rh时,根据ssh规则,子句chc就可以视为fc中的子句,而子句cch必然为真。此时,因此令子句ch,子句chc和子句cch这三类子句满足的解是原始公式解和husks公式的一个部分赋值解rh的组合,解的个数应为两者解个数的乘积。这一部分解空间计为sr。当取值为sh时,由于未符合ssh规则的要求,子句chc中的一些子句可能会必然为真,因此仅有部分子句可等同为fc中的子句,因此满足这部分约束的解是fc上估计,这就相当于扩展fc的解空间。而另一方面,无法保证子句cch必然为真,其结果取决于fc中的变量在混淆时的取值,这相当于缩减了fc的解空间。扩展和缩减的解空间综合考虑,其解的个数为两者的交集ss。两种情况综合起来,混淆后公式包含了原始公式和husks公式中的所有变量,令这些子句满足的解空间是sr+ss。其中ss中的解为噪音解。显然,噪音解的个数和实际解个数和rh和sh的选取相关,因此通过选择合适的rh就可以达到定制混淆后公式fo解空间的目的。私有云中的用户接收到来自公共云上求解器给出的解so后,在私有云中使用映射器和验证器将fc的解从so中过滤恢复出来。根据ssh规则,如果结果是unsat,那么原始的cnf公式也是unsat。如果结果是sat,映射器将解投影到fc和fh的变量上,获得sc和sh,分别作为公式fc和公式fh的候选解。验证器检测sh是否等于rh,如果等于表明sc就是fc的真实解。否则,sc是噪音解,此时需要重新从公共云中取得一个新的解。解的投影过程依赖于变量映射表m,它由混淆器创建,并传递给映射器使用。任意电路都是与(and)、或(or)、非(not)、异或、同或等基本门的组合。这些门都有对应的特征函数,下面给出常用基本门(非、与、或、同或、异或)的特征函数:

其中xi表示门的输入变量,j表示门的输入变量的个数,z表示输出变量。在硬件形式化验证中,在使用sat求解器求解之前,需要先将硬件电路和待验证属性转化为cnf公式,该过程称为tseitin编码。由于任意电路均可分解为二输入与门(and2)和非门(not)的组合,所以这里只给出and2和not的tseitin编码。对于非门z=not(x),由tseitin编码产生的cnf公式为而对于二输入与门z=and2(x1,x2),由tseitin编码产生的cnf公式为具有任意输入和功能的其他类型的门,它们的tseitin编码可以类似得到。对于一个由and2和not等基本门组成的复杂电路,tseitin编码产生的cnf公式为所有这些基本门的cnf公式的合取。以图8a)电路为例,该电路包含一个与门&和一个或门|。tseitin编码通过使用中间变量集合{d},分别将这两个门的功能表示为图8b)和图8c)的两个短句集合。则这两个短句集合的合取,就表示了整个电路的功能。对于任意电路c,经过tseitin编码都可以转换为对应的cnf公式记为软件代码向cnf公式的映射规则也基于tseitin编码,类似于硬件逻辑的验证。

综上所述,本实施例对计算透明的数据隐私保护方法基于cnf公式混淆算法来调整sat问题解空间,cnf公式混淆算法在实现输入信息隐私保护的同时,将sat问题由显式稀有事件ore问题转化为隐式稀有事件cre问题,解决sat问题输出结果隐私保护问题。本实施例对计算透明的数据隐私保护方法具有以下特点:首先通过混淆,原始cnf公式中的诸如电路结构等敏感信息在混淆后的cnf公式中不再存在,保证了输入数据的隐私性。第二,混淆后的cnf公式可已使用目前已有经典sat求解器求解。第三,通过采用特殊解空间结构的公式作为husk公式,使得混淆后的解空间是原公式的上估计,也就是包含了全部原始解,同时还引入了一些伪装的解(称为噪音解),这使得sat求解器也无法知道确切的解信息,保护了输出数据的隐私性,另外,由于引入了比例可定制的噪音解,在解的机密性和求解开销上取得折中。最后,混淆算法为多项式复杂度,而解恢复算法为线性复杂度,引入的sat求解开销在可接受范围内。

本实施例还提供一种对计算透明的数据隐私保护系统,包括计算机设备,计算机设备通过网络与公共云上的sat求解器相连,计算机设备被编程以执行本实施例前述对计算透明的数据隐私保护方法的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1