其中许多文章都谈论非线性S盒,而不再谈论它们的非线性。
我有一个简单的问题,我认为它将引导我解决我的问题:
为什么XOR操作是线性的,但是普通加(+)不是‽
线性的定义是什么?
#1 楼
线性的定义是什么?
线性是为矢量空间之间的映射定义的。如果您在$ F $字段中有一个字段$ F $和两个向量空间$ U $和$ V $,则如果$$ T(\ gamma_1 \ odot u_1 \ oplus \ gamma_2 \ odot u_2)= \ gamma_1 \ odot T(u_1)\ oplus \ gamma_2 \ odot T(u_2)$$每当$ \ gamma_1,\ gamma_2 \ in F $和$ u_1,u_2 \ in V $。在这里,$ \ oplus $和$ \ odot $表示向量的相加及其乘以标量(字段的元素)。
对于不同的向量空间,您将获得不同的线性映射。 />
让我们将$ U $视为所有8位整数的集合,即$ 0 $和$ 255 $之间的整数。使用以2为底的数字系统,每个位都可以表示为正好8位的字符串。例如,$ 13 $变成$ 00001101 $,因为$$ 0 \ cdot2 ^ 7 + 0 \ cdot2 ^ 6 + 0 \ cdot2 ^ 5 + 0 \ cdot2 ^ 4 + 1 \ cdot2 ^ 3 + 1 \ cdot2 ^ 2 + 0 \ cdot2 ^ 1 + 1 \ cdot2 ^ 0 = 8 + 4 + 1 = 13。$$
一种查看$ U $的方法是将其元素视为$ \ {0,1 \ } ^ 8 $。例如,数字$ 13 $成为向量$(0,0,0,0,1,1,0,1)$。在这种情况下,定义两个向量之和的自然方法是对各个分量进行加法运算$ 2 $。这导致总和是两个加数的异或。当$ F = \ {0,1 \} $时,$ U $成为$ F $之上的向量空间。 )not‽
因为向量空间中的总和是异或,而不是模加。映射$ x \ mapsto x \ oplus c $(这里,$ \ oplus $是异或)实际上是一个仿射变换,通常称为线性外线性代数。
#2 楼
它们都是线性的,但是在不同的代数组中。也就是说,xor在特征2的任何有限域中都是线性的,而“普通”加法在实数的无限域中是线性的。取模$ n $(在密码上比在Real上加法更重要)也是线性运算,但是在整数$ \ mathbb {Z} _n $的环中。线性函数是简单的一个可以用代数方程式(在某些特定的代数或另一个)中准确描述的项,其中所有项的度数都不大于1。因此两个变量的异或可以通过特征2的有限域中的线性代数方程。但是$ \ mathbb {Z} _n $(对于$ n> 2 $)的代数中没有线性方程可以准确地描述两个变量的异或。相反,两个变量的加和模$ n $($ n> 2 $)可以用$ \ mathbb {Z} _n $中的线性方程式准确描述,而不能用特征2的任何有限域中的线性方程式精确描述。
如果这些都不对您有意义,那就可以了。您只需要阅读有关抽象代数以及域,环和组的信息。这是一个令人着迷且美丽的数学领域,如果没有至少一定的了解,很多加密技术将毫无意义。
评论
$ \ begingroup $
我个人将线性映射与向量空间相关联。也就是说,作为2个向量空间之间的同构(被视为阿贝尔群)。附加属性$ m(\ alpha x)= \ alpha m(x)$ for $ \ alpha \ in F $。
$ \ endgroup $
– Aleph
2013年12月28日17:27
评论
$ \ begingroup $
哇,谢谢,丹尼斯真的很有帮助。我还有一个小问题:线性定义中的标量γ1和γ2只能得到值0和1,对吗?
$ \ endgroup $
–Shnd
2013年12月30日14:23在
$ \ begingroup $
γ1和γ2可以是任何标量,即字段F的任何元素。在8位整数的示例中,唯一的标量是0和1,是。但通常,F可以是任何字段,例如,所有有理数,实数或复数的集合。
$ \ endgroup $
–丹尼斯
2013年12月30日15:00