住房和城乡建设部网站北京,游戏开发工作室,天猫建设网站的理由,在线商标设计基于ECC算法的衍生算法
ECDH(ECCDH)RSAECDHE(ECCDHE)
ECDH密钥协商#xff08;ECCDH#xff09;
椭圆曲线密码学是属于非对称密码学的#xff0c;其私钥的计算公式如下#xff1a;
私钥是一个随机数d#xff0c;取值范围在1……n-1,其中n是子群的阶公钥是点HdG#xff…基于ECC算法的衍生算法
ECDH(ECCDH)RSAECDHE(ECCDHE)
ECDH密钥协商ECCDH
椭圆曲线密码学是属于非对称密码学的其私钥的计算公式如下
私钥是一个随机数d取值范围在1……n-1,其中n是子群的阶公钥是点HdGG是子群的基点
如果知道私钥d 和椭圆曲线参数G求公钥H是很容易的但是只知道公钥H和椭圆曲线参数G求解私钥d是非常困难的需要解决离散对数难题椭圆曲线的安全性保证有赖于此。ECDH密钥协商算法基于椭圆曲线密码系统ECC使用较短的密钥长度可提供与RSA或DH算法同等的安全等级密钥长度有160 ~ 256位比特的椭圆曲线算法与密钥长度1024 ~ 3072位比特的非ECC算法安全强度相同。
常用有限域上的椭圆曲线
椭圆曲线由以下参数组成
T(p,a,b,G,n,h)
p 有限域中的大素数长度一般224比特、256比特、384比特a 整数椭圆方程系数b整数椭圆方程系数G椭圆曲线上某点生成元n为一个素数表示椭圆曲线的阶h余因数其中G包含Gx和Gy一共2个参数非压缩模式以04开始压缩模式以03开始实际使用中一般采用非压缩模式通过模数p和系数ab构成椭圆曲线方程y^2x^3axb mod pTLS支持很多椭圆曲线常用的有2个secp256r1和secp284r1 : secp256r1大素数p长度256比特32字节和secp384r1大素数p长度384比特48字节
ECDH密钥协商步骤
ECDH其实和DH思想是一样的只不过这是基于椭圆曲线离散对数实现的。
ECDH共享参数
Alice和Bob进行ECDH密钥协商之前双方要有共同的ECDH共享参数即必须选择相同的椭圆曲线方程、大素数p、生成源G实际中这些椭圆曲线已经被相关组织批准比如上边的secp256r1和secp384r1通过这个双方就确定了这些共享参数
ECHD密钥协商
Alice选择一个比椭圆曲线阶小的随机数HA作为私密参数,计算公钥HAdAG发送给BobBob选择一个比椭圆曲线阶小的随机数HB作为私密参数,计算公钥HBdBG发送给AliceBob收到HA并计算得到共享密钥参数SdBHAAlice收到HB并计算得到共享密钥参数SdAHB
根据椭圆曲线结合律SdAHBdAdBGdBdAGdBHA。目前Alice和Bob就得到了相同的S但是第三方即使知道椭圆曲线和HA、HB的前提下是无法获取S的因为在推导S的时候是需要知道其中一个私钥这必须破解椭圆曲线离散对数难题这个是很难破解的。 应用上一般先利用ECDH协商共享密钥再利用共享密钥计算出对称密钥等其他需要的密钥通信双发对数据进行对称加密安全通信。
问题
如果采用静态的 DH 算法和 ECC 结合就是 ECDH 算法。这种方式每次都使用的相同的 G 基点它的优点在于可以避免每次在初始化连接时服务器频繁生成 G。这个过程比较消耗 CPU。但是它带来的缺点是一旦随机数 a、b 被泄露了那么在这之前的所有会话都将会被解密。为了解决这个问题于是出现了 DHE 算法(Diffie-Hellman Ephemeral 短暂临时的 DH 算法)结合 ECC 后形成了 ECDHE 算法。它可以保证每次通信使用的共享密钥都是不同的DH 密钥对仅仅保存在内存中不像 RSA 的私钥保存在磁盘上攻击者即使从内存中破解了私钥也仅仅影响本次通信所以无需担心在此之前的通信内容会被解密这样的特征成为前向安全性(Forward SecrecyFS)或者完全前向安全性(Perfect Forward SecrecyPFS)。更安全的是协商出会话密钥后a 和 b 两个私钥可以丢弃进一步提升了安全性在有限的时间、有效的空间生成了密钥对。在 TLS 握手中使用的 ECDHE_ECDSA 和 ECDHE_RSA 密钥交换算法。
如下图 参考链接
ECDH密钥协商 https://blog.csdn.net/weixin_41572450/article/details/103207724ECDH密钥交换 https://blog.csdn.net/s_lisheng/article/details/90712333