CN104601323B - 基于bdd解决社会主义百万富翁问题的方法 - Google Patents

基于bdd解决社会主义百万富翁问题的方法 Download PDF

Info

Publication number
CN104601323B
CN104601323B CN201510081626.4A CN201510081626A CN104601323B CN 104601323 B CN104601323 B CN 104601323B CN 201510081626 A CN201510081626 A CN 201510081626A CN 104601323 B CN104601323 B CN 104601323B
Authority
CN
China
Prior art keywords
client
confusion
key
node
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510081626.4A
Other languages
English (en)
Other versions
CN104601323A (zh
Inventor
古天龙
陈益师
徐周波
常亮
宁黎华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201510081626.4A priority Critical patent/CN104601323B/zh
Publication of CN104601323A publication Critical patent/CN104601323A/zh
Application granted granted Critical
Publication of CN104601323B publication Critical patent/CN104601323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开一种基于BDD解决社会主义百万富翁问题的方法,其客户端A和B分别将各自秘密输入值改写成m位带实数类型的连分数形式;服务器对两个m位带实数类型的连分数各个对应分量的安全比较;客户端A用特殊的BDDs结构对改写成连分数形式的实数的比较过程进行刻画,并对特殊BDDs结构进行混淆加密;服务器与客户端A执行2选1不经意传输协议得到结点密钥对BDDs进行遍历,将得到加密的叶子结点信息送给客户端A和B解密得到实数的比较结果。本发明可以实现客户端A和B的秘密输入值之间的安全比较。

Description

基于BDD解决社会主义百万富翁问题的方法
技术领域
本发明涉及安全多方计算领域,具体涉及一种基于BDD(二叉决策图)解决社会主义百万富翁问题的方法。
背景技术
安全多方计算(secure multi-party computation,SMC)是现代密码学领域的一个重要的分支,是信息安全方向一个重要的研究方向。安全多方计算的主要思想是:在一个分布式网络里,两方或多方根据他们的秘密输入执行的一个算法,使得各方得到一个正确输出的同时又保护自己输入信息的秘密性。因此安全多方计算能够最大限度利用私有数据而不破坏数据的隐私性。
1982年,华裔科学家姚期智用“百万富翁问题”的实例描述了安全两方计算问题,即两个百万富翁客户端A和客户端B希望在不透露自己财富值的前提下如何比较谁更富有,也即在保护私有信息的前提下,比较数据相等的问题。1987年Goldreich等人把安全两方计算推广到安全多方计算,在文献中他们提出了应用爬行电路(scrambled circuits)技术解决安全多方计算问题的通用解决方案,但是实际意义非常有限,因为即使一个非常简单的函数或者计算程序要转换成爬行电路都是非常困难的。同时,Goldreich还指出:直接将一般的安全多方计算协议的研究成果应用于特殊情形是不实际的,因为这会影响特殊情形下的计算效率或安全性。因此人们研究各种针对具体安全多方计算问题设计兼顾安全性与效率应用协议成为安全多方计算研究工作的重要组成部分。已经研究的主要问题有:百万富翁问题、安全多方集合计算问题、统计分析与科学计算、计算几何、数据挖掘等。
社会主义百万富翁问题是百万富翁问题的引申问题,该问题的描述为:客户端A有数值a,客户端B有数值b,能否安全地a和b的前提下比较a=b?这里安全的含义是指出了最后的结果(a=b或a≠b)以外,不泄露各自任何信息。现在社会主义百万富翁问题解决方案已经作为安全多方计算问题解决方案的基本模块,在一些应用系统中如网上拍卖、电子选举、身份认证等有着广阔的应用前景,因此得到广泛的研究。目前社会主义百万富翁问题的主要解决方案有:
(1)可以将应用爬行电路技术等一些解决通用的安全多方计算问题用于解决社会主义百万富翁问题,但是通用解决方案解决具体的安全多方计算问题是不实际的,由计算效率考虑具体的问题应该考虑具体的解决方案,比如一个非常简单的函数或者计算程序转换成爬行电路都非常困难。
(2)基于离散对数(DL),Diffie-Hellman(DH),Decision Diffie-Hellman(DDH)假设和零知识证明的计算复杂度为O(k)(k是安全参数)的解决方案。
(3)基于φ-隐藏假设和语义安全的加法同态公钥加密体制,在半诚实的第三方的帮助下实现无信息泄漏且具有公平性的解决方案。
(4)利用滑动窗口函数将两个比较大数相等问题转化为比较这个两个数对应的滑动窗口是否相等问题并结合交换加密函数设计了一个实现任意整数比较的解决方案。
然而,现有的社会主义百万富翁问题的解决方案只适用于整数之间的比较目前甚至尚未提出用于秘密输入值为分数的社会主百万富翁问题解决方案,而在工程或者其他应用中更经常碰到的是双方待比较的秘密输入取值范围为实数域。因此,人们一直在努力寻求适用范围更广的解决方案。
发明内容
本发明所要解决的是现有社会主义百万富翁问题的解决方案都比较复杂而且只适用于整数之间的比较的不足,提供一种基于BDD解决社会主义百万富翁问题的方法,其能够实现保护隐私的实数比较相等。
为解决上述问题,本发明是通过以下技术方案实现的:
一种基于BDD解决社会主义百万富翁问题的方法,包括如下步骤:
步骤A.客户端A和客户端B分别将各自秘密输入值改写成m位带实数类型的连分数,连分数经过混淆,在该m位混淆后的连分数前部添加h位的前混淆分量和后部添加s位的后混淆分量,形成h+m+s位的混淆连分数;其中m、h和s均为大于等于零的整数;
步骤B.客户端A和客户端B将各自的h+m+s位混淆的连分数用服务器的公钥加密后发送给服务器;服务器用自己的私钥解密得到客户端A和客户端B的h+m+s位混淆的连分数;服务器对解密得到的客户端A的混淆连分数的各位分量与客户端B的混淆连分数的各位分量进行依位比较,获得分量比较结果;
步骤C.客户端A构建BDD刻画两个h+m+s位的混淆连分数各个对应分量之间的比较过程,并对构建的BDD进行混淆加密;
步骤D.服务器根据分量比较结果的值与客户端A执行不经意传输协议得到取值密钥;服务器利用得到的取值密钥和上一结点得到的结点密钥进行遍历BDD,得到加密的结果,发送给客户端A和客户端B;客户端A和客户端B解密得到最终比较结果。
上述步骤A的具体过程如下:
步骤A1.客户端A和客户端B双方确定m和max,其中m为实数展开成的连分数分量位数,max为代表无穷大;
步骤A2.客户端A和客户端B事先约定各数值所代表的实数类型;
步骤A3.客户端A和客户端B将各自秘密输入值展开成连分数并在第一位分量前添加一位代表实数类型的分量;
步骤A4.客户端A和客户端B各自将包含实数类型的连分数末尾添加max或者截取前m位使得连分数位数统一为m位;
步骤A5.客户端B选择一种公钥加密方案,并生成一对公钥和私钥,并将公钥发送给客户端A;
步骤A6.客户端A与客户端B共享它产生的混淆参数;即客户端A利用客户端B的公钥与客户端B共享它随机产生的h位前混淆分量、s位后混淆分量以及混淆数组;
步骤A7.客户端A与客户端B分别在其m位的连分数利用数混淆数组进行混淆,并在混淆后的连分数前部添加h位的前混淆分量和后部添加s位的后混淆分量,形成h+m+s位的混淆连分数。
上述步骤A7中,用于混淆连分数的混淆数组为[λ1,λ2,...,λm]和[c1,c2,...,cm];此时
客户端A计算
αh+i=aii+ci(其中i=1,2,...,m);
客户端B计算
βh+i=bii+ci(其中i=1,2,...,m)。
上述步骤B的具体过程如下:
步骤B1.服务器选择一种公钥加密方案,并生成一对服务器的公钥和密钥,将公钥发送给客户端A和客户端B;
步骤B2.客户端A和客户端B分别利用服务器的公钥将h+m+s位的混淆连分数αi和客户端B的h+m+s位的混淆连分数βi加密后发送给服务器;
步骤B3.服务器对从客户端A和客户端B发送的消息进行解密后,得到客户端A的h+m+s位的混淆连分数αi和客户端B的h+m+s位的混淆连分数βi,之后对客户端A和客户端B发来的混淆连分数各个对应分量进行比较得到分量比较结果Ri;即
其中i=1,2,...,h+m+s。
上述步骤C的具体过程如下:
步骤C1.客户端A利用BDD刻画两个实数转换成h+m+s位混淆连分数后的比较过程;
步骤C2.客户端A选择一个对称加密方案,客户端A为BDD中的每一个叶子结点随机分配一个信息解密密钥,并为每个非叶子结点分配密钥组合即结点密钥sv、2个取值密钥其中取值密钥与分量比较结果Ri对应;其中i=1,2,...,h+m+s;
步骤C3.客户端A利用对称加密密钥组合为BDD中每个非叶子结点加密;
步骤C4.客户端A将混淆加密后的BDD结点发送给服务器并为服务器指出源结点的标签和结点密钥;
步骤C5.客户端B生成另一对公钥和私钥,并将公钥发送给客户端A,客户端A将叶子结点信息解密密钥用客户端B的公钥加密后发送给客户端B,客户端B用私钥解密得到叶子信息解密密钥。
上述步骤D的具体过程如下:
步骤D1.服务器根据混淆连分数各个对应分量的分量比较结果Ri与客户端A执行h+m+s次2选1不经意传输协议从客户端A得到取值密钥其中i=1,2,...,h+m+s,j=0或1,即每一次不经意传输只能得到取值密钥的一个;
步骤D2.服务器根据与客户端A的第一次2选1不经意传输协议得到取值密钥和已知的源结点密钥以及标签取得源节点对应服务器输入的子结点的标签和结点密钥;
步骤D3.服务器根据与客户端A的不经意传输协议得到的取值密钥和上一结点取得的子结点标签和结点密钥继续取得子结点后继结点的结点标签和密钥;如此重复可以得到叶子结点的标签和加密的比较结果;
步骤D4.服务器将比较结果发送给客户端A和客户端B;
步骤D5.客户端A和客户端B分别对比较结果解密得到两个实数比较的结果。
与现有技术相比,本发明具有如下特点:
1.基于混淆加密的BDD,使得参与双方在不透露自己秘密输入值的前提下实现比较是否相等,另外由于连分数经过混淆和添加了混淆分量,使得服务器也不会得到客户端A和客户端B的秘密输入值之间的比较结果。
2.用连分数表示实数,将实数之间的比较转化成连分数对应分量之间的比较,秘密输入值取值范围由其他解决方案的整数拓展到有理数(整数和分数)以及二次有理数,对于二次无理数之外的无理数,由于连分数对无理数良好的逼近效果,因此对其他无理数也可以得到良好的比较。
3.经过简单改造可以得到安全判断两方互为倒数、安全判断两方向量相等的解决方案。
附图说明
图1为本发明的一个示例模型。
图2为本发明的方法流程图。
图3为本发明用BDD刻画连分数各个分量比较过程。
图4为本发明将混淆BDD结构进行修改得到将两个实数判断是否互为倒数转换成两个连分数对应分量的比较过程的混淆BDD。
图5为本发明系统结构框架图。
具体实施方式
下面通过具体实施例对本发明进行详细说明:
为了表述的方便,首先给出一些记号的表示:
一种基于BDD的社会主义百万富翁问题的方法,可以划分成三个阶段:阶段I.将实数比较转换成m位的包含实数类型连分数比较;阶段II.客户端A构建BDD结构刻画h+m+s位混淆连分数对应各个分量的比较过程,并对BDD进行混淆加密;阶段III.服务器与客户端A执行不经意传输协议遍历BDD得到加密比较结果,客户端A和客户端B解密得到实数比较的结果。图1为本发明的一个示例模型。图2为本发明的方法流程图。
本发明优选实施例的输入:客户端A的秘密输入值a,客户端B的秘密输入值b。本发明优选实施例的预期输出:a=b或者a≠b。其具体步骤如下:
阶段I.将实数比较转换成m位的包含实数类型连分数比较。
步骤1.客户端A选取一种公钥加密方案,并生成一对公钥KA1和私钥KA2;将公钥KA1发送给客户端B。
步骤2.客户端B选取一个合适的m来表述连分数的分量位数,选取一个合适的max来表示无穷大,并将发送给客户端A。其中表示用KA1对m和max进行加密。
步骤3.客户端B选取一种公钥加密方案,并生成一对公钥KB1和私钥KB2;将公钥KB1发送给客户端A。
步骤4.客户端A执行得到m和max的值,如果客户端A同意m和max的值(m大于客户端A连分数分量位数,max大于客户端A连分数各个分量中的最大值)则回复发送给客户端B,否则另选m和max用客户端B的公钥加密后即将发送给客户端B。其中表示用KA2进行解密。表示用KB1对m和max进行加密。表示用KA1对m1和max1进行加密。
步骤5.客户端A和客户端B事先约定连分数中的一位分量的数值表示该连分数所表示实数的类型,不失一般性0表示有理数(整数和分数)、1表示二次无理数,2表示其他无理数。
步骤6.客户端A和客户端B将各自秘密输入值展开为如下带类型的连分数形式。如果实数r为有理数则连分数形式为[r2,r3,...,rn];实数r为无理数则连分数形式为[r2,r3,...,rn,...]。在连分数左侧新增一位分量r1连分数所表示的实数类型,因此带类型标记的有理数,二次无理数和无理数连分数表示分别为[r1,r2,r3,...,rn],[r1,r2,r3,...,rk,rk+1,...,rk+l]和[r1,r2,r3,...,rn,...]。其中二次无理数的连分数除了前几位分量外是按一定位数循环的,此处假定是k位后的l位分量循环。
步骤7.客户端A和客户端B各自将包含实数类型的连分数末尾添加max或者截取前m位使得连分数位数统一为m位,记m位包含实数类型的连分数为[r1,r2,r3,r4,...,rm];客户端A和客户端B的秘密输入的m位包含实数类型的连分数分别记为[a1,a2;a3,a4,...,am]和[b1,b2,b3,b4,...,bm]。
步骤6-7是将实数展开成m位带实数类型的连分数过程,其核心算法如下
输入:待表示为连分数的实数r和m
输出:r的连分数表示[r1,r2,…,rm]
步骤S11,r1表示该实数的类型
若r为有理数r1←0;
若r为二次无理数r1←1;
若r为其他无理数r1←2;
步骤S12,计算r2,r3,…,rm
i←1;
当εi≠0且i<m
do
{
i←i+1;
}
当εi=0且i<m
do{
ri←max;
i←i+1;
}
算法中表示不大于x的最大整数。
步骤8.客户端B生成一对公钥KB3和密钥KB4,并将公钥KB3发送给客户端A。
步骤9.客户端A和客户端B对各自连分数分量进行混淆。
客户端A随机构建h+s个混淆分量对[αi,βi]。即先随机构建h(h≥0)个混淆分量对[αi,βi](i=0,1,2,...,h),这h个混淆分量对[αi,βi]中有k(0≤k≤h)个[αi,βi]中的αi≠βi。再随机构建s(s≥0)个混淆分量对[αi,βi](i=h+m+1,h+m+2,...,h+m+s),这s个[αi,βi]中有l(0≤l≤h)个混淆分量对[αi,βi]中的αi≠βii。此外,客户端A再构造2个数组[λ1,λ2,...,λm](其中i=1,2,…,m时,λi≠0)和[c1,c2,...,cm]。
客户端A将上述构造出的h对[αii]、s对[αii]、[λ1,λ2,...,λm]和[c1,c2,...,cm]用客户端B的公钥KB3加密发送给客户端B,客户端B用私钥KB4解密。
步骤10.服务器选择一种公钥加密方案,并生成一对公钥KT1和私钥KT2,将公钥KT1发送给客户端A和客户端B。
步骤11.客户端A计算
αh+i=aii+ci(其中i=1,2,...,m);
并将αi(0<i≤h+m+s)用公钥KT1加密发送给服务器。
客户端B计算
βh+i=bii+ci(其中i=1,2,...,m);
并将βi(0<i≤h+m+s)用公钥KT1加密发送给服务器。
步骤12.服务器用私钥KT2执行解密得到αi和βi(0<i≤h+m+s),计算
阶段II.客户端A构建BDD结构刻画h+m+s位混淆连分数对应各个分量的比较过程,并对BDD进行混淆加密。
步骤13.客户端A用BDD刻画h+m+s位混淆连分数各个对应分量的比较过程。
步骤14.客户端A为每个结点分配一个结点标签label(v)。另外客户端A选择一个对称加密方案为BDD中每个非叶子结点分配一个密钥组合sv(其中i表示该结点变量xi在变量序x1<x2<,...,xh+m+s中的位置,j的值为0和1)并用结点密钥sv和取值密钥联合加密该结点的0-分支子结点标签label(low(v))和结点密钥s(low(v)),用结点密钥sv和取值密钥联合加密该结点的1-分支结点标签label(high(v))和结点密钥s(high(v))
其中变量序i=1,2,...,h+m+s结点的信息为:
变量序为i=h+m+s-1的结点的信息为:
两个叶子结点的结点信息为:(label(v),E(k))其中k=0或1表示两个实数相等或大于关系,E表示客户端A对k加密。
步骤15.客户端A将混淆加密后的BDD结点发送给服务器并为服务器指出源结点的标签label(1)和结点密钥s1
步骤16.客户端B生成一对公钥KB5和KB6,并将公钥KB5发送给客户端A,客户端A将叶子结点信息解密密钥D用公钥KB5加密即EKB5(D)发送给客户端B。
为了使客户端A和服务器在交互信息遍历BDD过程中,服务器根据得到的Ri对应的取值密钥而不能得到另一取值密钥,需要对BDD结构进行混淆加密后,客户端A与服务器执行不经意传输协议。BDD结构的混淆加密其主要体现在步骤14中,其核心算法如下:
输入:客户端A构建的BDD结构,有h+m+s个变量,变量序为x1<x2<…<xh+m+s,其中有2h+2m+2s+1个结点Pj(1≤j≤2h+2m+2s+1),每个结点对应结点变量序level(v)=i,表示结点变量xi在变量序x1<x2<...<xh+m+s中的位置,P1为根节点,i=1;
输出:密文h+m+s对值W1,W2,…,Wh+m+s
步骤S21,选择一个随机序列Π,其随机数由随机数生成器产生,令Π[1]=1;
步骤S22,生成结点密钥sv
步骤S23,生成h+m+s对取值密钥
步骤S24,循环for j=1 to 2h+2m+2s+1
do{
1.结点分配标签同时对结点分配结点密钥;
1.1为结点j的0-分支结点j0分配标签;
{
若0-分支结点是内部结点,则分配标签:
若0-分支是叶子结点,则分配标签:
}
1.2.为结点j的1-分支结点i0分配标签;
{
若是1-分支结点是内部结点,则分配标签:
若是1-分支结点是叶子结点,则分配标签:
}
2.为结点各个0-分支信息和1-分支信息用结点密钥和取值密钥加密得到各个结点结构
2.1若结点的变量序i=1,…,h+m+s-1,则结点的结构为:
2.2若结点的变量序i=h+m+s,则结点的结构为:
2.3若结点是叶子结点,则结点结构如下:
}end for;
图3为本发明用BDD刻画h+m+s位混淆连分数各个对应分量比较过程。图中BDD变量序为x1<x2<...<xh+m+s,每个非叶子结点v被标记为一个变量var(v)∈{x1,x2,...,xh+m+s},在本文中非叶子结点x1,x2,...,xh+m+s的取值为0和1,表示两个连分数对应分量之间是否相等,每个非叶子结点有0和1两个分支结点。0分支结点表示对应结点所标记的变量xi取0即两个连分数对应分量取相等关系时BDD的内部结点或叶子结点,用实线表示0-边;1分支结点表示对应结点所标记的变量xi取1即两个连分数对应分量取不等关系时BDD的内部结点或叶子结点,用虚线表示1-边;当0和1分支结点为同一结点,表示不管对应结点所标记的变量如xi取0或1即两个连分数对应分量之间取等于或者不等于后BDD指向同一个内部结点或叶子结点,用粗实线表示该分支。叶子结点表示用连分数表示的两个实数之间是否相等,用0和1分别表示等于和不等于。图4为本发明将混淆BDD结构进行修改得到将两个实数判断是否互为倒数转换成两个连分数对应分量的比较过程的混淆BDD。
阶段III.服务器执行计算得到加密比较结果,客户端A和客户端B解密得到实数比较的结果。
步骤17.服务器根据步骤12中得到的Ri与客户端A执行2选1不经意传输协议,如果Ri≠0,服务器将从客户端A得到取值密钥如果Ri=0,服务器将从客户端A得到取值密钥不经意传输协议的作用是让客户端A不能得到服务器的输入Ri,而服务器也不能得到每一对取值密钥中的另外的一个取值密钥。
步骤18.服务器根据步骤15中客户端A指出的源结点标签label(1)找到BDD的源结点,以及客户端A指点的源结点密钥s1和步骤17中得到取值密钥就可以解密出源结点对应服务器输入的分支结点的标签label(v)和该子结点的结点密钥sv,得到的结点密钥sv和不经意传输得到该子结点的取值密钥又可以得到该子结点的子结点的标签label(v)和结点密钥,如此循环知道得到叶子结点的标签和E(k)。
步骤17-18是对混淆加密的BDD进行解密的过程,其核心算法如下
输入:密文h+m+s对取值密钥
输出:加密的叶子结点中的比较结果E(k):
步骤S31,从初始结点依次开始解密,
步骤S32,循环for i=1 to h+m+s
do{
每次循环只能得到或者用于解密得到0-分支节点标签和结点密钥或者1-分支节点标签和结点密钥
1.若i=1,2,…,h+m+s-1,其结点结构:
2.若i=h+m+s,其结点结构:
3.否则为叶子结构,其结点结构:
}end for(终止条件满足)
步骤S33,将E(k)发送给客户端A和客户端B。
步骤19.服务器将加密的比较结果E(k)发送给客户端A和客户端B。
步骤20.客户端A和客户端B对E(k)解密得到他们秘密输入值的比较结果。
上述方法的三个阶段分别对应了基于BDD解决社会主义百万富翁问题系统,如图5所示,该系统的其主要的功能模块如下:
公钥加密单元:用于参与者之间的安全信息传递交互;如客户端A和客户端B之间共享m、max、数组[λ1,λ2,...,λm]和[c1,c2,...,cm]、前后h和s对[αii]混淆量以及叶子结点解密密钥,客户端A、客户端B安全传递αii,给服务器;
实数-连分数转换单元:客户端将各自的秘密输入实数转换成m位包含实数的连分数形式并混淆,且在m位混淆后的连分数的前后加入混淆分量得到h+m+s位的混淆连分数;
连分数比较单元:将客户端A和客户端B的两个h+m+s位的混淆连分数的对应分量进行比较得到Ri(0<i≤h+m+s);
BDD刻画连分数比较过程单元:客户端A建立用于刻画h+m+s位混淆连分数各个对应分量比较过程;
混淆加密BDD单元:对BDD加以混淆加密。其包括BDD刻画连分数比较过程单元、标签分配单元、密钥分配单元;
标签分配单元:为BDD的各个结点随机分配一个标签;
密钥分配单元:为每一个结点分配一个结点密钥sv和为属于同一个变量序的结点统一分配一对取值密钥并用sv对结点v的0-分支节点的标签和结点密钥进行加密,用sv对结点v的1-分支节点的标签和结点密钥进行加密。
2选1不经意传输单元:用于服务器和客户端A进行保护隐私的信息交互,使得服务器输入对应的取值密钥,并对客户端A的另外的取值密钥一无所知,且客户端A也不会得知服务器得到的输入Ri
信息处理单元:为服务器和客户端提供信息交互接口等综合服务。
本发明能够在不泄露参与者秘密输入值的前提下比较双方秘密输入值的是否相等,其中参与者的秘密输入值不仅可以是整数、分数、二次无理数、或者其他无理数。利用连分数对无理数的良好的逼近效果,只要两个无理数的差的绝对值大于一定的精度,连分数的分量个数m足够大则很容易得到无理数不等的结果,否则判断两个无理数近似相等。

Claims (6)

1.一种基于BDD解决社会主义百万富翁问题的方法,其特征是,包括如下步骤:
步骤A.客户端A和客户端B分别将各自秘密输入值改写成m位带实数类型的连分数,连分数经过混淆,在该m位混淆后的连分数前部添加h位的前混淆分量和后部添加s位的后混淆分量,形成h+m+s位的混淆连分数;其中m、h和s均为大于等于零的整数;
步骤B.客户端A和客户端B将各自的h+m+s位混淆的连分数用服务器的公钥加密后发送给服务器;服务器用自己的私钥解密得到客户端A和客户端B的h+m+s位混淆的连分数;服务器对解密得到的客户端A的混淆连分数的各位分量与客户端B的混淆连分数的各位分量进行依位比较,获得分量比较结果;
步骤C.客户端A构建BDD刻画两个h+m+s位的混淆连分数各个对应分量之间的比较过程,并对构建的BDD进行混淆加密;
步骤D.服务器根据分量比较结果的值与客户端A执行不经意传输协议得到取值密钥;服务器利用得到的取值密钥和上一结点得到的结点密钥进行遍历BDD,得到加密的结果,发送给客户端A和客户端B;客户端A和客户端B解密得到最终比较结果。
2.根据权利要求1所述的BDD解决社会主义百万富翁问题的方法,其特征在于,所述步骤A的具体过程如下:
步骤A1.客户端A和客户端B双方确定m和max,其中m为实数展开成的连分数分量位数,max为代表无穷大;
步骤A2.客户端A和客户端B事先约定各数值所代表的实数类型;
步骤A3.客户端A和客户端B将各自秘密输入值展开成连分数并在第一位分量前添加一位代表实数类型的分量;
步骤A4.客户端A和客户端B各自将包含实数类型的连分数末尾添加max或者截取前m位使得连分数位数统一为m位;
步骤A5.客户端B选择一种公钥加密方案,并生成一对公钥和私钥,并将公钥发送给客户端A;
步骤A6.客户端A与客户端B共享它产生的混淆参数;即客户端A利用客户端B的公钥与客户端B共享它随机产生的h位前混淆分量、s位后混淆分量以及混淆数组;
步骤A7.客户端A与客户端B分别在其m位的连分数利用数混淆数组进行混淆,并在混淆后的连分数前部添加h位的前混淆分量和后部添加s位的后混淆分量,形成h+m+s位的混淆连分数。
3.根据权利要求2所述的BDD解决社会主义百万富翁问题的方法,其特征在于,所述步骤A7中,客户端A和客户端B的连分数分别为[a1,a2;a3,a4,...,am]和[b1,b2,b3,b4,...,bm],用于混淆连分数的混淆数组为[λ1,λ2,...,λm]和[c1,c2,...,cm];此时
客户端A计算
αh+i=aii+ci,其中i=1,2,...,m;
客户端B计算
βh+i=bii+ci,其中i=1,2,...,m。
4.根据权利要求1所述的BDD解决社会主义百万富翁问题的方法,其特征在于,所述步骤B的具体过程如下:
步骤B1.服务器选择一种公钥加密方案,并生成一对服务器的公钥和密钥,将公钥发送给客户端A和客户端B;
步骤B2.客户端A和客户端B分别利用服务器的公钥将h+m+s位的混淆连分数αi和客户端B的h+m+s位的混淆连分数βi加密后发送给服务器;
步骤B3.服务器对从客户端A和客户端B发送的消息进行解密后,得到客户端A的h+m+s位的混淆连分数αi和客户端B的h+m+s位的混淆连分数βi,之后对客户端A和客户端B发来的混淆连分数各个对应分量进行比较得到分量比较结果Ri;即
<mrow> <msub> <mi>R</mi> <mi>i</mi> </msub> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msub> <mi>&amp;alpha;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&amp;beta;</mi> <mi>i</mi> </msub> <mo>=</mo> <mn>0</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>1</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <msub> <mi>&amp;alpha;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&amp;beta;</mi> <mi>i</mi> </msub> <mo>&amp;NotEqual;</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>;</mo> </mrow>
其中i=1,2,...,h+m+s。
5.根据权利要求1所述的BDD解决社会主义百万富翁问题的方法,其特征在于,所述步骤C的具体过程如下:
步骤C1.客户端A利用BDD刻画两个实数转换成h+m+s位混淆连分数后的比较过程;
步骤C2.客户端A选择一个对称加密方案,客户端A为BDD中的每一个叶子结点随机分配一个信息解密密钥,并为每个非叶子结点分配密钥组合即结点密钥sv、2个取值密钥其中取值密钥与分量比较结果Ri对应;其中i=1,2,...,h+m+s;
步骤C3.客户端A利用对称加密密钥组合为BDD中每个非叶子结点加密;
步骤C4.客户端A将混淆加密后的BDD结点发送给服务器并为服务器指出源结点的标签和结点密钥;
步骤C5.客户端B生成另一对公钥和私钥,并将公钥发送给客户端A,客户端A将叶子结点信息解密密钥用客户端B的公钥加密后发送给客户端B,客户端B用私钥解密得到叶子信息解密密钥。
6.根据权利要求1所述的BDD解决社会主义百万富翁问题的方法,其特征在于,所述步骤D的具体过程如下:
步骤D1.服务器根据混淆连分数各个对应分量的分量比较结果Ri与客户端A执行h+m+s次2选1不经意传输协议从客户端A得到取值密钥其中i=1,2,...,h+m+s,j=0或1,即每一次不经意传输只能得到取值密钥的一个;
步骤D2.服务器根据与客户端A的第一次2选1不经意传输协议得到取值密钥和已知的源结点密钥以及标签取得源节点对应服务器输入的子结点的标签和结点密钥;
步骤D3.服务器根据与客户端A的不经意传输协议得到的取值密钥和上一结点取得的子结点标签和结点密钥继续取得子结点后继结点的结点标签和密钥;如此重复可以得到叶子结点的标签和加密的比较结果;
步骤D4.服务器将比较结果发送给客户端A和客户端B;
步骤D5.客户端A和客户端B分别对比较结果解密得到两个实数比较的结果。
CN201510081626.4A 2015-02-15 2015-02-15 基于bdd解决社会主义百万富翁问题的方法 Active CN104601323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510081626.4A CN104601323B (zh) 2015-02-15 2015-02-15 基于bdd解决社会主义百万富翁问题的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510081626.4A CN104601323B (zh) 2015-02-15 2015-02-15 基于bdd解决社会主义百万富翁问题的方法

Publications (2)

Publication Number Publication Date
CN104601323A CN104601323A (zh) 2015-05-06
CN104601323B true CN104601323B (zh) 2018-03-09

Family

ID=53126854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510081626.4A Active CN104601323B (zh) 2015-02-15 2015-02-15 基于bdd解决社会主义百万富翁问题的方法

Country Status (1)

Country Link
CN (1) CN104601323B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3676986B1 (en) * 2017-08-31 2022-01-19 Visa International Service Association Single node multi-party encryption
CN108805565B (zh) * 2018-05-17 2022-01-18 深圳前海微众银行股份有限公司 基于区块链的承诺存在性证明方法、设备及可读存储介质
CN110299987B (zh) * 2019-06-24 2022-03-29 暨南大学 一种基于同态加密的百万富翁问题解决方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
保护私有信息的数据比较及其解决方案;徐周波,陈益师,古天龙等;《计算机科学》;20150210;5页右栏第4节,第3页左栏第3.1节,右栏第3.2节,第4页右栏第1-4段,第4页最后一段至第5页左栏倒数第2段 *
姚氏百万富翁问题的高效解决方案;查俊,苏锦涛,闫少阁等;《计算机工程》;20100731;全文 *
理性的安全两方计算协议;张恩,蔡永泉;《计算机研究与发展》;20131231;全文 *

Also Published As

Publication number Publication date
CN104601323A (zh) 2015-05-06

Similar Documents

Publication Publication Date Title
WO2022237450A1 (zh) 多方安全计算方法、装置、设备及存储介质
Halevi et al. Secure computation on the web: Computing without simultaneous interaction
CN110414981B (zh) 一种支持ZKPs的同态加密方法和区块链交易金额加密方法
CN107196926A (zh) 一种云外包隐私集合比较方法与装置
CN101814985B (zh) 应用多混沌映射多动态s盒的分组密码系统
Kadhim et al. Proposal new s-box depending on DNA computing and mathematical operations
CN114866225A (zh) 一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法
CN117118617B (zh) 一种基于模分量同态的分布式门限加解密方法
Biswas et al. A DNA cryptographic technique based on dynamic DNA encoding and asymmetric cryptosystem
CN104601323B (zh) 基于bdd解决社会主义百万富翁问题的方法
Sekar et al. Comparative study of encryption algorithm over big data in cloud systems
CN114465708A (zh) 隐私数据处理方法及装置、系统、电子设备、存储介质
Lu Cryptanalysis of block ciphers
Tiwari Cryptography in blockchain
CN104144057B (zh) 一种生成安全解密密钥的cp‑abe方法
CN117353912A (zh) 基于双线性映射的三方隐私集合交集基数计算方法及系统
Kapalova et al. DEVELOPMENT OF A NEW LIGHTWEIGHT ENCRYPTION ALGORITHM.
Ahmed et al. Cryptography and State-of-the-art Techniques
CN113901506B (zh) 一种支持密态下多方私有数据操作的后量子加密方法
Shi et al. A restricted quantum deniable authentication protocol applied in electronic voting system
Schneider Lean and fast secure multi-party computation: Minimizing communication and local computation using a helper
Yin et al. A symmetric key exchange protocol bsaed on virtual S-box
Yang et al. Oblivious Polynomial Evaluation from Elliptic Code-based Symmetric Homomorphic Encryption
Dwivedi et al. Image encryption using curved scrambling and diffusion
CN113746829B (zh) 多源数据的关联方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant