Encryption 一种简单的椭圆曲线密码方法

Encryption 一种简单的椭圆曲线密码方法,encryption,cryptography,public-key-encryption,elliptic-curve,Encryption,Cryptography,Public Key Encryption,Elliptic Curve,为了学习ECC加密算法,我正在做一个项目&我正在OCaml中实现它。我在网上很难找到这个问题的答案: 是否有类似于Elgamal和RSA的非对称加密算法,使用ECC而不是对称密钥协议,即通过ECC Diffie-Hellman?对于我们来说,一个简单的方法就可以了。是的。例如,有椭圆曲线Elgamal和其他几种使用椭圆曲线的非对称密码系统 Elgamal和Diffie-Hellman都基于离散对数问题:给定整数{1,2,…,p-1},一个生成器g,很容易计算g^k。然而,给定{1,2,…,p-1

为了学习ECC加密算法,我正在做一个项目&我正在OCaml中实现它。我在网上很难找到这个问题的答案:


是否有类似于Elgamal和RSA的非对称加密算法,使用ECC而不是对称密钥协议,即通过ECC Diffie-Hellman?对于我们来说,一个简单的方法就可以了。

是的。例如,有椭圆曲线Elgamal和其他几种使用椭圆曲线的非对称密码系统

Elgamal和Diffie-Hellman都基于离散对数问题:给定整数{1,2,…,p-1},一个生成器g,很容易计算g^k。然而,给定{1,2,…,p-1}中的某个元素x,应该很难找到k,使得g^k=x

对于椭圆曲线,我们有一些类似的东西:给定一条am椭圆曲线和一个生成点p,很容易将一个点乘以一个整数k。但我们相信,给定一个点Q,很难找到k,使得Q=kP

这个问题已在本节中提出

还有一个很好的椭圆曲线密码的描述,包括ECElgamal

如果您要实施Elgamal,请给出一些注释:

Elgamal是同态的,正如有人在评论中提到的那样。如果你不想要同态属性,使用一些盲法。 Elgamal将使加密文本比纯文本大得多。 密码方法的教科书实现通常是有缺陷的。看毛文博的书。
…关于Elgamal,您可以通过生成临时发送方密钥并使用共享密钥进行加密,在DH密钥交换的基础上构建非对称加密。ECIES是一个标准选择,如果需要,您可以简化密钥派生。我不会使用ElGamal,除非你需要它的同态属性。如果是库的话,为了完整性,你确实可以使用ElGamal,但我会注意CodesInChaos的警告。除此之外,没有DH的EC是什么?ElGamal只是使用共享Diffie-Hellman密钥作为一次性键盘,无需身份验证。