AES加解密实验报告

AES加解密实验报告

ID:39453748

大小:361.01 KB

页数:12页

时间:2019-07-03

AES加解密实验报告_第1页
AES加解密实验报告_第2页
AES加解密实验报告_第3页
AES加解密实验报告_第4页
AES加解密实验报告_第5页
资源描述:

《AES加解密实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《信息安全体系》课程设计报告班级:物联网2013级1班姓名:学号:课程设计题目:AES加密算法所属课程:物联网信息安全实验室(中心):软件实验室60801指导教师:完成时间:2016年6月6日1.问题分析和任务定义问题分析:´AES是一个对称分组密码算法,根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128、AES-192和AES-256。´AES加密过程涉及到4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。解密过程分

2、别为对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。´AES算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES使用了几种不同的技术来实现置换和替换。任务(功能)定义:(数据结构部分)(1)明文转换:Utf8.encode(strUni);//将得到的明文或密钥通过Utf8编码Utf8.decode(strUtf);//将UTF-8编码的字符串解码成多字节Unicode字符Base64.encode=function(str,utf8encode)//将UTF-8编码得到的字符通过B

3、ase64编码Base64.decode=function(str,utf8decode)//将UTF-8解码得到的字符通过Base64解码(2)轮密钥加:Aes.addRoundKey=function(state,w,rnd,Nb)//将128位的state矩阵按位与128位密钥异或(1)字节代替:Aes.subBytes=function(s,Nb)//将状态矩阵的每个字节,进行4*Nb矩阵的遍历并替换(2)列混淆:Aes.mixColumns=function(s,Nb)//将状态矩阵逐列混合(3)行位移:Aes.shiftRows=f

4、unction(s,Nb)//状态矩阵的第0行不变,第1行向左移一个字节,第2行向左移两个字节,第三行向左移三个字节(4)密钥扩展:Aes.keyExpansion=function(key)//将输入的密钥扩展为11组128位密钥组,其中第0组为输入密钥本身1.环境简介开发环境:WebStrom11.0.2环境简介:WebStorm是jetbrains公司旗下一款JavaScript开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScriptIDE”等。与IntelliJIDEA同源,

5、继承了IntelliJIDEA强大的JS部分的功能。2.程序设计根据算法密钥的长度,AES有3种不同方案用以满足不同的场景需求,分别是AES-128、AES-192和AES-256。本次内容主要对AES-128进行设计,另外两种的思路基本一样,只是密钥扩展的过程会稍有不同,加解密的轮数会适当增加,但加解密的操作都是一样的。(1)AES加解密流程(2)字节替代字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。主要算法:Aes.subBytes=function(s,Nb){for(varr=0;r<4;r++){for(varc=0;

6、c

7、个字节对应的值只与该列的4个值有关系。此处的乘法和加法都是定义在GF(28)上的,需要注意如下几点:1)将某个字节所对应的值乘以2,其结果就是将该值的二进制位左移一位,如果该值的最高位为1(表示该数值不小于128),则还需要将移位后的结果异或00011011;2)乘法对加法满足分配率3)此处的矩阵乘法与一般意义上矩阵的乘法有所不同,各个值在相加时使用的是模2加法(相当于是异或运算)。主要算法:Aes.mixColumns=function(s,Nb){for(varc=0;c

8、rray(4);for(vari=0;i<4;i++){a[i]=s[i][c];b[i]=s[i][c]&0x80?s[i][c]<<1^0x011

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。