MDS矩阵在密码学中有重要的应用,可以用来构造分组密码。MDS矩阵的异或数是衡量密码算法的有效性的一个重要指标。本文研究MDS矩阵的性质,考虑循环、矩阵分块和迭代等思想,分别针对几类特殊性质的MDS矩阵构造,包括循环MDS矩阵、Hadar MDS矩阵和迭代MDS矩阵等。在m = 4, 8情况下,使用程序来搜索满足条件的MDS矩阵,给出了具有最小异或数的MDS矩阵的数目和例子,得到m = 4, 8情况下许多具有已知最小异或数的MDS矩阵,得到了m = 4时具有异或数12的循环MDS矩阵,也构造了m = 8时具有异或数10的最佳MDS矩阵。 MDS Matrix has important applications in cryptography and it can be used to construct block ciphers. The number of XOR of a MDS Matrix is an important index to measure the validity of cipher algorithm. In this paper, we study the properties of MDS matrix and consider the ideas of cycle, block matrix and so on. The MDS matrix is constructed for several special properties, including cyclic MDS matrix, Hadamard MDS matrix and iterative MDS matrix etc. When the number m = 4, 8, we use the program to search the MDS matrix that satisfies the condition. The number of MDS matrix with the minimum number of XOR and examples are given and we get many MDS matrices with the minimum number of XOR; when m = 4, we have given the circulating MDS Matrix with the number of XOR with 12, when m = 8 we have given the best MDS Matrix with the number of XOR with 10.
周敏1,顾执2
1西华大学数学研究所,四川 成都
2西南交通大学数学学院,四川 成都
收稿日期:2018年4月11日;录用日期:2018年4月21日;发布日期:2018年4月28日
MDS矩阵在密码学中有重要的应用,可以用来构造分组密码。MDS矩阵的异或数是衡量密码算法的有效性的一个重要指标。本文研究MDS矩阵的性质,考虑循环、矩阵分块和迭代等思想,分别针对几类特殊性质的MDS矩阵构造,包括循环MDS矩阵、Hadar MDS矩阵和迭代MDS矩阵等。在m = 4, 8情况下,使用程序来搜索满足条件的MDS矩阵,给出了具有最小异或数的MDS矩阵的数目和例子,得到m = 4, 8情况下许多具有已知最小异或数的MDS矩阵,得到了m = 4时具有异或数12的循环MDS矩阵,也构造了m = 8时具有异或数10的最佳MDS矩阵。
关键词 :MDS矩阵,线性扩散层,循环矩阵,Hadamard矩阵,异或数
Copyright © 2018 by authors and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
混乱原则和扩散原则是保证分组密码安全性的重要原则,线性扩散层是分组对称密码算法的重要组成部分,其扩散特性是通过特定的内部结构来实现的。扩散结构的设计十分重要,直接关系到分组密码的安全性能和实现性能 [
分支数是分组密码设计中的一个重要组成成分,可以根据分支数的大小从理论上给出差分和线性攻击的抵抗界限。线性扩散层是一个线性变换,可以通过一个n阶矩阵表示,若这个n阶矩阵的最大分支数是n + 1,则这个扩散层就称为完美扩散层。MDS矩阵的分支数达到最大,在分组密码的扩散结构中得到广泛应用,比如Advanced Encryption Standard (AES) [
构造MDS矩阵的方法通常利用有限域及MDS码。为提高运算效率,通常考虑有限域上具有较少非零元素的矩阵。循环矩阵以及Hadamard矩阵是主要选取的对象,AES扩散层就是使用此类矩阵。为了适用于轻量密码算法,目前主要使用递归扩散层构造最优扩散层,具体是首先构造一个简单的矩阵,然后该矩阵复合若干次(通常大于等于矩阵的阶数),得到MDS矩阵。在轻量级的Hash函数设计中,比如PHOTON,以及分组密码LED [
本文考虑m = 4, 8时具有小异或数的MDS矩阵,首先给出了MDS矩阵异或数的性质,然后使用直接搜索满足性质的特殊循环MDS矩阵,并分析MDS矩阵的异或数最小值和数目,为了改进MDS矩阵的构造方法和效率,使用循环、分块和迭代等思想,来考虑特殊MDS矩阵,并分析这些MDS矩阵的异或数最小值和数目。
本文的主要结构是:第二节给出了一些基本概念和MDS矩阵性质;第三节使用循环、分块和迭代等思想,给出几种特殊类型MDS矩阵的构造,并分析这些MDS矩阵的最小异或数和数目。
记
一个
记
其中
对任意的二元矩阵L,记L的异或数为
线性扩散层是一个线性变换,每一个线性变换都可以用一个m阶矩阵表示。所以每一个线性扩散层都可以有一个m阶矩阵表示,众所周知,m阶矩阵的最大分支数是m + 1。具有最大分支数的线性扩散层是一个完美扩散层或者是一个MDS矩阵。
一个矩阵被称为循环矩阵,若这个矩阵每一行的最后一个分块被旋转到下一行的最左边。四阶循环矩阵如下
其中
一个
其中
其中
文献 [
本节主要使用循环、分块和迭代等思想,在m = 4, 8情况下,考虑特殊二元MDS矩阵的构造,分别考虑循环MDS矩阵、Hadmard MDS矩阵、最佳MDS矩阵和迭代MDS矩阵的构造,分析这些矩阵的性质,使用程序搜索具有最小异或数的MDS矩阵,并给出了矩阵对应的最小异或数以及这些矩阵的数目,得到了m = 4时具有异或数12的循环MDS矩阵(2.1节),也构造了m = 8时具有异或数10的最佳MDS矩阵(2.4节)。
对于循环型矩阵
若
其中I为单位矩阵。首先给出如下基本引理(证明由高等代数基本知识可得证)。
引理1:假设
1)
2)
3)
4)
对于
下面针对m = 4和m = 8,分别讨论MDS矩阵。
考虑在
为了满足MDS矩阵的相关条件,记集合
记满足上述条件的有序矩阵对
令
最后依照MDS矩阵的定义,依次验证
使用程序4总共搜索到156,387个这种形式的MDS矩阵,其中异或总数最低的MDS矩阵共有48个,其异或数为12。并且,经过验证,A、B满足关系:
例1:
例2:
当m = 8时,若依照m = 4的程序搜索方法,面临搜索数据量极大的问题。为缩小搜索范围,考虑特殊情形下的这类MDS矩阵,分别在两种具体情形下讨论。
1) 基于低异或数子类搜索:
利用分块构造矩阵的思想,具体考虑这样形式的集合:
考虑mzjz2中的矩阵A的限定条件:
a) 取
即
考虑所有此类有序矩阵对
例3:
b) 取
考虑所有此类有序矩阵对
例4:
c) 矩阵A满足
即:
考虑所有此类有序矩阵对
例5:
m = 8时,基于低异或数构造的循环MDS矩阵总结如表1。
2) 基于4阶情形的启发式搜索:
通过对4阶循环MDS矩阵的分析,我们知道形如
循环矩阵的第一行 | 生成元来源 | 特征元素结构 | 最小异或数 |
---|---|---|---|
|
|
|
28 |
|
|
|
88 |
|
|
|
16 |
表1. 循环MDS矩阵
为了得到低异或数的矩阵,我们只搜索了A是异或数等于1的满秩矩阵的情况:记所有八阶异或数为零的满秩矩阵集合为:
将矩阵
满足条件的矩阵可从
使用程序6检验,共96,093个MDS矩阵,其中矩阵异或总数最小为12,共80,640个矩阵满足异或数最小。
例6:
下面给出一些二元矩阵的性质。
引理2 [
证明:假设
定理1:1) 若
证明:1) 设
若
若
当m = 4时:
a) 不妨设
b) 不妨设
显见L存在一个子方阵
当m = 8时,同理可证,详见附件程序2。
由矩阵的初等行列变换知,交换上述A B C D的位置不会影响
综上可得,满足
2)
若
若
当m = 4时:
1) 不妨设
2) 不妨假设
3) 假设
显见L存在一个子方阵
当m = 8时,同理可证。
由矩阵的初等行列变换知,交换上述A B C D的位置不会影响
综上,
利用上述定理知4阶或8阶矩阵环上的循环型MDS矩阵异或数不小于12。前面构造说明异或数12是可以达到的,并已经取得。
此节继续考虑特殊分块矩阵,尝试构造类似循环矩阵的MDS矩阵,记循环矩阵为
对这类矩阵,期望得到异或数低于12的MDS矩阵。
对已知异或总数为12的循环MDS矩阵的分析,发现总是可以表示成
考虑
很遗憾,使用程序7搜索并没有异或数小的MDS矩阵的出现。
记
要想
通过分析,若是采用全局程序搜索,当m = 4和8时程序运算量太大,故不实际,由此需要对
当m = 4时考虑如下三种特殊Hadamad矩阵:
1) 令
使用程序8来搜索满足条件的此类MDS矩阵,发现此类MDS矩阵不存在。
2) 令
存在
3) 令
使用程序得到
例7:
将这几种情形Hadamard矩阵总结如表2。
显见,此时得到的MDS矩阵异或总数并不是所有矩阵中最小的,与目标还有一定的距离。为此,考虑如何改进我们的矩阵,从而得到更优结果,还有待进一步的研究。
当m = 8时,考虑满足如下条件的Hadamard矩阵:
将
再次对矩阵A的异或数做限定,令集合
构造这样的
例8:
令集合
定理2:已知
文献 [
矩阵类型 | 生成元来源 | MDS矩阵个数 | 最小异或数 |
---|---|---|---|
|
|
/ | / |
|
|
/ | / |
|
|
7917 | 16 |
表2. Hadamard MDS矩阵
文献 [
要求L为MDS矩阵,则必有以下矩阵是满秩矩阵:
当m = 4时,考虑满足条件的
例9:
当m = 8时,考虑
例10:
构造MDS矩阵可以利用有限域以及MDS码,除此以外,最常用的方法还有迭代法。迭代法的主要思想是通过利用较小分支数的扩散层重复作用,最终得到具有最大分支数的扩散层。实施此方法的第一步并不是构造一个MDS矩阵,这种新的设计策略在轻量级的哈希函数中被提出 [
记LFSR MDS矩阵L具有如下形式:
形式 | 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矩阵
其中
当
例11:
此时通过该形式迭代得到的MDS矩阵异或数不是很理想。虽然在
本文考虑具有小的异或数MDS矩阵的构造,使用循环、分块和迭代等思想来考虑MDS矩阵,分析MDS矩阵的性质,考虑特殊情况下的矩阵,分别对几种情况的特殊矩阵,在m = 4和8下,使用程序搜索,得到这些MDS矩阵的异或数最小的情况,并计数和给出相关例子。如何构造最小的异或数的MDS矩阵是一个有趣和实际应用的问题,需要进一步研究。
本文得到四川省科技厅2015年第一批科技计划项目(基本科研-重点研发) (2015JY0245)、四川省教育厅自然科学重点项目(15ZA0135),在此表示感谢!
周 敏,顾 执. 轻量级MDS矩阵的构造 The Construction of Lightweight MDS Matrix[J]. 应用数学进展, 2018, 07(04): 429-445. https://doi.org/10.12677/AAM.2018.74054
https://doi.org/10.1007/978-3-662-04722-4
https://doi.org/10.1007/3-540-60865-6_47
https://doi.org/10.1007/978-3-642-35999-6_23
https://doi.org/10.1007/978-3-642-23951-9_22