CN113691364B - 一种基于位片技术的动态s盒分组密码的加密及解密方法 - Google Patents
一种基于位片技术的动态s盒分组密码的加密及解密方法 Download PDFInfo
- Publication number
- CN113691364B CN113691364B CN202111014428.8A CN202111014428A CN113691364B CN 113691364 B CN113691364 B CN 113691364B CN 202111014428 A CN202111014428 A CN 202111014428A CN 113691364 B CN113691364 B CN 113691364B
- Authority
- CN
- China
- Prior art keywords
- key
- row
- round
- box
- bit
- 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 59
- 238000005516 engineering process Methods 0.000 title claims abstract description 33
- 230000009466 transformation Effects 0.000 claims abstract description 104
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000006243 chemical reaction Methods 0.000 claims abstract description 10
- 239000011159 matrix material Substances 0.000 claims description 72
- 238000006467 substitution reaction Methods 0.000 claims description 15
- 230000001351 cycling effect Effects 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 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
- 241001441724 Tetraodontidae Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000003359 percent control normalization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于位片技术的动态S盒分组密码的加密及解密方法,用于对明文数据的加密处理,包括如下步骤:获取待加密数据与初始密钥,从第一轮至倒数第二轮运算中,每一轮运算包括广义Feistel结构变换和密钥扩展运算,最后一轮包括广义Feistel结构变换。广义Feistel结构变换包括对分组的数据进行第一异或变换、加密S盒替换、F函数(F1函数和F2函数)、第二异或变换、交叉变换。密钥扩展包括依次对密钥进行密钥S盒替换、一轮广义Feistel变换、轮计数器异或,多轮迭代后,生成多个子密钥。本发明将广义Feistel结构变换与密钥扩展过程采用的S盒在引入位片技术的基础上与对应子密钥相关联,在确保S盒能在软件中快速实现的同时,S盒在整个加密流程中呈现动态的形式。此外,这种新型的动态S盒构造方法不仅提高了算法加密过程中S盒替换的实现效率,同时通过隐藏S盒的方式提高算法的安全性。
Description
技术领域
本发明属于信息安全加密技术领域,具体涉及一种基于位片技术的动态S盒分组密码算法实现的加密及解密方法。
背景技术
现阶段信息技术的不断发展以及各国标准化的进展,对称密码在工业和商用领域得到了广泛应用,已成为构建安全信息系统的核心基础。分组密码作为对称加密的一个重要分支,在信息安全方面具有极其重要的作用,一直是研究的热点。分组密码的设计也一直遵循香农提出的“混淆”与“扩散”原则。S盒作为分组密码算法中唯一的非线性操作,对S盒的构造显得非常重要。
自差分密码分析和线性密码分析被提出之后,密码算法都采用不同的方式来抵抗这两种攻击,它们的核心思想大致可以分为两类:第一类采用最大差分传播概率和最大线性相关性概率都尽可能小的固定(密钥无关)密码结构来实现分组密码算法。在这一原则的指导下,算法要谨慎地选择特殊的S盒操作以及与其密切相关的线性混合操作。而且作为现代密码算法中唯一的非线性操作,S盒不光要有尽可能小的差分传播概率,其输入输出最大的线性相关性也必须尽可能低;而与S盒相关的线性混合层要尽快地把S盒的非线性性传播到整个分组,以实现雪崩效应。这种算法的优点是抵抗差分密码分析和线性密码分析的能力可以得到证明,但是他们要执行较多的轮数来确保安全,而且固定的密码结构也为潜在的攻击提供了可能。
另一类算法采用与密钥相关的密码结构,来增强密码算法的安全强度。如密钥相关的动态S盒。由于无论是差分密码分析还是线性密码分析,都需要对S盒的性质进行具体的分析,因此该类算法可以通过隐藏S盒的特性来抵抗线性密码分析和差分密码分析。理论上,这类算法比第一类算法的安全强度高,执行较少的轮数就可以达到安全,所以此类算法应该得到十分广泛的应用。然而,此类算法受到的重视远远不如第一类算法,这主要是由于现有的该类算法,如Khufu和Blowfish,都存在着一些安全性和实用性的问题。
位片技术由Eli Biham于1997年提出,目标是提高DES的软件实现性能。在90年代末期,此方法也被用来加速DES的密钥穷搜攻击。位片技术的基本思想是:密码算法的软件实现模硬件实现的过程,软件实现的一个逻辑指令对应多个硬件逻辑门操作。
发明内容
本发明的目的是提供一种基于位片技术的动态S盒分组密码的加密及解密方法,利用位片技术与密钥相结合的思想去构造分组密码算法的构造S盒,使S盒在加密整个流程中呈现动态的形式。提高S盒替换的实现效率的同时通过隐藏S盒的方式提高算法的安全性。
本发明提供的一种基于位片技术的动态S盒分组密码算法,包括以下步骤:
一种基于位片技术的动态S盒分组密码的加密方法,包括以下步骤:
A1:设置64位的密钥Key,将初始密钥的高32位作为初始的子密钥rkey0;
A2:获取128位的明文Plaintext,并按位数进行分组以得到多个分支;
A3:将各个分支基于当前子密钥进行广义Fesitel结构变换的加密操作,其中广义Feistel结构变换包括对各个分支进行第一异或变换、加密S盒替换、F函数变换、第二异或变换和交叉变换;
A4:将64位的密钥Key进行轮密钥扩展操作,包括密钥S盒替换、一轮广义Fesitel变换和轮计数器异或操作;并取轮密钥扩展操作最后结果的高32位作为下一轮所需要的子密钥;
A5:返回A3以进行下一轮循环,整个加密算法过程经过16轮循环,前15轮中每一轮都进行广义Feistel结构变换的加密操作和密钥扩展运算,最后1轮只进行广义Feistel结构变换的加密操作;且最后1轮广义Feistel结构变换的加密操作中不进行交叉变换。
所述的一种基于位片技术的动态S盒分组密码的加密方法,所述的A2中,所述的按位数进行分组以得到多个分支包括以下步骤:
将128位的明文数据分成四个分支:C0=p127||p126…p97||p96,C1=p95||p94…p65||p64,C2=p63||p62…p33||p32,C3=p31||p30…p1||p0,||表示字符串连接符;
所述的一种基于位片技术的动态S盒分组密码的加密方法,所述的A3中,所述广义Feistel结构变换中的第一异或变换是将其中两个分支C1与C2进行异或变换得到C。
所述的一种基于位片技术的动态S盒分组密码的加密方法,所述的A3中,所述广义Feistel结构变换中加密S盒替换包括以下步骤:
B1:将32位的数据C绘制成4×8的矩阵:将数据C最低有效8位排列在矩阵的第0行,次低有效8位排列在第1行,次高有效8位排列在第2行,最高有效的8位排列在最后一行;
B2:将本轮对应的32位的子密钥rkeyi绘制成4×8的子密钥矩阵,使子密钥rkeyi最低有效8位排列在矩阵的第0行,次低有效8位的密钥排列在第1行,次高有效8位的密钥排列在第2行,最高有效8位的密钥排列在最后一行,其中0≤i≤15;
B3:将得到的两个4×8的矩阵根据S盒替换规则执行替换,替换后得到的新的4×8的矩阵作为本轮加密S盒替换的结果;
所述的一种基于位片技术的动态S盒分组密码的加密方法,所述的A3中,所述广义Feistel结构变换中的F函数变换包括F1函数变换和F2函数变换:
F1函数变换:
以S盒替换后得到W′矩阵的每一行为Row1′[i],其中i=0,1,2,3;将第0行Row1′[0]赋值给row1′[0];第1行Row1′[1]循环左移1位赋值给row1′[1];第2行Row1′[2]循环左移4位赋值给row1′[2];第3行Row1′[3]循环左移5移得row1′[3];其中row表示Row经过移位后的对应行;将移位赋值得到的32位的数据row1′[3]||row1′[2]||row1′[1]||row1′[0]与每轮对应的子密钥进行异或得到F1函数变换最终数据结果f1;
F2函数变换:
同样取S盒替换后得到的W′矩阵,将W′矩阵的第0行Row1′[0]赋值row2′[0];第1行Row1′[1]循环左移2位赋值给row2′[1];第2行Row1′[2]循环左移3位赋值给row2′[2];第3行Row1′[3]循环左移6移得row2′[3];将移位赋值得到的32位的数据row2′[3]||row2′[2]||row2′[1]||row2′[0]与每轮对应的子密钥进行异或得到F2函数变换最终数据结果f2;
所述的A3中,所述广义Feistel结构变换中的第二异或变换包括:
将f1与C0异或得到C0′;将f2与C3异或得到C3′。
所述的一种基于位片技术的动态S盒分组密码的加密方法,所述的A3中,所述所述广义Feistel结构变换中的交叉变换包括以下步骤:
设本轮为第i轮,其中1≤i≤14;将当前的C0′作为下一轮(i+1)轮的初始的C2,当前的C1作为下一轮(i+1)轮的C3,当前的C3′作为下一轮(i+1)的C1,当前的C2作为下一轮(i+1)轮的C0。
所述一种基于位片技术的动态S盒分组密码的加密方法,所述的A4中,密钥扩展中密钥S盒替换包括以下步骤:
C1:将该轮64位的密钥数据绘制成4×16的矩阵形式,使最低有效16位的密钥排列在第0行,次低有效16位的密钥排列在第1行,次高有效16位的密钥排列在第2行,最高有效16位的密钥排列在最后一行;
C2:将步骤C1中4×16矩阵的每行右边低8位提出,形成一个新4×8矩阵;将本轮32位的子密钥rkeyi绘成4×8的子密钥矩阵,使子密钥rkeyi最低有效8位排列在矩阵的第0行,次低有效8位的密钥排列在第1行,次高有效8位的密钥排列在第2行,最高有效8位的密钥排列在最后一行,其中0≤i≤15;然后根据S盒替换规则执行替换,并将S盒替换后将得到的新的4×8的矩阵替换C1中4×16的矩阵每行的右边低8位作为最终密钥S盒替换结果。
所述的一种基于位片技术的动态S盒分组密码的加密方法,所述的A4中,密钥扩展的一轮广义Feistel变换包括以下步骤:
将经S盒替换后的4×16矩阵的第i行设为Rowi,其中i=0,1,2,3,变换后的结果的第i行设为rowi,其中i=0,1,2,3;Row0循环左移7位再与Row1进行异或运算得到row0,将Row2的数据赋给row1,Row2循环左移13位再与Row3进行异或运算得到row2,将Row0的数据赋给row3。
所述的一种基于位片技术的动态S盒分组密码的加密方法,所述的A4中,密钥扩展中的轮计数器异或运算包括以下步骤:
将经过一轮广义Feistel变换后的矩阵数据的第3行的高4位k3,15||k3,14||k3,13||k3,12与轮计数器RC[i]进行异或,得到k′,其中0≤i≤14,即k′3,15||k′3,14||k′3,13||k′3,12=(k3,15||k3,14||k3,13||k3,12)⊕RC[i],其中轮计数器RC[i]=i+1,其中0≤i≤14。
最后将轮计数器异或运算后的4×16矩阵作为下一轮64位密钥,其中矩阵最后两行作为下一轮子32位子密钥。
根据所述的一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,
所述的加密S盒替换或密钥S盒替换,是采用逻辑运算或查表完成S盒替换,其中逻辑运算为:
按下表中的顺序执行逻辑运算以完成S盒替换:
1.T0=~R1 | 2.T1=R2⊕R3 | 3.S1=T1⊕(R0&T0) | 4.T2=R0⊕(R3|T0) |
5.S0=R2⊕T2 | 6.S2=(R1⊕R2)⊕(T1&T2) | 7.T4=~R3 | 8.T5=~(R2|R1) |
9.T6=~(R1|R0)&R3 | 10.T7=~(R3|R1)&R0 | 11.T8=T4&R2&R1; | 12.T9=key1&key0 |
13.T10=T9&(T5|T6|T7|T8) | 14.T11=~(R2|R0) | 15.T12=T11&R1; | 16.T13=R3&R1&R0 |
17.T14=~R2&R3 | 18.T15=key3⊕key2 | 19.T16=~key0 | 20.T17=T15&T16 |
21.T18=T17&(T7|T12|T13|T14) | 22.T19=~(R3|R1|R0) | 23.T20=R3&T5 | 24.T21=T4&R1&R0 |
25.T22=~T15&T16 | 26.T23=T22&(T11|T19|T20|T21) | 27.T24=~R0&R1&R2 | 28.T25=R3&R2 |
29.T26=~key1&key0 | 30.T27=T26&(T7|T13|T24|T25) | 31.S3=T10|T18|T23|T27 |
其中Ta为中间变量,0≤a≤27;表中~表示按位取反,&表示按位与,⊕表示按位异或,|表示按位或;keyb表示子密钥矩阵的第b行,0≤b≤3;Rc表示由数据C或当前轮64位密钥中提取出的4×8矩阵的第c行,0≤c≤3;
查表为:
按下表进行查表替换:
其中S(x)表示S盒替换的结果,x表示由数据C或当前轮64位密钥中提取出的4×8矩阵中的一列,即一列中的4位所表示的数据,y是子密钥矩阵中的一列。
一种基于位片技术的动态S盒分组密码的解密方法,基于所述的方法得到的加密结果进行解密,包括以下步骤:
对密文执行如加密过程中的广义Fesitel结构变换中一致的步骤并循环相同的轮次,且不再对密钥进行轮密钥扩展操作而是直接使用加密过程中产生的轮密钥,且在解密过程中将子密钥逆序使用,即第一轮解密使用加密过程中最后一轮中使用的子密钥rkey15,最后一轮解密使用加密过程中第一轮中使用的子密钥rkey0。
本发明的技术效果在于,在位片技术的基础上构造一个与密钥相关的动态S盒,即用逻辑运算去替换S盒查表实现的基础上,在逻辑运算中引入每次加密所需要的子密钥,使S盒在整个加密流程中呈现动态的形式。此外,这种新型的动态S盒构造方法不仅提高了算法加密过程中S盒替换的实现效率,同时查表式的S盒替换方式中包括了不同的4个S盒,并在替换时由根据密钥的值来对应输出变化结果,所以在加密运算中随着密钥的变化,S盒变换的输出结果也会变化,从而有效的隐藏了S盒,提高了算法的安全性,弥补了以往静态S盒和查表实现加密的不足。
该模式基于广义Feistel网络结构,明文分组长度为128位,密钥长度为64位,迭代轮数为16轮。广义Feistel结构中4个分支相互影响,相互关联。且广义Feistel结构设计和加密解密共用一个流程,可以节约很多硬件实现面积资源的开销。
附图说明
图1为本发明所述的算法加密和密钥扩展流程图;
图2为本发明所述的密钥扩展部分的一轮广义Feistel变换流程图;
图3为本发明所述的F1函数流程图;
图4为本发明所述的F2函数流程图;
表5为本发明所述的密钥关联的S盒;
具体实施方式
一种基于位片技术的动态S盒分组密码算法实现方法,算法明文长度为128位,密钥长度为64位,进行16轮函数迭代。从第一轮至倒数第二轮运算中,每一轮运算包括广义Feistel结构变换和密钥扩展运算,最后一轮只包括广义Feistel结构变换。
广义Feistel结构变换(如图1所示)包括对分组的数据进行第一异或变换、加密S盒替换、F函数(F1函数和F2函数)、第二异或变换、交叉变换。
密钥扩展(如图1所示)包括依次对密钥进行密钥S盒替换、一轮广义Feistel变换、轮计数器异或。
本实施例提供的一种基于位片技术的动态S盒分组密码算法实现方法,将位片技术与子密钥相关联去构造一个动态的S盒,每轮子密钥不同所使用的S盒也不同。通过这种用隐藏S盒的方式保证算法安全性。
在本发明所述的密码算法中,获取64位的密钥Key=k63 k62…k1 k0,以初始密钥的高32位k63k62…k33k32作为最初的子密钥rkey0。获取128位的明文Plaintext=p127 p126…p1p0,将128位的明文均分成四组,从最高有效位开始每一组32位,设每一组表示为Ci(i=1,2,3,4),
C0=p127||p126…p97||p96,C0=p127||p126…p97||p96,C1=p95||p94…p65||p64,C2=p63||p62…p33||p32,C3=p31||p30…p1||p0。将C1和C2进行异或,异或的结果和子密钥进入加密S盒完成非线性的运算得到32位的数据,将这32位的数据分别进行F1函数得到f1,F2函数得到f2,让f1与初始的C0异或得到C0′,让f2与初始的C3异或得到C3′。之后进行交叉变换,将C0′作为下一轮C2的数据,初始C1作为下一轮C3的数据,初始的C2作为下一轮C0数据,C3′作为下一轮C1的数据。最后得到第一轮中广义Feistel结构变换的数据C=C0||C1||C2||C3。第一轮中密钥扩展操作,将最初的子密钥rkey0和已获取64位的密钥Key进行密钥S盒替换操作,得到新的64位数据,然后该数据进行一轮的广义Feistel变换,随后再进行一次轮计数器异或操作,消除对称性。将第一次密钥扩展的64位数据保留作为下一轮中密钥扩展的初始数据,并且将这64位数据的高32位提出作为下一轮所需子密钥rkey1=k31k30…k1 k0。算法共有16轮,第一轮至倒数第二轮包括广义Feistel变换和密钥扩展,最后一轮只包括广义Feistel变换。为了保证加解密共用一个同样一个结构最后一轮中广义Feistel变换不进行交叉变换,最终可以得到128位的Ciphertext密文C=C0||C1||C2||C3。由于算法整体上采用广义Feistel结构变换,加解使用一个流程,即广义Feistel结构变换的流程。在解密的过程中只需要将子密钥逆序使用,即第一轮解密使用子密钥rkey15,最后一轮解密使用子密钥rkey0就可以完成解密过程。
下面将结合附图和实例对每一个组件做进一步的说明。
广义Feistel结构变换的加密S盒替换:
A1:将异或变换后的32位的数据绘制成4×8的矩阵W,使最低有效8位的w7||w6…w1||w0排列在第0行,次低有效8位的数据w15||w14…w9||w8排列在第1行,次高有效8位的数据w23||w22…w17||w16排列在第2行,最高有效的8位的数据w31||w30…w25||w24排列在最后一行,设第i行为Wi(i=0,1,2,3),具体排列形式如下。为了方便描述将矩阵表示成二维的形式,即第0行为w0,7||w0,6…w0,1||w0,0,第1行为w1,7||w1,6…w1,1||w1,0,第2行为w2,7||w2,6…w2,1||w2,0,第3行为w3,7||w3,6…w3,1||w3,0,二维排列形式如下。
A2:并且将每轮对应的32位的子密钥rkeyi(0≤i≤15)绘制成4×8的R矩阵,使最低有效8的r7||r6…r1||r0排列在第0行,次低有效8位的密钥r15||r14…r9||r8排列在第1行,次高有效8位的密钥r23||r22…r17||r16排列在第2行,最高有效8位的密钥r31||r30…r25||r24排列在最后一行。为了方便描述将矩阵表示成二维的形式,即第0行为r0,7||r0,6…r0,1||r0,0,第1行为r1,7||r1,6…r1,1||r1,0,第2行为r2,7||r2,6…r2,1||r2,0,第3行为r3,7||r3,6…r3,1||r3,0,二维排列形式如下。
A3:将得到的两个4×8的二维矩阵经过逻辑运算方式完成S盒替换步骤,设S盒替换后的新矩阵W′的第i行为wi′(i=0,1,2,3),Ti(0≤i≤27)为中间变量。通过逻辑运算替换传统的查表方式实现,运算步骤表示如下:
1.T0=~W1 | 2.T1=W2⊕W3 | 3.w1′=T1⊕(W0&T0) | 4.T2=W0⊕(W3|T0) |
5.w0′=W2⊕T2 | 6.w2′=(W1⊕W2)⊕(T1&T2) | 7.T4=~W3 | 8.T5=~(W2|W1) |
9.T6=~(W1|W0)&W3 | 10.T7=~(W3|W1)&W0 | 11.T8=T4&W2&W1; | 12.T9=key1&key0 |
13.T10=T9&(T5|T6|T7|T8) | 14.T11=~(W2|W0) | 15.T12=T11&W1; | 16.T13=W3&W1&W0 |
17.T14=~W2&W3 | 18.T15=key3⊕key2 | 19.T16=~key0 | 20.T17=T15&T16 |
21.T18=T17&(T7|T12|T13|T14) | 22.T19=~(W3|W1|W0) | 23.T20=W3&T5 | 24.T21=T4&W1&W0 |
25.T22=~T15&T16 | 26.T23=T22&(T11|T19|T20|T21) | 27.T24=~W0&W1&W2 | 28.T25=W3&W2 |
29.T26=~key1&key0 | 30.T27=T26&(T7|T13|T24|T25) | 31.w3′=T10|T18|T23|T27 | |
~:按位取反 | &:按位与 | ⊕:按位异或 | |:按位或 |
广义Feistel结构变换中F1函数和F2函数:
F1函数包括移位变换和子密钥异或(如图3所示),具体实现步骤如下:
B1:移位变换:在S盒替换后会得到新的W′,设W′矩阵的每一行为Row1′[i](i=0,1,2,3)。将第0行Row1′[0]赋值给row1′[0];第1行Row1′[1]循环左移1位赋值给row1′[1];第2行Row1′[2]循环左移4位赋值给row1′[2];第3行Row1′[3]循环左移5移得row1′[3]。算数表示如下:
1.row1′[0]=Row1′[0]; | 2.row1′[1]=Row1′[1]<<<1; |
3.row1′[2]=Row1′[2]<<<4; | 4.row1′[3]=Row1′[3]<<<5; |
B2:子密钥异或:将得到的32位的数据转换为一维的形式row1′[3]||row1′[2]||row1′[1]||row1′[0],然后32位的数据与每轮对应的子密钥进行异或最终得到F1函数变换的结果32位f1数据。
F2函数包括移位变换和子密钥异或(如图4所示),具体实现步骤如下:
C1:在S盒替换后得到新的W′,设W′矩阵的每一行为Row2′[i](i=0,1,2,3)。将第0行Row2′[0]赋值给得到row2′[0];第1行Row2′[1]循环左移2位赋值给row2′[1];第2行Row2′[2]循环左移3位赋值给row2′[2];第3行Row2′[3]循环左移6移得row2′[3]。算数表示如下:
1.row2′[0]=Row2′[0]; | 2.row2′[1]=Row2′[1]<<<2; |
3.row2′[2]=Row2′[2]<<<3; | 4.row2′[3]=Row2′[3]<<<6; |
C2:子密钥异或:将得到的32位的数据转换为一维的形式row2′[3]||row2′[2]||row2′[1]||row2′[0],然后32位的数据与每轮对应的子密钥进行异或最终得到F2函数变换的结果32位f2数据。
广义Feistel结构变换的交叉变换:
本轮为第i轮(1≤i≤14)。将得到的C0′作为下一轮(i+1)轮的初始的C2,本轮i初始的C1作为下一轮(i+1)轮的C3,将得到的C3′作为下一轮(i+1)的C1,本轮i初始的C2作为下一轮(i+1)轮的C0,公式表示如下:(1≤i≤14)
1.C2(i+1)=C0i′; | 2.C3(i+1)=C1i; |
3.C1(i+1)=C3i′; | 4.C0(i+1)=C2i; |
重复以上步骤,进行16轮。前15轮有交叉变换,最后一轮不进行交叉变换,C0′作为最后的C0,C1作为最后的C1,C2作为最后的C2,C3′作为最后的C3,公式表示如下。(i=15)
1.C0(i+1)=C0i′ | 2.C3(i+1)=C1i; |
3.C2(i+1)=C2i | 4.C3(i+1)=C3i′; |
密扩展中S盒替换:
D1:将64位的密钥数据绘制成4×16的矩阵形式。使最低有效16位的密钥k15||k14…k1||k0排列在第0行,次低有效16位的密钥k31||k30…k17||k16排列在第1行,次高有效16位的密钥k47||k46…k33||k32排列在第2行,最高有效16位的密钥k63||k62…k49||k48排列在最后一行。为了方便描述将矩阵表示成二维的形式,即第0行为k0,15||k0,14…k0,1||k0,0,第1行为k1,15||k1,14…k1,1||k1,0,第2行为k2,15||k2,14…k2,1||k2,0,第3行为k3,15||k3,14…k3,1||k3,0。
二维排列形式如下。
D2:将步骤A1中4×16矩阵的每行右边低8位ki,7||ki,6…ki,1||ki,0(i=0,1,2,3)提出得到一个新4×8矩阵,设该矩阵第i行表示为Ri(i=0,1,2,3),将每轮对应的子密钥按步骤A2所示绘制成4×8矩阵K,设矩阵K的第i行表示为Keyi(i=0,1,2,3),替换后新的4×8矩阵的矩阵第i行表示为Si(i=0,1,2,3),Ti(0≤i≤27)为中间变量。S盒替换中通过逻辑运算替换传统的查表方式实现,运算步骤表示如下:
1.T0=~R1 | 2.T1=R2⊕R3 | 3.S1=T1⊕(R0&T0) | 4.T2=R0⊕(R3|T0) |
5.S0=R2⊕T2 | 6.S2=(R1⊕R2)⊕(T1&T2) | 7.T4=~R3 | 8.T5=~(R2|R1) |
9.T6=~(R1|R0)&R3 | 10.T7=~(R3|R1)&R0 | 11.T8=T4&R2&R1; | 12.T9=key1&key0 |
13.T10=T9&(T5|T6|T7|T8) | 14.T11=~(R2|R0) | 15.T12=T11&R1; | 16.T13=R3&R1&R0 |
17.T14=~R2&R3 | 18.T15=key3⊕key2 | 19.T16=~key0 | 20.T17=T15&T16 |
21.T18=T17&(T7|T12|T13|T14) | 22.T19=~(R3|R1|R0) | 23.T20=R3&T5 | 24.T21=T4&R1&R0 |
25.T22=~T15&T16 | 26.T23=T22&(T11|T19|T20|T21) | 27.T24=~R0&R1&R2 | 28.T25=R3&R2 |
29.T26=~key1&key0 | 30.T27=T26&(T7|T13|T24|T25) | 31.S3=T10|T18|T23|T27 | |
~:按位取反 | &:按位与 | ⊕:按位异或 | |:按位或 |
S盒替换后将得到一个4×8的矩阵,用得到的矩阵去替换D1中4×16的矩阵每行的右边低8位ki,7||ki,6…ki,1||ki,0(i=0,1,2,3)如图所示,完成S盒替换操作。
密钥扩展一轮的广义Feistel变换(如图2所示):
将经过S盒替换后的4×16矩阵的第i行设为Rowi(i=0,1,2,3),变换后的结果的第i行设为rowi(i=0,1,2,3)。Row0循环左移7位再与Row1进行异或运算得到row0,将Row2的数据赋给row1,Row2循环左移13位再与Row3进行异或运算得到row2,将Row0的数据赋给row3。公式表示如下:
1.row0=(Row0<<<7)⊕Row1; | 2.row1=Row2; |
3.row2=(Row2<<<13)⊕Row3; | 4.row3=Row0; |
密钥扩展的轮常数异或:
4×16矩阵的第3行row3的高4位异或上一个轮计数器RC[i](0≤i≤14),即其中轮计数器RC[i]=i+1(0≤i≤14),如下表:
本实施例中该算法的命名为DBST,算法分组长度为128位,密钥长度为64位,迭代轮数为16轮,第一轮至倒数第二轮中包括广义Feistel结构变换和密钥扩展,最后一轮只包括广义Feistel结构变换。广义Feistel结构变换包括对分组的数据进行第一异或变换、加密S盒替换、F函数(F1函数和F2函数)、第二异或变换、交叉变换。密钥扩展包括依次对密钥进行密钥S盒替换、一轮广义Feistel变换、轮计数器异或其中S盒除了位片技术实现依然可以用查表方式进行实现。以下对查表方式的实现进行详细描述:
该算法的实现方法中每轮一共有两次S盒替换操作,密钥扩展中的S盒替换和广义Feistel结构中S盒替换。每次的S盒替换都是32位的数据和32位的子密钥进行S盒替换操作。而除了逻辑运算的实现方法外,还可以用查表方式进行实现,本实施例中的S盒替换使用的S盒是4个4位到4位的S盒。这些S-box在十六进制表示法上由表5给出,
表5
上表中的x是将要进行S盒替换的数据,y是对应的子密钥,S(x)表示S盒替换的结果。具体来说,x是由数据C或当前轮64位密钥中提取出的4×8矩阵中的一列,即一列中的4位所表示的数据,y是子密钥矩阵中的一列。
具体实现步骤如下。
A1:将32位的数据最低有效8位m7||m6…m1||m0排列在第0行,次低有效位8位m15||m14…m9||m8排列在第1行,次高有效8位m23||m22…m17||m16排列在第2行,最高有效8位m31||m30…m25||m24排列在最后一行,设第i行为Mi(i=0,1,2,3),具体排列形式如下。为了方便描述将矩阵表示成二维的形式,即第0行为m0,7||m0,6…m0,1||m0,0,第1行为m1,7||m1,6…m1,1||m1,0,第2行为m2,7||m2,6…m2,1||m2,0,第3行为m3,7||m3,6…m3,1||m3,0,二维排列形式如下。
A2:将对应的32位的子密钥rkeyi(0≤i≤15)绘制成4×8的R矩阵,最低有效8位的子密钥r7||r6…r1||r0排列在第0行,次低有效8位的子密钥r15||r14…r9||r8排列在第1行,次高有效8位的子密钥r23||r22…r17||r16排列在第2行,最高有效8位的子密钥r31||r30…r25||r24排列在最后一行。为了方便描述将矩阵表示成二维的形式,即第0行为r0,7||r0,6…r0,1||r0,0,第1行为r1,7||r1,6…r1,1||r1,0,第2行为r2,7||r2,6…r2,1||r2,0,第3行为r3,7||r3,6…r3,1||r3,0,二维排列形式如下。
A3:设32位数据形成的4×8的每一列为xi=m3,i||m2,i||m1,i||m0,i(0≤i≤7)。设子密钥的每一列为yi=r3,i||r2,i||r1,i||r0,i(0≤i≤7)。以yi(0≤i≤7)为标识查找4个S-box中对应的S盒函数,对应的S-box由表5给出。一个S盒的输入是xi=m3,i||m2,i||m1,i||m0,i(0≤i≤7)输出是S(xi)=b3,i||b2,i||b1,i||b0,i(0≤i≤7),如下表所示:
本发明的主要思想是在位片技术的基础上构造一个与密钥相关的动态S盒,即在以逻辑运算去替换S盒查表实现的基础上往逻辑运算中加入每次加密所需要的密钥,使S盒在加密整个流程中呈现动态的形式。基于位片技术的动态S盒分组密码实现方法在提高安全性且加快算法软件实现速度,同时弥补以往静态S盒和查表实现的不足。
本发明的方法包括广义Feistel结构变换和密钥扩展。广义Feistel结构变换包括对分组的数据进行第一异或变换、加密S盒替换、F函数(F1函数和F2函数)、第二异或变换、交叉变换。密钥扩展包括依次对密钥进行密钥S盒替换、一轮广义Feistel变换、轮计数器异或。广义Feistel结构变换中异或变换和交叉变换使四分支分组数据相互影响,F1函数和F2函数使用不同的流程使广义Feistel结构两边不完全一样,且函数中的移位保证了算法的扩散性。S盒保证了算法的混淆性。密钥扩展中轮计数器异或消除了对称性。因为整个加密过程采用广义Feistel结构,使用解密过程可以和加密使用同一个结构,唯一不同点是在解密过程中逆序使用加密过程中的子密钥。
测试:
对本发明实施例提供的方法进行测试,其中本发明提供的密码算法数据如表6所示。
表6
本发明所述的DBST密码算法在ModelSim SE 6.1f Evaluation上进行仿真,同时在Synopsys Design Compiler Version B-2008.09进行仿真,其中综合工艺库为SMIC0.18μmCMOS,在综合实验中,面积资源单位为GE。
DBST轻量级分组密码硬件资源报告分析,广义Feistel结构变换模块中各个组件占用资源具体描述如下:128位明文保存在寄存器中需要688GE;在异或变换模块需要85.44GE加密S盒置换模块需要32.67GE;F1函数模块和F2函数模块需要的面积资源相同,为87GE;轮密钥加变换模块需要170.88GE;交叉变换模块的硬件实现是通过连线操作,从而不需要花费硬件资源。密钥扩展模块各个组件占用具体资源描述如下:64位密钥保持在寄存器中需要384GE;密钥S盒替换模块需要71.54GE;一轮广义Feistel变换模块需要76GE;轮计数器异或模块需要13.5GE。算法实现中,控制逻辑单元以及计数器共需要37GE。算法所需硬件资源总和为1771.9GE,下表7为算法各模块硬件资源列表。
表7
算法模块 | GE | 资源占比 |
明文寄存器 | 688 | 38.83% |
密钥寄存器 | 384 | 21.67% |
异或变换 | 85.44 | 4.82% |
S盒替换 | 143.08 | 8.07% |
F函数 | 174 | 9.82% |
轮密钥加变换 | 170.88 | 9.64% |
一轮广义Feistel变换 | 76 | 4.29% |
轮计数器异或 | 13.5 | 0.76% |
控制逻辑单元与计数器 | 37 | 2.1% |
总和 | 1771.9 | 100% |
本发明所述的DBST密码算法中的S盒与Rectangle算法的S盒进行对比,具体步骤如下:
1.Rectangle算法中的S盒对应值如下:
x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
S(x) | 6 | 5 | C | A | 1 | E | 7 | 9 | B | 0 | 3 | D | 8 | F | 4 | 2 |
S盒的差分分析如下:
/>
根据S盒的差分分析可以得出一些S盒的特性:
0001—**1* | 0100—**11 | 0101—**0* |
1000—***1 | *11*—0010 | *1**—0100 |
*0**—0110 | **1*—1100 | **0*—1110 |
2.DBST算法中的S盒对应值如下:
S1(x)、S2(x)的差分分析如下:
根据S盒的差分分析可以得出一些S1(x)、S2(x)的特性:
0001—***1 | 1000—**11 | 1001—***0 |
1000—**1* | 1100—**0* | **1*—0100 |
*1**—1000 | **1*—1001 | *1**—1100 |
S3(x)的差分分析如下:
根据S盒的差分分析可以得出一些S3(x)的特性:
0100—**11 | 1000—**1* | 1100—**0* |
*1**—0100 | **0*—0101 | *1**—1000 |
**1*—1001 | *01*—1100 |
S4(x)的差分分析如下:
/>
根据S盒的差分分析可以得出一些S4(x)的特性:
0100—**11 | 0101—***0 | 1000—**1* |
1100—**0* | **1*—0001 | *01*—0100 |
**0*—0101 | *1**—1000 | *1**—1100 |
由于动态S盒是依赖子密钥进行的动态S盒置换,所以动态S盒的差分特性是S1(x)、S2(x)、S3(x)、S4(x)差分特性相同的部分,即:
0100—**11 | 1000—**1* | 1100—**0* |
由上述分析可得出:密钥相关的动态S盒置换具有一定的随机性,隐藏了S1(x)、S2(x)、S3(x)、S4(x)的一些特性,安全性较高。
需要强调的是,本发明所述的实例是说明性的,而不是限定性的,因此本发明不限于具体实施方式中所述的实例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,不脱离本发明宗旨和范围的,不论是修改还是替换,同样属于本发明的保护范围。
Claims (8)
1.一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,包括以下步骤:
A1:设置64位的密钥Key,将初始密钥的高32位作为初始的子密钥rkey0;
A2:获取128位的明文Plaintext,并按位数进行分组以得到多个分支;
A3:将各个分支基于当前子密钥进行广义Fesitel结构变换的加密操作,其中广义Feistel结构变换包括对各个分支进行第一异或变换、加密S盒替换、F函数变换、第二异或变换和交叉变换;
A4:将64位的密钥Key进行轮密钥扩展操作,包括密钥S盒替换、一轮广义Fesitel变换和轮计数器异或操作;并取轮密钥扩展操作最后结果的高32位作为下一轮所需要的子密钥;
A5:返回A3以进行下一轮循环,整个加密算法过程经过16轮循环,前15轮中每一轮都进行广义Feistel结构变换的加密操作和密钥扩展运算,最后1轮只进行广义Feistel结构变换的加密操作;且最后1轮广义Feistel结构变换的加密操作中不进行交叉变换;
所述的A2中,所述的按位数进行分组以得到多个分支包括以下步骤:
将128位的明文数据分成四个分支:C0=p127||p126…p97||p96,C1=p95||p94…p65||p64,
C2=p63||p62…p33||p32,C3=p31||p30…p1||p0,||表示字符串连接符;
所述的A3中,所述广义Feistel结构变换中的第一异或变换是将其中两个分支C1与C2进行异或变换得到C;
所述的A3中,所述广义Feistel结构变换中加密S盒替换包括以下步骤:
B1:将32位的数据C绘制成4×8的矩阵:将数据C最低有效8位排列在矩阵的第0行,次低有效8位排列在第1行,次高有效8位排列在第2行,最高有效的8位排列在最后一行;
B2:将本轮对应的32位的子密钥rkeyi绘制成4×8的子密钥矩阵,使子密钥rkeyi最低有效8位排列在矩阵的第0行,次低有效8位的密钥排列在第1行,次高有效8位的密钥排列在第2行,最高有效8位的密钥排列在最后一行,其中0≤i≤15;
B3:将得到的两个4×8的矩阵根据S盒替换规则执行替换,替换后得到的新的4×8的矩阵作为本轮加密S盒替换的结果。
2.根据权利要求1所述的一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,所述的A3中,所述广义Feistel结构变换中的F函数变换包括F1函数变换和F2函数变换:
F1函数变换:
以S盒替换后得到W′矩阵的每一行为Row1′[i],其中i=0,1,2,3;将第0行Row1′[0]赋值给row1′[0];第1行Row1′[1]循环左移1位赋值给row1′[1];第2行Row1′[2]循环左移4位赋值给row1′[2];第3行Row1′[3]循环左移5位得row1′[3];其中row表示Row经过移位后的对应行;将移位赋值得到的32位的数据row1′[3]||row1′[2]||row1′[1]||row1′[0]与每轮对应的子密钥进行异或得到F1函数变换最终数据结果f1;
F2函数变换:
同样取S盒替换后得到的W′矩阵,将W′矩阵的第0行Row1′[0]赋值row2′[0];第1行Row1′[1]循环左移2位赋值给row2′[1];第2行Row1′[2]循环左移3位赋值给row2′[2];第3行Row1′[3]循环左移6位得row2′[3];将移位赋值得到的32位的数据row2′[3]||row2′[2]||row2′[1]||row2′[0]与每轮对应的子密钥进行异或得到F2函数变换最终数据结果f2;
所述的A3中,所述广义Feistel结构变换中的第二异或变换包括:
将f1与C0异或得到C0′;将f2与C3异或得到C3′。
3.根据权利要求2所述的一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,所述的A3中,所述所述广义Feistel结构变换中的交叉变换包括以下步骤:
设本轮为第i轮,其中1≤i≤14;将当前的C0′作为下一轮(i+1)轮的初始的C2,当前的C1作为下一轮(i+1)轮的C3,当前的C3′作为下一轮(i+1)的C1,当前的C2作为下一轮(i+1)轮的C0。
4.根据权利要求1所述一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,所述的A4中,密钥扩展中密钥S盒替换包括以下步骤:
C1:将该轮64位的密钥数据绘制成4×16的矩阵形式,使最低有效16位的密钥排列在第0行,次低有效16位的密钥排列在第1行,次高有效16位的密钥排列在第2行,最高有效16位的密钥排列在最后一行;
C2:将步骤C1中4×16矩阵的每行右边低8位提出,形成一个新4×8矩阵;将本轮32位的子密钥rkeyi绘成4×8的子密钥矩阵,使子密钥rkeyi最低有效8位排列在矩阵的第0行,次低有效8位的密钥排列在第1行,次高有效8位的密钥排列在第2行,最高有效8位的密钥排列在最后一行,其中0≤i≤15;然后根据S盒替换规则执行替换,并将S盒替换后将得到的新的4×8的矩阵替换C1中4×16的矩阵每行的右边低8位作为最终密钥S盒替换的结果。
5.根据权利要求4所述的一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,所述的A4中,密钥扩展的一轮广义Feistel变换包括以下步骤:
将经S盒替换后的4×16矩阵的第i行设为Rowi,其中i=0,1,2,3,变换后的结果的第i行设为rowi,其中i=0,1,2,3;Row0循环左移7位再与Row1进行异或运算得到row0,将Row2的数据赋给row1,Row2循环左移13位再与Row3进行异或运算得到row2,将Row0的数据赋给row3。
6.根据权利要求3所述的一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,所述的A4中,密钥扩展中的轮计数器异或运算包括以下步骤:
将经过一轮广义Feistel变换后的矩阵数据的第3行的高4位k3,15||k3,14||k3,13||k3,12与轮计数器RC[i]进行异或,得到k′,其中0≤i≤14,即
k′3,15||k′3,14||k′3,13||k′3,12=(k3,15||k3,14||k3,13||k3,12)⊕RC[i],其中轮计数器RC[i]=i+1,其中0≤i≤14;
最后将轮计数器异或运算后的4×16矩阵作为下一轮64位密钥,其中矩阵最后两行作为下一轮子32位子密钥。
7.根据权利要求1或4任一所述的一种基于位片技术的动态S盒分组密码的加密方法,其特征在于,
所述的加密S盒替换或密钥S盒替换,是采用逻辑运算或查表完成S盒替换,其中逻辑运算为:
按下表中的顺序执行逻辑运算以完成S盒替换:
其中Ta为中间变量,0≤a≤27;表中~表示按位取反,&表示按位与,⊕表示按位异或,|表示按位或;key b表示子密钥矩阵的第b行,0≤b≤3;Rc表示由数据C或当前轮64位密钥中提取出的4×8矩阵的第c行,0≤c≤3;
查表为:
按下表进行查表替换:
其中S(x)表示S盒替换的结果,x表示由数据C或当前轮64位密钥中提取出的4×8矩阵中的一列,即一列中的4位所表示的数据,y是子密钥矩阵中的一列。
8.一种基于位片技术的动态S盒分组密码的解密方法,其特征在于,基于如权利要求1-7任一所述的方法得到的加密结果进行解密,包括以下步骤:
对密文执行如加密过程中的广义Fesitel结构变换中一致的步骤并循环相同的轮次,且不再对密钥进行轮密钥扩展操作而是直接使用加密过程中产生的轮密钥,且在解密过程中将子密钥逆序使用,即第一轮解密使用加密过程中最后一轮中使用的子密钥rkey15,最后一轮解密使用加密过程中第一轮中使用的子密钥rkey0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111014428.8A CN113691364B (zh) | 2021-08-31 | 2021-08-31 | 一种基于位片技术的动态s盒分组密码的加密及解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111014428.8A CN113691364B (zh) | 2021-08-31 | 2021-08-31 | 一种基于位片技术的动态s盒分组密码的加密及解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113691364A CN113691364A (zh) | 2021-11-23 |
CN113691364B true CN113691364B (zh) | 2024-02-09 |
Family
ID=78584738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111014428.8A Active CN113691364B (zh) | 2021-08-31 | 2021-08-31 | 一种基于位片技术的动态s盒分组密码的加密及解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113691364B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116743445B (zh) * | 2023-06-01 | 2024-04-09 | 济南安迅科技有限公司 | 一种保密通信系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134174A (ja) * | 1999-11-05 | 2001-05-18 | Nippon Telegr & Teleph Corp <Ntt> | 秘話通信装置 |
CN101626289A (zh) * | 2009-07-14 | 2010-01-13 | 青岛科技大学 | Aes加密芯片的设计方法及电脑加密机 |
CN101814985A (zh) * | 2010-02-08 | 2010-08-25 | 河南大学 | 应用多混沌映射多动态s盒的分组密码系统 |
JP2012143011A (ja) * | 2012-04-27 | 2012-07-26 | Sony Corp | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム |
CN104333446A (zh) * | 2014-11-10 | 2015-02-04 | 衡阳师范学院 | 一种新型超轻量级qtl分组密码实现方法 |
CN108123791A (zh) * | 2017-12-26 | 2018-06-05 | 衡阳师范学院 | 一种轻量级分组密码scs的实现方法与装置 |
CN110784307A (zh) * | 2019-11-05 | 2020-02-11 | 衡阳师范学院 | 轻量级密码算法scenery实现方法、装置及存储介质 |
CN111431697A (zh) * | 2020-03-31 | 2020-07-17 | 衡阳师范学院 | 一种新型轻量级分组密码corl的实现方法 |
CN111934850A (zh) * | 2020-06-29 | 2020-11-13 | 南京天际行云科技有限公司 | 组纲aes加解密方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0211812D0 (en) * | 2002-05-23 | 2002-07-03 | Koninkl Philips Electronics Nv | S-box encryption in block cipher implementations |
US10341090B2 (en) * | 2014-10-14 | 2019-07-02 | Sony Corporation | Cipher processing apparatus and cipher processing method |
US20200313850A1 (en) * | 2019-03-29 | 2020-10-01 | Irdeto Canada Corporation | Method and apparatus for implementing a white-box cipher |
US11700111B2 (en) * | 2019-06-26 | 2023-07-11 | Cryptography Research, Inc. | Platform neutral data encryption standard (DES) cryptographic operation |
-
2021
- 2021-08-31 CN CN202111014428.8A patent/CN113691364B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134174A (ja) * | 1999-11-05 | 2001-05-18 | Nippon Telegr & Teleph Corp <Ntt> | 秘話通信装置 |
CN101626289A (zh) * | 2009-07-14 | 2010-01-13 | 青岛科技大学 | Aes加密芯片的设计方法及电脑加密机 |
CN101814985A (zh) * | 2010-02-08 | 2010-08-25 | 河南大学 | 应用多混沌映射多动态s盒的分组密码系统 |
JP2012143011A (ja) * | 2012-04-27 | 2012-07-26 | Sony Corp | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム |
CN104333446A (zh) * | 2014-11-10 | 2015-02-04 | 衡阳师范学院 | 一种新型超轻量级qtl分组密码实现方法 |
CN108123791A (zh) * | 2017-12-26 | 2018-06-05 | 衡阳师范学院 | 一种轻量级分组密码scs的实现方法与装置 |
CN110784307A (zh) * | 2019-11-05 | 2020-02-11 | 衡阳师范学院 | 轻量级密码算法scenery实现方法、装置及存储介质 |
CN111431697A (zh) * | 2020-03-31 | 2020-07-17 | 衡阳师范学院 | 一种新型轻量级分组密码corl的实现方法 |
CN111934850A (zh) * | 2020-06-29 | 2020-11-13 | 南京天际行云科技有限公司 | 组纲aes加解密方法 |
Non-Patent Citations (2)
Title |
---|
SMBA分组密码算法;王克;贾文义;黄念念;;密码学报(06);全文 * |
一种基于混沌映射与S盒的Feistel结构图像加密算法;耿桂华;廖晓峰;赵亮;肖迪;;计算机科学(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113691364A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106788974B (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
US6314186B1 (en) | Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis | |
US5745577A (en) | Symmetric cryptographic system for data encryption | |
CN107707343B (zh) | 加解密一致的sp网络结构轻量级分组密码实现方法 | |
CN109768854B (zh) | 一种轻量级分组密码算法的实现方法 | |
US8635452B2 (en) | Method for generating a cipher-based message authentication code | |
CN110572255B (zh) | 基于轻量级分组密码算法Shadow的加密方法、装置及计算机可读介质 | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN111431697B (zh) | 一种新型轻量级分组密码corl的实现方法 | |
Tunstall | Improved``Partial Sums"-based Square Attack on AES | |
CN110784307A (zh) | 轻量级密码算法scenery实现方法、装置及存储介质 | |
Al-Neaimi et al. | New Approach for Modifying Blowfish Algorithm by Using Multiple Keys | |
CN113691364B (zh) | 一种基于位片技术的动态s盒分组密码的加密及解密方法 | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
Yan et al. | DBST: a lightweight block cipher based on dynamic S-box | |
Zhao et al. | Differential fault analysis on LED using Super‐Sbox | |
GN et al. | Performance enhancement of Blowfish and CAST-128 algorithms and Security analysis of improved Blowfish algorithm using Avalanche effect | |
CN110247754B (zh) | 一种分组密码fbc的实现方法及装置 | |
Mohan et al. | Revised aes and its modes of operation | |
Abdulwahed | Chaos-Based Advanced Encryption Standard | |
JPWO2008117804A1 (ja) | ストリーム暗号向け擬似乱数生成装置とプログラムと方法 | |
Lewandowski et al. | Enhancing PRESENT-80 and Substitution-Permutation Network Cipher Security with Dynamic" Keyed" Permutation Networks | |
Algazy et al. | Investigation of the different implementations for the new cipher Qamal | |
Nafl et al. | Fast lightweight encryption device based on LFSR technique for increasing the speed of LED performance | |
CN116743352A (zh) | 一种加解密一致的新型动态分组密码hfsp的加解密实现方法 |
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 |