密码学-密钥交换协议

Diffie-Hellman 密钥交换协议

顾名思义,这个协议是专门用来对称密钥的交换的。

其原理是在有限域中的离散对数计算难度比同一个领域中的指数计算难得多。

举例

如果我们知道了K和y求出g是很简单的,但是如果我们知道了g和K想求出y。当数很大的时候,几乎不可能。

密钥交换过程

  • Alice和Bob确定两个大素数n和g,这两个数可以在不安全信道传递。

  • Alice选择一个很大随机数x并计算A

  • Alice把A发送给Bob,在信道传输的过程中,想计算出x的值是几乎不可能的。

  • 同理,Bob选择了一个很大的随机数y并同样计算B

  • Bob把B的结果发送给Alice。想计算出y也是不可能的

  • Alice 和Bob计算密钥K却很简单

因为对于Alice,她知道了B加上自己的x就能知道K,同理Bob也能知道K

信道在传输过程中被知道的只有A,B,g,n根据这些,几乎不能求出K,x,y

举例

假设,这里举例数都很小

  • n=11,g=7
  • Alice选了一个x=3 计算结果

  • Alice把结果2发送给Bob

  • 同理Bob选了一个y=6,计算结果B

  • Bob把B传给Alice

  • 他们同时计算出了密钥

这样他们就同时拿到了密钥9

弊端

这个交换算法无法避免中间人攻击,如果出现一个中间人tom,伪造Bob和Alice交互,再伪造Alice和Bob交互。那就没法子咯