首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有坏S盒的AES神谕

带有坏S盒的AES神谕
EN

Cryptography用户
提问于 2019-02-25 23:39:08
回答 1查看 995关注 0票数 1

假设您运行到一个混乱的AES (128)实现,该实现将S框配置为0x0,0x1,…,0xFE,0xFF,您可以在其中查询几个明文以获得相应的密文。一个人需要多少个查询才能推断出密钥,以及如何处理呢?这将是一次选择性的明文攻击,但我看不出是如何做到的。非常感谢。

EN

回答 1

Cryptography用户

发布于 2019-02-26 03:05:37

线性密码

如果S盒是身份映射,那么剩余的密码是线性的.

如果密码是线性的(在GF(2)上),那么任何给定位的表达式都等于:c_i = m_i \oplus m_j \oplus m_k \oplus \dots \oplus k_a \oplus k_b \oplus k_c \oplus \dots

对于每一个密文位a, b, c, j, k, \dots的不同数量和值。

基本上,每个密文位等于由明文位和密钥位组成的xor (以及适用的任何圆形常量)。

选择明文攻击

一个线性密码可以在一个选择的明文攻击下被打破。

将所有0位的块作为明文提交给加密oracle。

由于明文对密钥调度没有影响,影响每个密文位的密钥位在不同明文的调用之间不会有变化。当消息全部为0位时,任何给定的密文位的方程都是简单的k_a \oplus k_b \oplus k_c \oplus \dots

其中,对于任何给定的密文位,a, b, c, \dots的数量和值都不同(为简单起见省略了圆形常量)。

生成的密文将等价于加密/解密密钥。

它可能/不会是用来计算密码的密钥,但它可以从密文中恢复明文,反之亦然。

要做到这一点,只需使用密文对等效密钥进行异或,然后运行"AES"*解密例程而不使用addRoundKey步骤。

概念就在这里的证明

*" AES“是引号,因为AES是一个标准。一旦它被修改(例如通过改变S框),它就不再是AES了。

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/67612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档