我是ECC加密编程的初学者。 有没有人向我解释使用ECDH进行共享密钥交换和使用ECIES加密共享密钥和接收方公钥的区别? 我觉得只要私钥保密,ECIES也可以为我提供安全的密钥交换。 谢谢。
答案 0 :(得分:2)
ECDH是一种共享秘密派生协议。双方使用他们自己的私人密钥"和他们的伴侣"公钥"生成共享秘密。通常,私钥是用于密钥协商的随机数,然后被丢弃。
ECIES使用与ECDH相同的方案来生成"共享密钥",其中一个"私钥"是一个随机数,其对应的公钥包含在消息本身中。这意味着共享秘密只能由具有其他私钥的人派生。然后使用共享密钥作为密钥,使用AES等其他方案对消息本身进行加密。
如果您正在进行密钥协商,那么ECDH就是您的选择。 (强制性说明:当然,您不应该为生产系统推出自己的加密,只需使用TLS。)