我得到了这个假设的问题:
“奥萨玛从死里复活,想要复仇。他现在想要与世界各地的卧铺细胞沟通并策划一次袭击。但他必须确保知道其他人得到它,因此,希望将其发送给加密的形式。他招募了你的工作。为短信设计一个带加密和解密模块的系统。“我目前正在考虑采用加密/解密方案:
现在我想了解用于实现上述方案的最佳PKC和SKC以及Hash函数。我对net on best algorithm进行了一些研究,并将我的算法选择范围缩小到以下:
哈希:MD5
PKC:RSA或Diffie-Hellman
SKC:DSA
请您建议我是否遗漏了某些东西或者有更好的/新的算法。
我打算在python中实现它。
修改
在阅读回复后,我想我应该遵循以下内容:
哈希:SHA-2
PKC:ECC
SKC:AES
有关提供这些算法的python库的任何建议。
答案 0 :(得分:2)
简短的回答是:如果你自己做的话就不安全。
Cryptography提供了一些基本工具,例如对称加密或数字签名。将这些工具组装成通信协议是非常困难的,当我调用魔鬼的名字时我的意思是:它看起来很简单,但是有许多细节,并且众所周知魔鬼隐藏在细节。
此处的问题类似于“安全电子邮件”,并且有两个主要协议:OpenPGP和CMS(在S/MIME中使用)。查看它们:您将看到解决问题的方法并不容易。对于实现,只需使用现有的库,例如M2Crypto
自1996年以来,MD5一直存在缺陷,自2004年以来被认为已完全破裂。您应该尝试获取更多最新资源。
答案 1 :(得分:0)
如果你真的想要“更好”的算法:
Hash:任何SHA-2个家庭(sha-224/256 / 384/512)
PKC:ECC (Elliptic Curve Cryptography)
其他相关信息:Elliptic curve Diffie–Hellman,Elliptic Curve DSA
还可以通过Applied Cryptography
阅读other books和Bruce Schneier答案 2 :(得分:0)
对于您的SKC,AES是比DSA更现代的标准,尽管DSA的破坏方式与MD5不同。
严格来说,该问题不需要发件人身份验证或不可否认,因此也不需要数字签名。
答案 3 :(得分:0)
很多非对称加密技术容易受到量子密码学的影响。如果你是奥萨马你正在与国家安全局对抗,那么可以肯定他们有一台量子计算机坐在某个地方。
能够提供完美保密的唯一系统是One Time Pad,这就是satalites使用它的原因。
基本上是一块随机数据,你对消息进行异或,用密钥生成密文并再次使用密钥生成明文。
**优点:** Eliptic
<强>缺点:强>
在反馈模式下使用AES后备来加密用于文档签名和HMAC的messageselliptic曲线加密,以确保消息完整性。
Pycrypto是一个python库,包含您自己实现此功能所需的一切。