最安全的加密算法

3 投票
4 回答
5310 浏览
提问于 2025-04-16 11:34

我遇到了一个假设性的问题:

“奥萨马复活了,想要报仇。他现在想和全球的潜伏细胞沟通,计划一次攻击。但他必须确保其他人无法理解这些信息,因此他想以加密的形式发送消息。他招募了你来完成这个任务。设计一个包含加密和解密模块的系统,用于文本消息。”

我目前考虑的加密/解密方案如下:

enter image description here

现在我想了解一下,哪种公钥加密(PKC)、私钥加密(SKC)和哈希函数最适合实现这个方案。我在网上做了一些研究,缩小了我的算法选择,结果如下:

哈希:MD5

公钥加密:RSA或Diffie-Hellman

私钥加密:DSA

你能告诉我是否有什么我遗漏的,或者有没有更好/更新的算法吗?

我计划用Python来实现这个。

编辑:

在阅读了回复后,我觉得我应该选择以下方案:

哈希:SHA-2

公钥加密:ECC

私钥加密:AES

有没有关于Python库的建议,可以提供这些算法?

4 个回答

0

对于你的SKC来说,AES是一种比DSA更新的标准,虽然DSA并不像MD5那样有明显的漏洞。

严格来说,这个问题并不需要发送者的身份认证或者不可否认性,所以数字签名也就不是必须的。

2

简单来说,如果你自己来做,这个事情就不可能安全。

加密技术提供了一些基本工具,比如对称加密和数字签名。把这些工具组合成一个通信协议是非常复杂的,真的很难。看起来好像简单,但实际上有很多细节,而细节里往往藏着问题。

你的问题就像是“安全邮件”,有两个主要的协议可以用:OpenPGPCMS(在S/MIME中使用)。你可以去查一下,解决这个问题并不简单。对于实现,建议使用现成的库,比如M2Crypto

MD5从1996年就被发现有弱点,2004年后被认为完全不安全。你应该找一些更新的资料。

0

如果你真的想要“更好”的算法:

哈希算法:可以选择 SHA-2 系列(比如 sha-224/256/384/512)

公钥密码学:椭圆曲线密码学(ECC)

其他相关信息:椭圆曲线迪菲-赫尔曼算法椭圆曲线数字签名算法(ECDSA)

还可以看看 《应用密码学》布鲁斯·施奈尔 的其他书籍

撰写回答