AES加密算法|密码学|网络空间安全
算法简介
AES的全称是Advanced Encryption Standard,意思是高级加密标准。
他的出现是为了取代DES加密算法的,DES算法的密钥长度是56bit,所以算法的理论安全强度是2的56次方,现已不能满足人类对安全性的需求,所以AES诞生了
AES和DES都是分组密码,但是组的大小不一样,DES是64bit一组,AES是128bit一组,密钥长度DES是56位。但AES的密钥长度可以是128、192、256,密钥长度每多64位只会增加两次轮函数的运用,128长度是10轮,192是12轮,256是14轮。
DES是基于Feistel的机构进行加密,每一轮加密的是64位的一半,也就是32位。
而AES不具有Feistel结构,每次迭代中就加密了所有的128位,所以一般情况下,AES的轮数会比DES少
需要理解的是AES算法是面向字节的加密算法,1字节有8位,也就是8位二进制,AES这里写成16进制
算法流程图
结构比DES看起来更简单明了一些
只有密钥生成和轮函数两部分,这里不介绍密钥生成函数,只介绍轮函数
密钥加法层
密钥K先生成K0,和明文按位异或
轮函数
字节代换
如果不考虑S盒的生成过程,那字节代换就是一个查表的过程
对于输入的128位,分成16个8位的二进制串,每个二进制串分成前后两个4位2进制,转换成对应的十六进制,作为查表用的行和列,找到表中对应的数就行
但是S盒是怎么产生的呢?
其实是经过两部分操作后得到的,首先把一个字节的数换算成10进制,就会得到0-255的一个十进制数,计算一下他在模256下的逆元,由于0没有逆元,这里规定为0是0的逆元。然后将刚刚的逆元以2进制的方法写出来,进行以下的仿射变换(本质就是一个矩阵乘法)
得到的就是一个字节对应的值,0到255共256种不同的字节,S盒就是打表提前计算出来所有的数的值,便于直接利用,节约时间
行位移
行位移操作很简单,就是将输入的数据竖着写为一个个规定大小的矩阵,进行位置上的变化
比如 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16记做:
1 | 5 | 9 | 13 |
---|---|---|---|
2 | 6 | 10 | 14 |
3 | 7 | 11 | 15 |
4 | 8 | 12 | 16 |
规定的大小要看你的密钥长度是128还是192还是256,这三个分别对应4 * 4、4 * 6、4 * 8的矩阵
再根据位移表来位移就行,这三个对应的位移表不同,这里就只介绍128的
行 | C0 | C1 | C2 | C3 |
---|---|---|---|---|
位移大小 | 0 | 1 | 2 | 3 |
上述表经过左移后得到的如下:
1 | 5 | 9 | 13 |
---|---|---|---|
6 | 10 | 14 | 2 |
11 | 15 | 3 | 7 |
16 | 4 | 8 | 12 |
列混合
列混淆子层是AES算法中最为复杂的部分,属于扩散层,列混淆操作是AES算法中主要的扩散元素,它混淆了输入矩阵的每一列,使输入的每个字节都会影响到4个输出字节。行位移子层和列混淆子层的组合使得经过三轮处理以后,矩阵的每个字节都依赖于16个明文字节成可能。其中包含了矩阵乘法、伽罗瓦域内加法和乘法的相关知识。
主要是在扩展域GF(28)的矩阵加法与乘法,这里暂不仔细介绍
密钥加
就是异或上此轮的密钥Ki
AES加密算法|密码学|网络空间安全相关推荐
- 用c语言elgamal共密钥密码加密算法,北京航空航天大学2020年考研840网络空间安全专业综合考试大纲...
考研大纲是2020考研学生复习的重要参考资料,它指出了所考科目的大致考试范围,也是考研命题的重要参考依据.2020考研大纲已经陆续公布,包括公共课考试大纲和专业课统考科目考试大纲,而自命题科目考试大纲 ...
- 网络空间安全基础(待续)
网络空间安全概述 基本概念 1)计算机安全:通常采取适当行动保护数据和资源,使它们免受偶然或恶意动作的伤害: 2)数据的完整性:数据所具有的特性,即无论数据形式做何变化,数据的准确性和一致性均保持不变 ...
- 网络空间安全导论实践报告
网络空间安全导论实践报告 作品内容摘要: 现代密码技术已经延伸到了信息安全诸多领域,例如身份认证,数据完整性检测等,是信息安全的基础与核心.随着密码学在网络信息系统的广泛应用,密码技术的标准化和管理的 ...
- 网络空间安全要学c语言吗,2019年硕士研究生入学考试网络空间安全学院专业课考研大纲...
2019年硕士研究生入学考试专业课考研大纲 一.考试组成 网络空间安全专业综合共包括两门课的内容:数据结构与C语言程序设计.密码学与网络安全,分别为150分.学生任选其中一门课的考试内容. 二.数据结 ...
- 计算机考研840考纲,2020年北航考研840网络空间安全专业综合考试大纲
2020年硕士研究生入学考试专业课考研大纲 一.考试组成 网络空间安全专业综合共包括两门课的内容:数据结构与C语言程序设计.密码学与网络安全,分别为150分.学生任选其中一门课的考试内容. 二.数据结 ...
- 2018年全国中高等院校教师“Python编程、应用及华为大数据” 、“网络空间安全”、“区块链”培训班...
关于举办2018年全国中高等院校教师"Python编程.应用及华为大数据" ."网络空间安全"."区块链"培训班通知 全国各中高等院校计算机 ...
- AES加密算法及逆向
AES加密算法逆向以及特征识别 1.AES加密算法 关于AES加密算法,网上资料特别特别多,个人认为可以从这几点去学习: AES加密算法设计者的相关论文以及其他相关论文(如安全性.性能.硬件/指令实现 ...
- 基于国密算法实现主机之间的密钥分发和安全传输-2021西北工业大学网络空间安全学院暑期夏令营
2021年西北工业大学网络空间安全学院暑期夏令营 一.设计内容与要求: 二.基本思路与实现: 三.设计原理与流程: 3.1 总体流程: 3.2 设计原理: 3.2.1 建立套接字连接: 3.2.2 根 ...
- AES 加密算法的原理详解
本文转载https://blog.csdn.net/gulang03/article/details/81175854 本教程摘选自 https://blog.csdn.net/qq_28205153 ...
- 【期末复习】网络空间安全导论
1.TCP/IP安全结构各个层次可采取的安全措施: 网络空间安全体系结构: 物理层: 对于使设备位于防火防水的环境中:备份设备.线路,做好设备防盗,不间断电源保障: 网络层: 对外网进行入网访问控制: ...
最新文章
- 关于Spring Boot你不得不知道的事
- 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
- python学习高级篇(part8)--类对象的特殊方法
- 商业智能SAAS走向中小企业
- Struts2工作流程
- 通过90行代码学会HTML5 WebSQL的4种基本操作 1
- Jaspergold形式验证-vhdl语言
- 智能语音交互之简单实例
- 牛客java选择题每日打卡Day12
- 排名第一的word模板引擎,到底有多神仙
- 滤波器:使用Filter solutions设计椭圆函数LC高通滤波器
- 微信小程序 - 商城项目 - 图片详情预览
- 有限群元素的阶必然存在
- 每日新闻丨美商务部:已允许部分美企向华为出售零部件;中国四家手机厂商瓜分印尼市场...
- 编译原理 | 由正规式构造确定的有穷自动机DFA
- 团队目标由一致到分歧的案例
- JAVA实现抽奖大转盘摇一摇核心算法 亲测实用
- UVa 11121 - Base -2
- Java个人登陆账号
- 关于得实ds-700针式打印机
热门文章
- KITTI数据集下载以及处理
- JAVAweb之SSH框架
- matlab划分训练集验证和测试集代码_Matlab随机划分训练集和测试集
- reactos操作系统实现(109)
- 使用DB2遇到的一些错误SQLCODE=-551,SQLCODE: -204,SQLCODE:-433,SQLCODE: -104,rg.springframework.beans.factory.B
- python读取hive方案分析
- PDF编辑技巧 PDF怎么复制页面
- 小白进阶——Mike21(一)
- linux rman备份与恢复,RMAN备份与恢复 —— 完全恢复与不完全恢复
- C语言—黑客数字雨特效