CN112134691B - 一种部件可重复的nlcs分组密码实现方法、装置及介质 - Google Patents

一种部件可重复的nlcs分组密码实现方法、装置及介质 Download PDF

Info

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
Application number
CN202011165932.3A
Other languages
English (en)
Other versions
CN112134691A (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.)
Hengyang Hengjiu Space Decoration Design Engineering Co.,Ltd.
Original Assignee
Hengyang Normal 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 Hengyang Normal University filed Critical Hengyang Normal University
Priority to CN202011165932.3A priority Critical patent/CN112134691B/zh
Publication of CN112134691A publication Critical patent/CN112134691A/zh
Application granted granted Critical
Publication of CN112134691B publication Critical patent/CN112134691B/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
    • 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
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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分组密码实现方法、装置及介质
技术领域
本发明属于密码技术领域,尤其是涉及一种部件可重复的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的矩阵获得;
Figure BDA0002745774800000021
其次,利用一个GF(24)上的线性反馈移位寄存器LFSR将矩阵K的每列与线性反馈移位寄存器LFSR的反馈函数对应的伴随矩阵作用后再进行循环上移运算,得到如下矩阵K′:
Figure BDA0002745774800000022
并将运算后得到的矩阵K′和GF(24)上的呈环状串联的四个非线性反馈移位寄存器NFSR进行非线性反馈移位运算,得到扩展后的轮密钥。
扩展后的轮密钥的矩阵表达式如下:
Figure BDA0002745774800000023
进一步地,所述线性反馈移位寄存器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次,得到的列混淆变换操作的矩阵表达式如下:
Figure BDA0002745774800000031
其中,矩阵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的矩阵获得;
Figure BDA0002745774800000032
其次,利用一个GF(24)上的线性反馈移位寄存器LFSR将矩阵K的每列与线性反馈移位寄存器LFSR的反馈函数对应的伴随矩阵作用后再进行循环上移运算,得到如下矩阵K′:
Figure BDA0002745774800000041
并将运算后得到的矩阵K′和GF(24)上的呈环状串联的四个非线性反馈移位寄存器NFSR进行循环移位的非线性反馈移位运算,得到扩展后的轮密钥。
扩展后的轮密钥的矩阵表达式如下:
Figure BDA0002745774800000042
进一步地,所述线性反馈移位寄存器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的矩阵。
Figure BDA0002745774800000061
应用有限域GF(24)上的线性反馈移位寄存器对上述种子密钥中的每一列进行运算,得到如下矩阵K′:
Figure BDA0002745774800000062
其中反馈函数为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″,即为密钥扩展一轮得到的密钥:
Figure BDA0002745774800000071
轮密钥加运算:将64-bit明文或每轮中间值与第i(1≤i≤17)个轮密钥64-bit进行异或运算,64-bit明文或每轮中间值State(state0,…,state15)、第i轮轮密钥
Figure BDA0002745774800000072
的运算关系为
Figure BDA0002745774800000073
常数加变换:中间状态矩阵异或一个轮常量矩阵;轮常量具体定义如下矩阵所示,(rc5,rc4,rc3,rc2,rc1,rc0)为6个比特,初始值取0。向左移位,并将
Figure BDA0002745774800000074
作为新的rc0的值。
Figure BDA0002745774800000075
S盒替换变换:沿用了LED算法的S盒,中间状态矩阵的16个4-bit,对每个4-bit进行S盒变换,其变换关系表1所示
表1 NLCS的S盒
Figure BDA0002745774800000076
行移位变换:对于16个单元组成的4×4的矩阵,矩阵的每一行向左循环不同的单元移位,第0行循环保持不变,第1行循环左移1个单元,第2行左移2个单元,第3行循环左移3个单元。
列混合变换:采用如图2所示的LFSR结构迭代4次而成,LFSR的反馈函数对应的伴随矩阵如下m所示,其中矩阵幂次运算在有限域GF(24)上进行,矩阵中数据均以16进制表示。
Figure BDA0002745774800000081
列混合变换运算是列混合变换矩阵M与State中16个单元组成的4×4矩阵在有限域GF(24)上的乘法变换,对应于以下变换公式,其中数据以16进制表示。
Figure BDA0002745774800000082
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盒逆变换
Figure BDA0002745774800000083
行移位逆变换:对于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进制表示。
Figure BDA0002745774800000091
列混合变换逆运算是列混合逆变换矩阵M与State中16个单元组成的4×4矩阵在有限域GF(24)上的乘法变换,对应于以下变换公式,其中数据以16进制表示。
Figure BDA0002745774800000092
密钥扩展逆变换:将加密后的密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵。
Figure BDA0002745774800000093
应用有限域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.
对于上述密钥矩阵,用上述四个环状串联的非线性反馈移位寄存器对每行进行运算后的矩阵为:
Figure BDA0002745774800000094
输出后的密钥用加密算法中的线性反馈移位寄存器对上述密钥中的每一列进行运算,运算后的矩阵为Key″:输出后的密钥Key′用线性反馈移位寄存器(LFSR)对上述密钥中的每一列进行运算,运算后的矩阵为:
Figure BDA0002745774800000101
需要注意的是运算时线性反馈移位寄存器移位方向与加密时相反,并且其中反馈函数为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的矩阵获得;
Figure QLYQS_1
其次,利用一个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表示反馈函数中的变量。
4.根据权利要求1-3任一项所述的方法,其特征在于,列混淆变换操作是通过重复利用密钥扩展运算中的线性反馈移位寄存器迭代运算4次,得到的列混淆变换操作的矩阵表达式如下:
Figure QLYQS_2
其中,矩阵M中的元素为GF(24)中的元素,采用16进制表示,m为线性反馈移位寄存器的反馈函数等价的矩阵表达式。
5.一种部件可重复的NLCS分组密码实现装置,其特征在于,包括:
加载单元:将64-bit明文/密文及初始密钥加载至寄存器,进行加/解密运算;
轮密钥加初始变换单元:将待加/解密数据与初始密钥进行轮密钥加变换;
轮函数调用单元:将轮密钥加初始变换单元得到的数据进行17轮轮函数运算操作;
轮函数依次为常数加变换、S盒替换、行移位变换、列混淆变换以及轮密钥加操作,或者依次为列混淆逆变换、行移位逆变换、S盒替换逆变换、常数加逆变换以及轮密钥加操作;
轮密钥扩展单元:每一轮的轮密钥均由有限域上串联的线性反馈移位寄存器和非线性反馈移位寄存器对前一轮的轮密钥进行密钥扩展运算获得,第一轮的轮密钥扩展对象为初始密钥;
所述轮密钥扩展单元的操作过程如下:
首先,获得前一轮的轮密钥,并排列成4×4的矩阵K;
第一轮的轮密钥扩展中的矩阵K是将密钥表示成16个4-bit一位的有限域GF(24)上的元素,并排列成如下4×4的矩阵获得;
Figure QLYQS_3
其次,利用一个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分组密码实现方法。
CN202011165932.3A 2020-10-27 2020-10-27 一种部件可重复的nlcs分组密码实现方法、装置及介质 Active CN112134691B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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实现方法、装置及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
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