法律状态公告日
法律状态信息
法律状态
2019-08-13
授权
授权
2017-11-24
实质审查的生效 IPC(主分类):H04L9/00 申请日:20170721
实质审查的生效
2017-10-24
公开
公开
技术领域
本发明属于信息安全领域,涉及一种对称的全同态加密方法,具体涉及一种基于明文相似矩阵的对称全同态加密方法,可应用于云计算、大数据环境等对重要数据的全程密态保护,在对密文数据不进行解密的情况下完成对明文数据的计算。
背景技术
随着互联网的发展,尤其是云计算概念的诞生,人们在加密数据搜索与处理等方面的需求日益增加。但是对于大数据的处理,用户就必须委托给第三方(云)来进行操作;用户在云端存储的数据可能包含一些敏感信息,所以在将数据存储到云端之前必须对数据进行加密保护;然而,明文数据一旦被加密,明文数据结构会发生变化,一些在明文数据上的操作将不再适用于密文数据。
同态加密是一种新型的加密算法,对密文数据进行同态运算得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果相等,这种加密方法的优点是可以直接对密文数据进行计算,而不用等到解密后在进行处理,但缺陷是只能对密文数据进行有限次的同态运算或只能对密文数据进行单一代数运算(加或乘)。然而,单运算同态密码和浅同态密码同态计算功能受限,例如,Paillier密码体制、Damgard-Jurik密码体制等只能满足加法同态;RSA密码体制、ElGamal等只能满足乘法同态;BGN密码体制满足任意次加法同态和一次的乘法同态。
全同态加密是在同态加密的基础上提出来的,全同态加密可以根据用户要求,允许第三方对密文数据进行任意计算,且对密文数据的计算结果进行解密即得到对应明文数据的计算结果,而在整个处理过程中无需对数据进行解密;其意义在于,从根本上解决重要数据的隐私保护和密文数据的计算相互冲突的瓶颈问题。全同态加密方法的基本步骤包括:参数生成,密钥选取,对明文消息加密,对密文消息解密,对密文消息进行同态计算。
2009年Gentry设计了第一个基于格的全同态密码体制,实现了历史性的跨越。然而,一些全同态密码方案由于加密方案中密文存在噪声,所以当密文计算到一定程度,其噪声将超过上限,对这样的密文解密将可能失败。还有一些对称全同态密码方案,由于过程繁琐导致效率低下。例如,2017年Khalil Hariss、Hassan Noura和Abed Ellatif Samhat在论文“Fully Enhanced Homomorphic Encryption algorithm of MORE approach for realworld applications”(Journal of Information SecurityandApplications.2017.Pages 233-242)中提出了一种改进的用于随机化和加密的矩阵运算的对称全同态加密算法。该方法的具体步骤是:两个用户协商一对秘密参数:一个私密钥、一个初始向量IV,使用哈希算法生成64-bits的动态密钥DK;使用动态置换密钥DKp生成一个置换盒π=[pi]1≤i≤N,将其用于输入的明文消息;基于动态扩散密钥DKd和流密码算法(例如:RC4),两个用户共享一个秘密序列s,使用重构函数将先前的秘密序列s变换为w个尺寸为
发明内容
本发明的目的是针对上述现有技术的缺陷,提出了一种基于明文相似矩阵的对称全同态加密方法,用于解决现有对称全同态加密效率低的技术问题。
为实现上述目的,本发明采取的技术方案,包括如下步骤:
(1)参数生成:用户根据安全要求随机生成两个长度相等的大素数p和q;
(2)用户构建剩余类环和一般线性群,实现步骤为:
(2.1)用户构建关于大素数p的剩余类环
(2.2)用户利用剩余类环
(3)用户计算同态计算公钥和对称密钥,实现步骤为:
(3.1)用户计算RSA模数N,N=pq,并将RSA模数N作为同态计算公钥;
(3.2)用户在一般线性群
(4)用户对明文矩阵进行加密,实现步骤为:
(4.1)用户根据需要在一般线性群
(4.2)用户在一般线性群
其中,
(5)用户对密文矩阵进行解密,实现步骤为:
(5.1)用户通过同余式
(5.2)用户对k个n阶矩阵Bk左乘矩阵A-1,右乘矩阵A,得到k个明文矩阵Mk≡A-1BkA(modp);
(6)云服务器对密文矩阵进行同态计算,实现步骤为:
(6.1)云服务器根据用户需要,从k个密文矩阵Ck中选取明文矩阵M1、M2、M1′和M2′对应的密文矩阵C1、C2、C1′和C2′,其中明文矩阵M1、M2、M1′和M2′相同或不同;
(6.2)云服务器使用同态计算公钥N,对密文矩阵C1和C2进行同态加法计算,同时对密文矩阵C1′和C2′进行同态乘法计算,得到同态加法密文矩阵C+和同态乘法密文矩阵C×;
(7)用户对同态加法密文矩阵C+和同态乘法密文矩阵C×进行解密,得到对应明文矩阵M+和M×。
本发明与现有技术相比,具有以下优点:
1.本发明利用随机生成的大素数构建剩余类环,根据剩余类环构建一般线性群,在构建的一般线性群中进行密钥选取,并且使用相似矩阵对明文矩阵进行加密,过程简单,与现有技术相比,提高了效率。
2.本发明在加密过程中对明文矩阵的相似矩阵进行加密,在解密时,通过乘矩阵的逆矩阵,结果满足矩阵乘自身的逆矩阵等于单位矩阵,从而计算过程不会引入噪声,支持对密文矩阵进行任意次的同态计算,满足用户的需求。
3.本发明在加密过程中对明文矩阵的相似矩阵进行加密,使得明文矩阵被其相似矩阵随机隐藏,提高了加密方法的安全性。
附图说明
图1为本发明的实现流程图。
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细说明。
步骤1)参数生成:用户根据安全要求随机生成两个长度相等的大素数p和q,取p和q的长度均为1024比特;
步骤2)用户构建剩余类环和一般线性群,实现步骤为:
步骤2.1)用户构建关于大素数p的剩余类环
步骤2.2)用户利用剩余类环
步骤3)用户计算同态计算公钥和对称密钥,实现步骤为:
步骤3.1)用户计算RSA模数N,N=pq,并将RSA模数N作为同态计算公钥;
步骤3.2)用户在一般线性群
步骤4)用户对明文矩阵进行加密,实现步骤为:
步骤4.1)用户根据需要在一般线性群
步骤4.2)用户在一般线性群
其中,
步骤5)用户对密文矩阵进行解密,实现步骤为:
步骤5.1)用户通过同余式
步骤5.2)用户对k个n阶矩阵Bk左乘矩阵A-1,右乘矩阵A,得到k个明文矩阵Mk≡A-1BkA(modp);
步骤6)云服务器对密文矩阵进行同态计算,实现步骤为:
步骤6.1)云服务器根据用户需要,从k个密文矩阵Ck中选取明文矩阵M1、M2、M1′和M2′对应的密文矩阵C1、C2、C1′和C2′,其中明文矩阵M1、M2、M1′和M2′相同或不同;
步骤6.2)云服务器使用同态计算公钥N,对密文矩阵C1和C2进行同态加法计算,同时对密文矩阵C1′和C2′进行同态乘法计算,得到同态加法密文矩阵C+和同态乘法密文矩阵C×,对密文矩阵C1和C2进行同态加法计算的公式为:
C+≡C1+C2(modN),
对密文矩阵C1′和C2′进行同态乘法计算的公式为:
C×≡C1′×C2′(modN);
步骤7)用户对同态加法密文矩阵C+和同态乘法密文矩阵C×进行解密,得到对应明文矩阵M+和M×,实现步骤为:
步骤7.1)用户通过同态加法密文矩阵
步骤7.2)用户通过同态乘法密文矩阵 步骤7.3)用户对n阶矩阵B+左乘矩阵A-1,右乘矩阵A,得到明文矩阵M+≡A-1B+A(modp),其中M+=M1+M2; 步骤7.4)用户对n阶矩阵B×左乘矩阵A-1,右乘矩阵A,得到明文矩阵M×≡A-1B×A(modp),其中M×=M1′×M2′。
机译: 如何创建密文明文在区间内的证明系统和证明文本,基于证明文本的验证方法
机译: 基于概率不相似矩阵的秩排序序列选择方法
机译: 基于模算法的全同态加密处理方法