共享密钥加密是加密和解密都使用相同密钥的一种加密方式。由于使用的密钥相同,所以这种算法也被称为“对称加密”。
加密处理流程
我们先从整体上来了解一下共享密钥加密的处理流程。假设A准备通过互联网向B发送数据。
由于有被窃听的风险,所以需要把想要保密的数据加密后再发送。
A使用密钥加密数据。
A将密文发送给B。
B收到密文后,使用相同的密钥对其进行解密。这样,B就取得了原本的数据。只要是加密好的数据,就算被第三者恶意窃听也无须担心。
存在的问题
接下来想一想共享密钥加密中的问题。让我们回到B收到A发送的密文的时候。
密文可能已经被X窃听了。
这里假设A和B无法直接沟通,B不知道加密时使用的是什么密钥。
A需要通过某种手段将密钥交给B。和密文一样,A又在互联网上向B发送了密钥。
B使用收到的密钥对密文进行解密。
但是,该密钥也有可能会被X窃听。这样一来,X也可以使用密钥对密文进行解密了。
既然密钥有被第三者窃听的风险,那是不是也可以先加密密钥再发送呢?
使用这种方式,又会产生如何把加密密钥的密钥发送给对方的问题,还是回到了一开始的问题。
因此需要找到可以把密钥安全送出的方法,这就是“密钥分配问题”。
要想解决这个问题,可以使用“密钥交换协议”和“公开密钥加密”两种方法。
共享密钥加密的算法
实现共享密钥加密的算法有凯撒密码、AES、DES、动态口令等,其中AES的应用最为广泛。
参考: 我的第一本算法书 5-4 共享密钥加密