CN112134691B - 一种部件可重复的nlcs分组密码实现方法、装置及介质 - Google Patents
一种部件可重复的nlcs分组密码实现方法、装置及介质 Download PDFInfo
- Publication number
- CN112134691B CN112134691B CN202011165932.3A CN202011165932A CN112134691B CN 112134691 B CN112134691 B CN 112134691B CN 202011165932 A CN202011165932 A CN 202011165932A CN 112134691 B CN112134691 B CN 112134691B
- Authority
- CN
- China
- Prior art keywords
- round
- key
- feedback shift
- shift register
- transformation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000009466 transformation Effects 0.000 claims abstract description 77
- 230000006870 function Effects 0.000 claims abstract description 49
- 239000011159 matrix material Substances 0.000 claims description 70
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000006467 substitution reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- OUXCBPLFCPMLQZ-WOPPDYDQSA-N 4-amino-1-[(2r,3s,4s,5r)-4-hydroxy-5-(hydroxymethyl)-3-methyloxolan-2-yl]-5-iodopyrimidin-2-one Chemical group C[C@H]1[C@H](O)[C@@H](CO)O[C@H]1N1C(=O)N=C(N)C(I)=C1 OUXCBPLFCPMLQZ-WOPPDYDQSA-N 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种部件可重复的NLCS分组密码实现方法、装置及介质,该方案中分组密码采用SPN结构,在明文进行轮密钥加运算后,再进行17轮轮函数运算,其中轮函数包括常数加,S盒替换,行移位变换,列混淆变换和轮密钥加变换,每轮轮密钥加变换中的密钥为扩展后的密钥。采用有限域GF(24)上的一个线性反馈移位寄存器和环状串联的四个非线性反馈移位寄存器来构造密钥扩展算法,其中的线性反馈移位寄存器通过迭代的方式来构造列混合变换。密钥扩展算法在解密时也可以重复利用,只需改变线性反馈移位寄存器和非线性反馈移位寄存器的移位方向即可,在提高了密钥的安全性的同时,也提高了加解密的一致性,便于软硬件实现。
Description
技术领域
本发明属于密码技术领域,尤其是涉及一种部件可重复的NLCS分组密码实现方法、装置及介质。
背景技术
随着信息技术的快速发展,大量信息通过计算机网络进行交流传播,这种情况在给人们的生活带来方便的同时,也使得信息安全的问题显得越来越突出。密码学作为信息安全的核心技术和基础,受到了越来越广泛的关注和研究。分组密码具有速度快、易于标准化和便于软硬件实现等特点,是一种很重要的加密方案。
物联网技术的发展,使得无线传感器,无线射频技术,红外感应器和激光扫描器等信息传感设备的应用越来越广泛,导致硬件实现占用面积小,加密速度快,运行功耗少的轻量级分组密码算法的应用变得越来越广泛。轻量级分组密码算法的设计大都受到DES和AES设计原理的影响,大多数采用Feistel结构和SPN结构进行设计,同时为了保证轻量级分组密码算法的软硬件实现效率,牺牲了一定的安全性,或者为了节约硬件资源降低了运算效率等。但随着密码分析技术的不断进步,密码的安全性也变得越来越重要。大多数分组密码都通过多轮迭代来增加密码的安全性,但随着人们时间观念越来越强,对加解密运算效率的要求也显得尤为突出。
发明内容
本发明提供了一种部件可重复的NLCS分组密码实现方法、装置及介质,通过有限域上的线性反馈移位寄存器和非线性反馈移位寄存器串联进行密钥扩展,同时通过利用密钥扩展中的线性反馈移位寄存器来做分组密码的列混淆运算,克服了现有的轻量级分组密码算法中效率低且易受攻击的问题。
本发明提供了以下技术方案:
一方面,一种部件可重复的NLCS分组密码实现方法,包括以下步骤:
步骤1:将64-bit明文/密文及初始密钥加载至寄存器,进行加/解密运算;
步骤2:将所述待加/解密数据与初始密钥进行轮密钥加变换,并将轮密钥加后的数据按以下步骤进行17轮轮函数运算操作;
轮函数依次为常数加变换、S盒替换、行移位变换、列混淆变换以及轮密钥加操作,或者依次为列混淆逆变换、行移位逆变换、S盒替换逆变换、常数加逆变换以及轮密钥加操作;
每一轮的轮密钥均由有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器对前一轮的轮密钥进行密钥扩展运算获得,第一轮的轮密钥扩展对象为初始密钥。
所述列混淆变换和列混淆逆变换、行移位变换和行移位逆变换、S盒替换变换和S盒替换逆变换以及常数加变换和常数加逆变换均互为逆运算。
进一步地,所述有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器是指一个16-bit的线性反馈移位寄存器LFSR与四个16-bit的非线性反馈移位寄存器NFSR串联。
进一步地,所述轮密钥进行密钥扩展过程如下:
首先,获得前一轮的轮密钥,并排列成4×4的矩阵K;
第一轮的轮密钥扩展中的矩阵K是将密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵获得;
其次,利用一个GF(24)上的线性反馈移位寄存器LFSR将矩阵K的每列与线性反馈移位寄存器LFSR的反馈函数对应的伴随矩阵作用后再进行循环上移运算,得到如下矩阵K′:
并将运算后得到的矩阵K′和GF(24)上的呈环状串联的四个非线性反馈移位寄存器NFSR进行非线性反馈移位运算,得到扩展后的轮密钥。
扩展后的轮密钥的矩阵表达式如下:
进一步地,所述线性反馈移位寄存器LFSR的反馈函数为f(x)=2+x+x2+4x3+x4;所述四个非线性反馈移位寄存器NFSR的反馈函数分别为:
f0(x0,x1,x2,x3)=x0+x1+x2+x1x2
f1(x0,x1,x2,x3)=x0+x2+x3+x1x2
f2(x0,x1,x2,x3)=x0+x2+x1x2+x1x3
f3(x0,x1,x2,x3)=x0+x1+x1x2+x2x3
其中,x,x0,x1,x2,x3表示反馈函数中的变量。
进一步地,所述列混淆变换操作是通过重复利用密钥扩展运算中的线性反馈移位寄存器迭代运算4次,得到的列混淆变换操作的矩阵表达式如下:
其中,矩阵M中的元素为GF(24)中的元素,采用16进制表示,m为线性反馈移位寄存器的反馈函数对应的伴随矩阵表达式。
列混淆变换可以重复利用密钥扩展运算中的线性反馈移位寄存器迭代4次来完成,其不仅节约了硬件资源,而且密钥扩展运算中的线性反馈移位寄存器迭代4次后的矩阵是一个可以达到最优扩散效果的矩阵,提高了分组密码抵抗差分分析和线性分析的能力。
另一方面,一种部件可重复的NLCS分组密码实现装置,包括:
加载单元:将64-bit明文/密文及初始密钥加载至寄存器,进行加/解密运算;
轮密钥加初始变换单元:将待加/解密数据与初始密钥进行轮密钥加变换;
轮函数调用单元:将轮密钥加初始变换单元得到的数据进行17轮轮函数运算操作;
轮函数依次为常数加变换、S盒替换、行移位变换、列混淆变换以及轮密钥加操作,或者依次为列混淆逆变换、行移位逆变换、S盒替换逆变换、常数加逆变换以及轮密钥加操作;
轮密钥扩展单元:每一轮的轮密钥均由有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器对前一轮的轮密钥进行密钥扩展运算获得,第一轮的轮密钥扩展对象为初始密钥。
进一步地,所述有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器是指一个16-bit的线性反馈移位寄存器LFSR与四个16-bit的非线性反馈移位寄存器NFSR串联。
进一步地,所述轮密钥扩展单元的操作过程如下:
首先,获得前一轮的轮密钥,并排列成4×4的矩阵K;
第一轮的轮密钥扩展中的矩阵K是将密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵获得;
其次,利用一个GF(24)上的线性反馈移位寄存器LFSR将矩阵K的每列与线性反馈移位寄存器LFSR的反馈函数对应的伴随矩阵作用后再进行循环上移运算,得到如下矩阵K′:
并将运算后得到的矩阵K′和GF(24)上的呈环状串联的四个非线性反馈移位寄存器NFSR进行循环移位的非线性反馈移位运算,得到扩展后的轮密钥。
扩展后的轮密钥的矩阵表达式如下:
进一步地,所述线性反馈移位寄存器LFSR的反馈函数为f(x)=2+x+x2+4x3+x4;所述四个非线性反馈移位寄存器NFSR的反馈函数分别为:
f0(x0,x1,x2,x3)=x0+x1+x2+x1x2
f1(x0,x1,x2,x3)=x0+x2+x3+x1x2
f2(x0,x1,x2,x3)=x0+x2+x1x2+x1x3
f3(x0,x1,x2,x3)=x0+x1+x1x2+x2x3
其中,x,x0,x1,x2,x3表示反馈函数中的变量。
再一方面,一种计算机存储介质,包括计算机程序,所述计算机程序指令被处理终端执行时,使所述处理终端执行所述的一种部件可重复的NLCS分组密码实现方法。
有益效果
本发明提供了一种部件可重复的NLCS分组密码实现方法、装置及介质,该方案中分组密码采用SPN结构,在明文进行轮密钥加运算后,再进行17轮轮函数运算,其中轮函数包括常数加,S盒替换,行移位变换,列混淆变换和轮密钥加变换,每轮轮密钥加变换中的密钥为扩展后的密钥。采用有限域GF(24)上的一个线性反馈移位寄存器和环状串联的四个非线性反馈移位寄存器来构造密钥扩展算法,其中的线性反馈移位寄存器通过迭代的方式来构造列混合变换。密钥扩展算法在解密时也可以重复利用,只需改变线性反馈移位寄存器和非线性反馈移位寄存器的移位方向即可,在提高了密钥的安全性的同时,也提高了加解密的一致性,便于软硬件实现。整个密码算法只需迭代17轮,比一般的分组密码迭代轮数少,提高算法整体的运算效率。
附图说明
图1为本发明实例所述方法的加密流程图;
图2为本发明实例所述方法的密钥扩展算法中LFSR结构图;
图3为本发明实例所述方法的密钥扩展算法中四个NFSR环状串联的结构图。
具体实施方式
本发明实施例
一种部件可重复的NLCS分组密码实现方法,其特征在于,包括以下步骤:
步骤1:将64-bit明文/密文及初始密钥加载至寄存器,进行加/解密运算;
步骤2:将所述待加/解密数据与初始密钥进行轮密钥加变换,并将轮密钥加后的数据按以下步骤进行17轮轮函数运算操作;
轮函数依次为常数加变换(AddConstants)、S盒替换(SubCell)、行移位变换(ShiftRow)、列混淆变换(MixColumnsSerial)以及轮密钥加操作(AddRounKey),或者依次为列混淆逆变换(InvMixColumns)、行移位逆变换(InvShiftRows)、S盒替换逆变换(InvSubCells)、常数加逆变换(InvAddConstants)以及轮密钥加操作(AddRounkey);
每一轮的轮密钥均由有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器对前一轮的轮密钥进行密钥扩展(KeyExpansion)运算获得,第一轮的轮密钥扩展对象为初始密钥。
所述列混淆变换和列混淆逆变换、行移位变换和行移位逆变换、S盒替换变换和S盒替换逆变换以及常数加变换和常数加逆变换均互为逆运算。
所述有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器是指一个16-bit的线性反馈移位寄存器LFSR与四个16-bit的非线性反馈移位寄存器NFSR串联。
所述轮密钥进行密钥扩展过程如下:
首先,获得前一轮的轮密钥,并排列成4×4的矩阵K;
第一轮的轮密钥扩展中的矩阵K是将密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵获得;
其次,利用一个GF(24)上的线性反馈移位寄存器LFSR将矩阵K的每列与线性反馈移位寄存器LFSR的反馈函数作用后再进行循环右移运算,并将运算后得到的矩阵K′和GF(24)上的呈环状串联的四个非线性反馈移位寄存器NFSR进行非线性反馈移位运算,得到扩展后的轮密钥。
一种部件可重复的NLCS分组密码算法伪代码描述如下。
算法1:NLCS算法加密过程
输入:Plaintext,Key;
输出:Ciphertext;
1.State←Plaintext;
2.AddRoundKey(State,Key);
3.for i=1to 17do
4.AddConstants(State);
5.SubCells(State);
6.ShiftRows(State);
7.MixColumns(State);
8.KeyExpansion(Keyi);
9.AddRoundKey(State,Keyi);
10.end for
11.Ciphertext←State;
其中:Key为原始密钥,Keyi为相应更新后的轮密钥。
密钥扩展运算:将种子密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵。
应用有限域GF(24)上的线性反馈移位寄存器对上述种子密钥中的每一列进行运算,得到如下矩阵K′:
其中反馈函数为f(x)=2+x+x2+4x3+x4。
输出后的密钥用四个环状串联的非线性反馈移位寄存器对每行进行运算,其中四个环状串联的非线性反馈移位寄存器对应的反馈函数分别为:
f0(x0,x1,x2,x3)=x0+x1+x2+x1x2,
f1(x0,x1,x2,x3)=x0+x2+x3+x1x2,
f2(x0,x1,x2,x3)=x0+x2+x1x2+x1x3,
f3(x0,x1,x2,x3)=x0+x1+x1x2+x2x3.
对于密钥矩阵K′,用上述四个环状串联的非线性反馈移位寄存器对每行进行运算,得到如下矩阵K″,即为密钥扩展一轮得到的密钥:
轮密钥加运算:将64-bit明文或每轮中间值与第i(1≤i≤17)个轮密钥64-bit进行异或运算,64-bit明文或每轮中间值State(state0,…,state15)、第i轮轮密钥的运算关系为
S盒替换变换:沿用了LED算法的S盒,中间状态矩阵的16个4-bit,对每个4-bit进行S盒变换,其变换关系表1所示
表1 NLCS的S盒
行移位变换:对于16个单元组成的4×4的矩阵,矩阵的每一行向左循环不同的单元移位,第0行循环保持不变,第1行循环左移1个单元,第2行左移2个单元,第3行循环左移3个单元。
列混合变换:采用如图2所示的LFSR结构迭代4次而成,LFSR的反馈函数对应的伴随矩阵如下m所示,其中矩阵幂次运算在有限域GF(24)上进行,矩阵中数据均以16进制表示。
列混合变换运算是列混合变换矩阵M与State中16个单元组成的4×4矩阵在有限域GF(24)上的乘法变换,对应于以下变换公式,其中数据以16进制表示。
NLCS解密算法描述如下:
输入:Ciphertext,Key;
输出:Plaintext;
1.State←Ciphertext;
2.AddRoundKey(State,Key);
3.for i=1to 17do
4.InvMixColumns(State);
5.InvShiftRows(State);
6.InvSubCells(State);
7.InvAddConstants(State);
8.InvKeyExpansion(Keyi);
9.AddRoundKey(State,Keyi);
10.end for
11.Ciphertext←State;
其中:Key为加密后得到的密钥,Keyi为加密时每轮更新后的密钥。
NLCS解密使用了加密变换中的四种逆变换与轮密钥加变换,密钥扩展变换,其中轮密钥加和常数加运算为其自身;以加密运算相反的顺序对密文进行解密,解密过程使用的初始密钥为加密后得到的密钥。
S盒替换逆变换:沿用了LED算法的S盒的逆变换,中间状态矩阵的16个4-bit,对每个4-bit进行S盒变换,其变换关系表2所示。
表2 NLCS的S盒逆变换
行移位逆变换:对于16个单元组成的4×4的矩阵,矩阵的每一行向右循环不同的单元移位,第0行循环保持不变,第1行循环右移1个单元,第2行右移2个单元,第3行循环右移3个单元。
列混合逆变换:采用图2所示LFSR结构的逆变换迭代4次而成,所谓的逆变换是指LFSR中的移位方向相反,并且对应的反馈函数变为:反馈函数为f(x)=9+9x+2x2+9x3+x4。具体的逆变换对应的矩阵如下m'所示,其中矩阵幂次运算在有限域GF(24)上进行,矩阵中数据均以16进制表示。
列混合变换逆运算是列混合逆变换矩阵M与State中16个单元组成的4×4矩阵在有限域GF(24)上的乘法变换,对应于以下变换公式,其中数据以16进制表示。
密钥扩展逆变换:将加密后的密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵。
应用有限域GF(24)上的四个环状串联的非线性反馈移位寄存器对每行进行运算,其中四个环状串联的非线性反馈移位寄存器对应的反馈函数分别为:
f0(x0,x1,x2,x3)=x0+x1+x2+x1x2,
f1(x0,x1,x2,x3)=x0+x2+x3+x1x2,
f2(x0,x1,x2,x3)=x0+x2+x1x2+x1x3,
f3(x0,x1,x2,x3)=x0+x1+x1x2+x2x3.
对于上述密钥矩阵,用上述四个环状串联的非线性反馈移位寄存器对每行进行运算后的矩阵为:
需要注意的是运算时线性反馈移位寄存器移位方向与加密时相反,并且其中反馈函数为f(x)=9+9x+2x2+9x3+x4。
NLCS-64算法测试数据如表3所示:
表3 NLCS算法测试数据
Plaintext | key | CiPhertext |
0000-0000-0000-0000 | 0000-0000-0000-0000 | 61BC-2B25-C0E5-1434 |
0000-0000-0000-0000 | FFFF-FFFF-FFFF-FFFF | DA70-D42A-BED4-3DA7 |
FFFF-FFFF-FFFF-FFFF | 0000-0000-0000-0000 | F867-8EE9-F5F0-293F |
FFFF-FFFF-FFFF-FFFF | FFFF-FFFF-FFFF-FFFF | 0237-4FCB-C1D1-41A5 |
CCCC-CCCC-CCCC-CCCC | 2222-2222-2222-2222 | F3CE-C905-B41F-1273 |
本发明所述的NLCS密码算法在ASIC进行硬件实现,同时在Synopsys DesignCompiler Version B-2008.09进行综合,其中综合工艺库为SMIC 0.18umCMOS,在综合实验中,面积资源单位为1379GE。NLCS-64算法所占用的资源面积是1379GE。各轻量级分组密码算法实现面积比较如表4所示。
表4各轻量级分组密码算法实现面积比较
算法 | 结构 | 分组长度(bits) | 密钥长度(bits) | 资源面积(GE) |
Twine | Feistel | 64 | 80 | 1503 |
LBlock | Feistel | 64 | 80 | 1320 |
PRESENT | SPN | 64 | 80 | 1570 |
RECTANGLE | SPN | 64 | 80 | 1467 |
NLCS | SPN | 64 | 64 | 1379 |
一种部件可重复的NLCS分组密码实现装置,包括:
加载单元:将64-bit明文/密文及初始密钥加载至寄存器,进行加/解密运算;
轮密钥加初始变换单元:将待加/解密数据与初始密钥进行轮密钥加变换;
轮函数调用单元:将轮密钥加初始变换单元得到的数据进行17轮轮函数运算操作;
轮函数依次为常数加变换、S盒替换、行移位变换、列混淆变换以及轮密钥加操作,或者依次为列混淆逆变换、行移位逆变换、S盒替换逆变换、常数加逆变换以及轮密钥加操作;
轮密钥扩展单元:每一轮的轮密钥均由有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器对前一轮的轮密钥进行密钥扩展运算获得,第一轮的轮密钥扩展对象为初始密钥。
所述列混淆变换和列混淆逆变换、行移位变换和行移位逆变换、S盒替换变换和S盒替换逆变换以及常数加变换和常数加逆变换均互为逆运算。
所述有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器是指一个16-bit的线性反馈移位寄存器LFSR与四个16-bit的非线性反馈移位寄存器NFSR串联。
应当理解,本发明各个实施例中的功能单元模块可以集中在一个处理单元中,也可以是各个单元模块单独物理存在,也可以是两个或两个以上的单元模块集成在一个单元模块中,可以采用硬件或软件的形式来实现。
一种计算机存储介质,包括计算机程序所述计算机程序指令被处理终端执行时,使所述处理终端执行一种部件可重复的NLCS分组密码实现方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详尽的说明,所属领域的普通技术人员应当理解,上述实施例仅仅是对本发明的示意性实现方式的解释,实施例中的细节并不构成对本发明范围的限制,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案的等效变换、简单替换等显而易见的改变,均落在本发明保护范围之内。
Claims (8)
1.一种部件可重复的NLCS分组密码实现方法,其特征在于,包括以下步骤:
步骤1:将64-bit明文/密文及初始密钥加载至寄存器,进行加/解密运算;
步骤2:将待加/解密数据与初始密钥进行轮密钥加变换,并将轮密钥加后的数据按以下步骤进行17轮轮函数运算操作;
轮函数依次为常数加变换、S盒替换、行移位变换、列混淆变换以及轮密钥加操作,或者依次为列混淆逆变换、行移位逆变换、S盒替换逆变换、常数加逆变换以及轮密钥加操作;
每一轮的轮密钥均由有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器对前一轮的轮密钥进行密钥扩展运算获得,第一轮的轮密钥扩展对象为初始密钥;
所述轮密钥进行密钥扩展过程如下:
首先,获得前一轮的轮密钥,并排列成4×4的矩阵K;
第一轮的轮密钥扩展中的矩阵K是将密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵获得;
其次,利用一个GF(24)上的线性反馈移位寄存器LFSR将矩阵K的每列与线性反馈移位寄存器LFSR的反馈函数对应的伴随矩阵作用后再进行循环上移运算,并将运算后得到的矩阵K′和GF(24)上的呈环状串联的四个非线性反馈移位寄存器NFSR进行非线性反馈移位运算,得到扩展后的轮密钥。
2.根据权利要求1所述的方法,其特征在于,所述有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器是指一个16-bit的线性反馈移位寄存器LFSR与四个16-bit的非线性反馈移位寄存器NFSR串联。
3.根据权利要求1所述的方法,其特征在于,所述线性反馈移位寄存器LFSR的反馈函数为f(x)=2+x+x2+4x3+x4;
所述四个非线性反馈移位寄存器NFSR的反馈函数分别为:
f0(x0,x1,x2,x3)=x0+x1+x2+x1x2,
f1(x0,x1,x2,x3)=x0+x2+x3+x1x2,
f2(x0,x1,x2,x3)=x0+x2+x1x2+x1x3,
f3(x0,x1,x2,x3)=x0+x1+x1x2+x2x3
其中,x,x0,x1,x2,x3表示反馈函数中的变量。
5.一种部件可重复的NLCS分组密码实现装置,其特征在于,包括:
加载单元:将64-bit明文/密文及初始密钥加载至寄存器,进行加/解密运算;
轮密钥加初始变换单元:将待加/解密数据与初始密钥进行轮密钥加变换;
轮函数调用单元:将轮密钥加初始变换单元得到的数据进行17轮轮函数运算操作;
轮函数依次为常数加变换、S盒替换、行移位变换、列混淆变换以及轮密钥加操作,或者依次为列混淆逆变换、行移位逆变换、S盒替换逆变换、常数加逆变换以及轮密钥加操作;
轮密钥扩展单元:每一轮的轮密钥均由有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器对前一轮的轮密钥进行密钥扩展运算获得,第一轮的轮密钥扩展对象为初始密钥;
所述轮密钥扩展单元的操作过程如下:
首先,获得前一轮的轮密钥,并排列成4×4的矩阵K;
第一轮的轮密钥扩展中的矩阵K是将密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵获得;
其次,利用一个GF(24)上的线性反馈移位寄存器LFSR将矩阵K的每列与线性反馈移位寄存器LFSR的反馈函数对应的伴随矩阵作用后再进行循环上移运算,并将运算后得到的矩阵K′和GF(24)上的呈环状串联的四个非线性反馈移位寄存器NFSR进行循环移位的非线性反馈移位运算,得到扩展后的轮密钥。
6.根据权利要求5所述的装置,其特征在于,所述有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器是指一个16-bit的线性反馈移位寄存器LFSR与四个16-bit的非线性反馈移位寄存器NFSR串联。
7.根据权利要求5所述的装置,其特征在于,所述线性反馈移位寄存器LFSR的反馈函数为f(x)=2+x+x2+4x3+x4;
所述四个非线性反馈移位寄存器NFSR的反馈函数分别为:
f0(x0,x1,x2,x3)=x0+x1+x2+x1x2,
f1(x0,x1,x2,x3)=x0+x2+x3+x1x2,
f2(x0,x1,x2,x3)=x0+x2+x1x2+x1x3,
f3(x0,x1,x2,x3)=x0+x1+x1x2+x2x3
其中,x,x0,x1,x2,x3表示反馈函数中的变量。
8.一种计算机存储介质,包括计算机程序,其特征在于,所述计算机程序指令被处理终端执行时,使所述处理终端执行权利要求1-4任一项所述的一种部件可重复的NLCS分组密码实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165932.3A CN112134691B (zh) | 2020-10-27 | 2020-10-27 | 一种部件可重复的nlcs分组密码实现方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165932.3A CN112134691B (zh) | 2020-10-27 | 2020-10-27 | 一种部件可重复的nlcs分组密码实现方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112134691A CN112134691A (zh) | 2020-12-25 |
CN112134691B true CN112134691B (zh) | 2023-07-04 |
Family
ID=73853561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165932.3A Active CN112134691B (zh) | 2020-10-27 | 2020-10-27 | 一种部件可重复的nlcs分组密码实现方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112134691B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900286B (zh) * | 2022-05-15 | 2024-09-27 | 桂林电子科技大学 | 一种基于l-m-nfsr结构的16比特s盒构造方法 |
CN117978367B (zh) * | 2024-03-28 | 2024-06-28 | 青岛青软晶尊微电子科技有限公司 | 一种基于risc-v架构的加密方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238995A (zh) * | 2013-06-21 | 2014-12-24 | 中国人民解放军信息工程大学 | 一种非线性反馈移位寄存器 |
CN107113163A (zh) * | 2014-12-17 | 2017-08-29 | 瑞典爱立信有限公司 | 流加密技术 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961427B1 (en) * | 1999-11-23 | 2005-11-01 | General Instrument Corporation | Methods and apparatus for keystream generation |
CN101826959B (zh) * | 2010-05-14 | 2012-05-23 | 中国科学院软件研究所 | 一种面向字节的密钥流生成方法及加密方法 |
CN111478766B (zh) * | 2020-01-21 | 2021-09-28 | 衡阳师范学院 | 一种分组密码meg实现方法、装置及存储介质 |
-
2020
- 2020-10-27 CN CN202011165932.3A patent/CN112134691B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104238995A (zh) * | 2013-06-21 | 2014-12-24 | 中国人民解放军信息工程大学 | 一种非线性反馈移位寄存器 |
CN107113163A (zh) * | 2014-12-17 | 2017-08-29 | 瑞典爱立信有限公司 | 流加密技术 |
Also Published As
Publication number | Publication date |
---|---|
CN112134691A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9031228B2 (en) | Systems and methods for implementing block cipher algorithms on attacker-controlled systems | |
CN111431697B (zh) | 一种新型轻量级分组密码corl的实现方法 | |
US20230261853A1 (en) | Method and apparatus for improving the speed of advanced encryption standard (aes) decryption algorithm | |
CN104639314A (zh) | 基于aes加密/解密算法的装置和流水控制方法 | |
CN102035641A (zh) | 一种实现aes加解密的装置和方法 | |
CN105959107B (zh) | 一种新型高安全的轻量级sfn分组密码实现方法 | |
WO2009031883A1 (en) | Encryption processor | |
CN103503362B (zh) | 数据处理装置、数据处理方法以及程序 | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
CN110784307B (zh) | 轻量级密码算法scenery实现方法、装置及存储介质 | |
CN112134691B (zh) | 一种部件可重复的nlcs分组密码实现方法、装置及介质 | |
JP5652363B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN111245598A (zh) | 一种轻量级aerogel分组密码的实现方法 | |
Arrag et al. | Design and Implementation A different Architectures of mixcolumn in FPGA | |
CN111478766B (zh) | 一种分组密码meg实现方法、装置及存储介质 | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
CN111314054B (zh) | 一种轻量级eceg分组密码实现方法、系统及存储介质 | |
US20240097880A1 (en) | High-speed circuit combining aes and sm4 encryption and decryption | |
Nabeel et al. | IoT light weight (LWT) crypto functions | |
Hassan | Implementation of lightweight cryptographic algorithms in IoT devices and sensor networks | |
US11750369B2 (en) | Circuit module of single round advanced encryption standard | |
CN113343276B (zh) | 基于广义二维猫映射的轻量级分组密码算法gcm的加密方法 | |
CN116318624A (zh) | 一种面向硬件的新型轻量级分组密码aspf的实现方法 | |
Arrag et al. | Several AES variants under VHDL language in FPGA | |
Al-ahdal et al. | Securing the Internet of Things: A review of Lightweight and low-power Cryptography Techniques |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231123 Address after: 421000 Northwest storefront on the second floor of Linghu Township Sports Center, Zhuhui District, Hengyang City, Hunan Province Patentee after: Hengyang Hengjiu Space Decoration Design Engineering Co.,Ltd. Address before: 421002 Hengyang Teachers College, No.16, Henghua Road, Zhuhui District, Hengyang City, Hunan Province Patentee before: Hengyang Normal University |
|
TR01 | Transfer of patent right |