欢迎来到天天文库
浏览记录
ID:42467900
大小:200.50 KB
页数:16页
时间:2019-09-15
《对称密码体制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、云南大学数学与统计学实验教学中心实验报告课程名称:计算机网络实验学期:XAM19学年第二学期成绩:指导教师:陆正福学生姓名:卢富毓学生学号:zeienimi实验名称:对称密码体制实验要求:必做实验学时:4学时实验编号:心口实验日期:2013/3/28完成日期:2013/6/6学院:数学与统计学院专业:信息与计算科学年级:3•■级一、实验目的:通过实验常握AES加密实验的构造算法,以及其重要思想。二、实验内容:查阅资料,实现AES密码体制的编码算法、译码算法、子密钥生成算法三、实验环境四、靈过程(请学生认真填写):实验过程、结果以及相应的
2、解释:1.预备知识密码学中的高级加密标准(AdvancedEncryptionStandard,AES),是一种对称加密的方法。木实验使用Java平台来编写的,虽然在java中已经很好的实现了AES等安全机制,但是为了了解如何实现,还是写了一个AES加密的java程序。2.实验过程A、原理分析:大多数AES计算是在一个特别的有限域完成的。AES加密过程是在一个4X4的字节矩阵上运作,这个矩阵又称为“体(state)",其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)o(Rijndael加密法因支持更大的区块,其矩
3、阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:AddRoundKey—矩阵屮的每一个字节都与该次冋合金钥(roundkey)做XOR运算;每个子密钥由密钥生成方案产生。SubBytes-通过二个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。ShiftRows-将矩阵中的每个横列进行循环式移位。MixColumns—为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。最后一个加密循环中省略MixColumns步骤,而以另一个AddRoundKey取代。B、具体代码如下:
4、〃如6.2,若是将每一行看做是一个对象的话〃具体实现的整体结构思想如此下图■田AES1>1>1>
5、j
6、Aesjava—[7]AesCipherAndlnvCipherjava[J]generateKeyjava冈KEYSIZE.javai[>jT]testAes.java—・测试程序密钥生成结果如下:*I11II■l/J丄明文1:AES11212121212121明文2:AESlwrwe2432vl343字节式加密,密文:A滝馬亦>敢鏗SO釦删饉胸?A?60坨?O蹇回HY撼Oc?字符串式加密,密文:96000e51378de53fa9b
7、68195446bb61eebb9dee8605e3acd55b7(解密后明文:AES11212121212121解密后明文:AES2wrwe2432v!343************************料则2*****************************明文:uuid=FSFASW24S-0342-FEW3-3F33-F44F2SE523432D字节式加密,密文:腹<粮回篩d?O]>z埠砸?>榻錯?怔橢輝扌帶?K[解密:uuid=FSFASW24S-0342-FEW3-3F33-F44F2SE523432D〃得到结果
8、与真实结果一样。说明正确具体代码如下:由于所写代码过多,所以,本代码附在最后!五、实验总结1.遇到的问题及分析:遇到问题:其实这次编写程序遇到的问题还是蛮多的!例如S盒子的生成、逆$盒子的生成,算法中的每一步轮转,密钥生成,密钥长度等都遇到了问题。由于时间仓促,这里就不一一举出来了。分析并解决:■通过图书馆查询相应资料以及课本查阅得到了一些解决。同时在网上查找到了一使用€41编写的程序代码以及算法理论。得到了解决。2.体会和收获。编程实现了BK,个人感觉4实现起来还是比较困难的(对于我来说)因为他中间的矩阵操作复杂。当然收获就是能有一定
9、能力来编写这样的一个程序了。六、参考文献计算机网络课本。七、教师评语:附录:OR代码**不木那那*那**木*那*不那*木**木不那*那**Aes.java木卒不不不那不**不木**不不那不**不木卒*不不那不**packageAES;publicclassAes{privateintNb;//privateintNk;//privateintNr;//以32位为单位的字长以32位为单位的密钥长度轮数privatebyte[]key;//密钥privatebyte[][]privatebyte[][]privatebyte[][]priv
10、atebyte[][]privatebyte[][]Sbox;//S盒矩阵iSbox;//s盒逆矩阵w;//密钥调度表Rcon;//轮常数表State;//状态矩阵/*/privatevoidSetNbNk
此文档下载收益归作者所有