为什么敏感内容不能使用对称算法的ECB模式加密

对称加密:

使用相同的秘钥进行加密和解密,因为对称加密的秘钥长度有限,所以往往根据秘钥长度对明文进行分组。

分组模式

如何对明文分组,这就构成了分组模式。分组模式一般有下面几种(摘自《图解密码技术 第三版》)

为什么敏感内容不能使用对称算法的ECB模式加密_第1张图片

 ECB模式其实就是简单的分组,按照顺序把明文分成和秘钥长度相同的多组,每组加密完再拼起来

ECB模式进行攻击

这种模式加密其实很危险,比如

明文分组1: xxxxxxx  (付款人 A)

明文分组2: xxxxxxx  (收款人 B)

明文分组2: xxxxxxx  (付款1亿元)

加密后的分组

密文分组1: xxxxxxx  (付款人 A)

密文分组2: xxxxxxx  (收款人 B)

密文分组2: xxxxxxx  (付款1亿元)

这时候我们把密文分组1和密文分组2进行调换

密文分组2: xxxxxxx  (付款人 B)

密文分组1: xxxxxxx  (收款人 A)

密文分组2: xxxxxxx  (付款1亿元)

这时候解密出来的明文则是

明文分组2: xxxxxxx  (付款人 B)

明文分组1: xxxxxxx  (收款人 A)

明文分组2: xxxxxxx  (付款1亿元)

本来应该是A付给B 1亿元经过中途篡改攻击后变成了 B给A付款 1亿元

这样就通过不破解密文的情况下实施了攻击

再举例

我们知道服务器密码是用ECB模式加密保存的

明文分组1:xxxxxxx (用户名)

明文分组2:xxxxxxx (密码)

加密后的分组为

密文分组1:xxxxxxx (用户名)

密文分组2:xxxxxxx (密码)

我们如何破解呢?

我们只需要把密文分组1的内容覆盖到密文分组2中

密文分组1:xxxxxxx (用户名)

密文分组2:xxxxxxx (用户名)

这样解密出来的明文分组为

明文分组1:xxxxxxx (用户名)

明文分组2:xxxxxxx (用户名)

这样我们就可以知道用户名的情况下进行登录了

你可能感兴趣的:(密码学,安全)