首页 > 编程知识 正文

同态加密算法实现,目前较为成熟的同态加密算法

时间:2023-05-04 22:38:55 阅读:159278 作者:2562

同态加密技术是对同态加密概念的总结,同态加密(Homomorphic Encryption )一直以来都是密码学界提出的问题。 1978年,Ron Rivest、Leonard Adleman、Michael L. Dertouzos以银行为应用背景提出了这一概念。 其中Ron Rivest和Leonard Adleman分别是著名的RSA算法中的r和a。

同态加密是基于数学课题计算复杂性理论的密码学技术。 处理同态加密的数据并获得输出,然后对输出进行解密,得到的结果与用相同的方法处理未加密的原始数据的结果相同。

由构建完全同态加密的第一个Craig Gentry直观定义为:

awaytodelegateprocessingofyourdata,without giving away access to it。

无需访问数据本身就可以加工数据的方法

准同态加密的具体过程

图1 .云场景以下相同状态的加密流程

以云计算的应用场景为例,如图1所示。 的滑板通过Cloud用Homomorphic Encryption (以下简称HE )处理数据的整个过程大致如下。

的滑板正在犹豫加密数据。 把加密的数据发送到Cloud的滑板犹豫向Cloud提交数据的处理方法。 这里用函数f表示; Cloud在函数f下处理数据,并将处理结果发送给犹豫不决的滑板; 的滑板正在犹豫解密数据并得到结果。 由此,我们可以直观地得到作为HE方案应该拥有的函数的KeyGen函数:密钥生成函数。 此函数必须由为用于生成加密数据Data的密钥Key而犹豫不决的滑板执行。 同时加入一些公开常数PP(publicparameter ); Encrypt函数:加密函数。 该函数也应该由犹豫不决的滑板执行,用Key加密用户数据Data,得到密文CT(ciphertext )。 Evaluate函数:评估函数。 此函数由Cloud执行,用户在给定的数据处理方法f下处理密文,结果与用户用密钥Key加密f(data )相同。 Decrypt函数:解密函数。 该函数由犹豫不决的滑板执行,用于获得Cloud处理的结果f(data )。 根据f的限制条件,HE方案实际上分为两种:完全homomorphicencryption (fhe )。 这意味着只要he方案可以用算法描述,它就支持任何f函数。 显然,FHE方案是一个非常棒的方案,但计算开销非常大,暂时还不能实际使用。 somewhathomorphicencryption (swhe )这意味着he方案只支持特定的f函数。 SWHE方案稍弱,但开销变小,容易实现,意味着现在可以实际使用。 同态加密的安全性HE方案最基本的安全性是语义安全性。 直观地说,密文(Ciphertext )不会泄露明文)中的任何信息。 用公式表达的话,如下。

(1) ) ) )。

在此,PK表示公钥(Public Key ),其中的(约)符号意味着多项式的不可区分性,即不存在有效的算法,使得即使已知m0、m1、PK,也能够区分两个结果。 这是因为加密算法中还使用了随机数这个重要的量。 也就是说,即使对同一明文m进行加密,获得的结果也不同。 即,一个明文可以对应多个密文many ciphertexts per plaintext。

密码学还有更强的安全定义,称为“密文安全性选择”。 选择密文的安全性分为非适应性(None-Adaptively )和适应性(Adaptively )即CCA1和CCA2。 HE方案不能实现CCA2的安全。 那么,HE方案能实现CCA1的安全吗? 迄今为止还没有CCA1的安全FHE方案,但2010年,密码学家们已经构建了CCA1的SWHE方案。

HE方案还有另一个安全性。 函数f也是能否保密。 如果能保密的话,Cloud不仅不能得到数据本身的内容,现在甚至不知道数据是如何处理的,按照给定的算法运行,返回的结果就是用户想要的结果。 如果HE方案满足这些条件,则此HE方案称为具有函数-权限特性。 但是,目前没有函数专用文件。 也没有功能权限交换。

部分同态加密的例子是,在2009年Graig Gentry给出FHE的结构之前,很多加密方式都具有部分同态的性质。 其实,最经典的RSA加密,本身对乘法具有同态性。 Elgamal加密方案对乘法也具有同态性。 Paillier在1999年提出的加密方式也具有同型性,是一种能够证明安全性的加密方式。 2009年前的HE方案不仅具有加同型性,还具有同乘型性,不能同时具有加同型和同乘型。 这种同型性没什么用,只能作为一个性质使用,这种方案的同型性一般不会实际使用。

以Elgamal加密方式为例,具有乘法同型性,Elgamal加密方式的密文形式为:

(2) ) ) )。

其中r是加密期间选择的随机数

,g是一个生成元,h是公钥。如果我们有两个密文:
(3)
我们把这两个密文的第一部分相乘,第二部分相乘,会得到:
(4)
也就是说,相乘以后的密文正好是m1m2所对应的密文。这样,用户解密后得到的就是m1m2的结果了。而且注意,整个运算过程只涉及到密文和公钥,运算过程不需要知道m1m2的确切值。所以我们说Elgamal具有乘同态性质。但是很遗憾,其没有加同态性质。

同态加密的实现与效率

FHE最重要的一点是Fully,就是说要支持任意的函数f。因此我们也可以很明显看出,想要构造FHE,就需要了解计算机是如何计算的。一般来说,我们有两种思路:

从计算机原理考虑。计算机无论做何种运算,归根到底都是位运算。实际上,一个计算机只要支持逻辑与运算(AND),以及异或运算(XOR),那么这个计算机理论上就可以实现计算机的其他运算了(我们称之为图灵完备性,Turing Completeness)从抽象代数考虑。我们只需要加法和乘法就可以完成全部运算了。但其实更严格的说,只要我们在一个域(Field)上构造HE,理论上我们就可以支持所有的f。

2011年Gentry和Halevi在IBM尝试实现了两个HE方案:Smart-Vercauteren的SWHE方案以及Gentry的FHE方案,并公布了效率。Smart-Vercauteren的SWHE方案效率如图2所示。

图2. Smart-Vercauteren方案(SWHE)的效率

Smart-Vercauteren的方案的密钥时间还能接受,但这个是部分同态加密。Gentry的FHE方案的效率如图3所示。

图3. Gentry的FHE方案的效率

Halevi在github上公布了同态加密库HElib(https://github.com/shaih/HElib.git)的代码,其中实现了完全同态加密的加、减、乘、除、移位、循环移位等功能,目前的问题在于上述生成密钥的效率上。如果计算的量大于生成秘钥所需的时间量的话,是有价值使用HElib库的。

同态加密的应用

同态加密技术在分布式计算环境下的密文数据计算方面具有比较广泛的应用领域,比如云计算、多方保密计算、匿名投票等

6.1安全云计算与委托计算

同态技术在该方面的应用可以使得我们在云环境下,充分利用云服务器的计算能力,实现对明文信息的运算,而不会有损私有数据的私密性。例如医疗机构通常拥有比较弱的数据处理能力,而需要第三方来实现数据处理分析以达到更好的医疗效果或者科研水平,这样他们就需要委托有较强数据处理能力的第三方实现数据处理(云计算中心),但是医院负有保护患者隐私的义务,不能直接将数据交给第三方。在同态加密技术的支持下,医疗机构就可以将加密后的数据发送至第三方,待第三方处理完成后便可返回给医疗结构。整个数据处理过程、数据内容对第三方是完全透明的。

6.2文件存储与密文检索

用户可以将自己的数据加密后存储在一个不信任的远程服务器上,日后可以向远程服务器查询自己所需要的信息,存储与查询都使用密文数据,服务器将检索到的密文数据发回。用户可以解密得到自己需要的信息,而远程服务器却对存储和检索的信息一无所知。此种方法同样适用于搜索引擎的数据检索。

6.3安全多方计算协议设计的工具

所谓安全多方计算就是分别持有私有数据 x1,x2,…,xn的 n 个人,在分布式环境中协同计算函数f (x1,x2,…,xn) 而不泄露各方的私有数据。以同态技术加密的密文数据计算不仅可以满足安全多方计算协议设计中保护各方隐私的需要,还能避开不经意传输协议而大大提升协议效率。

6.4电子选举

基于同态加密技术设计的电子选举方案,统计方可以在不知道投票者投票内容的前提下,对投票结果进行统计,既保证了投票者的隐私安全,有能够保证投票结果的公证。

写在最后

同态加密技术目前的实用难度在于效率,不能达到一定效率的同台加密实用性并不高,但是这一技术在效率提升之后有着广阔的应用前景!

本文资料收集于网络,由笔者进行整理。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。