ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:331.50KB ,
资源ID:3947256      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3947256.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学学期《密码算法程序设计》试题课案.doc)为本站会员(坚持)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

学学期《密码算法程序设计》试题课案.doc

1、学院_班级_姓名_学号_密封线内不答题-第 1 页/共 15 页-成 都 信 息 工 程 大 学 考 试 试 卷2016 2017 学年第 1 学期课程名称: 密码算法程序设计 使用班级: 信安、信对 14 级 试卷形式:开卷 闭卷 试题 一 二 三 四 五 六 七 八 九 十总分得分选题要求:每道题目(100 分)每人任选 1 题(题目重选同学,实现算法的编程语言不得相同) ,即同一种编程语言中每班同学选题不能重复。请各位同学务必认真看清楚题目要求,然后认真选题。选题一旦确定,原则上不能更改题目。若需要更改题目,需提前与指导老师商量。课程设计安排:1、总的课程设计时间 7-12(或 13 周

2、) ;2、班委或者学委组织选题,并统计完成,7 周周五之前把选题表发到各班课程设计指导老师邮箱;3、大概安排二次课程设计中期检查(具体时间由各指导老师安排) 。答辩要求:1、熟悉所选题目密码算法的基本原理(密钥长度,明文长度,加密和解密算法核心过程) ;2、算法实现的核心代码;3、答辩时需要带的文档:课程设计源代码(自备电脑)和课程设计文档(纸质版)答辩安排:1、提前完成课程设计的同学,可以申请提前答辩,提前答辩次数和时间由各指导老师自行安排(具体时间和地点到时候再确定) ;2、最后答辩时间大概安排在 12 周(具体时间和地点到时通知) 。密码学课程设计指导教师联系方式:信安实验班 13 级:

3、张仕斌 邮箱 信抗 13 级: 万武南 邮箱 nan_信安 13 级: 张金全 邮箱 -第 2 页/共 16 页-选择下面其中一题,按要求完成课程设计。第一大类:(按照每道题目要求编写密码算法过程实现代码,密码算法不可调用编译软件现有密码算法实现接口,可以 DOS(控制台)界面)1. 基于 DES 算法密码工作模式实现(共 5 题)基于 DES 算法的 ECB、CBC、OFB、CFB、CTR 5 种密码工作模式,实现其中一种模式的加密和解密功能。功能要求:(1)对于 ECB、CBC 和 CTR 模式,明文字符输入至少大于 8 个字符长度,明文尾部必须进行填充。例如 ECB 模式下,DES 算法

4、 8 个字符一组,若输入 10 个字符“1111111111”,则需要分为 2 组,第 1 组 8 个字符,第 2 组 2 个字符,则需要填充。若输入 8 个字符“11111111” ,刚好 1 组,则需要填充增加 1 组明文。(2)尾部填充方法为除最后一个字符填充字符数,其余全填充为“0”字符。例如输入明文“1111111111” ,第 1 组明文输入“11111111” ,第二组填充之后明文“11000006”.如输入明文“11111111” ,第 1 组明文输入“11111111” ,第二组填充之后明文“00000008”.(3)对于 OFB、CFB 模式,每次反馈长度可以设定为 8 b

5、its;输入明文长度至少为32 bits; 明文分组长度由反馈长度确定。(4)CBC 、OFB、CFB、CRT 的 IV 初始变量为输入 8 个字符;(5)CRT 模式下,计数器初值可输入或者随机生成(二进制数或者 16 进制数) ,但后续计数器值自动加 1 操作(解释:上次有学生随机数是 8 个字符性质的数字,然后在字符数字的基础上加 1)(6)DES 算法下不同模式下需要的加密或解密功能。DES 加密和解密都用函数实现。输出要求:(1)密文解密中,最后一组密文解密出明文显示,需要去掉填充字符后的明文。(2)中间结果显示要求:ECB 模式加密过程显示出每组明文(字符)和密文(十六进制) ,解

6、密过程显示出每组解密的密文(十六进制)和明文(字符) 。CBC 模式加密过程显示出每组待加密的明文(字符) ,明文对应的 16 进制表示,与明文异或的数的 16进制表示,每次 DES 加密的输入(即与反馈密文异或的值,十六进制) ,密文(十六进制) ;解密过程显示出每组待解密密文,DES 解密之后输出(十六进制) ,与解密输出值异或的数的 16 进制以及与密文反馈值异或后明文(字符) 。(3)对于 OFB、CFB、CTR 模式,输出 DES 算法加密的输入和输出的数的 16 进制,并把每组明文和密文,以及移位寄存器的中间结果的 16 进制输出来。编程要求:C、C+、Java 、Ruby 实现控

7、制台编程语言题目列表:(1) 基于 DES 算法 ECB 运行模式实现学院_班级_姓名_学号_密封线内不答题-第 3 页/共 15 页-(2) 基于 DES 算法 CBC 运行模式实现(3) 基于 DES 算法 OFB 运行模式实现(4) 基于 DES 算法 CFB 运行模式实现(5) 基于 DES 算法 CTR 运行模式实现2. DES 算法加密和解密实现(共 1 题)实现 DES 算法加密和解密过程的详细展示。功能要求:(1)输入 8 个字符做明文,输入 8 个字符作为密钥;例如学号后 8 位,如“11111111”;(2)把输入的字符转换为二进制;(3)E 扩展、与密钥异或、查找 S 盒

8、、P 置换、与前面 32 位异或、IP 逆置换等都要求写成函数; PC-1,循环移位,PC-2 写成函数;DES 密钥扩展整个过程、加密和解密整个过程分别写成函数,调用变换函数完成。(4)完成 DES 加密过程,输入明文,能加密得到正确密文(密文以十六进制显示)(5)完成 DES 解密过程,输入密文(十六进制) ,能解密得到正确明文(字符形式) 。(6)明文加密之后密文,必须能正确解密出相应明文(7)操作简单,界面美观。输出要求:(1)用函数实现把字符与二进制相互转换过程,并输出转换后的结果;用函数实现十六进制与二进制相互转换过程。(2)中间结果包括:输出一轮加密中的 IP 初始置换、E 盒扩

9、展、与子密钥异或、S 盒替代、P 盒置换每个处理之后的值,以及一轮迭代之后左半部分和右半部分的值;密钥扩展过程中第 1 轮子密钥的 PC-1 选择置换、PC-2 选择置换、循环左移位后的值(可以二进制显示,也可以十六进制显示).编程要求:C、C+、Java 、Ruby 等实现控制台编程语言题目列表:(6) DES 算法加密和解密实现3. 3DES 算法加密和解密实现(共 4 题)实现 3DES 算法 EEE3、EEE2 、EDE3、EDE2 四种模式中一种。其中 EEE3 表示 3个密钥,EEE2 表示 2 个密钥。(1)实现 3DES 算法的加密和解密,完成 DES 加密过程,输入明文,能加

10、密得到正确密文(密文以十六进制显示) 。完成 DES 解密过程,输入密文(十六进制) ,能解密得到正确明文(字符形式) 。-第 4 页/共 16 页-(2)明文加密之后密文,必须能正确解密出相应明文(3)明文尾部必须进行填充。例如 ECB 模式下,DES 算法 8 个字符一组,若输入10 个字符“1111111111” ,则需要分为 2 组,第 1 组 8 个字符,第 2 组 2 个字符,则需要填充。若输入 8 个字符“11111111” ,刚好 1 组,则需要填充增加 1 组明文。(4)尾部填充方法为除最后一个字符填充字符数,其余全填充为“0”字符。例如输入明文“1111111111” ,第

11、 1 组明文输入“11111111” ,第二组填充之后明文“11000006”。如输入明文“11111111” ,第 1 组明文输入“11111111 ”,第二组填充之后明文“00000008” 。(5)DES 算法加密和解密,调用变换函数完成。(6)操作简单,界面美观。输出要求:(1)用函数实现把字符与二进制相互转换过程,并输出转换后的结果;用函数实现十六进制与二进制相互转换过程。(2)中间结果包括:3DES 算法中,3 次调用加密或解密的输出(十六进制) 。编程要求:C、C+、Java 、Ruby 等实现控制台编程语言题目列表:(7) 基于 EEE3 模式的 3DES 算法加密和解密实现(

12、8) 基于 EEE2 模式的 3DES 算法加密和解密实现(9) 基于 EDE3 模式的 3DES 算法加密和解密实现(10) 基于 EDE2 模式的 3DES 算法加密和解密实现4. AES 算法加密和解密实现(共 3 题)实现 AES 算法加密和解密详细过程。功能要求:(1)输入 16 个字符做明文,128、192、256bits 3 种密钥长度可任意选择一种密钥长度。例如选择 128bits 密钥,可以输入 16 个字符作为密钥;例如 “1111111111111111”;(2)输入明文和密钥字符转换为十六进制(3)轮密钥加、字节替代、列混合、行移位、X 乘; AES 密钥扩展整个过程、

13、加密和解密整个过程分别写成函数,调用变换函数完成。(4)完成 AES 加密过程和 AES 解密过程;(5)明文加密之后密文,必须能正确解密出相应明文,同时参照 fips-197 确定代码编写的正确性。(6)操作简单,界面美观输出要求:(1)输出的格式和要求参照 fips-197。即密钥加、字节替代、行移位、列混合和它们的逆操作,以及密钥扩展过程的每一步操作后都要输出相应的值(展示一轮就可以,十六进制) 。学院_班级_姓名_学号_密封线内不答题-第 5 页/共 15 页-(2)密钥加、字节替代、行移位、列混合等写成函数;(3)可以在标准的基础上进行改变,使得演示更直观。例如列混合的 X 乘法部分

14、可以细化,字节替代部分还可以给出计算过程等等。编程要求:C、C+、Java 、Ruby 等实现控制台编程语言题目列表:(11) 128 bits 密钥长度的 AES 密码算法实现(12) 192 bits 密钥长度的 AES 密码算法实现(13) 256 bits 密钥长度的 AES 密码算法实现5. 基于 AES 算法密码工作模式实现(共 5 题)基于密钥长度 128bits 的 AES 算法的 ECB、CBC 、OFB、CFB 、CTR 5 种密码工作模式中的一种模式,实现加密和解密功能。功能要求:(1)明文输入字符长度至少大于 16 字符长度,尾部必须进行填充。例如 ECB 模式下,AE

15、S 算法 16 个字符一组,若输入 20 个字符“11111111111111111111 ”,则需要分为 2 组,第 1 组 16 个字符,第 2 组 4 个字符,则需要填充。若输入 16 个字符“1111111111111111”,刚好 1 组,则需要填充增加 1 组明文。(2)尾部填充方法为全部填充“0”字符数。例如输入明文“11111111111111111111”,第 1 组明文输入“1111111111111111 ”,第二组填充之后明文“1111000000000000”.如输入明文“1111111111111111” ,第 1 组明文输入“11111111”,第二组填充之后明文

16、“0000000000000000”.(3)对于 OFB、CFB 模式,每次反馈长度可以设定为 8 bits;输入明文长度至少为32 bits;明文分组长度由反馈长度确定。(4)CBC 、OFB、CFB、CRT 的 IV 初始变量为输入 16 个字符;(5)CRT 模式下,计数器初值可输入或者随机生成(二进制数或者 16 进制数) ,但后续计数器值自动加 1 操作(6)AES 算法下不同模式下需要的加密或解密功能。AES 加密和解密都用函数实现。输出要求:(1)密文解密中,最后一组密文解密出明文显示,需要去掉填充字符后的明文。(2)中间结果显示要求:ECB 模式加密过程显示出每组明文(字符)和

17、密文(十六进制) ,解密过程显示出每组解密的密文(十六进制)和明文(字符) 。CBC 模式加密过程显示出每组待加密的明文(字符) ,明文对应的 16 进制表示,与明文异或的数的 16 进制表示,每次 DES 加密的输入(即与反馈密文异或的值,十六进制) ,密文(十六进制) ;解密过程显示出每组待解密密文,DES 解密之后输出(十六进制) ,与解密输出值异或的数的 16 进制以及与密文反馈值异或后明文(字符) 。(3)对于 OFB、CFB、CTR 模式,输出 AES 算法加密的输入和输出的数的 16 进制,并把每组明文和密文,以及移位寄存器的中间结果的 16 进制输出来。编程要求:C、C+、Ja

18、va 、Ruby 等实现控制台编程语言题目列表:-第 6 页/共 16 页-(14) 基于 AES 算法 ECB 运行模式实现(15) 基于 AES 算法 CBC 运行模式实现(16) 基于 AES 算法 OFB 运行模式实现(17) 基于 AES 算法 CFB 运行模式实现(18) 基于 AES 算法 CTR 运行模式实现6. SM4 算法加密和解密实现(共 1 题)实现 SM4 算法加密和解密详细过程。功能要求:(1)输入 16 个字符做明文,例如 “1111111111111111”;128bits 可以输入 16 个字符作为密钥; (2)输入明文和密钥字符转换为十六进制(3)轮函数变换

19、 F(合成置换、非线性变换 S 盒查找、线性变换 L) ,密钥扩展整个过程、加密和解密整个过程分别写成函数,调用变换函数完成。(4)完成 SM4 加密过程和 SM4 解密过程;(5)明文加密之后密文,必须能正确解密出相应明文,并与书中例题对比确认代码编写是否正确。(6)操作简单,界面美观输出要求:(1)输出 F 函数的各个变换,即合成置换、非线性变换 S 盒查找、线性变换 L,以及密钥扩展过程的每一步操作后都要输出相应的值(展示一轮就可以,十六进制) 。(2)合成置换、非线性变换 S 盒查找、线性变换 L 等写成函数;编程要求:C、C+、Java 、Ruby 等实现控制台编程语言题目列表:(1

20、9) SM4 算法加密和解密实现6. 各类 Hash 算法实现(共 5 题)实现 MD5、SHA-1、SHA-256、SHA-384、SHA-512 以及 SHA-3 哈希算法功能要求:(1)输入字符作为消息,输出固定长度的哈希值;(2)把输入的字符转换为二进制;(3)完成填充过程;(4)消息的长度可以在 1-200 个字符内;(5)完成哈希值计算;(6)操作简单,界面美观(7)与标准进行对比,验证程序代码的正确性。输出要求:学院_班级_姓名_学号_密封线内不答题-第 7 页/共 15 页-(1)把输入的字符转换为二进制并输出,输出为 16 进制数;(2)根据所选择 Hash 算法不同,完成消

21、息的填充。例如 SHA 等算法,按 512 比特一组输出,输出为 16 进制数;SHA-512 则按 1024 比特一组输出; SHA-3 算法则按照算法要求给出填充过程;(3)压缩函数的输出参考标准。涉及到进一步细化的操作要给出详细的过程。比如第一个寄存器 A 的输出要细化,要求中间涉及到的每一个变量及每一步的过程结果都有输出(一轮变换中间结果) 。编程要求:C、C+、Java 、Ruby 等实现控制台编程语言题目列表:(20)MD5 哈希算法实现(21) SHA-1 哈希算法实现(22)SHA-256 哈希算法实现(23)SHA-384 哈希算法实现(24)SHA-512 哈希算法实现(2

22、5)SHA-3 消息摘要算法实现7. RSA 加密算法及数字签名算法(共 2 题)下面的描述以 RSA 加密算法为例,签名算法可以参考相关要求。功能要求:(1)产生两个奇数,判断是否是素数。素数要求:一个介于 210-211,一个介于 216-217。先用小于 1000 以内的素数去试除,再使用 Miller-Rabin 概率检测算法进行检测,(2)计算得到 n=pq 的值和 (n)的值。(3)设定加密用的参数 e=17,用辗转相除法求得解密用的参数 d。(4)设默认要加密的明文为 32655,使用模重复平方法对该明文进行加密。(5)用平方乘算法对第(4)加密后的密文进行解密。输出要求:(1)

23、输出奇数的产生过程,用函数实现产生满足要求的奇数;(2)输出用小素数试除的判断过程,并输出每次试除之后的余数,用函数实现一次试除并返回试除之后的余数;(3)Miller-Rabin 概率检测算法运行 5 次,输出检测过程及结果。用函数实现一次Miller-Rabin 概率检测算法并返回检测结果;(4)如果不是奇素数,输出下一个奇数产生的规则;(5)用函数实现辗转相除法,并返回参数 d;(6)用函数实现模重复平方法,并返回密文;(7)用函数实现平方乘算法,并返回明文;(8)输出显示可以是 DOS 界面也可以是对话框等界面。-第 8 页/共 16 页-编程要求:C、C+、Java 、Ruby 等实

24、现控制台编程语言题目列表:(26)RSA 算法加密解密实现(27)RSA 签名算法实现8. ElGamal 加密算法及数字签名算法(共 2 题)下面的描述以 RSA 加密算法为例,签名算法可以参考相关要求即可。功能要求:(1)产生一个奇数 p,判断是否是素数。素数要求介于 214-215。先用小于 20 的素数去试除,再使用 Miller-Rabin 概率检测算法进行检测,(2)求得模 p 的一个原根,要求原根的值介于 25-210;(3)设定用户的私钥 介于 29-211, 。使用平方乘算法计算得到用户的公钥 y.(4)设默认要加密的明文为 32655,加密时用户选择的随机数 k 介于 25

25、-27,使用模重复平方法对该明文进行加密。(5)用平方乘算法对第(4)加密后的密文进行解密。输出要求:(1)输出奇数的产生过程,用函数实现产生满足要求的奇数;(2)输出用小素数试除的判断过程,并输出每次试除之后的余数,用函数实现一次试除并返回试除之后的余数;(3)Miller-Rabin 概率检测算法运行 5 次,输出检测过程及结果。用函数实现一次Miller-Rabin 概率检测算法并返回检测结果;(4)如果不是奇素数,输出下一个奇数产生的规则;(5)输出产生模 p 的一个原根的过程;(6)输出选择的私钥 x,并输出使用平方乘算法计算得到用户的公钥 y 的过程;(7)输出用户选择的随机数 k

26、,以及使用模重复平方法对该明文进行加密的过程。编程要求:C、C+、Java 、Ruby 等实现控制台编程语言题目列表:(28)ELGmal 算法加密和解密实现(29)ELGmal 签名算法实现9. DH 密钥协商算法功能要求:(1)产生一个奇数 p,判断是否是素数。素数要求介于 214-215。先用小于 20 的素数去试除,再使用 Miller-Rabin 概率检测算法进行检测,(2)求得模 p 的一个原根,要求原根的值介于 25-210;(3)输出双方选择的随机数,随机数介于 25-27,使用模重复平方法进行计算,输出双方的计算结果;学院_班级_姓名_学号_密封线内不答题-第 9 页/共 1

27、5 页-(4)网络传输方面,可以是 C/S 模式,也可以是 B/S 模式;(5)输出最后协商的密钥;输出要求:(1)素数及原根的选择,给出相应算法实现中间结果;(2)输出使用模重复平方法进行计算的过程和结果。题目列表:(30)DH 密钥协商算法实现-第 10 页/共 16 页-第二大类(组件的图形化界面设计,算法可调用已有编程接口完成,也可自行编写密码算法代码)1.密码工作模式演示程序实现 (共 15 道题)使用(如 Java、VC+,C#, Python,Perl、Php 等)编程语言实现ECB、CBC、OFB、CTR、CFB 5 种中任意一种密码工作模式的图形化演示程序。下面以基于 DES

28、 算法的 CBC 工作模式为例说明具体功能要求。分组加密明文分组 P1密文分组 C1K分组加密明文分组 P2密文分组 C2K分组加密明文分组 PN密文分组 CNK. . .( a ) 加密初始变量 ( I V )密文分组 C1密文分组 C2密文分组 CN分组解密K分组解密K分组解密K. . .明文分组 P1明文分组 P2明文分组 PN( b ) 解密初始变量 ( I V )图 1 CBC 模式的加密解密过程基本要求:1、如图 1 可视化实现 CBC 工作模式。图 1 的分组加密和分组解密可以直接调用编程语言 DES 算法实现提供的接口函数实现,不需要自行编写密码算法。但不能直接选择调用编程语言 DES-CBC 模式的接口直接实现。2、图形化界面设计要求:(1)采用图形化界面演示 CBC 模式的加密和解密运行演示过程(参考图 2 所示。还可以更加详细,比如输出界面中初始向量和明文分组对应字符的 16 进制数值,以及异或之后的结果) ,至少加密和解密 4 组明文,若最后 1 组不够分组长度,尾部需要自行进行填充,填充方法可参考密码学教材选择相关填充方法。(2)加密算法密钥和初始变量 IV 的输入界面.

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。