密码学实验讲义及实验报告2014

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

密码学基础

实验指导书

黑龙江大学计算机科学技术学院

2013年3月

目录

前言........................................................................................................................... - 2 -要求与评分标准....................................................................................................... - 3 -1要求. (3)

2评分标准 (3)

实验1 古典密码的实现(3学时) .................................................................... - 4 -实验2 对称密钥密码体制的实现(6学时) .................................................... - 4 -实验3 公开密钥密码算法的实现(6学时) .................................................... - 5 -实验4 数字签名算法的实现(3学时) ............................................................ - 5 -附录1:实验报告格式 ........................................................................................... - 7 -

前言

密码学基础是一门理论性和实践性都很强的课程,各种加密算法、解密算法在现实中有广泛的应用。为了培养学生的实际工作能力,加深对各种算法的理解,本课程在古典密码、对称密钥密码算法、非对称密钥密码算法以及数字签名上均安排了上机实践的内容,使学生在掌握各种算法的原理的基础上,按以下的基本实践内容的要求完成各个算法,达到学以致用的目的。

学生在做加密算法时,对明文利用加密算法进行加密后,需要再利用解密算法进行解密,以便验证结果的正确性;在做数字签名时,对消息进行数字签名后,需要进行验证。

本课程共安排了六个实验题目,每个题目根据难易程度而学时不等。每个同学在实验报告的最后要给出对每个实验的收获、体会、希望和建议以便于不断改进教学积累经验。

要求与评分标准

《密码学基础》课程实验的目的是为了使学生在课堂学习的同时,通过一系列的实验,使学生加深理解和更好地掌握《密码学基础》课程教学大纲要求的内容。

1 要求

在《密码学基础》的课程实验过程中,要求学生做到:

(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前做出思考和分析。

(2)仔细观察调试程序过程中出现的各种问题,记录主要问题,做出必要说明和分析。

(3)认真按照模板书写实验报告。

(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。

(5)实验课程不迟到。如有事不能出席,所缺实验一般不补。

(6)同学在做实验之前要求熟练掌握一种开发环境进行程序设计。

2 评分标准

实验的验收分为两个部分。第一部分是上机操作,包括设计结果的验收与检查。第二部分是提交书面的实验报告。具体评分标准如下:

(1)实验成绩占总成绩的20%。

(2)每个实验满分5分,验收时按完成情况打分。

实验1 古典密码的实现(3学时)

(一)实验目的

1 了解各种古典密码的加密过程和解密过程

2 掌握两种古典密码加密和解密的具体实现

(二)实验类型

验证型

(三)实验内容与步骤

1 用自己熟悉的语言实现程序。

2 输入明文消息以及密钥。

3 实现一种古典密码的加密、解密过程。

4 实现另一种古典密码。

5 总结古典密码的密钥空间以及安全性。

实验2 对称密钥密码体制的实现(6学时)

(一)实验目的

1 掌握对称密钥密码体制

2 掌握DES加密、解密算法

3 掌握子密钥的产生过程

(二)实验类型

验证

(三)实验内容及步骤

1 消息的分组

在DES算法中,每一次只能对64位明文进行加密,首先对明文消息进行分组,如果消息不够64的整数倍,用零进行填充。

2 初始置换

建立初始置换表,将明文通过置换表进行置换。

3 16次迭代运算

在每一次迭代中,包含扩展置换、子密钥产生、S-盒代替等操作。扩展操作,利用扩展规则,将32位信息扩展成48位。将扩展得到的信息与子密钥进行异或,

子密钥按照子密钥规则产生。S-盒代替,利用8个S盒将48位信息压缩成32为。在迭代中的结构采用Feistel结构。

4 逆置换

将16次迭代的结果进行逆置换产生密文。

5利用加密的逆过程进行解密,验证加密的正确性。

(四)有关说明:

1 该算法加密可以是二进制,也可以是字符或者是数字,如果是字符或者是数字,首先将其转化成比特流。

实验3 公开密钥密码算法的实现(6学时)

(一)实验目的

1 掌握公开密钥密码的原理

2 掌握RSA算法的加密和解密过程

3 用程序实现RSA算法的加密和解密

(二)实验类型

设计型

(三)实验步骤与内容

1 素数的判定

在RSA算法中,需要应用大的素数,采用Rabin-miller算法对大数进行判断,是否为素数。

2大数的运算(小数模拟)

将大数的运算做为一个子程序,完成求逆的过程,产生公开密钥和私有密钥。3幂运算

在RSA算法中,需要进行幂的运算,将此运算做成子函数形式。

4利用RSA算法进行加密,并用私有密钥进行解密。

实验4 数字签名算法的实现(3学时)

(一)实验目的:

1 掌握数字签名的原理

2 掌握其中一种数字签名算法

相关文档
最新文档