安全性:基于大素数和因式分解的困难性 私钥:(d, n) 公钥:(e, n) 随机生成两个质数p, q.其中n = pq. fi(n) = (p - 1)(q - 1) 随机取值e, 令e与fi(n)互质, 计算e 对fi(n)的逆模d 加密: C = M ^ e mod n 解密:M = C ^ d mod n 相关字段:certificate中携带服务端RSA的公钥DH算法:
安全性:基于分解大离散对数的困难性 私钥:a, b 公钥:A, B;其中A = G ^ a ( mod P );B = G ^ b ( mod P ); 公开,G, P;秘钥K = A ^ b ( mod P ) = B ^ a ( mod P )static DH算法:
服务端的秘钥不变,每次只有客户端的秘钥改变.不具备前向安全性.中间人可以截获海量的秘钥协商过程数据,暴力破解出服务器的公钥,那么之前截获的加密数据就会被破解.DHE(ephemeral)算法:
由于需要做大量的乘法,计算性能不佳 相关字段:supported_groupsECDHE:
在DHE算法的基础上利用了ECC椭圆曲线特性,用更少的计算量计算出公钥 1. 确定使用那种椭圆曲线和曲线上的基点G 2. 各自随机生成一个随机数d, 与G相乘得到公钥Q = dG 3. 交换双方公钥, 计算(x1, y1) = d1Q2, (x2, y2) = d2Q1, 由于椭圆曲线满足乘法交换律和结合率, 所以d1Q2 = d2Q1 = d1d2G 相关字段:supported_groups, ec_point_format
参考:
https://blog.csdn.net/mrpre/article/details/52609087 RSA算法原理
https://blog.csdn.net/mrpre/article/details/78025940 RSA、DHE、ECDHE、ECDH流程与区别
https://www.likecs.com/default/index/show?id=124371 图解ECDHE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)