密码学-AES加密原理

AES加密原理

对称加密从算法类型的角度出发,有流加密算法,块加密算法。

从算法模式角度出发,有电子编码薄模式ECB,加密块链接模式CBC,加密反馈模式CFB,输出反馈模式OFB,计数器模式CTR

这边选择一种类型进行加密过程的分析和手动实现。

加密基本原理

异或操作(XOR)在这里扮演重要角色。异或有一个特性

C=A XOR B

那么 A=C XOR B ,B=C XOR A

异或操作的可逆性可以用来恢复原值,也就是加密和解密的过程。

加密实例

java代码中,默认选用128b长度的密钥进行明文的加密操作

原理参考

128位进行了十轮的异或变换。根据以上的流程图进行java代码演示

1
2
3
4
5
6
7
8
9
10
使用AES对称加密,请输入加密的规则
1
请输入要加密的内容:
1
打印的密钥
-26 -52 -112 -72 120 -71 72 -61 94 -110 -80 3 -57 -110 -60 108
密文
-48 21 -79 -47 -92 8 14 -47 -9 -51 -109 -50 -73 41 75 46
根据输入的规则1加密后的密文是:0BWx0aQIDtH3zZPOtylLLg==
使用AES对称解密,请输入加密的规则:(须与加密相同)

未完,懵逼中,一个数字是如何转化成二进制参与异或运算的呢?明文是被截取128bit参与异或后拼成的还是怎样?还是得看源码啊!