【问题标题】:repetition in encrypted data -- red flag?加密数据重复——危险信号?
【发布时间】:2011-06-21 13:49:04
【问题描述】:

我有一些 base-64 编码的加密数据,并注意到大量重复。在(大约)200 个字符长的字符串中,某个 base-64 字符在多个单独的重复运行中最多重复 7 次。

这是加密存在问题的危险信号吗?根据我的理解,即使明文完全一致,加密数据也不应该出现明显的重复(即,即使我加密了 2 GB 的只有字母 A,加密版本中也不应该出现明显的重复)。

【问题讨论】:

  • 完全取决于算法。你知道用的是什么吗?
  • @leeeb,我认为算法不好是一个危险信号
  • 正在使用什么块模式(或者它是流密码)?如果您使用的是 ECB 并且输入是重复的,那么这是不可避免的,解决方案是将模式更改为例如加拿大广播公司。
  • @Peter,就问题的目的来说,我没有加密数据以外的信息。单从重复就可以推断出加密算法有问题吗?
  • @SplashHit,这取决于您所说的“算法”。世界上最好的分组密码可以以泄露信息的方式使用。有关更详细的说明,请参阅en.wikipedia.org/wiki/…

标签: encryption cryptography cryptanalysis


【解决方案1】:

嗯,我想这取决于。如果重复代表相同的数据,一般来说重复是一件坏事。

考虑到您正在对其进行编码,您是否查看了数据以查看是否有在这些计数中重复的内容?

为了更好地理解,您必须知道它使用哪种加密方式。 他们重复可能只是巧合。

但是如果重复来自相同的数据,那么它可能是一个危险信号,因为可以使用频率计数来对其进行解码。

您使用的是哪种加密方式?自制还是某些行业标准?

【讨论】:

    【解决方案2】:

    这取决于您如何加密数据。

    Base64 编码字符串可能算作轻度混淆,但它不是加密。 Base64 编码的目的是允许将任何类型的二进制数据编码为安全的 ASCII 字符串。

    【讨论】:

    • 数据是Base64编码的,加密的数据...意思是先加密,然后加密的数据是Base-64编码
    【解决方案3】:

    根据二项分布,在 200 个随机字符系列中,您会看到 64 个字符中的一个字符出现 7 次的几率约为 2.5%。这是一个很小的机会,但不容忽视。有了更多信息,您可能会将您的置信度从 97.5% 提高到非常接近 100% 的程度……或者发现密文确实是均匀分布的。

    您说“字符在多个单独的重复运行中重复最多 7 次”。这还不足以说明密文是否存在偏见。相反,告诉我们字符出现的总次数,以及密文字符的总数。例如,“它在 1000 次运行中总共出现了 3125 次,每次运行 200 个字符。”

    此外,您需要确保您谈论的是密码的原始输出。密文通常被封装在一个“信封”中,就像加密消息语法所定义的那样。当然,这种封闭结构将具有可预测的模式。

    【讨论】:

      猜你喜欢
      • 2016-02-17
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 2016-03-21
      • 2021-07-17
      相关资源
      最近更新 更多