云南大学数学与统计学实验教学中心实验报告
一、 实验目的:
了解零知识证明,同时掌握FFS识别方案。
二、实验内容:
1. 理解零知识证明
2. 基于GMP实现FFS零知识证明方案
三、实验环境
Linux平台 Code::Block IDE
www.koding.com 网络在线编程平台(本实验是在此平台中完成的,效果一样)
四、实验过程(请学生认真填写):
1. 预备知识:
“零知识证明”它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
2. 实验过程
A、原理分析:
Feige-Fait-Shamir是一种并行的认证形式。具体做法如下
首先:选择大素数 q 和 p, 计算 n=pq ,Peggy 拥有密钥 s1, s2, ...,sk
接着做如下UML图中的内容:
B、具体代码:
实验结果:
//缺点有:首先在编写好程序后才发现,无法模拟伪造者来进行。这个由结果就能看出来。
//同时,此程序仅仅模拟,做不到并行认证。
五、实验总结
1.遇到的问题、分析并的出方案(列出遇到的问题和解决办法,列出没有解决的问题):
遇到问题:
主要是对于算法的不熟悉,不能清晰的认识整个算法运作。
分析并解决:
仔细揣摩,并且动手写了一下算法的UML图。得到了加深。
2.体会和收获。
收获:
加深了GMP中函数的运用。
在学习零知识证明的知识后,了解了什么是零知识证明,同时会了一点零知识证明的方法。这是比较大的收获——毕竟以前从没有想过这方面的东西,接触之后才恍然。
当然这个FFS算法也并不是一定的安全。也存在着一定的缺陷和漏洞,例如验证次数、对于vi的猜测等等。
六、参考文献
GMP_Document
《应用密码学》 林岱岳
《密码学概论》wade trape
七、教师评语:
第二篇:密码学实验讲义及实验报告20xx
密码学基础
实 验 指 导 书
黑龙江大学计算机科学技术学院
20xx年3月
黑龙江大学计算机科学技术学院——密码学基础实验报告
目录
前言........................................................................................................................... - 2 - 要求与评分标准....................................................................................................... - 3 - 1 要求 ...................................................................................................................- 3 - 2 评分标准 ...........................................................................................................- 3 - 实验1 古典密码的实现(3学时) .................................................................... - 4 - 实验2 对称密钥密码体制的实现(6学时) .................................................... - 4 - 实验3 公开密钥密码算法的实现(6学时) .................................................... - 5 - 实验4 数字签名算法的实现(3学时) ............................................................ - 5 - 附录1:实验报告格式 ........................................................................................... - 7 -
- 1 -
黑龙江大学计算机科学技术学院——密码学基础实验报告
前言
密码学基础是一门理论性和实践性都很强的课程,各种加密算法、解密算法在现实中有广泛的应用。为了培养学生的实际工作能力,加深对各种算法的理解,本课程在古典密码、对称密钥密码算法、非对称密钥密码算法以及数字签名上均安排了上机实践的内容,使学生在掌握各种算法的原理的基础上,按以下的基本实践内容的要求完成各个算法,达到学以致用的目的。
学生在做加密算法时,对明文利用加密算法进行加密后,需要再利用解密算法进行解密,以便验证结果的正确性;在做数字签名时,对消息进行数字签名后,需要进行验证。
本课程共安排了六个实验题目,每个题目根据难易程度而学时不等。每个同学在实验报告的最后要给出对每个实验的收获、体会、希望和建议以便于不断改进教学积累经验。
- 2 -
黑龙江大学计算机科学技术学院——密码学基础实验报告
要求与评分标准
《密码学基础》课程实验的目的是为了使学生在课堂学习的同时,通过一系列的实验,使学生加深理解和更好地掌握《密码学基础》课程教学大纲要求的内容。
1 要求
在《密码学基础》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前做出思考和分析。
(2)仔细观察调试程序过程中出现的各种问题,记录主要问题,做出必要说明和分析。
(3)认真按照模板书写实验报告。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到。如有事不能出席,所缺实验一般不补。
(6)同学在做实验之前要求熟练掌握一种开发环境进行程序设计。 2 评分标准
实验的验收分为两个部分。第一部分是上机操作,包括设计结果的验收与检查。第二部分是提交书面的实验报告。具体评分标准如下:
(1)实验成绩占总成绩的20%。
(2)每个实验满分5分,验收时按完成情况打分。
- 3 -
黑龙江大学计算机科学技术学院——密码学基础实验报告
实验1 古典密码的实现(3学时)
(一)实验目的
1了解各种古典密码的加密过程和解密过程
2掌握两种古典密码加密和解密的具体实现
(二)实验类型
验证型
(三)实验内容与步骤
1用自己熟悉的语言实现程序。
2输入明文消息以及密钥。
3实现一种古典密码的加密、解密过程。
4实现另一种古典密码。
5 总结古典密码的密钥空间以及安全性。
实验2 对称密钥密码体制的实现(6学时)
(一)实验目的
1掌握对称密钥密码体制
2掌握DES加密、解密算法
3掌握子密钥的产生过程
(二)实验类型
验证
(三)实验内容及步骤
1消息的分组
在DES算法中,每一次只能对64位明文进行加密,首先对明文消息进行分组,如果消息不够64的整数倍,用零进行填充。
2初始置换
建立初始置换表,将明文通过置换表进行置换。
316次迭代运算
在每一次迭代中,包含扩展置换、子密钥产生、S-盒代替等操作。扩展操作,利用扩展规则,将32位信息扩展成48位。将扩展得到的信息与子密钥进行异或, - 4 -
黑龙江大学计算机科学技术学院——密码学基础实验报告
子密钥按照子密钥规则产生。S-盒代替,利用8个S盒将48位信息压缩成32为。在迭代中的结构采用Feistel结构。
4逆置换
将16次迭代的结果进行逆置换产生密文。
5 利用加密的逆过程进行解密,验证加密的正确性。
(四)有关说明:
1该算法加密可以是二进制,也可以是字符或者是数字,如果是字符或者是数字,首先将其转化成比特流。
实验
(一)实验目的
1掌握公开密钥密码的原理
2掌握RSA算法的加密和解密过程
3用程序实现RSA算法的加密和解密
(二)实验类型
设计型
(三)实验步骤与内容
1素数的判定
在RSA算法中,需要应用大的素数,采用Rabin-miller算法对大数进行判断,是否为素数。
2 大数的运算(小数模拟)
将大数的运算做为一个子程序,完成求逆的过程,产生公开密钥和私有密钥。 3 幂运算
在RSA算法中,需要进行幂的运算,将此运算做成子函数形式。
4 利用RSA算法进行加密,并用私有密钥进行解密。 3 公开密钥密码算法的实现(6学时)
实验4 数字签名算法的实现(3学时)
(一)实验目的:
1掌握数字签名的原理
2掌握其中一种数字签名算法
- 5 -
黑龙江大学计算机科学技术学院——密码学基础实验报告
(二)实验类型
设计型
(三)实验步骤及内容:
1 选择数字签名算法(数字签名标准DSS或者RSA数字签名)。 2 划出签名过程和验证过程的流程图。
3 输入DSS算法的各个参数
包括系统公共参数:大素数P,P-1的素因子,以及生成元。每个用户的公开密钥和私有密钥。
4 签名过程
发送方选择一个随机数r,利用签名信息计算出签名信息(R,S),将此信息发送给接受方,信息的传送可以用SOCKET实现。
5 验证过程
接受方接受信息后,要用数字签名的验证算法验证签名的正确性。 - 6 -
黑龙江大学计算机科学技术学院——密码学基础实验报告
附录1:实验报告格式
实验报告格式说明:
各位同学请在上机实验后认真撰写实验报告,实验报告成绩作为实验成绩的一部分。
- 7 -
黑龙江大学计算机科学技术学院——密码学基础实验报告
实 验 报 告 课程名称: 密码学基础
实验名称: 古典密码的实现
实验编号: 实验1
指导教师:
一、实验目的
二、实验内容与实验步骤
三、实验环境
操作系统Windows XP
开发环境VC++ 6.0
四、实验过程与分析
//主要设计思想与算法
五、实验结果总结
//测试用例、实验结果
//经验、教训、收获、体会
六、附录 班级:计算机 学号: 姓名: 组号: 实验成绩: 批阅教师签字: 实验日期: 2007 年 11月 8 日 实验时间: 18时 0分- 20时 0分
//如果你对这个实验还有其他的解决方案或设想,请在此描述。 //回答实验内容与步骤中提出的问题
8