查看原文
其他

基于椭圆曲线的混合加密方案(ECIES)

杨赟博 隐私计算研习社 2024-01-09



0

前言

借助 ECC(椭圆曲线密码),我们可以在利用公钥加密的强大功能的同时,实现对称加密的速度和安全性,因此我们慢慢转向实际场景,围绕以下几个分类展开:

(1). 公钥密钥交换协议: ECDH (P256), ECDH (P384), ECDH (P521), X25519 and X448.

(2). 公钥加密: RSA and ECIES.

(3). 基于哈希的密钥推导(HKDF): SHA256, SHA384 and SHA512.

(4). 对称加密: 128-bit AES GCM and 256-bit AES GCM.

以上所有的加密算法都与大多数系统兼容,Bob 和 Alice 可以选择一条椭圆曲线来定义他们的密钥对,然后使用给定的哈希算法计算加密密钥,这些通常都是通过 HKDF(HMAC 密钥派生函数)实现的。对于在实际场景中,我们通常使用对称加密,因为这比公钥加密快得多。

总而言之,有一个普遍的趋势是使用 AEAD(带有附加数据的身份验证加密),其中一个典型的模式是 GCM。


1

混合加密体制

接下来,让我们使用混合加密方法:

现在,假设 Bob 将向 Alice 发送一条加密消息,首先 Alice 生成一对密钥(公钥和私钥),然后她将公钥发送给 Bob,Bob 使用公钥计算用于加密 (S) 的对称密钥。

随后,Bob使用 K 和 AES GCM 加密算法对消息进行加密,Bob 得到对应的密文 (C) 和 R 的值。从 R 中,Alice可以从她的私钥中导出 S,使用此密钥,她可以解密密文以导出明文消息。

为了在 RSA 中实现这一点,Alice 会创建一个随机的对称密钥 (KA),然后用 Bob 的公钥加密它,然后用 KA 加密一个文件。然后她将加密密钥 (E_pk(KA)) 和加密文件发送给 Bob,然后他将解密加密密钥以得到KA,然后可以解密文件,以下(图1)是混合加密模式的示意图。

图1 混合加密体制


2

混合加密的实现

但是,椭圆曲线方法不能直接用来加密数据,所以让我们看看这些方法是如何做到的。

在椭圆曲线的环境中, Alice 生成一个随机私钥 (dA),然后在椭圆曲线 (G) 上取一个点并确定她的公钥 (QA):  QA=dA×G

因此G 和QA都是椭圆曲线上的点,Alice 然后将QA发送给 Bob,随后Bob 生成:R = r × G和S = r × QA,其中 r 是 Bob 生成的随机数 (nonce),然后使用对称密钥 (S) 来加密消息。

然后Alice收到加密的消息以及R,她能够通过以下方式确定相同的加密密钥:S = dA × R,这是因为:

S = dA ×( r × G )

S = r × ( dA × G )

S = r × QA

这与 Bob 生成的密钥相同,一旦Alice有了 S,她就有了加密文件的对称密钥,然后可以解密它,以下(图2)是本方法的示意图。

图2 混合加密的实现

3

总结

虽然 RSA 仍然是最常见的公钥加密形式,但 ECIES 提供了公钥加密丰富的功能类型和对称加密的速度,与此同时,RSA 可以和对称加密一起使用,我们通常使用公钥来加密对称密钥,所以RSA可以用来加密我们的对称密钥。

本文来源: 

https://medium.com/asecuritysite-when-bob-met-alice/elliptic-curve-integrated-encryption-scheme-ecies-encrypting-using-elliptic-curves-dc8d0b87eaa

作者: Prof Bill Buchanan OBE

翻译: 杨赟博

分享仅供学习参考,若有不当,请联系我们处理

END

往期推荐


1.2023年欧密会收录109篇报告,《针对SIDH的高效密钥恢复攻击》获会议最佳论文
2.会议信息 | 2023年7月截稿的密码学与信息安全会议整理
3.全球最新研究 | 2023年5月联邦学习技术动态
4.笔记分享 | 组队学习同态加密(1)——全同态加密基础知识


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存