一种自举型对称全同态加密方法与流程

文档序号:14045570阅读:2775来源:国知局

本发明属于信息安全系统技术领域,具体涉及一种自举型对称全同态加密方法。



背景技术:

全同态加密作为一种加密手段,支持直接对密文进行运算,运算的结果解密后等于对明文做同样操作的结果。换句话说,全同态方案对操作和加密具有交换律,即,先对明文进行加密后做同态运算,同先对明文进行运算后进行加密,得到的结果是等价的,用公式表达Homdec(ENC(sk),ENC(c))=ENC(dec(sk,c)),其中Homdec是指同态解密。自从2009年第一个全同态方案被提出以后,对全同态方案的研究进入热潮。其中,最主要的工作集中在全同态方案的构造、效率和安全性,然而效率仍旧是阻碍其实际应用的瓶颈。

2009年,Gentry基于理想格上困难问题及稀疏子集和问题,构造了首个CPA 安全的全同态加密方案,即支持任意多次加法和任意多次乘法运算。在该方案中Gentry开创性的提出了一种构造思路:自举(Bootstrapping,用同态方案运行其自身的解密电路)+压缩(Squashing,压缩解密电路的深度),该想法也被称为 Gentry蓝图。该想法可以基于任意一个满足条件的类同态加密方案(要求该方案的同态运算深度大于其解密电路的深度)构造全同态加密方案。

2011年,Brakerski,Gentry,Vaikuntanathan等构造了BGV方案,该方案在BV11b方案的基础上,把降模技术(Modulus Switching)从降维降模技术中分解出来,在每次进行门运算之前先对输入的密文进行降模运算,使得噪音在原来同态乘法中的指数增长变为了线性增长。为了更大程度上提高方案的效率,BGV 方案进一步利用SV11等方案中的并行(Batching)等优化方法,并基于RLWE假设构造方案。最终可以将一次同态操作的运算量减少为其中λ是安全参数。从而构造了高效的全同态加密方案。

在2013年美密会上,Gentry,Sahai和Waters针对重新线性化技术需要在同态运算时,给出大量计算密钥的缺陷,提出了近似特征向量(approximate eigenvector)方法,针对噪音系数增长问题,提出了密文校平(Flatten)技术,从而构造出基于LWE问题的较为简洁地全同态加密方案。该方案同态运算时,无需给出计算密钥,并且可以用来构造基于身份的全同态加密方案和基于属性的全同态加密方案。在2014年美密会上,Alperin和Peikert构造了双层全同态方案AP14。AP14在自举过程中,利用两层不同的密文来实现,把内层的解密过程看成是一个算术过程,然后外层密文同态地运行内层密文的算术解密过程。从而构造了一个效率更高的全同态方案,该方案自举过程的噪音比BV14更小。

在2015欧密会上,Ducas和Micciancio通过设计能够同态抽取最高比特过程(msbExtract)的外层密文,从而构造出一个较为高效双层全同态方案DM15,该方案的自举过程只需要1秒。在2016年亚密会上,Chillotti等人利用T=(0,1] 上乘法运算,积不会比乘数大的特点,基于GSW方案在环上的变种TGSW,构造了更加高效的全同态方案,该方案能够更好地控制自举过程中同态乘法的噪音增长。另外,方案利用TGSW密文(矩阵)和TLWE密文(向量)的外部乘积 (external product)替换原先TGSW密文(矩阵)和TGSW密文(矩阵)的乘积,更加高效地构造了多项式指数上的加法运算,从而将自举过程的时间缩减为0.1s。方案还设计了明文空间为{0,1}的TGSW密文和常数之间的高效同态常数乘法,将自举过程中的自举密钥由1G字节缩减到23M字节。

然而,该方案的缺陷是,自举过程涉及到较长的串行运算,限制了自举过程的速度。



技术实现要素:

本发明的目的是克服现有解决全同态加密方法在自举过程涉及到较长的串行运算,限制了自举过程的速度的问题。

为此,本发明提供了一种自举型对称全同态加密方法,包括如下步骤:

步骤一、根据安全性和正确性要求,分别设置内层密文和外层密文的噪音方差,内层密文和外层密文的格密码维数,生成加密解密密钥,转化密钥,自举密钥;

步骤二、根据给定的明文,使用加密算法和密钥对明文进行加密,输出密文;

步骤三、根据给定的密文,使用密钥和解密算法对密文进行解密,输出明文;

步骤四、输入1个或2个合法密文,运行包含自举过程的增强型同态电路运算模块,输出噪音小于1/16的密文。

所述步骤一,具体操作步骤为:

(1)根据安全性和正确性的需求,分别设置LWE密文的噪音方差γ=3.05×10-5,TLWE/TGSW密文的噪音方差α=9.0×10-9,TLWE密文中随机变量的维度N=1024,LWE密文中随机变量的维度n=500;

(2)随机选取加密解密密钥s={0,1}n,随机选取TGSW加密算法密文利用TGSW加密算法生成自举密钥其中, BKi,1=TGSWs″,α(s2i-1s2i),BKi,2=TGSWs″,α(s2i-1(s2i-1)),BKi,3=TGSWs″,α((s2i-1-1)s2i), BKi,4=TGSWs″,α((s2i-1-1)(s2i-1)),

(3)利用LWE加密算法和密钥生成转化密钥其中i∈[1,n′],j∈[1,t],n′为转化后的维数,精度t=15。

所述步骤二,具体操作为:给定明文密钥s={0,1}n,随机选择向量是0到1的环,为实数,为整数输出密文 c=(a,b)=(a,a·s+e+μ),其中e随机取自参数为γ=3.05×10-5的高斯分布。

所述步骤三,具体操作为:给定密文密钥s={0,1}n,计算函数输出明文μ′。

所述步骤四中,所述增强型同态电路运算模块,增强型同态比特门电路运算模块;该增强型同态比特门电路运算模块主要有5种,分别为:

(此模块无需自举过程);

HomXOR(c1,c2)=Bootstrap(2·(c1-c2));

其中,自举程序所用到的参数有BKs→s″,α,KSs′→s,γ,s′为s″1(X)的系数矩阵。

本发明的有益效果:本发明提供的这种自举型对称全同态加密方法的有益效果在于:

(1)效率方面,在相同的环境配置下,本方法的自举过程相比于原始方案减小47%。

(2)方案的安全性方面,方案的安全性可以规约到LWE问题,并且可以达到128比特安全。

(3)正确性方面,本方案自举过程产生的噪音方差比原文更小,从而使得解密错误的概率更小。

以下将结合附图对本发明做进一步详细说明。

附图说明

图1是自举型对称全同态加密方法计算过程的流程图。

图2为原始方案的运行结果。

图3为本方案的结果。

具体实施方式

为进一步阐述本发明达成预定目的所采取的技术手段及功效,以下结合附图及实施例对本发明的具体实施方式、结构特征及其功效,详细说明如下。

实施例1

为了克服现有解决全同态加密方法在自举过程涉及到较长的串行运算,限制了自举过程的速度的问题,本实施例提供了一种如图1所示的自举型对称全同态加密方法,包括如下步骤:

步骤一、初始化模块:根据安全性和正确性要求,分别设置内层密文和外层密文的噪音方差,内层密文和外层密文的格密码维数,生成加密解密密钥,转化密钥,自举密钥;

步骤二、加密模块:根据给定的明文,使用加密算法和密钥对明文进行加密,输出密文;

步骤三、解密模块:根据给定的密文,使用密钥和解密算法对密文进行解密,输出明文;

步骤四、增强型同态电路运算模块:输入1个或2个合法密文,运行包含自举过程的增强型同态电路运算模块,输出噪音小于1/16的密文。

所述步骤一,具体操作步骤为:

(1)根据安全性和正确性的需求,分别设置LWE密文的噪音方差γ=3.05×10-5,TLWE/TGSW密文的噪音方差α=9.0×10-9,TLWE密文中随机变量的维度N=1024,LWE密文中随机变量的维度n=500;

(2)随机选取加密解密密钥s={0,1}n,随机选取TGSW加密算法密文利用TGSW加密算法生成自举密钥其中, BKi,1=TGSWs″,α(s2i-1s2i),BKi,2=TGSWs″,α(s2i-1(s2i-1)),BKi,3=TGSWs″,α((s2i-1-1)s2i), BKi,4=TGSWs″,α((s2i-1-1)(s2i-1)),

(3)利用LWE加密算法和密钥生成转化密钥其中i∈[1,n′],j∈[1,t],n′为转化后的维数,精度t=15。

所述步骤二,具体操作为:给定明文密钥s={0,1}n,随机选择向量是0到1的环,为实数,为整数输出密文 c=(a,b)=(a,a·s+e+μ),其中e随机取自参数为γ=3.05×10-5的高斯分布。

所述步骤三,具体操作为:给定密文密钥s={0,1}n,计算函数输出明文μ′。

所述步骤四中,所述增强型同态电路运算模块,增强型同态比特门电路运算模块;该增强型同态比特门电路运算模块主要有5种,分别为:

(此模块无需自举过程);

HomXOR(c1,c2)=Bootstrap(2·(c1-c2));

其中,自举程序所用到的参数有BKs→s″,α,KSs′→s,γ,s′为s″1(X)的系数矩阵。

具体的过程如下:

(1)根据明文空间需求{μ01},如构造比特门电路时,通常要求明文空间为令使得等式成立。

(2)将b扩展2N倍,将ai扩展2N倍i∈[1,n]:将密文c扩大到中。

(3)利用多项式的乘法,生成testv多项式。

(4)涉及多项式的乘法。利用初始密文的分量生成初始TLWE密文

(5)将步骤6和7循环n/2次。

(6)密码变换程序利用多项式的乘法和加法,生成n/2个TGSW密文Keybundlei

(7)ACC←Dech,β,ε(ACC)·Keybundlei:涉及多项式的乘法,以及算法1中的分解运算。其中,Dech,β,ε(ACC)是对向量ACC的每个分量,利用给定的基上进行分解,分解的得到的系数组成一个新的向量。具体过程如下:

(8)其中coefs 表示取出多项式的系数。本步骤是为了调整自举过程的输出明文空间到{μ01}。

(9)运行KeySwitch,将密钥转化为具体过程如下:

综上所述,自举的具体过程可以用算法3来表示。

最后通过实验效果验证对本发明的效果。

使用C++进行实验,系统为LINUX,所采用的实验环境:CPU采用Inter (R)Core(TM)i7-6700HQ CPU,4核,主频为2.6GHz。图2为原始方案的运行结果,时间为436984微秒,图3为本方案的结果,时间为254998微秒。经对比可看出,本方案的正确性和速度都比原文更高。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1