CN111314054A - 一种新型高安全的轻量级eceg分组密码实现方法、系统及存储介质 - Google Patents
一种新型高安全的轻量级eceg分组密码实现方法、系统及存储介质 Download PDFInfo
- Publication number
- CN111314054A CN111314054A CN202010068713.7A CN202010068713A CN111314054A CN 111314054 A CN111314054 A CN 111314054A CN 202010068713 A CN202010068713 A CN 202010068713A CN 111314054 A CN111314054 A CN 111314054A
- Authority
- CN
- China
- Prior art keywords
- round
- key
- transformation
- data
- matrix
- 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.)
- Granted
Links
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
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种新型高安全的轻量级ECEG分组密码实现方法、系统及存储介质,基于椭圆曲线离散对数的NP难问题进行的密钥扩展,这种扩展使得密码攻击者即使得到中间轮的密钥,也很难推断出原始密钥是什么,进一步提高了密码的安全性,属于首次将ECDLP应用到分组密码加解密领域中;此外,本发明的技术方案中还提出了一种扩展的广义Feistel结构,与常规的Feistel结构不同,通过迭代4次后生成一个MDS矩阵,MDS矩阵是整个密码算法中主要起扩散作用,利用该矩阵进行列混淆运算。MDS矩阵构成的扩散层可以最优的抵抗差分攻击和线性攻击,应用到本发明中技术方案中可以进一步提高技术方案中算法的安全性。
Description
技术领域
本发明属于计算机领域,特别涉及一种新型高安全的轻量级ECEG分组密码实现方法、系统及存储介质。
背景技术
物联网技术的飞速发展,使得每天都有海量信息在网络上传播,信息安全问题已经成为家喻户晓的需要注意的问题,这种环境迫使相应的信息安全技术快速发展,以适应现有的各种网络信息的传播。密码学作为信息安全技术的基础,和其相关的技术也在随着现代社会的发展不断进步。
分组密码算法因其速度快、易于标准化和便于软硬件实现等特点,通常被广泛的应用于网络安全中实现数据加密、消息鉴别、消息认证及密钥管理的算法之中。而随着智能卡、传感器等资源受限设备在人们生活中逐渐普及,传统的分组密码已经不再适用于这些存储面积较小的资源受限的设备之中,因此,设计和分析适用于这些资源受限设备上的轻量级分组密码算法,是现代社会所需要解决的热点问题。
近几年已经有一些很好的轻量级分组密码算法被提出,如PRESENT,LBlock,PRINCE,Piccolo,LED,QTL,SFN等。这些轻量级分组密码均可以在保证一定安全性的前提下适用于资源受限的设备之中。但是,轻量级分组密码算法为了可以在存储面积较小的资源受限设备上应用,在一定程度上降低了整个密码算法的安全性和加解密的效率,以达到轻量的目的,这便使其存在一定的安全隐患问题。
发明内容
本发明提供了一种新型高安全的轻量级ECEG分组密码实现方法、系统及存储介质,其目的在于,克服现有技术轻量级分组密码算法存在的如下问题:加解密过程中只使用一个种子密钥进行轮密钥加运算,容易受到攻击;算法中缺少密钥扩展算法,安全性不高;算法解密过程复杂,实现时需要为算法解密额外消耗资源较多;算法占用资源仍较多。
本发明的技术方案如下:
一方面,一种新型高安全的轻量级ECEG分组密码实现方法,包括:
数据加载:将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运算;
轮运算操作:将所述待加/解密数据按以下步骤进行32轮迭代轮运算操作;
若输入的待加密数据进行加密运算操作,先将输入的待加密数据进行一次轮密钥加变换,获得32轮迭代轮运算的输入数据,在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待加密数据进行常数加变换、S盒变换、行移位变换及EFG列混合变换,以EFG列混合变换后得到的数据作为下一轮的待加密数据,完成32轮迭代运算操作后,再进行一次轮密钥加变换,得到密文数据;
若输入的待解密数据进行解密运算操作,先将输入的待解密数据进行一次轮密钥加变换,获得32轮迭代轮运算的输入数据,然后在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待解密数据进行EFG列混合逆变换、行移位逆变换、S盒逆变换及常数加逆变换,以常数加逆变换后得到的数据作为下一轮的待解密数据,完成32轮迭代运算操作后,再进行一次轮密钥加变换,得到明文数据;
其中,在第1轮轮运算开始前和最后1轮轮运算结束后的轮密钥加变换中所使用的密钥为原始密钥,在第4*t轮轮运算操作后,利用ECDLP对原始密钥进行扩展得到的密钥进行一次轮密钥加变换,将得到的数据作为后续操作的输入数据,t={1,2,…,7};
所述EFG列混合逆变换和EFG列混合变换、行移位逆变换和行移位变换、S盒逆变换和S盒变换以及常数加逆变换和常数加变换均互为逆运算。
ECDLP(Elliptic Curve Discrete Logarithm Problem)为椭圆曲线群上的离散对数问题的缩写;
ECEG是指椭圆曲线和扩展的广义Feistel结构,EC是指ECDLP,EG是指extendedgenerally Feistel structure。
进一步地,所述利用ECDLP对轮密钥进行扩展具体是指:
将长度为64位的原始密钥K按照从高位到低位进行划分,每取4位作为矩阵的一个元素,排列好一个行后,再排列下一个行,获得4×4的原始密钥矩阵;
给定密钥扩展所用椭圆曲线的基本参数组(p,E(Fp),G,n),其中p为一个素数,E(Fp)为有限域Fp上的椭圆曲线y2=x3+ax+b,其中a和b为有限域Fp上的元素且4a3+27b2≠0,G为所述椭圆曲线中的给定点,利用G的坐标值在ECDLP中的加法运算规则下,生成交换群,且交换群的阶数为n;
G=(x’,y’)是椭圆曲线中给定的点,且由点G在加法运算下生成的群{O,G,2G,3G,…,(n-1)G}是一个交换群,阶数为n,O为椭圆曲线中的无穷远点,且存在3G=G+2G=2G+G。交换群中的加法运算按照如下方法确定:
A和B均为交换群中的点,设A=(x1,y1),B=(x2,y2),A≠-B,则A+B=(x3,y3),x3和y3的取值按照以下方式计算得到:
x3≡c2-x1-x2(mod p)
y3=c(x1-x3)-y1(mod p)
当计算2A或者4A的坐标值时,采用重复上述加法运算获得坐标值;即2A=A+A,4A=A+A+A+A。
随机选择正整数d∈[1,n-1],并通过上述加法运算方法计算出点P=dG的值;
将原始密钥矩阵中前两行的8个元素k1,k2,…,k8,分别作为椭圆曲线E(Fp)中x坐标轴上对应的点,根据椭圆曲线方程求出相应的y坐标轴中对应的值,获得点Mi=(xi,yi)=(ki,yi),i=1,…,8;
因为椭圆曲线中y的取值是一个平方根,所以可能会出现两个解的情况,取两个解中较小的一个作为y坐标轴的值;
随机选择Si∈[1,n-1],根据交换群中的加法运算规则计算得出Ci=Mi+SiP=(x′i,y′i),i=1,…,8,将x′i和y′i依次作为扩展密钥中前面相邻的两个数,获得16个数字,并将所述16个数字作为扩展后的密钥(x′1,y′1,x′2,y′2,...,x′8,y′8)。
扩展密钥是首先从原始密钥矩阵中获取8个元素,每个元素包含4个字节,利用这8个元素作为椭圆曲线的X轴坐标值,获取对应的Y坐标值,利用椭圆曲线上的八个点和ki构建新的x和y,将新的x和y扩展密钥,将8个元素扩展为16个元素,从而获得新的轮密钥;
进一步地,所述EFG列混合变换操作使用的矩阵采用扩展的广义Feistel结构迭代4次获得;
所述扩展的广义Feistel结构对应的矩阵如下:
经过迭代4次后得到EFG列混合变换操作使用的矩阵为:
上述矩阵中的数据为16进制数据。
在密码运算时,只需给出扩展的广义Feistel结构这一较轻量的部件即可进行列混淆运算,以达到进一步节约硬件资源的目的。
一方面,一种新型高安全的轻量级ECEG分组密码实现装置,包括:
数据加载单元:通过将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运算;
轮运算操作单元:将数据加载单元加载到寄存器的待加/解密数据进行32轮迭代轮运算操作;
先将输入的待加/解密数据输入轮密钥加变换模块,获得32轮迭代轮运算的输入数据,再输入轮运算模块,完成32轮迭代轮运算操作后,再输入轮密钥加变换模块,得到密文/明文数据;
其中,在第1轮轮运算开始前和最后1轮轮运算结束后的轮密钥加变换中所使用的密钥为原始密钥,在第4*t轮轮运算操作后,再利用ECDLP对原始密钥进行扩展得到的密钥,用于进行一次轮密钥加变换模块操作,并将轮密钥加变换模块操作得到的数据作为后续操作的输入数据,t={1,2,…,7};
若进行加密操作,轮运算依次包括常数加变换模块、S盒变换模块、行移位变换模块及EFG列混合变换模块,若进行解密操作,轮运算依次包括EFG列混合逆变换模块、行移位逆变换模块、S盒逆变换模块及常数加逆变换模块;
所述EFG列混合逆变换模块和EFG列混合变换模块、行移位逆变换模块和行移位变换模块、S盒逆变换模块和S盒变换模块以及常数加逆变换模块和常数加变换模块均互为逆运算模块。
进一步地,所述利用ECDLP对轮密钥进行扩展具体是指:
将长度为64位的原始密钥K按照从高位到低位进行划分,每取4位作为矩阵的一个元素,排列好一个行后,再排列下一个行,获得4×4的原始密钥矩阵;
给定密钥扩展所用椭圆曲线的基本参数组(p,E(Fp),G,n),其中p为一个素数,E(Fp)为有限域Fp上的椭圆曲线y2=x3+ax+b,其中a和b为有限域Fp上的元素且4a3+27b2≠0,G为所述椭圆曲线中的给定点,利用G的坐标值在ECDLP中的加法运算规则下,生成交换群,且交换群的阶数为n;
随机选择正整数d∈[1,n-1],并通过上述加法运算方法计算出点P=dG的值;
将原始密钥矩阵中前两行的8个元素k1,k2,…,k8,分别作为椭圆曲线E(Fp)中x坐标轴上对应的点,根据椭圆曲线方程求出相应的y坐标轴中对应的值,获得点Mi=(xi,yi)=(ki,yi),i=1,…,8;
随机选择Si∈[1,n-1],根据交换群中的加法运算规则计算得出Ci=Mi+SiP=(x′i,y′i),i=1,…,8,将x′i和y′i依次作为扩展密钥中前面相邻的两个数,获得16个数字,并将所述16个数字作为扩展后的密钥(x′1,y′1,x′2,y′2,...,x′8,y′8)。
进一步地,所述EFG列混合变换模块操作使用的矩阵采用扩展的广义Feistel结构迭代4次获得;
所述扩展的广义Feistel结构对应的矩阵如下:
经过迭代4次后得到EFG列混合变换操作使用的矩阵为:
上述矩阵中的数据为16进制数据。
另一方面,一种计算机存储介质,包括计算机程序指令,所述计算机程序指令被处理终端执行时使所述处理终端执行上述一种新型高安全的轻量级ECEG分组密码实现方法。
有益效果
本发明提供了一种新型高安全的轻量级ECEG分组密码实现方法、系统及存储介质,本发明的技术方案提出了一种新的密钥扩展算法,这种算法是基于椭圆曲线离散对数的NP难问题进行的密钥扩展,这种扩展使得密码攻击者即使得到中间轮的密钥,也很难推断出原始密钥是什么,进一步提高了密码的安全性,属于首次将ECDLP应用到分组密码加解密领域中;此外,本发明的技术方案中还提出了一种扩展的广义Feistel结构,与常规的Feistel结构不同,通过迭代4次后生成一个MDS矩阵,MDS矩阵是整个密码算法中主要起扩散作用,利用该矩阵进行列混淆运算。MDS矩阵构成的扩散层可以最优的抵抗差分攻击和线性攻击,应用到本发明中技术方案中可以进一步提高技术方案中算法的安全性。
附图说明
图1为本发明实例所述的ECEG轻量级分组密码实现方法中的加密流程图;
图2为本发明实例所述方法中LED方法的流程图;
图3为本发明实例所述方法的ECEG轻量级分组密码实现方法中解密流程图;
图4为本发明实例所述方法的扩散层中扩展的广义Feistel结构图;
图5为本发明所述实例所述方法中的列混合逆变换所采用的扩展的广义Feistel结构图。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明。
本发明实例所述的一种新型高安全的轻量级ECEG分组密码实现方法,ECEG算法分组长度为64位,密钥长度为64为,包含32轮运算。ECEG算法是一种SP网络结构,具体加密流程如图1所示,加密运算包含密钥扩展算法(KeyExpansion),轮密钥加变换(AddRounKey),常数加变换(AddConstants),S盒替换变换(SubCell),行移位变换(ShiftRow),列混合变换(MixColumnsSerial)六个模块,在开始进行一次轮密钥加变换后,每进行4轮常数加变换,S盒替换变换,行移位变换,列混合变换后进行一次轮密钥加运算,这种加密模式流程图如图2所示和LED算法相同。解密运算流程如图3所示,算法解密轮运算包含列混合逆变换(InvMixColumns),行移位逆变换(InvShiftRows),S盒替换逆变换(InvSubCells),常数加逆变换(InvAddConstants),轮密钥加变换(AddRounkey),密钥扩展算法(KeyExpansion)六个模块。
ECEG轻量级分组密码算法的加密算法描述如下算法1。
算法1:ECEG加密
输入:Plaintext,Key;
输出:Ciphertext;
1.State←Plaintext;
2.KeyExpansion(Key);密钥扩展
3.AddRoundKey(State,Key);轮密钥加
4.for i=1to 8do
5.for j=1to 4do
6.AddConstants(State);
7.SubCells(State);
8.ShiftRows(State);
9.MixColumns(State);
10.end for
11.AddRoundKey(State,Keyi);轮密钥加
12.end for
13.Ciphertext←State;
其中:Key为原始密钥,Keyi为轮密钥;若i为最后一轮,Keyi为原始密钥,若i为其他轮,Keyi为扩展后的密钥。
密钥扩展运算:64-bit种子密钥Key=k0,k1,……,k15,写成4×4的矩阵为:
给定密钥扩展所用椭圆曲线的基本参数组(p,E(Fp),G,n),其中p为一个素数,E(Fp)为有限域Fp上的椭圆曲线,G为上述椭圆曲线中的点,其加法构成一个交换群,n为此群的阶数。
根据椭圆曲线密钥对生成方案,令密钥对中的私钥选定为加密常数d∈[1,n-1],计算出相应的公钥P=dG。
将种子密钥矩阵中的k0,k1,……,k8,分别作为椭圆曲线E(Fp)中x坐标对应的点,求出相应的y坐标中对应的值,组成椭圆曲线中的点Mi=(xi,yi),i=1,…,8。因为椭圆曲线中y是一个平方根,所以可能会出现两个解的情况,这时我们取两个解中较小的一个作为y坐标中对应的值。
随机选择Si∈[1,n-1],计算得出Ci=Mi+SiP=(x′i,y′i),i=1,…,8,将x′i和y′i依次作为扩展密钥中前面相邻的两个数,获得16个数字,并将所述16个数字作为扩展后的密钥(x′1,y′1,x′2,y′2,...,x′8,y′8)。
轮密钥加运算:将64-bit明文或每4轮中间值与第i(1≤i≤8)个轮密钥64-bit进行异或运算,64-bit明文或每4轮中间值State(state0,…,state15)、第i轮轮密钥的运算关系为其中,若i为第一轮和最后一轮,Keyi为原始密钥若i为其他轮,Keyi为扩展后的密钥,。
S盒替换变换:沿用了LED算法的S盒,中间状态矩阵的16个4-bit,对每个4-bit进行S盒变换,其变换关系表1所示
表1 ECEG的S盒
行移位变换:对于16个单元组成的4×4的矩阵,矩阵的每一行向左循环不同的单元移位,第0行循环保持不变,第1行循环左移1个单元,第2行左移2个单元,第3行循环左移3个单元。
列混合变换:采用如图4所示的扩展的广义Feistel结构迭代4次而成,具体的矩阵如下m所示,其中矩阵幂次运算在有限域GF(24)上进行,矩阵中数据均以16进制表示。
列混合变换运算是列混合变换矩阵M与State中16个单元组成的4×4矩阵在有限域GF(24)上的乘法变换,对应于变换公式(1),其中数据以16进制表示。
ECED解密算法描述如下算法2。
输入:Ciphertext,Key;
输出:Plaintext;
14.State←Ciphertext;
15.KeyExpansion(Key);
16.AddRoundKey(State,Key);
17.for i=1to 8do
18.for j=1to 4do
19.InvMixColumns(State);
20.InvShiftRows(State);
21.InvSubCells(State);
22.InvAddConstants(State);
23.end for
24.AddRoundKey(State,Keyi);
25.end for
26.Ciphertext←State;
其中:Key为原始密钥,Keyi为轮密钥;若i为第一轮和最后一轮,Keyi为原始密钥,若i为其他轮,Keyi为扩展后的密钥。
ECEG解密使用了加密变换中的四种逆变换与轮密钥加变换,密钥扩展变换,其中轮密钥加,常数加运算和密钥扩展运算逆变换为其自身;以加密运算相反的顺序对密文进行解密,解密过程使用的密钥与加密过程相同。
S盒替换逆变换:沿用了LED算法的S盒的逆变换,中间状态矩阵的16个4-bit,对每个4-bit进行S盒变换,其变换关系表2所示
表2 ECEG的S盒逆变换
行移位逆变换:对于16个单元组成的4×4的矩阵,矩阵的每一行向右循环不同的单元移位,第0行循环保持不变,第1行循环右移1个单元,第2行右移2个单元,第3行循环右移3个单元。
列混合逆变换:采用如图5所示的扩展的广义Feistel结构迭代4次而成,具体的矩阵如下m’所示,其中矩阵幂次运算在有限域GF(24)上进行,矩阵中数据均以16进制表示。
列混合变换运算是列混合变换矩阵M与State中16个单元组成的4×4矩阵在有限域GF(24)上的乘法变换,对应于变换公式(2),其中数据以16进制表示。
ECEG-64算法测试数据如表3所示:
表3 ECEG算法测试数据
Plaintext | key | CiPhertext |
0000-0000-0000-0000 | 0000-0000-0000-0000 | 2F0C-573A-8EA9-4AC7 |
0000-0000-0000-0000 | FFFF-FFFF-FFFF-FFFF | 0175-3DA2-4D9E-9D2F |
FFFF-FFFF-FFFF-FFFF | 0000-0000-0000-0000 | FE8A-C25D-B261-62D0 |
FFFF-FFFF-FFFF-FFFF | FFFF-FFFF-FFFF-FFFF | D0F3-A8C5-7156-B538 |
2222-2222-2222-2222 | CCCC-CCCC-CCCC-CCCC | B236-A1A2-AEC5-E42B |
本发明实例所述的ECEG密码算法在ASIC进行硬件实现,同时在Synopsys DesignCompiler Version B-2008.09进行综合,其中综合工艺库为SMIC 0.18um,在综合实验中,面积资源单位为1076GE。ECEG-64算法所占用的资源面积是GE。各轻量级分组密码算法实现面积比较如表4所示。
表4各轻量级分组密码算法实现面积比较
基于上述方法,本发明实施例还提供一种新型高安全的轻量级ECEG分组密码实现装置,包括:
数据加载单元:通过将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运算;
轮运算操作单元:将数据加载单元加载到寄存器的待加/解密数据进行32轮迭代轮运算操作;
先将输入的待加/解密数据输入轮密钥加变换模块,获得32轮迭代轮运算的输入数据,再输入轮运算模块,完成32轮迭代轮运算操作后,再输入轮密钥加变换模块,得到密文/明文数据;
其中,在第1轮轮运算开始前和最后1轮轮运算结束后的轮密钥加变换中所使用的密钥为原始密钥,在第4*t轮轮运算操作后,再利用ECDLP对原始密钥进行扩展得到的密钥,用于进行一次轮密钥加变换模块操作,并将轮密钥加变换模块操作得到的数据作为后续操作的输入数据,t={1,2,…,7};
若进行加密操作,轮运算依次包括常数加变换模块、S盒变换模块、行移位变换模块及EFG列混合变换模块,若进行解密操作,轮运算依次包括EFG列混合逆变换模块、行移位逆变换模块、S盒逆变换模块及常数加逆变换模块;
所述EFG列混合逆变换模块和EFG列混合变换模块、行移位逆变换模块和行移位变换模块、S盒逆变换模块和S盒变换模块以及常数加逆变换模块和常数加变换模块均互为逆运算模块。
应当理解,本发明各个实施例中的功能单元模块可以集中在一个处理单元中,也可以是各个单元模块单独物理存在,也可以是两个或两个以上的单元模块集成在一个单元模块中,可以采用硬件或软件的形式来实现。
本发明实施例还提供一种可读存储介质,包括计算机程序指令,所述计算机程序指令被处理终端执行时使所述处理终端执行所述供一种新型高安全的轻量级ECEG分组密码实现方法,其有益效果参见方法部分的有益效果,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (7)
1.一种新型高安全的轻量级ECEG分组密码实现方法,其特征在于,包括:
数据加载:将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运算;
轮运算操作:将所述待加/解密数据按以下步骤进行32轮迭代轮运算操作;
若输入的待加密数据进行加密运算操作,先将输入的待加密数据进行一次轮密钥加变换,获得32轮迭代轮运算的输入数据,在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待加密数据进行常数加变换、S盒变换、行移位变换及EFG列混合变换,以EFG列混合变换后得到的数据作为下一轮的待加密数据,完成32轮迭代运算操作后,再进行一次轮密钥加变换,得到密文数据;
若输入的待解密数据进行解密运算操作,先将输入的待解密数据进行一次轮密钥加变换,获得32轮迭代轮运算的输入数据,然后在第1轮至第32轮迭代轮运算中的每一轮轮运算中依次对每一轮输入的待解密数据进行EFG列混合逆变换、行移位逆变换、S盒逆变换及常数加逆变换,以常数加逆变换后得到的数据作为下一轮的待解密数据,完成32轮迭代运算操作后,再进行一次轮密钥加变换,得到明文数据;
其中,在第1轮轮运算开始前和最后1轮轮运算结束后的轮密钥加变换中所使用的密钥为原始密钥,在第4*t轮轮运算操作后,利用ECDLP对原始密钥进行扩展得到的密钥进行一次轮密钥加变换,将得到的数据作为后续操作的输入数据,t={1,2,…,7};
所述EFG列混合逆变换和EFG列混合变换、行移位逆变换和行移位变换、S盒逆变换和S盒变换以及常数加逆变换和常数加变换均互为逆运算。
2.根据权利要求1所述的方法,其特征在于,所述利用ECDLP对轮密钥进行扩展具体是指:
将长度为64位的原始密钥K按照从高位到低位进行划分,每取4位作为矩阵的一个元素,排列好一个行后,再排列下一个行,获得4×4的原始密钥矩阵;
给定密钥扩展所用椭圆曲线的基本参数组(p,E(Fp),G,n),其中p为一个素数,E(Fp)为有限域Fp上的椭圆曲线y2=x3+ax+b,其中a和b为有限域Fp上的元素且4a3+27b2≠0,G为所述椭圆曲线中的给定点,利用G的坐标值在ECDLP中的加法运算规则下,生成交换群,且交换群的阶数为n;
随机选择正整数d∈[1,n-1],并通过上述加法运算方法计算出点P=dG的值;
将原始密钥矩阵中前两行的8个元素k1,k2,…,k8,分别作为椭圆曲线E(Fp)中x坐标轴上对应的点,根据椭圆曲线方程求出相应的y坐标轴中对应的值,获得点Mi=(xi,yi)=(ki,yi),i=1,…,8;
随机选择Si∈[1,n-1],根据交换群中的加法运算规则计算得出Ci=Mi+SiP=(x′i,y′i),i=1,…,8,将x′i和y′i依次作为扩展密钥中前面相邻的两个数,获得16个数字,并将所述16个数字作为扩展后的密钥(x′1,y′1,x′2,y′2,...,x′8,y′8)。
4.一种新型高安全的轻量级ECEG分组密码实现装置,其特征在于,包括:
数据加载单元:通过将64位明文/64位密文加载至寄存器,作为待加/解密数据,进行加/解密运算;
轮运算操作单元:将数据加载单元加载到寄存器的待加/解密数据进行32轮迭代轮运算操作;
先将输入的待加/解密数据输入轮密钥加变换模块,获得32轮迭代轮运算的输入数据,再输入轮运算模块,完成32轮迭代轮运算操作后,再输入轮密钥加变换模块,得到密文/明文数据;
其中,在第1轮轮运算开始前和最后1轮轮运算结束后的轮密钥加变换中所使用的密钥为原始密钥,在第4*t轮轮运算操作后,再利用ECDLP对原始密钥进行扩展得到的密钥,用于进行一次轮密钥加变换模块操作,并将轮密钥加变换模块操作得到的数据作为后续操作的输入数据,t={1,2,…,7};
若进行加密操作,轮运算依次包括常数加变换模块、S盒变换模块、行移位变换模块及EFG列混合变换模块,若进行解密操作,轮运算依次包括EFG列混合逆变换模块、行移位逆变换模块、S盒逆变换模块及常数加逆变换模块;
所述EFG列混合逆变换模块和EFG列混合变换模块、行移位逆变换模块和行移位变换模块、S盒逆变换模块和S盒变换模块以及常数加逆变换模块和常数加变换模块均互为逆运算模块。
5.根据权利要求4所述的装置,其特征在于,所述利用ECDLP对轮密钥进行扩展具体是指:
将长度为64位的原始密钥K按照从高位到低位进行划分,每取4位作为矩阵的一个元素,排列好一个行后,再排列下一个行,获得4×4的原始密钥矩阵;
给定密钥扩展所用椭圆曲线的基本参数组(p,E(Fp),G,n),其中p为一个素数,E(Fp)为有限域Fp上的椭圆曲线y2=x3+ax+b,其中a和b为有限域Fp上的元素且4a3+27b2≠0,G为所述椭圆曲线中的给定点,利用G的坐标值在ECDLP中的加法运算规则下,生成交换群,且交换群的阶数为n;
随机选择正整数d∈[1,n-1],并通过上述加法运算方法计算出点P=dG的值;
将原始密钥矩阵中前两行的8个元素k1,k2,…,k8,分别作为椭圆曲线E(Fp)中x坐标轴上对应的点,根据椭圆曲线方程求出相应的y坐标轴中对应的值,获得点Mi=(xi,yi)=(ki,yi),i=1,…,8;
随机选择Si∈[1,n-1],根据交换群中的加法运算规则计算得出Ci=Mi+SiP=(x′i,y′i),i=1,…,8,将x′i和y′i依次作为扩展密钥中前面相邻的两个数,获得16个数字,并将所述16个数字作为扩展后的密钥(x′1,y′1,x′2,y′2,...,x′8,y′8)。
7.一种计算机存储介质,包括计算机程序指令,其特征在于,所述计算机程序指令被处理终端执行时使所述处理终端执行权利要求1至3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010068713.7A CN111314054B (zh) | 2020-01-21 | 2020-01-21 | 一种轻量级eceg分组密码实现方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010068713.7A CN111314054B (zh) | 2020-01-21 | 2020-01-21 | 一种轻量级eceg分组密码实现方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314054A true CN111314054A (zh) | 2020-06-19 |
CN111314054B CN111314054B (zh) | 2020-12-15 |
Family
ID=71148934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010068713.7A Active CN111314054B (zh) | 2020-01-21 | 2020-01-21 | 一种轻量级eceg分组密码实现方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314054B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113078997A (zh) * | 2021-03-24 | 2021-07-06 | 华北电力大学 | 一种基于轻量级密码算法的终端保护方法 |
CN113379351A (zh) * | 2021-06-22 | 2021-09-10 | 沙师弟(重庆)网络科技有限公司 | 一种基于区块链的运输订单信息存储方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105025474A (zh) * | 2015-06-26 | 2015-11-04 | 安徽大学 | 一种面向无线传感网的轻量级数字签名方法 |
CN106921638A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 一种基于非对称加密的安全装置 |
US20170250796A1 (en) * | 2016-02-18 | 2017-08-31 | Gideon Samid | Trans Vernam Cryptography: Round One |
US20180097620A1 (en) * | 2016-09-30 | 2018-04-05 | International Business Machines Corporation | Keyword to set minimum key strength |
CN108429613A (zh) * | 2018-03-09 | 2018-08-21 | 国网陕西省电力公司电力科学研究院 | 一种基于en-present算法的电网信息加密方法 |
EP3367611A1 (en) * | 2017-02-28 | 2018-08-29 | Certicom Corp. | Generating elliptic curve cryptographic system parameters |
EP3376705A1 (en) * | 2017-03-17 | 2018-09-19 | Koninklijke Philips N.V. | Elliptic curve point multiplication device and method in a white-box context |
CN109768854A (zh) * | 2019-03-29 | 2019-05-17 | 衡阳师范学院 | 一种轻量级分组密码算法Wheel的实现方法 |
-
2020
- 2020-01-21 CN CN202010068713.7A patent/CN111314054B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105025474A (zh) * | 2015-06-26 | 2015-11-04 | 安徽大学 | 一种面向无线传感网的轻量级数字签名方法 |
CN106921638A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 一种基于非对称加密的安全装置 |
US20170250796A1 (en) * | 2016-02-18 | 2017-08-31 | Gideon Samid | Trans Vernam Cryptography: Round One |
US20180097620A1 (en) * | 2016-09-30 | 2018-04-05 | International Business Machines Corporation | Keyword to set minimum key strength |
EP3367611A1 (en) * | 2017-02-28 | 2018-08-29 | Certicom Corp. | Generating elliptic curve cryptographic system parameters |
EP3376705A1 (en) * | 2017-03-17 | 2018-09-19 | Koninklijke Philips N.V. | Elliptic curve point multiplication device and method in a white-box context |
CN108429613A (zh) * | 2018-03-09 | 2018-08-21 | 国网陕西省电力公司电力科学研究院 | 一种基于en-present算法的电网信息加密方法 |
CN109768854A (zh) * | 2019-03-29 | 2019-05-17 | 衡阳师范学院 | 一种轻量级分组密码算法Wheel的实现方法 |
Non-Patent Citations (4)
Title |
---|
MUHANNAD REZA ZABA等: "《I-PRESENTTM:An Involutive Lightweight Block Cipher》", 《JOURNAL OF INFORMATION SECURITY》 * |
NISSA MEHIBEL、M"HAMED HAMADOUCHE: "《A new approach of elliptic curve Diffie-Hellman key exchange》", 《2017 5TH INTERNATIONAL CONFERENCE ON ELECTRICAL ENGINEERING - BOUMERDE》 * |
夏文涛、潘森彬、王良民: "《一种面向RFID的超轻量级流密码算法》", 《计算机工程》 * |
李浪、刘波涛: "《Surge:一种新型、低资源、高效的轻量级分组密码算法》", 《计算机科学》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113078997A (zh) * | 2021-03-24 | 2021-07-06 | 华北电力大学 | 一种基于轻量级密码算法的终端保护方法 |
CN113379351A (zh) * | 2021-06-22 | 2021-09-10 | 沙师弟(重庆)网络科技有限公司 | 一种基于区块链的运输订单信息存储方法 |
CN113379351B (zh) * | 2021-06-22 | 2022-10-21 | 沙师弟(重庆)网络科技有限公司 | 一种基于区块链的运输订单信息存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111314054B (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Trichina et al. | Simplified adaptive multiplicative masking for AES | |
USRE44594E1 (en) | Method and circuit for data encryption/decryption | |
US7899190B2 (en) | Security countermeasures for power analysis attacks | |
Daemen et al. | A new MAC construction ALRED and a specific instance ALPHA-MAC | |
CN107707343B (zh) | 加解密一致的sp网络结构轻量级分组密码实现方法 | |
CN1139221C (zh) | 数据的加密方法及设备 | |
US7853796B2 (en) | Method, system and computer program for polynomial based hashing and message authentication coding with separate generation of spectrums | |
WO2006121149A1 (ja) | 擬似乱数発生システム、暗号化システム及び復号化システム | |
CN110071794B (zh) | 一种基于aes算法的信息加密方法、系统及相关组件 | |
CN105959107B (zh) | 一种新型高安全的轻量级sfn分组密码实现方法 | |
CN112202547B (zh) | 一种轻量级分组密码gfcs实现方法、装置及可读存储介质 | |
Fiskiran | Workload characterization of elliptic curve cryptography and other network security algorithms for constrained environments | |
US20030152218A1 (en) | Cryptography method on elliptic curves | |
CN111314054B (zh) | 一种轻量级eceg分组密码实现方法、系统及存储介质 | |
KR20050078271A (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
Li et al. | Keyed hash function based on a dynamic lookup table of functions | |
CN111478766B (zh) | 一种分组密码meg实现方法、装置及存储介质 | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
Burnwick et al. | The MARS encryption algorithm | |
CN114826560B (zh) | 一种轻量级分组密码cref实现方法及系统 | |
CN105577362B (zh) | 一种应用于aes算法的字节替换方法及系统 | |
Bao et al. | Quantum multi-collision distinguishers | |
Nabeel et al. | IoT light weight (LWT) crypto functions | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
CN112134691B (zh) | 一种部件可重复的nlcs分组密码实现方法、装置及介质 |
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 |