国内首个同态加密技术的商业化应用
为数据安全领域提供了新的思路
20世纪70年代末,就在RSA公钥密码体制公布的第二年,Ron Rivest、Len Adleman和Michael Dertouzos 发表了题为《论数据库与隐私同态》的报告。文中详细介绍了金融公司如何运用云提供商(当时叫做“商用分时服务”)存储和计算加密数据,从此,密码学里一个新的名词术语“同态加密”诞生了。直到2009年IBM的Craig Gentry首次提出了一种基于理想格的全同态算法,同态加密从概念到理论得到进一步完善,也逐渐有了工程实现。
爱丽丝是一家珠宝店老板,打算让员工将一块黄金打造成首饰,但是担心工人会在打造过程中偷取黄金,于是她制造了一个带锁的箱子,用来存放黄金和做好的首饰,钥匙由她随身保管。通过手套箱工人可以将手伸入箱子加工首饰,但无法拿到黄金和首饰。而爱丽丝则可以通过钥匙向手套箱添加原料,并取出加工好的首饰。
简单来说就是,明文的互操作何以转换成密文的互操作。
比如,上图中,密文1和密文2分别是明文1和明文2经过加密后的对应的密文,明文1和明文2相乘得到明文3,对密文3解密,得到的结果等于明文1乘以明文2,如果此加密算法具有这样的特性,那么就说明此算法具有乘法同态性。
或乘法同态,“全同态加密”既能实现加法同态又能实现乘法同态(其他运算都可以通过加法和乘法实现)
RSA是计算机通信安全的基石,是一种公钥加密算法(加密密钥和解密密钥不是同一个),在这里通过例子简要证明RSA具有乘法同态性,即两明文数字(T1、T2)用公钥加密后得到的两个密文(C1、C2),将密文乘积(C1×C2)用私钥解密,如果解密结果等于两明文之积(T1×T2),则RSA具有乘法同态性,如下:
p=3
和q=5
(实际应用中,这两个质数越大,就越难破解,这里选择两个小数只是为说明原理)
n=15
( n的长度就是密钥长度,15二进制是1111,一共有4位,所以这个密钥就是4位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。也就是21024-22048
,约为10308-10616
)φ(n)=(p-1)(q-1)=8
1< e < φ(n),
且e与φ(n)
互质,在这里选e=3
(实际应用中,常常选择65537。)计算e对于φ(n)的模反元素d=11(所谓“模反元素”就是指有一个整数d,可以使得ed被φ(n)除的余数为1。
ed ≡ 1 (mod φ(n));
这个式子等价于
ed - 1 = kφ(n);
于是,找到模反元素d实质上就是对下面这个二元一次方程求解。
ex + φ(n)y = 1
已知 e=3, φ(n)=8,
3x + 8y = 1
这个方程可以用“扩展欧几里得算法”求解,此处省略具体过程,在这里算出一组解(11,-4)即d=11)
随机选取两个数字T1=2
和T2=3
进行加密运算分别得到密文:
(
明文T1、T2必须是整数(字符串可以取ascii值或unicode值),且必须小于n,所谓“加密”,就是算出下式的c,
te ≡ c (mod n))
C1= 23mod(15)=8
C2= 33mod(15)=12
对( C1×C2 )
做解密运算得(所谓解密即算出cd ≡ t (mod n)
中对应的t
)
t= (C1×C2)d mod(n)= 9611mod(15)=6;
又T1×T2=6;
由此可见RSA具有乘法同态性,两个密文之积的解密结果等于明文之积即:
decrypt(C1×C2)≡ T1×T2