一 点睛
在现实世界中使用对称密码时,一定会遇到密钥配送问题。尽管一开始可能觉得这并不是什么大问题,但这个问题却是很难从根本上得到解决。
场景分析:
Alice给Bob发一封邮件,而且不想让别人知道邮件的内容,因此Alice决定使用对称密码进行加密,这样即便被窃听者Eve窃听到通信内容也没有问题。
Alice将邮件内容进行加密,生成了密文。那么是不是指要将这份密文用邮件发送给Bob就可以了呢?不行,因为这样Bob是无法对密文进行解密的。要使用对称密码进行解密,就必须使用和加密相同的密钥才行。也就是说,只有同时将密钥也发送给Bob,Bob才能完成解密。
那么,将密文和密钥都通过邮件发送给Bob行不行呢?也不行。如果密文和密钥都通过邮件发送,两者就都会被窃听者Eve窃听到。这样一来,同时得到密文和密钥的Eve就能够像Bob一样完成密文的解密并看到明文内容了。也就是说,如果同时发送密钥,则Eve也能够完成解密。
如果发送密钥,则窃听者Eve也能够完成解密(密钥配送问题)
当然,如果窃听者无法推测出通信应该使用的是什么密码算法,那么即便得到了密文和密钥也无法解密的,然而密码算法本来就应该以完全公开为前提,隐蔽式安全是非常危险的。
Alice一筹莫展。不发送密钥把,接收者Bob无法解密;发送密钥把,窃听者Eve也可以解密。密钥必须要发送,但又不能发送,这就是对称密码中密钥配送问题。
二 解决方法
通过事先共享密钥来解决
通过密钥分配中心来解决
通过DH密钥交换来解决
通过公钥密钥来解决