CN115811398A - 基于动态s盒的分组密码算法、装置、系统及存储介质 - Google Patents
基于动态s盒的分组密码算法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN115811398A CN115811398A CN202211473369.5A CN202211473369A CN115811398A CN 115811398 A CN115811398 A CN 115811398A CN 202211473369 A CN202211473369 A CN 202211473369A CN 115811398 A CN115811398 A CN 115811398A
- Authority
- CN
- China
- Prior art keywords
- box
- dynamic
- key
- encryption
- ciphertext
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于动态S盒的分组密码算法、装置、系统及存储介质,涉及信息安全技术领域,包括:在通信前,获取密钥,根据密钥得到时空混沌序列;根据时空混沌序列生成子密钥和动态S盒;在通信时,获取明文分组;根据子密钥和动态S盒,对明文分组进行异或加密和动态S盒加密,得到密文分组。本发明的有益效果:利用动态S盒实现“一次一算法”,在进行通信前生成随机性更高的动态S盒,而后再进行明文分组及加密计算,有效降低分组密码的计算层数,提高分组密码计算的安全性和计算速率。
Description
技术领域
本发明涉及信息安全技术领域,具体而言,涉及基于动态S盒的分组密码算法、装置、系统及存储介质。
背景技术
为了适应当前信息安全技术多样化、趋异化的应用需求,采用有别于传统密码算法的设计方法已经成为密码学领域一个新的研究方向。分组密码是现代密码学中研究最广泛、分析最成熟、使用最普遍的一种密码体制。
目前,常采用传统密码体制中的一次一密的算法体制进行分组密码的计算,在计算时需要先获取密钥,对需要加密的明文进行分组,而后根据明文分组生成对应的S盒,在后续的加密、解密过程中调取预先生成的S盒进行计算,进行的加、解密计算层数较多,导致计算复杂度较高,软硬件实现困难,且加、解密速度降低,缺乏实际的应用价值。
发明内容
本发明解决的问题是如何提高分组密码计算的计算速率。
为解决上述问题,本发明提供基于动态S盒的分组密码算法、装置、系统及存储介质。
第一方面,本发明提供的一种基于动态S盒的分组密码算法,包括:
在通信前,获取密钥,根据所述密钥得到时空混沌序列;
根据所述时空混沌序列生成子密钥和动态S盒;
在通信时,获取明文分组;
根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组。
可选地,所述根据所述时空混沌序列生成子密钥包括:
将所述时空混沌序列转化为预处理时空混沌序列;
获取所述预处理时空混沌序列中前预设数量的元素作为所述子密钥。
可选地,所述动态S盒包括大小相同的S1盒和S2盒,所述根据所述时空混沌序列生成动态S盒包括:
根据所述预处理时空混沌序列得到密钥流;
对所述S1盒和所述S2盒进行初始化;
根据所述密钥流和所述S1盒得到第一随机矩阵,根据所述密钥流和所述S2盒得到第二随机矩阵;
利用所述第一随机矩阵的值,对所述S1盒的值进行交换处理,得到随机S1盒,利用所述第二随机矩阵的值,对所述S2盒的值进行交换处理,得到随机S2盒。
可选地,所述根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组包括:
对所述子密钥进行分割,得到第一子密钥和第二子密钥;
利用所述第一子密钥对所述明文分组进行逐位加密,得到初始密文分组;
对所述随机S1盒和所述随机S2盒的值进行交换处理,得到分组S盒,并利用所述分组S盒对所述初始密文分组进行加密,得到中间密文分组;
利用所述第二子密钥对所述中间密文分组进行异或加密,得到所述密文分组。
可选地,所述获取密钥,根据所述密钥得到时空混沌序列,包括:
获取时空混沌系统,其中,所述时空混沌系统为单向耦合映像网络;
获取所述密钥,并将所述密钥转化为混沌初始值;
利用所述混沌初始值,迭代所述时空混沌系统初始次数,得到初始时空混沌系统,对所述初始时空混沌系统进行多次后续迭代处理,得到每次所述后续迭代处理后的状态值,作为所述时空混沌序列。
可选地,本发明基于动态S盒的分组密码算法还包括:
根据所述子密钥和所述动态S盒,对所述密文分组进行异或解密和动态S盒解密,得到所述明文分组。
可选地,所述根据所述子密钥和所述动态S盒,对所述密文分组进行异或解密和动态S盒解密,得到所述明文分组,包括:
利用所述第二子密钥对所述密文分组进行异或解密,得到所述中间密文分组;
对所述随机S1盒和所述随机S2盒的值进行交换处理,得到所述分组S盒,并对所述分组S盒进行求逆,利用求逆后的所述分组S盒对所述中间密文分组进行解密,得到所述初始密文分组;
利用所述第一子密钥对所述初始密文分组进行异或解密,得到所述明文分组。
第二方面,本发明还提供了一种基于动态S盒的分组密码计算装置,包括:
获取模块,用于获取密钥和明文分组;
组件生成模块,用于根据所述密钥得到时空混沌序列;
所述组件生成模块还用于根据所述时空混沌序列生成子密钥和动态S盒;
操作模块,用于根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组。
第三方面,本发明又提供了一种基于动态S盒的分组密码计算系统,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如上述所述的基于动态S盒的分组密码算法。
第四方面,本发明又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如上述所述的基于动态S盒的分组密码算法。
本发明的有益效果为:
通过密钥获取时空混沌序列,再根据时空混沌序列生成子密钥和动态S盒,时空混沌序列具有较高的随机性,可为子密钥和动态S盒提供更便利且复杂的生成基础,生成的子密钥和动态S盒随机性和安全系数更高。根据随机性更强的子密钥和动态S盒,对明文分组进行异或加密和动态S盒加密,得到密文,使得分组密码算法安全性增加,密文更难破解。本实施例在通信前(例如通信建立链路、协商密钥和身份认证时)生成子密钥和动态S盒,而后在通信时进行明文分组、调用预先生成的子密钥和动态S盒对明文分组进行加密,使得生成组件不占用正常保密通信时间,有效减少计算层数,降低计算复杂度,提高了加密速度、分组密码计算效率,具有灵活性高、扩展性高等特点,增加了分组密码算法的实用性,使其可以广泛应用。
附图说明
图1为本发明实施例的基于动态S盒的分组密码算法的流程示意图;
图2为本发明实施例的加密过程示意图;
图3为本发明实施例的基于动态S盒的分组密码计算装置的结构示意图;
图4为本发明实施例的第一随机矩阵RM1与S1盒的交换处理示意图;
图5为本发明实施例的基于动态S盒的分组密码计算系统的结构示意图;
图6为本发明实施例解密过程中S*求逆示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
在本申请实施例的描述中,术语“一些实施例”的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
如图1所示,本发明实施例提供了一种基于动态S盒的分组密码算法,包括:
步骤S1、在通信前,获取密钥,根据所述密钥得到时空混沌序列;
步骤S2、根据所述时空混沌序列生成子密钥和动态S盒;
步骤S3、在通信时,获取明文分组;
步骤S4、根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文。
具体地,本发明实施例提供的基于动态S盒的分组密码算法,应用于如图3所示的基于动态S盒的分组密码计算装置,包括组件生成模块和操作模块,组件生成模块用于生成密码加密和解密所需要的组件,如子密钥、S盒等,操作模块用于根据生成的组件对明文或密文进行加解密。
步骤S1中,在通信前,根据获取的密钥,可以密钥作为初始值,对混沌系统进行多次迭代,获取部分迭代次数中的状态值进行保存,作为时空混沌序列,时空混沌序列为生成如子密钥、S盒等组件的基础。其中密钥为固定长度的向量,可以以五种模式输入进行计算,五种模式包括:2个字节(对应密钥长度为2×8×8=128位)、3个字节(192位)、4个字节(256位)、5个字节(320位)和6个字节(384位)。步骤S2中,设定子密钥的长度,即子密钥中的元素数量,通过预定规则对时空混沌序列进行预处理,根据预先设定的子密钥长度,获取预处理后的时空混沌序列中的元素作为子密钥。在密码学中,S盒(Substitution-box)是对称密钥算法执行置换计算的基本结构。S盒用在分组密码算法中,是唯一的非线性结构,其S盒的指标的好坏直接决定了密码算法的好坏。本实施例的动态S盒为多S盒的存储形式,多S盒间进行元素交换处理得到动态S盒,例如对多个初始的S盒进行赋值,而后根据时空混沌序列构造多个随机矩阵,利用多个随机矩阵分别对多个S盒进行元素交换处理,而后交换后的多个S盒再分别进行元素交换处理,最终生成一个动态S盒。步骤S3中,在通信时,获取所要加密的明文,以预设长度进行分组,得到多个明文分组,其中明文分组支持128位和256位两种模式,对应16个字节和32个字节。步骤S4中,调用之前生成的子密钥和动态S盒,对各明文分组进行加密,获得密文。当第一个明文分组加密完成后,调用新的动态S盒,利用子密钥和新的动态S盒对第二个明文分组进行加密,直至所有的明文分组加密完成,将得到的所有密文分组进行组合,得到密文,完成分组密码的加密计算。
本实施例中,通过密钥获取时空混沌序列,再根据时空混沌序列生成子密钥和动态S盒,时空混沌序列具有较高的随机性,可为子密钥和动态S盒提供更便利且复杂的生成基础,生成的子密钥和动态S盒随机性和安全系数更高。根据随机性更强的子密钥和动态S盒,对明文分组进行异或加密和动态S盒加密,得到密文,使得分组密码算法安全性增加,密文更难破解。本实施例在通信前(例如通信建立链路、协商密钥和身份认证时)生成子密钥和动态S盒,而后在通信时进行明文分组、调用预先生成的子密钥和动态S盒对明文分组进行加密,使得生成组件不占用正常保密通信时间,有效减少计算层数,降低计算复杂度,提高了加密速度、分组密码计算效率,具有灵活性高、扩展性高等特点,增加了分组密码算法的实用性,使其可以广泛应用。
进一步地,所述根据所述时空混沌序列生成子密钥包括:
将所述时空混沌序列转化为预处理时空混沌序列;
获取所述预处理时空混沌序列中前预设数量的元素作为所述子密钥。
具体地,预设加密过程使用的所有子密钥的总长度,即子密钥中所包含元素的数量,设为预设数量,将时空混沌序列转化为预处理时空混沌序列;获取预处理时空混沌序列中的前预设数量的元素,生成子密钥。
在本实施例中,通过将时空混沌序列转化为预处理时空混沌序列,进而调取预设数量的元素作为子密钥,有效提高了子密钥的计算效率和随机性,增加子密钥复杂度,在保证计算效率的情况下,增加了分组密码计算的安全性。
进一步地,所述动态S盒包括大小相同的S1盒和S2盒,所述根据所述时空混沌序列生成动态S盒包括:
根据所述预处理时空混沌序列得到密钥流;
对所述S1盒和所述S2盒进行初始化;
根据所述密钥流和所述S1盒得到第一随机矩阵,根据所述密钥流和所述S2盒得到第二随机矩阵;
利用所述第一随机矩阵的值,对所述S1盒的值进行交换处理,得到随机S1盒,利用所述第二随机矩阵的值,对所述S2盒的值进行交换处理,得到随机S2盒。
具体地,通过预先设定的转化规则将预处理时空混沌序列转化为密钥流序列KS。本实施例的动态S盒采用双S盒形式,即S1盒和S2盒,以输入为384位的密钥为例进行如下说明。
双S盒S1盒、S2盒均是16×16的双射表,对S1盒和S2盒进行初始化,
分别取密钥流中的256个元素,构建两个初始随机矩阵,第一初始随机矩阵RV1和第二初始随机矩阵RV2,其中RV1=KS(nks,nks+255),RV2=KS(nks+256,nks+511),nks为子密钥的预设长度。第一初始随机矩阵RV1和第二初始随机矩阵RV2以逐渐扫描的形式转化为与S1盒和S2盒相同大小的16×16的第一随机矩阵RM1和第二随机矩阵RM2。利用第一随机矩阵RM1和第二随机矩阵RM2随机化S1盒和S2盒,即分别对S1盒和S2盒中的元素进行两两交换处理,如图4所示,x0,x1,……,xF和0x分别表示S盒中各元素的行位置和列位置,交换过程表示为:
其中,i,j=0,2,3,…,15,i和j表示矩阵中的位置,(x)MSB表示取x(8bit数)的最高4位,(x)LSB表示取x(8bit数)的最低4位,swapS1(RM1(i,j))表示在S盒S1上,将位置(i,j)和位置(k,l)的两个数进行交换。
按顺序进行256次swapS1(RM1(i,j))操作,每一次交换后S1盒将自动更新,最终获得随机化的S1盒。同理,通过swapS2(RM2(i,j))可获得随机化的S2盒。
在本实施例中,动态S盒采用双S盒形式,有效增加S盒加密的复杂性,增加安全系数,同时设置随机的矩阵对S盒进行交换处理,以获得随机性的双S盒,有效增加了S盒构建的随机性,降低分组密码算法被破解的概率,提高安全性。
进一步地,所述根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组包括:
对所述子密钥进行分割,得到第一子密钥和第二子密钥;
利用所述第一子密钥对所述明文分组进行逐位加密,得到初始密文分组;
对所述随机S1盒和所述随机S2盒的值进行交换处理,得到分组S盒,并利用所述分组S盒对所述初始密文分组进行加密,得到中间密文分组;
利用所述第二子密钥对所述中间密文分组进行异或加密,得到所述密文分组。
具体地,本实施例的加密过程如图2所示,包括第一层第一子密钥加密、第二层S盒加密和第三层第二子密钥加密。在进行加密之前,获取需要加密的明文,按照预先设定的分组长度进行分割,获得长度相同的多个明文分组,其中,分组长度为子密钥长度的二分之一,明文分组支持128位和256位两种模式,对应16个字节和32个字节,本实施例以128位明文分组加密为例进行说明。将子密钥SK等分为两个子密钥,第一子密钥SK0和第二子密钥SK1。利用第一子密钥SK0,对明文分组M进行第一层加密,16个字节的明文与16字节的密钥SK0进行逐位加密,得到初始密文分组C0,其过程表示为:C0=M⊕SK0。利用上述生成的动态S盒(S1盒、S2盒)生成分组S盒S*,其过程为:将分组S盒的值更新为S1盒的值进行保存,将S1盒的值拷贝为S2盒的值进行保存,利用更新后的分组S盒S*对S2盒进行交换处理,
表示为swapS2(S*(i,j)),
从而更新S2盒并保存,将更新后的S2盒的值拷贝至分组S盒S*,对分组S盒S*进行二次更新,生成最终分组S盒S*。利用分组S盒S*对初始密文分组C0进行第二层加密,得到中间密文分组C1。利用第二子密钥SK1对中间密文分组C1进行第三层异或加密,得到最终的密文分组C,其过程表示为:C=C1⊕SK1。
在本实施例中,利用两层子密钥加密、一层动态S盒加密的三层加密过程对明文分组进行加密,利用动态双S盒对分组S盒进行动态更新,有效避免病毒对分组密码算法进行破解,增加算法安全性。
进一步地,所述获取密钥,根据所述密钥得到时空混沌序列,包括:
获取时空混沌系统,其中,所述时空混沌系统为单向耦合映像网络;
获取所述密钥,并将所述密钥转化为混沌初始值;
利用所述混沌初始值,迭代所述时空混沌系统初始次数,得到初始时空混沌系统,对所述初始时空混沌系统进行多次后续迭代处理,得到每次所述后续迭代处理后的状态值,作为所述时空混沌序列。
具体地,本实施例采用动力学行为更加复杂的混沌系统,其具有更高的随机性,可有效提高密钥流和动态S盒生成的随机性。时空混沌系统为单向耦合映像网络(One-wayCoupled map Lattice,OCML),其定义为:
xn+1(i)=(1-ε)f(xn(i))+εf(xn(i+1)),
其中n=0,1,2,…为离散时间坐标,i=1,2,3,…,L为离散空间坐标,xn(i)表示第i个格点在时刻n的状态值,L表示格子的数目,ε为耦合强度。
边界条件是xn(i+L)=xn(i),子系统f采用Logistic映射,即f(xn(i))=4xn(i)(1-xn(i))。
获取密钥K,密钥K是一个长度为8向量,即(K(0),K(1),K(2),…,K(7))。密钥K的输入有五种模式可选择:定义密钥K(i),i=0,1,2,…,7可为2个字节(对应密钥K长度为2×8×8=128位)、3个字节(192位)、4个字节(256位)、5个字节(320位)和6个字节(384位),下述实施例以6个字节(384位)的密钥为例进行说明。预设混沌迭代初始次数n0和迭代后续次数n。首先将密钥K按照转化规则转为混沌初始值x0(x0(0),x0(1),x0(2),…,x0(7)),其中初始值为双精度浮点数,转化规则为:
按照预设参数(ε=0.2,L=8),利用混沌初始值迭代时空混沌系统初始次数n0,获得初始时空混沌系统,迭代初始时空混沌系统后续次数n,即对初始时空混沌序列进行多次的后续迭代处理,保存迭代初始时空混沌系统最终次数n时,每次得到的状态值,并保存,作为时空混沌序列,其大小为n×8。
本实施例中,通过将密钥转化为初始值,而后利用初始值迭代时空混沌系统预设次数,并保留部分迭代的状态值作为时空混沌序列,提高了时空混沌序列的随机性。
进一步地,所述基于动态S盒的分组密码算法还包括:
根据所述子密钥和所述动态S盒,对所述密文分组进行异或解密和动态S盒解密,得到所述明文分组。
进一步地,所述根据所述子密钥和所述动态S盒,对所述密文分组进行异或解密和动态S盒解密,得到所述明文分组,包括:
利用所述第二子密钥对所述密文分组进行异或解密,得到所述中间密文分组;
对所述随机S1盒和所述随机S2盒的值进行交换处理,得到所述分组S盒,并对所述分组S盒进行求逆,利用求逆后的所述分组S盒对所述中间密文分组进行解密,得到所述初始密文分组;
利用所述第一子密钥对所述初始密文分组进行异或解密,得到所述明文分组。
具体地,分组密码的解密过程为加密过程的逆运算,其中,在分组S盒的逆交换处理时,将分组S盒S*的值作为行和列索引查找,而分组S盒S*的行和列索引作为逆S盒S*(-1)的值。如图6所示,X0,X1,……,XF和0x分别表示S盒中各元素的行位置和列位置,在S*中,0→255,那么在S*(-1)中,一定有255→0。
进一步地,对上述基于动态S盒的分组密码算法进行性能分析:
当分组长度为16字节时,本实施例基于动态S盒的分组密码算法与AES算法时间复杂度测试比较如表1所示:
表1分组长度为16字节的时间复杂度测试比较表
当分组长度为32字节时,本实施例基于动态S盒的分组密码算法与AES算法时间复杂度测试比较如表2所示:
表2分组长度为32字节的时间复杂度测试比较表单位:us
上表中,本实施例算法与AES算法在同一平台进行了测试比较,可以看出:在16字节的明文分组情况下,AES加密1MB文件,不计磁盘读取时间,加密耗时24976us,解密耗时54001us。本实施例算法加密1MB文件,不计磁盘读取时间,加密耗时16533us,解密耗时11557us。本实施例算法的加密时间是AES加密时间的0.6622倍,本实施例算法的解密时间是AES解密时间的0.2140倍。均取加解密的最大时间作为算法的运算时间,即AES是54001us,本实施例算法是16533us,即本实施例算法比AES算法快3.2663倍。在16字节的明文分组情况下,AES加密2048MB文件,不计磁盘读取时间,加密耗时54392605us,解密耗时104740261us。本实施例算法加密2048MB文件,不计磁盘读取时间,加密耗时34157202us,解密耗时44644920us。本实施例算法的加密时间是AES加密时间的0.6280倍,本实施例算法的解密时间是AES解密时间的0.4262倍。均取加解密的最大时间作为算法的运算时间,即AES是104740261us,本实施例算法是44644920us,即本实施例算法比AES算法快2.3461倍。由此可见,本实施例算法在16字节的明文分组情况下比AES算法快2-3倍左右。
在32字节的明文分组情况下,AES加密1MB文件,不计磁盘读取时间,加密耗时17092us,解密耗时34729us。本实施例算法加密1MB文件,不计磁盘读取时间,加密耗时8927us,解密耗时11557us。本实施例算法的加密时间是AES加密时间的0.5223倍,本实施例算法的解密时间是AES解密时间的0.3328倍。均取加解密的最大时间作为算法的运算时间,即AES是34729us,本实施例算法是11557us,即本实施例算法比AES算法快3.005倍。在32字节的明文分组情况下,AES加密2048MB文件,不计磁盘读取时间,加密耗时35517482us,解密耗时74142067us。本实施例算法加密2048MB文件,不计磁盘读取时间,加密耗时18392159us,解密耗时23965622us。本实施例算法的加密时间是AES加密时间的0.5178倍,本实施例算法的解密时间是AES解密时间的0.3232倍。均取加解密的最大时间作为算法的运算时间,即AES是74142067us,本实施例算法是23965622us,即本实施例算法比AES算法快3.0937倍。由此可见,本实施例算法在32字节的明文分组情况下比AES算法快3倍左右。
因此,本实施例算法综合比AES快2-3倍,且本实施例算法加、解密时间基本相等,而AES的解密时间比加密时间长2.2倍左右。而本实施例算法的解密时间比加密时间长1.3倍左右,本实施例算法在分组长度大了以后相比AES的速度倍数有增加趋势。
上述比较的是加、解密通信时的加、解密速度,在强力攻击下本实施例算法还应包括第一模块的时间,即表中准备耗时,由于我们是在带浮点数加速器的笔记本电脑上运行的,因此准备耗时很小,只有不到100us。显然强力攻击下,本实施例算法密钥分组长度与AES一样,需要同样2128或2256次运算,但由于S盒是动态变化的,精确算法只有在密钥知道时才能获得,本实施例算法可轻易将密钥长度扩展到384位,这是AES的256位所不具备的,因此,本实施例算法抗其他已知攻击的理论强度高于AES。为了体现此类方案设计的灵活性,设计者可在第一模块的设计上使用超复杂混沌系统,使得第一模块的耗时和算法复杂度增加,而不会影响到加、解密通信时的速度。
如图3所示,本发明实施例还提供了一种基于动态S盒的分组密码计算装置,包括:
获取模块,用于获取密钥和明文分组;
组件生成模块,用于根据所述密钥得到时空混沌序列;
所述组件生成模块还用于根据所述时空混沌序列生成子密钥和动态S盒;
操作模块,用于根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组。
本发明所述的基于动态S盒的分组密码计算装置通过设置组件生成模块和操作模块进行分组密码的计算,可使在算法运行前就生成相关计算组件,例如子密钥和动态S盒,大大减少了分组密码计算的时间,增加计算速率。
如图5所示,本发明实施例提供了一种基于动态S盒的分组密码计算系统,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如上述所述的基于动态S盒的分组密码算法。
本发明所述的基于动态S盒的分组密码计算系统与所述基于动态S盒的分组密码算法相对于现有技术的优势相同,在此不再赘述。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如上述所述的基于动态S盒的分组密码算法。
本发明实施例的计算机可读存储介质与上述所述的基于动态S盒的分组密码算法的有益效果相似,在此不再赘述。
虽然本公开披露如上,但本公开的保护范围并非仅限于此。本领域技术人员在不脱离本公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。
Claims (10)
1.一种基于动态S盒的分组密码算法,其特征在于,包括:
在通信前,获取密钥,根据所述密钥得到时空混沌序列;
根据所述时空混沌序列生成子密钥和动态S盒;
在通信时,获取明文分组;
根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组。
2.根据权利要求1所述的基于动态S盒的分组密码算法,其特征在于,所述根据所述时空混沌序列生成子密钥包括:
将所述时空混沌序列转化为预处理时空混沌序列;
获取所述预处理时空混沌序列中前预设数量的元素作为所述子密钥。
3.根据权利要求2所述的基于动态S盒的分组密码算法,其特征在于,所述动态S盒包括大小相同的S1盒和S2盒,所述根据所述时空混沌序列生成动态S盒包括:
根据所述预处理时空混沌序列得到密钥流;
对所述S1盒和所述S2盒进行初始化;
根据所述密钥流和所述S1盒得到第一随机矩阵,根据所述密钥流和所述S2盒得到第二随机矩阵;
利用所述第一随机矩阵的值,对所述S1盒的值进行交换处理,得到随机S1盒,利用所述第二随机矩阵的值,对所述S2盒的值进行交换处理,得到随机S2盒。
4.根据权利要求3所述的基于动态S盒的分组密码算法,其特征在于,所述根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组包括:
对所述子密钥进行分割,得到第一子密钥和第二子密钥;
利用所述第一子密钥对所述明文分组进行逐位加密,得到初始密文分组;
对所述随机S1盒和所述随机S2盒的值进行交换处理,得到分组S盒,并利用所述分组S盒对所述初始密文分组进行加密,得到中间密文分组;
利用所述第二子密钥对所述中间密文分组进行异或加密,得到所述密文分组。
5.根据权利要求1所述的基于动态S盒的分组密码算法,其特征在于,所述获取密钥,根据所述密钥得到时空混沌序列,包括:
获取时空混沌系统,其中,所述时空混沌系统为单向耦合映像网络;
获取所述密钥,并将所述密钥转化为混沌初始值;
利用所述混沌初始值,迭代所述时空混沌系统初始次数,得到初始时空混沌系统,对所述初始时空混沌系统进行多次后续迭代处理,得到每次所述后续迭代处理后的状态值,作为所述时空混沌序列。
6.根据权利要求4所述的基于动态S盒的分组密码算法,其特征在于,还包括:
根据所述子密钥和所述动态S盒,对所述密文分组进行异或解密和动态S盒解密,得到所述明文分组。
7.根据权利要求6所述的基于动态S盒的分组密码算法,其特征在于,所述根据所述子密钥和所述动态S盒,对所述密文分组进行异或解密和动态S盒解密,得到所述明文分组,包括:
利用所述第二子密钥对所述密文分组进行异或解密,得到所述中间密文分组;
对所述随机S1盒和所述随机S2盒的值进行交换处理,得到所述分组S盒,并对所述分组S盒进行求逆,利用求逆后的所述分组S盒对所述中间密文分组进行解密,得到所述初始密文分组;
利用所述第一子密钥对所述初始密文分组进行异或解密,得到所述明文分组。
8.一种基于动态S盒的分组密码计算装置,其特征在于,包括:
获取模块,用于获取密钥和明文分组;
组件生成模块,用于根据所述密钥得到时空混沌序列;
所述组件生成模块还用于根据所述时空混沌序列生成子密钥和动态S盒;
操作模块,用于根据所述子密钥和所述动态S盒,对所述明文分组进行异或加密和动态S盒加密,得到密文分组。
9.一种基于动态S盒的分组密码计算系统,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如权利要求1至7任一项所述的基于动态S盒的分组密码算法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如权利要求1至7任一项所述的基于动态S盒的分组密码算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211473369.5A CN115811398A (zh) | 2022-11-21 | 2022-11-21 | 基于动态s盒的分组密码算法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211473369.5A CN115811398A (zh) | 2022-11-21 | 2022-11-21 | 基于动态s盒的分组密码算法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115811398A true CN115811398A (zh) | 2023-03-17 |
Family
ID=85483890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211473369.5A Pending CN115811398A (zh) | 2022-11-21 | 2022-11-21 | 基于动态s盒的分组密码算法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115811398A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117411618A (zh) * | 2023-12-07 | 2024-01-16 | 杭州城市大脑有限公司 | 应用于国际赛事的密钥生成方法、装置及加密方法 |
-
2022
- 2022-11-21 CN CN202211473369.5A patent/CN115811398A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117411618A (zh) * | 2023-12-07 | 2024-01-16 | 杭州城市大脑有限公司 | 应用于国际赛事的密钥生成方法、装置及加密方法 |
CN117411618B (zh) * | 2023-12-07 | 2024-02-20 | 杭州城市大脑有限公司 | 应用于国际赛事的密钥生成方法、装置及加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104488218B (zh) | 加密装置、解密装置、加密方法、解密方法 | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN110880967B (zh) | 采用分组对称密钥算法对多消息并行加解密方法 | |
US8605897B2 (en) | Symmetric-key encryption method and cryptographic system employing the method | |
US11606189B2 (en) | Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm | |
CN109861809B (zh) | 一种实用化的分组随机加解密方法 | |
WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
Li et al. | Research and Realization based on hybrid encryption algorithm of improved AES and ECC | |
Kuang et al. | Quantum safe lightweight cryptography with quantum permutation pad | |
CN111245598B (zh) | 一种轻量级aerogel分组密码的实现方法 | |
CN108270545A (zh) | 一种基于移动互联网的改进的des数据加密算法 | |
Bhavani et al. | Modified AES using dynamic S-box and DNA cryptography | |
CN109714154B (zh) | 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法 | |
CN115811398A (zh) | 基于动态s盒的分组密码算法、装置、系统及存储介质 | |
Lu | Cryptanalysis of block ciphers | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 | |
CN116980194A (zh) | 一种基于云边端协同的安全高效数据传输方法及其系统 | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
CN115484019B (zh) | 一种弱相关性的aes密钥扩展改进算法 | |
CN107493164B (zh) | 一种基于混沌系统的des加密方法和系统 | |
Greene et al. | ARADI and LLAMA: Low-Latency Cryptography for Memory Encryption | |
WO2022172041A1 (en) | Asymmetric cryptographic schemes | |
Mihalkovich et al. | MPF based symmetric cipher performance comparison to AES and TDES | |
CN110532763B (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 |