同态加密

前言

加密技术在数据保护方面具有重要意义,使用传统的加密技术(eg.DES,RSA,MD5…)可以通过密钥的方式来实现数据的加密,但加密的数据只是在加密的时候是安全的,由于外界的不确定性,密钥的泄露还是会造成隐私的暴露或数据的被盗。同态加密技术可以在不对加密数据进行解密的情况下对其进行运算,极大的加强了用户数据的保护。

同态加密概念

简介

有效的同态加密模型可以极大降低敏感数据的暴露问题,对访问系统的内部用户以及外部用户都起到同样的作用。使用同态加密模型可以保护用户的隐私不受数据处理者的影响:访问者无法查看正在处理的数据,只能看到数据处理的最终结果。在云计算以及需要进行数据保护的分布式系统中,同态加密技术对其具有重要作用,因为用户可以在不访问原始未加密数据的情况下进行计算

定义

同态加密是一种对称加密算法,由Craig Gentry发明提出。加密方案包括4个算法,即密钥生成算法、加密算法、解密算法和额外的评估算法。全同态加密包括两种基本的同态类型,即乘法同态和加法同态,加密算法分别对乘法和加法具备同态特性。

通俗说: 同态加密就是一种能够对加密后的内容进行运算,然后用密钥对运算结果进行解密,解密得到的结果等于加密前的内容经过相同的运算之后的结果。比如把数字3加密之后得到密文A,数字5加密后得到密文B, 2 ∗ 密 文 A 2 *密文A 2A 得到的密文解密后得到的结果为6, 密 文 A + 密 文 B 密文A+密文B A+B 得到的密文解密的结果为8。有了同态加密后,我们就可以把加密后的数据上传到云服务器上,在云服务器上进行运算,然后下载运算后的结果,对结果进行解密。这样就得到了计算结果并且能够保证数据不被泄露。因为数据是被加密的,所以把加密后的数据公布给所有人也不会发生数据泄露。

具体说明

加密函数 f f f, 改函数可以将明文 A A A变成密文 A ′ A' A,将明文 B B B变为密文 B ′ B' B,也即:
f ( A ) = A ′ f(A)= A' f(A)=A f ( B ) = B ′ f(B)= B' f(B)=B
解密函数 f − 1 f^{-1} f1,该函数可以将 f f f加密后的密文解密为加密前的明文。使用传统的加密方法,如果将 A ′ A' A加上 B ′ B' B得到 C ′ C' C,此时使用 f − 1 f^{-1} f1进行解密得到结果 C C C,得到的 C C C必定为乱码

同态加密:如果 f f f是个可以进行同态加密的加密函数,对 C ′ C' C使用 f − 1 f^{-1} f1进行解密得到结果 C C C,这时候的 C = A + B C=A+B C=A+B

公式化解释
(1)如果满足:
f ( A ) + f ( B ) = f ( A + B ) f(A)+f(B) = f(A+B) f(A)+f(B)=f(A+B) 该加密方式称为加法同态

(2)如果满足:
f ( A ) ∗ f ( B ) = f ( A ∗ B ) f(A) * f(B) = f(A*B) f(A)f(B)=f(AB) 该加密方式称为乘法同态

如果一个加密函数只满足加法同态,只能进行加减法运算;如只满足乘法同态,那么就只能进行乘除法运算。如果一个同态加密函数同时满足加法同态和乘法同态,那么这个使用这个加密函数完成各种加密后的运算(加减乘除、多项式求值、指数、对数、三角函数,可以使用泰勒公式进行展开计算)。

参考:

https://zhuanlan.zhihu.com/p/31822335

你可能感兴趣的:(密码学)