2.2 使用对称密码术的通信

    通信双方怎样安全地通信呢?当然,他们可以对通信加密。完整的协议比它更复杂,让我们来看看Alice发送加密的信息给Bob会发生什么情况吧:

    (1)Alice和Bob协商用同一密码系统。

    (2)Alice和Bob协商同一密钥。

    (3)Alice用加密算法和选取的密钥加密她的明文信息,得到了密文信息。

    (4)Alice发送密文信息给Bob。

    (5)Bob用同样的算法和密钥解密密文,然后读它。

    位于Alice和Bob之间的窃听者Eve监听这个协议,她能做什么呢?如果她听到的是在第(4)步中发送的密文,她必须设法分析密文,这是唯密文的被动攻击法;有很多算法能够阻止Eve,使她不可能得到问题的解答。

    尽管如此,但Eve却不笨,她也想窃听步骤(1)和步骤(2),这样她就知道了算法和密钥,她就和Bob知道的一样多。当步骤(4)中的信息通过信道传送过来时,她所做的全部工作就是解密密文信息。

    好的密码系统的全部安全性只与密钥有关,和算法没有任何关系。这就是为什么密钥管理在密码学中如此重要的原因。有了对称算法,Alice和Bob能够公开地实现步骤(1),但他们必须秘密地完成步骤(2)。在协议执行前、执行过程上和执行后,只要信息必须保持秘密,密钥就必须保持秘密,否则,信息就将不再秘密了。(公开密钥密码学用另一种方法解决了这个问题,将在2.5节中讨论。)

    主动攻击者Mallory可能做其他一些事情,他可能企图破坏在(4)中使用的通信信道,使Alice和Bob根本不可能通信。他也可能截取Alice的信息并用他自己的信息替代它。如果他也知道密钥(通过截取(2)的通信或者破译密码系统),他可能加密自己的信息,然后发送给Bob,用来代替截取的信息。Bob没有办法知道接收到的信息不是来自Alice。如果Mallory不知道密钥,他所产生的代替信息,被解密出来是无意义的,Bob就会认为从Alice那里来的信息是网络或者是Alice有严重的问题。

    Alice又怎么样呢?她能做什么来破坏这个协议吗?她可以把密钥的副本给Eve。现在Eve可以读Bob所发的信息,他还不知道Eve已经把他的话重印在《纽约时报》上。虽然问题很严重,但这并不是协议的问题。在协议过程的任何一点都不可能阻止Alice把明文的副本交给Eve。当然Bob也可能做Alice所做的事。协议假定Alice和Bob互相信任。

    总之,对称密码算法存在下面的问题:

    (1)密钥必须秘密地分配,它们比任何加密的信息更有价值,因为知道了密钥意味着知道了所有信息。对于遍及世界的加密系统,这可能是令人沮丧的任务,需经常派信使将密钥传递到目的地。

    (2)如果密钥被损害了(被偷窃,猜出来,被逼迫交出来,受贿等等),那么Eve就能用该密钥去解密所有传送的信息,也能够假装是几方中的一方,产生虚假信息去愚弄另一方。

    (3)假设网络中每对用户使用不同的密钥,那么密钥总数随着用户数的增加迅速增多。N个用户的网络需要n(n-1)/2个密钥。例如,10个用户互相通信需要45个不同的密钥,100个用户需要4950个不同的密钥,这个问题可以通过将用户数量控制在较小数目来减轻,但这并不总是可能的。