- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AES加解密实验报告教程
《信息安全体系》课程设计报告
班 级: 物联网 2013 级 1 班
姓 名:
学 号:
课程设计题目: AES加密算法
所 属 课 程 : 物联网信息安全
实验室(中心): 软件实验室60801
指 导 教 师 :
完 成 时 间 : 2016 年 6 月 6 日
问题分析和任务定义
问题分析:
AES是一个对称分组密码算法,根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128、AES-192和AES-256。
AES加密过程涉及到4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。解密过程分别为对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。
AES 算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES 使用了几种不同的技术来实现置换和替换。
任务(功能)定义:(数据结构部分)
明文转换:
Utf8.encode(strUni); //将得到的明文或密钥通过Utf8编码
Utf8.decode(strUtf); //将UTF-8编码的字符串解码成多字节Unicode字符
Base64.encode = function(str, utf8encode) //将UTF-8编码得到的字符通过Base64编码
Base64.decode = function(str, utf8decode) //将UTF-8解码得到的字符通过Base64解码
轮密钥加:Aes.addRoundKey = function(state, w, rnd, Nb) // 将128位的state矩阵按位与128位密钥异或
字节代替:Aes.subBytes = function(s, Nb) //将状态矩阵的每个字节,进行4*Nb矩阵的遍历并替换
列混淆:Aes.mixColumns = function(s, Nb) //将状态矩阵逐列混合
行位移:Aes.shiftRows = function(s, Nb) //状态矩阵的第0行不变,第1行向左移一个字节,第2行向左移两个字节,第三行向左移三个字节
密钥扩展:Aes.keyExpansion = function(key) //将输入的密钥扩展为11组128位密钥组,其中第0组为输入密钥本身
环境简介
开发环境:WebStrom 11.0.2
环境简介:WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、???最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。
程序设计
根据算法密钥的长度,AES有3种不同方案用以满足不同的场景需求,分别是AES-128、AES-192和AES-256。本次内容主要对AES-128进行设计,另外两种的思路基本一样,只是密钥扩展的过程会稍有不同,加解密的轮数会适当增加,但加解密的操作都是一样的。
(1)AES加解密流程
(2)字节替代
字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。
主要算法:
Aes.subBytes = function(s, Nb) {
for (var r=0; r4; r++) {
for (var c=0; cNb; c++)
s[r][c] = Aes.sBox[s[r][c]];
}
return s;
};
(3)行位移
第一行保存不变,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。
主要算法:
Aes.shiftRows = function(s, Nb) {
var t = new Array(4);
for (var r=1; r4; r++) {
for (var c=0; c4; c++) t
您可能关注的文档
- 恒温水槽操作与维护.doc
- 情态动词系统讲解.ppt
- Access基本编辑方法教程.pptx
- 恒定电流 电学实验生.docx
- Access完整选择题教程.doc
- 9标施工测量方案教程.doc
- ACCESS数据库中常见的SQL语句汇总教程教程.doc
- 憎水性带电检测工具研制的必要及可行性.doc
- Access2003入门教程教程.doc
- Access2003教程(完整版)教程.doc
- 北京建筑大学《材料类创新创业课程》2023-2024学年第一学期期末试卷.doc
- 过敏性急性冠脉综合征.docx
- 北京建筑大学《ICAO英语(2)》2023-2024学年第一学期期末试卷.doc
- 北京市石景山区2023_2024学年高二数学上学期期末考试试卷含解析.doc
- 江西省上饶市弋阳县第一中学、横峰中学、铅山县第一中学2024-2025学年高二下学期4月月考数学试卷(含详解).docx
- 2024-2025学年江苏省苏州新区一中初二(上)英语10月月考试题及答案.pdf
- 安徽省C20教育联盟2025届九年级下学期中考“功夫”卷(三)数学试卷(含解析).docx
- 北京汇佳职业学院《中学历史教学论》2023-2024学年第一学期期末试卷.doc
- 安徽省C20教育联盟2025年九年级下学期中考“功夫”卷(二)数学试卷(含解析).docx
- 北京汇佳职业学院《职业生涯教育与就业指导(含创新创业教育)》2023-2024学年第一学期期末试卷.doc
文档评论(0)