如何创建自己的密码,而不是使用常见的密码,如AES或blowfish twofish?

时间:2011-01-10 17:01:19

标签: math encryption

我对密码系统背后的重要数学知之甚少,当Z / nZ代数变坏时,我会陷入困境,有时候所有这些都是指数的指数。这不是我不喜欢它,只是你在网上找到的信息不容易盲目追随。

我想知道:算法在将消息编码为普通二进制文件时有多可靠。如果我的算法是任意的并且只有我知道,那么无论是否有解码文件,密码学家如何研究加密文件并对其进行解密?

我正在考虑不使用ASCII文本来编写我的消息,我有一些想法来制作这个算法/​​程序。

对于密码分析者而言,攻击AES或blowfish加密文件比使用加密文件加密的算法更为微不足道,但他怎么做呢?

我不知道我是否表现得很好,但是一位CS老师曾告诉我代码更难破解那些加密的密码。

您怎么看?

5 个答案:

答案 0 :(得分:8)

  

对于密码分析者而言,攻击AES或blowfish加密文件比使用加密文件加密的算法更为微不足道......

怎么样:

  

对于密码分析师而言,攻击未经测试的自编写算法对于密码分析师来说比对文件加密的算法更为简单,这是一个众所周知且经过验证的算法,已经正确使用....

简而言之,不要滚动您自己的加密,除非您是专家,否则除非您是该领域专家组的成员。

当Nintendo在Wii中自己实现RSA时失败了,索尼在PS3中使用它时也失败了(他们几乎使用XKCD的随机数函数来代替M ...)

你真的认为你可以通过默默无闻的安全获胜吗?

PS:这并不意味着您应该在RSA上获取维基百科条目并从该卷开始实现自己的实现(这正是Sony和Big-N失败的原因),没有使用经过测试的开源实现。

答案 1 :(得分:2)

您似乎可以互换地使用两个单词但请记住Encoding is Not Encryption

答案 2 :(得分:1)

如果攻击者不知道您使用了哪种算法并且它是安全的,那么cryptoanalyst就会很难。因此,只要它与AES一样强大且安全,使用AES或您自己的密码就不重要了。这是但是。密码学有点苛刻,因此你有很多方法可以在不知情的情况下用脚射击自己。我建议使用标准算法,也许有一些安全的变化。

答案 3 :(得分:1)

常识是你不应该建立自己的算法,特别是不要依赖这些算法保密。

概念上的原因是良好的加密是关于量化的机密性。我们不希望我们的秘密被破解,但是以更精确的方式,我们希望能够分辨破解我们的秘密所需的成本(并且希望表明成本太高而无法被任何实体设想)地球)。这是第二次世界大战后几年发生的真正进步:理解关键和算法之间的区别。密钥集中了秘密。该算法成为实现。

由于实现已经实现,它作为一些代码或设备存在,即使在不使用时也是有形的并且存储。保持实施秘密需要始终跟踪代码所在的硬盘。如果攻击者看到二进制代码,他可能能够对其进行逆向工程,这取决于他的智慧和耐心。这里的要点是,很难说:“恢复算法描述需花费X美元。”

另一方面,关键是短。它可以更容易地安全存放;例如您可以记住它,并避免将其提交给任何永久存储设备。然后,只有在您使用它时才需要担心您的密钥(而不是在您不使用时,例如在半夜睡觉时)。可能的键数是一个简单的数学问题。在找到密钥之前,您可以轻松准确地估算枚举可能密钥的平均成本。关键是量化安全的坚实基础。

所以你不应该推出自己的算法,因为那时你不知道你获得了多少安全性。

此外,大多数使用自己的算法的人发现,通常很难,他们根本没有获得太多的安全性。设计一个好的加密算法是 hard ,因为它无法自动测试。您的代码可以运行,并正确解密它加密的数据,但它不会告诉您算法的安全性。 AES的设计是一个过程花费了几年的成果,涉及数百名熟练的密码学家(他们大多数拥有博士学位和多年的对称加密学术研究经验)。一个单独的开发人员也可以这样做,更不用说更好了,在他自己的工作室的秘密中,看起来有点......难以置信。

答案 4 :(得分:0)

您策略的最大部分称为“通过默默无闻的安全性”。你正在赌博,因为没有人知道你的想法的微小变化的确切细节,他们将无法弄明白。

我不是安全专家,但我可以告诉你,你可能不会想出一些令人难以置信的新东西。人们已经研究了密码学对千年的影响,你的想法极不可能是原创的。即使你是一个相对优秀的程序员并编写一些非常棘手的东西,问题也将归结为你反对的人。如果您只是想保护您的孩子妹妹的数据,那么它可能会没问题。另一方面,如果您使用它在互联网上发送信用卡号码,那么您注定要失败。它将以您不想或不知道的方式进行分析,并最终破解。

另一种思考方式:像AES这样的算法已经被该领域的专业人士广泛研究,其安全性水平已经得到了很好的理解。你自己想出的任何东西都不会受到那些最优秀和最聪明的人的攻击。在人们开始报告身份盗用之前,你几乎不知道它实际上有多好。