什么是 Elliptic Curve Integrated Encryption Scheme (ECIES)?
Elliptic Curve Integrated Encryption Scheme (ECIES) 是一种混合加密方法,将公钥技术与高速对称加密结合,用来保护消息隐私并防篡改。可以把它视作为你的消息生成的一把一次性锁,然后用快速的对称算法封装,并加上能检测窥视的校验标签。
“ECIES 直接用曲线对数据加密。” 并非如此。它使用 椭圆曲线密码学 (ECC) 协商共享密钥,然后把主要工作交给对称加密算法和消息认证码。
Elliptic Curve Integrated Encryption Scheme (ECIES) 的工作原理
想象 Alice 在链上或通过钱包给 Bob 发送私密信件。Elliptic Curve Integrated Encryption Scheme (ECIES) 为他们快速生成新的临时共享密钥,然后对消息进行封装。
- 步骤 1:Bob 有一个公钥。Alice 想把一条秘密消息发给 Bob。
- 步骤 2:Alice 生成一对新的临时密钥,并与 Bob 的公钥使用 椭圆曲线 Diffie Hellman (ECDH) 协商出共享密钥。
- 步骤 3:Alice 将该共享密钥输入密钥派生函数,从而得到两把密钥:一把用于加密,一把用于完整性校验。
- 步骤 4:Alice 使用快速的对称算法,例如 AES 对消息进行加密。
- 步骤 5:Alice 对密文和元数据生成校验标签,并发送给 Bob 三样东西:她的临时公钥、密文和标签。
Bob 重复相同的计算以得到相同的密钥并解密消息。简洁且高效。
为什么 Elliptic Curve Integrated Encryption Scheme (ECIES) 很重要
它能在不降低性能或增加繁琐协同的前提下保护隐私。因此在现代 密码学 中,遇到需要小型密钥和可靠完整性校验的场景时,这是常用的模式。
- 优点:小密钥和快速性能带来强隐私保护,即便在手机上也能表现良好。
- 说明:混合设计结合了曲线和对称加密的优点,适配当前的钱包、节点和轻客户端组合。
- 适用场景:常见于钱包间消息、点对点握手,以及 dApp 和 DAO 的加密便笺。
每次都要使用新的随机数。使用 Elliptic Curve Integrated Encryption Scheme (ECIES) 时,每条消息都应生成新的临时密钥,并采用经审计的库。重用会导致密钥泄露。
Elliptic Curve Integrated Encryption Scheme (ECIES) 的主要特性
在构建或审查钱包代码时,以下是它的突出点:
- 混合:用曲线做密钥协商,对称加密提供速度,并用标签保证完整性。
- 紧凑:公钥尺寸小,消息简短却仍能提供强安全性。
- 前向保密:采用新的临时密钥后,即便长期密钥泄露,历史消息仍保持安全。
- 可移植:各组件可替换,例如加密算法、KDF 和标签算法,便于适配不同生态。
变体
不同实现会使用不同组件组合 ECIES。常见的配置项包括:
- 曲线:用于密钥协商的曲线有 secp256k1、P 256 或 X25519。
- 加密算法:AES GCM 可用于一体化加密与标签,或使用 AES CBC 加 HMAC 的两段式方案。
- KDF:使用 HKDF 或 KDF2 将共享秘密转换为工作密钥。
- 编码:公钥可采用压缩或非压缩形式,标签可包含可选的关联数据。
Elliptic Curve Integrated Encryption Scheme (ECIES) 提供机密性和完整性,但不提供签名功能。如果需要证明发送者身份,应在其之上添加签名。
示例
以太坊客户端通常通过类似 ECIES 的握手启动会话以实现私密通信,然后切换到快速的流密码来处理后续流量。
趣闻
ECIES 常被描述为 KEM 加 DEM,即密钥封装加数据加密。可把它理解为为密钥提供优雅的数学,为载荷提供实用的加密,两者结合兼顾理论与实用。
总结
简短结论:Elliptic Curve Integrated Encryption Scheme (ECIES) 是一种生成新共享密钥、快速加密并验证消息未被篡改的方案。简明、可靠,适合投入生产使用。
