CN107786580B - 基于云计算平台的Paillier加密方法 - Google Patents

基于云计算平台的Paillier加密方法 Download PDF

Info

Publication number
CN107786580B
CN107786580B CN201711320566.2A CN201711320566A CN107786580B CN 107786580 B CN107786580 B CN 107786580B CN 201711320566 A CN201711320566 A CN 201711320566A CN 107786580 B CN107786580 B CN 107786580B
Authority
CN
China
Prior art keywords
server
user
modular exponentiation
algorithm
verification
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
CN201711320566.2A
Other languages
English (en)
Other versions
CN107786580A (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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201711320566.2A priority Critical patent/CN107786580B/zh
Publication of CN107786580A publication Critical patent/CN107786580A/zh
Application granted granted Critical
Publication of CN107786580B publication Critical patent/CN107786580B/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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于云计算平台的Paillier加密方法,属于信息安全领域,该方法通过采用基于模幂运算安全外包算法将Paillier加密安全外包给云服务器,使得Paillier加密者能在保护加密信息不被泄露的同时,利用云服务器的计算能力高效地进行Paillier加密。本发明适用于云计算环境下的安全外包Paillier加密,特别适合用户希望利用云服务器完成加密过程,而又无法向云服务器泄漏被加密数据的情况。

Description

基于云计算平台的Paillier加密方法
技术领域
本发明属于信息安全领域,具体涉及一种基于云计算平台的Paillier加密方法,特别是基于云计算平台将加密过程安全云外包给云服务器的Paillier加密方法。
背景技术
Paillier加密算法[P. Paillier,“Public-key cryptosystems based oncomposite degree residuosity classes”,1999]是由Paillier在1999年提出的基于高次剩余类问题的加密体制,具有部分同态的特性,是一种被广泛使用的公钥加密算法。其具体步骤如下:
1)公私钥对的生成:随机取大质数
Figure 23207DEST_PATH_IMAGE001
Figure 250183DEST_PATH_IMAGE002
,令
Figure 355542DEST_PATH_IMAGE003
Figure 305044DEST_PATH_IMAGE004
,并且定义函数
Figure 66326DEST_PATH_IMAGE005
。然后随机取
Figure 126686DEST_PATH_IMAGE006
使其满足
Figure 289814DEST_PATH_IMAGE007
。其中lcmgcd分别表示最小公倍数和最大公约数。公钥为
Figure 410217DEST_PATH_IMAGE008
,私钥为
Figure 924375DEST_PATH_IMAGE009
2)加密:要加密的明文为
Figure 585163DEST_PATH_IMAGE010
,选择一个随机数
Figure 101333DEST_PATH_IMAGE011
,然后计算密文
Figure 658216DEST_PATH_IMAGE012
3)解密:密文
Figure 128512DEST_PATH_IMAGE013
需满足
Figure 530674DEST_PATH_IMAGE014
,计算得到明文
Figure 668395DEST_PATH_IMAGE015
模幂运算是Paillier加密过程中比重最大的计算,直接决定了它的性能。一次Paillier加密需要计算
Figure 396179DEST_PATH_IMAGE016
Figure 150509DEST_PATH_IMAGE017
,当需要对
Figure 621941DEST_PATH_IMAGE018
个明文
Figure 348589DEST_PATH_IMAGE019
进行加密时就需要计算
Figure 483160DEST_PATH_IMAGE020
Figure 193627DEST_PATH_IMAGE021
。当需要加密的明文
Figure 999909DEST_PATH_IMAGE022
和参数n很大时,这样的计算任务就会对用户的计算能力要求很高,对于一些缺乏计算资源的用户来说是很难高效的完成这样的计算任务。在云计算高速发展的今天,用户可以方便的通过外包计算任务给云服务器来完成计算任务。
对于企业用户而言,通过云计算服务可显著降低计算和存储的维护成本;对个人用户而言,通过将信息的存储和计算放在云端降低了自身存储和计算资源有限所带来的很多约束。
然而用户在享受到云的便利的同时不可避免的会产生很多的安全问题。用户需要计算的明文往往是用户的隐私信息,如果直接发送给云服务器很容易被恶意窃取。所以用户需要通过安全云外包模幂运算算法对数据进行处理后再发送给云服务器,然而现在已有的云外包模幂运算算法都是基于EXP算法[Xiaofeng Chen, Jin Li and Jianfeng Ma,“New Algorithms for Secure Outsourcing of Modular Exponentions”, 2014]延伸而来,且此类算法并不适用于使用Paillier加密算法对多个明文同时加密的具体情况。
发明内容
本发明针对上述问题,提供了一种Paillier加密算法安全云外包方法,采用适用于上述情况的固定底数和固定指数的安全云外包算法,把加密过程中的模幂运算安全外包给云服务器,保证能高效的得到计算结果的同时不会泄露用户的明文和随机数等加密信息,进而大大提高Paillier加密的效率。
本发明的目的就是为了解决传统Paillier加密算法的上述问题,提供一种通过云外包实现的安全高效的Paillier加密方法,针对同时需要对多个明文进行Paillier加密的情况,在保证隐私信息不被泄露的情况下使用模幂运算安全外包算法将Paillier加密中的模幂运算能外包给云服务器,通过租用云服务器的计算能力安全高效的得到模幂运算的结果,进而加快Paillier加密的运行效率,本发明的目的通过以下技术方案来实现。
一种基于云计算平台的Paillier加密方法,其特征在于,所述方法包括以下步骤:
(1)用户根据明文数量随机选择相同数量的随机数集合
Figure 846643DEST_PATH_IMAGE023
(2)以明文集合
Figure 916230DEST_PATH_IMAGE024
、随机数集合
Figure 848414DEST_PATH_IMAGE025
、公钥
Figure 396070DEST_PATH_IMAGE026
Figure 362889DEST_PATH_IMAGE027
作为模幂运算安全外包算法的输入数据,分别执行固定底数和固定指数的模幂运算安全外包算法,形成处理后的明文集合
Figure 337798DEST_PATH_IMAGE028
、随机数集合
Figure 819595DEST_PATH_IMAGE029
、公钥
Figure 669477DEST_PATH_IMAGE026
Figure 225223DEST_PATH_IMAGE027
(3)用户将处理后的明文集合
Figure 371034DEST_PATH_IMAGE028
、随机数集合
Figure 277810DEST_PATH_IMAGE029
、公钥
Figure 229585DEST_PATH_IMAGE026
Figure 905417DEST_PATH_IMAGE027
发送给云服务器;
(4)云服务器根据用户的请求进行模幂运算,并反馈给用户相应模幂运算的结果;
(5)用户根据服务器的反馈结果获取加密所需要的
Figure 487708DEST_PATH_IMAGE030
Figure 616201DEST_PATH_IMAGE031
,最后通过公式
Figure 309351DEST_PATH_IMAGE032
形成最终的数据密文
Figure 902006DEST_PATH_IMAGE033
优选的技术方案是:所述方法步骤(2)中假设随机数集合
Figure 144945DEST_PATH_IMAGE034
,明文集合
Figure 760734DEST_PATH_IMAGE035
,则用户通过固定底数的模幂运算安全外包算法按照如下方式进行处理:
S11)随机取
Figure 257574DEST_PATH_IMAGE036
个数得到集合
Figure 907999DEST_PATH_IMAGE037
S12)通过公式
Figure 566513DEST_PATH_IMAGE038
得到集合
Figure 935177DEST_PATH_IMAGE039
S13)调用
Figure 970129DEST_PATH_IMAGE040
生成
Figure 475060DEST_PATH_IMAGE041
个指数对
Figure 68590DEST_PATH_IMAGE042
S14)通过公式
Figure 455709DEST_PATH_IMAGE043
Figure 294352DEST_PATH_IMAGE044
得到集合
Figure 919369DEST_PATH_IMAGE045
S15)通过公式
Figure 919686DEST_PATH_IMAGE046
得到集合
Figure 997363DEST_PATH_IMAGE047
,将集合
Figure 374118DEST_PATH_IMAGE047
打乱顺序并记录索引后得到集合
Figure 853641DEST_PATH_IMAGE048
,最后将
Figure 87176DEST_PATH_IMAGE049
发送给云服务器。
优选的技术方案是:所述方法步骤(2)中假设随机数集合
Figure 652149DEST_PATH_IMAGE034
,明文集合
Figure 334060DEST_PATH_IMAGE035
,则用户通过固定指数的模幂运算安全外包算法按照如下方式进行处理:
S21)随机取
Figure 668089DEST_PATH_IMAGE050
个数得到集合
Figure 72526DEST_PATH_IMAGE051
S22)通过公式
Figure 859216DEST_PATH_IMAGE052
得到集合
Figure 843353DEST_PATH_IMAGE053
S23)调用
Figure 31889DEST_PATH_IMAGE054
生成
Figure 810489DEST_PATH_IMAGE055
个指数对
Figure 84475DEST_PATH_IMAGE056
;
S24)通过公式
Figure 606724DEST_PATH_IMAGE057
Figure 712083DEST_PATH_IMAGE058
得到集合
Figure 160119DEST_PATH_IMAGE059
S25)通过公式
Figure 186981DEST_PATH_IMAGE060
得到集合
Figure 981762DEST_PATH_IMAGE061
;将集合
Figure 410469DEST_PATH_IMAGE061
打乱顺序并记录索引后得到集合
Figure 530872DEST_PATH_IMAGE062
,最后将
Figure 779451DEST_PATH_IMAGE063
发送给云服务器。
优选的技术方案是:所述方法步骤(5)中还包括当用户接收到服务器的反馈结果后,用户需要对服务器的反馈结果进行验证的步骤;当数据验证通过,就将服务器的返回数据获取加密所需要的
Figure 440239DEST_PATH_IMAGE064
Figure 723453DEST_PATH_IMAGE065
优选的技术方案是:所述方法步骤(5)中如果服务器的反馈结果没有通过验证则确定服务器返回虚假的值,继续进行步骤(4)或者继续请求服务器反馈模幂运算结果。
优选的技术方案是:用户对服务器的反馈结果进行验证包括固定底数算法验证,其中固定底数算法验证的步骤包括假设
Figure 14757DEST_PATH_IMAGE066
Figure 252097DEST_PATH_IMAGE067
,如果
Figure 654259DEST_PATH_IMAGE068
,则判断返回数据为真,得到
Figure 791979DEST_PATH_IMAGE069
;如果没有通过验证则判断服务器返回虚假的值,输出ERROR,继续进行步骤(4)或者继续请求服务器反馈模幂运算结果。
优选的技术方案是:用户对服务器的反馈结果进行验证包括固定指数算法验证,其中固定指数算法验证的步骤包括假设
Figure 254185DEST_PATH_IMAGE070
Figure 274093DEST_PATH_IMAGE071
,如果
Figure 745526DEST_PATH_IMAGE072
,则判断返回数据为真,得到
Figure 472174DEST_PATH_IMAGE073
;如果没有通过验证则判断服务器返回虚假的值,输出ERROR,继续进行步骤(4)或者继续请求服务器反馈模幂运算结果。
优选的,所述方法按照以下步骤来进行:
1)加密者根据明文个数
Figure 105280DEST_PATH_IMAGE018
随机选择相同数目的随机数集合
Figure 815747DEST_PATH_IMAGE034
,然后将明文集合
Figure 622029DEST_PATH_IMAGE035
、随机数集合
Figure 967298DEST_PATH_IMAGE023
、公钥
Figure 771306DEST_PATH_IMAGE074
Figure 703490DEST_PATH_IMAGE075
作为模幂运算安全外包算法的输入。
2)加密者根据步骤1)中的输入数据首先执行固定底数的模幂运算安全外包算法:随机取
Figure 516725DEST_PATH_IMAGE036
个数得到集合
Figure 217965DEST_PATH_IMAGE037
;集合
Figure 458453DEST_PATH_IMAGE039
可以通过公式
Figure 674671DEST_PATH_IMAGE038
得到;调用
Figure 26018DEST_PATH_IMAGE040
生成
Figure 847343DEST_PATH_IMAGE041
个指数对
Figure 760198DEST_PATH_IMAGE042
;集合
Figure 401395DEST_PATH_IMAGE045
可以通过公式
Figure 556432DEST_PATH_IMAGE043
Figure 29002DEST_PATH_IMAGE044
得到;将集合
Figure 611293DEST_PATH_IMAGE046
打乱顺序并记录索引后得到最后的集合
Figure 5365DEST_PATH_IMAGE048
,最后将
Figure 432936DEST_PATH_IMAGE049
发送给云服务器。
然后执行固定指数的模幂运算安全外包算法: 随机取
Figure 228853DEST_PATH_IMAGE050
个数得到集合
Figure 716467DEST_PATH_IMAGE051
;集合
Figure 394573DEST_PATH_IMAGE053
可以通过公式
Figure 389948DEST_PATH_IMAGE052
得到;调用
Figure 774793DEST_PATH_IMAGE054
生成
Figure 698887DEST_PATH_IMAGE055
个指数对
Figure 801972DEST_PATH_IMAGE056
;集合
Figure 836924DEST_PATH_IMAGE059
可以通过公式
Figure 404172DEST_PATH_IMAGE057
Figure 499167DEST_PATH_IMAGE058
得到;将集合
Figure 89548DEST_PATH_IMAGE060
打乱顺序并记录索引后得到最后的集合
Figure 928191DEST_PATH_IMAGE062
,最后将
Figure 800812DEST_PATH_IMAGE063
发送给云服务器。
3)云服务器根据加密者的要求进行模幂运算后分别将固定底数和固定指数算法的结果发送给加密者。
4)加密者根据服务器的返回数据分别进行验证。固定底数算法验证:令
Figure 66708DEST_PATH_IMAGE076
Figure 144385DEST_PATH_IMAGE077
,如果
Figure 317878DEST_PATH_IMAGE078
则可以判断返回数据为真,进而得到最后的
Figure 797401DEST_PATH_IMAGE079
;如果没有通过验证则说明服务器返回虚假的值,输出ERROR。固定指数算法验证:令
Figure 234198DEST_PATH_IMAGE080
Figure 533593DEST_PATH_IMAGE081
,如果
Figure 714038DEST_PATH_IMAGE082
则可以判断返回数据为真,进而得到最后的
Figure 48068DEST_PATH_IMAGE083
;如果没有通过验证则说明服务器返回虚假的值,输出ERROR。用户最后根据前面得到的
Figure 452504DEST_PATH_IMAGE084
Figure 3309DEST_PATH_IMAGE085
,最后通过公式
Figure 721866DEST_PATH_IMAGE086
得到最终的密文
Figure 910402DEST_PATH_IMAGE087
优选的,所述方法是利用计算机进行完成。
本发明的目的在于解决云外包Paillier加密的用户(记为Client)和云服务器(记为Server),在合作完成Paillier加密时未使用安全外包模幂运算算法所造成的隐私泄露问题,本发明提出一种安全云外包Paillier加密算法。通过本发明的设计,云服务器Server只可以得到需要进行计算的非隐私数据,同时用户Client可以对Server返回的数据进行验证和处理得到用户所需要的计算结果,进而提高Paillier加密的速率。
本发明目的中所要解决问题的具体设置环境可以为:用户Client拥有Paillier加密数据明文集合
Figure 689002DEST_PATH_IMAGE088
和随机数集合
Figure 25306DEST_PATH_IMAGE089
,但是缺乏计算能力,而云服务器Server具有强大的计算能力,他们需要通过合作计算
Figure 547554DEST_PATH_IMAGE090
Figure 856175DEST_PATH_IMAGE091
,由于云服务器并不能被认为完全可信的,因此用户不能让云服务器知道明文
Figure 540098DEST_PATH_IMAGE092
和随机数
Figure 566959DEST_PATH_IMAGE093
的信息,本发明通过安全云外包模幂运算算法可以解决上述隐私泄露的问题,同时用户还能方便的得到计算结果进行后面的密文计算。
相对与传统的Paillier加密算法,本发明的优点是:
本发明突出的实质性特点和显著性进步主要体现在以下几点:本发明通过云外包Paillier加密过程中的模幂运算部分大大缩减了Paillier加密时间,加快了加密效率;通过模幂运算安全外包算法保证了在云外包的过程中加密数据的安全性,为本发明的安全性提供支撑;本发明是建立在单不可信云服务器的模型上,所以在云服务器的选择上条件相对宽松,只需要租用一个云服务器,在一定程度上为用户减少了很多不必要的开销。
本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明基于模幂运算安全外包算法的Paillier加密算法的流程图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
本实施例的安全云外包Paillier加密算法思路如下步骤一到步骤四,以利用安全外包模幂运算方案,使得用户能在保证隐私数据不泄露的同时获得模幂运算的结果,进而加快Paillier加密的速度。
步骤一:加密者根据明文个数随机选择相同数目的随机数集合
Figure 128784DEST_PATH_IMAGE023
,然后将明文集合
Figure 88650DEST_PATH_IMAGE094
、随机数集合
Figure 474632DEST_PATH_IMAGE023
、公钥
Figure 926473DEST_PATH_IMAGE074
Figure 587261DEST_PATH_IMAGE075
作为模幂运算安全外包算法的输入。
步骤二:加密者根据步骤一中的输入数据分别执行固定底数和固定指数的模幂运算安全外包算法,将处理后的明文集合
Figure 870475DEST_PATH_IMAGE048
、随机数集合
Figure 896200DEST_PATH_IMAGE062
、公钥
Figure 632075DEST_PATH_IMAGE074
Figure 299817DEST_PATH_IMAGE075
发送给云服务器。
步骤三:云服务器根据加密者的要求进行模幂运算后将对应的计算结果发送给加密者。
步骤四:加密者根据服务器的返回数据进行验证,如果验证通过,就将服务器的返回数据进行简单计算后得到加密所需要的
Figure 234275DEST_PATH_IMAGE084
Figure 195015DEST_PATH_IMAGE085
,最后通过公式
Figure 418186DEST_PATH_IMAGE086
得到最终的密文
Figure 624039DEST_PATH_IMAGE087
具体实施步骤如下:
步骤一:加密者根据明文个数
Figure 616266DEST_PATH_IMAGE018
随机选择相同数目的随机数集合
Figure 249373DEST_PATH_IMAGE034
,然后将明文集合
Figure 959840DEST_PATH_IMAGE035
、随机数集合
Figure 500543DEST_PATH_IMAGE023
、公钥
Figure 612855DEST_PATH_IMAGE074
Figure 151284DEST_PATH_IMAGE075
作为模幂运算安全外包算法的输入。
步骤二:加密者根据步骤一中的输入数据首先执行固定底数的模幂运算安全外包算法:随机取
Figure 850512DEST_PATH_IMAGE036
个数得到集合
Figure 398168DEST_PATH_IMAGE037
;集合
Figure 364987DEST_PATH_IMAGE039
可以通过公式
Figure 605475DEST_PATH_IMAGE038
得到;调用
Figure 24955DEST_PATH_IMAGE040
生成
Figure 376302DEST_PATH_IMAGE041
个指数对
Figure 197628DEST_PATH_IMAGE042
;集合
Figure 609017DEST_PATH_IMAGE045
可以通过公式
Figure 312531DEST_PATH_IMAGE043
Figure 700525DEST_PATH_IMAGE044
得到;将集合
Figure 641936DEST_PATH_IMAGE046
打乱顺序并记录索引后得到最后的集合
Figure 958648DEST_PATH_IMAGE048
,最后将
Figure 352720DEST_PATH_IMAGE049
发送给云服务器。
然后执行固定指数的模幂运算安全外包算法: 随机取
Figure 45870DEST_PATH_IMAGE050
个数得到集合
Figure 576208DEST_PATH_IMAGE051
;集合
Figure 329401DEST_PATH_IMAGE053
可以通过公式
Figure 7507DEST_PATH_IMAGE052
得到;调用
Figure 504347DEST_PATH_IMAGE054
生成
Figure 656236DEST_PATH_IMAGE055
个指数对
Figure 49171DEST_PATH_IMAGE056
;集合
Figure 214573DEST_PATH_IMAGE059
可以通过公式
Figure 249526DEST_PATH_IMAGE057
Figure 754456DEST_PATH_IMAGE058
得到;将集合
Figure 583872DEST_PATH_IMAGE060
打乱顺序并记录索引后得到最后的集合
Figure 439833DEST_PATH_IMAGE062
,最后将
Figure 278476DEST_PATH_IMAGE063
发送给云服务器。
步骤三:云服务器根据加密者的要求进行模幂运算后分别将固定底数和固定指数算法的结果发送给加密者。
步骤四:加密者根据服务器的返回数据分别进行验证。固定底数算法验证:令
Figure 434650DEST_PATH_IMAGE066
Figure 700547DEST_PATH_IMAGE067
,如果
Figure 276759DEST_PATH_IMAGE068
则可以判断返回数据为真,进而得到最后的
Figure 653514DEST_PATH_IMAGE069
;如果没有通过验证则说明服务器返回虚假的值,输出ERROR。固定指数算法验证:令
Figure 133037DEST_PATH_IMAGE070
Figure 569834DEST_PATH_IMAGE071
,如果
Figure 931546DEST_PATH_IMAGE072
则可以判断返回数据为真,进而得到最后的
Figure 111991DEST_PATH_IMAGE073
;如果没有通过验证则说明服务器返回虚假的值,输出ERROR。用户最后根据前面得到的
Figure 180441DEST_PATH_IMAGE064
Figure 788140DEST_PATH_IMAGE065
,最后通过公式
Figure 637147DEST_PATH_IMAGE095
得到最终的密文
Figure 355705DEST_PATH_IMAGE096
下面为方法的具体执行结果。
实验在LINUX系统,Intel Core i3 3.30GHz CPU和8G内存的平台下,使用GNU高精度算术运算库(GMP)进行具体的实验;
非外包Paillier加密和外包Paillier加密所耗时间,实验结果如表1:
表1 非外包Paillier加密和外包Paillier加密时间对比
Figure 440511DEST_PATH_IMAGE097
结合表1实验结果可以看出,随着明文数目的增多,传统非外包Paillier加密所用时间几乎是线性增加,而外包Paillier加密却几乎保持平稳,两者的差距也随着明文的增加而增大,基于云平台的外包模幂运算使得Paillier加密速率明显加快。
通过上述实施例的分析可见,本发明能在保护用户隐私的同时大大加快Paillier加密的速度。采用本发明后,用户需要同时对多个明文进行Paillier加密时,通过模幂运算安全外包算法能在保证隐私信息不被泄露的同时将Paillier加密过程中的模幂运算能外包给单云服务器,通过云服务器庞大的计算能力高效的得到模幂运算的结果,进而加快Paillier加密的效率。本发明适用于云计算环境下的安全外包Paillier加密,特别适合单服务器下用户与云服务器之间缺乏信任的环境。由此可见,本发明具有实质性技术特点和显著的技术进步,其应用前景非常广阔。
因此,本发明的方案通过采用基于模幂运算安全外包算法将Paillier加密安全外包给云服务器,使得Paillier加密者能在保护加密信息不被泄露的同时,利用云服务器的计算能力高效地进行Paillier加密。本发明适用于云计算环境下的安全外包Paillier加密,特别适合用户希望利用云服务器完成加密过程,而又无法向云服务器泄漏被加密数据的情况。

Claims (7)

1.一种基于云计算平台的Paillier加密方法,其特征在于,所述方法包括以下步骤:
(1)用户根据明文数量随机选择相同数量的随机数集合R;
(2)以明文集合M={m1,m2,...,mt}、随机数集合R={r1,r2,...,rt}、公钥n和g作为模幂运算安全外包算法的输入数据,分别执行固定底数和固定指数的模幂运算安全外包算法,形成处理后的明文集合M′、随机数集合R′、公钥n和g;其中每个mi代表一个明文数据,每个ri代表一个随机数数据,i分别取值为1,2,…t;t为自然数;
(3)用户将处理后的明文集合M′、随机数集合R′、公钥n和g发送给云服务器;
(4)云服务器根据用户的请求进行模幂运算,并反馈给用户相应模幂运算的结果;
(5)用户根据服务器的反馈结果获取加密所需要的
Figure FDA0002508335670000011
Figure FDA0002508335670000012
最后通过公式
Figure FDA0002508335670000013
形成最终的数据密文ci;ci表示对每个mi进行加密后得到的密文;
Figure FDA0002508335670000014
表示公钥g的mi次幂,
Figure FDA0002508335670000015
表示随机数ri的n次幂。
2.根据权利要求1所述的基于云计算平台的Paillier加密方法,其特征在于,
所述方法步骤(2)中假设随机数集合R={r1,r2,...,rt},明文集合M={m1,m2,...,mt},则用户通过固定底数的模幂运算安全外包算法按照如下方式进行处理:
S11)取m-1个随机数得到集合B={b1,b2,...,bm-1};
S12)通过公式
Figure FDA0002508335670000021
得到集合C;
S13)调用rand1生成e个指数对
Figure FDA0002508335670000022
S14)通过公式
Figure FDA0002508335670000023
Figure FDA0002508335670000024
得到集合MR;
S15)通过公式A=B+C+MR得到集合A,将集合A打乱顺序并记录索引后得到集合M′,最后将(M′,g,n)发送给云服务器。
3.根据权利要求1所述的基于云计算平台的Paillier加密方法,其特征在于,
所述方法步骤(2)中假设随机数集合R={r1,r2,...,rt},明文集合M={m1,m2,...,mt},则用户通过固定指数的模幂运算安全外包算法按照如下方式进行处理:
S21)取m′-1个随机数得到集合B′={b′1,b′2,...,b′m′-1};
S22)通过公式
Figure FDA0002508335670000025
得到集合C′;
S23)调用rand2生成e′个指数对
Figure FDA0002508335670000026
S24)通过公式
Figure FDA0002508335670000027
Figure FDA0002508335670000028
得到集合MR′;
S25)通过公式HA=B′+C′+MR′得到集合HA;将集合HA打乱顺序并记录索引后得到集合R′,最后将(R′,n)发送给云服务器。
4.根据权利要求1所述的基于云计算平台的Paillier加密方法,其特征在于,
所述方法步骤(5)中还包括当用户接收到服务器的反馈结果后,用户需要对服务器的反馈结果进行验证的步骤;当数据验证通过,就将服务器的返回数据获取加密所需要的
Figure FDA0002508335670000031
Figure FDA0002508335670000032
5.根据权利要求4所述的基于云计算平台的Paillier加密方法,其特征在于,
所述方法步骤(5)中如果服务器的反馈结果没有通过验证则确定服务器返回虚假的值,继续进行步骤(4)或者继续请求服务器反馈模幂运算结果。
6.根据权利要求4所述的基于云计算平台的Paillier加密方法,其特征在于,
用户对服务器的反馈结果进行验证包括固定底数算法验证,其中固定底数算法验证的步骤包括假设
Figure FDA0002508335670000033
如果
Figure FDA0002508335670000034
则判断返回数据为真,得到
Figure FDA0002508335670000035
Figure FDA0002508335670000036
如果没有通过验证则判断服务器返回虚假的值,输出ERROR,继续进行步骤(4)或者继续请求服务器反馈模幂运算结果。
7.根据权利要求4所述的基于云计算平台的Paillier加密方法,其特征在于,
用户对服务器的反馈结果进行验证包括固定指数算法验证,其中固定指数算法验证的步骤包括假设
Figure FDA0002508335670000037
Figure FDA0002508335670000038
如果
Figure FDA0002508335670000039
则判断返回数据为真,得到
Figure FDA00025083356700000310
Figure FDA00025083356700000311
如果没有通过验证则判断服务器返回虚假的值,输出ERROR,继续进行步骤(4)或者继续请求服务器反馈模幂运算结果。
CN201711320566.2A 2017-12-12 2017-12-12 基于云计算平台的Paillier加密方法 Active CN107786580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711320566.2A CN107786580B (zh) 2017-12-12 2017-12-12 基于云计算平台的Paillier加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711320566.2A CN107786580B (zh) 2017-12-12 2017-12-12 基于云计算平台的Paillier加密方法

Publications (2)

Publication Number Publication Date
CN107786580A CN107786580A (zh) 2018-03-09
CN107786580B true CN107786580B (zh) 2020-10-02

Family

ID=61437129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711320566.2A Active CN107786580B (zh) 2017-12-12 2017-12-12 基于云计算平台的Paillier加密方法

Country Status (1)

Country Link
CN (1) CN107786580B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352609B (zh) * 2020-03-05 2022-06-14 青岛大学 一种基于边缘计算的分布式外包模幂运算方法
CN111538582A (zh) * 2020-04-26 2020-08-14 中国科学技术大学 基于Intel QAT的同态加密卸载方法
CN111832050B (zh) * 2020-07-10 2021-03-26 深圳致星科技有限公司 用于联邦学习的基于FPGA芯片实现的Paillier加密方案

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095459B (zh) * 2013-01-17 2016-09-28 数安时代科技股份有限公司 公钥密码体制中模幂运算方法、设备和服务器
CN104486315B (zh) * 2014-12-08 2017-06-13 北京航空航天大学 一种基于内容属性的可撤销密钥外包解密方法
CN105491006B (zh) * 2015-11-13 2018-11-13 河南师范大学 云外包密钥共享装置及方法
CN105812141B (zh) * 2016-03-07 2018-11-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Towards Practical Homomorphic Encryption in Cloud Computing";A. Bouti and J. Keller;《2015 IEEE Fourth Symposium on Network Cloud Computing and Applications (NCCA)》;20151230;第67-74页 *
"云计算安全研究综述";拱长青等;《沈阳航空航天大学学报》;20170825;第34卷(第4期);第1-16页 *
"Outsourcing computation of modular exponentiations in cloud computing";Ma, X., Li, J. & Zhang, F.;《 Cluster Computing》;20130410;第787-796页 *
"云外包计算中空间位置关系的保密判定";陈振华等;《计算机学报》;20160926;第40卷(第2期);第351-363页 *

Also Published As

Publication number Publication date
CN107786580A (zh) 2018-03-09

Similar Documents

Publication Publication Date Title
Wang et al. Oruta: Privacy-preserving public auditing for shared data in the cloud
Zhang et al. Identity-based key-exposure resilient cloud storage public auditing scheme from lattices
Li et al. Efficient identity-based provable multi-copy data possession in multi-cloud storage
Wang et al. Provable data possession with outsourced data transfer
Yang et al. Secure data access control with fair accountability in smart grid data sharing: An edge blockchain approach
CN104038349B (zh) 一种基于kp‑abe的有效可验证的公钥可搜索加密方法
CN106230590B (zh) 一种多授权机构的密文策略属性基加密方法
CN111130757A (zh) 一种基于区块链的多云cp-abe访问控制方法
Ding et al. Secure outsourcing of modular exponentiations under single untrusted programme model
JP5957095B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
CN106487506B (zh) 一种支持预加密和外包解密的多机构kp-abe方法
Saxena et al. Cloud audit: A data integrity verification approach for cloud computing
EP3395031B1 (en) Method for providing a proof of retrievability
CN107786580B (zh) 基于云计算平台的Paillier加密方法
CN110826089A (zh) 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统
Li et al. Verifiable searchable encryption with aggregate keys for data sharing in outsourcing storage
Wu et al. Privacy-preserving cloud auditing with multiple uploaders
CN114187000B (zh) 用于分散私钥的签名方法、设备、存储介质及处理器
Rong et al. Privacy‐Preserving k‐Means Clustering under Multiowner Setting in Distributed Cloud Environments
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
Zhou et al. CASO: Cost-aware secure outsourcing of general computational problems
CN114741711A (zh) 基于区块链的多关键字可搜索加密方法
Sheng et al. MD-VC _ Matrix VC M atrix: An Efficient Scheme for Publicly Verifiable Computation of Outsourced Matrix Multiplication
Youn et al. Design of additive homomorphic encryption with multiple message spaces for secure and practical storage services over encrypted data
Wang et al. An encryption method of power cloud data based on n-RSA

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