改善密码的属性健全性检查

时间:2011-01-14 07:26:30

标签: encryption cryptography aes

我正在阅读有关加密的内容我正在考虑AES的这些属性(我使用):

  1. 相同的消息=相同的输出
  2. 没有消息长度保密
  3. 如果您知道消息可能不安全(这实际上是否适用于AES?)
  4. 我听说AES是安全的,但如果我想改进这些属性会怎样?

    我以为我能做到这一点:

    1. 应用加密算法A
    2. 随机数据D的XOR(确保在任何密码的情况下输出看起来是随机的)
    3. 生成比原始邮件更长的随机数据
    4. 使用散列函数F在随机数据中分配插槽(这会扰乱顺序字节)
    5. 输入:加密算法A,带有D的XOR数据和散列函数F

      我的问题是

      • 提出的解决方案理论上是否有助于解决我的问题?
      • 这种方法在某处使用过吗?

      此方法的可能增强

      我还可以说,散列函数选择的下一个位置将使用XOR步骤后最后一个解码字节的校验和进行更改(这样消息必须从头到尾解码)

      如果我要使用它来与某人进行对话,那么与XOR合作的数据可能是来自另一个人的最后一条消息,但这可能是一个漏洞。

      我期待着你的想法! (这只是理论上的,我不需要更安全的加密,只是想向你们学习。)

3 个答案:

答案 0 :(得分:4)

呀。

看。如果您想了解加密技术,建议您阅读Applied Cryptography。真的,就这么做吧。您将获得一些很好的明确学习,并了解什么是合适的,什么不是。它专门讨论了实现,这就是你所追求的。

一些经验法则:

  • 不要自己制定计划。这几乎是普遍的。可能有例外情况,但公平地说,如果您已经彻底审查了所有现有方案并且具有特定的可量化原因,那么您应该只创建自己的方案。
  • 为攻击者建模。找出您打算防范的场景,并构建您的系统,以便减轻潜在的攻击。<​​/ li>
  • 复杂性是你的敌人。不要让你的系统变得更加复杂。
  • 保持最新状态。您可以找到一些与加密相关的mailing lists和(和hashing)加入它们。从那里你将学习有趣的实现细节,并了解最新的攻击。<​​/ li>

至于具体解决你的问题,嗯,令人困惑。我不了解您的目标,也不理解第3步和第4步。您可能希望快速查看here以了解使用给定加密算法的不同方法。

希望这有帮助。

答案 1 :(得分:2)

您的假设不正确。

  1. 相同的消息!=相同的输出
    如果两次加密相同的消息,输出将不相同 这是因为你被要求使用不同的IV。
  2. 可以通过向明文添加随机数据来隐藏消息长度。
  3. 针对AES的攻击已经证明,轮数较少。 全面的AES并没有受到任何影响。
  4. 除此之外,我建议您按照Noon Silks推荐并阅读Applied Cryptography。

答案 2 :(得分:0)

随机数据XOR有什么意义?如果它真的是随机的,你将如何解密它?如果您说随机数据是密钥的一部分,您也可以删除AES并仅使用真正的随机密钥 - 只要它与数据的长度(或长度)相同,并且永远不会使用多次加密。它被称为一次性填充,是我所知道的唯一理论上牢不可破的加密算法。

如果随机位是伪随机生成的,那么您的努力极不可能产生额外的安全性。考虑有多少有才华的数学家参与设计AES ......

编辑:我强烈推荐应用密码学,它实际上是一本非常易读且有趣的书,并不像听起来那么干燥。