CN109787743B - 一种基于矩阵运算的可验证的全同态加密方法 - Google Patents

一种基于矩阵运算的可验证的全同态加密方法 Download PDF

Info

Publication number
CN109787743B
CN109787743B CN201910042562.5A CN201910042562A CN109787743B CN 109787743 B CN109787743 B CN 109787743B CN 201910042562 A CN201910042562 A CN 201910042562A CN 109787743 B CN109787743 B CN 109787743B
Authority
CN
China
Prior art keywords
calculation
matrix
random
res
proof
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
CN201910042562.5A
Other languages
English (en)
Other versions
CN109787743A (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.)
Guangxi University
Original Assignee
Guangxi 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 Guangxi University filed Critical Guangxi University
Priority to CN201910042562.5A priority Critical patent/CN109787743B/zh
Publication of CN109787743A publication Critical patent/CN109787743A/zh
Application granted granted Critical
Publication of CN109787743B publication Critical patent/CN109787743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于矩阵运算的可验证的全同态加密方法。该方法先将各明文数据预处理转换成向量,得到向量集合;然后选择非零随机实数与各向量构造三角矩阵,对各三角矩阵进行加密,得到加密矩阵集合;同时根据计算函数类型,利用三角矩阵集合生成验证证据;之后将各加密矩阵按照一定的规则进行矩阵运算,得到加密的运算结果;最后,对加密的运算结果进行解密,得到结果的明文,通过比较验证证据与计算结果的值是否相等来验证结果的正确性。本所述方法具有隐私安全及结果的可验证性;仿真实验结果表明本发明所述方法在密钥生成、解密与可验证阶段都具有较高的效率,表明了方案的有效性和可行性。

Description

一种基于矩阵运算的可验证的全同态加密方法
技术领域
本发明涉及一种全同态加密算法,具体涉及一种基于矩阵运算的可验证的全同态加密方法。
背景技术
云计算的出现,能够为用户带来了极大的便利,但同样由于它所具有的数据外包、服务租赁和虚拟化等特点,也引入了新的安全问题和挑战。首先外包使用户失去了对数据和计算任务的直接掌控,而这其中可能包含用户的一些敏感信息。另外云服务器内部的操作细节对用户是不透明的,因此,云服务提供商(Cloud Service Provider,CSP)可能出于某些自私的动机,使其存在不诚实的行为,例如:出于某种利益的目的,泄露、滥用用户的隐私信息;为了节约计算资源,在执行用户的计算任务时“偷懒”而未完成用户的计算工作从而返回错误的计算结果。此外,系统故障或非法的外部攻击也可能影响用户的隐私安全以及计算结果的正确性。因此,云计算环境中的隐私安全、计算可靠性是云计算研究的关键问题之一。
针对隐私安全问题,传统的加密方法虽然可以保护用户数据的隐私性,但是不支持对密文进行有效的计算。而同态加密是一种不同于传统的数据加密算法,它支持对密文直接进行运算,且得到的结果解密后与在明文下进行相同计算的结果是一样的。由于这个优良的性质,用户可以委托云服务器对同态加密后的数据进行计算,而不泄露隐私信息,充分地发挥了云计算的优势。目前已有的同态加密方案按照其支持的运算类型可分为部分同态加密方案和全同态加密方案。其中,前者仅支持有限次数的加法和乘法运算中的一种,例如:支持乘法同态运算的RSA、ElGamal等,支持加法同态运算的Paillier等,同时支持任意次数的加法和一次乘法同态运算的BGN等。由于它们仅满足部分同态性质,使得其在云计算中的应用具有一定的局限性,比如当需要执行某些复杂的运算(要求同时满足同态加法和乘法,或者同态运算的次数很大)时,就不能满足用户的需求了;后者具有全同态的性质,可以支持任意次数的加法和乘法运算。2009年Gentry构造出第一个真正意义上的全同态加密方案,然而由于密文长度和计算复杂度会随着安全强度的增加而激增,该方案在期望的安全强度上远达不到实际应用的程度。之后,Van Dijk等人对Gentry的工作进行了改进。尽管全同态加密方案的效率不断提高,但是目前已有的方案依然普遍存在设计复杂、密钥尺寸过大、计算效率较低和计算复杂度高等问题,离实际应用还有一定的距离。针对计算可靠性问题,用户需要一种机制来验证计算结果的正确性。Gennaro等人利用Gentry的全同态方案和Yao’s Garbled Circuit构造了具有输入输出隐私性的可验证方案。Zhou等人将一个支持加法和乘法操作的数据聚合方案和Yao’s Garbled Circuit相结合,实现了一个可验证的全同态加密方案(Zhou J,Cao Z,Dong X,et al.EVOC:More efficient verifiableoutsourced computation from any one-way trapdoor function[C].IEEEInternational Conference on Communications.IEEE,2015:7444-7449)。Ahmed等人基于Lipschitz四元数环提出一个无噪声的可验证全同态加密方案Ahmed E Y,Mohamed.Averifiable fully homomorphic encryption scheme to secure big data in cloudcomputing[C].International Conference on Wireless Networks and MobileCommunications.Rabat:IEEE,2017:1-5.。上述方案虽然都基本实现了可验证的全同态加密,但是它们要么缺乏实用性(如Gennaro等人设计的具有输入输出隐私性的可验证方案),要么效率较低(如Zhou等人设计的可验证的全同态加密方案)。因此,如何设计可验证的全同态加密方案依然是一个难点和热点。
发明内容
本发明要解决的技术问题是提供一种基于矩阵运算的可验证的全同态加密方法。该方法以矩阵运算原理及矩阵盲化技术为基础构建全同态加密算法,实现隐私安全与结果的可验证性,具有较高的效率。
本发明所述的基于矩阵运算的可验证的全同态加密方法,包括以下步骤:
1)根据安全参数λ={da,dm,k}的值确定密钥空间,然后生成非零随机实数集合{x1,x2,…,xd};其中,da∈N且da>3,dm∈N且dm≥2,N为自然数集,k为正整数且k≥2;
2)构造一个d阶可逆矩阵M,同时计算其逆矩阵M-1,令密钥K=(M,M-1);其中,d=da+dm+k;
3)确定参与计算的明文数据集合D={m1,m2,…,mt},其中t∈N且t≥1,将其中各明文数据分别转换成一个d维向量,得到向量集合;其中,将各明文数据转换成一个d维向量的具体实现步骤为:
3.1)随机选择(da-1)个数
Figure BDA0001948062120000027
(ari∈R(整数集)且i∈[1,da-1]),计算
Figure BDA0001948062120000021
从而生成一个da维向量
Figure BDA0001948062120000022
3.2)选择da个随机数
Figure BDA0001948062120000028
(crj∈R且j∈[1,da]),将向量p转换为
Figure BDA0001948062120000029
3.3)随机选择(dm-1)个数
Figure BDA00019480621200000210
(mrb∈R且1/mrb为有限小数,b∈[1,dm-1]),并计算
Figure BDA0001948062120000023
从而将p'转换为(da+dm)维的向量
Figure BDA0001948062120000024
3.4)从非零随机实数集合中随机选取(k-1)个元素加入到p″中将p″扩充,从而生成一个d维向量
Figure BDA0001948062120000025
Figure BDA0001948062120000026
其中,rq∈R且1≤q≤k-1,R为实数集;
4)从非零随机实数集合中随机选择d(d-1)/2个非零随机实数,将这些非零随机实数分别与向量集合中的各向量中的元素构建d阶三角矩阵,生成与明文数据集合D对应的三角矩阵集合S,用密钥K分别对各三角矩阵进行盲化处理得到相应的加密矩阵,进一步生成与明文数据集合D对应的加密矩阵集合C;
5)根据计算函数类型,利用三角矩阵集合S生成验证证据proof;所述的计算函数类型包括加法运算和乘法运算;
6)将加密矩阵集合C根据计算函数类型进行计算,得到计算结果Res;
7)用密钥K对计算结果Res进行去盲处理,所得去盲处理后的矩阵根据计算函数类型按公式进行计算,得到计算结果明文res;其中:
当计算函数为加法运算时,按下述公式(1)进行计算:
Figure BDA0001948062120000031
当计算函数为乘法运算时,按下述公式(2)进行计算:
Figure BDA0001948062120000032
8)根据计算函数类型,将验证证据proof中的各值与计算结果明文res中相对应的值进行比较,如均相等,则表示计算结果正确,输出res;否则表示计算结果错误,输出⊥;所述的计算函数类型包括加法运算和乘法运算。
本发明所述方法的步骤2)中,可采用现有常规方法构造d阶可逆矩阵M,优选是利用克罗内克函数和随机置换函数构造d阶可逆矩阵,其中:
克罗内克函数函数δx,y描述为:
Figure BDA0001948062120000033
设定一个d元恒等置换π,对于z=1:(d-1),选择随机数f(z≤f≤d),交换π(z)与π(f),生成d阶可逆矩阵M,其中Mz,f=δπ(z),f,通过计算求得其逆矩阵M-1,其中
Figure BDA0001948062120000034
Mz,f
Figure BDA0001948062120000035
分别表示矩阵M和M-1中第z行第f列的元素。
本发明所述方法的步骤4)中,所述从非零随机实数集合中随机选择的d(d-1)/2个非零随机实数,可以是相同的,也可以不同。
本发明所述方法的步骤5)中,计算函数类型可根据需求进行设定,即可以根据需要设定为加法或乘法。该步骤5)的具体实现步骤为:
当计算函数类型为加法运算时,先选择l个随机整数对(u,v),其中u,v∈[0,d-1],l≥2;然后对每一个随机整数对计算与之对应的验证值
Figure BDA0001948062120000036
Figure BDA0001948062120000037
g∈N,之后将计算所得的l个不同的验证值组成集合作为验证证据proof;
当计算函数类型为乘法运算时,先选择w个随机整数r,其中r∈[0,d-1],w≥2;然后对每一个随机整数计算与之对应的验证值
Figure BDA0001948062120000038
o∈N,之后将计算所得的w个不同的验证值组成集合作为验证证据proof。
本发明所述方法的步骤6)中,当计算函数类型为加法计算时,计算函数为F(C)=C1+C2+…+Ct;当计算函数类型为乘法计算时,计算函数为F(C)=C1×C2×…×Ct
本发明所述方法的步骤7)中,用密钥K对计算结果Res进行去盲处理的过程与现有技术相同。
本发明所述方法的步骤8)中,比较验证证据proof中的各值与计算结果明文res中相对应的值是否相等的具体处理如下:
当计算函数类型为加法计算时,根据验证证据proof生成过程中保存的l个随机整数对(u,v),依次比较验证证据proof中对应的验证值Vu,v是否满足Vu,v=res[u][v];若上述等式成立则表示相对应的计算结果是正确的,输出res;否则表示计算结果是错误的,输出⊥;
当计算函数类型为乘法计算时,根据验证证据proof生成过程中保存的w个随机整数r,依次比较验证证据proof中对应的验证值Vr是否满足Vr=res[r][r],若上述等式成立则表示相对应的计算结果是正确的,输出res;否则表示计算结果是错误的,输出⊥。
与现有技术相比,本发明以矩阵运算原理及矩阵盲化技术为基础构建全同态加密算法,通过安全性分析证明本发明所述方法具有隐私安全及结果的可验证性;仿真实验结表明本发明所述方法在密钥生成、解密与可验证阶段都具有较高的效率,表明了方案的有效性和可行性。
附图说明
图1为发明所述方法的框架示意图;
图2为本发明所述方法在仿真实验时密钥生成时间开销随着矩阵维数d的变化曲线;
图3为本发明所述方法在仿真实验时加密时间开销随着矩阵维数d的变化曲线;
图4为本发明所述方法在仿真实验时解密时间开销随着矩阵维数d的变化曲线;
图5为本发明所述方法在仿真实验时证据生成时间开销随着明文数据个数t的变化曲线。
具体实施方式
图1为发明所述方法的框架示意图,图中涉及两个实体,用户(User)和云服务提供商(CSP)。其中,User是计算任务的委托者,CSP是计算任务的实际执行者。他们之间的具体交互过程如下:
(1)User利用加密算法对参与计算的明文数据mt加密得到密文Ct,并在此过程中计算相关的验证证据proof,然后User保存proof并将Ct和需要计算的函数F(·)发送到CSP的服务器上,委托CSP进行计算;
(2)CSP在接收并明确User的外包计算任务后,根据计算函数F(·),在密文Ct上进行相应的计算,并将得到的计算结果Res返回给User;
(3)User利用解密算法对接收到的结果Res进行解密,生成最终的结果res;然后根据证据proof验证res的正确性,若正确则接受CSP的计算结果,反之则拒绝。
在图1所示模型中存在的安全威胁主要来自于CSP,它是一个不可信的主动攻击者,可能会泄露和滥用User的隐私信息,也可能会因为额外的商业利益诱导(如:节约计算资源)或者软硬件bug等原因不诚实地执行计算任务,以致于返回给User一个错误的结果。因此,基于此模型的可验证的全同态加密方案需要满足以下目标:
(1)正确性:若CSP诚实的执行计算任务,则其产生的计算结果必然是正确的,能被用户正确解密并接受。
(2)隐私性:CSP无法从输入数据和输出计算结果中获取任何有关用户私有数据的敏感信息。
(3)可验证性:User能以极大概率验证诚实的CSP返回的计算结果的正确性,也能以极大概率验证非诚实的CSP返回的计算结果的不正确性。
基于图1所示模型及设计目标,可得到如下一些形式化定义:
定义1(可验证的全同态加密)一个可验证的全同态加密方法VFHES=(VKeyGen,VEnc,VEval,VDec,VVerify)由5个多项式时间算法组成,具体描述如下:
·K←VKeyGen(λ):输入安全参数λ(λ={da,dm,k}),输出密钥K。
·(c,proof)←VEnc(K,m):输入密钥K和明文数据集合D={m1,m2,…,mt},输出密文集合C={C1,C2,…,Ct},以及相关的验证证据proof。
·(Res)←VEval(F,C):输入参与计算的密文集合C={C1,C2,…,Ct}和计算函数F(·),输出计算结果Res,其中Res=F(C),Ci=VEnc(K,mi)(i∈[1,t])。
·res←VDec(K,Res):输入密钥K和计算结果Res,输出解密后的明文计算结果res。
·res∪⊥←VVerify(res,proof):输入计算结果res和验证证据proof以验证res的正确性,如果正确,则输出res,反之则输出⊥。
定义2(安全性).可验证的全同态加密方法VFHES=(VKeyGen,VEnc,VEval,VDec,VVerify)是安全的,如果对于任意的概率多项式时间敌手A,在概率实验
Figure BDA0001948062120000051
中挑战成功的概率满足:
Figure BDA0001948062120000052
其中negl(·)是可忽略的函数。实验
Figure BDA0001948062120000053
描述如下:
a)生成密钥K←VKeyGen(λ);
b)敌手A对VEn进行预言访问;
c)敌手A输入两个随机的明文数据m0和m1
d)按如下方式生成密文C0和C1:C0←VEnc(K,m0),C1←VEnc(K,m1),随机选择一位e∈{0,1},然后将Ce发送给A;
e)敌手A再次对加密预言机,经过多次询问后,输出对e的猜测e’;
f)如果e'=e,则输出1,否则输出0。
对于上述实验,如果输出“1”则敌手挑战成功。
基于图1所示模型,设计的基于矩阵运算的可验证的全同态加密方法,包括以下步骤:
1)根据安全参数λ={da,dm,k}的值确定密钥空间,然后生成非零随机实数集合{x1,x2,…,xd};其中,da∈N且da>3,dm∈N且dm≥2,N为自然数集,k为正整数且k≥2;
2)构造一个d阶可逆矩阵M,同时计算其逆矩阵M-1,令密钥K=(M,M-1);其中,d=da+dm+k;
3)确定参与计算的明文数据集合D={m1,m2,…,mt},其中t∈N且t≥1,将其中各明文数据分别转换成一个d维向量,得到向量集合;其中,将各明文数据转换成一个d维向量的具体实现步骤为:
3.1)随机选择(da-1)个数
Figure BDA0001948062120000061
(ari∈R(整数集)且i∈[1,da-1]),计算
Figure BDA0001948062120000062
从而生成一个da维向量
Figure BDA0001948062120000063
3.2)选择da个随机数
Figure BDA0001948062120000064
(crj∈R且j∈[1,da]),将向量p转换为
Figure BDA0001948062120000065
3.3)随机选择(dm-1)个数
Figure BDA0001948062120000066
(mrb∈R且1/mrb为有限小数,b∈[1,dm-1]),并计算
Figure BDA0001948062120000067
从而将p'转换为(da+dm)维的向量
Figure BDA0001948062120000068
3.4)从非零随机实数集合中随机选取(k-1)个元素加入到p″中将p″扩充,从而生成一个d维向量
Figure BDA0001948062120000069
Figure BDA00019480621200000610
其中,rq∈R且1≤q≤k-1,R为实数集;
4)从非零随机实数集合中随机选择d(d-1)/2个非零随机实数,将这些非零随机实数分别与向量集合中的各向量中的元素构建d阶三角矩阵,生成与明文数据集合D对应的三角矩阵集合S,用密钥K分别对各三角矩阵进行盲化处理得到相应的加密矩阵,进一步生成与明文数据集合D对应的加密矩阵集合C;
5)根据计算函数类型,利用三角矩阵集合S生成验证证据proof;所述的计算函数类型包括加法运算和乘法运算;
6)将加密矩阵集合C根据计算函数类型进行计算,得到计算结果Res;
7)用密钥K对计算结果Res进行去盲处理,所得去盲处理后的矩阵根据计算函数类型按公式进行计算,得到计算结果明文res;其中:
当计算函数为加法运算时,按下述公式(1)进行计算:
Figure BDA00019480621200000611
当计算函数为乘法运算时,按下述公式(2)进行计算:
Figure BDA0001948062120000071
8)根据计算函数类型,将验证证据proof中的各值与计算结果明文res中相对应的值进行比较,如均相等,则表示计算结果正确,输出res;否则表示计算结果错误,输出⊥;所述的计算函数类型包括加法运算和乘法运算。
上述方法的步骤2)中,具体是利用克罗内克函数和随机置换函数构造d阶可逆矩阵,其中:
克罗内克函数函数δx,y描述为:
Figure BDA0001948062120000072
设定一个d元恒等置换π,对于z=1:(d-1),选择随机数f(z≤f≤d),交换π(z)与π(f),生成d阶可逆矩阵M,其中Mz,f=δπ(z),f,通过计算求得其逆矩阵M-1,其中
Figure BDA0001948062120000073
Mz,f
Figure BDA0001948062120000074
分别表示矩阵M和M-1中第z行第f列的元素。
上述方法的步骤4)中,所述从非零随机实数集合中随机选择的d(d-1)/2个非零随机实数,可以是相同的,也可以不同。
上述方法的步骤5)中,计算函数类型可根据需求进行设定,即可以根据需要设定为加法或乘法。该步骤5)的具体实现步骤为:
当计算函数类型为加法运算时,先选择l个随机整数对(u,v),其中u,v∈[0,d-1],l≥2;然后对每一个随机整数对计算与之对应的验证值
Figure BDA0001948062120000075
Figure BDA0001948062120000076
g∈N,之后将计算所得的l个不同的验证值组成集合作为验证证据proof;
当计算函数类型为乘法运算时,先选择w个随机整数r,其中r∈[0,d-1],w≥2;然后对每一个随机整数计算与之对应的验证值
Figure BDA0001948062120000077
o∈N,之后将计算所得的w个不同的验证值组成集合作为验证证据proof。
上述方法的步骤6)中,当计算函数类型为加法计算时,计算函数为F(C)=C1+C2+…+Ct;当计算函数类型为乘法计算时,计算函数为F(C)=C1×C2×…×Ct
上述方法的步骤7)中,用密钥K对计算结果Res进行去盲处理的过程与现有技术相同。
上述方法的步骤8)中,比较验证证据proof中的各值与计算结果明文res中相对应的值是否相等的具体处理如下:
当计算函数类型为加法计算时,根据验证证据proof生成过程中保存的l个随机整数对(u,v),依次比较验证证据proof中对应的验证值Vu,v是否满足Vu,v=res[u][v];若上述等式成立则表示相对应的计算结果是正确的,输出res;否则表示计算结果是错误的,输出⊥;
当计算函数类型为乘法计算时,根据验证证据proof生成过程中保存的w个随机整数r,依次比较验证证据proof中对应的验证值Vr是否满足Vr=res[r][r],若上述等式成立则表示相对应的计算结果是正确的,输出res;否则表示计算结果是错误的,输出⊥。
一、对上述方法的同态性的证明(假设明文数据为2个):
1、满足加法同态和乘法同态
(1)根据加法同态的性质,要证明本发明所述方法满足加法同态只需证明C1+C2解密后的结果为m1+m2即可。根据解密算法可得:
M-1(C1+C2)M=M-1(M(S1+S2)M-1)M=(M-1M)(S1+S2)(M-1M)
=E(S1+S2)E=S1+S2(E表示单位矩阵,下同)
因此,根据数据预处理过程,User可通过矩阵S1+S2对角线上的元素计算出m1+m2的值,所以存在VDec(K,C1+C2)=m1+m2(VDec(K,C1+C2)。因此,本发明所述方法满足加法同态性。
(2)根据乘法同态的性质,要证明方案满足乘法同态性只需要证明C1×C2解密后的结果为m1×m2即可。根据解密算法可得:
M-1(C1×C2)M=M-1(M S1S2M-1)M=(M-1M)S1×S2(M-1M)
=E S1×S2E=S1×S2
因此,根据数据预处理过程,User可通过矩阵S1×S2对角线上的元素计算出m1×m2的值。所以存在VDec(K,C1×C2)=m1×m2。因此,本发明所述方法满足乘法同态性。
2、满足全同态
根据全同态的性质,要证明本发明所述方法满足全同态只需证明方案能同时支持无限次的加法和乘法同态运算即可。
根据前述加法同态和乘法同态的证明可知,本发明所述方法满足加法同态和乘法同态。令Radd=M(S1+S2)M-1为一次同态加法运算后的结果,Rmul=M S1S2M-1为一次同态乘法运算后的结果,可计算得到:
Radd+C1=M(S1+S2)M-1+M S1M-1=M(S1+S2+S1)M-1
Rmul×C1=M S1S2M-1×M S1M-1=M(S1S2S1)M-1
根据解密算法:VDec(Radd+C1)=S1+S2+S1,VDec(Rmul×C1)=S1S2S1
同理,根据前述加法同态和乘法同态的证明,上述计算分别满足加法同态和乘法同态,也就是说经过一次同态运算后的密文依然满足加法和乘法同态性质。同理可推广得,当执行任意次数的同态运算后,该结论依然成立。故本发明所述方法满足全同态。
综上所述,本发明所述方法是一个全同态加密方案。
二、对上述方法的安全性分析
设本发明所述方法满足上述定义2的安全性。
证明:
根据定义2的安全性实验,对于敌手A来说,如果想要挑战成功有两种方法:第一种是直接从密文中区分出明文;第二种是推导出密钥以及具体的预处理过程,然后解密得到明文。下面分别对这两种方法进行分析。
对于第一种方法:给定密钥K=(M,M-1),根据加密算法,对于一明文数据m1,其对应的密文矩阵为:
Figure BDA0001948062120000091
其中矩阵S1中元素除了
Figure BDA0001948062120000092
Figure BDA0001948062120000093
之外都是随机的。因此根据矩阵之间的乘法运算规则,结果矩阵中的每个元素的值都是由参与运算的矩阵中的多个元素共同决定的,且都受到了随机数的影响。因此,同一个明文在给定密钥的前提下多次加密得到的密文矩阵是不相同的且是没有规律可言的。所以,由于多个随机数的存在,敌手A成功从密文中区分出明文概率为:
Figure BDA0001948062120000094
其中,λ={da,dm,k},|R|为实数域R元素的个数,显然该概率是可忽略的。
对于第二种方法:给定密文矩阵C1=M(S1)M-1,如果敌手A想要从中获取S1的内容,就需要从C1中破译出M或M-1。由于矩阵M是根据可逆矩阵构造算法构造的,该算法基于克罗内克函数和随机置换实现。所以此时敌手
Figure BDA0001948062120000095
需猜测出所使用的随机置换π,并找到随机数集合{x1,x2,…,xd},但是d元置换函数共有d!种可能的情况,随机数集合共有|α|d种可能的情况。因此,敌手A成功破译出M的概率为:1/d!*|α|d(α为密钥空间)。显然当矩阵阶数d与密钥空间α尺寸较大时,该概率是可忽略的。同时根据加密算法,矩阵S1是由明文数据m1首先经由数据预处理操作后才进一步构造的,在此过程中引入了大量的随机数,可有效的隐藏原始明文信息,进一步的提高了方案的安全性。此时,敌手A成功的概率是可忽略的。
结合前述本发明所述方法满足全同态的性质的结论,因此,在密文计算过程中并没有破坏密文的整体结构,其中间数据与计算结果的安全性并没有发生变化。
综上所述,本发明所述方法是隐私安全的。
三、上述方法是可验证的
1、从正确性方面对算法的可验证性证明
根据验证算法,本发明所述方法通过预先计算的验证证据与CSP返回的计算结果作比较以验证结果的正确性。
对于加法运算:根据加密算法,生成的验证证据为
Figure BDA0001948062120000096
因此,对于CSP返回的计算结果Res,若计算与解密正确,则有:
Res=C1+…+Ct=M S1M-1+…+M StM-1
res=VDec(K,Res)=M-1Res M=S1+…+St
此时,根据矩阵加法的运算规则,等式proof=res[u][v]成立。
对于乘法运算:根据加密算法,生成的验证证据为
Figure BDA0001948062120000101
因此,对于CSP返回的计算结果Res,若计算与解密正确,则有:
Res=C1×…×Ct=M S1M-1×…×M StM-1
res=VDec(K,Res)=M-1Res M=S1×…×St
此时,根据三角矩阵的乘法运算规则:多个下三角矩阵的乘法运算结果仍然是下三角矩阵,且结果矩阵对角线上元素的值等于参与运算的所有矩阵的对角线上相同位置的元素的积。因此,等式proof=res[r][r]成立。
所以,本发明所述方法是正确的。
2、从安全性方面对算法的可验证性证明
对于CSP而言,其目的是试图使计算结果(无论正确或错误)通过User的验证。因此,为了证明本发明所述方法是可验证安全的,则只需要证明错误的计算结果成功通过User验证的概率是可忽略的。
根据加密算法,加法和乘法运算的验证证据proof分别是由l个随机选择并计算的验证值
Figure BDA0001948062120000102
和w个随机选择并计算的验证值
Figure BDA0001948062120000103
Figure BDA0001948062120000104
组成,这些验证证据是User在本地计算的,可以认为是安全的。所以,如果想要一个错误的计算结果通过User的验证,CSP就必须要猜测出l对(u,v)或w对(r,r)的值,而此时成功的概率分别为:
Figure BDA0001948062120000105
Figure BDA0001948062120000106
显然当矩阵阶数d较大时,这样的概率是很小的。所以User能够以较高的概率检测出错误的计算结果。另外,根据解密算法,CSP返回的计算结果解密后是一个三角矩阵。所以也可基于此进行验证,进一步的提高了成功验证的概率。
综上所述,本发明所述方法满足可验证性。
四、对上述方法进行实验仿真
为了评估本发明所述方法的实际性能开销,对其进行实验仿真。实验代码采用Java语言编写,程序运行环境为Windows 7操作系统,CPU为Inter Pentium G640(2.80Ghz),内存4G。
如图2所示,密钥生成时间开销随着矩阵维数d的增加而增加。其原因是采用矩阵模糊技术生成密钥,时间复杂度O(d2),构造过程详见可逆矩阵构造算法。
如图3所示,加密时间开销随着矩阵维数d的增加而增加。VFHES在加密过程中,首先将明文数据转换为矩阵,然后再进行盲化处理。该阶段的开销主要是在盲化处理,其时间复杂度为O(d2)。需要注意的是,这里的加密开销仅指的是对单个明文加密所耗费的时间。
如图4所示,加法和乘法运算结果的解密时间开销随着矩阵维数d的增加而增加。本发明所述算法在解密过程中,需要先对密文矩阵去盲处理,然后再进一步的计算。其中,去盲处理的时间复杂度为O(d2)。另外对于同态加法和乘法运算结果的解密过程是不一样,它们的时间复杂度分别与da、dm有关。在本次实验中,我们预先设定了da=dm。从图4中可以看出,两者之间的耗时差距并不大。
如图5所示,在设定l=w=3的情况下,加法和乘法运算的证据生成时间开销随着外包数据数量t的增加而线性增长。这是因为方案的证据生成与矩阵维数d无关,对于加法和乘法运算而言,生成证据的时间复杂度分别为O(l×t)和O(w×t)。因此,选择合适的l和w,可以在保证安全性的同时高效生成验证证据。
下面以一个具体的例子来进一步说明本发明所述方法,以更好地理解本发明的内容。
1)根据安全参数λ={da,dm,k},令da=4,dm=2,k=2,则d=da+dm+k=4+2+2=8,生成非零随机实数集合{1,2,3,1,2,3,1,2};
2)利用克罗内克函数和随机置换函数构造d阶可逆矩阵M,同时计算其逆矩阵M-1,分别如下:
Figure BDA0001948062120000111
Figure BDA0001948062120000112
令密钥K=(M,M-1);
3)确定参与计算的明文数据集合D={m1,m2},其中m1=3,m2=1,将各明文数据分别转换成一个d维向量,得到向量集合;具体实现步骤为:
先将m1转换成d维向量P1
3.1)从非零随机实数集合中随机选择3(即(da-1))个随机数{1,1,1}得到四维向量p=(1,1,1,0);
3.2)从非零随机实数集合中随机选择4(即da)个随机数{1,0,2,1},p'=(2,1,3,1)
3.3)从非零随机实数集合中随机选择1(即(dm-1))个随机数{5},计算
Figure BDA0001948062120000121
从而将p'转换为6(即(da+dm))维的向量p”=(2,1,3,1,5,0.6);
3.4)从非零随机实数集合中随机选取1(即(k-1))个元素加入到p″中将p″扩充,从而生成一个d维向量P1=(2,1,3,1,5,0.6,1,-4);
然后重复上述步骤3.1)-3.3)将m2转换成d维向量P2,得到P2=(2,1,3,-1,5,0.2,1,-4);
4)从非零随机实数集合中随机选择28(即d(d-1)/2)个非零随机实数(此例中,对于向量P1,选取的28个非零随机实数均为1;对于向量P2,选取的28个非零随机实数均为2),将这些非零随机实数分别与向量集合中的各向量中的元素构建d阶三角矩阵,生成与明文数据集合D对应的三角矩阵集合S,用密钥K分别对各三角矩阵进行盲化处理得到相应的加密矩阵,进一步生成与明文数据集合D对应的加密矩阵集合C;
4.1)对于前述向量P1、P2,将上述28个非零随机实数与向量P1、P2中各元素构建的d阶三角矩阵分别为S1和S2(具体如下),即生成的与明文数据集合D对应的三角矩阵集合S={S1,S2}:
Figure BDA0001948062120000122
Figure BDA0001948062120000131
4.2)用密钥K按下述公式分别对三角矩阵S1和S2进行盲化处理得到相应的加密矩阵C1和C2,即得到与明文数据集合D对应的加密矩阵集合C={C1,C2}:
C1=M*S1*M-1
C2=M*S2*M-1
Figure BDA0001948062120000132
Figure BDA0001948062120000133
5)设定计算函数类型为加法运算,先选择3(即l=3)个随机整数对(u,v)(分别为(1,2)、(2,3)和(0,1)),然后对每一个随机整数对计算与之对应的验证值
Figure BDA0001948062120000134
(t=2,因为明文数据有2个),g∈N,分别得到:
(1,2)VU,V=S1[1][2]+S2[1][2]=3;
(2,3)VU,V=S1[2][3]+S2[2][3]=3;
(0,1)VU,V=3;
即得到验证证据proof={3,3,3};
6)将加密矩阵集合C根据计算函数类型进行计算,得到计算结果Res;
因计算函数类型为加法计算,根据加法计算函数F(C)=C1+C2+…+Ct得到计算结果:Res=C1+C2
7)用密钥K对计算结果Res进行去盲处理,所得去盲处理后的矩阵根据计算函数类型按公式进行计算,得到计算结果明文res,具体如下:
res=(M-1)*(Res)*M
因此,
Figure BDA0001948062120000141
由于计算函数类型为加法运算,因此按公式
Figure BDA0001948062120000142
进行计算,结果为4(对应明文数据m1+m2=3+1=4);
8)由于计算函数类型为加法运算,则之前保存的3个随机整数对(u,v)(分别为(1,2)、(2,3)和(0,1))的res[u][v]结果分别如下:
(1,2)res[u][v]=res[1][2]=3;
(2,3)res[u][v]=res[2][3]=3;
(0,1)res[u][v]=res[0][1]=3;
可见,(1,2)VU,V=(1,2)res[u][v],(2,3)VU,V=(2,3)res[u][v],(0,1)VU,V=(0,1)res[u][v],即,验证证据proof中的各值与计算结果明文res中相对应的值一一相等,表示计算结果正确,输出res。

Claims (5)

1.一种基于矩阵运算的可验证的全同态加密方法,包括以下步骤:
1)根据安全参数λ={da,dm,k}的值确定密钥空间,然后生成非零随机实数集合{x1,x2,…,xd};其中,da∈N且da>3,dm∈N且dm≥2,N为自然数集,k为正整数且k≥2;
2)构造一个d阶可逆矩阵M,同时计算其逆矩阵M-1,令密钥K=(M,M-1);其中,d=da+dm+k;
3)确定参与计算的明文数据集合D={m1,m2,…,mt},其中t∈N且t≥1,将其中各明文数据分别转换成一个d维向量,得到向量集合;其中,将各明文数据转换成一个d维向量的具体实现步骤为:
3.1)随机选择(da-1)个数
Figure FDA0003470839240000011
(ari∈R(整数集)且i∈[1,da-1]),计算
Figure FDA0003470839240000012
从而生成一个da维向量
Figure FDA0003470839240000013
3.2)选择da个随机数
Figure FDA0003470839240000014
(crj∈R且j∈[1,da]),将向量p转换为
Figure FDA0003470839240000015
3.3)随机选择(dm-1)个数
Figure FDA0003470839240000016
(mrb∈R且1/mrb为有限小数,b∈[1,dm-1]),并计算
Figure FDA0003470839240000017
从而将p'转换为(da+dm)维的向量
Figure FDA0003470839240000018
3.4)从非零随机实数集合中随机选取(k-1)个元素加入到p″中将p″扩充,从而生成一个d维向量
Figure FDA0003470839240000019
Figure FDA00034708392400000110
其中,rq∈R且1≤q≤k-1,R为实数集;
4)从非零随机实数集合中随机选择d(d-1)/2个非零随机实数,将这些非零随机实数分别与向量集合中的各向量中的元素构建d阶三角矩阵,生成与明文数据集合D对应的三角矩阵集合S,用密钥K分别对各三角矩阵进行盲化处理得到相应的加密矩阵,进一步生成与明文数据集合D对应的加密矩阵集合C;
5)根据计算函数类型,利用三角矩阵集合S生成验证证据proof;所述的计算函数类型包括加法运算和乘法运算;
6)将加密矩阵集合C根据计算函数类型进行计算,得到计算结果Res;
7)用密钥K对计算结果Res进行去盲处理,所得去盲处理后的矩阵根据计算函数类型按公式进行计算,得到计算结果明文res;其中:
当计算函数为加法运算时,按下述公式(1)进行计算:
Figure FDA00034708392400000111
当计算函数为乘法运算时,按下述公式(2)进行计算:
Figure FDA00034708392400000112
8)根据计算函数类型,将验证证据proof中的各值与计算结果明文res中相对应的值进行比较,如均相等,则表示计算结果正确,输出res;否则表示计算结果错误,输出⊥;所述的计算函数类型包括加法运算和乘法运算。
2.根据权利要求1所述的基于矩阵运算的可验证的全同态加密方法,其特征在于:步骤2)中,利用克罗内克函数和随机置换函数构造d阶可逆矩阵,其中:
克罗内克函数δx,y描述为:
Figure FDA0003470839240000021
设定一个d元恒等置换π,对于z=1:(d-1),选择随机数f(z≤f≤d),交换π(z)与π(f),生成d阶可逆矩阵M,其中Mz,f=δπ(z),f,通过计算求得其逆矩阵M-1,其中
Figure FDA0003470839240000022
Mz,f和Mz,f -1分别表示矩阵M和M-1中第z行第f列的元素。
3.根据权利要求1所述的基于矩阵运算的可验证的全同态加密方法,其特征在于:步骤5)的具体实现步骤为:
当计算函数类型为加法运算时,先选择l个随机整数对(u,v),其中u,v∈[0,d-1],l≥2;然后对每一个随机整数对计算与之对应的验证值
Figure FDA0003470839240000023
Figure FDA0003470839240000024
之后将计算所得的l个不同的验证值组成集合作为验证证据proof;
当计算函数类型为乘法运算时,先选择w个随机整数r,其中r∈[0,d-1],w≥2;然后对每一个随机整数计算与之对应的验证值
Figure FDA0003470839240000025
o∈N,之后将计算所得的w个不同的验证值组成集合作为验证证据proof。
4.根据权利要求1所述的基于矩阵运算的可验证的全同态加密方法,其特征在于:步骤6)中,
当计算函数类型为加法计算时,计算函数为F(C)=C1+C2+…+Ct
当计算函数类型为乘法计算时,计算函数为F(C)=C1×C2×…×Ct
5.根据权利要求4所述的基于矩阵运算的可验证的全同态加密方法,其特征在于:步骤8)中,
当计算函数类型为加法计算时,根据验证证据proof生成过程中保存的l个随机整数对(u,v),依次比较验证证据proof中对应的验证值Vu,v是否满足Vu,v=res[u][v];若上述等式成立则表示相对应的计算结果是正确的,输出res;否则表示计算结果是错误的,输出⊥;
当计算函数类型为乘法计算时,根据验证证据proof生成过程中保存的w个随机整数r,依次比较验证证据proof中对应的验证值Vr是否满足Vr=res[r][r],若上述等式成立则表示相对应的计算结果是正确的,输出res;否则表示计算结果是错误的,输出⊥。
CN201910042562.5A 2019-01-17 2019-01-17 一种基于矩阵运算的可验证的全同态加密方法 Active CN109787743B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910042562.5A CN109787743B (zh) 2019-01-17 2019-01-17 一种基于矩阵运算的可验证的全同态加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910042562.5A CN109787743B (zh) 2019-01-17 2019-01-17 一种基于矩阵运算的可验证的全同态加密方法

Publications (2)

Publication Number Publication Date
CN109787743A CN109787743A (zh) 2019-05-21
CN109787743B true CN109787743B (zh) 2022-06-14

Family

ID=66500817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910042562.5A Active CN109787743B (zh) 2019-01-17 2019-01-17 一种基于矩阵运算的可验证的全同态加密方法

Country Status (1)

Country Link
CN (1) CN109787743B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110826089B (zh) * 2019-12-12 2020-06-30 四川大学 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统
CN111885079B (zh) * 2020-07-31 2022-04-12 支付宝(杭州)信息技术有限公司 保护数据隐私的多方联合处理数据的方法及装置
CN112152806B (zh) * 2020-09-25 2023-07-18 青岛大学 一种云辅助且支持隐私保护的图像识别方法、装置及设备
CN112380545A (zh) * 2020-10-29 2021-02-19 上海同态信息科技有限责任公司 一种使用加法后置项和乘法后置项的数据聚合方法
CN112995189B (zh) * 2021-03-08 2022-01-21 北京理工大学 一种基于隐私保护的公开验证矩阵乘法正确性的方法
CN113032791A (zh) * 2021-04-01 2021-06-25 深圳市纽创信安科技开发有限公司 一种ip核、ip核的管理方法和芯片
CN113326475B (zh) * 2021-06-29 2022-08-09 福建师范大学 一种基于初等矩阵的矩阵求逆外包计算方法
CN113312654B (zh) * 2021-06-29 2023-05-12 重庆交通大学 一种基于csp问题的同态密文编码与计算方法
CN113343277B (zh) * 2021-07-02 2023-12-29 上海科技大学 一种安全高效的委托隐私数据类别预测的方法
CN114070558B (zh) * 2021-11-18 2023-11-24 抖音视界有限公司 一种数据传输方法及装置
CN115150094B (zh) * 2022-06-12 2024-04-16 中国科学院重庆绿色智能技术研究院 一种基于mlwe和msis的可验证解密方法
CN114817970B (zh) * 2022-06-30 2022-11-29 深圳市洞见智慧科技有限公司 基于数据来源保护的数据分析方法、系统及相关设备
CN115865307B (zh) * 2023-02-27 2023-05-09 蓝象智联(杭州)科技有限公司 一种用于联邦学习的数据点乘运算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314580A (zh) * 2011-09-20 2012-01-11 西安交通大学 一种基于向量和矩阵运算的支持计算的加密方法
CN103259643A (zh) * 2012-08-14 2013-08-21 苏州大学 一种矩阵全同态加密方法
CN105323209A (zh) * 2014-06-05 2016-02-10 江苏博智软件科技有限公司 全同态加密和多重数字水印技术的云数据安全保护方法
CN107147484A (zh) * 2017-05-12 2017-09-08 南京邮电大学 一种面向隐私保护的浮点数全同态加密方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314580A (zh) * 2011-09-20 2012-01-11 西安交通大学 一种基于向量和矩阵运算的支持计算的加密方法
CN103259643A (zh) * 2012-08-14 2013-08-21 苏州大学 一种矩阵全同态加密方法
CN105323209A (zh) * 2014-06-05 2016-02-10 江苏博智软件科技有限公司 全同态加密和多重数字水印技术的云数据安全保护方法
CN107147484A (zh) * 2017-05-12 2017-09-08 南京邮电大学 一种面向隐私保护的浮点数全同态加密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A verifiable fully homomorphic encryption scheme to secure big data in cloud computing;Ahmed El-Yahyaoui et al.;《2017 International Conference on Wireless Networks and Mobile Communications (WINCOM)》;20171104;全文 *
EVOC: More Efficient Verifiable Outsourced Computation from Any One-way Trapdoor Function;Jun Zhou et al.;《2015 IEEE International Conference on Communications (ICC)》;20150612;全文 *

Also Published As

Publication number Publication date
CN109787743A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN109787743B (zh) 一种基于矩阵运算的可验证的全同态加密方法
Leurent et al. From collisions to chosen-prefix collisions application to full SHA-1
Abid et al. RETRACTED ARTICLE: An optimised homomorphic CRT-RSA algorithm for secure and efficient communication
CN110719159A (zh) 抗恶意敌手的多方隐私集合交集方法
WO2010005071A1 (ja) パスワード認証方法
CN110601822A (zh) 一种基于量子保密通信技术的加密盲签名方法
CN112436938B (zh) 数字签名的生成方法、装置和服务器
Sharma et al. Dual factor third‐party biometric‐based authentication scheme using quantum one time passwords
Sathya et al. A comprehensive study of blockchain services: future of cryptography
Chatel et al. Verifiable encodings for secure homomorphic analytics
Liu et al. Fault attacks on authenticated encryption modes for GIFT
CN117527223B (zh) 一种基于格的抗量子密码的分布式解密方法及系统
CN105119929B (zh) 单一恶意云服务器下的安全模指数外包方法及系统
Tian et al. DIVRS: Data integrity verification based on ring signature in cloud storage
Srivastava et al. On the generation of alphanumeric one time passwords
Ajmal et al. Cloud computing platform: Performance analysis of prominent cryptographic algorithms
Shivaramakrishna et al. A novel hybrid cryptographic framework for secure data storage in cloud computing: Integrating AES-OTP and RSA with adaptive key management and Time-Limited access control
Bhardwaj et al. HS1-RIV: Improved Efficiency for Authenticated Encryption
Naya-Plasencia et al. Practical cryptanalysis of ARMADILLO2
Zhan et al. Improved proxy re-encryption with delegatable verifiability
CN116051260A (zh) 银行借贷模型构建方法、借贷金额计算方法、装置及系统
Bardis et al. A Method for Strict Remote User Identification Using non-Reversible Galois Field Transformations
US20230141210A1 (en) Neural networks
CN108632033B (zh) 一种外包计算中基于随机加权酉矩阵的同态加密方法
Liu et al. Secure and verifiable outsourcing protocol for non-negative matrix factorisation

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