CN111639345A - 基于同态加密的安全的多方云计算的方法和系统 - Google Patents

基于同态加密的安全的多方云计算的方法和系统 Download PDF

Info

Publication number
CN111639345A
CN111639345A CN201910158500.0A CN201910158500A CN111639345A CN 111639345 A CN111639345 A CN 111639345A CN 201910158500 A CN201910158500 A CN 201910158500A CN 111639345 A CN111639345 A CN 111639345A
Authority
CN
China
Prior art keywords
computing system
private key
computing
encryption scheme
computer
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
Application number
CN201910158500.0A
Other languages
English (en)
Other versions
CN111639345B (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201910158500.0A priority Critical patent/CN111639345B/zh
Publication of CN111639345A publication Critical patent/CN111639345A/zh
Application granted granted Critical
Publication of CN111639345B publication Critical patent/CN111639345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

提供一种能够进行安全的多方云计算的计算机可执行方法和系统。所述计算机可执行方法包括:在第一计算系统中接收多个密文,其中,所述多个密文采用公钥分别对多个明文进行加密而形成;在第二计算系统中接收私钥的至少一部分;和第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值,其中,所述加密基于加法同态的加密方案实现,所述公钥和所述私钥为基于所述加法同态的加密方案生成的公钥/私钥对,所述函数包括乘法运算、除法运算和比较运算中的至少一种。

Description

基于同态加密的安全的多方云计算的方法和系统
技术领域
本发明涉及多方云计算的技术领域,更具体地,涉及一种在多方云计算中保证数据安全的方法和系统,例如,涉及一种基于同态加密的安全的多方云计算的方法和系统。
背景技术
近年来,随着云计算技术的迅速发展和云存储应用逐渐普及,越来越多的企业用户和个人用户选择将拥有的数据外包给云,以使用云计算和云存储服务。在理想情况下,通过将大量的物理计算资源虚拟化并将其整合,云计算可以提供几乎无限的计算能力和存储空间。对于企业用户而言,通过云计算服务可以显著降低计算和存储的维护成本;对于个人用户而言,通过将信息的存储和计算放在云端可以降低自身存储和计算资源有限所带来的很多约束。
然而,用户在享受到云计算的好处的同时,不可避免地会产生很多的安全问题。用户存储在云端以及需要云计算的信息往往是用户的隐私信息,在云计算过程中容易被恶意窃取。也就是说,目前的云计算等服务面临着信息安全的问题。
发明内容
为了解决上述问题的至少一个方面,本公开实施例提供一种用于安全的多方计算的计算机可执行方法、计算机可读存储介质和计算机系统。
在一个方面,提供一种计算机可执行方法,包括:
在第一计算系统中接收多个密文,其中,所述多个密文采用公钥分别对多个明文进行加密而形成;
在第二计算系统中接收私钥的至少一部分;和
第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值,
其中,所述加密基于加法同态的加密方案实现,所述公钥和所述私钥为基于所述加法同态的加密方案生成的公钥/私钥对,所述函数包括乘法运算、除法运算和比较运算中的至少一种。
可选地,所述第一计算系统为公共云,所述第二计算系统为私有云或受用户信任的可信云。
可选地,所述在第二计算系统中接收私钥的至少一部分包括:在第二计算系统中接收完整的私钥。
可选地,所述第一计算系统和所述第二计算系统均为云,并且所述第一计算系统和所述第二计算系统中的任何一个都不受用户信任。
可选地,所述计算机可执行方法还包括:在第一计算系统中接收所述私钥的第一部分,其中,在第二计算系统中接收私钥的至少一部分包括:在第二计算系统中接收私钥的第二部分。
可选地,所述函数包括乘法运算,所述乘法运算基于以下公式:
E(m1·m2)=E((m1-r1)·(m2-r2)+m1r2+m2r1-r1r2),
其中,E表示基于Paillier加密方案进行加密,m1、m2表示多个明文,r1、r2为多个随机数,
Figure BDA0001982844330000021
Figure BDA0001982844330000022
n=pq,p、q为Paillier加密方案随机选取的2个大素数。
可选地,所述第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值包括:
所述第一计算系统选取2个随机数r1、r2
所述第一计算系统分别计算E(m1-r1)和E(m2-r2);
所述第一计算系统将E(m1-r1)和E(m2-r2)传给所述第二计算系统;
所述第二计算系统基于Paillier加密方案并且利用所述完整的私钥分别对E(m1-r1)和E(m2-r2)进行解密,以得到m1-r1和m2-r2
所述第二计算系统计算(m1-r1)·(m2-r2);
所述第二计算系统基于Paillier加密方案对(m1-r1)·(m2-r2)进行加密,得到E((m1-r1)·(m2-r2));
所述第二计算系统将E((m1-r1)·(m2-r2))传给所述第一计算系统;和
所述第一计算系统分别计算
Figure BDA0001982844330000031
和E(n-r1r2),并且将E((m1-r1)·(m2-r2))、
Figure BDA0001982844330000032
和E(n-r1r2)四者相乘,以计算出E(m1·m2)的值。
可选地,所述函数包括乘法运算,所述乘法运算基于以下公式:
E(m1·m2)=E((m1-r1)·(m2-r2)+m1r2+m2r1-r1r2),
其中,E表示基于Paillier加密方案进行加密,m1、m2表示多个明文,r1、r2为多个随机数,
Figure BDA0001982844330000033
Figure BDA0001982844330000034
n=pq,p、q为Paillier加密方案随机选取的2个大素数。
可选地,所述第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值包括:
所述第一计算系统选取2个随机数r1、r2
所述第一计算系统分别计算E(m1-r1)和E(m2-r2);
所述第一计算系统基于Paillier加密方案且利用所述私钥的第一部分对E(m1-r1)和E(m2-r2)分别进行解密,得到中间解密结果D1′和D2′;
所述第一计算系统将所述E(m1-r1)、所述E(m2-r2)以及所述中间解密结果D1′和D2′传给所述第二计算系统;
所述第二计算系统基于Paillier加密方案且利用所述私钥的第二部分进行解密,以得到m1-r1和m2-r2
所述第二计算系统计算(m1-r1)·(m2-r2);
所述第二计算系统基于Paillier加密方案对(m1-r1)·(m2-r2)进行加密,得到E((m1-r1)·(m2-r2));
所述第二计算系统将E((m1-r1)·(m2-r2))传给所述第一计算系统;和
所述第一计算系统分别计算
Figure BDA0001982844330000035
和E(n-r1r2),并且将E((m1-r1)·(m2-r2))、
Figure BDA0001982844330000036
和E(n-r1r2)四者相乘,以计算出E(m1·m2)的值。
可选地,所述函数包括除法运算,所述除法运算基于以下公式:
Figure BDA0001982844330000037
其中,E表示基于Paillier加密方案进行加密,m1、m2表示多个明文,r1、r2为多个随机数,
Figure BDA0001982844330000041
Figure BDA0001982844330000042
n=pq,p、q为Paillier加密方案随机选取的2个大素数。
可选地,所述第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值包括:
所述第一计算系统选取2个随机数r1、r2
所述第一计算系统分别计算E((m1+r2m2)·r1)和E(m2r1);
所述第一计算系统将E((m1+r2m2)·r1)和E(m2r1)传给所述第二计算系统;
所述第二计算系统基于Paillier加密方案并且利用所述完整的私钥分别对E((m1+r2m2)·r1)和E(m2r1)进行解密,以得到(m1+r2m2)·r1和m2r1
所述第二计算系统计算
Figure BDA0001982844330000043
所述第二计算系统基于Paillier加密方案对
Figure BDA0001982844330000044
进行加密,得到
Figure BDA0001982844330000045
所述第二计算系统将
Figure BDA0001982844330000046
传给所述第一计算系统;和
所述第一计算系统计算E(n-r2),并且将
Figure BDA0001982844330000047
和E(n-r2)两者相乘,以计算出
Figure BDA0001982844330000048
的值。
可选地,所述函数包括除法运算,所述除法运算基于以下公式:
Figure BDA0001982844330000049
其中,E表示基于Paillier加密方案进行加密,m1、m2表示多个明文,r1、r2为多个随机数,
Figure BDA00019828443300000410
Figure BDA00019828443300000411
n=pq,p、q为Paillier加密方案随机选取的2个大素数。
可选地,所述第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值包括:
所述第一计算系统选取2个随机数r1、r2
所述第一计算系统分别计算E((m1+r2m2)·r1)和E(m2r1);
所述第一计算系统基于Paillier加密方案且利用所述私钥的第一部分对E((m1+r2m2)·r1)和E(m2r1)分别进行解密,得到中间解密结果D3′和D4′;
所述第一计算系统将所述E((m1+r2m2)·r1)、所述E(m2r1)以及所述中间解密结果D3′和D4′传给所述第二计算系统;
所述第二计算系统基于Paillier加密方案且利用所述私钥的第二部分分别进行解密,以得到(m1+r2m2)·r1和m2r1
所述第二计算系统计算
Figure BDA0001982844330000051
所述第二计算系统基于Paillier加密方案对
Figure BDA0001982844330000052
进行加密,得到
Figure BDA0001982844330000053
所述第二计算系统将
Figure BDA0001982844330000054
传给所述第一计算系统;和
所述第一计算系统计算E(n-r2),并且将
Figure BDA0001982844330000055
和E(n-r2)两者相乘,以计算出
Figure BDA0001982844330000056
的值。
可选地,所述函数包括比较运算,所述比较运算基于以下公式:
cmp=((m1-m2)r1+r2)-r2
其中,m1、m2表示多个明文,r1、r2为多个随机数,
Figure BDA0001982844330000057
Figure BDA0001982844330000058
n=pq,p、q为Paillier加密方案随机选取的2个大素数,cmp表示建立的比较函数。
可选地,所述第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值包括:
所述第一计算系统选取2个随机数r1、r2
所述第一计算系统分别计算E(m1r1+r2)和E(m2r1),其中,E表示基于Paillier加密方案进行加密;
所述第一计算系统将E(m1r1+r2)和E(m2r1)传给所述第二计算系统;
所述第二计算系统基于Paillier加密方案并且利用所述完整的私钥分别对E(m1r1+r2)和E(m2r1)进行解密,以得到m1r1+r2和m2r1
所述第二计算系统计算m1r1+r2-m2r1
所述第二计算系统将m1r1+r2-m2r1传给所述第一计算系统;
所述第一计算系统根据公式cmp=((m1-m2)r1+r2)-r2,以计算出cmp的值;和
所述第一计算系统进行如下判断:如果cmp>0,则m1>m2;如果cmp=0,则m1=m2;如果cmp<0,则m1<m2
可选地,所述函数包括比较运算,所述比较运算基于以下公式:
cmp=((m1-m2)r1+r2)-r2
其中,m1、m2表示多个明文,r1、r2为多个随机数,
Figure BDA0001982844330000061
Figure BDA0001982844330000062
n=pq,p、q为Paillier加密方案随机选取的2个大素数,cmp表示建立的比较函数。
可选地,所述第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值包括:
所述第一计算系统选取2个随机数r1、r2
所述第一计算系统分别计算E(m1r1+r2)和E(m2r1),其中,E表示基于Paillier加密方案进行加密;
所述第一计算系统基于Paillier加密方案且利用所述私钥的第一部分对E(m1r1+r2)和E(m2r1)分别进行解密,得到中间解密结果D5′和D6′;
所述第一计算系统将所述E(m1r1+r2)、所述E(m2r1)以及所述中间解密结果D5′和D6′传给所述第二计算系统;
所述第二计算系统基于Paillier加密方案且利用所述私钥的第二部分分别进行解密,以得到m1r1+r2和m2r1
所述第二计算系统计算m1r1+r2-m2r1
所述第二计算系统将m1r1+r2-m2r1传给所述第一计算系统;
所述第一计算系统根据公式cmp=((m1-m2)r1+r2)-r2,以计算出cmp的值;和
所述第一计算系统进行如下判断:如果cmp>0,则m1>m2;如果cmp=0,则m1=m2;如果cmp<0,则m1<m2
可选地,所述私钥包括基于Paillier加密方案生成的私钥λ,λ=lcm(p-1,q-1),其中lcm表示最小公倍数,p、q为Paillier加密方案随机选取的2个大素数;以及
所述私钥的第一部分和所述私钥的第二部分为随机拆分所述私钥λ而形成,并且满足λ=λ12,其中,λ1表示所述私钥的第一部分,λ2表示所述私钥的第二部分。
在另一方面,还提供一种计算机可执行方法,包括:
在第一计算系统中接收私钥的第1部分和多个密文,其中,所述多个密文采用公钥分别对多个明文进行加密而形成;
在k-1个计算系统中分别接收私钥的第2~第k部分,其中k≥2且k为整数;和
所述第一计算系统和所述k-1个计算系统协作计算所述多个密文,以获得所述多个明文的函数的值,
其中,所述加密基于加法同态的加密方案实现,所述公钥和所述私钥为基于所述加法同态的加密方案生成的公钥/私钥对,所述函数包括乘法运算、除法运算和比较运算中的至少一种。
在再一方面,还提供一种存储指令的计算机可读存储介质,当计算机执行所述指令时,使得所述计算机执行方法,所述方法为上述任一项描述的计算机可执行方法。
在又一方面,还提供一种计算机系统,所述计算机系统包括:
存储器,所述存储器中存储有指令;和
处理器,
其中,当所述指令被处理器执行时,使得所述处理器执行上述任一项描述的计算机可执行方法。
在上述用于安全的多方计算的计算机可执行方法中,基于部分同态加密方案(例如加法同态的加密方案),可以实现加密加法、加密减法、加密乘法、加密除法和加密比较,不仅具有部分同态加密方案的运算复杂度低的优点,还可以满足用户的各种计算需求,扩展安全多方云计算的应用场景。
附图说明
通过下文中参照附图对本发明所作的描述,本发明的其它目的和优点将显而易见,并可帮助对本发明有全面的理解。
图1示出了根据本公开实施例的一种执行安全多方云计算的系统;
图2是根据本公开实施例的安全多方云计算方法中执行加法和减法运算的流程图;
图3是根据本公开实施例的安全多方云计算方法中执行乘法运算的流程图;
图4是根据本公开实施例的安全多方云计算方法中执行除法运算的流程图;
图5是根据本公开实施例的安全多方云计算方法中执行比较运算的流程图;
图6是根据本公开另一实施例的安全多方云计算方法中执行乘法运算的流程图;
图7是根据本公开另一实施例的安全多方云计算方法中执行除法运算的流程图;以及
图8是根据本公开另一实施例的安全多方云计算方法中执行比较运算的流程图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。在说明书中,相同或相似的附图标号指示相同或相似的部件。下述参照附图对本发明实施方式的说明旨在对本发明的总体发明构思进行解释,而不应当理解为对本发明的一种限制。
另外,在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本披露实施例的全面理解。然而明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。
在本文中,“安全多方计算(Secure Multi-Party Computation,简称为SMC)”是指一组互不信任的参与方之间保护隐私的协同计算,在安全多方计算中,要确保输入的独立性,计算的正确性,同时不泄露各个输入值给参与计算的其他成员。例如,在一个多用户的网络中,用户之间可能互不信任,但可以通过该网络实现协同计算,同时在计算过程中以及计算结束后,都能保证用户数据的安全性。
“安全多方云计算”是指将云计算服务引入安全多方计算中,在安全多方云计算中,用户(包括个人用户和企业用户)可以将数据存储到云端并且将数据计算外包给云,多个云协作以完成用户提出的计算需求,并将计算结果返回给用户,在计算过程中以及计算结束后,用户数据的安全性都能得到保证。
“云(cloud)”可以是任何为终端用户提供计算服务(例如计算、应用、数据接入、数据管理和存储资源)的计算机网络,云可以包括公共云(public cloud)、私有云(privatecloud)、混合云等。例如,“公共云(public cloud)”可以是基于标准云计算(cloudcomputing)的一个模式,在公共云中,服务供应商创造资源,如应用和存储,公众可以通过网络获取这些资源。公共云的例子包括但不限于:亚马逊网络服务(AWS)、微软WindowsAzure、阿里云等。再例如,“私有云(private cloud)”可以是为一个客户单独使用而构建的,它可以提供对数据、安全性和服务质量的最有效控制,例如,该客户拥有基础设施,并可以控制在此基础设施上部署应用程序的方式,私有云可部署在用户数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所,私有云的核心属性是专有资源。
随着云的逐渐普及,促使个人用户和企业用户不仅将数据存储到云上,也将数据计算外包给云,这引发了如何维护数据所有者之间和云上的数据隐私和数据安全的问题。例如,信用评价机构将大量的消费者信用记录以加密形式保存到云上,当银行想要对特定客户的信用进行评估时,则银行需要得到多个信用评价机构的信用评分的平均值。为了计算平均值,云从各个信用评价机构存储的数据中获取所述特定客户的信用记录,评估对应各个信用评价机构的信用评分,并计算平均值。需要注意的是,对信用评分的平均值的计算需要银行输入相关信息(客户的身份信息等)以及多个信用评价机构输入相关信息(例如客户的信用历史及其信用评分计算算法)。银行和信用评价机构都想保护他们的数据隐私(例如,一个信用评价机构不想把自己的信用评分计算算法透露给其它信用评价机构或银行)。因此,需要一种解决方法,它支持直接在加密数据(密文)上进行操作(例如计算),解密后的结果可以达到在明文上操作的效果。
在密码学中,同态加密(Homomorphic Encryption)是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对密文直接进行处理,跟对明文进行处理后再对处理结果加密,得到的结果相同,从抽象代数的角度讲,保持了同态性。
假设一个加密方案G表示为(M,C,K,E,D),其中M为明文空间,C为密文空间,K为密钥空间,E为加密算法,D为解密算法,定义
Figure BDA0001982844330000091
为密文相关的运算符。
设P、L为运算,当明文数据集合M={m1,m2,…,mn},k∈K,若满足:
P(Ek(m1),Ek(m2)…,Ek(mn))=Ek(L(m1,m2,…,mn))
其中,Ek(m)表示采用加密算法E并使用密钥k对明文m进行加密,在本文中,为了使描述简洁,使用E(m)来代替Ek(m)。
则该加密方案G对于运算L是同态的。同态加密的基本思想是通过直接对多个密文进行某种运算,达到与相应的明文运算相同的效果。
对于任意的明文mi,mj∈M,相应的密文为ci=E(mi),cj=E(mj),且ci,cj∈C,若
Figure BDA0001982844330000101
Figure BDA0001982844330000102
成立,则称加密方案G具有加法同态性质。其中,符合
Figure BDA0001982844330000103
表示某种运算,例如,加法运算、乘法运算、幂运算等。
对于任意的明文mi,mj∈M,相应的密文为ci=E(mi),cj=E(mj),且ci,cj∈C,若
Figure BDA0001982844330000104
Figure BDA0001982844330000105
成立,则称加密方案G具有乘法同态性质。
对于任意的明文mi,mj∈M,相应的密文为ci=E(mi),cj=E(mj),且ci,cj∈C,若
Figure BDA0001982844330000106
Figure BDA0001982844330000107
Figure BDA0001982844330000108
成立,则称加密方案G具有混合乘法同态性质。
若加密方案G同时具有加法同态和乘法同态性质,且能够满足有限次加法和乘法密文运算,则称加密方案G是Somewhat同态加密方案。
若加密方案G同时具有加法同态和乘法同态性质,且能够满足任意次加法和乘法密文运算,则称加密方案G是全同态加密方案。
同态加密概念是Rivest等人在20世纪70年代首先提出的,与一般加密算法相比,同态加密除了能实现基本的加密操作之外,还能实现密文间的多种运算,即先计算后解密可等价于先解密后计算。这个特性对于保护信息的安全具有重要意义,利用同态加密技术可以先对多个密文进行计算之后再解密,不必对每一个密文解密而花费高昂的计算代价;利用同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方,既可以减少通信代价,又可以转移计算任务,由此可平衡各方的计算代价;利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的数据,可以提高信息的安全性。同态加密技术的上述特性,决定了它可以应用于安全多方云计算中。当用户希望对明文数据进行某种运算时,只需将加密的数据传给云,云在密文空间中完成相关的计算,然后把所需数据的密文值返回给用户,用户对该密文值进行解密,即实现对明文数据的运算。整个过程中,云可以不接触明文,实现了用户的隐私保护,保证了用户数据的安全性。
在相关技术中,尝试使用全同态加密方案进行安全多方云计算。目前全同态的加密方案主要包括如下三种类型:(1)基于理想格(ideal lattice)的加密方案;(2)基于整数上近似最大公约数(简称为GCD)问题的加密方案;(3)基于带扰动学习(Learning WithErrors,LWE)问题的加密方案。然而,现有的全同态加密方案的运算复杂度普遍较大,难以应用于实际的安全多方云计算中。例如,基于理想格的加密方案对应的公钥大小约为2.3GB,刷新密文的处理时间就需要几十分钟。
发明人经研究发现,在目前的安全多方云计算中,较多的是利用部分同态加密算法(例如加法同态的加密算法或乘法同态的加密算法),例如,典型的加法同态的加密算法包括Paillier加密算法和Benaloh加密算法,典型的乘法同态的加密算法包括RSA加密算法和E1Gamal加密算法。然而,利用加法同态的加密算法或乘法同态的加密算法的安全多方云计算只能实现部分计算,例如,在利用加法同态的加密算法的安全多方云计算中,只能实现加法和减法运算;在利用乘法同态的加密算法的安全多方云计算中,只能实现乘法和除法运算。这样,利用部分同态加密算法的安全多方云计算会出现不能满足用户的计算需求的情况,使得其应用场景受到极大的限制。
基于此,在本公开中,发明人提出一种基于部分同态加密方案(例如加法同态的加密方案)的安全多方云计算方案,在该安全多方云计算方案中,可以实现加密加法、加密减法、加密乘法、加密除法和加密比较,不仅具有部分同态加密方案的运算复杂度低的优点,还可以满足用户的各种计算需求,扩展安全多方云计算的应用场景。
下面,以Paillier加密方案为例,详细描述本公开的实施例,但是,应该理解,本公开的实施例不局限于Paillier加密方案,本公开的实施例可以应用于任何加法同态的加密方案。
Paillier加密方案是由Paillier在1999年提出的基于高次剩余类问题的加密方案,其具体步骤包括:
公钥、私钥对的生成:随机选取2个大素数p、q;令n=pq,λ=lcm(p-1,q-1),其中lcm表示最小公倍数;随机选取整数g,其中
Figure BDA0001982844330000121
(
Figure BDA0001982844330000122
表示小于n2的非零整数集),使得gcd(L(gλmod n2),n)=1,其中gcd表示最大公约数,函数L定义为
Figure BDA0001982844330000123
令μ=(L(gλmod n2))-1,生成公钥pk为(n,g),私钥sk为(λ,μ);
加密:设有明文m∈Zn(Zn表示小于n的整数集),且m<n,选择一个随机数r<n,则密文为c=gm·rn mod n2
解密:密文c<n2,明文
Figure BDA0001982844330000124
Figure BDA0001982844330000125
定义Paillier加密方案可以表示为(M,C,K,E,D),其中M为明文空间,C为密文空间,K为密钥空间,E为加密算法,D为解密算法。根据上述的Paillier加密算法,可以得出,Paillier加密算法具有加法同态的性质,具体的性质包括:
E(m1)·E(m2)=E(m1+m2)
Figure BDA0001982844330000126
Figure BDA0001982844330000127
其中,E(m1)表示明文m1在密文空间中的密文,E(m2)表示明文m2在密文空间中的密文,E(m1+m2)表示明文m1+m2之和在密文空间中的密文。
图1示出了根据本公开实施例的一种执行安全多方云计算的系统。如图1所示,执行安全多方云计算的系统10可以包括客户端12、例如云的第一计算系统14和例如云的第二计算系统16。
客户端12可以是数据拥有者,例如,它拥有原始明文m1、m2,对应的密文c1、c2,以及公钥pk、私钥sk,它们具有如下关系:
c1=Epk(m1)
c2=Epk(m2)
m1=Dsk(c1)
m2=Dsk(c2)
具体地,密文c1为基于Paillier加密方案中的加密算法E并且使用公钥pk对明文m1加密的结果,密文c2为基于Paillier加密方案中的加密算法E并且使用公钥pk对明文m2加密的结果,相应地,明文m1为基于Paillier加密方案中的解密算法D并且使用私钥sk对密文c1解密的结果,明文m2为基于Paillier加密方案中的解密算法D并且使用私钥sk对密文c2解密的结果。在本文中,为了使描述简洁,使用E(m1)、E(m2)、D(c1)、D(c2)分别表示Epk(m1)、Epk(m2)、Dsk(c1)、Dsk(c2)。
需要说明的是,为了简化描述,在图示的实施例中,仅提供了1个客户端12,但是,在其它实施例中,可以提供多个客户端,它们分别拥有各自的数据。
第一计算系统14和/或第二计算系统16可以是任何为终端用户提供计算服务(例如计算、应用、数据接入、数据管理和存储资源)的计算机网络,例如云。云14、16的例子包括但不限于:亚马逊网络服务(AWS)、微软WindowsAzure、阿里云、基于内容导向网络结构(CONA)或信息中心网络(ICN)的计算机网络。云14可以包括存储服务层141和计算服务层142,需要注意的是,虽然在图1中,存储服务层141和计算服务层142均包括在云14中,但是,在其它实施例中,它们可以由不同的云服务商提供,即,存储服务由一个云服务商提供,计算服务由另一个云服务商提供。云16可以具有与云14相同或不同的组成。
图2是根据本公开实施例的安全多方云计算方法中执行加法和减法运算的流程图。在本公开的实施例中,在执行加法和减法运算的过程中,可以在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的加法和减法运算。基于Paillier加密算法的加法和减法运算过程主要基于以下公式:
E(m1)·E(m2)=E(m1+m2)
Figure BDA0001982844330000131
如图2所示,第一计算系统14计算c1·c2
Figure BDA0001982844330000132
即E(m1)·E(m2)或
Figure BDA0001982844330000133
并将计算结果传给客户端12。
客户端12使用私钥sk对计算结果进行解密,得到m1+m2或m1-m2的结果。
在整个计算过程中,第一计算系统14只能获得密文c1、c2,而且不能通过提供给它的数据获得明文m1、m2,所以,该计算过程保护了客户数据的安全性,并充分利用云14的计算能力,实现了明文m1、m2的加法和减法运算。
根据本公开的一个实施例,第一计算系统14可以是公共云,第二计算系统16可以是私有云或客户端12可以信任的可信第三方。在密钥建立过程中,客户端12基于加法同态的加密算法(例如Paillier加密算法)生成公钥/私钥对(pk,sk),并且使用公钥pk对明文m1、m2分别进行加密,生成对应的密文c1、c2。然后,客户端12将密文c1、c2传给第一计算系统14,将私钥sk传给第二计算系统16。需要说明的是,公钥pk对客户端12、第一计算系统14和第二计算系统16都是公开的,并且第一计算系统14和第二计算系统16是互不串通的。
图3是根据本公开实施例的安全多方云计算方法中执行乘法运算的流程图。在本公开的实施例中,可以基于加法同态的加密方案并且在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的乘法运算。
在本公开的实施例中,乘法运算主要基于以下公式:
E(m1·m2)=E((m1-r1)·(m2-r2)+m1r2+m2r1-r1r2) (1)
其中,r1、r2为2个随机数,
Figure BDA0001982844330000141
Figure BDA0001982844330000142
Figure BDA0001982844330000143
表示小于n的非零整数集。
需要指出的是,根据Paillier加密方案的加法同态的性质,可以推导出如下关系式:
E(m1-m2)=E(m1)·E(n-m2) (2)
根据Paillier加密方案的加法同态的性质以及上述关系式(2),上述公式(1)可以进一步推导如下:
Figure BDA0001982844330000151
如图3所示,在步骤31中,第一计算系统14选取2个随机数r1、r2,其中
Figure BDA0001982844330000152
Figure BDA0001982844330000153
然后,分别计算:
E1=E(m1-r1)=E(m1)·E(n-r1)=c1·E(n-r1)
E2=E(m2-r2)=E(m2)·E(n-r2)=c2·E(n-r2)
在步骤32中,第一计算系统14将中间计算结果E1和E2传给第二计算系统16。
在步骤33中,第二计算系统16接收中间计算结果E1和E2,并基于Paillier加密方案且利用私钥sk分别对中间计算结果E1和E2进行解密,即
D1=D(E1)=m1-r1
D2=D(E2)=m2-r2
在步骤34中,第二计算系统16计算:
h=D1·D2=(m1-r1)·(m2-r2)
在步骤35中,第二计算系统16基于Paillier加密方案且利用公钥pk对h进行加密,Eh=E(h)。
在步骤36中,第二计算系统16将Eh传给第一计算系统14。
在步骤37中,第一计算系统14分别计算
Figure BDA0001982844330000154
和E(n-r1r2),然后计算
Figure BDA0001982844330000155
根据上述公式(1)可知,该计算结果即为E(m1·m2)的值。
可选地,第一计算系统14可以将计算出的E(m1·m2)的值传给第二计算系统16或客户端12,第二计算系统16或客户端12可以基于Paillier加密方案且使用私钥sk对E(m1·m2)进行解密,得到m1·m2的结果。
在整个计算过程中,第一计算系统14和第二计算系统16中任何一方都不能通过提供给它们的数据获得明文m1、m2,所以,该计算过程保护了客户数据的安全性,并实现了明文m1、m2的乘法运算。而且,上述实施例利用加法同态的加密方案实现了乘法运算,可以降低运算复杂度。进一步地,除了在计算开始阶段需要客户端12将密文c1、c2传给第一计算系统14以及将私钥sk传给第二计算系统16之外,在整个计算过程中,不需要在客户端与云之间传递数据,所以,可以最大限度地降低通信开销。
图4是根据本公开实施例的安全多方云计算方法中执行除法运算的流程图。在本公开的实施例中,可以基于加法同态的加密方案并且在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的除法运算。
在本公开的实施例中,除法运算主要基于以下公式:
Figure BDA0001982844330000161
其中,r1、r2为2个随机数,
Figure BDA0001982844330000162
Figure BDA0001982844330000163
如图4所示,在步骤41中,第一计算系统14选取2个随机数r1、r2,其中
Figure BDA0001982844330000164
Figure BDA0001982844330000165
然后,分别计算:
Figure BDA0001982844330000166
Figure BDA0001982844330000167
在步骤42中,第一计算系统14将中间计算结果E3和E4传给第二计算系统16。
在步骤43中,第二计算系统16接收中间计算结果E3和E4,并基于Paillier加密方案且利用私钥sk分别对中间计算结果E3和E4进行解密,即
D3=D(E3)=(m1+r2m2)·r1
D4=D(E4)=m2r1
在步骤44中,第二计算系统16计算:
Figure BDA0001982844330000168
在步骤45中,第二计算系统16利用公钥pk对h进行加密,Eh=E(h)。
在步骤46中,第二计算系统16将Eh传给第一计算系统14。
在步骤47中,第一计算系统14接收Eh,然后计算Eh·E(n-r2),根据上述公式(3)可知,该计算结果即为
Figure BDA0001982844330000171
的值。
可选地,第一计算系统14可以将计算出的
Figure BDA0001982844330000172
的值传给第二计算系统16或客户端12,第二计算系统16或客户端12可以基于Paillier加密方案且使用私钥sk对
Figure BDA0001982844330000173
进行解密,得到
Figure BDA0001982844330000174
的结果。
在整个计算过程中,第一计算系统14和第二计算系统16中任何一方都不能通过提供给它们的数据获得明文m1、m2,所以,该计算过程保护了客户数据的安全性,并实现了明文m1、m2的除法运算。而且,上述实施例利用加法同态的加密方案实现了除法运算,可以降低运算复杂度。进一步地,除了在计算开始阶段需要客户端12将密文c1、c2传给第一计算系统14以及将私钥sk传给第二计算系统16之外,在整个计算过程中,不需要在客户端与云之间传递数据,所以,可以最大限度地降低通信开销。
图5是根据本公开实施例的安全多方云计算方法中执行比较运算的流程图。在本公开的实施例中,可以基于加法同态的加密方案并且在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的比较运算。
在本公开的实施例中,比较运算主要基于以下公式:
h=D(E5)-D(E6)=D(E(m1r1+r2))-D(E(m2r1))
=(m1-m2)r1+r2 (4)
cmp=h-r2=((m1-m2)r1+r2)-r2=(m1-m2)r1 (5)
其中,r1、r2为2个随机数,
Figure BDA0001982844330000175
Figure BDA0001982844330000176
cmp表示建立的比较函数,h表示用于比较的中间函数。
如图5所示,在步骤51中,第一计算系统14选取2个随机数r1、r2,其中
Figure BDA0001982844330000177
Figure BDA0001982844330000178
然后,分别计算:
Figure BDA0001982844330000179
Figure BDA00019828443300001710
在步骤52中,第一计算系统14将中间计算结果E5和E6传给第二计算系统16。
在步骤53中,第二计算系统16接收中间计算结果E5和E6,并基于Paillier加密方案且利用私钥sk分别对中间计算结果E5和E6进行解密,即
D5=D(E5)=m1r1+r2
D6=D(E6)=m2r1
在步骤54中,第二计算系统16计算:
h=D5-D6=(m1-m2)r1+r2
在步骤55中,第二计算系统16将h传给第一计算系统14。
在步骤56中,第一计算系统14接收h,然后根据上述公式(5)计算cmp。
在步骤57中,第一计算系统14根据cmp的值与0的关系,比较m1与m2的大小,具体如下:
如果cmp>0,则m1>m2
如果cmp=0,则m1=m2
如果cmp<0,则m1<m2
可选地,第一计算系统14可以将比较的结果传给客户端12。
在整个计算过程中,第一计算系统14和第二计算系统16中任何一方都不能通过提供给它们的数据获得明文m1、m2,所以,该计算过程保护了客户数据的安全性,并实现了明文m1、m2的比较运算。需要说明的是,在上述实施例中,第二计算系统16只能获得m1r1+r2、m2r1这样的中间结果,无法获得明文m1、m2的比较关系,所以,特别有利于不期望第二计算系统16获知明文m1、m2的比较关系的场景。而且,上述实施例利用加法同态的加密方案实现了比较运算,可以降低运算复杂度。进一步地,除了在计算开始阶段需要客户端12将密文c1、c2传给第一计算系统14以及将私钥sk传给第二计算系统16之外,在整个计算过程中,不需要在客户端与云之间传递数据,所以,可以最大限度地降低通信开销。
根据本公开的另一个实施例,第一计算系统14可以是公共云,第二计算系统16可以是公共云或客户端12不信任的第三方。在这种场景下,客户端不信任第一计算系统14和第二计算系统16中的任何一方。在该实施例中,用户可以利用均不信任的多个云进行云计算,扩大安全多方云计算的应用场景。
在该场景下,在密钥建立过程中,客户端12基于加法同态的加密算法(例如Paillier加密算法)生成公钥/私钥对(pk,sk),使用公钥pk对明文m1、m2分别进行加密,生成对应的密文c1、c2;并且将私钥sk随机地分为2个部分,即第一私钥sk1和第二私钥sk2。然后,客户端12将密文c1、c2以及第一私钥sk1传给第一计算系统14,将第二私钥sk2传给第二计算系统16。在一个示例中,私钥sk、第一私钥sk1和第二私钥sk2可以具有如下关系:sk=sk1+sk2。需要说明的是,公钥pk对客户端12、第一计算系统14和第二计算系统16都是公开的,并且第一计算系统14和第二计算系统16是互不串通的。
需要说明的是,在上述示例性的实施例中,提供了2个例如云的计算系统14、16,相应地,将私钥随机地分为两个部分,在本公开的其它实施例中,可以提供更多数量的例如云的计算系统,例如,可以提供k(k≥2)个例如云的计算系统,该k个计算系统是相互不串通的。相应地,可以将私钥sk随机地分为k个部分,即sk1、sk2、…、skk,分别分配给k个计算系统。这样,该k个计算系统中只要有一个计算系统是诚实的,那么客户端的数据的安全性就可以得到保护。在下面的说明中,以2个计算系统以及将私钥分为2个部分为例,对本公开的实施例进行详细描述,可以理解,其原理也可以应用于k个计算系统以及将私钥分为k个部分的场景中。
下面,以简化的Paillier加密方案为例,说明将私钥随机分为2个部分后进行解密的原理。
当2个大素数p、q的长度相同时,Paillier加密方案可以具有如下简化的变型。
公钥、私钥对的生成:g=n+1,λ=(p-1,q-1),μ=λ-1
加密:c=gm·rn mod n2=(1+mn)·rn mod n2
解密:
m=L(cλmod n2)·μmod n=L(((1+mn)rn)λmod n2)·μ mod n=L(r(1+mλn)modn2)·μmod n=L(1+mλn)·μmod n=L(1+mλn)·λ-1mod n=m mod n。
例如,可以将私钥λ随机拆分为2个部分,第一私钥sk1包括λ1,第二私钥sk2包括λ2,并且使得λ=λ12,使用第一私钥和第二私钥进行部分解密的中间结果可以按如下公式计算:
Figure BDA0001982844330000191
Figure BDA0001982844330000201
其中,PDec1为使用第一私钥进行部分解密后的中间结果,PDec2为使用第二私钥进行部分解密后的中间结果。
将第一私钥和第二私钥进行部分解密的中间结果PDec1、PDec2进行如下运算:
Figure BDA0001982844330000202
如上所述,L(r(1+mλn)mod n2)·μmod n=m,所以,通过使用部分私钥λ1、λ2进行解密,可以获得与使用私钥λ进行解密的相同结果。
在该实施例中,在执行加法和减法运算的过程中,同样可以在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的加法和减法运算。具体运算过程可以参照上文对基于Paillier加密算法的加法和减法运算过程的描述,在此不再赘述。
图6是根据本公开另一实施例的安全多方云计算方法中执行乘法运算的流程图。在本公开的实施例中,可以基于加法同态的加密方案并且在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的乘法运算。而且,在该实施例中,用户可以利用均不信任的多个云进行云计算,扩大安全多方云计算的应用场景。
在本公开的实施例中,乘法运算主要基于上述公式(1),为了描述方便,将公式(1)重复如下:
E(m1·m2)=E((m1-r1)·(m2-r2)+m1r2+m2r1-r1r2) (1)
其中,r1、r2为2个随机数,
Figure BDA0001982844330000203
Figure BDA0001982844330000204
如图6所示,在步骤61中,第一计算系统14选取2个随机数r1、r2,其中
Figure BDA0001982844330000205
Figure BDA0001982844330000206
然后,分别计算:
E1=E(m1-r1)=E(m1)·E(n-r1)=c1·E(n-r1)
E2=E(m2-r2)=E(m2)·E(n-r2)=c2·E(n-r2)
在步骤62中,第一计算系统14基于Paillier加密方案(例如上述公式(6))且利用第一私钥sk1(例如上文中的λ1)对中间计算结果E1和E2进行部分解密,即:
Figure BDA0001982844330000207
Figure BDA0001982844330000211
在步骤63中,第一计算系统14将中间计算结果E1和E2以及中间解密结果D1′和D2′传给第二计算系统16。
在步骤64中,第二计算系统16接收中间计算结果E1和E2以及中间解密结果D1′和D2′,并基于Paillier加密方案且利用第二私钥sk2(例如上文中的λ2)分别对E1、E2进行解密,例如,具体可以包括两个步骤:
首先,基于Paillier加密方案(例如上述公式(7))且利用第二私钥sk2(例如上文中的λ2)对中间计算结果E1和E2进行部分解密,即:
Figure BDA0001982844330000212
Figure BDA0001982844330000213
然后,分别计算D′1·F1′和D′2·F2′。
根据上述公式(8)可知,在进行上述两个步骤的计算之后,可以解密E1和E2,分别得到m1-r1和m2-r2
在步骤65中,第二计算系统16计算:
h=(m1-r1)·(m2-r2)
在步骤66中,第二计算系统16基于Paillier加密方案且利用公钥pk对h进行加密,Eh=E(h)。
在步骤67中,第二计算系统16将Eh传给第一计算系统14。
在步骤68中,第一计算系统14分别计算
Figure BDA0001982844330000214
和E(n-r1r2),然后计算
Figure BDA0001982844330000215
根据上述公式(1)可知,该计算结果即为E(m1·m2)的值。
可选地,第一计算系统14可以将计算出的E(m1·m2)的值传给客户端12,客户端12可以基于Paillier加密方案且使用私钥sk对E(m1·m2)进行解密,得到m1·m2的结果。
在整个计算过程中,第一计算系统14和第二计算系统16中任何一方都不能通过提供给它们的数据获得明文m1、m2,所以,该计算过程保护了客户数据的安全性,并实现了明文m1、m2的乘法运算。并且,在该实施例中,客户不信任第一计算系统14和第二计算系统16中任何一方,不需要将完整的私钥传给第一计算系统14和第二计算系统16中任何一方,进一步保证了多方云计算的安全性。
图7是根据本公开实施例的安全多方云计算方法中执行除法运算的流程图。在本公开的实施例中,可以基于加法同态的加密方案并且在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的除法运算。而且,在该实施例中,用户可以利用均不信任的多个云进行云计算,扩大安全多方云计算的应用场景。
在本公开的实施例中,除法运算主要基于上述公式(3),:
Figure BDA0001982844330000221
其中,r1、r2为2个随机数,
Figure BDA0001982844330000222
Figure BDA0001982844330000223
如图7所示,在步骤71中,第一计算系统14选取2个随机数r1、r2,其中
Figure BDA0001982844330000224
Figure BDA0001982844330000225
然后,分别计算:
Figure BDA0001982844330000226
Figure BDA0001982844330000227
在步骤72中,第一计算系统14基于Paillier加密方案(例如上述公式(6))且利用第一私钥sk1(例如上文中的λ1)对中间计算结果E3和E4进行部分解密,即:
Figure BDA0001982844330000228
Figure BDA0001982844330000229
在步骤73中,第一计算系统14将中间计算结果E3和E4以及中间解密结果D3′和D4′传给第二计算系统16。
在步骤74中,第二计算系统16接收中间计算结果E3和E4以及中间解密结果D3′和D4′,并基于Paillier加密方案且利用第二私钥sk2(例如上文中的λ2)分别对E3和E4进行解密,例如,具体可以包括两个步骤:
首先,基于Paillier加密方案(例如上述公式(7))且利用第二私钥sk2(例如上文中的λ2)对中间计算结果E3和E4进行部分解密,即:
Figure BDA00019828443300002210
Figure BDA00019828443300002211
然后,分别计算D′3·F3′和D′4·F4′。
根据上述公式(8)可知,在进行上述两个步骤的计算之后,可以解密E3和E4,分别得到(m1+r2m2)·r1和m2r1
在步骤75中,第二计算系统16计算:
Figure BDA0001982844330000231
在步骤76中,第二计算系统16基于Paillier加密方案且利用公钥pk对h进行加密,Eh=E(h)。
在步骤77中,第二计算系统16将Eh传给第一计算系统14。
在步骤78中,第一计算系统14接收Eh,然后计算Eh·E(n-r2),根据上述公式(3)可知,该计算结果即为
Figure BDA0001982844330000232
的值。
可选地,第一计算系统14可以将计算出的
Figure BDA0001982844330000233
的值传给客户端12,客户端12可以基于Paillier加密方案且使用私钥sk对
Figure BDA0001982844330000234
进行解密,得到
Figure BDA0001982844330000235
的结果。
在整个计算过程中,第一计算系统14和第二计算系统16中任何一方都不能通过提供给它们的数据获得明文m1、m2,所以,该计算过程保护了客户数据的安全性,并实现了明文m1、m2的除法运算。并且,在该实施例中,客户不信任第一计算系统14和第二计算系统16中任何一方,不需要将完整的私钥传给第一计算系统14和第二计算系统16中任何一方,进一步保证了多方云计算的安全性。
图8是根据本公开实施例的安全多方云计算方法中执行比较运算的流程图。在本公开的实施例中,可以基于同态加法的加密方案并且在不将原始的明文m1、m2披露给云的情况下,实现明文m1、m2的比较运算。而且,在该实施例中,用户可以利用均不信任的多个云进行云计算,扩大安全多方云计算的应用场景。
在本公开的实施例中,比较运算主要基于上述公式(4)和公式(5),它们重复如下:
h=D(E5)-D(E6)=D(E(m1r1+r2))-D(E(m2r1))
=(m1-m2)r1+r2 (4)
cmp=h-r2=(m1-m2)r1 (5)
其中,r1、r2为2个随机数,
Figure BDA0001982844330000236
Figure BDA0001982844330000237
如图8所示,在步骡81中,第一计算系统14选取2个随机数r1、r2,其中
Figure BDA0001982844330000241
Figure BDA0001982844330000242
然后,分别计算:
Figure BDA0001982844330000243
Figure BDA0001982844330000244
在步骤82中,第一计算系统14基于Paillier加密方案(例如上述公式(6))且利用第一私钥sk1(例如上文中的λ1)对中间计算结果E5和E6进行部分解密,即:
Figure BDA0001982844330000245
Figure BDA0001982844330000246
在步骤83中,第一计算系统14将中间计算结果E5和E6以及中间解密结果D5′和D6′传给第二计算系统16。
在步骤84中,第二计算系统16接收中间计算结果E5和E6以及中间解密结果D5′和D6′,并基于Paillier加密方案且利用第二私钥sk2(例如上文中的λ2)分别对E5和E6进行解密,例如,具体可以包括两个步骤:
首先,基于Paillier加密方案(例如上述公式(7))且利用第二私钥sk2(例如上文中的λ2)对中间计算结果E5和E6进行部分解密,即:
Figure BDA0001982844330000247
Figure BDA0001982844330000248
然后,分别计算D′5·F5′和D′6·F6′。
根据上述公式(8)可知,在进行上述两个步骤的计算之后,可以解密E5和E6,分别得到m1r1+r2和m2r1
在步骤85中,第二计算系统16计算:
h=m1r1+r2-m2r1=(m1-m2)r1+r2
在步骤86中,第二计算系统16将h传给第一计算系统14。
在步骤87中,第一计算系统14接收h,然后根据上述公式(5)计算cmp。
在步骤88中,第一计算系统14根据cmp的值与0的关系,比较m1与m2的大小,具体如下:
如果cmp>0,则m1>m2
如果cmp=0,则m1=m2
如果cmp<0,则m1<m2
可选地,第一计算系统14可以将比较的结果传给客户端12。
在整个计算过程中,第一计算系统14和第二计算系统16中任何一方都不能通过提供给它们的数据获得明文m1、m2,所以,该计算过程保护了客户数据的安全性,并实现了明文m1、m2的比较运算。需要说明的是,在上述实施例中,第二计算系统16只能获得m1r1+r2、m2r1这样的中间结果,无法获得明文m1、m2的比较关系,所以,特别有利于不期望第二计算系统16获知明文m1、m2的比较关系的场景。
虽然本发明总体构思的一些实施例已被图示和说明,本领域普通技术人员将理解,在不背离本总体发明构思的原则和精神的情况下,可对这些实施例做出改变,本发明的范围以权利要求和它们的等同物限定。

Claims (10)

1.一种计算机可执行方法,包括:
在第一计算系统中接收多个密文,其中,所述多个密文采用公钥分别对多个明文进行加密而形成;
在第二计算系统中接收私钥的至少一部分;和
第一计算系统和第二计算系统协作计算所述多个密文,以获得所述多个明文的函数的值,
其中,所述加密基于加法同态的加密方案实现,所述公钥和所述私钥为基于所述加法同态的加密方案生成的公钥/私钥对,所述函数包括乘法运算、除法运算和比较运算中的至少一种。
2.根据权利要求1所述的计算机可执行方法,其中,所述第一计算系统为公共云,所述第二计算系统为私有云或受用户信任的可信云。
3.根据权利要求2所述的计算机可执行方法,其中,所述在第二计算系统中接收私钥的至少一部分包括:在第二计算系统中接收完整的私钥。
4.根据权利要求1所述的计算机可执行方法,其中,所述第一计算系统和所述第二计算系统均为云,并且所述第一计算系统和所述第二计算系统中的任何一个都不受用户信任。
5.根据权利要求4所述的计算机可执行方法,还包括:在第一计算系统中接收所述私钥的第一部分,
其中,在第二计算系统中接收私钥的至少一部分包括:在第二计算系统中接收私钥的第二部分。
6.根据权利要求1-5中任一项所述的计算机可执行方法,其中,所述乘法运算基于以下公式:
E(m1·m2)=E((m1-r1)·(m2-r2)+m1r2+m2r1-r1r2),
所述除法运算基于以下公式:
Figure FDA0001982844320000021
所述比较运算基于以下公式:
cmp=((m1-m2)r1+r2)-r2
其中,E表示基于Paillier加密方案进行加密,m1、m2表示多个明文,r1、r2为多个随机数,
Figure FDA0001982844320000022
Figure FDA0001982844320000023
n=pq,p、q为Paillier加密方案随机选取的2个大素数,cmp表示建立的比较函数。
7.根据权利要求5所述的计算机可执行方法,其中,所述私钥包括基于Paillier加密方案生成的私钥λ,λ=lcm(p-1,q-1),其中lcm表示最小公倍数,p、q为Paillier加密方案随机选取的2个大素数;以及
所述私钥的第一部分和所述私钥的第二部分为随机拆分所述私钥λ而形成,并且满足λ=λ12,其中,λ1表示所述私钥的第一部分,λ2表示所述私钥的第二部分。
8.一种计算机可执行方法,包括:
在第一计算系统中接收私钥的第1部分和多个密文,其中,所述多个密文采用公钥分别对多个明文进行加密而形成;
在k-1个计算系统中分别接收私钥的第2~第k部分,其中k≥2且k为整数;和
所述第一计算系统和所述k-1个计算系统协作计算所述多个密文,以获得所述多个明文的函数的值,
其中,所述加密基于加法同态的加密方案实现,所述公钥和所述私钥为基于所述加法同态的加密方案生成的公钥/私钥对,所述函数包括乘法运算、除法运算和比较运算中的至少一种。
9.一种存储指令的计算机可读存储介质,当计算机执行所述指令时,使得所述计算机执行方法,所述方法为根据权利要求1-8中任一项所述的方法。
10.一种计算机系统,所述计算机系统包括:
存储器,所述存储器中存储有指令;和
处理器,
其中,当所述指令被处理器执行时,使得所述处理器执行方法,所述方法为根据权利要求1-8中任一项所述的方法。
CN201910158500.0A 2019-03-01 2019-03-01 基于同态加密的安全的多方云计算的方法和系统 Active CN111639345B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910158500.0A CN111639345B (zh) 2019-03-01 2019-03-01 基于同态加密的安全的多方云计算的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910158500.0A CN111639345B (zh) 2019-03-01 2019-03-01 基于同态加密的安全的多方云计算的方法和系统

Publications (2)

Publication Number Publication Date
CN111639345A true CN111639345A (zh) 2020-09-08
CN111639345B CN111639345B (zh) 2024-01-30

Family

ID=72332338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910158500.0A Active CN111639345B (zh) 2019-03-01 2019-03-01 基于同态加密的安全的多方云计算的方法和系统

Country Status (1)

Country Link
CN (1) CN111639345B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112383398A (zh) * 2020-10-29 2021-02-19 上海同态信息科技有限责任公司 使用哈希函数构造cca2安全的密码方案的方法
CN112906044A (zh) * 2021-05-10 2021-06-04 腾讯科技(深圳)有限公司 多方安全计算方法、装置、设备及存储介质
CN113704784A (zh) * 2021-08-23 2021-11-26 建信金融科技有限责任公司 协同安全计算方法、装置及电子设备
CN114124343A (zh) * 2020-11-16 2022-03-01 神州融安数字科技(北京)有限公司 保护隐私的风险评分信息查询方法、装置、系统及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970143A (zh) * 2012-12-13 2013-03-13 中国科学技术大学苏州研究院 采用加法同态加密方法进行安全计算双方持有数和的指数的方法
US20130170640A1 (en) * 2011-04-29 2013-07-04 International Business Machines Corporation Fully Homomorphic Encryption
US20130275752A1 (en) * 2012-04-17 2013-10-17 Futurewei Technologies, Inc. Method and system for secure multiparty cloud computation
CN107294698A (zh) * 2017-07-25 2017-10-24 西安电子科技大学 单密文同态计算的全同态加密方法
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130170640A1 (en) * 2011-04-29 2013-07-04 International Business Machines Corporation Fully Homomorphic Encryption
US20130275752A1 (en) * 2012-04-17 2013-10-17 Futurewei Technologies, Inc. Method and system for secure multiparty cloud computation
CN104521178A (zh) * 2012-04-17 2015-04-15 华为技术有限公司 安全的多方云计算的方法和系统
CN102970143A (zh) * 2012-12-13 2013-03-13 中国科学技术大学苏州研究院 采用加法同态加密方法进行安全计算双方持有数和的指数的方法
CN107294698A (zh) * 2017-07-25 2017-10-24 西安电子科技大学 单密文同态计算的全同态加密方法
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112383398A (zh) * 2020-10-29 2021-02-19 上海同态信息科技有限责任公司 使用哈希函数构造cca2安全的密码方案的方法
CN114124343A (zh) * 2020-11-16 2022-03-01 神州融安数字科技(北京)有限公司 保护隐私的风险评分信息查询方法、装置、系统及设备
CN114124343B (zh) * 2020-11-16 2023-11-14 神州融安数字科技(北京)有限公司 保护隐私的风险评分信息查询方法、装置、系统及设备
CN112906044A (zh) * 2021-05-10 2021-06-04 腾讯科技(深圳)有限公司 多方安全计算方法、装置、设备及存储介质
CN112906044B (zh) * 2021-05-10 2021-07-30 腾讯科技(深圳)有限公司 多方安全计算方法、装置、设备及存储介质
WO2022237450A1 (zh) * 2021-05-10 2022-11-17 腾讯科技(深圳)有限公司 多方安全计算方法、装置、设备及存储介质
CN113704784A (zh) * 2021-08-23 2021-11-26 建信金融科技有限责任公司 协同安全计算方法、装置及电子设备
CN113704784B (zh) * 2021-08-23 2023-06-16 建信金融科技有限责任公司 协同安全计算方法、装置及电子设备

Also Published As

Publication number Publication date
CN111639345B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
Zhou et al. Efficient homomorphic encryption on integer vectors and its applications
CN104521178B (zh) 安全的多方云计算的方法和系统
EP2228942B1 (en) Securing communications sent by a first user to a second user
US8429408B2 (en) Masking the output of random number generators in key generation protocols
Shao et al. Fine-grained data sharing in cloud computing for mobile devices
CN111639345B (zh) 基于同态加密的安全的多方云计算的方法和系统
Das Secure cloud computing algorithm using homomorphic encryption and multi-party computation
Liu et al. An efficient privacy-preserving outsourced computation over public data
CN111275202A (zh) 一种面向数据隐私保护的机器学习预测方法及系统
El Makkaoui et al. Challenges of using homomorphic encryption to secure cloud computing
CN110147681A (zh) 一种支持灵活访问控制的隐私保护大数据处理方法及系统
Dong et al. Attribute-based keyword search efficiency enhancement via an online/offline approach
Sridokmai et al. The homomorphic other property of Paillier cryptosystem
Senouci et al. An efficient and secure certificateless searchable encryption scheme against keyword guessing attacks
Son et al. Conditional proxy re-encryption for secure big data group sharing in cloud environment
El Makkaoui et al. Cloud-ElGamal: An efficient homomorphic encryption scheme
Gao et al. Efficient certificateless anonymous multi‐receiver encryption scheme without bilinear parings
Chatterjee et al. Cryptography in cloud computing: a basic approach to ensure security in cloud
Qin et al. Simultaneous authentication and secrecy in identity-based data upload to cloud
Mishra et al. A compendium over cloud computing cryptographic algorithms and security issues
EP2395698B1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
JP4563037B2 (ja) 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
Yang et al. Efficient certificateless encryption withstanding attacks from malicious KGC without using random oracles
Zheng et al. Improved anonymous proxy re-encryption with CCA security

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