算法简介

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加密算法|密码学|网络空间安全相关推荐

  1. 用c语言elgamal共密钥密码加密算法,北京航空航天大学2020年考研840网络空间安全专业综合考试大纲...

    考研大纲是2020考研学生复习的重要参考资料,它指出了所考科目的大致考试范围,也是考研命题的重要参考依据.2020考研大纲已经陆续公布,包括公共课考试大纲和专业课统考科目考试大纲,而自命题科目考试大纲 ...

  2. 网络空间安全基础(待续)

    网络空间安全概述 基本概念 1)计算机安全:通常采取适当行动保护数据和资源,使它们免受偶然或恶意动作的伤害: 2)数据的完整性:数据所具有的特性,即无论数据形式做何变化,数据的准确性和一致性均保持不变 ...

  3. 网络空间安全导论实践报告

    网络空间安全导论实践报告 作品内容摘要: 现代密码技术已经延伸到了信息安全诸多领域,例如身份认证,数据完整性检测等,是信息安全的基础与核心.随着密码学在网络信息系统的广泛应用,密码技术的标准化和管理的 ...

  4. 网络空间安全要学c语言吗,2019年硕士研究生入学考试网络空间安全学院专业课考研大纲...

    2019年硕士研究生入学考试专业课考研大纲 一.考试组成 网络空间安全专业综合共包括两门课的内容:数据结构与C语言程序设计.密码学与网络安全,分别为150分.学生任选其中一门课的考试内容. 二.数据结 ...

  5. 计算机考研840考纲,2020年北航考研840网络空间安全专业综合考试大纲

    2020年硕士研究生入学考试专业课考研大纲 一.考试组成 网络空间安全专业综合共包括两门课的内容:数据结构与C语言程序设计.密码学与网络安全,分别为150分.学生任选其中一门课的考试内容. 二.数据结 ...

  6. 2018年全国中高等院校教师“Python编程、应用及华为大数据” 、“网络空间安全”、“区块链”培训班...

    关于举办2018年全国中高等院校教师"Python编程.应用及华为大数据" ."网络空间安全"."区块链"培训班通知 全国各中高等院校计算机 ...

  7. AES加密算法及逆向

    AES加密算法逆向以及特征识别 1.AES加密算法 关于AES加密算法,网上资料特别特别多,个人认为可以从这几点去学习: AES加密算法设计者的相关论文以及其他相关论文(如安全性.性能.硬件/指令实现 ...

  8. 基于国密算法实现主机之间的密钥分发和安全传输-2021西北工业大学网络空间安全学院暑期夏令营

    2021年西北工业大学网络空间安全学院暑期夏令营 一.设计内容与要求: 二.基本思路与实现: 三.设计原理与流程: 3.1 总体流程: 3.2 设计原理: 3.2.1 建立套接字连接: 3.2.2 根 ...

  9. AES 加密算法的原理详解

    本文转载https://blog.csdn.net/gulang03/article/details/81175854 本教程摘选自 https://blog.csdn.net/qq_28205153 ...

  10. 【期末复习】网络空间安全导论

    1.TCP/IP安全结构各个层次可采取的安全措施: 网络空间安全体系结构: 物理层: 对于使设备位于防火防水的环境中:备份设备.线路,做好设备防盗,不间断电源保障: 网络层: 对外网进行入网访问控制: ...

最新文章

  1. 关于Spring Boot你不得不知道的事
  2. 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
  3. python学习高级篇(part8)--类对象的特殊方法
  4. 商业智能SAAS走向中小企业
  5. Struts2工作流程
  6. 通过90行代码学会HTML5 WebSQL的4种基本操作 1
  7. Jaspergold形式验证-vhdl语言
  8. 智能语音交互之简单实例
  9. 牛客java选择题每日打卡Day12
  10. 排名第一的word模板引擎,到底有多神仙
  11. 滤波器:使用Filter solutions设计椭圆函数LC高通滤波器
  12. 微信小程序 - 商城项目 - 图片详情预览
  13. 有限群元素的阶必然存在
  14. 每日新闻丨美商务部:已允许部分美企向华为出售零部件;中国四家手机厂商瓜分印尼市场...
  15. 编译原理 | 由正规式构造确定的有穷自动机DFA
  16. 团队目标由一致到分歧的案例
  17. JAVA实现抽奖大转盘摇一摇核心算法 亲测实用
  18. UVa 11121 - Base -2
  19. Java个人登陆账号
  20. 关于得实ds-700针式打印机

热门文章

  1. KITTI数据集下载以及处理
  2. JAVAweb之SSH框架
  3. matlab划分训练集验证和测试集代码_Matlab随机划分训练集和测试集
  4. reactos操作系统实现(109)
  5. 使用DB2遇到的一些错误SQLCODE=-551,SQLCODE: -204,SQLCODE:-433,SQLCODE: -104,rg.springframework.beans.factory.B
  6. python读取hive方案分析
  7. PDF编辑技巧 PDF怎么复制页面
  8. 小白进阶——Mike21(一)
  9. linux rman备份与恢复,RMAN备份与恢复 —— 完全恢复与不完全恢复
  10. C语言—黑客数字雨特效