Diffie Hellman Key Exchange

DH:DH 密钥交换用于在公开信道上共享私密信息

算法的流程

系统参数

系统的运行需要确定以下两个参数:

  1. 一个大素数 p;
  2. 一个整数 g;

信息生成

进行信息交换的双方需要确定以下的信息:

  1. 双方分别生成两个秘密信息 $$X_A, X_B$$
  2. 通过秘密信息与整数 g 计算:$$g^{X_A}, g^{X_B}$$

秘密共享

收到公开信道的信息的双方进行以下操作:

  1. A 计算得到秘密共享信息:$$s = (g^{X_B})^{X_A} = g^{X_AX_B}$$
  2. B 计算得到秘密共享信息:$$s = (g^{X_A})^{X_B} = g^{X_AX_B}$$

流程图

../../../算法和协议中的安全机制/Diffie-HellmanKeyExchange.svg