实验一 密码算法实验
[实验目的]
1.掌握密码学中经典的对称密码算法AES、RC4的算法原理。
2.掌握AES、RC4的算法流程和实现方法。
[实验预备]
1.AES算法的基本原理和特点。
2.流密码RC4的密钥流生成以及S盒初始化过程。
[实验内容]
1. 分析AES、RC4的实现过程。
2. 用程序设计语言将算法过程编程实现。
3. 完成字符串数据的加密运算和解密运算
输入十六进制明文:11223344556677889900AABBCCDDEEFF
输入十六进制密钥:13579BDF02468ACE1234567890ABCDEF
[实验步骤]
1. 预习AES、RC4算法。
2. 写出算法流程,用程序设计语言将算法过程编程实现。
3. 输入指定的明文、密钥进行实验,验证结果。
4. 自己选择不同的输入,记录输出结果。
写出所编写程序的流程图和运行界面、运行结果。
AES加密算法流程图:
AES运行结果:
RC4加密算法流程:
RC4运行界面:
RC4运行结果:
[问题讨论]
1.改变明文或密钥中的一个比特值可能影响AES值中的多少比特?
答:明文和密钥在S盒置换时,不同的字节会替换出不同的结果。算法过程 中一共进行了10轮加密,所以改变一个比特值可能影响AES值中的80比特(8 x 10)。
2.在RC4的密钥流生成中,改变初始密钥的一个比特值可能影响输出中的多少比特?
答:初始密钥的不同会导致S盒的不同,所以可能影响输出中的256比特。
3.分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
答:对于RC4加密文件不熟悉,很多时候找不到文件,后来熟悉了保存路径就解决了问题。
实验二 SKEY协议设计实验
[实验目的]
1.掌握身份认证协议的原理和基本思想。
2.掌握SKEY协议的机制和实现方法。
[实验预备]
1.SKEY协议的作用。
2.SKEY协议的安全性分析。
3.SKEY协议的实现过程。
[实验内容]
1. 分析SKEY协议的实现过程。
2. 用程序设计语言将算法过程编程实现。
3. 演示SKEY协议的身份鉴别过程。
[实验步骤]
1. 预习SKEY协议的机制。
2. 选择和实现相应的摘要算法MD5或SHA。
3. 写出算法流程,用程序设计语言将协议过程编程实现。
4. 验证SKEY协议的身份鉴别过程。
写出所编写程序的流程图和运行界面、运行结果。
SKEY流程图
SKEY运行界面
SKEY运行结果:
[问题讨论]
1. 分析SKEY的安全性;
答:单向哈希链认证,对数据库攻击用处不大,可防止重放攻击,保证口令安全登录。
2. 分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。
答:刚开始的时候对skey协议的原理理解出现了问题,而且不熟悉MD5数字摘要算法,写出来的协议只能初始化不能登录。后来翻阅资料理解了skey协议的原理之后才解决了问题。
第二篇:密码学实验报告二
《现代密码学》实验报告