一 通过事先共享密钥来解决
事先以安全的方式将密钥交给对方,这称为密钥的事先共享。
事先共享的局限性:
1 要想事先共享密钥,就需要用一种安全的方式将密钥交给对方,在某些情况下,可以很方便也可以很安全的交给对方。但如果通信双方在异地,安全的将密钥交给对方就比较困难了。
2 在人数很多的情况下,通信所需要的密钥数量也会增大,这就产生了问题。例如一个公司有1000名员工,每两个员工间使用1个密钥,这样就需要1000*999/2=499500个密钥进行存储,数量惊人,使用起来并不现实。
二 通过密钥分配中心来解决
密钥分配中心可以解决密钥配送问题。
当需要进行加密通信时,密钥分配中心会生成一个通信密钥,每个人只要和密钥分配中心事先共享密钥就可以了。
在公司中,先配置一台充当密钥分配中心的计算机。这台计算机中有一个数据库,其中保存了Alice的密钥、Bob的密钥......等所有员工的密钥。如果公司有1000名员工,那么数据库中就会保存1000个密钥。
当有新员工入职时,密钥分配中心会为该员工生成一个新的密钥,并保存到数据库中。而新员工则会在入职时从密钥分配中心的计算机领取自己的密钥,就像领取工作证一样。
这样,密钥分配中心就拥有了所有员工的密钥,而每个员工则拥有自己的密钥。
现在Alice再向Bob发送加密邮件时,就需要进行以下步骤。
1 Alice向密钥分配中心发出希望与Bob进行通信的请求。
2 密钥分配中心通过伪随机数生成器生成一个会话密钥,这个密钥是供Alice和Bob在本次通信中使用的临时密钥。
3 密钥分配中心从数据库取出Alic