- 爱丽丝和鲍勃两个人都约定使用7^X这种函数,只不过是在模等于11的情况下运行的。
- 爱丽丝随便想出一个数A,比如说是3,鲍勃也随便想出一个数B,比如说是6;
- 他们两个人分别把自己想出来的这个数,带入刚刚那个函数计算一下。比如爱丽丝算完等于α,鲍勃算完等于β;
- 两人把计算结果告诉对方,直接打电话也行,写信也行,反正是不怕被伊芙偷听的。原因我们刚刚说过:因为伊芙偷听到的只不过是模运算的结果,而这个结果是不可逆的,所以就算伊芙知道结果,也没法倒推出之前的值;
- 等爱丽丝和鲍勃都得到对方的结果之后,爱丽丝再做一次计算题,她做的是β^A(mod11),鲍勃也算一次,他的题目是α^B(mod11)。
当然,你不用管为什么非得是β^A 、α^B,这个是数学运算保证的,这样算是一定正确的。
这两个人算完后,奇怪的事就会出现——他们将得到完全一样的结果,这个结果就是9。他们得到的结果相同,那么这个结果就可以当作他们的钥匙。
整个过程没人传递过钥匙,但双方都拿到了同样的钥匙。对窃听者伊芙来说,她偷听到的只是模运算的结果。因为这种运算没有逆运算,所以伊芙偷听了也白听。
你可能很困惑,最后两人计算的结果为什么恰恰都等于9?
这就是整个过程的精髓所在。不过这可不是巧合,而是阳升(Sun)的高级工程师迪菲(Whitfield Diffie)和斯坦福大学电子系教授黑尔曼(Martin Hellman),两个人花了两年多的时间才找出的这种函数。也因此,这套方法被称为“迪菲-黑尔曼钥匙交换方案”。
