本文描述了使用ECIES加解密时的计算步骤。ECIES加密可以认为是先基于ECDH协商密钥,再用刚刚协商一致的密钥进行对称加密,这样能够结合非对称加密和对称加密的优点。
前提
为了向Bob发送ECIES加密信息,Alice需要以下信息:
- 密码学套件(
,
,对称加密
)
- 椭圆曲线
- Bob的公钥:
(
,
)
- 共享信息:
,
- 无穷远点
加密步骤
Alice加密消息的步骤如下:
- 生成随机数
,计算
。 (生成临时密钥对)
- 导出共享密钥:
,其中
,(
)。 (ECDH密钥协商)
导出对称加密密钥和
密钥:
。
- 加密消息
:
。 (对称加密消息)
- 计算加密后的消息和
的
:
- 输出:
解密步骤
Bob解密密文的步骤如下:
- 导出共享密钥:
,其中
,(Bob与Alice会计算出相同的结果,因为
)
- 导出与Alice相同的密钥:
- 验证
,如果
则失败
- 解密密文: