2011-01-14 23 views
1

我读有关加密我在想AES的这些属性(我使用):提高密码的属性完整性检查

  1. 相同的消息=相同的输出中
  2. 没有消息长度保密
  3. 可能不安全如果你知道这些消息(这是否真的适用于AES?)

我听说AES是安全的,但是如果我想要改善这些属性

我想我能做到这一点:

  1. 应用加密算法A
  2. XOR用随机数据D(确保输出看起来随意在任何密码的情况下)
  3. 生成随机数据比原始消息长
  4. 使用散列函数F来分配随机数据中的时隙(这扰乱了顺序字节)

输入:加密algorith A,数据进行XOR与D和散列函数F

我的问题是

  • 建议的解决方案theoreticaly我的担忧帮助吗?
  • 这种方法用在什么地方?

可能的改进这种方法

我也可以说,通过散列函数选择下一个位置将使用最后一个解码字节的校验和XOR步骤(这样的消息有后改变从头到尾解码)

如果我要用它来与某人进行对话,与异或的数据可能是来自其他人的最后一条消息,但这可能是一个漏洞。

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

+0

将随机数的随机字节添加到您的原始邮件将修复所有三个点。只需存储您在输入中使用的字节数,并在解密后将其删除。 – sisve 2011-01-14 07:43:46

回答

4

是的。

看。如果你想了解密码学,我建议你阅读Applied Cryptography。真的,就这样做吧。你会得到一些很好的明确的知识,并理解什么是合适的,什么不是。它具体谈到实施,这是你在做什么。

一些经验法则:

  • 不要让你自己的方案。这几乎是普遍真实的。可能有例外,但可以公平地说,如果你已经全面审查了所有现有的方案,并且具有特定的量化原因,那么你应该只发明自己的方案。
  • 建模您的攻击者。找出你打算保护的场景,并构建你的系统,以便它可以缓解潜在的攻击。
  • 复杂性是你的敌人。不要让你的系统更复杂,那么它就需要。
  • 保持最新状态。你可以找到几个与密码相关的mailing lists和(和hashing)加入它们。从那里你将学习有趣的实现细节,并了解最新的攻击。

至于具体解决你的问题,那很混乱。我不明白您的目标,也不了解步骤3和步骤4.您可能想快速查看here以了解您可以使用给定加密算法的不同方式。

希望这会有所帮助。

+0

谢谢,我正在阅读一本关于密码学的书,我可能会在阅读AC时读到它。 – hakunin 2011-01-14 07:52:27

+0

至于经验法则 - 非常感谢他们!那就是我正在寻找的东西。 – hakunin 2011-01-14 07:55:03

+0

如果可以的话,我会给这两个upvotes。 – 2011-01-17 02:01:20

0

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

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

编辑:我太强烈推荐应用密码学,这是一个实际上是非常可读性和趣味性的书,而不是干的,因为它听起来可能。

2

你的假设是不正确的。

  1. 相同的消息!=相同的输出
    的输出不会,如果你加密两次相同的消息是相同的。
    这是因为你需要使用不同的IV。
  2. 通过向明文添加随机数据可以隐藏消息长度。
  3. 攻击已被证明对少量轮数的AES。全方位AES没有以任何方式受到损害。

除此之外,我建议您按照Noon Silks的建议阅读Applied Cryptography。