当前位置:文档之家› 应用密码学实验指导书

应用密码学实验指导书

《应用加密算法与认证技术》实验指导书
实验一加密模式(一)
[实验目的]
1.了解密码算法的分组链接模式。

2.掌握和理解ECB模式、CBC模式的结构和算法原理。

[实验内容]
1. 分析ECB模式和CBC模式的加密过程。

2. 用程序设计语言将算法过程编程实现。

3. 输入明文:I do like this book
加密算法E:异或⊕,密钥为cryption;
移位,密钥为5
两种填充模式:(1)0
(2)密文挪用
初始化向量IV:goodluck
用两种模式进行加密,输出相应的密文。

[实验步骤]
1. 预习ECB模式和CBC模式加密模式的算法。

2. 写出算法流程,用程序设计语言将算法过程编程实现。

3. 输入指定的明文、密钥或初始化向量,选择相应的填充模式,输出密文,验证结果。

4. 自己选择不同的输入,记录输出结果。

[问题讨论]
1. 总结两种加密模式的特点,错误扩散进行分析;
2. 分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。

实验二加密模式(二)
[实验目的]
1.了解密码算法的分组链接模式。

2.掌握和理解CFB模式、OFB模式的结构和算法原理。

[实验内容]
1. 分析CFB模式和OFB模式的加密过程。

2. 用程序设计语言将算法过程编程实现。

3. 输入明文:I do like this book
加密算法E:异或⊕,密钥为cryption;
移位,密钥为5
两种填充模式:(1)0
(2)密文挪用
初始化向量IV:goodluck
输出反馈位数n:8或16
用两种模式进行加密,输出相应的密文。

[实验步骤]
1. 预习CFB模式和OFB模式加密模式的算法。

2. 写出算法流程,用程序设计语言将算法过程编程实现。

3. 输入指定的明文、密钥或初始化向量,选择相应的填充模式,输出密文,验证结果。

4. 自己选择不同的输入,记录输出结果。

[问题讨论]
1. 总结两种加密模式的特点,错误扩散进行分析;
2. 分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。

实验三素性检测
[实验目的]
1.公钥密码算法需要素数,任何合理规模的网络也需要许多这样的素数,了解如何对产生的随机数进行素性检测的方法。

2.掌握和理解Solovag-Strassen算法、Lehmann算法和Rabin-Miller素性检测算法的原理。

[实验内容]
1. 分析Solovag-Strassen算法、Lehmann算法和Rabin-Miller算法的素性检测的原理与测试过程。

2. 写出算法流程,用程序设计语言将算法过程编程实现。

3. 对输入的随机数,选择素性检测算法进行素性检测。

[实验步骤]
1. 预习Solovag-Strassen算法、Lehmann算法和Rabin-Miller素性检测算法。

2. 用程序设计语言将算法过程编程实现。

3. 输入十位以上的随机数,分别用三个算法进行素性检测。

[问题讨论]
1. 总结三种素性检测算法的特点,比较他们的性能;
2. 分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。

实验四序列密码
[实验目的]
1.掌握线性反馈移位寄存器LFSR生成随机序列的原理。

2.掌握和理解序列密码的加密过程。

[实验内容]
1. 分析n-位LFSR生成m=2n-1位长伪随即序列的算法过程。

2. 用程序设计语言将算法过程编程实现。

输入明文:I do like this book
加密算法E:yi=(x
i +k
i%m
)%26
密钥:32-LFSR的输出,初始值:good
本原多项式:x32+x7+x5+x3+x2+x+1
输出相应的密文。

[实验步骤]
1. 预习n-位LFSR和Vigenere加密算法的原理。

2. 写出算法流程,用程序设计语言将算法过程编程实现。

3. 输入指定的明文和抽头序列,输出密文,验证结果。

4. 自己选择不同的明文输入,选择不同本原多项式的抽头序列,记录输出结果。

[问题讨论]
1. 总结序列密码算法的特点;
2. 分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。

相关主题