作者:矢泽久雄
——————————————————————————————————————
第十章 • 试着数据加密吧
——————————————————————————————————————
【00】基础知识
- 信息摘要:从作为数字签名对象的文件整体中计算出的数值。对比由文件整体计算出的信息摘要,可以证明文件的内容有没有被篡改。加密处理过的信息摘要就是数字签名
- https协议:数据需要使用加密的方式进行传输
- 字符编码:将每个字符分配一个数字
- 字符集:定义应该把哪个编码分配给哪个字符的字符编码体系叫做字符集
- 明文与密文:未经加密的文本数据叫做明文;将明文进行加密处理得到密文
- 加密与解密:明文转换成密文的过程叫做加密;将密文还原成明文的过程叫做解密
——
【01】常用的加密技术
最基本的加密手段就是字符编码的变换
比如,错开字符编码的加密方式。
将文本数据中的每个字符所对应的字符编码一律向后错开3个。
加上3的过程就是加密,减去3的过程就是解密,把像3这样用于加密和解密的数字称为“密钥” 。
再比如,字符编码与密钥做XOR运算(逻辑异或运算)。
采用这种方式的好处就是,用XOR运算加密后的密文可以通过相同的XOR运算解密。
——
【02】对称密钥加密技术
对称密钥加密技术,也叫做秘密密钥加密技术。
这种加密技术的特征就是,加密和解密的过程中使用相同数值的密钥。
比如我们上面举例的,将文本数据中的每个字符所对应的字符编码一律向后错开3个,加上3进行加密,减去3从而解密。
这就是秘密密钥加密技术。其密钥越长,破解难度也就越大。
但是这种加密技术也存在问题,就是密钥本身在传递时也存在泄漏的可能,有着被人窃取的风险。
从而,诞生了一种更加安全的加密技术,公开密钥加密技术。
——
【03】公开密钥加密技术
在公开密钥加密技术中,用于加密和解密的密钥并不是相同。
其中,用于加密的密钥并且可以公开给全世界的,叫做公钥。
而用于解密的密钥有且只有解密者本身知道的,叫做私钥。
信息发送者将信息利用公钥加密(公钥是所有人都可以知道的),这份加密后的信息只能拥有私钥(私钥只有本人知道)的信息接收者才能进行解密。
这就大大防范了密钥本身在传递过程中的泄露问题。
其中关于公开密钥加密技术最经典的代表算法就是:RSA算法。
——
【04】数字签名
数字签名是一种公开密钥加密技术的实际应用,用来证明信息接收的有效性。
数字签名,用私钥加密,用公钥解密,与之前的用法刚好相反。
其核心步骤:
文本数据发送者
- 选取一段明文:NIKKEI
- 计算出明文内容信息摘要:(78+73+75+75+69+73)/100的余数=43
- 用私钥对信息摘要进行加密:43→66(字符B的编码)
- 把值B附加到明文后面再发送给接收者
文本数据接收者
- 用公钥对信息摘要进行解密:B=66→43
- 计算出明文部分的信息摘要:(78+73+75+75+69+73)/100的余数=43
- 比较1和2步的两个值,二者相同则证明接收信息有效
——