| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 什么是AES加密?详解AES加密算法原理流程 -> 正文阅读 |
|
[网络协议]什么是AES加密?详解AES加密算法原理流程 |
在密码学中,加密算法分为双向加密和单向加密。单向加密包括MD5、SHA等摘要算法,它们是不可逆的。双向加密包括对称加密和非对称加密,对称加密包括AES加密、DES加密等。双向加密是可逆的,存在密文的密钥。AES算法是DES算法的替代者,也是现在最流行的加密算法之一。下面给大家介绍什么是AES加密算法,以及AES加密算法的原理和流程。 什么是AES加密算法AES是高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,目前已经被全世界广泛使用,同时AES已经成为对称密钥加密中最流行的算法之一。AES支持三种长度的密钥:128位,192位,256位。 AES加密算法原理1.密钥 密钥是AES算法实现加密和解密的根本。对称加密算法之所以对称,是因为这类算法对明文的加密和解密需要使用同一个密钥。 AES支持三种长度的密钥:128位,192位,256位 平时大家所说的AES128,AES192,AES256,实际上就是指的AES算法对不同长度密钥的使用。 2.填充 要想了解填充的概念,我们先要了解AES的分组加密特性。什么是分组加密呢?我们来看看下面这张图:AES算法在对明文加密的时候,并不是把整个明文一股脑加密成一整段密文,而是把明文拆分成一个个独立的明文块,每一个明文块长度128bit。 这些明文块经过AES加密器的复杂处理,生成一个个独立的密文块,这些密文块拼接在一起,就是最终的AES加密结果。 假如一段明文长度是192bit,如果按每128bit一个明文块来拆分的话,第二个明文块只有64bit,不足128bit。这时候怎么办呢?就需要对明文块进行填充(Padding)。 填充涉及以下三种填充模式: ? NoPadding:不做任何填充,但是要求明文必须是16字节的整数倍。 PKCS5Padding(默认):如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字符,且每个字节的值等于缺少的字符数。 比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6个字节,则补全为{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6} ISO10126Padding:如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字节,最后一个字符值等于缺少的字符数,其他字符填充随机数。 比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6个字节,则可能补全为{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6} AES算法流程AES加密算法涉及4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。下图给出了AES加解密的流程,从图中可以看出: 1、解密算法的每一步分别对应加密算法的逆操作; 2、加解密所有操作的顺序正好是相反的。正是由于这几点(再加上加密算法与解密算法每步的操作互逆)保证了算法的正确性。加解密中每轮的密钥分别由种子密钥经过密钥扩展算法得到。算法中16字节的明文、密文和轮子密钥都以一个4x4的矩阵表示。 ? AddRoundKey (轮密钥加)— 矩阵中的每一个字节都与该次轮密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。 SubBytes(字节替代) — 通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。 ShiftRows(行移位) — 将矩阵中的每个横列进行循环式移位。 MixColumns (列混淆)— 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。 以上为AES在加密中的大致流程。 附上一个在线加密解密的网站:https://md5.cn/ 总而言之,AES是用来替代DES的新一代加密标准,具有128bit的分组长度,支持128、192和256比特的密钥长度,它是目前最流行的加密算法之一。上文介绍了AES加密算法的原理和流程,更多关于加密算法的内容,后期会继续更新。 相关文章: 你的密码安全吗?如何加密才安全?_哈客部落的博客-CSDN博客因为MD5加密有一定的安全保证,而且实现起来非常简单,我们当然可以采用其它的加密方式(如SHA家族算法、AES、RSA等),甚至是多种加密方式的组合,但是对安全性要求没那么高的场景,我们就采用了MD5加密。https://blog.csdn.net/m0_69916115/article/details/126666338DES加密算法安全吗,有哪些优点和缺点?_哈客部落的博客-CSDN博客_des算法安全性在密码学中,DES算法是一种常见的分组加密算法,它是应用最为广泛的对称加密算法。加密算法有很多种,DES算法只是其中的一种,那么DES加密算法安全吗?DES加密算法有哪些优点和缺点?下面本文将对这些问题进行分析讲解,希望能够帮助大家进一步了解DES加密算法。...https://blog.csdn.net/m0_69916115/article/details/126628572 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:31:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |