Encryption ECIES是公共加密算法吗?

Encryption ECIES是公共加密算法吗?,encryption,cryptography,elliptic-curve,ecdh,ecies,Encryption,Cryptography,Elliptic Curve,Ecdh,Ecies,我已经实现了RSA加密算法来加密数据加密中使用的对称密钥,但是RSA的密钥大小和密文大小造成了内存问题,因此我搜索了其他公钥加密方法来寻找解决方案。我发现了椭圆曲线集成加密方案(ECIES)并理解其背后的理论,但是,我有点不清楚该方法如何用作公共/非对称加密算法。该方法使用从加密和解密的共享密钥派生的密钥(使用相同的密钥)计算对称加密 那么,如何将其视为非对称加密算法呢? 或者有什么方法可以将其实现为非对称加密?Meta:这不是一个真正的编程或开发问题。它可能属于crypto.SX;您可能会要求

我已经实现了RSA加密算法来加密数据加密中使用的对称密钥,但是RSA的密钥大小和密文大小造成了内存问题,因此我搜索了其他公钥加密方法来寻找解决方案。我发现了椭圆曲线集成加密方案(ECIES)并理解其背后的理论,但是,我有点不清楚该方法如何用作公共/非对称加密算法。该方法使用从加密和解密的共享密钥派生的密钥(使用相同的密钥)计算对称加密

那么,如何将其视为非对称加密算法呢?
或者有什么方法可以将其实现为非对称加密?

Meta:这不是一个真正的编程或开发问题。它可能属于crypto.SX;您可能会要求迁移

确切地说,ECIES是一种混合公钥加密方案,但大多数其他方案也是如此。例如,正如您所说,RSA通常用于加密工作(每条消息)对称密钥,而不是直接加密数据

  • (通常提前)Bob生成一个(静态)密钥对并真实地发布公钥(例如使用证书)
  • 2-5。Alice生成一个临时密钥对,导出共享DEK,对数据进行加密,并将其与临时公钥一起发送 (编辑)并销毁临时私钥

  • Bob使用他的私钥派生DEK并解密数据
  • 根据评论,在下面添加并扩展:是的,DEK在两端都是相同的(注意我使用的“the”表示一个而不是几个),这就是这个方案有效的原因;ECIE中使用DEK进行数据加密和解密的部分是对称的,但所有其他操作(安全地创建临时共享DEK)都不是对称的

    重要的是,除了爱丽丝(或鲍勃)之外,没有人知道她短暂的私钥;如果他们这样做了,他们可以解密。但她不需要明确地保守秘密,因为她在使用它发送消息后会立即销毁它;这就是短暂的意思

    让我们看看:

    • 收件人的公钥是公共的,任何人都可以加密

    • 收件人拥有(静态)私钥,可以解密

    • 没有其他人拥有Bob(静态)私钥或Alice的短暂私钥,也没有其他人可以解密

    • 收件人只需要一个密钥对;如果有多个发送者,他们都可以使用相同的公钥,但不能解密彼此的流量,也不需要秘密获取公钥;对于一千或一百万的发送者来说,这与一个发送者的成本相同,或者只比一个发送者多一点

    请考虑标准/传统对称方案的特性:

    • 双方必须事先共享一个密钥(只有一个,不是一对);双方都必须保守秘密,不得与任何人分享

    • 这通常要求双方提前会面,或使用物理安全手段,如快递员,将钥匙从一方带到另一方,或可能从中央机构带到双方

    • 每把钥匙只能由一对当事人使用;对于多个发送者,Bob必须拥有并管理这么多不同的密钥,每个发送者(Alice、Abby、Anne等)必须拥有不同的密钥。在与Bob沟通之前,每个发件人必须单独会见Bob,或者每个人必须有一个或两个单独的快递员。对于一千或一百万发送者来说,这将是非常昂贵的

    ECIES没有常规或对称系统的这些属性,也没有上述公钥或非对称系统的所有属性,尽管它在非对称操作中也使用了一些对称操作


    这就是为什么我觉得它像(混合)公钥加密

    @dave_thompson_085很好地解释了这个概念。然而,我想添加一个例子来说明这一点

    例如:

    • Alice生成公共“qA”和私钥“dA”
    • 艾丽斯把她的公钥传给鲍勃
    • Bob使用该公钥生成一对随机对称密钥(R和S)
    • Bob使用密钥“S”对消息进行加密,并将该密文连同密钥“R”一起发送给Alice
    • 有了这个“R”密钥,Alice可以将她的私钥“dA”相乘,生成对称密钥“S”来解密密文


    所以消息是用对称密钥加密的,但是在网络上它是不对称的,因为只有公钥在网络上交换,用于为接收方生成对称密钥,而私钥用于在发送方生成相同的对称密钥。

    Bob生成密钥对并发布公钥
    1。Bob的公钥,KB:KB=kbG,其中kb是他随机选择的私钥:kb∈[1,n-1]
    2-5。Alice生成临时密钥对,导出共享DEK,加密数据,并使用临时公钥发送数据。生成一个随机数r∈[1,n-1]2。计算R=rG临时密钥对:R和r3。导出共享DEK:Se=rKB 4。加密消息:c=E(S;m)5。发送c | | R
    6-7 Bob使用私钥派生DEK并解密数据
    6。派生共享DEK:Sd=kbR 7。解密消息:m=D(S;c)
    上述假设是否正确?
    在上述过程中,加密和解密的DEK相等:
    DEK In encryption Se=rKB
    DEK In decryption Sd=kbR=kbrG=rkbG=rKB=Se
    此外,我们使用对称加密算法计算加密/解密,那么它是如何进行公钥加密的呢?我想我的想象有点不对劲,你能解释一下吗?这将对我很有帮助。我们需要保守r(短暂密钥)的秘密吗?我称之为描述而不是假设,但是的,描述与我和维基百科的描述相同。私钥不能是ex