我使用ECIES (如雨衣所指出的密码箱)在Alice和Bob之间使用ECC进行公钥加密,密钥分别为$(a,A)$和$(b,B)$。所以艾丽斯用
$$加密(aB,Message) $$
此外,我想加密一些爱丽丝的数据,只有她才能解密。使用ECIES从Alice的密钥和公钥中计算共享秘密是否安全,如
$$加密(aA,Message) $$
我知道我可以随机生成一个公钥,但是我必须把这个密钥存储在我想要避免的地方。
发布于 2018-01-24 15:09:30
是,但是我相信原因比fgrieu给出的要微妙一些。
从你的问题中,我不认为你实际上是在做标准的ECIES,而是像NaCl的密码箱(这是一个变体)。
使用标准的ECIES,为了对公钥$A$进行加密,加密器选择一个随机值$r$,并生成密文:
$$rG,\text{Encrypt}( rA,\text{Message} )$$
相反,对于Cryptobox,Bob不选择随机值,而是使用自己的私钥。也就是说,要加密到Alice的公钥$A$,他将获取他的私钥$b$,并生成:
$$\text{Encrypt}( bA,\text{Message} )$$
这实际上是ECIES (隐含了$bG$值;这是Bob的公钥)。由于Bob的私钥是随机的(独立于Alice的密钥),只要标准ECIES是安全的,这是安全的。
然而,这提出了一个问题:如果Alice对自己加密了怎么办?那还安全吗?由于Alice的私钥不是独立于Alice的公钥的随机值,所以这不会立即从ECIES的安全性中得到。
在这种特殊情况下,结果证明是安全的。具体来说,“给定$G,aG$,compute $(a^2)G$”(这是解密爱丽丝的消息所需的)问题与“给定$G、aG、bG$、计算$(ab)G$”的一般问题一样困难。也就是说,给出一种解决方法,你可以解决另一种。
:实际上,我认为Bob包括了一个使加密变得不起威慑作用的“现在”;这对解释来说并不重要。
:实际上,我们需要假设这个构造没有泄漏Bob私钥的信息,而且即使重复相同的随机值,ECIES也是安全的;事实就是这样。
https://crypto.stackexchange.com/questions/54989
复制相似问题