【问题标题】:When designing an encryption algorithm what are the key factors that determine what the algorithm would do? [closed]在设计加密算法时,决定算法做什么的关键因素是什么? [关闭]
【发布时间】:2011-09-06 13:00:31
【问题描述】:

我正在研究一个设计我自己的对称加密算法的小项目。它将主要用于文件加密。 这样一个项目的设计流程是怎样的?

【问题讨论】:

  • 希望有建设性的批评:如果你不得不问这个问题,那么你的加密很可能是无用的。换句话说,你将成为施奈尔定律的体现:“任何人,从最无知的业余爱好者到最优秀的密码学家,都可以创建自己无法破解的算法。”
  • 不要这样做,如果你还没有足够的密码学背景(即分析一些其他算法,阅读大量论文等),否则你的算法将很容易被破解。使用既定的算法,如果可能的话,也使用既定的协议/文件格式。
  • 感谢您的建设性批评,我之前收到过很多相同的反馈。问题是,这是一个项目,我不打算将其发布给外部公众。

标签: algorithm encryption cryptography aes


【解决方案1】:

第一课 - 不要。

第二课 - 学习cryptanalysis。如果您不知道加密方案是如何被破解的,您将如何评估您自己的算法的“强”或“弱”程度。

然而,我上面链接的自学论文有点老化。还有一些较新的攻击(例如最近针对 AES 的双向攻击)。


还有一个刚刚起步的 crypto 堆栈交换站点,如果您真的打算认真研究加密货币,这可能是一个更好的提问场所(而不是“我发明了有史以来最好的加密货币系统,没有人会成为能够破解它”)。

【讨论】:

    【解决方案2】:

    构建一个能够抵抗...的算法

    已知的纯文本攻击:http://en.wikipedia.org/wiki/Known-plaintext_attack

    选择的纯文本攻击:http://en.wikipedia.org/wiki/Chosen_plaintext_attack

    差分密码分析:http://en.wikipedia.org/wiki/Differential_cryptanalysis

    线性密码分析:http://en.wikipedia.org/wiki/Linear_cryptanalysis

    我的具体建议是您从加密安全的随机数生成器 (http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator) 开始,使用您的对称加密密钥为所述生成器播种,然后从那里避免上述攻击向量.

    【讨论】:

    • 谢谢,这很具体,我非常重视
    猜你喜欢
    • 2017-07-24
    • 2010-09-11
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2016-03-09
    • 2017-02-07
    • 1970-01-01
    相关资源
    最近更新 更多