首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECIES与RSA + AES之争

ECIES与RSA + AES之争
EN

Cryptography用户
提问于 2020-12-03 04:16:42
回答 1查看 1.2K关注 0票数 10

我对RSA和ECC (椭圆曲线)在加密方面的区别感到困惑,如果有人能确认我的理解是否正确,我会很感激。

使用RSA加密大文件:

  1. 生成随机对称密钥
  2. 使用对称密钥加密文件(例如,AES)
  3. 然后使用接收方的公钥加密对称密钥
  4. 发送加密文件+加密对称密钥
  5. 接收方获取加密的对称密钥并使用他的私钥对其进行解密。
  6. 然后,接收方使用解密的对称密钥解密文件。

但是,如果我正确理解,使用ECC加密是完全不同的,特别是顺序:

  1. 与其生成随机对称密钥,不如使用ECDH (使用发送方私钥和接收方公钥)“派生”它。
  2. 然后使用导出的对称密钥(AES)加密文件。
  3. 把这个交给接受者
  4. 接收方使用ECDH (与步骤1相同的逻辑)导出相同的共享密钥。
  5. 接收方使用AES解密解密文件。

在ECIES中没有所谓的“非对称加密”。只有对称加密使用AES,但它的工作方式类似非对称加密,因为共享密钥是使用非对称加密技术生成的。

问题

1.是这样吗?

我理解得对吗?是否没有办法创建一个与每个人共享的“单一加密文件”(相反,您必须为每个接收方生成一个不同的加密文件)?

2.只有接收者才能打开它的更高的保证?

假设您有效地为每个用户生成了不同的版本。这是否意味着ECIES (虽然在生成和存储的数据方面比较浪费)有更高的保证只有接收方能够打开消息?因为在RSA + AES的情况下,只有一个加密文件。如果会话密钥被泄露,任何人都可以解密,而在ECIES中,如果接收方想泄漏消息,则需要泄漏他的私钥。这是正确的吗?

3.如何有效地向多方广播?

如果是这样的话,我将如何有效地实现一条消息的1到N广播加密?

例如,假设我想向1000人发送一个1GB文件。每个人都有相同的文件。

  1. RSA+AES:使用RSA + AES,我可以对文件进行一次加密,并且只能生成N个不同的加密密钥。假设加密文件为2GB,每个加密密钥为1KB。这意味着我最终要传输2GB + 1000*1KB的数据。
  2. ECIES:但使用ECIES时,我必须生成N个唯一的加密文件,这意味着2GB * 1000 = 2TB的数据要传输。

如果我的理解是正确的,这种ECIES方法的规模不如RSA+AES。我有误解什么吗?如何为ECIES实现加密消息广播?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2020-12-03 07:35:06

  1. 这是正确的吗?

这些原则是正确的,但缺少一些细节。其中包括:

  • 对于RSA
    • “加密文件”不能只与AES一起使用,因为这是一个128位的分组密码,而且超过16个字节是不安全的。这涉及到一个运行模式,很可能需要生成一个初始化向量。使用经过身份验证的加密是个好主意(尽管在上下文中它不会提供身份验证,因为我们正在处理公钥加密,任何人都可以加密任何东西)。还有垫子。
    • “使用接收者的公钥加密对称密钥”并不是适用于对称密钥的教科书RSA。某些填充模式(如PKCS#1v2.2的RSAES OAEP,或(在RSA-KEM中)用于加密文件的对称密钥)是由一些密钥派生函数从更宽的密钥派生出来的,其本身通过从字节串到整数的转换、教科书的RSA加密以及从整数到字节串的转换而得到加密。

  • 代表ECIES
    • 在每次使用时,第一步是发送方生成一个随机的临时秘密整数k,计算R\gets k\,G并将其作为密码的一部分,这样Diffie-Hellman (或者是ElGamal)共享密钥k\,Q_V=d_V\,R只能使用一次,并且可以由接收方哪一对私钥/公钥对是(d_V,Q_V)#qcStackCode#使用Q_V=d_V\,G#qcStackCode#恢复。
    • 在密钥派生步骤中,密钥派生函数从共享秘密派生两个对称密钥。
    • 在加密步骤中,其中一个密钥用于加密,生成密文,而在缺失的“标记操作”步骤中,另一个密钥用于生成密文(和可能的其他信息)的消息认证码。否则,使用加密即MAC认证加密是由ECIES强制规定的,当认证加密仅是RSA的良好实践时,其实现方式没有具体说明。

  1. 更高的保证只有接受者才能打开?

不是的。在这两种情况下,只有接收者可以破译,只要底层密码安全。

增加的保险ECIES来自强制使用认证加密。非正式地说,不可能发生攻击者部分更改消息,或者被修改消息的接收方所做的解密被滥用于允许攻击者破译真实消息的情况。在任何情况下,都不会对消息进行身份验证,因为不涉及发送方公钥/私钥对。

  1. 如何有效地向多方广播?

这是ECIES和RSA在使用RSA-KEM时的一个问题:由于对称密钥是由非对称密码系统派生的,所以对于多个接收者来说,它不可能是相同的。

解决方案是绘制一个随机对称认证加密密钥(例如,用于文件大容量的AES-GCM),如在RSA中使用RSAES-OAEP;并使用ECIES或RSA-KEM加一些密码对多个接收者加密该密钥。在RSA-KEM的情况下,使用经过身份验证的加密来加密密钥仍然是个好主意,这样就不需要抵抗来自大部分文件所使用的密码的相关密钥攻击。

票数 10
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/86638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档