CN110995403B - 一种搜索密码算法线性层硬件实现优化的方法 - Google Patents

一种搜索密码算法线性层硬件实现优化的方法 Download PDF

Info

Publication number
CN110995403B
CN110995403B CN201911049313.5A CN201911049313A CN110995403B CN 110995403 B CN110995403 B CN 110995403B CN 201911049313 A CN201911049313 A CN 201911049313A CN 110995403 B CN110995403 B CN 110995403B
Authority
CN
China
Prior art keywords
matrix
seq
jumping
elementary
class
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911049313.5A
Other languages
English (en)
Other versions
CN110995403A (zh
Inventor
向泽军
曾祥勇
张莎莎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hubei University
Original Assignee
Hubei University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hubei University filed Critical Hubei University
Priority to CN201911049313.5A priority Critical patent/CN110995403B/zh
Publication of CN110995403A publication Critical patent/CN110995403A/zh
Application granted granted Critical
Publication of CN110995403B publication Critical patent/CN110995403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种搜索密码算法线性层硬件实现优化的方法,本发明的主要步骤为:首先将GF(2)中的n阶可逆矩阵进行矩阵分解,即将其分解成若干初等矩阵的乘积;其次,将给定矩阵的分解转化成矩阵的实现方案;最后,通过GF(2)中矩阵乘法的性质对矩阵分解进行简化从而达到矩阵实现优化的目的。本发明可以获得密码算法线性层具有更少异或操作的实现,可以减少算法实现的代价。

Description

一种搜索密码算法线性层硬件实现优化的方法
技术领域
本发明涉及密码系统领域,具体涉及一种搜索密码算法线性层硬件实现优化的方法。
背景技术
对称密码,特别是分组密码作为一种加解密速度快的密码体制在实际中有着广泛的应用。对称密码体制使用的加解密密钥相同,主要用于大量数据的加密。分组密码作为对称密码中的重要组成部分,它将需要加密的明文划分成n比特的数据块,然后明文块在k比特种子密钥的控制下将数据块转化成密文块。其中,n称为分组密码的分组长度,k称为分组密码的密钥长度,n和k均为正整数。
分组密码的设计一般遵循香农提出的混淆和扩散原则。混淆是为了保证密文和明文以及密钥之间的关系尽量复杂,而扩散是为了保证一个明文比特要影响尽量多的密文比特。在实际算法中,混淆一般通过非线性置换获得,而扩散一般通过线性变换实现。
分组密码加解密速度快的特性使其广泛应用于实际中大量数据的加解密。随着物联网和微型智能设备的普及,资源受限环境下的信息安全对密码算法提出了新的要求。优化密码算法的实现,使其具有更小的电路面积已经在学术界和工业界引起了广泛的兴趣。密码算法的实现优化一般和密码算法的设计流程相结合,即通过优化密码算法设计流程中的部件达到对整体算法进行优化的目的。
对密码算法中线性部件的实现进行优化可以从整体上节省算法的实现开销。密码算法所处理的数据为计算机二进制数据,将二进制数据中的0和1看成只包含两个元素有限域GF(2)中的元素,那么密码算法的线性变换即为定义在GF(2)上的n维向量空间中的线性变换。因此,密码算法的线性层可以用GF(2)上的n阶可逆矩阵表示,优化密码算法线性层的实现即为优化GF(2)上n阶可逆矩阵的实现。
给定GF(2)上的n阶可逆矩阵M和n维向量输入x,计算算法的输出y=Mx等价于计算矩阵和向量的乘法。因为GF(2)中只包含0和1,因此输出y的计算过程只包含GF(2)上的一系列加法运算。GF(2)中的加法运算即为异或运算,对应于硬件实现中的异或门电路。因此,密码算法线性层的实现代价由实现对应矩阵的异或门电路数量决定,优化密码算法线性层的实现即为寻找异或门电路数量最少的矩阵实现。
例如,给定
Figure GDA0003011316550000021
为GF(2)上的4阶方阵,x=(x0,x1,x2,x3)T表示算法的输入,算法的输出y为
Figure GDA0003011316550000022
从输出表达式可以得到,无优化地实现该矩阵需要6个异或运算,即6个异或门电路。但是,通过对该矩阵进行优化,发现只需要如下5个异或门电路:
Figure GDA0003011316550000023
Figure GDA0003011316550000024
Figure GDA0003011316550000025
Figure GDA0003011316550000026
Figure GDA0003011316550000027
给定GF(2)上的n阶可逆矩阵,寻找该矩阵的最优实现已经被证明是一个NP-hard问题。因此,目前不存在高效的多项式时间算法搜索GF(2)上任意n阶可逆矩阵的最优实现。针对该问题,目前有两类启发式搜索算法用于优化GF(2)上的n阶可逆矩阵的实现。
第一类启发式算法是Paar提出的两个优化算法。给定GF(2)上的一个m×n矩阵M,假设要计算y=Mx,其中x=(x0,...,xn-1)T,y=(y0,...,)m-1)T,此时y中的每一个坐标都是关于x的线性表达式。Paar的算法考虑x中所有可能的两个坐标的异或和
Figure GDA0003011316550000031
然后计算在y的所有坐标中出现次数最多的一对坐标。例如,如果
Figure GDA0003011316550000032
出现的次数最多,则优先计算
Figure GDA0003011316550000033
并引入新的变量
Figure GDA0003011316550000034
同时,将y的坐标中包含
Figure GDA0003011316550000035
的部分用xn替代,此时将y看成定义在n+1个变量上的线性表达式,并依次迭代上述步骤直到最终实现对M的运算。Paar的两个算法不同的地方在于当x中存在多个坐标对出现次数相同并且都达到最大时的处理方法不同。Paar的第一个算法挑选出现次数最多中第一次出现的坐标对,而Paar的第二个算法将考虑所有出现次数最多的坐标对。
第二类启发式算法是基于Boyar等人的一系列工作。同样给定GF(2)上的一个m×n矩阵M,如果要计算y=Mx,Boyar算法首先计算一个距离向量。初始给定输入信号(即x的坐标)作为一个信号集合,距离向量中第i个坐标等于利用信号集合中的信号计算y中第i个坐标所需的最小异或数量。算法的每一步迭代都从信号集合中挑选两个进行异或使得新的距离向量的坐标和最小,同时将挑选的两个信号的异或和作为新信号加入信号集合,并迭代上述步骤。
但是,第一类启发式优化算法无法利用输入两个相同的信号会发生异或抵消的特点,该缺点会在某种程度上影响算法最后输出结果的质量。再者,两类启发式算法在不同矩阵上的表现各有差异,并且针对某些矩阵的优化结果并不理想。
发明内容
本发明所要解决的技术问题是提供一种搜索密码算法线性层硬件实现优化的方法。
本发明解决上述技术问题的技术方案如下:
一种搜索密码算法线性层硬件实现优化的方法,包括以下步骤:
S0.给定GF(2)上的任意可逆矩阵M,分解
Figure GDA0003011316550000041
记E(i0+j0)…E(iu-1+ju-1)=E0…Eu-1,记
Figure GDA0003011316550000042
记seq=E0…Eu-1P,记l=u,记g=l;
S1.从seq中随机挑选连续g个第三类初等矩阵Er…Er+g-1(0≤r≤l-g),并跳转至S2,直到已遍历完所有可能的矩阵选择情况后,判断g的大小,若g=1,则跳转至S7;若g>1,则令g=g-1并跳转至S1;
S2.计算M′=Er…Er+g-1,并跳转至S3;
S3.将M′分解为
Figure GDA0003011316550000043
并跳转至S4;
S4.记
Figure GDA0003011316550000044
,将seqa中所有第一类初等矩阵根据公式(1)移到尾端,并记得到的结果为
Figure GDA0003011316550000045
Figure GDA0003011316550000046
并跳转至S5;
S5.计算
Figure GDA0003011316550000047
并跳转至S6;
S6.如果l*≥l,跳转至S1;如果l*<l,记
Figure GDA0003011316550000048
并跳转至S1;
S7.返回seq.
进一步的,所述步骤S0具体包括以下步骤:
S0.1、对M进行分解,使得
Figure GDA0003011316550000049
其中Es-1,...,E0为第一类初等变换矩阵,E′0,...,E′t-1为第三类初等变换矩阵,所述第一类初等变换矩阵指的是交换矩阵的两行或者两列,第二类初等变换矩阵指的是将矩阵某一行或某一列的非零倍数加到另一行或者另一列;
S0.2、记E(i+j)表示一个第三类初等矩阵,E(i+j)是通过将单位矩阵的第j行加到第i行,或者将单位矩阵的第i列加到第j列得到的,记
Figure GDA0003011316550000051
表示一个第一类初等矩阵,
Figure GDA0003011316550000052
是通过将单位矩阵的第k行和第l行交换,或者将单位矩阵的第k列和第l列交换得到的,第一类和第三类初等矩阵的乘法满足如下性质:
Figure GDA0003011316550000053
其中,fk,l(x)函数的定义如下:
Figure GDA0003011316550000054
给定可逆矩阵M的矩阵分解E0…Es-1E′0…E′t-1,使用公式(1)将其中包含的第一类和第三类初等矩阵的顺序进行重排,使得
Figure GDA0003011316550000055
其中u+v=s+t。
进一步的,所述算法是通过计算机自动执行的。
本发明的有益效果为:本发明可以获得密码算法线性层具有更少异或操作的实现,可以减少算法实现的代价。
附图说明
图1为本发明的流程示意图。
具体实施方式
本发明的主要技术方案如下:首先将GF(2)中的n阶可逆矩阵进行矩阵分解,即将其分解成若干初等矩阵的乘积;其次,将给定矩阵的分解转化成矩阵的实现方案;最后,通过GF(2)中矩阵乘法的性质对矩阵分解进行简化从而达到矩阵实现优化的目的。
首先给定GF(2)中的n阶可逆矩阵M,本发明需要将M分解成一系列初等矩阵的乘积。为了将矩阵进行分解,本发明将采用初等变换的方法。
初等变换一共包含三类:第一类是交换矩阵的两行或者两列;第二类是将矩阵某一行或者某一列的所有元素都乘以一个非零的数;第三类是将矩阵某一行或某一列的非零倍数加到另一行或者另一列。如果将初等变换施行到单位矩阵,那么得到的矩阵就称为初等矩阵,因此一共有三类初等矩阵,分别对应三类初等变换。并且,对任意矩阵施行一次初等行变换等价于在其左边乘以对应的初等矩阵,对任意矩阵施行一次初等列变换等价于在其右边乘以对应的初等矩阵。
GF(2)中只包含0和1,因此GF(2)上的第二类初等矩阵退化成单位矩阵,故不作考虑。同时,GF(2)上第三类初等矩阵等价于将矩阵的某一行或者某一列加到矩阵另外一行或一列。所以,GF(2)上的可逆矩阵通过交换行列或者将一行或一列加到另外一行或一列即可化成单位矩阵。
对于GF(2)中任意给定的可逆矩阵M,通过初等变换将其变换成单位矩阵。具体过程如下:挑选一个第三类初等行变换或者第三类初等列变换,使得M作用该变换后所包含1的数量减少得最多。如果有多个行变换或者列变换都使得其作用后M包含1的数量减少得最多,则随机挑选一个;如果所有行变换或者列变换都使得M作用该变换后包含1的数量不变或增多,则后续直接采用高斯消去法将其化成单位矩阵。
将如上初等变换使用左乘或者右乘对应的初等矩阵进行模拟。即,存在一系列第一类和第三类初等矩阵Es-1,...,E0和E′0,...,E′t-1,使得Es-1…E0ME′t-1…E′0=E。进一步,GF(2)中初等矩阵均为自逆矩阵,因此
Figure GDA0003011316550000061
即,可逆矩阵M被分解成一系列第一类和第三类初等矩阵的乘积。
记E(i+j)表示一个第三类初等矩阵,该矩阵是通过将单位矩阵的第j行加到第i行,或者将单位矩阵的第i列加到第j列得到的。记
Figure GDA0003011316550000062
表示一个第一类初等矩阵,该矩阵是通过将单位矩阵的第k行和第l行交换,或者将单位矩阵的第k列和第l列交换得到的。第一类和第三类初等矩阵的乘法满足如下性质:
Figure GDA0003011316550000071
其中,fk,l(x)函数的定义如下:
Figure GDA0003011316550000072
给定可逆矩阵M的矩阵分解E0…Es-1E′0…E′t-1,使用公式(1)将其中包含的第一类和第三类初等矩阵的顺序进行重排,使得
Figure GDA0003011316550000073
其中u+v=s+t.
给定矩阵分解
Figure GDA0003011316550000074
将矩阵分解转化成矩阵实现基于下述观察。
实现Mx=y等价于实现
Figure GDA0003011316550000075
其中x为GF(2)上任意n维向量,y为输出。
Figure GDA0003011316550000076
等价于对x的坐标进行重排,硬件实现代价可忽略。记
Figure GDA0003011316550000077
实现
Figure GDA0003011316550000078
的代价等价于实现E(i0+j0)…E(iu-1+ju-1)x′的代价。E(iu-1+ju-1)x′等价于将x′的第ju-1个比特异或到第iu-1个比特,其代价为一个异或门电路。据此计算,E(i0+j0)…·E(iu-1+ju-1)x′的计算代价为u个异或门电路。
按如上转化方法,可逆矩阵的实现代价等价于矩阵分解中第三类初等矩阵的数量。为了获得矩阵更少异或数的实现,需要搜索矩阵包含更少第三类初等矩阵数量的矩阵分解,为此本发明将采取如下方法。
首先,GF(2)上的初等矩阵满足如下关系:
R1.E(k+i)E(k+j)E(i+j)=E(i+j)E(k+i),
R2.E(i+k)E(k+j)E(i+j)=E(k+j)E(i+k),
R3.E(i+k)E(j+k)E(i+j)=E(i+j)E(j+k),
R4.E(j+k)E(i+k)E(i+j)=E(i+j)E(j+k),
R5.E(k+j)E(k+i)E(i+j)=E(i+j)E(k+i),
R6.E(k+j)E(i+k)E(i+j)=E(i+k)E(k+j),
R7.
Figure GDA0003011316550000084
R1-R7列出了七种可以用来减少第三类初等矩阵数量的矩阵乘法模式。给定矩阵分解
Figure GDA0003011316550000081
从分解包含的所有第三类初等矩阵E(i0+j0)…E(iu-1+ju-1)中搜索所有满足R1-R7列出的模式,然后根据R1-R7列出的规则简化每一种模式中第三类初等矩阵的数量。但是,只有当连续三个初等矩阵满足R1-R6所列模式,或者连续两个初等矩阵满足R7所列模式时,才能利用R1-R7进行简化。
为了更进一步减少第三类初等矩阵的数量,本发明将采取如下方法。
首先,GF(2)中的初等矩阵满足如下关系:
C1.E(l+k)E(i+j)=E(i+j)E(l+k),
C2.E(i+j)E(k+j)=E(k+j)E(i+j),
C3.E(i+j)E(i+k)=E(i+k)E(i+j).
C1-C3列出了三种矩阵乘法满足交换律的情形。根据C1-C3列出的矩阵运算规则,可以交换矩阵分解中第三类初等矩阵的顺序,使存在更多满足R1-R7的模式并进一步减少第三类初等矩阵的数量。给定矩阵M的分解
Figure GDA0003011316550000082
记E(i0+j0)…E(iu-1+ju-1)=E0…Eu-1,记
Figure GDA0003011316550000083
具体操作步骤如下算法1。
算法1:
S0.记seq=E0…Eu-1,l=u
S1.依次从seq中挑选出三个矩阵Ea,Eb和Ec,并且满足0≤a<b<c≤l-1.如果已经遍历完所有可能则跳转至S6;
S2.判断EaEbEc是否满足R1-R6所列模式之一。如果满足跳转至S3,否则跳转至S1。
S3.如果Eb与Ei(i=a+1,...,b-1)乘法可交换,并且Ec与Ej(j=a+1,...,b-1,b+1,.,..,c-1乘法可交换,则将seq等价表示成E0…Ea-1EaEbEcEa+1…Eb-1Eb+1…Ec-1Ec+1…El-1,并使用R1-R6简化并更新seq,更新l=l-1,然后跳转至S1。否则,跳转至S4;
S4.如果Ea与Ei(i=a+1,...,b-1)乘法可交换,并且Ec与Ej(j=b+1,.,..,c-1乘法可交换,则将seq等价表示成E0…Ea-1Ea+1…Eb-1EaEbEcEb+1…Ec-1Ec+1…E0,并使用R1-R6简化并更新seq,更新l=l-1,然后跳转至S1。否则,跳转至S5;
S5.如果Ea与Ei(i=a+1,...,b-1,b+1,...,c-1)乘法可交换,并且Eb与Ej(j=b+1,.,..,c-1乘法可交换,则将seq等价表示成E0…Ea-1Ea+1…Eb-1Eb+1…Ec-1EaEbEcEc+1…El-1,并使用R1-R6简化并更新seq,更新l=l-1,然后跳转至S1。否则,跳转至S6;
S6.依次从seq中挑选出两个矩阵Ea和Eb,并且满足0≤a<b≤l-1.如果已遍历完所有可能则跳转至S10;
S7.判断EaEb是否满足R7所列模式,如果满足跳转至S8,否则跳转至S6;
S8.如果Eb与Ei(i=a+1,...,b-1)乘法可交换,则将seq等价表示成E0…Ea- 1EaEbEa+1…Eb-1Eb+1…El-1,并使用R7简化并更新seq,将此更新后的seq中包含的一个第一类初等变换根据公式(1)移动到seq尾端,更新l=l-1,然后跳转至S6。否则,跳转至S9;
S9.如果Ea与Ei(i=a+1,...,b-1)乘法可交换,则将seq等价表示成E0…Ea-1Ea+1…Eb-1EaEbEb+1…El-1,并使用R7简化并更新seq,将此更新后的seq中包含的一个第一类初等变换根据公式(1)移动到seq尾端,更新l=l-1,然后跳转至S6.
S10.返回seq,l;
算法1可用于初步减少矩阵分解中所包含的第三类初等矩阵数量,给定某矩阵分解中所包含的第三类初等矩阵序列seq,记算法1返回结果为reduce(seq)。为了更深层次减少矩阵分解中第三类初等矩阵的数量,本发明设计了一种启发式算法,给定任意可逆矩阵M,该启发式搜索算法的具体步骤如下算法2。
算法2
一种搜索密码算法线性层硬件实现优化的方法,包括以下步骤:
S0.给定GF(2)上的任意可逆矩阵M,分解
Figure GDA0003011316550000101
记E(i0+j0)…E(iu-1+ju-1)=E0…Eu-1,记
Figure GDA0003011316550000102
记seq=E0…Eu-1P,记l=u,记g=l;
S1.从seq中随机挑选连续g个第三类初等矩阵Er…Er+g-1(0≤r≤l-g),并跳转至S2,直到已遍历完所有可能的矩阵选择情况后,判断g的大小,若g=1,则跳转至S7;若g>1,则令g=g-1并跳转至S1;
S2.计算M′=Er…Er+g-1,并跳转至S3;
S3.将M′分解为
Figure GDA0003011316550000103
并跳转至S4;
S4.记
Figure GDA0003011316550000104
,将seqa中所有第一类初等矩阵根据公式
Figure GDA0003011316550000105
移到尾端,并记得到的结果为
Figure GDA0003011316550000106
Figure GDA0003011316550000111
并跳转至S5;
S5.计算
Figure GDA0003011316550000112
并跳转至S6;
S6.如果l*≥l,跳转至S1;如果l*<l,记
Figure GDA0003011316550000113
并跳转至S1;
S7.返回seq。
算法2即本发明的算法,可以获得密码算法线性层具有更少异或操作的实现,可以减少算法实现的代价。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种搜索密码算法线性层硬件实现优化的方法,其特征在于,包括以下步骤:
S0、根据搜索密码算法线性层硬件实现的特点,将搜索密码算法线性层的实现转换成搜索其对应矩阵的实现,将二进制数据中的0和1看成只包含两个元素的有限域GF(2)中的元素,那么密码算法的线性变换即为定义在GF(2)上的n维向量空间中的线性变换,因此,密码算法的线性层可以用GF(2)上的n阶可逆矩阵表示,即给定GF(2)上的n阶可逆矩阵M和n维向量x,其中向量x的值对应密码算法线性层的输入,则密码算法线性层的输出值y=Mx,即算法线性层的输出等价于计算矩阵M和向量x的乘法,GF(2)中的加法运算即为异或运算,对应于硬件实现中的异或门电路;
S0.1、分解
Figure FDA0003011316540000011
记E(i0+j0)…E(iu-1+ju-1)=E0…Eu-1,记
Figure FDA0003011316540000012
记seq=E0…Eu-1P,记l=u,记g=l;其中u是M的分解中第三类初等矩阵的数量,v是M的分解中第一类初等矩阵的数量,k和l表示矩阵的行或列,E(i+j)表示一个第三类初等矩阵,E(i+j)是通过将单位矩阵的第j行加到第i行,或者将单位矩阵的第i列加到第j列得到的,记
Figure FDA0003011316540000013
表示一个第一类初等矩阵,
Figure FDA0003011316540000016
是通过将单位矩阵的第k行和第l行交换,或者将单位矩阵的第k列和第l列交换得到的,第一类和第三类初等矩阵的乘法满足如下性质:
Figure FDA0003011316540000014
其中,fk,l(x)函数的定义如下:
Figure FDA0003011316540000015
S1、从seq中随机挑选连续g个第三类初等矩阵Er…Er+g-1,0≤r≤l-g,并跳转至S2,直到已遍历完所有可能的矩阵选择情况后,判断g的大小,若g=1,则跳转至S7;若g>1,则令g=g-1并跳转至S1;
S2、计算M′=Er…Er+g-1,并跳转至S3;
S3、分解
Figure FDA0003011316540000021
并跳转至S4;
S4、记
Figure FDA0003011316540000022
Figure FDA0003011316540000023
将seqa中所有第一类初等矩阵根据公式
Figure FDA0003011316540000024
移到尾端,并记得到的结果为
Figure FDA0003011316540000025
Figure FDA0003011316540000026
Figure FDA0003011316540000027
并跳转至S5;
S5、计算
Figure FDA0003011316540000028
并跳转至S6;所述函数Reduce(seqp)包括以下步骤:
S5.1、将
Figure FDA0003011316540000029
简写为seqp=E0…Eu-1,其中x=u,记l=u,并预设以下7种模式:
R1.E(k+i)E(k+j)E(i+j)=E(i+j)E(k+i),
R2.E(i+k)E(k+j)E(i+j)=E(k+j)E(i+k),
R3.E(i+k)E(j+k)E(i+j)=E(i+j)E(j+k),
R4.E(j+k)E(i+k)E(i+j)=E(i+j)E(j+k),
R5.E(k+j)E(k+i)E(i+j)=E(i+j)E(k+i),
R6.E(k+j)E(i+k)E(i+j)=E(i+k)E(k+j),
R7.
Figure FDA00030113165400000210
S5.2、依次从seqp中挑选出三个初等矩阵Ea,Eb和Ec,并且满足0≤a<b<c≤l-1,然后跳转至S5.3;如果已经遍历完所有可能则跳转至S5.7;
S5.3、判断EaEbEc是否满足R1-R6所列模式之一;如果满足跳转至S5.4,否则跳转至S5.2;
S5.4、如果矩阵Eb与矩阵Ei(i=a+1,...,b-1)乘法可交换,并且矩阵Ec与矩阵Ej(j=a+1,...,b-1,b+1,.,..,c-1)乘法可交换,则将seqp等价表示成E0…Ea-1EaEbEcEa+1…Eb-1Eb+1…Ec-1Ec+1…El-1,并使用R1-R6简化并更新seqp,更新l=l-1,然后跳转至S5.2;否则,跳转至S5.5;
S5.5、如果矩阵Ea与矩阵Ei(i=a+1,...,b-1)乘法可交换,并且矩阵Ec与矩阵Ej(j=b+1,.,..,c-1)乘法可交换,则将seqp等价表示成E0…Ea-1Ea+1…Eb-1EaEbEcEb+1…Ec-1Ec+1…E0,并使用R1-R6简化并更新seqp,更新l=l-1,然后跳转至S5.2;否则,跳转至S5.6;
S5.6、如果矩阵Ea与矩阵Ei(i=a+1,...,b-1,b+1,...,c-1)乘法可交换,并且矩阵Eb与矩阵Ej(j=b+1,.,..,c-1)乘法可交换,则将seqp等价表示成E0…Ea-1Ea+1…Eb-1Eb+1…Ec- 1EaEbEcEc+1…Ei-1,并使用R1-R6简化并更新seqp,更新l=l-1,然后跳转至S5.2;否则,跳转至S5.7;
S5.7、依次从seqp中挑选出两个矩阵Ea和Eb,并且满足0≤a<b≤l-1,然后跳转至S5.8;如果已遍历完所有可能则跳转至S5.11;
S5.8、判断EaEb是否满足R7所列模式,如果满足跳转至S5.9,否则跳转至S5.7;
S5.9、如果矩阵Eb与矩阵Ei(i=a+1,...,b-1)乘法可交换,则将seqp等价表示成E0…Ea- 1EaEbEa+1…Eb-1Eb+1…El-1,并使用R7简化并更新seqp,将此更新后的seqp中包含的一个第一类初等变换根据公式
Figure FDA0003011316540000031
移动到seqp尾端,更新l=l-1,然后跳转至S5.7;否则,跳转至S5.10;
S5.10、如果矩阵Ea与矩阵Ei(i=a+1,...,b-1)乘法可交换,则将seqp等价表示成E0…Ea-1Ea+1…Eb-1EaEbEb+1…El-1,并使用R7简化并更新seqp,将此更新后的seqp中包含的一个第一类初等变换根据公式(1)移动到seqp尾端,更新l=l-1,然后跳转至S5.7;
S5.11、返回seqp,l;
S6.如果l*≥l,跳转至S1;如果l*<l,记
Figure FDA0003011316540000041
Figure FDA0003011316540000042
并跳转至S1;
S7.返回seq,实现seq的电路即为搜索算法线性层电路,seq中第三类初等矩阵的数量即为线性层电路中异或门电路的数量。
2.根据权利要求1所述的搜索密码算法线性层硬件实现优化的方法,其特征在于,所述算法是通过计算机自动执行的。
CN201911049313.5A 2019-10-31 2019-10-31 一种搜索密码算法线性层硬件实现优化的方法 Active CN110995403B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911049313.5A CN110995403B (zh) 2019-10-31 2019-10-31 一种搜索密码算法线性层硬件实现优化的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911049313.5A CN110995403B (zh) 2019-10-31 2019-10-31 一种搜索密码算法线性层硬件实现优化的方法

Publications (2)

Publication Number Publication Date
CN110995403A CN110995403A (zh) 2020-04-10
CN110995403B true CN110995403B (zh) 2021-06-01

Family

ID=70082887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911049313.5A Active CN110995403B (zh) 2019-10-31 2019-10-31 一种搜索密码算法线性层硬件实现优化的方法

Country Status (1)

Country Link
CN (1) CN110995403B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507644B (zh) * 2020-12-03 2021-05-14 湖北大学 优化的sm4算法线性层电路
CN115276955B (zh) * 2022-06-27 2023-03-31 湖北大学 一种优化的clefia算法线性层实现电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW538600B (en) * 2001-12-07 2003-06-21 Chung Shan Inst Of Science Fast turbo code encoder adapted for communication system
CN101719823A (zh) * 2009-10-30 2010-06-02 中国科学院软件研究所 一种实现s-盒线性变换的方法
CN107766032A (zh) * 2016-08-15 2018-03-06 清华大学 多项式基GF(2^n)乘法器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW538600B (en) * 2001-12-07 2003-06-21 Chung Shan Inst Of Science Fast turbo code encoder adapted for communication system
CN101719823A (zh) * 2009-10-30 2010-06-02 中国科学院软件研究所 一种实现s-盒线性变换的方法
CN107766032A (zh) * 2016-08-15 2018-03-06 清华大学 多项式基GF(2^n)乘法器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于移位和异或的最佳扩散变换的构造;曹云飞 等;《四川大学学报(自然科学版)》;20120930;第49卷(第5期);1019-1023 *

Also Published As

Publication number Publication date
CN110995403A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
Seberry et al. Nonlinearity and propagation characteristics of balanced boolean functions
Chen A novel heuristic method for obtaining S-boxes
Nematzadeh et al. Binary search tree image encryption with DNA
US8705731B2 (en) Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
Chen et al. Image security system using recursive cellular automata substitution
AU767323B2 (en) Block encryption device using auxiliary conversion
EP3125221A1 (en) Encryption processing device, and encryption processing method and program
CN110995403B (zh) 一种搜索密码算法线性层硬件实现优化的方法
CN110166223A (zh) 一种国密sm4的快速软件实现方法
CN111597574A (zh) 一种基于空间扩散结构的并行图像加密系统及方法
Hamdi et al. Hybrid encryption algorithm (HEA) based on chaotic system
Bouslehi et al. Innovative image encryption scheme based on a new rapid hyperchaotic system and random iterative permutation
CN112084514A (zh) 一种混沌序列与dna突变的图像加密方法及装置
JP3701969B2 (ja) 非線形動的換字装置
JPWO2009128370A1 (ja) 調整値付きブロック暗号装置、暗号生成方法および記録媒体
Sadeghi et al. Improved zero‐correlation and impossible differential cryptanalysis of reduced‐round SIMECK block cipher
İlter et al. MILP-aided Cryptanalysis of the FUTURE Block Cipher
Chalob et al. A new block cipher for image encryption based on multi chaotic systems
CN107886463B (zh) 一种基于Chen系统和细胞自动机的数字图像加密方法
CN114268423B (zh) 一种基于mtcnn的s盒生成方法
US20090022310A1 (en) Cryptographic device and method for generating pseudo-random numbers
Shi et al. A correlation attack on full SNOW-V and SNOW-Vi
Zajac et al. Cryptographic properties of small bijective S-boxes with respect to modular addition
Akleylek et al. Efficient methods to generate cryptographically significant binary diffusion layers
JP3907976B2 (ja) F関数内部にspn構造を用いた演算装置および演算方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant