云南大学数学与统计学实验教学中心实验报告
一、 实验目的:
了解全同态加密方案。
二、实验内容:
实现基于GMP实现全同态加密方案。
三、实验环境
Linux平台 Code::Block IDE
www.koding.com 网络在线编程平台
四、实验过程(请学生认真填写):
1. 预备知识:
一个简单的全同态对称加密方案:
KeyGen:选择一个奇数(正整数) ,其中为密钥p的比特长度
Encrypt(p,m) :
明文空间:
加密:c=pq+2r+m,其中参数
Decrypt(c,p) : m=(c mod p ) mod 2, 其中
2. 实验过程
A、原理分析:
全同态中的加密解密是基于 (pq+zr+m)取模p和2之后不影响m(即m不变的原理来实现的)。在上述算法实现中需要注意的是c mod p = c – p[c/p],其中【c/p】为四舍五入。
在gmp大整数库中好像没有直接四舍五入的函数,我们可以用 n = pq + r求出商p,和余数r,然后在比较2r是否大于q,若是大于则表示n/p得到的小数部分大于0.5;反之,小于0.5。大于0.5,p+1;否则p+0。
对于的取法:我们可以先取与,二者相减的差值:C;然后 + (对0~C-1均匀分布取随机数)即可得到p。
B、具体代码:
实验结果:
五、实验总结
1.遇到的问题、分析并的出方案(列出遇到的问题和解决办法,列出没有解决的问题):
遇到问题:
大整数库GMP中的四舍五入问题。
分析并解决:
查阅资料得到解决。
2.体会和收获。
通过学习全同态加密,了解到其在云计算平台上有很好的性质来实现数据的保存与操作。但是,于算法只能对1比特数据进行加密,在大数据中运用的话,必然会有效率比较低的问题,这是比较遗憾的。
通过学习,编写全同态加密算法更深一步的了解了同态加密。收获还是比较大的。
六、参考文献
GMP_Document
《应用密码学》 林岱岳
《密码学概论》wade trape
七、教师评语:
第二篇:密码学实验报告二
《现代密码学》实验报告