代码之家  ›  专栏  ›  技术社区  ›  TCS

AES-CTR模式(流式加密)明文中的1位更改密文中的1位更改?

  •  3
  • TCS  · 技术社区  · 14 年前

    据我所知,在流密码(或AES-CTR模式)中,密钥实际上是使用IV加密的(或者通常,从密钥K我们生成伪随机字节)。然后,我们使用这个密钥使用XOR加密明文。

    但据我所知,假设使用的是同一个密钥K,在明文中改变一位只会改变密文的一位。

    我是对的,还是完全错了?

    如果我是对的,难道它不比CBC安全吗?(因为在CBC中,明文中的一个位的变化,使密文中的所有位从变化的点开始变化)

    谢谢!!!

    4 回复  |  直到 12 年前
        1
  •  3
  •   Giacomo Verticale    14 年前

    显然,CTR模式违反了 Shannon's diffusion principle ,因为在明文中更改一个位只会更改输出中的一个位。然而,这只是故事的一部分。实际上,您还必须为每个消息更改IV。因此,即使您只更改明文中的一个位,或者即使消息保持不变,以下消息中的许多位也将更改。

    另一方面,如果您担心恶意修改消息,那么CTR和CBC都无法抵御这些攻击,而且正如@GregS所说,您应该使用经过身份验证的加密模式,如CCM、GCM或 EAX .

        2
  •  4
  •   President James K. Polk    14 年前

    您是对的,这就是为什么有些模式同时包含CTR模式和数据身份验证,通常称为 AEAD 模式,例如 CCM GCM 模式。

        3
  •  3
  •   caf    14 年前

    这是 确切地 为什么你必须 从未 使用CTR模式时,重复部分密钥流,就像使用流密码一样。加密端使用的计数器只能向前移动,直到密钥更改为止。

        4
  •  1
  •   Nickolay Olshevsky    14 年前

    是的,你说得对。除了密钥未被加密外,IV(计数器)使用密钥加密。 这种方法允许对加密流进行随机访问(因为每个数据部分都知道计数器)。

    推荐文章