@@ -15,26 +15,26 @@ PADDING:填充
1515 明文会被切成4块,64比特为1块
1616
1717 AES:分组长度128比特,32个16进制数、16个字节
18- hex:0123456789abcdef 1111111111111111 22222222222222223333333333333333
18+ hex:0123456789abcdef1111111111111111 22222222222222223333333333333333
1919 明文会被切成2块,128比特为1块
2020
2121 DES中明文都是比特流,最小单位是比特
2222 AES中基于字节的,最小单位是字节
2323
2424密钥:
25- AES密钥 密钥长度分三种
26- - 128比特长,16个字节 ----10轮运算
27- - 192比特长,24个字节 ----12轮运算
28- - 256比特长,32个字节 ----14轮运算
29- 不管是aes-128/192/256比特 aes分组大小以及密文输出大小都是不变的。
30- 假如密钥是255比特长依然会出结果?
31- 比如:1111111(比特)?不可能是3.5字节,他会在最后一个补个0变成 : 11 11 11 01
32- 比如:111111111111111111111111111111111111111111111111111111111111111(252bit),少了4bit 半个字节
33- 等于:1111111111111111111111111111111111111111111111111111111111111101
25+ AES密钥 密钥长度分三种
26+ - 128比特长,16个字节 ----10轮运算
27+ - 192比特长,24个字节 ----12轮运算
28+ - 256比特长,32个字节 ----14轮运算
29+ 不管是aes-128/192/256比特 aes分组大小以及密文输出大小都是不变的。
30+ 假如密钥是255比特长依然会出结果?
31+ 比如:1111111(比特)?不可能是3.5字节,他会在最后一个前面补个0变成 : 11 11 11 01
32+ 比如:111111111111111111111111111111111111111111111111111111111111111(252bit),少了4bit 半个字节
33+ 等于:1111111111111111111111111111111111111111111111111111111111111101
3434
3535特征:
36- AES 不管输入的是什么,小于16个16进制数,输出都是32个16进制数。
37- 当明文恰好是一个分组长度,结果变成了两个分组大小。可能就是aes。
36+ AES 不管输入的是什么,小于16个16进制数,输出都是32个16进制数。
37+ 当明文恰好是一个分组长度,结果变成了两个分组大小。可能就是aes。
3838```
3939
4040#### AES算法原理
@@ -63,14 +63,14 @@ AES-128 ----10轮运算
6363if not ECB: 明文 xor iv
6464
6565首先是一个初始变换 --addRoundKey
66- - 明文 xor 密钥k (这个key就是我们输入的种子密钥)
66+ - 明文 xor 密钥k (这个key就是我们输入的种子密钥)
6767然后是9轮相同的运算
6868 - S盒替换 subBytes
69- - 循环左移 shiftRows
70- - 列混淆 mixcolumn
71- - state xor 密钥 (密钥编排得到的子密钥,不是我们输入的密钥, k1-k9)addRoudKey
69+ - 循环左移 shiftRows
70+ - 列混淆 mixcolumn
71+ - state xor 密钥 (密钥编排得到的子密钥,不是我们输入的密钥, k1-k9)addRoudKey
7272末运算(第10轮)
73- - S盒替换
73+ - S盒替换
7474 - 循环左移
7575 - state xor 密钥 (密钥编排得到的子密钥,不是我们输入的密钥, k10)addRoudKey
7676```
0 commit comments