system: [SYSTEM]

user: 2. 构造轻量级MDS矩阵 本节主要使用循环、分块和迭代等思想，在m = 4， 8情况下，考虑特殊二元MDS矩阵的构造，分别考虑循环MDS矩阵、Hadmard MDS矩阵、最佳MDS矩阵和迭代MDS矩阵的构造，分析这些矩阵的性质，使用程序搜索具有最小异或数的MDS矩阵，并给出了矩阵对应的最小异或数以及这些矩阵的数目，得到了m = 4时具有异或数12的循环MDS矩阵(2.1节)，也构造了m = 8时具有异或数10的最佳MDS矩阵(2.4节)。 2.1. 轻量级循环MDS矩阵的构造 对于循环型矩阵 若 是MDS矩阵，则 都必须是可逆矩阵。4阶可逆矩阵有20，160个，而8阶可逆矩阵超过了2 62 个。需要构造轻量级MDS矩阵，直观看应该包含异或数为0的矩阵(置换矩阵)，特别地，我们可将 中某些矩阵取为单位阵。因此，首先考虑如下矩阵： 其中I为单位矩阵。首先给出如下基本引理(证明由高等代数基本知识可得证)。 引理1：假设 均是二元域上的m阶满秩矩阵，则有下述结论： 1) 是满秩矩阵当且仅当 为满秩矩阵。 2) 是满秩矩阵当且仅当 为满秩矩阵。 3) 是满秩矩阵当且仅当 为满秩矩阵。 4) 是满秩矩阵当且仅当 为满秩矩阵。 对于 型矩阵，若L为MDS矩阵，则必定有以下几个矩阵均为满秩矩阵： 下面针对m = 4和m = 8，分别讨论MDS矩阵。 2.1.1. 4阶矩阵环上的循环型MDS矩阵 考虑在 上的所有满秩矩阵，令集合 为了满足MDS矩阵的相关条件，记集合 记满足上述条件的有序矩阵对 ，其中 令 最后依照MDS矩阵的定义，依次验证 ，其中 使用程序4总共搜索到156，387个这种形式的MDS矩阵，其中异或总数最低的MDS矩阵共有48个，其异或数为12。并且，经过验证，A、B满足关系： 或 。 例1： 例2： 2.1.2. 8阶矩阵环上的循环型MDS矩阵 当m = 8时，若依照m = 4的程序搜索方法，面临搜索数据量极大的问题。为缩小搜索范围，考虑特殊情形下的这类MDS矩阵，分别在两种具体情形下讨论。 1) 基于低异或数子类搜索： 利用分块构造矩阵的思想，具体考虑这样形式的集合： 考虑mzjz2中的矩阵A的限定条件： a) 取 ， 即 考虑所有此类有序矩阵对 ，其中 ，再通过MDS矩阵的定义，使用程序5依次验证 ，其中 ，最终得到2690个这种形式的MDS矩阵，其中MDS阵的一行异或数最低为7，且能够取得17个这样的MDS矩阵。 例3： b) 取 ，即 考虑所有此类有序矩阵对 ，其中 ，再通过MDS矩阵的定义，使用类似程序5的程序依次验证： ，其中 最终得到200，072个这种类型的MDS矩阵，其中异或总数最低的MDS矩阵共有12个，其中MDS阵的一行异或数最低为22。 例4： c) 矩阵A满足 即： 考虑所有此类有序矩阵对 ，其中 ，再通过MDS矩阵的定义，依次验证 ，其中 ，最终得到1444个这种形式的MDS矩阵，并且每一个MDS矩阵一行的异或数均为4。 例5： m = 8时，基于低异或数构造的循环MDS矩阵总结如表1。 2) 基于4阶情形的启发式搜索： 通过对4阶循环MDS矩阵的分析，我们知道形如 这样的异或数最低的MDS矩阵满足关系 或 。为此，考虑如下形式8阶矩阵环上的循环型MDS矩阵： Table 1 Cyclic MDS matri 循环矩阵的第一行 生成元来源 特征元素结构 最小异或数 28 88 16 表1. 循环MDS矩阵 为了得到低异或数的矩阵，我们只搜索了A是异或数等于1的满秩矩阵的情况：记所有八阶异或数为零的满秩矩阵集合为： 将矩阵 中的零元素依次用1进行替换，得到一个新矩阵，记此变换后的全体矩阵集合为 ，集合中所有矩阵的异或数均为1，即： 满足条件的矩阵可从 选取。现检验如下矩阵是否为MDS矩阵： ，其中 使用程序6检验，共96，093个MDS矩阵，其中矩阵异或总数最小为12，共80，640个矩阵满足异或数最小。 例6： 下面给出一些二元矩阵的性质。 引理2 [ 7 ] ：已知 ， ，如果L的秩为2m，则 。 证明：假设 ， 。则 的每一行每一列都有一个元素为1其中 。所以L是非奇异的，即 ，矛盾。证毕。 定理1：1) 若 是一个循环的MDS矩阵，其中 ，则 ；2) 若 是一个Hadamard MDS矩阵，其中 ，则 。 证明：1) 设 是一个循环的MDS矩阵。 若 ，则在第一行中至少含有三个异或数为0，不妨假设 ，有 ，因L是一个MDS矩阵，所以这与假设矛盾。其他情况同样可以被证明。 若 ，则对某一行至少有两个元素异或数为零，其余两个元素异或数之和为2。 当m = 4时： a) 不妨设 。采用如下搜索策略：当m = 4时，首先得到一个包含所有异或数为1的满秩矩阵的集合One以及包含所有异或数为0的满秩矩阵的集合 ，然后对每一个数组 ，带入检验 是否为MDS矩阵，通过运行程序1，并未检测到任何满足条件的矩阵； b) 不妨设 ，记异或数为零的矩阵集合为 ，则 ， 显见L存在一个子方阵 ， ，此时的L一定不是MDS矩阵。 当m = 8时，同理可证，详见附件程序2。 由矩阵的初等行列变换知，交换上述A B C D的位置不会影响 的MDS性，故该证明具有一般性。 综上可得，满足 2) 是一个Hadamard MDS矩阵。 若 ，则在第一行中至少含有两个异或数为0，不失普遍性，这里假设 ，据引理2，有 ，因L是一个MDS矩阵，所以这与假设矛盾。其他情况同样可以被证明。 若 ，则对某一行至少有一个元素异或数为零，其余三个元素异或数之和为3。 当m = 4时： 1) 不妨设 ，采用如下搜索策略：首先可记一个包含所有异或数为1的满秩矩阵的集合One和包含所有异或数为0的满秩矩阵 。然后对每一个数组 ，带入程序3的findMDS1.m检验是否为MDS矩阵的程序中，通过运行程序，并未检测到任何满足条件的矩阵。 2) 不妨假设 ，搜索策略如下：记一个包含所有异或数为1的矩阵的集合One，一个包含所有异或数为2的矩阵的集合Two。然后对每一个数组 ，带入程序3中的findMDS2.m检验是否为MDS矩阵的程序中，通过运行程序，并未检测到任何满足条件的矩阵。 3) 假设 ， ， 。 显见L存在一个子方阵 ，显然 ，所以此时的L一定不是MDS矩阵。 当m = 8时，同理可证。 由矩阵的初等行列变换知，交换上述A B C D的位置不会影响 的MDS性，故该证明具有一般性。 综上， 是一个MDS矩阵，则 。证毕。 利用上述定理知4阶或8阶矩阵环上的循环型MDS矩阵异或数不小于12。前面构造说明异或数12是可以达到的，并已经取得。 2.2. 循环MDS矩阵的改进 此节继续考虑特殊分块矩阵，尝试构造类似循环矩阵的MDS矩阵，记循环矩阵为 ，考虑类似循环矩阵的矩阵： ，其中 对这类矩阵，期望得到异或数低于12的MDS矩阵。 对已知异或总数为12的循环MDS矩阵的分析，发现总是可以表示成 或者 其中 的异或数为1， 的异或数为2。现在对24对矩阵序对 中异或数为2的矩阵进行替换，即将某一个 替换为集合One中的元素。其中： 考虑 。 很遗憾，使用程序7搜索并没有异或数小的MDS矩阵的出现。 2.3. 轻量级Hadamard型 MDS矩阵的构造 记 为Hadamard循环矩阵： 要想 为MDS矩阵，则至少要求下列矩阵是满秩矩阵： 通过分析，若是采用全局程序搜索，当m = 4和8时程序运算量太大，故不实际，由此需要对 进行特殊处理。 当m = 4时考虑如下三种特殊Hadamad矩阵： 1) 令 。要使得 为MDS矩阵，则下列矩阵一定为满秩矩阵： 使用程序8来搜索满足条件的此类MDS矩阵，发现此类MDS矩阵不存在。 2) 令 ，即 ，其二阶子方阵中 存在 。程序发现不存在此类MDS矩阵。 3) 令 。若 为MDS矩阵，则要求下列矩阵一定为满秩矩阵： 使用程序得到 型的MDS矩阵共有7917个，其中矩阵一行的最低异或数为4，并且，给出了48组这样的矩阵对 使得 为MDS矩阵，且满足 。 例7： 将这几种情形Hadamard矩阵总结如表2。 显见，此时得到的MDS矩阵异或总数并不是所有矩阵中最小的，与目标还有一定的距离。为此，考虑如何改进我们的矩阵，从而得到更优结果，还有待进一步的研究。 当m = 8时，考虑满足如下条件的Hadamard矩阵： 将 中所有非单位元的元素均拆分为如下形式： 再次对矩阵A的异或数做限定，令集合 构造这样的 ，满足 ，使用类似程序搜索得到了形如 的MDS矩阵有6693个，且矩阵异或总数最小为32，共有48个矩阵能够取得最小异或总数。 例8： 令集合 ，先取定 。检验此时的 是否为MDS矩阵，没有任何结果返回。这说明当 时，根本不存在 型MDS矩阵。由此有如下定理。 定理2：已知 ，如果 矩阵是MDS矩阵，则一定有 。 2.4. 最佳MDS矩阵的构造 文献 [ 8 ] 构造了一类MDS矩阵： Table 2 Hadamard MDS matri 矩阵类型 生成元来源 MDS矩阵个数 最小异或数 / / / / 7917 16 表2. Hadamard MDS矩阵 文献 [ 8 ] 中被称为最佳矩阵。基于这个思想，本小节研究如下矩阵： 要求L为MDS矩阵，则必有以下矩阵是满秩矩阵： 当m = 4时，考虑满足条件的 ，使用程序9得到共48878个最佳MDS矩阵，其中存在43组满足条件的矩阵对 ，使得最佳MDS矩阵的异或数达到最小为13，即 ，经观察，这些矩阵中的矩阵对 均满足 ，其中 。 例9： 当m = 8时，考虑 中满足条件的 ，基于m = 4时得到的结论，为找到异或数较低的MDS矩阵，不妨尝试令 ，考虑二元域上所有异或数等于1的满秩矩阵，使用程序10，检验得到61，528个MDS矩阵，其中40320个异或数为10的最佳MDS矩阵。 例10： 2.5. 利用迭代寻找轻量级MDS矩阵 构造MDS矩阵可以利用有限域以及MDS码，除此以外，最常用的方法还有迭代法。迭代法的主要思想是通过利用较小分支数的扩散层重复作用，最终得到具有最大分支数的扩散层。实施此方法的第一步并不是构造一个MDS矩阵，这种新的设计策略在轻量级的哈希函数中被提出 [ 9 ] ，例如PHOTON算法，在LED轻量分组密码的设计中被大量应用 [ 10 ] 。典型的代表是利用线性反馈移位寄存器的构造。使用此方法，本小节中构造一些具有低异或数的MDS矩阵。 记LFSR MDS矩阵L具有如下形式： Table 3 Lightweight MDS Matri 形式 d的范围 最小异或总数 MDS矩阵总个数 4~100 51 14，853 4~100 35 22，951 4~100 35 2733 4~100 41 21，575 4~100 39 16，197 4~100 24 16，185 4~100 42 20，211 表3. 轻量级MDS矩阵 其中 。由矩阵L迭代生成MDS矩阵时，迭代次数不超过100次。为了减少程序搜索量，考虑矩阵 中每一行的元素至多有两个不相关的变量。文献 [ 9 ] 考虑矩阵 ，其中 ，可通过合适的线性变换得到一个MDS矩阵。不妨就取定 ，其中 当 时，考虑 上的所有二元矩阵，然后将矩阵L带入进行运算，得到所有的矩阵(注意：此处假设迭代100次)。利用MDS矩阵的定义，使用程序11找出迭代后的所有MDS矩阵，总共得到18，882个MDS矩阵，其中具有最小异或数的矩阵有24个，这些矩阵的异或总数为42。此时的迭代次数d可以取到82。 例11： 此时通过该形式迭代得到的MDS矩阵异或数不是很理想。虽然在 中我们并没有找到轻量级的MDS矩阵，但是通过修改生成元及其形式，有望得到异或数较小的MDS矩阵。使用以上的搜索策略，尝试了多种形式，均有MDS矩阵的返回，现将结果列于表3。