首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有限域乘法是分布的吗?AES中的运动仿射变换

有限域乘法是分布的吗?AES中的运动仿射变换
EN

Cryptography用户
提问于 2018-12-04 21:10:11
回答 1查看 125关注 0票数 3

在AES中,SubBytes步骤的输出等于:

a_{0-15} = d*c_{0-15}^{-1}+b

其中d是常数8x8矩阵,b是GF(2)中的常数8x1矩阵。反演是在GF(2^8)中进行的。

在ShiftRows之后,每个MixColumns的输出列可以用四个select a值表示。

m_0 = 2a_0+ 3a_1 + a_2 + a_3
m_1 = a_0 + 2a_1 + 3a_2 + a_3
m_2 = a_0 + a_1 + 2a_2 + 3a_3
m_3 = 3a_0 + a_1 + a_2 + 2*a_3

是否有任何理由不能以m_0为例并将其写为:

\begin{align*} m_0 =& 2(da_0+b) + 3(da_1+b) + (da_2+b) + (da_3+b)\\ =& 2da_0+2b + 3da_1+3b + da_2+b + da_3+b\\ =& d(2a_0+3a_1+a_2+a_3)+b\\ \end{align*}

这将是MixColumns操作,然后是仿射变换。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-12-05 14:07:12

从上面的问题m = da_0

在双边投资条约一级:

m\oplus b = [m_7 \oplus b_7 , m_6 \oplus b_6 , m_5 \oplus b_5 , .... , m_0 \oplus b_0 ]
\begin{align*} 2(m\oplus b) =& \operatorname{xtime}(2(m\oplus b)) = \\ =& [m_6 \oplus b_6 , m_5\oplus b_5 , m_4\oplus b_4, m_3\oplus b_3 \oplus (m_7\oplus b_7), m_2\oplus b_2 \oplus (m_7\oplus b_7) ,\\& m_1\oplus b_1,m_0 \oplus b_0 \oplus (m_7\oplus b_7),m_7\oplus b_7]\\ \end{align*}

其中02的乘法表示为\operatorname{xtime}(x)

\begin{align*} 2m =\;& [m_6 ,m_5,m_4,m_3\oplus m_7,m_2\oplus m_7,m_1,m_0\oplus m_7,m_7]\\ 2b =\;& [b_6 ,b_5,b_4,b_3\oplus b_7,b_2\oplus b_7,b_1,b_0\oplus m_7,m_7]\\ \end{align*}

因此:

2m\oplus 2b = 2(m\oplus b)

因为它们在位级产生相同的公式。你可以看到一个类似的结果乘法3。

但是,这个问题还假设可以将2da_0 \oplus 3da_1 \oplus da_2 \oplus da_3转换为d(2a_0\oplus 3da_1 \oplus da_2 \oplus da_3) --这是不可能的,因为这需要将原始数据写入d2a_0 \oplus d3a_1 \oplus da_2 \oplus da_3,但矩阵乘法不是可交换的。

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

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

复制
相关文章

相似问题

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