最安全的加密算法

时间:2011-02-10 11:29:26

标签: python encryption

我得到了这个假设的问题:

“奥萨玛从死里复活,想要复仇。他现在想要与世界各地的卧铺细胞沟通并策划一次袭击。但他必须确保知道其他人得到它,因此,希望将其发送给加密的形式。他招募了你的工作。为短信设计一个带加密和解密模块的系统。“

我目前正在考虑采用加密/解密方案:

enter image description here

现在我想了解用于实现上述方案的最佳PKC和SKC以及Hash函数。我对net on best algorithm进行了一些研究,并将我的算法选择范围缩小到以下:

哈希:MD5

PKC:RSA或Diffie-Hellman

SKC:DSA

请您建议我是否遗漏了某些东西或者有更好的/新的算法。

我打算在python中实现它。

修改

在阅读回复后,我想我应该遵循以下内容:

哈希:SHA-2

PKC:ECC

SKC:AES

有关提供这些算法的python库的任何建议。

4 个答案:

答案 0 :(得分:2)

简短的回答是:如果你自己做的话就不安全。

Cryptography提供了一些基本工具,例如对称加密或数字签名。将这些工具组装成通信协议是非常困难的,当我调用魔鬼的名字时我的意思是:它看起来很简单,但是有许多细节,并且众所周知魔鬼隐藏在细节。

此处的问题类似于“安全电子邮件”,并且有两个主要协议:OpenPGPCMS(在S/MIME中使用)。查看它们:您将看到解决问题的方法并不容易。对于实现,只需使用现有的库,例如M2Crypto

自1996年以来,MD5一直存在缺陷,自2004年以来被认为已完全破裂。您应该尝试获取更多最新资源。

答案 1 :(得分:0)

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

Hash:任何SHA-2个家庭(sha-224/256 / 384/512)

PKC:ECC (Elliptic Curve Cryptography)

其他相关信息:Elliptic curve Diffie–HellmanElliptic Curve DSA

还可以通过Applied Cryptography

阅读other booksBruce Schneier

答案 2 :(得分:0)

对于您的SKC,AES是比DSA更现代的标准,尽管DSA的破坏方式与MD5不同。

严格来说,该问题不需要发件人身份验证或不可否认,因此也不需要数字签名。

答案 3 :(得分:0)

很多非对称加密技术容易受到量子密码学的影响。如果你是奥萨马你正在与国家安全局对抗,那么可以肯定他们有一台量子计算机坐在某个地方。

能够提供完美保密的唯一系统是One Time Pad,这就是satalites使用它的原因。

基本上是一块随机数据,你对消息进行异或,用密钥生成密文并再次使用密钥生成明文。

**优点:** Eliptic

  • 完美保密

<强>缺点:

  • 键是消息的长度。
  • 无法在不泄露两条消息明文的情况下重新使用密钥

在反馈模式下使用AES后备来加密用于文档签名和HMAC的messageselliptic曲线加密,以确保消息完整性。

Pycrypto是一个python库,包含您自己实现此功能所需的一切。