The invention discloses a verifiable homomorphic encryption method based on matrix operation. The method first converts the plaintext data into vectors and obtains the set of vectors; then chooses non-zero random real numbers and vectors to construct triangular matrices, encrypts each triangular matrix and obtains the set of encrypted matrices; at the same time, according to the type of calculation function, generates verification evidence by using the set of triangular matrices; and then calculates each encrypted matrix according to certain rules, and obtains Finally, decrypt the encrypted operation results and get the plaintext of the results. Verify the correctness of the results by comparing the evidences and the calculated values. The method has privacy security and verifiability of the results. The simulation results show that the method has high efficiency in key generation, decryption and verifiability, and shows the effectiveness and feasibility of the scheme.
【技术实现步骤摘要】
一种基于矩阵运算的可验证的全同态加密方法
本专利技术涉及一种全同态加密算法,具体涉及一种基于矩阵运算的可验证的全同态加密方法。
技术介绍
云计算的出现,能够为用户带来了极大的便利,但同样由于它所具有的数据外包、服务租赁和虚拟化等特点,也引入了新的安全问题和挑战。首先外包使用户失去了对数据和计算任务的直接掌控,而这其中可能包含用户的一些敏感信息。另外云服务器内部的操作细节对用户是不透明的,因此,云服务提供商(CloudServiceProvider,CSP)可能出于某些自私的动机,使其存在不诚实的行为,例如:出于某种利益的目的,泄露、滥用用户的隐私信息;为了节约计算资源,在执行用户的计算任务时“偷懒”而未完成用户的计算工作从而返回错误的计算结果。此外,系统故障或非法的外部攻击也可能影响用户的隐私安全以及计算结果的正确性。因此,云计算环境中的隐私安全、计算可靠性是云计算研究的关键问题之一。针对隐私安全问题,传统的加密方法虽然可以保护用户数据的隐私性,但是不支持对密文进行有效的计算。而同态加密是一种不同于传统的数据加密算法,它支持对密文直接进行运算,且得到的结果解密后与在明文下进行相同计算的结果是一样的。由于这个优良的性质,用户可以委托云服务器对同态加密后的数据进行计算,而不泄露隐私信息,充分地发挥了云计算的优势。目前已有的同态加密方案按照其支持的运算类型可分为部分同态加密方案和全同态加密方案。其中,前者仅支持有限次数的加法和乘法运算中的一种,例如:支持乘法同态运算的RSA、ElGamal等,支持加法同态运算的Paillier等,同时支持任意次数的加法和一次乘法 ...
【技术保护点】
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.一种基于矩阵运算的可验证的全同态加密方法,包括以下步骤: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)个数(ari∈R(整数集)且i∈[1,da-1]),计算从而生成一个da维向量3.2)选择da个随机数(crj∈R且j∈[1,da]),将向量p转换为3.3)随机选择(dm-1)个数(mrb∈R且1/mrb为有限小数,b∈[1,dm-1]),并计算从而将p'转换为(da+dm)维的向量3.4)从非零随机实数集合中随机选取(k-1)个元素加入到p″中将p″扩充,从而生成一个d维向量其中,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)进行计算:当计算函数为乘法运算时,按下述公式(2)进行计算:8)根据计算函数类型,将验证证据proof中的各值与计算结果明文res中相对应的值进行比较,如均相等,则表示计算结果正确,输出res;否则表示...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。