假设有两个人,分别为Alice和Bob。
Alice对Bob心仪已久,终于在某一天,Alice决定写一封情书,向Bob表达爱慕之意。当Alice写好情书后,放在信封中,由于两人相隔千里,Alice选择使用邮寄的方式将信寄给Bob。
Alice来到邮局,但是Alice并不相信这个社会上会有值得信任的人,所以Alice很担心自己的信被“坏人”偷看到。此时Alice选择多花点钱,将信放进了一个信箱里,并且给信箱加了一把自己的锁,Alice的这把锁坚硬无比,可了不得了,除了自己的钥匙能打开外,其他所有人都没有办法打开这个信箱。
快递员抱着这个加了锁的信箱来到了Bob家,Bob此时也很懵逼,心想一个上了锁的信箱我该怎么打开,就在这时,Bob有一位朋友是学密码学的,他给Bob支了个招。说:你可以在这个信箱上再加上一把自己的锁,并且让快递员抱着这个信箱回到Alice家,让Alice使用自己的钥匙打开之前上的第一把锁,最后让快递员再抱着这个信箱回到你家就ok了。
Bob这时也恍然大悟,他机智的打开了信箱,看到了让他心动不已的一封信。为了感谢他的这位密码学朋友,决定在本文右下角给个赞表示感谢。
试想一下,如果信箱里装的不是一封信而是一个保险柜的钥匙,或者是关乎国家命运的核武器钥匙,是不是意义非凡。写到这,不由得惊叹人类简直巧妙!
数学描述
Diffie-Hellman密钥交换
Diffie-Hellman密钥交换是W.Diffie和M.Hellman在1976年提出的第一个公钥密码算法,已在很多商业产品中得到应用。算法的唯一目的是要让两个用户安全的协商出一个共同的密钥。
首先选择一个大素数p,再选择p的一个本原根a,p和a这两个值可以在网上公开,任何人都可以查询到。用户A选择一个保密的数
,并将
发送给用户B。类似地,用户B选择一个保密的数
,并将
发送给用户A。然后用户A和B分别可以计算得到一个相同的K。
证明:
因为
和
是保密的,黑客只能得到p、a、
、
,想要得到K的值,黑客需要求解
或者
,但是这是求解离散对数,目前的计算机的算力在我们有生之年是计算不出来的,可以放心使用。
参考自:
彭长根《现代密码学趣味之旅》;
杨波《现代密码学》第3版。