CN110299987A - 一种基于同态加密的百万富翁问题解决方法 - Google Patents
一种基于同态加密的百万富翁问题解决方法 Download PDFInfo
- Publication number
- CN110299987A CN110299987A CN201910549380.7A CN201910549380A CN110299987A CN 110299987 A CN110299987 A CN 110299987A CN 201910549380 A CN201910549380 A CN 201910549380A CN 110299987 A CN110299987 A CN 110299987A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- data side
- privately owned
- data
- encryption algorithm
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于同态加密的百万富翁问题解决方法,对第一数据方的数据进行编码得到第一数据方编码集,对第二数据方的数据进行编码得到第二数据方编码集,通过比较第一数据方编码集和第二数据方编码集是否存在相同元素,结合比较协议和同态加密算法,获取两个数据方数据的比较结果,但两个数据方之间不能获取对方数据信息;保证双方数据安全,即提高了安全性。
Description
技术领域
本发明涉及信息计算的研究领域,特别涉及一种基于同态加密的百万富翁问题解决方法。
背景技术
随着电子商务发展,涉及敏感数据的计算通常会在网上进行。人们可以访问数据库获取信息,在没有很多限制下可以随时随地完成商业交易,同时人们对于网络服务的要求是快速且安全。不受信任的网络实体和主机会给网络服务带来很多的挑战和问题。为了防止信息泄漏和保护这些实体和主体的安全性,需要使用各种加密技术。解决这些问题是密码学研究的热点,对电子商务和数据挖掘有非常深远的意义。电子商务应用会涉及判断多个数字的大小。在很多情况下,这些数字包含一些敏感信息,敏感信息一旦被泄露,很可能会使人们面临利益受损,同时考虑减少通信开销,希望不借助第三方来完成这些操作。
百万富翁的问题就是不泄露两个参与方拥有的数字信息的情况,确定哪个数字更大。这一问题可以在电子商务中有应用。在电子商务的拍卖定价过程中,为了参与方不会受到任何利益损失,竞价比较需要保证安全性,不会泄露任何信息。支持这样拍卖需要安全的比较协议。解决百万富翁的问题已经是密码学中研究热点,目前很多学者研究给出不同的解决的方案。其中有些方案会存在一些缺点,比如计算量较大、通信开销比较大、实现较难等。
Hsiao-Ying Lin等人在文献《An Efficient Solution to The Millionaires’Problem Based on Homomorphic Encryption》主要对百万富翁问题提出了一种有效的解决方案。这个方案主要利用0编码与1编码,将百万富翁问题转换为集合的交集问题。这个方案效率比较高,但是存在安全性问题。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于同态加密的百万富翁问题解决方法,解决百万富翁的问题类似于判断双方持有的数字哪个比较大的问题。由于在很多应用场景下,用户需要用自己的数据与任何一方进行比较,且比较过程中,需要隐私保护,同时不会学习到对方的任何信息。针对现存解决百万富翁问题的方案不足之处,本发明在原方案进行改进,提高了方案的安全性。
本发明的目的通过以下的技术方案实现:
一种基于同态加密的百万富翁问题解决方法,其特征在于,包括以下步骤:
S1、设定G为同态加密算法的生成密钥过程,E为同态加密算法的加密过程,D为同态加密算法的解密过程;第一数据方有一个私有输入x,将私有输入x转为二进制数,即二进制值,则有x=xnxn-1…x1,对第一数据方私有输入x的二进制数进行1编码,得到编码集
S2、通过生成密钥过程G产生私钥sk和公钥pk;
S3、准备表T[i][j],其中,i∈{0,1},1≤j≤n,根据第一数据方私有输入x的二进制值和位数对应T表的位置进行密文填充,T[xi′][j′]=E(z),其中z∈{0,1},E(z)是对z进行同态加密的密文;ri′为随机选取的一个数,E(ri′)是对ri′进行同态加密的密文;1≤i′≤n,1≤j′≤n,是xi′的相反值,得到填充表格:
{T[x1][1]=E(z),
…,
T[xn][n]=E(z),
再将填充表格发送第二数据方;
S4、第二数据方根据自己的私有输入y,转为二进制数,则有y=ynyn-1…y1,对第二数据方私有输入的二进制数进行0编码,得到编码集 即编码集中有d个元素,集合中一个元素Hk,k∈{1,2,...,d},其中根据中每一位有对应的i″≤l≤n,1≤k≤d,随机选取一个数tl,进行计算:
得到:
S5、根据Hk中每一位有对应的计算:
当集合的元素有d个,但不够n个,则需要准备n-d个随机密文zj″,zj″=E(uj″),1≤j″≤n-d,所述随机密文zj″是对随机数进行同态加密的密文;
把{c1,c2,...,cd}和{z1,z2,...,zn-d}两个密文集合组合成一个密文集合,再将组合后密文集合中每个元素进行随机置换位置,得到密文集合{C1,C2,...,Cn},再把密文集合{C1,C2,...,Cn}发送给第一数据方;
S6、第一数据方将接收到的集合{C1,C2,...,Cn}进行同态加密中的解密过程,得到D(Cl′)=ml′,1≤l′≤n,当且仅当存在ml′=z(z∈{0,1}),则有x>y,否则x<y。
进一步地,所述同态加密算法为Paillier加密算法和ElGamal加密算法其中一种。
进一步地,所述产生私钥和公钥,具体为:
当第一数据方使用Paillier加密算法,执行生成密钥过程G,选取两个素数p,q,计算N=p·q,随机选择g,由集合{1,2,...,N-1}中与N互素的整数构成,同时使得:
gcd(L(gλ(N)modN2),N)=1,
定义L(x′)=(x′-1)/N,
则有:公钥为pk=(g,N),私钥为sk=λ(N)=lcm((p-1),(q-1));
当第一数据方使用ElGamal加密算法,执行生成密钥过程G,设p=2q+1,p和q为素数,Gq是价为素数q的循环群,g是Gq的生成元,
则有:公钥为:pk=h=g-α,私钥为:sk=α∈Zq,Zq由集合{1,2,...,q-1}构成。
进一步地,所述填表具体为:
当第一数据方使用Paillier加密算法,第一数据方根据私有输入x的二进制值xnxn-1…x1和二进制的位数对应T表的位置进行密文填充,
计算:
其中,1≤β≤n,1≤i′≤n,1≤j′≤n,r′β为随机数, 由集合{1,2,...,N-1}中与N互素的整数构成,第一数据方的公钥为pk=(g,N);
计算:
其中,1≤β≤n,1≤i′≤n,1≤j′≤n,r″β为随机数, 由集合{1,2,...,N-1}中与N互素的整数构成,ri′为随时选取的一个数,ri′∈ZN,ZN={0,...,N-1}是关于模加法运算的群;1≤i′≤n,是xi′的相反值;
得到填充后的表格:
{T[x1][1]=E(0),
...,
T[xn][n]=E(0)
再将填充表格发送到第二数据方;
当第一数据方使用ElGamal加密算法,第一数据方根据私有输入x的二进制值xnxn-1…x1和二进制的位数对应T表的位置进行密文填充,
计算:
其中,h=g-a,r′β′是随机数,1≤β′≤n,1≤i′≤n,1≤j′≤n,r′β′∈Zq,Zq由集合{1,2,...,q-1}构成;
计算:
其中,ri′和r″β′是随机数,1≤β′≤n,1≤i′≤n,1≤j′≤n,ri′∈Gq,Gq是价为素数q的循环群;
得到填充后的表格:
{T[x1][1]=E(1),
...,
T[xn][n]=E(1)
再将填充表格发送到第二数据方。
进一步地,所述步骤S4具体为:
第二数据方接收到T表后,根据自己的私有输入y转为二进制数,则有y=ynyn-1…y1,对第二数据方私有输入的二进制数进行0编码,得到编码集其中即编码集有d个元素,编码集中一个元素Hk,k∈{1,2,...,d},其中根据中每一位有对应的i″≤l≤n,1≤k≤d,进行计算,根据加密方法不同,则有以下情况:
当T表中的密文是使用Paillier加密算法加密的,对中每一位有对应的计算,随机选取一个数tl, 由集合中与N互素的整数构成,进行计算:
得到:
当T表中的密文是使用ElGamal加密算法加密的,对中每一位有对应的计算时,随机选取一个t′l,t′l∈Zq,Zq由集合{1,2,...,q-1}构成,进行计算:
得到:
其中,i″≤l≤n,1≤k≤d。
进一步地,所述随机密文准备过程具体如下:
第二数据方根据编码集中每个元素Hk,k∈{1,2,...,d},和Hk中每一位有对应的进行计算:
其中,i″≤l≤n,1≤k≤d;
当编码集的元素有d个,但不够n个,则需要准备n-d个随机密文zj″,其中分两种情况:
当T表中的密文是Paillier加密算法加密的,准备n-d个随机密文zj″,其中uj″为随机选取的一个数,uj″∈ZN,ZN={0,...,N-1}是一个关于模N加法运算的群;r″′j″为一个随机数, 由集合{1,2,...,N-1}中与N互素的整数构成;
当T表中的密文是ElGamal加密算法加密的,准备n-d个随机密文zj″,其中uj″为随机选取的一个数,uj″∈Gq,Gq是价为素数q的循环群,r″′j″为一个随机数,r″′j″∈Zq,Zq由集合{1,2,...,q-1}构成。
进一步地,所述解密具体如下:
第一数据方将接收到的集合{C1,C2,…,Cn}中Cl′进行同态加密中的解密过程,分两种情况:
当集合{C1,C2,…,Cn}中的密文是Paillier加密算法加密的,对集合{C1,C2,…,Cn}中每个元素Cl′进行解密,其计算过程:
其中λ(N)=lcm((p-1),(q-1)),L(x′)=(x′-1)/N,1≤l′≤n,当且仅当存在ml′=0,则有x>y,说明第一数据方的私有输入x大于第二数据方的私有输入y,否则x<y,说明第一数据方的私有输入x小于第二数据方的私有输入y;
当集合{C1,C2,...,Cn}中的密文是ElGamal加密算法加密的,对集合{C1,C2,...,Cn}中每个元素Cl′进行解密,其计算过程:
D(Cl′)=(Cl′,1,Cl′,2)=Cl′,2·Cl′,1α=ml′,
其中,私钥sk=α,当且仅当存在ml′=1,则有x>y,说明第一数据方的私有输入x大于第二数据方的私有输入y,否则x<y,说明第一数据方的私有输入x小于第二数据方的私有输入y。
进一步地,所述表T[i][j]为2*n的表。
进一步地,所述把{c1,c2,...,cd}和{z1,z2,...,zn-d}组合的具体过程为:
第二数据方计算得到{c1,c2,...,cd}和{z1,z2,...,zn-d},将{c1,c2,...,cd}和{z1,z2,...,zn-d}两个密文集合组合成一个密文集合{c1,c2,...,cd,z1,z2,...,zn-d},再将密文集合{c1,c2,...,cd,z1,z2,...,zn-d}中每个元素随机置换位置得密文集合{C1,C2,...,Cn},例{C1,C2,...,Cn}={c2,zn-d,...,cn},再把集合{C1,C2,...,Cn}发送给第一数据方。
本发明与现有技术相比,具有如下优点和有益效果:
本发明采用选取随机数进行计算,解决百万富翁问题,即类似于判断双方持有的数字哪个比较大的问题,同时数据方不会根据解密后的明文得到另外数据方的任何信息;由于在很多应用场景下,用户需要用自己的数据与任何一方进行比较,且比较过程中,需要隐私保护,同时不会学习到对方的任何信息,使得比较双方隐私都得到保护;本发明采用0编码和1编码求交集和同态加密算法结合,数据方本地计算密文,利用同态性质可以支持密文加法运算或密文乘法运算,减少计算代价,同时两个数据方只是交互一次,减少通信开销。
附图说明
图1是本发明所述一种基于同态加密的百万富翁问题解决方法的方法流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
一种基于同态加密的百万富翁问题解决方法,如图1所示,包括以下步骤:
第一数据方对拥有的数据进行1编码得到编码集第二数据方对拥有的数据进行0编码得到编码集通过比较集合中每个元素是否存在相同的元素,就能判断哪个数比较大,解决百万富翁问题,需要运用这个比较协议,同时结合同态加密算法,这样就只知道两个数据的比较结果,而不会知道关于数据任何信息;
第一步、设定G为同态加密算法的生成密钥过程,E为同态加密算法的加密过程,D为同态加密算法的解密过程;所述同态加密算法包含Paillier加密算法和ElGamal加密算法;
第一数据方有一个私有输入x,将私有输入x转为二进制数,即二进制值,则有x=xnxn-1…x1,对第一数据方私有输入x的二进制数进行1编码,得到编码集
第二步、通过生成密钥过程G产生私钥sk和公钥pk;
具体如下:
当第一数据方使用Paillier加密算法,执行生成密钥过程G,选取两个素数p,q,计算N=p·q,随机选择g, 由集合{1,2,...,N-1}中与N互素的整数构成,同时使得:
gcd(L(gλ(N)modN2),N)=1,
定义L(x′)=(x′-1)/N,
则有:公钥为pk=(g,N),私钥为sk=λ(N)=lcm((p-1),(q-1));
当第一数据方使用ElGamal加密算法,执行生成密钥过程G,设p=2q+1,p和q为素数,Gq是价为素数q的循环群,g是Gq的生成元,
则有:公钥为:pk=h=g-α,私钥为:sk=α∈Zq,Zq由集合{1,2,...,q-1}构成。
第三步、准备表T[i][j],所述表T[i][j]为2*n的表,其中,i∈{0,1},1≤j≤n,根据第一数据方私有输入x的二进制值和位数对应T表的位置进行密文填充,T[xi′][j′]=E(z),其中z∈{0,1},E(z)是对z进行同态加密的密文;ri′为随机选取的一个数,E(ri′)是对ri′进行同态加密的密文;1≤i′≤n,1≤j′≤n,是xi′的相反值,得到填充表格:
{T[x1][1]=E(z),
…,
T[xn][n]=E(z),
再将填充表格发送第二数据方;
其中,所述填表具体如下:
当第一数据方使用Paillier加密算法,第一数据方根据私有输入x的二进制值xnxn-1…x1和二进制的位数对应T表的位置进行密文填充,
计算:
其中,1≤β≤n,1≤i′≤n,1≤j′≤n,r′β为随机数, 由集合{1,2,...,N-1}中与N互素的整数构成,第一数据方的公钥为pk=(g,N);
计算:
其中,r″β为随机数, 由集合{1,2,...,N-1}中与N互素的整数构成,ri′为随时选取的一个数,ri′∈ZN,ZN={0,...,N-1}是关于模加法运算的群;1≤i′≤n,是xi′的相反值;
得到填充后的表格:
{T[x1][1]=E(0),
...,
T[xn][n]=E(0)
再将填充表格发送给第二数据方;
当第一数据方使用ElGamal加密算法,第一数据方根据私有输入x的二进制值xnxn-1…x1和二进制的位数对应T表的位置进行密文填充,
计算:
其中,h=g-a,r′β′是随机数,1≤β′≤n,1≤i′≤n,1≤j′≤n,r′β′∈Zq,Zq由集合{1,2,...,q-1}构成;
计算:
其中,ri′和r″β′是随机数,1≤β′≤n,1≤i′≤n,1≤j′≤n,ri′∈Gq,Gq是价为素数q的循环群;
得到填充后的表格:
{T[x1][1]=E(1),
...,
T[xn][n]=E(1)
再将表格发送给第二数据方。
第四步、具体为:
第二数据方接收到T表后,根据自己的私有输入y转为二进制数,则有y=ynyn-1…y1,对第二数据方私有输入的二进制数进行0编码,得到编码集其中即编码集有d个元素,编码集中一个元素Hk,k∈{1,2,...,d},其中根据中每一位有对应的i″≤l≤n,1≤k≤d,进行计算,根据加密方法不同,则有以下情况:
当密文是使用Paillier加密算法加密的,对中每一位有对应的计算,随机选取一个数tl, 由集合中与N互素的整数构成,进行计算:
得到:
当密文是使用ElGamal加密算法加密的,对中每一位有对应的计算时,随机选取一个t′l,t′l∈Zq,Zq由集合{1,2,...,q-1}构成,进行计算:
得到:
其中,i″≤l≤n,1≤k≤d;
第五步、根据Hk每一位有对应的计算:
当集合的元素有d个,但不够n个,则需要准备n-d个随机密文zj″,zj″=E(uj″),1≤j″≤n-d,所述随机密文zj″是对随机数uj″进行同态加密的密文;
所述随机密文准备过程具体如下:
第二数据方根据编码集中每个元素Hk,k∈{1,2,...,d},和Hk中每一位有对应的进行计算:
其中,i″≤l≤n,1≤k≤d;
当编码集的元素有d个,但不够n个,则需要准备n-d个随机密文zj″,其中分两种情况:
当表中的密文是Paillier加密算法加密的,准备n-d个随机密文zj″,其中uj″为随机选取的一个数,uj″∈ZN,ZN={0,...,N-1}是一个关于模N加法运算的群;r″′j″为一个随机数, 由集合{1,2,...,N-1}中与N互素的整数构成;
当表中的密文是ElGamal加密算法加密的,准备n-d个随机密文zj″,其中uj″为随机选取的一个数,uj″∈Gq,Gq是价为素数q的循环群,r″′j″为一个随机数,r″′j″∈Zq,Zq由集合{1,2,...,q-1}构成。
把{c1,c2,...,cd}和{z1,z2,...,zn-d}两个密文集合组合成一个密文集合,再将组合后密文集合中每个元素进行随机置换位置,得到密文集合{C1,C2,...,Cn},再把密文集合{C1,C2,…,Cn}发送给第一数据方;
所述把{c1,c2,...,cd}和{z1,z2,...,zn-d}组合的具体过程为:
第二数据方计算得到{c1,c2,...,cd}和{z1,z2,...,zn-d},将{c1,c2,...,cd}和{z1,z2,...,zn-d}两个密文集合组合成一个密文集合{c1,c2,...,cd,z1,z2,...,zn-d},再将密文集合{c1,c2,...,cd,z1,z2,...,zn-d}中每个元素随机置换位置得密文集合{C1,C2,...,Cn},例{C1,C2,...,Cn}={c2,zn-d,...,cn},再把集合{C1,C2,…,Cn}发送给第一数据方。
第六步、第一数据方将接收到的集合{C1,C2,…,Cn}进行同态加密中的解密过程,得到D(Cl′)=ml′,1≤l′≤n,当且仅当存在ml′=z(z∈{0,1}),则有x>y,否则x<y。
其中,所述解密具体如下:
第一数据方将接收到的集合{C1,C2,...,Cn}中Ci进行同态加密中的解密过程,分两种情况:
当集合{C1,C2,...,Cn}中的密文是Paillier加密算法加密的,对集合{C1,C2,...,Cn}中每个元素Cl′进行解密,其计算过程:
其中λ(N)=lcm((p-1),(q-1)),L(x′)=(x′-1)/N,1≤l′≤n,当且仅当存在ml′=0,则有x>y,说明第一数据方的私有输入x大于第二数据方的私有输入y,否则x<y,说明第一数据方的私有输入x小于第二数据方的私有输入y;
当集合{C1,C2,...,Cn}中的密文是ElGamal加密算法加密的,对集合{C1,C2,...,Cn}中每个元素Cl′进行解密,其计算过程:
D(Cl′)=(Cl′,1,Cl′,2)=Cl′,2·Cl′,1α=ml′,
其中,私钥sk=α,1≤l′≤n,当且仅当存在ml′=1,则有x>y,说明第一数据方的私有输入x大于第二数据方的私有输入y,否则x<y,说明第一数据方的私有输入x小于第二数据方的私有输入y。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种基于同态加密的百万富翁问题解决方法,其特征在于,包括以下步骤:
S1、设定G为同态加密算法的生成密钥过程,E为同态加密算法的加密过程,D为同态加密算法的解密过程;第一数据方有一个私有输入x,将私有输入x转为二进制数,即二进制值,则有x=xnxn-1…x1,对第一数据方私有输入x的二进制数进行1编码,得到编码集
S2、通过生成密钥过程G产生私钥sk和公钥pk;
S3、准备表T[i][j],其中,i∈{0,1},1≤j≤n,根据第一数据方私有输入x的二进制值和位数对应T表的位置进行密文填充,T[xi′][j′]=E(z),其中z∈{0,1},E(z)是对z进行同态加密的密文;ri′为随机选取的一个数,E(ri)是对ri′进行同态加密的密文; 是xi′的相反值,得到填充表格:
再将填充表格发送第二数据方;
S4、第二数据方根据自己的私有输入y,转为二进制数,则有,y=ynyn-1…y1,对第二数据方私有输入的二进制数进行0编码,得到编码集 即编码集中有d个元素,集合中一个元素Hk,k∈{1,2,...,d},其中根据中每一位有对应的随机选取一个数tl,进行计算:
得到:
S5、根据Hk中每一位有对应的计算:
当集合的元素有d个,但不够n个,则需要准备n-d个随机密文zj″,zj″=E(uj″),1≤j″≤n-d,所述随机密文zj″是对随机数uj″进行同态加密的密文;
把{c1,c2,...,cd}和{z1,z2,...,zn-d}两个密文集合组合成一个密文集合,再将组合后密文集合中每个元素进行随机置换位置,得到密文集合{C1,C2,...,Cn},再把密文集合{C1,C2,...,Cn}发送给第一数据方;
S6、第一数据方将接收到的集合{C1,C2,...,Cn}进行同态加密中的解密过程,得到D(Cl′)=ml′,1≤l′≤n,当且仅当存在ml′=z(z∈{0,1}),则有x>y,否则x<y。
2.根据权利要求1所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述同态加密算法为Paillier加密算法和ElGamal加密算法其中一种。
3.根据权利要求2所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述产生私钥和公钥,具体为:
当第一数据方使用Paillier加密算法,执行生成密钥过程G,选取两个素数p,q,计算N=p·q,随机选择g, 由集合{1,2,...,N-1}中与N互素的整数构成,同时使得:
gcd(L(gλ(N)modN2),N)=1,
定义L(x′)=(x′-1)/N,
则有:公钥为pk=(g,N),私钥为sk=λ(N)=lcm((p-1),(q-1));
当第一数据方使用ElGamal加密算法,执行生成密钥过程G,设p=2q+1,p和q为素数,Gq是价为素数q的循环群,g是Gq的生成元,
则有:公钥为:pk=h=g-α,私钥为:sk=α∈Zq,Zq由集合{1,2,...,q-1}构成。
4.根据权利要求2所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述填表具体为:
当第一数据方使用Paillier加密算法,第一数据方根据私有输入x的二进制值xnxn-1…x1和二进制的位数对应T表的位置进行密文填充,
计算:
其中,1≤β≤n,1≤i′≤n,1≤j′≤n,r′β为随机数, 由集合{1,2,...,N-1}中与N互素的整数构成,第一数据方的公钥为pk=(g,N);
计算:
其中,r″β为随机数,ri′为随机选取的一个数,ri′∈ZN,ZN={0,...,N-1}是关于模加法运算的群; 是xi′的相反值;
得到填充后的表格:
再将填充表格发送给第二数据方;
当第一数据方使用ElGamal加密算法,第一数据方根据私有输入x的二进制值xnxn-1…x1和二进制的位数对应T表的位置进行密文填充,
计算:
其中,h=g-a,r′β′是随机数,1≤β′≤n,1≤i′≤n,1≤j′≤n,r′β′∈Zq,Zq由集合{1,2,...,q-1}构成;
计算:
其中,ri′和r″β′是随机数,ri′∈Gq,Gq是价为素数q的循环群,r″β′∈Zq,Zq由集合{1,2,...,q-1}构成;
得到填充后的表格:
再将填充表格发送给第二数据方。
5.根据权利要求4所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述表T[i][j]为2*n的表。
6.根据权利要求2所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述步骤S4具体为:
第二数据方接收到T表后,根据自己的私有输入y转为二进制数,则有y=ynyn-1…y1,对第二数据方私有输入的二进制数进行0编码,得到编码集其中即编码集有d个元素,编码集中一个元素Hk,k∈{1,2,...,d},其中根据中每一位有对应的进行计算,根据加密方法不同,则有以下情况:
当T表中的密文是使用Paillier加密算法加密的,对中每一位有对应的计算,随机选取一个数tl, 由集合中与N互素的整数构成,进行计算:
得到:
当T表中的密文是使用ElGamal加密算法加密的,对中每一位有对应的计算时,随机选取一个t′l,t′l∈Zq,Zq由集合{1,2,...,q-1}构成,进行计算:
得到:
其中,i″≤l≤n,1≤k≤d。
7.根据权利要求2所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述随机密文准备过程具体如下:
第二数据方根据编码集中每个元素Hk,k∈{1,2,...,d},和Hk中每一位有对应的进行计算:
其中,i″≤l≤n,1≤k≤d;
当编码集的元素有d个,但不够n个,则需要准备n-d个随机密文zj″,其中分两种情况:
当T表中的密文是Paillier加密算法加密的,准备n-d个随机密文zj″,其中uj″为随机选取的一个数,uj″∈ZN,ZN={0,...,N-1}是一个关于模N加法运算的群;r″′j″为一个随机数, 由集合{1,2,...,N-1}中与N互素的整数构成;
当T表中的密文是ElGamal加密算法加密的,准备n-d个随机密文zj″,其中uj″为随机选取的一个数,uj″∈Gq,Gq是价为素数q的循环群,r″′j″为一个随机数,r″′j″∈Zq,Zq由集合{1,2,...,q-1}构成。
8.根据权利要求1所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述把{c1,c2,...,cd}和{z1,z2,...,zn-d}组合的具体过程为:
第二数据方计算得到{c1,c2,...,cd}和{z1,z2,...,zn-d},将{c1,c2,...,cd}和{z1,z2,...,zn-d}两个密文集合组合成一个密文集合{c1,c2,...,cd,z1,z2,...,zn-d},再将密文集合{c1,c2,...,cd,z1,z2,...,zn-d}中每个元素随机置换位置得密文集合{C1,C2,...,Cn},例{C1,C2,...,Cn}={c2,zn-d,...,cn},再把集合{C1,C2,...,Cn}发送给第一数据方。
9.根据权利要求2所述的一种基于同态加密的百万富翁问题解决方法,其特征在于,所述解密具体如下:
第一数据方将接收到的集合{C1,C2,...,Cn}中Cl′进行同态加密中的解密过程,分两种情况:
当集合{C1,C2,…,Cn}中的密文是Paillier加密算法加密的,对集合{C1,C2,...,Cn}中每个元素Cl′进行解密,其计算过程:
其中λ(N)=lcm((p-1),(q-1)),L(x′)=(x′-1)/N,1≤l′≤n,当且仅当存在ml′=0,则有x>y,说明第一数据方的私有输入x大于第二数据方的私有输入y,否则x<y,说明第一数据方的私有输入x小于第二数据方的私有输入y;
当集合{C1,C2,...,Cn}中的密文是ElGamal加密算法加密的,对集合{C1,C2,...,Cn}中每个元素Cl′进行解密,其计算过程:
D(Cl′)=(Cl′,1,Cl′,2)=Cl′,2·Cl′,1 α=ml′,
其中,私钥sk=α,当且仅当存在ml′=1,则有x>y,说明第一数据方的私有输入x大于第二数据方的私有输入y,否则x<y,说明第一数据方的私有输入x小于第二数据方的私有输入y。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910549380.7A CN110299987B (zh) | 2019-06-24 | 2019-06-24 | 一种基于同态加密的百万富翁问题解决方法 |
GB2118764.6A GB2600038A (en) | 2019-06-24 | 2019-07-09 | A Method for Solving a Millionaire Problem Based on Homomorphic Encryption |
PCT/CN2019/095167 WO2020258373A1 (zh) | 2019-06-24 | 2019-07-09 | 一种基于同态加密的百万富翁问题解决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910549380.7A CN110299987B (zh) | 2019-06-24 | 2019-06-24 | 一种基于同态加密的百万富翁问题解决方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110299987A true CN110299987A (zh) | 2019-10-01 |
CN110299987B CN110299987B (zh) | 2022-03-29 |
Family
ID=68028668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910549380.7A Active CN110299987B (zh) | 2019-06-24 | 2019-06-24 | 一种基于同态加密的百万富翁问题解决方法 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110299987B (zh) |
GB (1) | GB2600038A (zh) |
WO (1) | WO2020258373A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046409A (zh) * | 2019-12-16 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和系统 |
CN111177796A (zh) * | 2019-12-26 | 2020-05-19 | 西安电子科技大学 | 一种基于区块链的可溯源云存储系统的共识机制 |
CN111277406A (zh) * | 2020-01-08 | 2020-06-12 | 中山大学 | 一种基于区块链的安全两方向量优势比较方法 |
CN111885056A (zh) * | 2020-07-22 | 2020-11-03 | 北京金山云网络技术有限公司 | 基于区块链的零知识证明方法、装置及电子设备 |
CN112737772A (zh) * | 2020-12-25 | 2021-04-30 | 山东师范大学 | 私有集合交集数据的安全统计方法、终端设备及系统 |
US11538070B2 (en) * | 2020-04-13 | 2022-12-27 | Linkplicity Gmbh | Blockchain-based system and method for peer-to-peer online advertising auction |
CN116488919A (zh) * | 2023-05-06 | 2023-07-25 | 北京和德宇航技术有限公司 | 一种数据处理方法、通信节点及存储介质 |
CN116684066A (zh) * | 2023-07-06 | 2023-09-01 | 北京隐算科技有限公司 | 一种支持整数运算的同态加密方法、系统及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601323A (zh) * | 2015-02-15 | 2015-05-06 | 桂林电子科技大学 | 基于bdd解决社会主义百万富翁问题的方法 |
WO2019079353A2 (en) * | 2017-10-16 | 2019-04-25 | X-Logos, LLC | METHODS AND SYSTEMS FOR ENHANCED HOMOMORPHIC ENCRYPTION SEARCH BASED ON DATA USING GEOMETRIC ALGEBRA |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970143B (zh) * | 2012-12-13 | 2015-04-22 | 中国科学技术大学苏州研究院 | 采用加法同态加密方法进行安全计算双方持有数和的指数的方法 |
CN103248478A (zh) * | 2013-05-08 | 2013-08-14 | 天津大学 | 基于多方安全协议的密封式电子拍卖方案与验证方法 |
-
2019
- 2019-06-24 CN CN201910549380.7A patent/CN110299987B/zh active Active
- 2019-07-09 WO PCT/CN2019/095167 patent/WO2020258373A1/zh active Application Filing
- 2019-07-09 GB GB2118764.6A patent/GB2600038A/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601323A (zh) * | 2015-02-15 | 2015-05-06 | 桂林电子科技大学 | 基于bdd解决社会主义百万富翁问题的方法 |
WO2019079353A2 (en) * | 2017-10-16 | 2019-04-25 | X-Logos, LLC | METHODS AND SYSTEMS FOR ENHANCED HOMOMORPHIC ENCRYPTION SEARCH BASED ON DATA USING GEOMETRIC ALGEBRA |
Non-Patent Citations (2)
Title |
---|
HSIAO-YING LIN: "An Efficient Solution to The Millionaires’ Problem Based on Homomorphic Encryption", 《INTERNATIONAL CONFERENCE ON APPLIED CRYPTOGRAPHY & NETWORK SECURITY SPRINGER》 * |
左祥建: "同态加密的百万富翁问题高效解决方案", 《小型微型计算机系统》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046409A (zh) * | 2019-12-16 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和系统 |
CN111046409B (zh) * | 2019-12-16 | 2021-04-13 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和系统 |
CN111177796A (zh) * | 2019-12-26 | 2020-05-19 | 西安电子科技大学 | 一种基于区块链的可溯源云存储系统的共识机制 |
CN111277406A (zh) * | 2020-01-08 | 2020-06-12 | 中山大学 | 一种基于区块链的安全两方向量优势比较方法 |
US11538070B2 (en) * | 2020-04-13 | 2022-12-27 | Linkplicity Gmbh | Blockchain-based system and method for peer-to-peer online advertising auction |
CN111885056A (zh) * | 2020-07-22 | 2020-11-03 | 北京金山云网络技术有限公司 | 基于区块链的零知识证明方法、装置及电子设备 |
CN112737772A (zh) * | 2020-12-25 | 2021-04-30 | 山东师范大学 | 私有集合交集数据的安全统计方法、终端设备及系统 |
CN112737772B (zh) * | 2020-12-25 | 2022-10-25 | 山东师范大学 | 私有集合交集数据的安全统计方法、终端设备及系统 |
CN116488919A (zh) * | 2023-05-06 | 2023-07-25 | 北京和德宇航技术有限公司 | 一种数据处理方法、通信节点及存储介质 |
CN116488919B (zh) * | 2023-05-06 | 2023-12-12 | 北京和德宇航技术有限公司 | 一种数据处理方法、通信节点及存储介质 |
CN116684066A (zh) * | 2023-07-06 | 2023-09-01 | 北京隐算科技有限公司 | 一种支持整数运算的同态加密方法、系统及存储介质 |
CN116684066B (zh) * | 2023-07-06 | 2023-10-20 | 北京隐算科技有限公司 | 一种支持整数运算的同态加密方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110299987B (zh) | 2022-03-29 |
GB2600038A (en) | 2022-04-20 |
WO2020258373A1 (zh) | 2020-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110299987A (zh) | 一种基于同态加密的百万富翁问题解决方法 | |
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
Frikken et al. | Attribute-based access control with hidden policies and hidden credentials | |
RU2175465C2 (ru) | Способ обмена криптографическими ключами между компьютерным блоком пользователя и сетевым компьютерным блоком | |
CA2054037C (en) | Cryptographic system allowing encrypted communication between users with a secure mutual cipher key determined without user interaction | |
US5323146A (en) | Method for authenticating the user of a data station connected to a computer system | |
Simmons | Cryptanalysis and protocol failures | |
CN104168108B (zh) | 一种泄露密钥可追踪的属性基混合加密方法 | |
CN110087239A (zh) | 基于5g网络中的匿名接入认证与密钥协商方法及装置 | |
CN102170351B (zh) | 定制的静态Diffie-Hellman群 | |
CN104301108B (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
KR20060052556A (ko) | 보안 통신 시스템에서 익명의 공개 키를 발생시키는 방법,장치 및 시스템 | |
WO2019006968A1 (zh) | 一种接受保证的隐私保护空间众包任务分配系统及方法 | |
CN103313142B (zh) | 面向三网融合的视频内容安全责任认定方法 | |
CN106209357A (zh) | 一种基于云计算平台的密文访问控制系统 | |
Liu | Public-key encryption secure against related randomness attacks for improved end-to-end security of cloud/edge computing | |
CN115694777A (zh) | 基于同态加密的隐私集合求交方法、装置、设备及介质 | |
CN106850584B (zh) | 一种面向客户/服务器网络的匿名认证方法 | |
CN105306212A (zh) | 一种身份隐藏且强安全的签密方法 | |
CN109831305B (zh) | 基于非对称密钥池的抗量子计算签密方法和系统 | |
CN106453253A (zh) | 一种高效的基于身份的匿签密方法 | |
CN113807534A (zh) | 联邦学习模型的模型参数训练方法、装置和电子设备 | |
KR100944290B1 (ko) | 브레이드 그룹들에 기반한 공개키 암호화 방법 | |
CN110048852A (zh) | 基于非对称密钥池的量子通信服务站数字签密方法和系统 | |
Movahedi et al. | Secure anonymous broadcast |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |