一种基于类模运算的同态加密算法的制作方法

文档序号:14574507发布日期:2018-06-02 01:09阅读:349来源:国知局

本发明涉及安全加密且具备算术同态的加密方案,具体是一种基于类模运算的同态加密算法。



背景技术:

当前云计算平台中用户数据大都以明文形式存储,一旦被恶意攻击者窃取数据块的内容之后,其所存储的用户数据便会直接暴露出来,因此存在很大的数据安全性问题。为解决数据隐私保护的问题,最常见的方法是对数据进行加密,同态加密技术可在实现加密的同时,能够对密态数据进行分布式并行计算、查询和索引,因此在云存储环境中具有广阔的应用前景。Craig Gentry提出的基于理想格的全同态加密算法由于复杂度过高难以投入实际应用。Aldar C-F等提出了两个基于同态加密技术的算法,但对于已知明文攻击的抵御能力较差。Michael Brenner等提出的同态加密模型难以保证数据的正确性及密文的连续性。由于构建安全并能够实际应用的算术同态加密算法较为困难,本发明基于类模运算设计了一种同态加密算法,有效提高了算法的安全性与运行效率。



技术实现要素:

为解决现有技术的不足,本发明的目的在于提供一种基于类模运算的同态加密算法,本发明能够有效避免泄露明文信息与算法结构,并且有效提高算法的安全性与运行效率。

为了实现上述目标,本发明采用如下的技术方案:

一种基于类模运算的同态加密算法,包括如下步骤:

步骤一,系统初始化:生成密钥及选择参数;生成算法公钥,算法私钥;再选择加密参数、正负符号函数、自干扰函数作为参数;

步骤二,加密运算:初等加密变换再进行同态加密运算;对明文作初等加密变换,得到初等加密变换后的密文,再对初等加密变换后的密文作同态加密运算;

步骤三,解密运算:同态解密运算再进行初等加密逆变换。

前述的一种基于类模运算的同态加密算法,生成密钥的具体步骤为:可信第三方TTP选取两个素数p和q,使得|p|≈|q|,公开它们的乘积N=pq,N为算法公钥,p为算法私钥。

前述的一种基于类模运算的同态加密算法,选择参数的具体步骤为:a0和b0为初等加密变换所选择的加密参数,Range为输入明文的预期最大值的波动范围,Range≥|X|max;sign(x)为正负符号函数;[Range-|x|]为自干扰函数。

前述的一种基于类模运算的同态加密算法,初等加密变换的具体步骤为:基于已生成及选择的N,p,a0,b0对明文x作初等加密变换c′=E′(x)=a0x+b0,c′为初等加密变换后的密文。

前述的一种基于类模运算的同态加密算法,同态加密运算的具体步骤为:对c′作同态加密运算,c=E(x)=c′+sign(x)×[Range-|x|]×p;若c≥0,则最终密文ciphertext_x=mod(c,N);若c<0,则最终密文ciphertext_x=-mod(|c|,N)。

前述的一种基于类模运算的同态加密算法,同态解密运算的具体步骤为:进行同态解密运算,若密文结果ciphertext_x≥0,则c′=mod(cipher_x,p);若密文结果ciphertext_x<0,则c′=-mod(|cipher_x|,p)。

前述的一种基于类模运算的同态加密算法,初等加密逆变换的具体过程为:进行初等加密的逆运算,得到明文x=(c′-b0)/a0

本发明的有益之处在于:本发明提供一种基于类模运算的同态加密算法,通过对原有的明文作初等加密变换处理,实现抵抗已知明文的攻击,有效避免泄露明文信息与算法结构;其次,利用干扰函数来代替传统的随机函数,避免了因生成随机数造成的计算资源消耗,有效地提高了算法在云计算平台上的执行效率。

附图说明

图1是本发明的一种实施例的流程图。

具体实施方式

以下结合附图和具体实施例对本发明作具体的介绍。

一种基于类模运算的同态加密算法,包括如下步骤:

步骤一,系统初始化:生成密钥及选择参数;

生成密钥的具体步骤为:可信第三方TTP选取两个素数p和q,使得|p|≈|q|,公开它们的乘积N=pq,N为算法公钥,p为算法私钥。

选择参数的具体步骤为:a0和b0为初等加密变换所选择的加密参数,Range为输入明文的预期最大值的波动范围,Range≥|X|max;sign(x)为正负符号函数;[Range-|x|]为自干扰函数。

步骤二,加密运算:初等加密变换再进行同态加密运算;

初等加密变换的具体步骤为:基于已生成及选择的N,p,a0,b0对明文x作初等加密变换c′=E′(x)=a0x+b0,c′为初等加密变换后的密文。

同态加密运算的具体步骤为:对c′作同态加密运算,c=E(x)=c′+sign(x)×[Range-|x|]×p。若c≥0,则最终密文ciphertext_x=mod(c,N);若c<0,则最终密文ciphertext_x=-mod(|c|,N)。

步骤三,解密运算:同态解密运算再进行初等加密逆变换。

同态解密运算的具体步骤为:进行同态解密运算,若密文结果ciphertext_x≥0,则c′=mod(cipher_x,p);若密文结果ciphertext_x<0,则c′=-mod(|cipher_x|,p)。

初等加密逆变换的具体过程为:进行初等加密的逆运算,得到明文x=(c′-b0)/a0

依照本发明的步骤,当用户上传数据至云存储中心前,应用本发明的同态加密算法将数据转换为密文形式,保证存储在云端数据的机密性与完整性。当用户需要对数据进行必要的更新时,无需将密文数据解密后再进行更新,更新完成后再重新加密成密文上传至云端,而可利用密文的同态性质,直接对密文进行相应的算术运算,完成更新,同时也方便服务器对密文进行分布式管理、查询及索引。

所以,本发明能够保障用户数据的机密性及完整性,增强了加密算法的适用性,尤其适用于现有的一些云存储的应用场景。本方法保证了数据在存储过程中的机密性,以及密文的可计算性,方便了数据的管理。加密过程中,首先对明文作初等加密变换,能够在一定程度上抵抗已知明文的攻击,有效避免泄露明文信息与算法结构的问题。通过利用干扰函数来代替传统的随机函数,避免了因生成随机数造成的计算资源消耗,有效提高了算法在云计算平台上的执行效率。该方案在效率和功能性上均有显著提高,构造简洁、高效。

以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

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