发现想得越多、纠结得越久,越是想把文章写得漂亮点,就越是无法开始。所以,索性随着自己的思绪,想到哪就写到哪吧,再慢慢完善,慢慢补充吧。这篇文章是想做个笔记,跟数据加解密有关的一些东西。
这块知识本来就有点大,先写其中的一块吧,就从对称加密入手吧。
对称密钥
什么是对称秘钥加密?即发送和接收数据的双方使用相同的秘钥对明文数据进行加密和解密运算。
对称秘钥可以分为分组密码和流密码。这里只对工作中常用的分组密码进行介绍。
分组密码是什么?
百度百科:分组密码(block cipher)的数学模型是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。
即先对数据进行分块处理,然后再对各个分组块进行加解密处理的的密码算法。
分组密码有如DES、3DES、AES、SM4等的分组对称密钥算法。
分组密码的内容
分组密码的内容可以简单的分为三块:分组、填充、迭代。
其中,迭代可以选择不同的工作模式,如ECB、CBC、CFB、OFB、CRT,这里说的模式,描述的是如何加密多个数据块。而对单独的一个分组块进行加解密操作的不同,也就是不同分组密码算法之间的区别。
分组与填充
不同的分组密码算法,分组长度也不一样。如AES、DES算法的分组长度是8字节,而SM4算法的分组长度是16字节。
在对明文数据加密前进行分组时,