|||
全同态加密释疑(一):四个算法(1)
陈智罡
2009年全同态加密(Fully Homomorphic Encryption)的诞生,不仅是密码学界的一个大的突破(Breakthrough),而且是计算机理论界的一个突破。自从2011年创建了全同态加密QQ群,从几十号人到现在的将近200人,来自各个大学,包括国外。可见人们对全同态加密研究的热情。
另外在网上有许多同学问我一些问题,有些问题很雷同,可能也是初学者必经之路。全同态加密的入门确实比较难。作为一个过来者,非常愿意分享我的一些心得,所以这里我会把一些共性的问题,用一种深入浅出的方法讲述,希望每个人都能看懂。
其实在全同态加密论文的背后,有许多可以说出来的秘密,只不过这个秘密在论文里没空间也不适合讲,那么这里就搞一个专题“全同态加密释疑”,细说从头每个让你困惑的秘密。如果有愿意加入的朋友,可以一起分享心得体会。
今天说说全同态加密的四个算法。可能有些人会说,这个谁不知道,但是知道并不意味着清楚,只有深刻理解了这四个算法的含义,尤其是第四个算法的含义,才能清楚什么是部分同态加密方案,什么是执行自己的解密电路等等概念。
通常一个公钥加密方案有三个算法:KeyGen算法(密钥生成),Enc算法(加密),Dec算法(解密)。但是在全同态加密中,除了上述三个算法之外,还包含第四个算法:Evaluate算法(密文计算),这个算法的功能是对输入的密文进行计算。
首先说说KeyGen算法(密钥生成)。该算法用于生成公钥和密钥,公钥用于加密,私钥用于解密,这个地球人都知道。但是还可能生成另外一种公钥,即密文计算公钥,我们把它称之为Evk。
密文计算公钥Evk的作用是在执行Evaluate算法时用到,而且Evk的形式与使用的全同态方案直接相关。例如,如果是通过启动技术(Bootstrapple)获得全同态加密,即每次密文计算前要用同态解密约减密文的噪音,这时Evk就是对密钥的每一位加密后生成的密文,即密钥有多少位,Evk里包含的公钥就有多少个。Evk中每个公钥的大小就是使用Enc加密后产生密文的大小。典型的代表就是Gentry的理想格方案以及后续的整数上的方案。
当然还有其他情况,例如,如果使用密钥交换与模交换技术获得全同态加密,典型代表就是BGV方案。这时Evk中包含的就是L–1个矩阵,L是方案中电路的深度,该矩阵用于密钥转换。每次密文计算后,都需要使用Evk中的公钥将维数扩张的密文向量转换成正常维数的密文向量。
当然还有一种情况就是不需要Evk,例如在Crypto13会议的论文GSW13中,Gentry使用的密文是矩阵(方阵),所以密文乘积或相加不会产生密文维数改变的事情,所以在密文计算时没有用到公钥,这也是该论文可以产生基于身份或基于属性全同态加密方案的根本原因。
关于Evk就说了这么多,你觉得简单么?一个成功男人的背后,有多少……,那么一个概念的背后就有多少个概念在支撑。千万别小看了概念,只有善于抓概念,才能体会方案的脉络。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-19 20:10
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社