CN110826089B - 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统 - Google Patents

一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统 Download PDF

Info

Publication number
CN110826089B
CN110826089B CN201911275953.8A CN201911275953A CN110826089B CN 110826089 B CN110826089 B CN 110826089B CN 201911275953 A CN201911275953 A CN 201911275953A CN 110826089 B CN110826089 B CN 110826089B
Authority
CN
China
Prior art keywords
matrix
plaintext
ciphertext
outsourcing
cloud computing
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
CN201911275953.8A
Other languages
English (en)
Other versions
CN110826089A (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.)
Sichuan University
Original Assignee
Sichuan University
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 Sichuan University filed Critical Sichuan University
Priority to CN201911275953.8A priority Critical patent/CN110826089B/zh
Publication of CN110826089A publication Critical patent/CN110826089A/zh
Application granted granted Critical
Publication of CN110826089B publication Critical patent/CN110826089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及云计算技术领域,公开了一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统。通过本发明创造,提供了一种适用于计算大尺度矩阵乘法结果的新外包计算协议,可使拥有较少计算资源/计算能力弱的客户端在面对大尺度矩阵乘运算时,能够在保证敏感的矩阵数据不被泄露的前提下,通过较少的计算开销将矩阵的乘运算外包给拥有大量计算资源的云服务器,并提供给客户关于矩阵乘结果的安全可靠的验证,从而满足外包计算在安全性(可验证性)、隐私性以及高效性的所存在的需求,便于实际应用和推广。与现有相关协议相比,其验证方案通过猜测结果的概率更低,且不依赖于原始明文矩阵和随机验证次数;验证效率也更高。

Description

一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、 客户端及云计算系统
技术领域
本发明属于云计算技术领域,具体涉及一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统。
背景技术
随着云服务相关技术的快速发展和成熟,云计算在各个领域都有着越来越多的作用。云计算将大量计算机资源协调在一起,从而可以向客户提供强大的计算能力,大大提高计算资源的利用率。外包计算是云计算中一个很重要的应用,它可以为计算资源受限的客户免去繁重的计算任务并帮助客户完成该计算任务。但是,这项技术也带来了一些特定的问题需要解决,例如客户敏感数据的隐私性以及返回结果的正确性。
矩阵在科学工程等众多领域中均有着普遍且重要的应用,其中矩阵乘法运算的普遍性尤为突出。对于两个m×m的矩阵而言,传统计算方法的计算复杂度为O(m3),目前已有的用于矩阵乘的算法已经可以将计算复杂度降到O(m2.373)(现有文献1:M.Atallah andM.Blanton,editors.Algorithms and Theory of Computation Handbook.Volume I:General Concepts and Techniques,chapter 17.CRC Press,2009),但实际上该复杂度的常数系数过于巨大,因此该算法很难应用在实际中。在m<1020的情况下,使用现有文献2(J.Laderman,V.Pan,and X.Sha.On practical algorithms for accelerated matrixmultiplication.Linear Algebra and Its Applications,162-164:557-588.)中的算法可以使得该复杂度降到O(m2.775),然而,当m在达到几万、几十万甚至更高的数量级时,计算资源受限的客户端要完成这样的计算任务所需的时间依旧是很长的。外包计算可以帮助客户节省这种繁重计算所花费的时间,但在将矩阵乘运算外包给云端服务器计算时,有如下3个方面的问题需要解决。
(1)安全性(可验证性):客户端应当能够检验自己得到的结果是否正确。一方面,由于硬件的故障或者软件的漏洞等意外原因,计算结果可能是错误的;另一方面,敌对的或者自私的云端可能会有意将错误注入到计算中,或者发送回一个似乎正确的结果,来减少对计算资源的使用和成本,从而获得更多的利润。
(2)数据的隐私性:用户的数据可能是敏感且贵重的,但在外包计算过程中,这些数据的输入和结果的输出会被对方出于好奇或者有预谋地获得。比如一些公司的商业机密,或者研究所内重要的观察数据,云端可以将这些数据卖给客户的竞争对手,或者存储起来以备后用。这些都属于外包计算的隐私性问题。虽然数据的安全性对外包计算至关重要,数据的隐私性对个人和商业公司来说,也是至关重要的。
(3)高效性:外包计算协议应该能够保证本地的计算量和开销低于直接计算矩阵乘法所需的开销,也就是外包计算协议所需的本地计算量需要低于O(m2.775),否则就失去了外包计算本身的意义。
基于上述原因,设计一个具有安全性(可验证性)、隐私性以及高效性的大尺度矩阵乘法外包计算协议是十分有意义的。
发明内容
为了解决现有关于大尺度矩阵乘法运算的外包计算协议在安全性(可验证性)、隐私性以及高效性的所存在的需求,本发明目的在于提供一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统。
本发明所采用的技术方案为:
一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,包括如下步骤:
S101.采用单向陷门函数生成公私密钥对
Figure BDA0002315562780000021
其中,A表示公钥矩阵且
Figure BDA0002315562780000022
Figure BDA0002315562780000023
为私钥矩阵且
Figure BDA0002315562780000024
q表示大于2的素数,
Figure BDA0002315562780000025
表示对
Figure BDA0002315562780000026
中每一个元素求关于q的余数,Zq∈{0,1,2,…,q-1},m为不小于1000的正整数,n为正整数且n<<m;
S102.在导入待乘法运算的第一明文矩阵B1和第二明文矩阵B2后,先分别得到对应的第一明文矩阵集合
Figure BDA0002315562780000027
和第二明文矩阵集合
Figure BDA0002315562780000028
然后采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第一明文矩阵集合中的各个矩阵分别进行加密,得到对应的第一密文矩阵集合
Figure BDA0002315562780000029
以及采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第二明文矩阵集合中的各个矩阵分别进行加密,得到对应的第二密文矩阵集合
Figure BDA00023155627800000210
其中,
Figure BDA00023155627800000211
p表示大于2的正整数,Zp∈{0,1,2,…,p-1},并按照如下公式得到所述第一明文矩阵集合
Figure BDA00023155627800000212
和所述第二明文矩阵集合
Figure BDA00023155627800000213
Figure BDA0002315562780000031
式中,θ1和θ2均为对角矩阵且θ11∈Zm×m,Z表示整数集合,I为单位矩阵;
S103.将所述第一密文矩阵集合
Figure BDA0002315562780000032
和所述第二密文矩阵集合
Figure BDA0002315562780000033
上传至云计算服务器,并在经过外包计算方式的云计算后,获取如下反馈矩阵Φ:
Figure BDA0002315562780000034
式中,
Figure BDA0002315562780000035
S104.采用所述私钥矩阵
Figure BDA0002315562780000036
及逆矩阵
Figure BDA0002315562780000037
对所述反馈矩阵Φ进行解密,得到如下待验证矩阵RT:
Figure BDA0002315562780000038
式中,
Figure BDA0002315562780000039
()modp表示求关于p的余数,()<mod>q表示求在区间范围
Figure BDA00023155627800000310
之间的映射值,
Figure BDA00023155627800000311
S105.检查RT00是否等于RT11+RT12+RT21+RT22,若发现相等,则将RT00作为所述第一明文矩阵B1与所述第二明文矩阵B2的乘法运算结果,否则判定验证失败,拒绝接受外包计算结果。
优化的,在所述步骤S102之前,还随机地选取得到任意两元素均不相等的第一正整数序列{u1,u2,u3,…,uk},k<m和第二正整数序列{v1,v2,v3,…,vl},l<m,然后按照如下公式计算对角矩阵θ1和对角矩阵θ2中的对角元素值:
Figure BDA0002315562780000041
式中,δ(x)为关于变量x的狄拉克函数,当且仅当x为零时为1,其它情况为零;
在所述步骤S105之前,还根据所述第一正整数序列和所述第二正整数序列检查RT00中的元素除第u1,u2,u3,…,uk行和第v1,v2,v3,…,vl列以外是否全部为零,若发现全部为零,则执行步骤S105,否则判定验证失败,拒绝接受外包计算结果。
优化的,所述步骤S101包括如下:
S1011.获取函数参数:
Figure BDA0002315562780000042
其中,σ>0,
Figure BDA0002315562780000043
S1012.按照如下方式构造对应所述公钥矩阵A的转置矩阵AT和对应所述私钥矩阵
Figure BDA0002315562780000044
的转置矩阵
Figure BDA0002315562780000045
Figure BDA0002315562780000046
式中,A1为所述转置矩阵AT的第一矩阵列分块且
Figure BDA0002315562780000047
A1随机生成且对应的定义格满足Λ(A1)={z∈Zm|(A1z)modq=0},()modq表示求关于q的余数,A2为所述转置矩阵AT的第二矩阵列分块且
Figure BDA0002315562780000048
A2=-A1(R+G);
矩阵
Figure BDA0002315562780000049
其中,第i个矩阵列分块G(i)的列数
Figure BDA00023155627800000410
hi,i为在对应Λ(A1)的埃尔米特矩阵H中第i行且第i列的元素,
Figure BDA00023155627800000411
表示对变量x进行向上取整,在第i个矩阵列分块G(i)中第j列元素
Figure BDA00023155627800000412
j∈[1,wi],ei表示第i个矩阵列分块G(i)所对应的标准基向量且满足
Figure BDA00023155627800000413
特别矩阵列分块M的列宽度
Figure BDA00023155627800000414
Figure BDA00023155627800000415
表示对变量x进行向下取整,特别矩阵列分块M仅在前d行存在非零元素,d=(1+σ)nlgq,前d行元素随机取自具有
Figure BDA00023155627800000416
个元素的哈达玛矩阵且任意两个元素不相等;
矩阵
Figure BDA00023155627800000417
其中,第i个矩阵行分块
Figure BDA00023155627800000418
在第i个矩阵行分块P(i)中第j列元素
Figure BDA0002315562780000051
Figure BDA0002315562780000052
的二进制表示,hi,j为在对应Λ(A1)的埃尔米特矩阵H中第i行且第j列的元素,
Figure BDA0002315562780000053
为在矩阵
Figure BDA0002315562780000054
中第i行且第j列的元素,
Figure BDA0002315562780000055
I为单位矩阵,有
Figure BDA0002315562780000056
矩阵
Figure BDA0002315562780000057
其中,diag()为对角矩阵构造函数,
Figure BDA0002315562780000058
为对应第i个矩阵列分块G(i)的幺模上三角矩阵且
Figure BDA0002315562780000059
在矩阵
Figure BDA00023155627800000510
中第
Figure BDA00023155627800000511
行且第
Figure BDA00023155627800000512
列的元素
Figure BDA00023155627800000513
矩阵R的前d行元素独立地随机取自整数集合{-1,0,1},其余行的元素全部为零,其中,针对数值0的随机取值概率为50%,针对数值-1和数值1的随机取值概率分别为25%;
S1013.输出对应转置矩阵AT的所述公钥矩阵A和对应转置矩阵
Figure BDA00023155627800000514
的所述私钥矩阵
Figure BDA00023155627800000515
具体的,所述步骤S1011包括如下:
在导入安全参数λ后,根据所述安全参数λ分别计算得到函数参数σ=fσ(λ),n=fn(λ),
Figure BDA00023155627800000516
其中,fσ(λ)、fn(λ)和
Figure BDA00023155627800000517
分别为关于安全参数λ的预设函数。
进一步具体的,在所述步骤S101中,按照如下方式对素数q进行取值:
Figure BDA00023155627800000518
式中,c=fc(λ),c>0,fc(λ)为关于安全参数λ的预设函数,ω()为满足
Figure BDA00023155627800000519
的函数。
优化的,在所述步骤S102中,针对所述第一明文矩阵集合和所述第二明文矩阵集合中的各个矩阵B,按照如下方式进行加性同态加密:
S1021.获取具有n×m个元素的秘密矩阵S和具有m×m个元素的误差矩阵X;
S1022.按照如下公式计算与矩阵B对应的密文矩阵C:
C=(AS+pX+B)<mod>q
式中,A为公钥矩阵,()<mod>q表示求在区间范围
Figure BDA0002315562780000061
之间的映射值。
进一步优化的,在所述步骤S1021中,按照如下方式(1)~(3)中的任意一种选取所述秘密矩阵S和所述误差矩阵X:
(1)所述秘密矩阵S均匀地随机取自
Figure BDA0002315562780000062
所述误差矩阵X均匀地随机取自{-1,0,1}m×m或{0,1}m×m
(2)所述秘密矩阵S均匀地随机取自{-1,0,1}n×m,所述误差矩阵X均匀地随机地取自{-1,0,1}m×m或(Ψβ(q))m×m,其中,Ψβ(q)为Zq上的高斯分布,β为高斯分布参数;
(3)所述秘密矩阵S均匀地随机取自{0,1}n×m,所述误差矩阵X均匀的随机取自(Ψβ(q))m×m,其中,Ψβ(q)为Zq上的高斯分布,β为高斯分布参数。
具体的,在所述步骤S1021之前包括如下:
在导入安全参数λ后,根据所述安全参数λ计算得到高斯分布参数β=fβ(λ),其中,fβ(λ)为关于安全参数λ的预设函数。
本发明所采用的另一种技术方案为:
一种客户端,用于执行如前所述实现大尺度矩阵乘法安全高效的可验证外包计算方法,并包括有密钥生成模块、明文加密模块、收发模块、密文解密模块和结果验证模块;
所述密钥生成模块,用于采用单向陷门函数生成公私密钥对
Figure BDA0002315562780000063
其中,A表示公钥矩阵且
Figure BDA0002315562780000064
Figure BDA0002315562780000065
为私钥矩阵且
Figure BDA0002315562780000066
q表示大于2的素数,
Figure BDA0002315562780000067
表示对
Figure BDA0002315562780000068
中每一个元素求关于q的余数,Zq∈{0,1,2,…,q-1},m为不小于1000的正整数,n为正整数且n<<m;
所述明文加密模块,通信连接所述密钥生成模块,用于在导入待乘法运算的第一明文矩阵B1和第二明文矩阵B2后,先分别得到对应的第一明文矩阵集合
Figure BDA0002315562780000069
和第二明文矩阵集合
Figure BDA00023155627800000610
然后采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第一明文矩阵集合中的各个矩阵分别进行加密,得到对应的第一密文矩阵集合
Figure BDA00023155627800000611
以及采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第二明文矩阵集合中的各个矩阵分别进行加密,得到对应的第二密文矩阵集合
Figure BDA0002315562780000071
其中,
Figure BDA0002315562780000072
p表示大于2的正整数,Zp∈{0,1,2,…,p-1},并按照如下公式得到所述第一明文矩阵集合
Figure BDA0002315562780000073
和所述第二明文矩阵集合
Figure BDA0002315562780000074
Figure BDA0002315562780000075
式中,θ1和θ2均为对角矩阵且θ11∈Zm×m,Z表示整数集合,I为单位矩阵;
所述收发模块,通信连接所述明文加密模块,用于将所述第一密文矩阵集合
Figure BDA0002315562780000076
和所述第二密文矩阵集合
Figure BDA0002315562780000077
上传至云计算服务器,并在经过云计算后,获取如下反馈矩阵Φ:
Figure BDA0002315562780000078
式中,
Figure BDA0002315562780000079
所述密文解密模块,通信连接所述收发模块,用于采用所述私钥矩阵
Figure BDA00023155627800000710
及逆矩阵
Figure BDA00023155627800000711
对所述反馈矩阵Φ进行解密,得到如下待验证矩阵RT:
Figure BDA00023155627800000712
式中,
Figure BDA00023155627800000713
()modp表示求关于p的余数,()<mod>q表示求在区间范围
Figure BDA00023155627800000714
之间的映射值,
Figure BDA00023155627800000715
所述结果验证模块,通信连接所述密文解密模块,用于检查RT00是否等于RT11+RT12+RT21+RT22,若发现相等,则将RT00作为所述第一明文矩阵B1与所述第二明文矩阵B2的乘法运算结果,否则判定验证失败,拒绝接受外包计算结果。
本发明所采用的另一种技术方案为:
一种云计算系统,包括云计算服务器和如前所述的客户端;
所述云计算服务器通信连接所述客户端的收发模块,用于在收到第一密文矩阵集合
Figure BDA0002315562780000081
和第二密文矩阵集合
Figure BDA0002315562780000082
后,通过外包计算方式,云计算得到对应的反馈矩阵Φ,并将云计算结果反馈给所述收发模块。
本发明的有益效果为:
(1)本发明创造提供了一种适用于计算大尺度矩阵乘法结果的新外包计算协议,可使拥有较少计算资源/计算能力弱的客户端在面对大尺度矩阵乘运算时,能够在保证敏感的矩阵数据不被泄露的前提下,通过较少的计算开销将矩阵的乘运算外包给拥有大量计算资源的云服务器,并提供给客户关于矩阵乘结果的安全可靠的验证,从而满足外包计算在安全性(可验证性)、隐私性以及高效性的所存在的需求,便于实际应用和推广;
(2)所述可验证外包计算方法与现有相关协议相比,一方面验证方案通过猜测结果的概率更低,且不依赖于原始明文矩阵和随机验证次数;另一方面验证效率更高,即本地在预处理以及验证阶段的计算量较这些协议大大减少,并且不需要原始明文矩阵的参与,客户端仅需要提供2组随机数序列就可以完成对计算结果的验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的可验证外包计算方法的流程示意图。
图2是本发明提供的实现可验证外包计算方法的客户端结构示意图。
图3是本发明提供的云计算系统的结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选实施例中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以不必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
实施例一
如图1所示,本实施例提供的所述实现大尺度矩阵乘法安全高效的可验证外包计算方法,可以但不限于包括如下步骤S101~S105。
S101.采用单向陷门函数生成公私密钥对
Figure BDA0002315562780000091
其中,A表示公钥矩阵且
Figure BDA0002315562780000092
Figure BDA0002315562780000093
为私钥矩阵且
Figure BDA0002315562780000094
q表示大于2的素数,
Figure BDA0002315562780000095
表示对
Figure BDA0002315562780000096
中每一个元素求关于q的余数,Zq∈{0,1,2,…,q-1},m为不小于1000的正整数,n为正整数且n<<m。
在所述步骤S101中,所述单向陷门函数是有一个陷门的一类特殊单向函数,其包含两个明显特征:一是单向性,二是存在陷门;所谓单向性,也称不可逆性,即对于一个函数y=f(x),若已知x要计算出y很容易,但是已知y要计算出x=f-1(x)则计算上不可行。具体的,在所述步骤S101中详细包括有如下步骤S1011~S1013。
S1011.获取函数参数:
Figure BDA0002315562780000101
其中,σ>0,
Figure BDA0002315562780000102
在所述步骤S1011中,所述函数参数
Figure BDA0002315562780000103
的获取方式,可以但不限于包括如下:在导入安全参数λ后,根据所述安全参数λ分别计算得到函数参数σ=fσ(λ),n=fn(λ),
Figure BDA0002315562780000104
其中,fσ(λ)、fn(λ)和
Figure BDA0002315562780000105
分别为关于安全参数λ的预设函数。所述安全参数λ由用户在客户端操作界面上输入得到,进而可以根据预设函数fσ(λ),fn(λ)和
Figure BDA0002315562780000106
得到对应的函数参数
Figure BDA0002315562780000107
举例的,n=fn(λ)=poly(λ),poly()表示一个符合要求的多项式函数。
S1012.按照如下方式构造对应所述公钥矩阵A的转置矩阵AT和对应所述私钥矩阵
Figure BDA0002315562780000108
的转置矩阵
Figure BDA0002315562780000109
Figure BDA00023155627800001010
式中,A1为所述转置矩阵AT的第一矩阵列分块且
Figure BDA00023155627800001011
A1随机生成且对应的定义格满足Λ(A1)={z∈Zm|(A1z)modq=0},()modq表示求关于q的余数,A2为所述转置矩阵AT的第二矩阵列分块且
Figure BDA00023155627800001012
A2=-A1(R+G)。所述第一矩阵列分块A1的随机生成方式可采用现有常规随机算法实现。
矩阵
Figure BDA00023155627800001013
其中,第i个矩阵列分块G(i)的列数
Figure BDA00023155627800001014
hi,i为在对应Λ(A1)的埃尔米特矩阵H中第i行且第i列的元素,
Figure BDA00023155627800001015
表示对变量x进行向上取整,在第i个矩阵列分块G(i)中第j列元素
Figure BDA0002315562780000111
j∈[1,wi],ei表示第i个矩阵列分块G(i)所对应的标准基向量且满足
Figure BDA0002315562780000112
特别矩阵列分块M的列宽度
Figure BDA0002315562780000113
Figure BDA0002315562780000114
表示对变量x进行向下取整,特别矩阵列分块M仅在前d行存在非零元素,d=(1+σ)nlgq,前d行元素随机取自具有
Figure BDA0002315562780000115
个元素的哈达玛矩阵(由+1和-1元素构成的正交方阵,所谓正交方阵,指它的任意两行或两列都是正交的,且任意一行/列的所有元素的平方和等于方阵的阶数,已有人证明,哈达玛矩阵的阶数都是4的倍数)且任意两个元素不相等。此外特别地,为了保证密钥生成算法在Zp内同态乘法的正确性,可以但不限于按照如下方式对素数q进行取值:
Figure BDA0002315562780000116
式中,c=fc(λ),c>0,fc(λ)为关于安全参数λ的预设函数,ω()为满足
Figure BDA0002315562780000117
的函数。
矩阵
Figure BDA0002315562780000118
其中,第i个矩阵行分块
Figure BDA0002315562780000119
在第i个矩阵行分块P(i)中第j列元素
Figure BDA00023155627800001110
Figure BDA00023155627800001111
的二进制表示,hi,j为在对应Λ(A1)的埃尔米特矩阵H中第i行且第j列的元素,
Figure BDA00023155627800001112
为在矩阵
Figure BDA00023155627800001113
中第i行且第j列的元素,
Figure BDA00023155627800001114
I为单位矩阵(在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,人们称这种矩阵为单位矩阵;它是个方阵,从左上角到右下角的对角线或称为主对角线上的元素均为1,以外全都为0),有
Figure BDA00023155627800001115
矩阵
Figure BDA00023155627800001116
其中,diag()为对角矩阵构造函数,Twi为对应第i个矩阵列分块G(i)的幺模上三角矩阵(在数学上,幺模矩阵是所有项都是整数而且行列式为1或-1的方阵;所有可逆的同阶幺模矩阵按照矩阵乘法构成一个乘法群)且
Figure BDA0002315562780000121
在矩阵
Figure BDA0002315562780000122
中第
Figure BDA0002315562780000123
行且第
Figure BDA0002315562780000124
列的元素
Figure BDA0002315562780000125
矩阵R的前d行元素独立地随机取自整数集合{-1,0,1},其余行的元素全部为零,其中,针对数值0的随机取值概率为50%,针对数值-1和数值1的随机取值概率分别为25%。
S1013.输出对应转置矩阵AT的所述公钥矩阵A和对应转置矩阵
Figure BDA0002315562780000126
的所述私钥矩阵
Figure BDA0002315562780000127
S102.在导入待乘法运算的第一明文矩阵B1和第二明文矩阵B2后,先分别得到对应的第一明文矩阵集合
Figure BDA0002315562780000128
和第二明文矩阵集合
Figure BDA0002315562780000129
然后采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第一明文矩阵集合中的各个矩阵分别进行加密,得到对应的第一密文矩阵集合
Figure BDA00023155627800001210
以及采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第二明文矩阵集合中的各个矩阵分别进行加密,得到对应的第二密文矩阵集合
Figure BDA00023155627800001211
其中,
Figure BDA00023155627800001212
p表示大于2的正整数,Zp∈{0,1,2,…,p-1},并按照如下公式得到所述第一明文矩阵集合
Figure BDA00023155627800001213
和所述第二明文矩阵集合
Figure BDA00023155627800001214
Figure BDA00023155627800001215
式中,θ1和θ2均为对角矩阵且θ11∈Zm×m,Z表示整数集合,I为单位矩阵。
在所述步骤S102中,所述第一明文矩阵B1和所述第二明文矩阵B2可分别由用户在客户端操作界面上直接输入或从其它设备导出得到,由于参数m为不小于1000的正整数,这两明文矩阵分别为大尺度矩阵或大规模矩阵,若直接计算矩阵乘法结果,将需要很高的计算能力,其计算复杂度为O(m3),矩阵尺寸m越大,计算越繁杂。
考虑在经典计算机理论中,许多数学难题都可以从2个典型的困难问题引出,即离散对数问题和大整数的分解问题。然而,近些年来随着量子计算机技术的发展,其远超经典计算机的计算能力,使得基于这2个问题的密码方案不再安全。因此,近年来格理论以及相关密码算法得到迅速发展,这是基于格理论中的一些难题即使在量子计算模型下也不具有高效的解决方法,故而本申请使用了基于格理论中的标准LWE(Learn With Errors)问题的加密算法来提供隐私保护。
简单地说,格(Lattice)是实数空间中线性无关向量的整系数组合的集合。给定n个m维的线性无关向量b1,b2,…,bn∈Rm,以这些向量作为基,形成的格是由下列向量组成的集合:
Figure BDA0002315562780000131
LWE问题是格密码方案构造中最常见的困难问题之一,它相较于格中一些其他困难问题来说能更方便地用于构造密码方案,LWE问题包括搜索型问题和判定型问题,以下即对其进行简单描述。对于正整数q≥2,n≥2以及定义在整数Z上的概率分布χ,均匀随机地选取向量
Figure BDA0002315562780000132
和向量
Figure BDA0002315562780000133
随机选取错误x←χ,最后输出
Figure BDA0002315562780000134
(即被错误扰动的内积),同时将该输出结果的分布定义为As,x。搜索型LWE问题定义为:在已知m个独立地从As,x中选取的实例的情况下,以不可忽略的概率找出秘密向量s。而判定型LWE问题要求以不可忽略的概率区分As,x和真正的均匀随机分布。特别地,对于这两种类型的标准LWE问题来说,分布χ被设定为高斯分布(即正态分布),那么若随机变量X服从一个数学期望为μ、方差为σ2的高斯分布χ,则其概率密度函数为:
Figure BDA0002315562780000135
用Ψβ(q)表示在Zq上的方差为
Figure BDA0002315562780000136
期望为μ=0的离散高斯分布。
对于标准LWE问题来说,在参数选取得当的情况下,它是难解的,但它的变种却不一定有着相同的困难性,以下对其2类主要变种LWE问题进行描述。
Binary-error LWE问题:在标准LWE问题的基础上,若将分布χ选为均匀{0,1}分布,就成为了Binary-error LWE问题。Martin R.Albrecht等人就参数m和n的选择对Binary-error LWE问题的困难程度的影响进行了细致的讨论,对于m=cn,Binary-errorLWE在指数时间内可解;对于m=cnlgn,Binary-error LWE在次指数时间内可解;对更大的m,Binary-error LWE在多项式时间内可解。因此错误x取自{0,1}分布会导致LWE问题的困难性随m的增大而降低,从而影响到协议的隐私性,但与此同时会大大降低本地的开销,提高协议的效率。另外,错误x也可以从均匀{-1,0,1}分布上选取,该变种LWE问题的困难性较Binary-error LWE问题更大。
LWE with Binary Secrets问题:在标准LWE问题的基础上,若将秘密向量s的取值方式改为均匀随机地取自{0,1}n分布,标准LWE问题就变成了LWE with Binary Secrets问题。Micciancio对该问题的困难性做了详细的研究,证明了在秘密向量s均匀随机地取自{0,1}n分布,抽样数为O(nlgq)时该变种LWE问题的困难性与秘密向量取自
Figure BDA0002315562780000141
上的随机分布时的困难问题的困难性等同。秘密向量s也可以均匀随机地取自{-1,0,1}n分布,此时的变种LWE问题的困难性相较于均匀随机地取自{0,1}n分布的情况的困难性更大。
另外,所述基于变种LWE问题的加性同态加密算法具体为:对于明文矩阵
Figure BDA0002315562780000142
相应的加密过程C=Enck(B)可表示为C=(AS+pX+B)<mod>q,其中,公钥矩阵
Figure BDA0002315562780000143
Figure BDA0002315562780000144
X←Ψβ(q)m×m
Figure BDA0002315562780000145
利用私钥矩阵
Figure BDA0002315562780000146
可解密恢复
Figure BDA0002315562780000147
()modp表示求关于p的余数,()<mod>q表示求在区间范围
Figure BDA0002315562780000148
之间的映射值,所对应的映射公式可以但不限于为
Figure BDA0002315562780000149
例如
Figure BDA00023155627800001410
特别地,该算法具有一个矩阵乘法的同态性,即若有:C1=Enck(B1),C2=Enck(B2),则有下式成立:C=C1(C2)T=Enck(B1(B2)T)。
由此在所述步骤S102中,针对所述第一明文矩阵集合和所述第二明文矩阵集合中的各个矩阵B,可按照如下方式进行加性同态加密:S1021.获取具有n×m个元素的秘密矩阵S和具有m×m个元素的误差矩阵X;S1022.按照如下公式计算与矩阵B对应的密文矩阵C:
C=(AS+pX+B)<mod>q
式中,A为公钥矩阵,()<mod>q表示求在区间范围
Figure BDA00023155627800001411
之间的映射值。
在所述步骤S1021中,可具体按照如下方式(1)~(3)中的任意一种选取所述秘密矩阵S和所述误差矩阵X:(1)所述秘密矩阵S均匀地随机取自
Figure BDA00023155627800001412
所述误差矩阵X均匀地随机取自{-1,0,1}m×m或{0,1}m×m;(2)所述秘密矩阵S均匀地随机取自{-1,0,1}n×m,所述误差矩阵X均匀地随机地取自{-1,0,1}m×m或(Ψβ(q))m×m,其中,Ψβ(q)为Zq上的高斯分布,β为高斯分布参数;(3)所述秘密矩阵S均匀地随机取自{0,1}n×m,所述误差矩阵X均匀的随机取自(Ψβ(q))m×m,其中,Ψβ(q)为Zq上的高斯分布,β为高斯分布参数。
当所述秘密矩阵S取自{0,1}n×m或{-1,0,1}n×m时,算法/协议的隐私性基于LWEwith BinarySecrets问题(即变种LWE问题之一)的困难性;当所述误差矩阵X取自{-1,0,1}m×m或{0,1}m×m时,算法/协议的隐私性基于Binary-error LWE(即变种LWE问题之一)的困难性。特别地,在使用方式(2)且所述误差矩阵X取自{-1,0,1}m×m时,加密所需的运算全部为加法运算,可以最大化地减少本地的计算量,提高客户端的效率。但该方式(2)和方式(1)存在相同的问题,即对数据隐私的保护不如其他方式,例如方式(3),因此可在对隐私性要求不高而比较强调效率的情况下使用。因此本实施例中所使用的加解密算法是在现有同态密码系统的基础上进行的补充和改进,即对所述秘密矩阵S和所述误差矩阵X的取值方式进行了改进和扩展,这样在保有隐私性的同时可以降低用户的开销,提升所设计方案的效率。例如,如果客户端想要最大化加密效率和最小化本地的计算量,那么可以选取所述秘密矩阵S和所述误差矩阵X的取值范围分别为{-1,0,1}n×m和{-1,0,1}m×m,该选择可使得在不要求取得可证明隐私性的前提下具有较好的实用性。此外,在所述步骤S1021之前包括如下:在导入安全参数λ后,根据所述安全参数λ计算得到高斯分布参数β=fβ(λ),其中,fβ(λ)为关于安全参数λ的预设函数,例如
Figure BDA0002315562780000151
在所述步骤S102之前,优化的,为了避免云计算服务器感知到所述第一明文矩阵B1和所述第二明文矩阵B2,进一步提升数据隐私性,还随机地选取得到任意两元素均不相等的第一正整数序列{u1,u2,u3,…,uk},k<m和第二正整数序列{v1,v2,v3,…,vl},l<m,然后按照如下公式计算对角矩阵θ1和对角矩阵θ2中的对角元素值:
Figure BDA0002315562780000152
式中,δ(x)为关于变量x的狄拉克函数,当且仅当x为零时为1,其它情况为零。其中所涉及到参数k,l可在导入安全参数λ后,根据所述安全参数λ以及对应的预设函数计算得到。
S103.将所述第一密文矩阵集合
Figure BDA0002315562780000161
和所述第二密文矩阵集合
Figure BDA0002315562780000162
上传至云计算服务器,并在经过外包计算方式的云计算后,获取如下反馈矩阵Φ:
Figure BDA0002315562780000163
式中,
Figure BDA0002315562780000164
在所述步骤S103中且在将所述第一密文矩阵集合
Figure BDA0002315562780000165
和所述第二密文矩阵集合
Figure BDA0002315562780000166
上传至云计算服务器后,采用外包计算方式的云计算方法为现有方法。
S104.采用所述私钥矩阵
Figure BDA0002315562780000167
及逆矩阵
Figure BDA0002315562780000168
对所述反馈矩阵Φ进行解密,得到如下待验证矩阵RT:
Figure BDA0002315562780000169
式中,
Figure BDA00023155627800001610
()modp表示求关于p的余数,()<mod>q表示求在区间范围
Figure BDA00023155627800001611
之间的映射值,
Figure BDA00023155627800001612
S105.检查RT00是否等于RT11+RT12+RT21+RT22,若发现相等,则将RT00作为所述第一明文矩阵B1与所述第二明文矩阵B2的乘法运算结果,否则判定验证失败,拒绝接受外包计算结果。
在所述步骤S105之前,若在计算对角矩阵θ1和对角矩阵θ2中的对角元素值时,随机地选取了第一正整数序列和第二正整数序列,则还根据所述第一正整数序列和所述第二正整数序列检查RT00中的元素除第u1,u2,u3,…,uk行和第v1,v2,v3,…,vl列以外是否全部为零,若发现全部为零,则再执行步骤S105,否则判定验证失败,拒绝接受外包计算结果。
针对前述步骤S101~S105的技术效果,可进行如下几点分析。
(1)正确性:对本实施例所述可验证外包计算方法的正确性推导如下:
Figure BDA0002315562780000171
可得C=C1(C2)T=(AS1+pX1+B1)(AS2+pX2+(B2)T)T
=(A(S1(S2)T)+p(X1(pX2+(B2)T)+B1(X2)T)+B1B2+(pX1+B1)(S2)TAT)<mod>q
对C解密:
Figure BDA0002315562780000172
Figure BDA0002315562780000173
然后验证单向陷门函数的公私密钥对满足
Figure BDA0002315562780000174
首先证明
Figure BDA0002315562780000175
由于
Figure BDA0002315562780000176
可转而验证
Figure BDA0002315562780000177
Figure BDA0002315562780000178
左乘矩阵的列分块与右乘矩阵的行分块方式相同,分块乘法成立。
Figure BDA0002315562780000179
代入A2=-A1(R+G)和
Figure BDA00023155627800001710
对上式化简:
Figure BDA00023155627800001711
因为H∈Λ(A1),所以A1H=0,
Figure BDA00023155627800001712
由此可得
Figure BDA00023155627800001713
然后根据()<mod>q运算的性质,进一步可得
Figure BDA00023155627800001714
公私密钥对
Figure BDA00023155627800001715
的正确性得证,加密方案的正确性证明完毕。
对于验证算法的正确性,由于
Figure BDA00023155627800001716
Figure BDA00023155627800001717
因此有
Figure BDA00023155627800001718
等式右边恰好是Φi′,j′,i′,j′∈{1,2}四个分块解密后的结果,验证算法的正确性得证。
(2)隐私性:所提出的可验证外包计算方法使用了变种GHV同态加密算法(族),以达到可证明隐私性。原GHV算法(由Gentry等人设计的第一个矩阵同态加密方案)自提出至今,其隐私性已有严格的证明,而本实施例所给出的变种GHV算法(族)的隐私性可以利用相似方法归约证明到变种LWE问题的困难性上。
(3)高效性:本实施例所产生的公私密钥对可以持续使用,因此仅需讨论客户端加解密所需要的计算量。计算量主要来自私钥矩阵
Figure BDA0002315562780000181
及其逆矩阵
Figure BDA0002315562780000182
进行的相关运算,实际上,可以发现私钥矩阵
Figure BDA0002315562780000183
是一个稀疏矩阵,且非零元素中绝大多数为1或2,只有右上的
Figure BDA0002315562780000184
块的元素的值域较大。另一逆矩阵
Figure BDA0002315562780000185
的非零元素数量与参数的选择密切相关,它对应的非零元素数量的上界为
Figure BDA0002315562780000186
其中参数的取值范围如下:
Figure BDA0002315562780000187
因此,
Figure BDA0002315562780000188
的非零元素数量
Figure BDA0002315562780000189
为固定常数。假设
Figure BDA00023155627800001810
表示加法运算的时间,
Figure BDA00023155627800001811
表示乘法运算的时间,另外假设使用高斯分布的噪声。在所述步骤S102中的加密阶段,所需的计算量为
Figure BDA00023155627800001812
而在所述步骤S104中的解密阶段所需计算量为
Figure BDA00023155627800001813
其中,
Figure BDA00023155627800001814
表示私钥矩阵
Figure BDA00023155627800001815
中非零元素的占比。因为乘法的计算时间远大于加法的计算时间,所以在只考虑乘法运算开销的情况下本方法的计算复杂度为O(nm2lgn)。考虑到目前矩阵乘法的实际计算复杂度可达到O(m2.775),本方法需要满足nlgn<m0.775,而在实际应用中参数能满足m=poly(n)且n<<m,这就意味着本方法所涉及的m和n一般满足不等式nlgn<m0.775,因此本实施例提供的可验证外包计算方法是高效的。
(4)安全性(可验证性):本实施例提供的新高效验证方法,与之前的基于矩阵-向量乘的方法不同,其安全性是基于敌手正确猜测随机数序列的困难性。对于恶意的云端服务器(关于数据安全的威胁主要来自云计算服务器;威胁模型一般分为2种:半诚实模型和恶意模型;半诚实模型:云端服务器会诚实地执行协议,计算客户端的需求,但是它会记录所有的信息,并以此来推测出客户端的隐私信息,另外云端服务器自身也有被攻击和窃取信息的可能;恶意模型:云端服务器可以不遵从协议的规定,它甚至可以任意返回一个结果作为计算的输出来为自己节省计算资源,同时它不希望客户端检测出伪造的结果)来说,在不知道第一正整数序列{u1,u2,u3,…,uk},k<m和第二正整数序列{v1,v2,v3,…,vl},l<m的情况下,以一个猜测的结果通过验证的概率为2-2m,而由于被外包矩阵的行(列)数m=poly(λ),所以猜测的结果通过验证的概率可表示为2-ω(λ)(由于满足
Figure BDA0002315562780000191
其概率可忽略)。
作为概括的,为了将本实施例所提出的方法与已公开的现有协议做一个直观的比较,可用一个表格总结迄今为止的全部相关协议的主要性能指标。
表1.针对矩阵乘法的可验证外包计算协议主要指标对照表
Figure BDA0002315562780000192
Figure BDA0002315562780000201
上述表格即为各协议/方法计算矩阵
Figure BDA0002315562780000202
的情况;
Figure BDA0002315562780000203
分别表示运行一次指数运算、乘法运算、随机选择以及判断是否非零元素所需的时间;协议2和协议3的隐私性是基于加密算法所使用的困难假设,例如,当协议使用BGN加密算法时,基于的假设是判定型Diffle-Hellman假设,这时协议的计算开销也是以BGN加密算法(BGN是一种同态加密方案,是Bonel h等人在2005提出的一种具有全同态性质的加密方案)为准;
Figure BDA0002315562780000204
此外,通过上表可以看出,猜测结果通过验证的概率随着与安全参数λ相关的矩阵行(列)数m的增大而变得微乎其微,这一结论可以基于以下事实:在不知道非零列和行的数量以及具体坐标的情况下,通过验证的概率实际上与正确猜测均匀随机选取地数的概率相等。例如,在区间[0,2m]内均匀随机地选取两个正整数a和b,它们满足:
Figure BDA0002315562780000205
那么猜测结果通过验证的概率等于猜测这两个正整数的概率,即为2-2m。考虑被外包矩阵的行(列)数m=poly(λ),这就意味着猜测结果通过验证的概率可表示为2-ω(λ)(可忽略的),与表1中协议2,协议5和协议6中的验证方案相比,本方法中的验证方案通过猜测结果的概率更低,且不依赖于原始明文矩阵和随机验证次数。而与表1中协议3,协议4和协议7中的验证方案相比,本方法的效率更高,即本地在预处理以及验证阶段的计算量较这些协议大大减少。另外,本方法提出的验证方案并不需要原始明文矩阵的参与,客户端仅需要提供2组随机数序列就可以完成对计算结果的验证。
综上,采用本实施例所提供的实现大尺度矩阵乘法安全高效的可验证外包计算方法,具有如下技术效果:
(1)本实施例提供了一种适用于计算大尺度矩阵乘法结果的新外包计算协议,可使拥有较少计算资源/计算能力弱的客户端在面对大尺度矩阵乘运算时,能够在保证敏感的矩阵数据不被泄露的前提下,通过较少的计算开销将矩阵的乘运算外包给拥有大量计算资源的云服务器,并提供给客户关于矩阵乘结果的安全可靠的验证,从而满足外包计算在安全性(可验证性)、隐私性以及高效性的所存在的需求,便于实际应用和推广;
(2)所述可验证外包计算方法与现有相关协议相比,一方面验证方案通过猜测结果的概率更低,且不依赖于原始明文矩阵和随机验证次数;另一方面验证效率更高,即本地在预处理以及验证阶段的计算量较这些协议大大减少,并且不需要原始明文矩阵的参与,客户端仅需要提供2组随机数序列就可以完成对计算结果的验证。
实施例二
如图2所示,本实施例提供了一种实现前述实施例一的客户端,用于执行如实施例一所述实现大尺度矩阵乘法安全高效的可验证外包计算方法,并包括有密钥生成模块、明文加密模块、收发模块、密文解密模块和结果验证模块;
所述密钥生成模块,用于采用单向陷门函数生成公私密钥对
Figure BDA0002315562780000211
其中,A表示公钥矩阵且
Figure BDA0002315562780000212
Figure BDA0002315562780000213
为私钥矩阵且
Figure BDA0002315562780000214
q表示大于2的素数,
Figure BDA0002315562780000215
表示对
Figure BDA0002315562780000216
中每一个元素求关于q的余数,Zq∈{0,1,2,…,q-1},m为不小于1000的正整数,n为正整数且n<<m;
所述明文加密模块,通信连接所述密钥生成模块,用于在导入待乘法运算的第一明文矩阵B1和第二明文矩阵B2后,先分别得到对应的第一明文矩阵集合
Figure BDA0002315562780000217
和第二明文矩阵集合
Figure BDA0002315562780000218
然后采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第一明文矩阵集合中的各个矩阵分别进行加密,得到对应的第一密文矩阵集合
Figure BDA0002315562780000219
以及采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第二明文矩阵集合中的各个矩阵分别进行加密,得到对应的第二密文矩阵集合
Figure BDA00023155627800002110
其中,
Figure BDA00023155627800002111
p表示大于2的正整数,Zp∈{0,1,2,…,p-1},并按照如下公式得到所述第一明文矩阵集合
Figure BDA00023155627800002112
和所述第二明文矩阵集合
Figure BDA00023155627800002113
Figure BDA00023155627800002114
式中,θ1和θ2均为对角矩阵且θ11∈Zm×m,Z表示整数集合,I为单位矩阵;
所述收发模块,通信连接所述明文加密模块,用于将所述第一密文矩阵集合
Figure BDA0002315562780000221
和所述第二密文矩阵集合
Figure BDA0002315562780000222
上传至云计算服务器,并在经过云计算后,获取如下反馈矩阵Φ:
Figure BDA0002315562780000223
式中,
Figure BDA0002315562780000224
所述密文解密模块,通信连接所述收发模块,用于采用所述私钥矩阵
Figure BDA0002315562780000225
及逆矩阵
Figure BDA0002315562780000226
对所述反馈矩阵Φ进行解密,得到如下待验证矩阵RT:
Figure BDA0002315562780000227
式中,
Figure BDA0002315562780000228
()modp表示求关于p的余数,()<mod>q表示求在区间范围
Figure BDA0002315562780000229
之间的映射值,
Figure BDA00023155627800002210
所述结果验证模块,通信连接所述密文解密模块,用于检查RT00是否等于RT11+RT12+RT21+RT22,若发现相等,则将RT00作为所述第一明文矩阵B1与所述第二明文矩阵B2的乘法运算结果,否则判定验证失败,拒绝接受外包计算结果。
本实施例的工作过程和技术效果,可参照实施例一毫无疑议地推导得到,于此不再赘述。
实施例三
如图3所示,本实施例提供了一种包括前述实施例二的云计算系统,包括云计算服务器和如实施例二所述的客户端;所述云计算服务器通信连接所述客户端的收发模块,用于在收到第一密文矩阵集合
Figure BDA00023155627800002211
和第二密文矩阵集合
Figure BDA00023155627800002212
后,通过外包计算方式,云计算得到对应的反馈矩阵Φ,并将云计算结果反馈给所述收发模块。本实施例的工作过程和技术效果,同样可参照实施例一毫无疑议地推导得到,于此不再赘述。
以上所描述的多个实施例仅仅是示意性的,若涉及到作为分离部件说明的单元,其可以是或者也可以不是物理上分开的;若涉及到作为单元显示的部件,其可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。

Claims (9)

1.一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,其特征在于,包括如下步骤:
S101.采用单向陷门函数生成公私密钥对
Figure FDA0002481097820000011
其中,A表示公钥矩阵且
Figure FDA0002481097820000012
Figure FDA0002481097820000013
为私钥矩阵且
Figure FDA0002481097820000014
q表示大于2的素数,
Figure FDA0002481097820000015
表示对
Figure FDA0002481097820000016
中每一个元素求关于q的余数,Zq∈{0,1,2,…,q-1},m为不小于1000的正整数,n为正整数且n<<m;
S102.在导入待乘法运算的第一明文矩阵B1和第二明文矩阵B2后,先分别得到对应的第一明文矩阵集合
Figure FDA0002481097820000017
和第二明文矩阵集合
Figure FDA0002481097820000018
然后采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第一明文矩阵集合中的各个矩阵分别进行加密,得到对应的第一密文矩阵集合
Figure FDA0002481097820000019
以及采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第二明文矩阵集合中的各个矩阵分别进行加密,得到对应的第二密文矩阵集合
Figure FDA00024810978200000110
其中,
Figure FDA00024810978200000111
p表示大于2的正整数,Zp∈{0,1,2,…,p-1},并按照如下公式得到所述第一明文矩阵集合
Figure FDA00024810978200000112
和所述第二明文矩阵集合
Figure FDA00024810978200000113
Figure FDA00024810978200000114
式中,θ1和θ2均为对角矩阵且θ11∈Zm×m,Z表示整数集合,I为单位矩阵;
在所述步骤S102中,针对所述第一明文矩阵集合和所述第二明文矩阵集合中的各个矩阵B,按照如下方式进行加性同态加密:
S1021.获取具有n×m个元素的秘密矩阵S和具有m×m个元素的误差矩阵X;
S1022.按照如下公式计算与矩阵B对应的密文矩阵C:
C=(AS+pX+B)<mod>q
式中,A为公钥矩阵,()<mod>q表示求在区间范围
Figure FDA00024810978200000115
之间的映射值;
S103.将所述第一密文矩阵集合
Figure FDA00024810978200000116
和所述第二密文矩阵集合
Figure FDA00024810978200000117
上传至云计算服务器,并在经过外包计算方式的云计算后,获取如下反馈矩阵Φ:
Figure FDA0002481097820000021
式中,
Figure FDA0002481097820000022
S104.采用所述私钥矩阵
Figure FDA0002481097820000023
及逆矩阵
Figure FDA0002481097820000024
对所述反馈矩阵Φ进行解密,得到如下待验证矩阵RT:
Figure FDA0002481097820000025
式中,
Figure FDA0002481097820000026
()mod p表示求关于p的余数,()<mod>q表示求在区间范围
Figure FDA0002481097820000027
之间的映射值,
Figure FDA0002481097820000028
S105.检查RT00是否等于RT11+RT12+RT21+RT22,若发现相等,则将RT00作为所述第一明文矩阵B1与所述第二明文矩阵B2的乘法运算结果,否则判定验证失败,拒绝接受外包计算结果。
2.如权利要求1所述的一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,其特征在于:
在所述步骤S102之前,还随机地选取得到任意两元素均不相等的第一正整数序列{u1,u2,u3,…,uk},k<m和第二正整数序列{v1,v2,v3,…,vl},l<m,然后按照如下公式计算对角矩阵θ1和对角矩阵θ2中的对角元素值:
Figure FDA0002481097820000029
式中,δ(x)为关于变量x的狄拉克函数,当且仅当x为零时为1,其它情况为零;
在所述步骤S105之前,还根据所述第一正整数序列和所述第二正整数序列检查RT00中的元素除第u1,u2,u3,…,uk行和第v1,v2,v3,…,vl列以外是否全部为零,若发现全部为零,则执行步骤S105,否则判定验证失败,拒绝接受外包计算结果。
3.如权利要求1所述的一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,其特征在于,所述步骤S101包括如下:
S1011.获取函数参数:σ,n,
Figure FDA0002481097820000031
其中,σ>0,
Figure FDA0002481097820000032
S1012.按照如下方式构造对应所述公钥矩阵A的转置矩阵AT和对应所述私钥矩阵
Figure FDA0002481097820000033
的转置矩阵
Figure FDA0002481097820000034
Figure FDA0002481097820000035
式中,A1为所述转置矩阵AT的第一矩阵列分块且
Figure FDA0002481097820000036
A1随机生成且对应的定义格满足Λ(A1)={z∈Zm|(A1z)mod q=0},()mod q表示求关于q的余数,A2为所述转置矩阵AT的第二矩阵列分块且
Figure FDA0002481097820000037
A2=-A1(R+G);
矩阵
Figure FDA0002481097820000038
其中,第i个矩阵列分块G(i)的列数
Figure FDA0002481097820000039
hi,i为在对应Λ(A1)的埃尔米特矩阵H中第i行且第i列的元素,
Figure FDA00024810978200000310
表示对变量x进行向上取整,在第i个矩阵列分块G(i)中第j列元素
Figure FDA00024810978200000311
j∈[1,wi],ei表示第i个矩阵列分块G(i)所对应的标准基向量且满足
Figure FDA00024810978200000312
特别矩阵列分块M的列宽度
Figure FDA00024810978200000313
Figure FDA00024810978200000314
表示对变量x进行向下取整,特别矩阵列分块M仅在前d行存在非零元素,d=(1+σ)n lg q,前d行元素随机取自具有
Figure FDA00024810978200000315
个元素的哈达玛矩阵且任意两个元素不相等;
矩阵
Figure FDA00024810978200000316
其中,第i个矩阵行分块
Figure FDA00024810978200000317
在第i个矩阵行分块P(i)中第j列元素
Figure FDA00024810978200000318
Figure FDA00024810978200000319
的二进制表示,hi,j为在对应Λ(A1)的埃尔米特矩阵H中第i行且第j列的元素,
Figure FDA00024810978200000320
为在矩阵
Figure FDA00024810978200000321
中第i行且第j列的元素,
Figure FDA00024810978200000322
I为单位矩阵,有
Figure FDA00024810978200000323
矩阵
Figure FDA00024810978200000324
其中,diag()为对角矩阵构造函数,
Figure FDA00024810978200000325
为对应第i个矩阵列分块G(i)的幺模上三角矩阵且
Figure FDA0002481097820000041
在矩阵
Figure FDA0002481097820000042
中第
Figure FDA0002481097820000043
行且第
Figure FDA0002481097820000044
列的元素
Figure FDA0002481097820000045
矩阵R的前d行元素独立地随机取自整数集合{-1,0,1},其余行的元素全部为零,其中,针对数值0的随机取值概率为50%,针对数值-1和数值1的随机取值概率分别为25%;
S1013.输出对应转置矩阵AT的所述公钥矩阵A和对应转置矩阵
Figure FDA0002481097820000046
的所述私钥矩阵
Figure FDA0002481097820000047
4.如权利要求3所述的一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,其特征在于,所述步骤S1011包括如下:
在导入安全参数λ后,根据所述安全参数λ分别计算得到函数参数σ=fσ(λ),n=fn(λ),
Figure FDA0002481097820000048
其中,fσ(λ)、fn(λ)和
Figure FDA0002481097820000049
分别为关于安全参数λ的预设函数。
5.如权利要求4所述的一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,其特征在于,在所述步骤S101中,按照如下方式对素数q进行取值:
Figure FDA00024810978200000410
式中,c=fc(λ),c>0,fc(λ)为关于安全参数λ的预设函数,ω()为满足f(x)=ω(g(x)),
Figure FDA00024810978200000411
的函数。
6.如权利要求1所述的一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,其特征在于,在所述步骤S1021中,按照如下方式(1)~(3)中的任意一种选取所述秘密矩阵S和所述误差矩阵X:
(1)所述秘密矩阵S均匀地随机取自
Figure FDA00024810978200000412
所述误差矩阵X均匀地随机取自{-1,0,1}m×m或{0,1}m×m
(2)所述秘密矩阵S均匀地随机取自{-1,0,1}n×m,所述误差矩阵X均匀地随机地取自{-1,0,1}m×m或(Ψβ(q))m×m,其中,Ψβ(q)为Zq上的高斯分布,β为高斯分布参数;
(3)所述秘密矩阵S均匀地随机取自{0,1}n×m,所述误差矩阵X均匀的随机取自(Ψβ(q))m×m,其中,Ψβ(q)为Zq上的高斯分布,β为高斯分布参数。
7.如权利要求6所述的一种实现大尺度矩阵乘法安全高效的可验证外包计算方法,其特征在于,在所述步骤S1021之前包括如下:
在导入安全参数λ后,根据所述安全参数λ计算得到高斯分布参数β=fβ(λ),其中,fβ(λ)为关于安全参数λ的预设函数。
8.一种客户端,其特征在于,用于执行如权利要求1~7任意一项所述实现大尺度矩阵乘法安全高效的可验证外包计算方法,并包括有密钥生成模块、明文加密模块、收发模块、密文解密模块和结果验证模块;
所述密钥生成模块,用于采用单向陷门函数生成公私密钥对
Figure FDA0002481097820000051
其中,A表示公钥矩阵且
Figure FDA0002481097820000052
Figure FDA0002481097820000053
为私钥矩阵且
Figure FDA0002481097820000054
q表示大于2的素数,
Figure FDA0002481097820000055
表示对
Figure FDA0002481097820000056
中每一个元素求关于q的余数,Zq∈{0,1,2,…,q-1},m为不小于1000的正整数,n为正整数且n<<m;
所述明文加密模块,通信连接所述密钥生成模块,用于在导入待乘法运算的第一明文矩阵B1和第二明文矩阵B2后,先分别得到对应的第一明文矩阵集合
Figure FDA0002481097820000057
和第二明文矩阵集合
Figure FDA0002481097820000058
然后采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第一明文矩阵集合中的各个矩阵分别进行加密,得到对应的第一密文矩阵集合
Figure FDA0002481097820000059
以及采用基于变种LWE问题的加性同态加密算法及所述公钥矩阵A对所述第二明文矩阵集合中的各个矩阵分别进行加密,得到对应的第二密文矩阵集合
Figure FDA00024810978200000510
其中,
Figure FDA00024810978200000511
p表示大于2的正整数,Zp∈{0,1,2,…,p-1},并按照如下公式得到所述第一明文矩阵集合
Figure FDA00024810978200000512
和所述第二明文矩阵集合
Figure FDA00024810978200000513
Figure FDA00024810978200000514
式中,θ1和θ2均为对角矩阵且θ11∈Zm×m,Z表示整数集合,I为单位矩阵;
在所述明文加密模块中,针对所述第一明文矩阵集合和所述第二明文矩阵集合中的各个矩阵B,按照如下方式进行加性同态加密:
S1021.获取具有n×m个元素的秘密矩阵S和具有m×m个元素的误差矩阵X;
S1022.按照如下公式计算与矩阵B对应的密文矩阵C:
C=(AS+pX+B)<mod>q
式中,A为公钥矩阵,()<mod>q表示求在区间范围
Figure FDA0002481097820000061
之间的映射值;
所述收发模块,通信连接所述明文加密模块,用于将所述第一密文矩阵集合
Figure FDA0002481097820000062
和所述第二密文矩阵集合
Figure FDA0002481097820000063
上传至云计算服务器,并在经过云计算后,获取如下反馈矩阵Φ:
Figure FDA0002481097820000064
式中,
Figure FDA0002481097820000065
所述密文解密模块,通信连接所述收发模块,用于采用所述私钥矩阵
Figure FDA0002481097820000066
及逆矩阵
Figure FDA0002481097820000067
对所述反馈矩阵Φ进行解密,得到如下待验证矩阵RT:
Figure FDA0002481097820000068
式中,
Figure FDA0002481097820000069
()mod p表示求关于p的余数,()<mod>q表示求在区间范围
Figure FDA00024810978200000610
之间的映射值,
Figure FDA00024810978200000611
所述结果验证模块,通信连接所述密文解密模块,用于检查RT00是否等于RT11+RT12+RT21+RT22,若发现相等,则将RT00作为所述第一明文矩阵B1与所述第二明文矩阵B2的乘法运算结果,否则判定验证失败,拒绝接受外包计算结果。
9.一种云计算系统,其特征在于:包括云计算服务器和如权利要求8所述的客户端;
所述云计算服务器通信连接所述客户端的收发模块,用于在收到第一密文矩阵集合
Figure FDA00024810978200000612
和第二密文矩阵集合
Figure FDA00024810978200000613
后,通过外包计算方式,云计算得到对应的反馈矩阵Φ,并将云计算结果反馈给所述收发模块。
CN201911275953.8A 2019-12-12 2019-12-12 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统 Active CN110826089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911275953.8A CN110826089B (zh) 2019-12-12 2019-12-12 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911275953.8A CN110826089B (zh) 2019-12-12 2019-12-12 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统

Publications (2)

Publication Number Publication Date
CN110826089A CN110826089A (zh) 2020-02-21
CN110826089B true CN110826089B (zh) 2020-06-30

Family

ID=69545113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911275953.8A Active CN110826089B (zh) 2019-12-12 2019-12-12 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统

Country Status (1)

Country Link
CN (1) CN110826089B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112163228B (zh) * 2020-09-07 2022-07-19 湖北工业大学 一种基于幺模矩阵加密的岭回归安全外包方法及系统
CN113343277B (zh) * 2021-07-02 2023-12-29 上海科技大学 一种安全高效的委托隐私数据类别预测的方法
CN114092242A (zh) * 2021-11-03 2022-02-25 支付宝(杭州)信息技术有限公司 基于范围证明实现隐私交易的方法和系统
CN114090656B (zh) * 2021-11-23 2023-05-26 抖音视界有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN116318690B (zh) * 2023-05-25 2023-08-15 山东大学 一种基于矩阵奇异值分解的安全外包计算方法及系统
CN117499095B (zh) * 2023-10-31 2024-05-28 山东大学 一种基于并行计算架构的矩阵外包计算方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684603A (zh) * 2019-01-09 2019-04-26 四川大学 一种高效求解大尺度矩阵行列式的可验证外包计算方法、客户端及云计算系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014126865A (ja) * 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法
CN105812141B (zh) * 2016-03-07 2018-11-27 东北大学 一种面向外包加密数据的可验证交集运算方法及系统
US10396997B2 (en) * 2016-12-14 2019-08-27 International Business Machines Corporation Container-based operating system and method
CN107294698B (zh) * 2017-07-25 2019-11-26 西安电子科技大学 单密文同态计算的全同态加密方法
CN109639677B (zh) * 2018-12-13 2022-03-15 广东工业大学 一种可限制访问次数的云存储外包解密属性基加密方法
CN109327304B (zh) * 2018-12-18 2022-02-01 武汉大学 一种云计算中实现隐私保护的轻量级同态加密方法
CN109787743B (zh) * 2019-01-17 2022-06-14 广西大学 一种基于矩阵运算的可验证的全同态加密方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684603A (zh) * 2019-01-09 2019-04-26 四川大学 一种高效求解大尺度矩阵行列式的可验证外包计算方法、客户端及云计算系统

Also Published As

Publication number Publication date
CN110826089A (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
CN110826089B (zh) 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统
Zhang et al. Identity-based key-exposure resilient cloud storage public auditing scheme from lattices
Zhang et al. Lattice-based proxy-oriented identity-based encryption with keyword search for cloud storage
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
Lei et al. Outsourcing large matrix inversion computation to a public cloud
EP2936731B1 (en) Managed secure computations on encrypted data
CN104521178B (zh) 安全的多方云计算的方法和系统
EP2873186B1 (en) Method and system for homomorphicly randomizing an input
Chen et al. Privacy-preserving and verifiable protocols for scientific computation outsourcing to the cloud
US9264406B2 (en) Public key cryptography with reduced computational load
Ma et al. Outsourcing computation of modular exponentiations in cloud computing
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
Zhou et al. How to securely outsource the extended euclidean algorithm for large-scale polynomials over finite fields
Tao et al. Simple matrix–a multivariate public key cryptosystem (MPKC) for encryption
CN111639345B (zh) 基于同态加密的安全的多方云计算的方法和系统
CN114039785B (zh) 数据加密、解密、处理方法、装置、设备和存储介质
Prakash et al. Secure & efficient audit service outsourcing for data integrity in clouds
Yang et al. Zero knowledge based client side deduplication for encrypted files of secure cloud storage in smart cities
Patil et al. Big data privacy using fully homomorphic non-deterministic encryption
Biksham et al. A lightweight fully homomorphic encryption scheme for cloud security
CN117527223B (zh) 一种基于格的抗量子密码的分布式解密方法及系统
Cafaro et al. Space-efficient verifiable secret sharing using polynomial interpolation
Liu et al. Secure outsourcing of large matrix determinant computation
Li et al. Privacy-preserving large-scale systems of linear equations in outsourcing storage and computation

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