Encryption ECIES是公共加密算法吗?
我已经实现了RSA加密算法来加密数据加密中使用的对称密钥,但是RSA的密钥大小和密文大小造成了内存问题,因此我搜索了其他公钥加密方法来寻找解决方案。我发现了椭圆曲线集成加密方案(ECIES)并理解其背后的理论,但是,我有点不清楚该方法如何用作公共/非对称加密算法。该方法使用从加密和解密的共享密钥派生的密钥(使用相同的密钥)计算对称加密 那么,如何将其视为非对称加密算法呢?Encryption ECIES是公共加密算法吗?,encryption,cryptography,elliptic-curve,ecdh,ecies,Encryption,Cryptography,Elliptic Curve,Ecdh,Ecies,我已经实现了RSA加密算法来加密数据加密中使用的对称密钥,但是RSA的密钥大小和密文大小造成了内存问题,因此我搜索了其他公钥加密方法来寻找解决方案。我发现了椭圆曲线集成加密方案(ECIES)并理解其背后的理论,但是,我有点不清楚该方法如何用作公共/非对称加密算法。该方法使用从加密和解密的共享密钥派生的密钥(使用相同的密钥)计算对称加密 那么,如何将其视为非对称加密算法呢? 或者有什么方法可以将其实现为非对称加密?Meta:这不是一个真正的编程或开发问题。它可能属于crypto.SX;您可能会要求
或者有什么方法可以将其实现为非对称加密?Meta:这不是一个真正的编程或开发问题。它可能属于crypto.SX;您可能会要求迁移 确切地说,ECIES是一种混合公钥加密方案,但大多数其他方案也是如此。例如,正如您所说,RSA通常用于加密工作(每条消息)对称密钥,而不是直接加密数据
- 收件人的公钥是公共的,任何人都可以加密
- 收件人拥有(静态)私钥,可以解密
- 没有其他人拥有Bob(静态)私钥或Alice的短暂私钥,也没有其他人可以解密
- 收件人只需要一个密钥对;如果有多个发送者,他们都可以使用相同的公钥,但不能解密彼此的流量,也不需要秘密获取公钥;对于一千或一百万的发送者来说,这与一个发送者的成本相同,或者只比一个发送者多一点
- 双方必须事先共享一个密钥(只有一个,不是一对);双方都必须保守秘密,不得与任何人分享
- 这通常要求双方提前会面,或使用物理安全手段,如快递员,将钥匙从一方带到另一方,或可能从中央机构带到双方
- 每把钥匙只能由一对当事人使用;对于多个发送者,Bob必须拥有并管理这么多不同的密钥,每个发送者(Alice、Abby、Anne等)必须拥有不同的密钥。在与Bob沟通之前,每个发件人必须单独会见Bob,或者每个人必须有一个或两个单独的快递员。对于一千或一百万发送者来说,这将是非常昂贵的
这就是为什么我觉得它像(混合)公钥加密 @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 | | R6-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