我的任务是构建一个实现E2EE的Web组装站点。我想用ElGamal加密来加密消息,用Diffie-Hellman来建立密钥。在做了进一步的研究之后,我很难理解使用ElGamal和Diffie-Hellman的实际用例。
如果我理解得对的话。和ElGamal都依赖于离散对数问题,这使得它们都是理想的。Diffie-Hellman只在两个主机之间建立密钥,然后使用对称密码系统发送消息。ElGamal对消息进行一次加密,使用与Diffie相同的方法,然后每次都必须重新生成,这是缓慢和耗时的。所以我认为Diffie-Hellman在用户频繁通信的情况下最好,而ElGamal则是一次文件传输的最佳选择。
因此,我正在辩论在我的网络应用程序中使用哪一种。我最初想同时使用Diffie-Hellman和ElGamal。现在,我想用Diffie-Hellman在双方之间建立一个密钥,然后使用像AES这样的对称加密方案。
我发现特别有用的一篇文章是https://www.commonlounge.com/discussion/2be4d294aa9e44d4b67f6644cd9b5ced。
特别是标题“实际使用和应用”
如果我使用Diffie-Hellman & AES,那么密钥需要再生多久一次?
我希望有人能确认我是否正确地理解了实际用途,并帮助填补了我理解中的任何空白。
谢谢!
发布于 2021-10-23 20:46:44
您可能需要经过身份验证/混合加密,而且在您使用的任何密码库中都可能存在高级函数。
以下是他们在BouncyCastle中使用IES的另一个问题:
https://stackoverflow.com/questions/33297274/using-bouncycastle-to-encrypt-with-ecies-in-java
https://crypto.stackexchange.com/questions/95739
复制相似问题