整数上的同态加密报告DGHV

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对 解密后的结果应该就是 。
3、公钥体系全同态方案的构造
KeyGen( ):随机生成一个 比特(大)奇数p,作为私钥,即sk=p。Hale Waihona Puke Baidu公钥为: 。这里 为 比特的(小)随机整数, 为Q比特的随机整数。如果 不是最大元素,则找到最大元素并与 交换位置,即使得 为公钥集合里面的最大元素。
Encrypt(pk,m):对某个明文比特 ,随机生成一个集合 和一个 比特整数r,输出密文: ] mod 。将 代入,可得:
历史
同态加密的思想其实很早就有了。1976年,Diffie和Hellman提出公钥加密思想,1977年第一个实用的公钥加密方案,同时也是历史上最成功的,直到现在仍有广泛应用的公钥加密体制RSA体制由Rivest,Shamir和Adleman提出。同年由Rivest,Adleman和Dertouzos提出了全同态加密的思想,最初被称为隐私同态。这是因为他们发现RSA算法本身就具有乘法同态性。此后,人们一直致力于寻找全同态加密算法。但在2009年之前的很长时间里都没有获得满意结果。只获得了一些半同态的或者仅能做有限步的全同态加密方案。
2、(公钥)同态加密方案:除了上述3个基本算法之外,还有一个Evaluate算法。基本形式为: 。基本作用是输出 。且为了保证同态性,必须使得 解密后的结果为 ,即:
注: 满足该式子的函数f称为允许函数,所有允许函数的集合称为允许函数集合。
这里使用布尔电路来描述函数f。这是为了有效地表示f的复杂度。用布尔电路可以将f分解为简单的布尔电路的组合,如and电路、xor电路等。And电路对应两个二进制数相乘,xor电路对应两个二进制数相加,且这两个电路是完备的。
2009年,IBM实习研究员(斯坦福大学博士研究生)Gentry发明了一种基于理想格的全同态加密方案,发表在ACM STOC 2009国际会议上,获得了一致高度评价。但该方案复杂度太高,很难实用化。2010年,Dijk,Gentry等人又提出了另外一种更加简洁易懂的全同态加密方案:基于整数(环)的全同态加密方案(DGHV)。但该方案计算复杂度和开销仍然较大,难于实现。
注: 此方案为比特加密方案。 引入r是为了构造随机加密体制,对抗CPA攻击。 解密的正确性。 关于噪音。称m+2r为噪音。按照加密方式知,只有当 时,cmodp才等于m+2r。进一步对2取模才能得到明文m。在新鲜密文中,噪音是较小的( 比特,因为r为 比特),但经过Evaluate运算后,噪音是会增加的。
现记: ,则 。
一个比喻。有一位首饰商人Alice为了防止工人在制作首饰的过程中盗窃材料,想出了一个办法。她向一家公司定做了一种箱子。该箱子是带有挂锁的,钥匙只有Alice本人持有。箱子两侧有两个手套,工人可以在箱子外面使用手套来操作放在箱子里面的金银等材料来制作首饰。制作完成后,Alice使用钥匙打开箱子,拿出制作好的首饰。这样就实现了让工人在不直接接触材料的条件下对材料进行加工的目的。
Alice的问题:Alice发现了新的问题。她所订购的箱子是有问题的,即用一段时间之后,在得到成品之前箱子就坏掉了。Alice很生气。她一方面起诉了为她制作箱子的公司,一方面自己思考该如何解决问题。在一个做噩梦醒来之后,她突然想到一个方法。她首先将所有箱子编号。然后把材料放入1号箱子并上锁。等工人使用1号箱子工作一段时间(在1号箱子坏掉之前),她把1号箱子放入2号箱子并上锁。然后利用2号箱子的手套,在2号箱子里将1号箱子解锁(使用1号箱子的钥匙)。此时,材料存于2号箱子。于是工人使用2号箱子工作一段时间,在2号箱子坏掉之前,又将2号箱子放入3号箱子,重复以上操作,直到首饰加工完毕。Alice打开最后的箱子,取出首饰。
,而 。取整的结果是不一样的。
2、压缩解密电路。
2014.4.11王会勇
2012年,Halevi和Shoup利用C++语言和NTL数学函数库编写了实现BGV方案的软件包。
二、基本概念
1、公钥密码体系:一个公钥密码体系ε由3个算法组成:KeyGen,Encrypt,Decrypt,且这三个算法必须是高效的,即其运行时间最大为安全参数 的某个多项式 。KeyGen使用安全参数 生成两个密钥:公钥pk和私钥sk。Encrypt(pk,m)使用公钥pk将消息(明文)m映射为密文c。Decrypt使用私钥sk将密文c映射为明文m。
整数上的同态加密报告1
一、介绍与历史。
1、基本概念
全同态加密用一句话来说就是:可以对加密数据做任意功能和任意次数的运算,运算的结果解密后是对明文做同样运算的结果。
用处:云计算,安全多方计算,加密搜索,电子投票等。
例1:Caesar密码对链接操作具有同态性。
Caesar密码是一种循环移位替换加密体制。设密钥为○(1到26之间的整数),明文为某个字母◎,则对应密文为字母表(循环使用)中○之后的第◎个字母。例如,取密钥为13。则有: , 。
例如:设 , 。现将 做加法和乘法得:
可以看出,密文和的噪音为噪音之和,密文乘积的噪音为噪音的乘积。
例1.设P=11, , 。取 , 。按照加密方案得:
; , ;
; , ;
由于 的噪音为 , 的噪音为 ,都是在 范围内的,所以解密正确。现考察 。
,而 , 。
解密错误的原因在于 的噪音为 ,不在 内。
3、基本要求:(解密)正确性;保密性(Evaluate不会泄露关于f的信息);紧凑性(输出密文c的长度与f无关):语义安全性(可以对抗CPA攻击);
三、整数上的全同态方案(DGHV)
1、全同态加密基本方案的构造步骤
构造一个类全同态加密方案,即只能支持有限次全同态操作的方案。
通过一种自举技术将类全同态方案转化为全同态方案。
该方案能够评估的多项式次数。由r ,知噪音 )。设待评估的多项式有t个变量,次数为d,形式为 。为保证能够正确解密,要求由f生成的密文噪音< 。知: 。其中 。而 ,故 ,故要求 ,可得: ,即为可评估多项式的最高次数。
由类全同态方案构造全同态方案
参考Alice的解决方案,可以得出一个关系:
此关系说明:如果一个方案的解密算法属于允许函数集合(此时称此方案为自举的),则只要在每次对密文做运算之前先将密文解密(用Evaluate),就会得到一个新鲜密文,其噪音是很小的,然后再对密文做运算,就应该可以保证运算的同态性。重复这个步骤,即可实现全同态方案。
,或记为:存在某个小整数k,使得:
成立。
Decrypt(p,c):输出(cmodp)mod2。
Evaluate )。
注:可以注意到每个c都是p的近似倍数。已知多个c,要获得p是困难的。(近似GCD)
五、问题
1、计算 。其中a为整数,b为小数。为了保证 后取整结果唯一,b应该取小数点后多少位?(logc)注:这里的取整为最近取整。例如:
2、对称型方案的构造
类全同态方案的构造
KeyGen( ):随机生成一个 比特(大)奇数p,作为密钥。
Encrypt(p,m):对某个明文比特 ,随机生成一个 比特(较小)整数r和一个Q比特整数q,(显然2r+m远小于p),输出密文: 。
Decrypt(p,c):输出(cmodp)mod2。其中 。
Evaluate )。
2011年,Brakerski和Vaikuntanathan基于环上LWE(Learning with error)问题构造了同态加密方案Bv11a。
2011年,Brakerski、Gentry和Vaikuntanathan构造了BGV方案。这是目前效率最高的全同态加密方案。同年,Gentry和Halevi对该方案进行了改进,提出了GHS方案。
相关文档
最新文档