对称密钥的管理
对称密钥交换协议Diffie-Hellman中存在的问题
Diffie- Hellman算法能安全共享密钥的实质
Diffie- Hellman算法的安全性是建立在有限域上求解脸啊对数的困难性上的。
其使得通信用户之间能够共享密钥的实质就是用户各自产生一个只有自己知道的随机数,通过在通信用户之间经过几轮传递计算出一个共同的值,这个值就作为他们的共享密钥。
Diffie- Hellman算法实现多方通信共享密钥的过程
在之前那篇中我们也提到了为什么窃听者不能得到这个共享密钥,因为在交换的过程中窃听者只能听到在不安全信道中的信息,没有参与用户之间的通信就无法得到共享的密钥,窃听者并没有像Bob or Alice那样自己产生的随机数,之前提到的是两者之间进行共享密钥,那么三者之间、四者之间又可以吗?
当然是可以的,只是进行几轮计算的问题,比如下图就是进行四个用户之间的通信的时候使用Diffie- Hellman算法进行共享密钥时的过程
可以得出结论:
四个用户之间共享密钥,需要进行三轮计算
n个用户之间共享密钥,需要进行n-1轮计算。
Diffie- Hellman算法存在的问题
不知道在这里大家有没有思考🤔过一个问题,如果窃听者伪装成一个通信用户,自己也产生一个随机数混入到共享密钥的过程中,在计算共享密钥时,它产生的数也开始在共享密钥中存在,最后几个用户间的共享密钥被窃听者影响的同时窃听者也获取了此次产生的共享密钥。
即可能存在的问题时窃听者可以伪装成用户获得共享密钥。
加密密钥交换(Encryption Key Exchange)协议的实现过程
根据图中阐述的EKE协议的7步过程可以看出,在共享密钥k之后进行了双向认证的处理,避免了出现窃听者伪装成用户同样产生一个随机数k‘,使得通信用户之间用它产生的密钥的问题。
如何解决Diffie- Hellman算法中存在的问题
- 可以通过确定通信用户的数量来避免有窃听者混入其中进行密钥共享计算的过程中,但是当用户数不符合要求的时候并不能从实质上去确定到底哪个用户是不合法的,且在实际的通信过程中不太现实。
- EKE加密密钥交换协议,像上面EKE实现过程中提到的,EKE在共享密钥后,就是为了避免是窃听者伪装成用户产生的k‘作为了共享密钥,还进行了认证,且这个认证过程是双向认证。较好地解决了Diffie- Hellma算法在共享密钥时存在的问题。