选择加密参数
- 选择素数 p:选择一个大素数 p,通常在 124-248 位之间。
- 选择子素数 q:选择 p 的一个子素数 q。
- 选择生成器 g:选择一个生成器 g,通常为 2 或 3。
生成公共密钥
- 选择 private key:每个用户选择一个 private key,通常为一个大素数。
- 使用 g 和子素数 q 计算 public key:public_key = g^q (mod p)。
共享公共密钥
- 两个用户 A 和 B 通过 Diffie-Hellman 生成公共密钥,通常称为 shared_key。
加密数据
- 将数据加密为 ciphertext。
- 加密过程:ciphertext = plaintext ^ shared_key (mod p)。
传输加密数据
- 将 ciphertext 通过网络传输。
解密加密数据
- 解密过程:plaintext = ciphertext ^ shared_key^{-1} (mod p),shared_key^{-1} 是 shared_key 的模逆元。
验证加密
- 验证加密是否正确,通常通过检查 shared_key 是否正确。
注意事项:
- 雷电VPN的安全性需要依赖于 Diffie-Hellman 的安全性,通常选择大素数 p 和子素数 q。
- 需要确保网络连接的稳定性,避免因连接问题导致加密失败。
- 需要遵守相关网络安全法规,如 SSL/TLS 和 CMS 规则。


