CN112511293B - 基于比特与运算的s盒参数化设计方法及存储介质 - Google Patents
基于比特与运算的s盒参数化设计方法及存储介质 Download PDFInfo
- Publication number
- CN112511293B CN112511293B CN202010993508.1A CN202010993508A CN112511293B CN 112511293 B CN112511293 B CN 112511293B CN 202010993508 A CN202010993508 A CN 202010993508A CN 112511293 B CN112511293 B CN 112511293B
- Authority
- CN
- China
- Prior art keywords
- bit
- box
- round
- binary vector
- csh
- 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
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及通信加密技术领域,本发明公开了一种基于比特与运算的S盒参数化设计方法及存储介质,该方法包括:对选定的S盒规格n,随机选取F2 n‑2→F2的布尔函数f1、f2,对S盒的n比特输入数据,依次遍历{0,1,…,2n‑1}所有整数值对应的n比特二元向量,对任意整数值i对应的n比特二元向量,先进行多轮n支广义Feistel结构的轮变换,再进行非线性变换,并对运算结果进行比特组合,得到n
Description
技术领域
本发明涉及通信加密技术领域,尤其涉及一种基于比特与运算的S盒参数化设计方法及存储介质。
背景技术
本发明涉及通信加密技术领域,尤其涉及分组密码、序列密码、杂凑算法等对称密码算法中混淆部件S盒的参数化设计方法。
国内外现有对称密码算法的设计主要采用香农1949年提出的“混淆”+“扩散”原则,通过对称密码算法中的“混淆”和“扩散”部件使得明文、密文和密钥之间的关系异常复杂,以至于攻击者无法从密文得到明文的任何信息、或者从明密文对得到密钥的任何信息。
“混淆”部件普遍采用非线性置换S盒(Substitution Box)。S盒首次出现在分组密码算法Lucifer中,随着美国标准化技术研究机构NIST(National Institute of StandardTechnology)在1977年发布的数据加密算法标准DES(Data Encryption Standard)的使用而广为流行。S盒是绝大多数密码算法中唯一的非线性部件,其密码性质几乎决定了整个密码算法的安全强度,也极大影响整个算法的“混淆”效果。S盒一般以表的形式存储,通过查表实现调用,如果参数n和m过大将给S盒的设计以及密码算法的实现带来困难,目前绝大多数密码算法采用88的S盒。S盒的密码性质主要包括:平衡性、非线性度、差分均匀度、代数次数及项数分布、代数免疫阶、扩散分支数等。
组件化可变密码是近几年新出现的一种对称密码算法,具有安全的动态调变特性,能够根据外部输入的配置要素动态重构算法参数化组件,控制算法编码结构、运算逻辑等适时演变,不同的配置要素对应不同的算法实例,实现算法簇的效果。与经典的静态密码算法相比,组件化可变密码增强了密码算法的动态重构能力,提高了密码算法抵抗经典已知攻击和未知攻击的安全性。
现有密码算法中作为重要混淆部件的S盒主要基于代数结构和离线测试方法产生,在线产生满足安全强度的S盒难度较大。为了保证密码算法及算法部件的安全强度,如果组件化可变密码算法通过更换非线性固定表的方式实现算法组件参数化,将主要以离线预置方式为主,为了达到安全强度设置的变化量,需要预置存储的S盒数量一般都较大,存在两方面弱点:一是占用了密码算法承载设备的大量存储资源,二是无法支持在线动态配置。
在依赖密钥的可变S盒方面,RC4、Twofish等算法的设计采用了依赖密钥S盒的设计方法,但存在依赖密钥随机交换或多轮迭代方式产生的S盒其密码性质不可控、不能给出有实际指导意义的理论界等设计缺陷。
总的来说,目前的公开资料中S盒参数化设计方法相关研究较少,需要进一步提升其支持在线更换配置、安全可控等方面的特性与能力。
发明内容
为了解决上述问题,本发明提出一种基于比特与运算的S盒参数化设计方法及存储介质,通过该设计方法得到的参数化S盒,具有优良的密码学性质,同时具有较低的软硬件实现代价,能够为组件化可变密码算法的参数化混淆部件提供丰富的选择。
本发明的一种基于比特与运算的S盒参数化设计方法,包括以下步骤:
CSH1:对选定的S盒规格n,随机选取F2 n-2→F2的布尔函数f1、f2,其中f1、f2的代数次数大于等于2次且其代数正规型不包含1次项和常数项;
CSH2:对S盒的n比特输入数据(x0,x1,x2,…,xn-2,xn-1),依次遍历{0,1,…,2n-1}所有整数值对应的n比特二元向量{(0,0,0,…,0,0),(0,0,0,…,0,1),…,(1,1,1,…,1,1)},对任意整数值i对应的n比特二元向量(x0,x1,x2,…,xn-2,xn-1),先进行多轮n支广义Feistel结构的轮变换,再进行非线性变换,并对运算结果进行比特组合,得到nn规格的S盒在整数i的数值,即:Sbox(i)=y0||y1||y2||y3||…||yn-1;
进一步的,所述多轮n支广义Feistel结构的轮变换至少包括步骤CSH21:
对输入的n比特二元向量(x0,x1,x2,…,xn-2,xn-1)计算第1轮n支广义Feistel结构的轮变换,即:
tn-2=x0⊕f1(x2,x3,…,xn-2,xn-1)⊕(CS0&x2)⊕(CS1&x3)⊕(CS2&x4)⊕…⊕(CSn-3&xn-1)⊕CSn-2;
tn-1=x1⊕f2(x2,x3,…,xn-2,xn-1)⊕(CSn-1&x2)⊕(CSn&x3)⊕(CSn+1&x4)⊕…⊕(CS2n-4&xn-1)⊕CS2n-3;
t0=x2,t1=x3,t2=x4,…,tn-4=xn-2,tn-3=xn-1;
其中,t0,t1,t2,…,tn-2,tn-1为n比特中间变量,CS0,CS1,CS2,…,CSn-3,CSn-2,CSn-1,CSn,CSn+1,…,CS2n-4,CS2n-3为2n-2比特可变控制参数,逻辑运算符号“⊕”表示比特异或运算,逻辑运算符号“&”表示比特与运算。
进一步的,所述多轮n支广义Feistel结构的轮变换还包括以下步骤:
CSH22:对步骤CSH21的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)计算第2轮n支广义Feistel结构的轮变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3;
t0=t2,t1=t3,t2=t4,…,tn-4=tn-2,tn-3=tn-1,tn-2=T0,tn-1=T1;
其中,T0,T1为2比特中间变量;
CSH23:对步骤CSH22的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)计算第3轮n支广义Feistel结构的轮变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3;
t0=t2,t1=t3,t2=t4,…,tn-4=tn-2,tn-3=tn-1,tn-2=T0,tn-1=T1。
进一步的,所述非线性变换包括步骤CSH24:
对步骤CSH23的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)进行非线性变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3。
对CSH24的运算结果n比特二元向量(T0,T1,t2,…,tn-2,tn-1)进行比特组合,得到nn规格的S盒在整数i的数值,即:y0=T0,y1=T1,y2=t2,y3=t3,…,yn-2=tn-2,yn-1=tn-1,Sbox(i)=y0||y1||y2||y3||…||yn-1。
进一步的,f1、f2均包括2U种非零布尔函数,其中U=2n-2-n+1。
本发明的一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于比特与运算的S盒参数化设计方法的步骤。
本发明的有益效果在于:
本发明提出一种基于比特与运算的S盒参数化设计方法,通过该设计方法得到的参数化S盒,具有优良的密码学性质,同时具有较低的软硬件实现代价,能够为组件化可变密码算法的参数化混淆部件提供丰富的选择。
与目前已有的技术相比,本发明提出的参数化S盒的设计方法,同时具有良好密码学性质和较低的实现资源,支持在线配置更新,解决了之前参数化S盒设计方法存在的存储资源占用大、无法在线配置更新以及主要密码性质弱等问题;适用于BitSlice等运算方式,在8位、16位、32位、64位等不同实现平台上具有良好的兼容性和易移植性,能够广泛应用于对称密码算法设计,特别适用于设计高安全强度的轻量化密码算法。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现说明本发明的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明涉及的相关术语描述如下:
S(X)=(f1(X),…,fi(X)):F2 n→F2 m。
其中fi(X)为F2 n→F2的布尔函数,i=1,2,…,m,F2表示由0和1构成的二元域集合,F2 n表示由F2构成的n维向量空间,即F2={0,1},F2 n={0,1}n。
布尔函数的代数正规型、项数和代数次数:每一个n元布尔函数f都可以唯一的表示为F 2上关于n个变元x 1, x 2,..., x n 的多项式,即:
汉明重量(Hamming Weight):一个向量c的汉明重量wt(c)定义为此向量中非零元的个数。
实施例1
本实施例提供了一种基于比特与运算的S盒参数化设计方法,包括以下步骤:
CSH1:对选定的S盒规格n,随机选取F2 n-2→F2的布尔函数f1、f2,f1、f2的代数次数大于等于2次且其代数正规型不包含1次项和常数项;具体的,f1、f2均包括2U种非零布尔函数,其中U=2n-2-n+1;
CSH2:对S盒的n比特输入数据(x0,x1,x2,…,xn-2,xn-1),依次遍历{0,1,…,2n-1}所有整数值对应的n比特二元向量{(0,0,0,…,0,0),(0,0,0,…,0,1),…,(1,1,1,…,1,1)},对任意整数值i对应的n比特二元向量(x0,x1,x2,…,xn-2,xn-1),先进行多轮n支广义Feistel结构的轮变换,再进行非线性变换,并对运算结果进行比特组合,得到nn规格的S盒在整数i的数值,即:Sbox(i)=y0||y1||y2||y3||…||yn-1;
具体的,所述多轮n支广义Feistel结构的轮变换包括以下步骤:
CSH21:对输入的n比特二元向量(x0,x1,x2,…,xn-2,xn-1)计算第1轮n支广义Feistel结构的轮变换,即:
tn-2=x0⊕f1(x2,x3,…,xn-2,xn-1)⊕(CS0&x2)⊕(CS1&x3)⊕(CS2&x4)⊕…⊕(CSn-3&xn-1)⊕CSn-2;
tn-1=x1⊕f2(x2,x3,…,xn-2,xn-1)⊕(CSn-1&x2)⊕(CSn&x3)⊕(CSn+1&x4)⊕…⊕(CS2n-4&xn-1)⊕CS2n-3;
t0=x2,t1=x3,t2=x4,…,tn-4=xn-2,tn-3=xn-1;
其中,t0,t1,t2,…,tn-2,tn-1为n比特中间变量,CS0,CS1,CS2,…,CSn-3,CSn-2,CSn-1,CSn,CSn+1,…,CS2n-4,CS2n-3为2n-2比特可变控制参数,逻辑运算符号“⊕”表示比特异或运算,逻辑运算符号“&”表示比特与运算。
CSH22:对步骤CSH21的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)计算第2轮n支广义Feistel结构的轮变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3;
t0=t2,t1=t3,t2=t4,…,tn-4=tn-2,tn-3=tn-1,tn-2=T0,tn-1=T1;
其中,T0,T1为2比特中间变量;
CSH23:对步骤CSH22的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)计算第3轮n支广义Feistel结构的轮变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3;
t0=t2,t1=t3,t2=t4,…,tn-4=tn-2,tn-3=tn-1,tn-2=T0,tn-1=T1。
具体的,所述非线性变换包括步骤CSH24:
对步骤CSH23的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)进行非线性变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3。
对CSH24的运算结果n比特二元向量(T0,T1,t2,…,tn-2,tn-1)进行比特组合,得到nn规格的S盒在整数i的数值,即:y0=T0,y1=T1,y2=t2,y3=t3,…,yn-2=tn-2,yn-1=tn-1,Sbox(i)=y0||y1||y2||y3||…||yn-1。
从上述运算过程可知,本质上,本实施例提出的基于比特与运算的S盒参数化设计方法支持任意小于等于2n-2比特可变控制参数,故支持任意i比特(i2n-2)可变控制参数(CS0,CS1,CS2,…,CSi-2,CSi-1)的nn规格的参数化S盒方案都是本发明实施例的特定实例。
本实施例还提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于比特与运算的S盒参数化设计方法的步骤。
实施例2
本实施例在实施例1的基础上:
对于目前国内外密码算法中主流的S盒,取定n=8,通过实施例1中上述步骤CSH1至CSH3得到实际算法中常用的8比特S盒参数化实例,即:
将S盒的8比特输入数据记为(x0,x1,x2,x3,x4,x5,x6,x7),S盒的8比特输出数据记为(y0,y1,y2,y3,y4,y5,y6,y7),14比特可变控制参数记为(CS0,CS1,CS2,CS3,CS4,CS5,CS6,CS7,CS8,CS9,CS10,CS11,CS12,CS13),8比特中间变量记为(t0,t1,t2,t3,t4,t5,t6,t7),2比特中间变量记为(T0,T1),具体包括步骤QCSH1至QCSH3:
QCSH1:对选定的S盒规格n=8,随机选取F2 6→F2的布尔函数f1、f2,f1、f2的代数次数大于等于2次且其代数正规型不包含1次项和常数项;
QCSH2:对S盒的8比特输入数据(x0,x1,x2,x3,x4,x5,x6,x7),依次遍历{0,1,…,255}所有整数值对应的n比特二元向量{(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,1),…,(1,1,1,1,1,1,1,1)},对任意整数值i对应的8比特二元向量(x0,x1,x2,x3,x4,x5,x6,x7),依次计算步骤QCSH21至QCSH25:
QCSH21:对输入的8比特二元向量(x0,x1,x2,x3,x4,x5,x6,x7)计算第1轮8支广义Feistel结构的轮变换,即
t6=x0⊕f1(x2,x3,x4,x5,x6,x7)⊕(CS0&x2)⊕(CS1&x3)⊕(CS2&x4)⊕(CS3&x5)⊕(CS4&x6)⊕(CS5&x7)⊕CS6,t7=x1⊕f2(x2,x3,x4,x5,x6,x7)⊕(CS7&x2)⊕(CS8&x3)⊕(CS9&x4)⊕(CS10&x5)⊕(CS11&x6)⊕(CS12&x7)⊕CS13,t0=x2,t1=x3,t2=x4,t3=x5,t4=x6,t5=x7;
QCSH22:对QCSH21的运算结果8比特二元向量(t0,t1,t2,t3,t4,t5,t6,t7)计算第2轮8支广义Feistel结构的轮变换,即
T0=t0⊕f1(t2,t3,t4,t5,t6,t7)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕(CS3&t5)⊕(CS4&t6)⊕(CS5&t7)⊕CS6,T1=t1⊕f2(t2,t3,t4,t5,t6,t7)⊕(CS7&t2)⊕(CS8&t3)⊕(CS9&t4)⊕(CS10&t5)⊕(CS11&t6)⊕(CS12&t7)⊕CS13,t0=t2,t1=t3,t2=t4,t3=t5,t4=t6,t5=t7,t6=T0,t7=T1;
QCSH23:对QCSH22的运算结果8比特二元向量(t0,t1,t2,t3,t4,t5,t6,t7)计算第2轮8支广义Feistel结构的轮变换,即
T0=t0⊕f1(t2,t3,t4,t5,t6,t7)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕(CS3&t5)⊕(CS4&t6)⊕(CS5&t7)⊕CS6,T1=t1⊕f2(t2,t3,t4,t5,t6,t7)⊕(CS7&t2)⊕(CS8&t3)⊕(CS9&t4)⊕(CS10&t5)⊕(CS11&t6)⊕(CS12&t7)⊕CS13,t0=t2,t1=t3,t2=t4,t3=t5,t4=t6,t5=t7,t6=T0,t7=T1;
QCSH24:对QCSH23的运算结果8比特二元向量(t0,t1,t2,t3,t4,t5,t6,t7)计算第4轮非线性变换,即
T0=t0⊕f1(t2,t3,t4,t5,t6,t7)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕(CS3&t5)⊕(CS4&t6)⊕(CS5&t7)⊕CS6,T1=t1⊕f2(t2,t3,t4,t5,t6,t7)⊕(CS7&t2)⊕(CS8&t3)⊕(CS9&t4)⊕(CS10&t5)⊕(CS11&t6)⊕(CS12&t7)⊕CS13;
QCSH25:对QCSH24的运算结果8比特二元向量(T0,T1,t2,t3,t4,t5,t6,t7)进行比特组合,得到88规格的S盒Sbox在整数i的数值,即:y0=T0,y1=T1,y2=t2,y3=t3,…,yn-2=tn-2,yn-1=tn-1,Sbox(i)=y0||y1||y2||y3||…||yn-1;
其中,步骤QCSH1至QCSH3涉及的f1、f2为F2 6→F2的布尔函数,f1、f2的代数次数大于等于2次且其代数正规型不包含1次项和常数项。f1共包含257种非零布尔函数,f2共包含257种非零布尔函数,本实施例支持14比特可变控制参数,按照步骤QCSH1至QCSH3生成的8比特S盒共有2128种。
实施例3
本实施例在实施例1的基础上:
考虑到资源受限设备的密码算法其硬件实现等效门的资源轻量化要求,本实施例对实施例1中f1、f2做如下限定:f1、f2的代数次数为2次且其代数正规型仅包含2个2次项。利用本实施例1提供的方法产生硬件实现等效门低88的参数化S盒,通过计算机程序搜索,在上述限定条件下,根据本实施例1中的设计方法,可以找到52类新的8比特轻量化S盒,其差分均匀度不大于16、非线性度不低于96。
下面具体给出这52类8比特轻量化S盒中的一类,并使用5比特参数(CS0,CS1,CS2,CS3,CS4)控制,得到32个新的8比特参数化S盒,具体为:
f1(x2,x3,x4,x5,x6,x7)=x2&x3⊕x4&x6,
f2(x2,x3,x4,x5,x6,x7)=x3&x4⊕x5&x7;
由f1、f2和5比特参数(CS0,CS1,CS2,CS3,CS4)控制的8比特参数化实例为:
x2&x3⊕x4&x6⊕(CS0&x2)⊕(CS1&x4)⊕(CS2&x6),
x3&x4⊕x5&x7⊕(CS3&x3)⊕(CS4&x7)。
将S盒的8比特输入数据记为(x0,x1,x2,x3,x4,x5,x6,x7),S盒的8比特输出数据记为(y0,y1,y2,y3,y4,y5,y6,y7),5比特可变控制参数记为(CS0,CS1,CS2,CS3,CS4),8比特中间变量记为(t0,t1,t2,t3,t4,t5,t6,t7),2比特中间变量记为(T0,T1),包括步骤LCSH1至LCSH3:
LCSH1:对选定的S盒规格n=8,选取F2 6àF2的布尔函数f1(x2,x3,x4,x5,x6,x7)=x2&x3⊕x4&x6、f2(x2,x3,x4,x5,x6,x7)=x3&x4⊕x5&x7;
LCSH2:对S盒的8比特输入数据(x0,x1,x2,x3,x4,x5,x6,x7),依次遍历{0,1,…,255}所有整数值对应的n比特二元向量{(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,1),…,(1,1,1,1,1,1,1,1)},对任意整数值i对应的8比特二元向量(x0,x1,x2,x3,x4,x5,x6,x7),依次计算步骤LCSH21至LCSH25:
LCSH21:对输入的8比特二元向量(x0,x1,x2,x3,x4,x5,x6,x7)计算第1轮8支广义Feistel结构的轮变换,即
t6=x0⊕x2&x3⊕x4&x6⊕(CS0&x2)⊕(CS1&x4)⊕(CS2&x6),t7=x1⊕x3&x4⊕x5&x7⊕(CS3&x3)⊕(CS4&x7),t0=x2,t1=x3,t2=x4,t3=x5,t4=x6,t5=x7;
LCSH22:对LCSH21的运算结果8比特二元向量(t0,t1,t2,t3,t4,t5,t6,t7)计算第2轮8支广义Feistel结构的轮变换,即
T0=t0⊕t2&t3⊕t4&t6⊕(CS0&t2)⊕(CS1&t4)⊕(CS2&t6),T1=t1⊕t3&t4⊕t5&t7⊕(CS3&t3)⊕(CS4&t7),t0=t2,t1=t3,t2=t4,t3=t5,t4=t6,t5=t7,t6=T0,t7=T1;
LCSH23:对LCSH22的运算结果8比特二元向量(t0,t1,t2,t3,t4,t5,t6,t7)计算第2轮8支广义Feistel结构的轮变换,即
T0=t0⊕t2&t3⊕t4&t6⊕(CS0&t2)⊕(CS1&t4)⊕(CS2&t6),T1=t1⊕t3&t4⊕t5&t7⊕(CS3&t3)⊕(CS4&t7),t0=t2,t1=t3,t2=t4,t3=t5,t4=t6,t5=t7,t6=T0,t7=T1;
LCSH24:对LCSH23的运算结果8比特二元向量(t0,t1,t2,t3,t4,t5,t6,t7)计算第4轮非线性变换,即
T0=t0⊕t2&t3⊕t4&t6⊕(CS0&t2)⊕(CS1&t4)⊕(CS2&t6),T1=t1⊕t3&t4⊕t5&t7⊕(CS3&t3)⊕(CS4&t7);
LCSH25:对LCSH24的运算结果8比特二元向量(T0,T1,t2,t3,t4,t5,t6,t7)进行比特组合,得到88规格的S盒Sbox在整数i的数值,即:y0=T0,y1=T1,y2=t2,y3=t3,…,yn-2=tn-2,yn-1=tn-1,Sbox(i)=y0||y1||y2||y3||…||yn-1;
更进一步测试分析发现,上述32个新的8比特参数化S盒属于32个不同的CCZ等价类,其差分均匀度不大于16、非线性度不低于96。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (3)
1.一种基于比特与运算的S盒参数化设计方法,其特征在于,包括以下步骤:
CSH1:对选定的S盒规格n,随机选取F2 n-2→F2的布尔函数f1、f2,其中f1、f2的代数次数大于等于2次且其代数正规型不包含1次项和常数项;
CSH2:对S盒的n比特输入数据(x0,x1,x2,…,xn-2,xn-1),依次遍历{0,1,…,2n-1}所有整数值对应的n比特二元向量{(0,0,0,…,0,0),(0,0,0,…,0,1),…,(1,1,1,…,1,1)},对任意整数值i对应的n比特二元向量(x0,x1,x2,…,xn-2,xn-1),先进行多轮n支广义Feistel结构的轮变换,再进行非线性变换,并对运算结果进行比特组合,得到n×n规格的S盒在整数i的数值,即:Sbox(i)=y0||y1||y2||y3||…||yn-1;
CSH3:输出n×n规格的S盒,对任意i取{0,1,…,2n-1}整数值对应的n比特二元向量,Sbox(i)=y0||y1||y2||y3||…||yn-1;
所述多轮n支广义Feistel结构的轮变换包括步骤:
CSH21:对输入的n比特二元向量(x0,x1,x2,…,xn-2,xn-1)计算第1轮n支广义Feistel结构的轮变换,即:
tn-2=x0⊕f1(x2,x3,…,xn-2,xn-1)⊕(CS0&x2)⊕(CS1&x3)⊕(CS2&x4)⊕…⊕(CSn-3&xn-1)⊕CSn-2;
tn-1=x1⊕f2(x2,x3,…,xn-2,xn-1)⊕(CSn-1&x2)⊕(CSn&x3)⊕(CSn+1&x4)⊕…⊕(CS2n-4&xn-1)⊕CS2n-3;
t0=x2,t1=x3,t2=x4,…,tn-4=xn-2,tn-3=xn-1;
其中,t0,t1,t2,…,tn-2,tn-1为n比特中间变量,CS0,CS1,CS2,…,CSn-3,CSn-2,CSn-1,CSn,CSn+1,…,CS2n-4,CS2n-3为2n-2比特可变控制参数,逻辑运算符号“⊕”表示比特异或运算,逻辑运算符号“&”表示比特与运算;
CSH22:对步骤CSH21的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)计算第2轮n支广义Feistel结构的轮变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3;
t0=t2,t1=t3,t2=t4,…,tn-4=tn-2,tn-3=tn-1,tn-2=T0,tn-1=T1;
其中,T0,T1为2比特中间变量;
CSH23:对步骤CSH22的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)计算第3轮n支广义Feistel结构的轮变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3;
t0=t2,t1=t3,t2=t4,…,tn-4=tn-2,tn-3=tn-1,tn-2=T0,tn-1=T1;
所述非线性变换包括步骤CSH24:
对步骤CSH23的运算结果n比特二元向量(t0,t1,t2,…,tn-2,tn-1)进行非线性变换,即:
T0=t0⊕f1(t2,t3,…,tn-2,tn-1)⊕(CS0&t2)⊕(CS1&t3)⊕(CS2&t4)⊕…⊕(CSn-3&tn-1)⊕CSn-2;
T1=t1⊕f2(t2,t3,…,tn-2,tn-1)⊕(CSn-1&t2)⊕(CSn&t3)⊕(CSn+1&t4)⊕…⊕(CS2n-4&tn-1)⊕CS2n-3;
所述对运算结果进行比特组合,得到n×n规格的S盒在整数i的数值包括步骤CSH25:
对CSH24的运算结果n比特二元向量(T0,T1,t2,…,tn-2,tn-1)进行比特组合,得到n×n规格的S盒在整数i的数值,即:y0=T0,y1=T1,y2=t2,y3=t3,…,yn-2=tn-2,yn-1=tn-1,Sbox(i)=y0||y1||y2||y3||…||yn-1。
2.根据权利要求1所述的一种基于比特与运算的S盒参数化设计方法,其特征在于,f1、f2均包括2U种非零布尔函数,其中U=2n-2-n+1。
3.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1或2所述的一种基于比特与运算的S盒参数化设计方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993508.1A CN112511293B (zh) | 2020-09-21 | 2020-09-21 | 基于比特与运算的s盒参数化设计方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993508.1A CN112511293B (zh) | 2020-09-21 | 2020-09-21 | 基于比特与运算的s盒参数化设计方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511293A CN112511293A (zh) | 2021-03-16 |
CN112511293B true CN112511293B (zh) | 2022-03-18 |
Family
ID=74953579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010993508.1A Active CN112511293B (zh) | 2020-09-21 | 2020-09-21 | 基于比特与运算的s盒参数化设计方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511293B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826728B (zh) * | 2022-04-21 | 2024-03-15 | 北京中宇万通科技股份有限公司 | 设备认证方法、物联网终端设备、电子设备以及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999008411A2 (en) * | 1997-08-08 | 1999-02-18 | Jonathan Stiebel | New operation for key insertion with folding |
CN1558587A (zh) * | 2004-01-20 | 2004-12-29 | 海信集团有限公司 | 可重构密码协处理器的可重构s盒模块的设计方法 |
EP2058781A1 (en) * | 2006-09-01 | 2009-05-13 | Sony Corporation | Encryption device, encryption method, and computer program |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
CN101848081A (zh) * | 2010-06-11 | 2010-09-29 | 中国科学院软件研究所 | 一种s盒构造方法及s盒 |
CN101938352A (zh) * | 2010-09-23 | 2011-01-05 | 北京航空航天大学 | 一种分组密码软件加密方法 |
CN105681026A (zh) * | 2016-03-10 | 2016-06-15 | 中国科学院计算技术研究所 | 适用于轻量级加密算法的动态s盒构造方法及系统 |
CN109921899A (zh) * | 2019-04-18 | 2019-06-21 | 衡阳师范学院 | 一种完全雪崩4×4的s盒实现方法 |
CN110266470A (zh) * | 2019-06-24 | 2019-09-20 | 清华大学 | 新型分组密码算法轮函数的构造方式 |
CN110572255A (zh) * | 2019-09-26 | 2019-12-13 | 衡阳师范学院 | 轻量级分组密码算法Shadow实现方法、装置及计算机可读介质 |
CN111339577A (zh) * | 2020-02-12 | 2020-06-26 | 南京师范大学 | 一种具有优良dpa抗性s盒的构造方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4622807B2 (ja) * | 2005-03-25 | 2011-02-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
-
2020
- 2020-09-21 CN CN202010993508.1A patent/CN112511293B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999008411A2 (en) * | 1997-08-08 | 1999-02-18 | Jonathan Stiebel | New operation for key insertion with folding |
CN1558587A (zh) * | 2004-01-20 | 2004-12-29 | 海信集团有限公司 | 可重构密码协处理器的可重构s盒模块的设计方法 |
EP2058781A1 (en) * | 2006-09-01 | 2009-05-13 | Sony Corporation | Encryption device, encryption method, and computer program |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
CN101848081A (zh) * | 2010-06-11 | 2010-09-29 | 中国科学院软件研究所 | 一种s盒构造方法及s盒 |
CN101938352A (zh) * | 2010-09-23 | 2011-01-05 | 北京航空航天大学 | 一种分组密码软件加密方法 |
CN105681026A (zh) * | 2016-03-10 | 2016-06-15 | 中国科学院计算技术研究所 | 适用于轻量级加密算法的动态s盒构造方法及系统 |
CN109921899A (zh) * | 2019-04-18 | 2019-06-21 | 衡阳师范学院 | 一种完全雪崩4×4的s盒实现方法 |
CN110266470A (zh) * | 2019-06-24 | 2019-09-20 | 清华大学 | 新型分组密码算法轮函数的构造方式 |
CN110572255A (zh) * | 2019-09-26 | 2019-12-13 | 衡阳师范学院 | 轻量级分组密码算法Shadow实现方法、装置及计算机可读介质 |
CN111339577A (zh) * | 2020-02-12 | 2020-06-26 | 南京师范大学 | 一种具有优良dpa抗性s盒的构造方法 |
Non-Patent Citations (3)
Title |
---|
Design and analysis of dynamic S-box based on Feistel;Zhou-quan Du 等;《 2015 IEEE Advanced Information Technology, Electronic and Automation Control Conference (IAEAC)》;20160310;全文 * |
Piccolo算法的差分故障分析;赵光耀 等;《计算机学报》;20121119;第35卷(第9期);全文 * |
轻量S盒密码性质研究;贾平 等;《密码学报》;20151215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112511293A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Biham | New types of cryptanalytic attacks using related keys | |
CN112636899B (zh) | 一种轻量化s盒设计方法 | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
Moldovyan et al. | A cipher based on data-dependent permutations | |
CN109921899B (zh) | 一种完全雪崩4×4的s盒实现方法 | |
KR19990002840A (ko) | 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘 | |
CN109768854A (zh) | 一种轻量级分组密码算法Wheel的实现方法 | |
CN109450615A (zh) | 一种高效的opc ua客户端与服务器端数据传输加密方法 | |
CN112511293B (zh) | 基于比特与运算的s盒参数化设计方法及存储介质 | |
CN108270545A (zh) | 一种基于移动互联网的改进的des数据加密算法 | |
Wei et al. | Software implementation and comparison of ZUC-256, SNOW-V, and AES-256 on RISC-V platform | |
CN115811398A (zh) | 基于动态s盒的分组密码算法、装置、系统及存储介质 | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
CN112737767B (zh) | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 | |
EP1016240A1 (en) | Improved block cipher method | |
US7103180B1 (en) | Method of implementing the data encryption standard with reduced computation | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
CN115348018B (zh) | 一种数据处理方法、装置及存储介质 | |
Srisakthi et al. | Towards the design of a stronger AES: AES with key dependent shift rows (KDSR) | |
CN107437990A (zh) | 加密方法、解密方法、加密装置和解密装置 | |
Abubaker et al. | DAFA-A Lightweight DES Augmented Finite Automaton Cryptosystem | |
kadhim Bermani et al. | Efficient cryptography techniques for image encryption in cloud storage | |
CN112311527A (zh) | 一种主密钥变换为多项式表格子密钥查表的加密方法 | |
Ziani et al. | CA-PCS: A Cellular Automata based Partition Ciphering System | |
CN116388963B (zh) | 一种分组加密方法、装置及系统 |
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 |