Asymmetric Signature Schemes(非对称签名方案)
- 非对称签名方案用于验证消息的完整性和真实性,以及消息发送者的身份。
- 发送者使用自己的私钥对消息进行签名,接收者使用发送者的公钥来验证签名的有效性。
椭圆曲线 Diffie-Hellman(Elliptic Curve Diffie-Hellman,ECDH)
是一种密钥协商算法,用于在两个通信方之间安全地协商共享密钥,以便进行加密通信。
数学原理可参考博客
下面是ECDH算法的基本流程:
- 选择椭圆曲线和基点:
通信双方事先约定使用的椭圆曲线参数,包括椭圆曲线的方程、模数、基点等。这些参数通常由标准定义,例如NIST曲线或SECG曲线。基点(Generator Point)是椭圆曲线上的一个固定点,用于生成公钥。 - 生成私钥和公钥:
每个通信方都生成自己的私钥和公钥。私钥是一个随机选择的整数,通常在曲线的阶数范围内。公钥是私钥乘以基点的结果,即公钥 = 私钥 * 基点。 - 交换公钥:
通信双方交换彼此的公钥。这可以通过安全的通信渠道完成,以防止中间人攻击。 - 计算共享密钥:
每个通信方使用对方的公钥和自己的私钥计算共享密钥。计算方法是将对方的公钥乘以自己的私钥,或将自己的公钥乘以对方的私钥。结果是相同的共享密钥。 - 密钥派生(可选):
在一些协议中,ECDH协商的共享密钥可能需要进一步处理才能得到最终用于加密的密钥。这可能包括使用哈希函数对共享密钥进行处理,或者将共享密钥用作对称密钥加密算法的密钥。
ECDH算法利用椭圆曲线上的离散对数难题来确保安全性。即使在已知公钥和椭圆曲线的情况下,计算私钥也是非常困难的。因此,即使攻击者拥有双方的公钥,也无法轻易推导出共享密钥,从而确保了通信的保密性。 ECDH算法在TLS、SSH、IPsec等安全通信协议中得到了广泛的应用。