CN115314187A - 一种轻量级分组密码算法RainSP的实现方法、装置及电子设备 - Google Patents
一种轻量级分组密码算法RainSP的实现方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115314187A CN115314187A CN202211223800.0A CN202211223800A CN115314187A CN 115314187 A CN115314187 A CN 115314187A CN 202211223800 A CN202211223800 A CN 202211223800A CN 115314187 A CN115314187 A CN 115314187A
- Authority
- CN
- China
- Prior art keywords
- bit
- round
- key
- plaintext
- algorithm
- 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
- 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
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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
- 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
-
- 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
本发明公开了一种轻量级分组密码算法RainSP的实现方法、装置及电子设备,用于数据安全,本发明涉及计算机加密技术领域;本方法包括如下步骤:S1:获取需要加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R;S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;S3:按照高位在左,低位在右的顺序将所述明文P分成n位左半支明文信息和n位右半支明文信息;S4:利用所述n位左半支和右半支明文信息进行R轮迭代轮运算得到输出密文;本发明更适合轻量级实现,安全性强度高,具有足够的安全冗余。
Description
技术领域
一种轻量级分组密码算法RainSP的实现方法、装置及电子设备,用于数据安全,本发明涉及计算机加密技术领域。
背景技术
近年来,新型基础设施诸如6G、移动互联网、大数据和云计算等发展迅猛,在微型嵌入式设备等资源受限环境下,AES等算法并非最佳选择,如部分使用环境对算法的芯片大小、运行速度、能量消耗、时延等都有严格的要求;如何安全高效的在资源有限的智能卡等物联网设备上实现加密算法是目前亟待解决的问题。在这些应用需求推动下轻量级分组密码应运而生,随着美国NIST在全球范围内开展轻量级密码算法设计竞赛,轻量级分组密码已经成为对称密码领域的研究热点,国内外学者进行了大量研究并取得了快速发展。国际上先后推出了一系列轻量级分组密码,并发布了ISO国际标准,包括PRESENT(欧洲学者设计)、CLEFIA(日本索尼公司设计)和LEA(韩国设计),美国也发布了自己的轻量级分组密码SIMON和SPECK。
特殊使用环境决定了轻量级分组密码具有以下新特点:算法分组/密钥长度相对较短,S盒规模较小,P置换基于比特换位/异或,密钥扩展算法简单等。从结构上看,轻量级分组算法大都继承了传统分组密码算法的结构如Feistel结构和SPN结构,但在具体细节上又有所不同,如算法采用小规模S盒、简单的P置换如比特置换和字节置换、简洁的密钥扩展算法等。一方面,新的设计理念促进了分组密码的设计和发展;另一方面,尚未成熟的设计理念的引入导致了所设计出的新算法存在一些新型安全威胁,促进了分组密码分析理论的发展。
然而,如何寻找受限环境下分组密码算法在性能与安全性的平衡是一个值得深入研究的问题,一方面这涉及到轻量化的设计和实现,另一方面这也需要考虑到轻量化组件潜在的安全性问题,设计者需要对轻量化的设计进行细致的安全性评估。因此,近年来轻量级分组密码算法的设计和分析成为了对称密码领域的一个研究热点。而近年来提出的部分轻量级分组密码由于采用了过于简单的轮函数或者特殊的密码结构,导致算法在提出不久后就出现安全问题。
发明内容
本发明的目的在于:为了解决受限环境下分组密码算法在性能和安全性的平衡的技术问题,本发明提供一种轻量级分组密码算法RainSP的实现方法、装置及电子设备,RainSP算法采用变形 Feistel 结构,轮函数采用ARX模块,仅包含模加操作,循环移位操作和异或操作 (Addition Modulo-Rotation-XOR);得益于精心构造的比特级轮函数,在保证达到较高安全性的同时,算法还具有出色的软件和硬件性能,非常适合轻量级实现;同时,我们对RainSP算法进行了安全性分析,分析结果表明RainSP系列算法各个版本均具有较高的安全冗余。
本发明采用的技术方案如下:一种轻量级分组密码算法RainSP的实现方法,包括如下步骤:
S1:获取需要加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R;
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;
S3:按照高位在左,低位在右的顺序将所述明文P分成n位左半支明文信息和n位右半支明文信息;
S4:利用所述n位左半支明文信息和n位右半支明文信息进行R轮迭代轮运算得到输出密文。
步骤S2所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成,其中,每轮轮常数设为i-1。
步骤S2所述密钥扩展算法设计复用轮函数操作,为了从给定的种子密钥K生成轮
密钥ki,首先将种子密钥K分割成四个字并作为反馈移位寄存器的初始状态(t2,t1,t0,k0)加
载,其中 ti,,为二元域上的n维向量,K的最低有效n比特加载到k0中,最高
有效n比特被放入t0中,即:
K=t2‖t1‖t0‖k0
为了更新寄存器并生成轮密钥,直接重用轮函数,密钥序列更新操作可以表示为:
其中,第i轮轮常数ci=i-1,1≤i≤R,Sa(ki)表示ki循环左移α位,Sb(ki)表示ki循环左移b位,Sc(ki)表示ki循环左移c位。
步骤S4所述轮运算由轮密钥加操作(AddRoundKey)、模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成,其中,每轮轮运算均是对2n位加密信息进行处理,每下一轮运算对应的2n位加密信息由上一轮运算的输出信息组成。
所述轮函数中仅包含循环移位、模加和异或操作,轮函数结构适合RainSP-32/64、RainSP-48/96和RainSP-64/128三个版本,假设第i个轮函数的输入为(Li,Ri),使用的子密钥为ki,其中0≤i≤R-1,则输出为:
其中循环移位参数α=7,b=6,c=2。
进一步地,一种轻量级分组密码算法RainSP的实现方法,还包括解密,解密步骤如下:
S1:获取待解密的2n位密文C,以及获得该密文所采用的4n位种子密钥K和解密轮数R;
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成,其中,每轮轮常数设为i-1;
S3:按照高位在左,低位在右的顺序将所述2n位密文C分成n位左半支密文信息和n位右半支密文信息;
S4:利用所述n位左半支密文信息和n位右半支密文信息进行R轮解密迭代轮运算输出明文信息。
一种轻量级分组密码算法RainSP的实现装置,包括:
初始化单元:用于获取需要加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R;
运算单元:用于按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;
分解单元:用于按照高位在左,低位在右的顺序将所述明文P分成n位左半支明文信息和n位右半支明文信息;
密文输出单元:用于利用所述n位左半支和右半支明文信息进行R轮迭代轮运算得到输出密文。
进一步地,一种轻量级分组密码算法RainSP的实现装置,还包括解密输出明文单元:用于获取待解密的2n位密文C,以及获得该密文所采用的4n位种子密钥K和解密轮数R;按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成,其中,每轮轮常数设为i-1;再按照高位在左,低位在右的顺序将所述4n位密文C分成n位左半支密文信息和n位右半支密文信息;利用所述n位左半支密文信息和n位右半支密文信息进行R轮解密迭代轮运算输出明文信息。
一种电子设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述方法的步骤。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明相比于国际上传统的分组密码算法,更适合轻量级实现、安全性强度高的分组密码算法,因为在设计过程中,RainSP算法采用了变形的Feistel结构,在关键的轮函数上,采用了比特级的ARX设计 (模加操作、异或操作和循环移位操作),与传统利用S盒作为非线性组件的算法相比,其硬件面积小且侧信道防护代价小,密钥生成算法类似SPECK算法直接复用轮函数操作,达到了较好的扩散性,另一方面,针对现有常见有效攻击方法的安全性分析也表明RainSP系列分组密码算法具有足够的安全冗余。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本发明加密过程示意图;
图2是本发明解密过程示意图;
图3是本发明RainSP算法流程图;
图4是本发明RainSP算法的轮函数;
图5是本发明RainSP算法的密钥扩展算法。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和出示的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明设计一款适合轻量级实现,同时具有较好软件性能且安全强度高的轻量级分组密码算法,考虑到大多数软件,特别是在微处理器及ARM v7平台上,ARX运算的实现速度远优于其他非线性密码组件,这是将算法设定为ARX结构的设计初衷。大致设计原理为:采用变形Feistel结构,相比传统Feistel结构一轮变换一支情况下,实现更快的混淆扩散速度以保障算法的安全性;采用模加操作代替S盒操作作为算法的非线性组件,加快算法的软件实现速度,并提高防御侧信道攻击的能力;减少轮函数中的操作个数,以模加操作配合循环移位操作的结构尽可能轻量化算法实现。模加操作的第𝑥比特输出与所有的低𝑥比特输入有关,因此其混淆扩散程度并不均匀,输入的低位比特混淆扩散较快,高位比特混淆扩散较慢。但佐以适当的循环移位操作,选择适当的循环移位参数,短轮数下即可实现快速的混淆扩散。模加操作和循环移位操作配合的方式,不仅有利于算法的混淆扩散速度,也可以降低组件个数,提升软件实现速度,降低硬件实现代价。在我们的算法中,我们将所有循环移位参数组合进行了测试,最终选择了适合的循环移位参数。
一种轻量级分组密码算法RainSP的实现方法,包括如下步骤:
S1:获取需要加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R;
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成。其中,每轮轮常数设为i-1;
步骤S2所述密钥扩展算法设计复用轮函数操作,为了从给定的种子密钥K生成轮
密钥ki,首先将种子密钥K分割成四个字并作为反馈移位寄存器的初始状态(t2,t1,t0,k0)加
载,其中 ti, ,为二元域上的n维向量,K的最低有效n比特加载到k0中,最
高有效n比特被放入t0中,即:
K=t2‖t1‖t0‖k0
为了更新寄存器并生成轮密钥,直接重用轮函数,密钥序列更新操作可以表示为:
其中,第i轮轮常数ci=i-1,1≤i≤R,Sa(ki)表示ki循环左移α位,Sb(ki)表示ki循环左移b位,Sc(ki)表示ki循环左移c位。
所述轮函数中仅包含循环移位、模加和异或操作, 轮函数结构适合RainSP-32/64、RainSP-48/96和RainSP-64/128三个版本,假设第i个轮函数的输入为(Li,Ri),使用的子密钥为ki,其中0≤i≤R-1,则输出为:
其中循环移位参数α=7,b=6,c=2。
S3:按照高位在左,低位在右的顺序将所述明文P分成n位左半支明文信息和n位右半支明文信息;
S4:利用所述n位左半支和右半支明文信息进行R轮迭代轮运算得到输出数据,即,密文信息。所述轮运算由轮密钥加操作(AddRoundKey)、模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成。其中,每轮轮运算均是对2n位加密信息进行处理,每下一轮运算对应的2n位加密信息由上一轮运算的输出信息组成。
具体来说,RainSP是一个基于ARX结构的变形Feistel密码算法, RainSP为一族加密算法,记为RainSP-n/k,其中n为分组长度,k为密钥长度,本发明中主要描述三个版本:RainSP-32/64、RainSP-48/96和RainSP-64/128, 每个版本的参数如表1所示。
表1 RainSP算法的三个版本的参数设定
RainSP算法采用ARX结构, 算法流程如图3所示,轮函数中仅包含循环移位、模加和异或操作,结构简单易实现,其每个版本均使用相同的轮函数结构,见图4,假设第i个轮函数的输入为(Li,Ri),使用的子密钥为ki,其中0≤i≤R-1,则输出为:
其中循环移位参数α=7,b=6,c=2。
在设计密钥扩展算法的过程中,为了使RainSP算法具有良好的实现优势,密钥扩
展算法设计复用轮函数操作,如图5所示,为了从给定的种子密钥K生成轮密钥ki,首先将种
子密钥K分割成四个字并作为反馈移位寄存器的初始状态(t2,t1,t0,k0)加载,其中 ti, ,为二元域上的n维向量,K的最低有效n比特加载到k0中,最高有效n比特被放
入t0中,即:
K=t2‖t1‖t0‖k0
为了更新寄存器并生成轮密钥,直接重用轮函数,密钥序列更新操作可以表示为:
其中,第i轮轮常数ci=i-1,1≤i≤R,Sa(ki)表示ki循环左移α位,Sb(ki)表示ki循环左移b位,Sc(ki)表示ki循环左移c位。
进一步地,一种轻量级分组密码算法RainSP的实现方法,还包括解密,解密步骤如下:
S1:获取待解密的2n位密文C,以及获得该密文所采用的4n位种子密钥K和解密轮数R;
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成,其中,每轮轮常数设为i-1;
S3:按照高位在左,低位在右的顺序将所述2n位密文C分成n位左半支密文信息和n位右半支密文信息;
S4:利用所述n位左半支密文信息和n位右半支密文信息进行R轮解密迭代轮运算输出明文信息。
一种轻量级分组密码算法RainSP的实现装置,包括:
初始化单元:用于获取需要加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R;
运算单元:用于按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;
分解单元:用于按照高位在左,低位在右的顺序将所述明文P分成n位左半支明文信息和n位右半支明文信息;
密文输出单元:用于利用所述n位左半支和右半支明文信息进行R轮迭代轮运算得到输出密文。
进一步地,一种轻量级分组密码算法RainSP的实现装置,还包括解密输出明文单元:用于获取待解密的2n位密文C,以及获得该密文所采用的4n位种子密钥K和解密轮数R;按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成,其中,每轮轮常数设为i-1;再按照高位在左,低位在右的顺序将所述4n位密文C分成n位左半支密文信息和n位右半支密文信息;利用所述n位左半支密文信息和n位右半支密文信息进行R轮解密迭代轮运算输出明文信息。
一种电子设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述方法的步骤。
实施例1
本发明实施例提供的一种轻量级分组密码算法RainSP的实现方法是用于对明文进行加密,其中,本发明所述算法的命名为RainSP,本实施例中明文的长度为32位,种子密钥的长度为64位,加密轮数为20轮。实施例示意图如图1所示。
本发明中RainSP算法采用ARX结构,由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成。
本发明实施例提供的一种轻量级分组密码算法的实现方法,包括如下步骤:
S1:获取待加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R。其中,本实施例中,待加密的明文为32位,种子密钥为64位,迭代轮数为20轮。
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成。其中,每轮轮常数设为i-1;
本实施例中,预设分组长度为32位,初始种子密钥长度为64位,将其按照高位在左,低位在右的顺序按16位一组分成4组,得到中间密钥K=(k3,k2,k1,k0)并作为反馈移位寄存器的初始状态(t2,t1,t0,k0)加载。然后依据中间密钥生成外部的轮密钥ki。轮密钥的计算公式如下公式所示。
公式:
式中,第i轮轮常数ci=i-1,1≤i≤R,S7(ki)表示ki循环左移7位,S6(ki)表示ki循环左移6位,S2(ki)表示ki循环左移2位。
S3:按照高位在左,低位在右的顺序将所述32位明文P分成16位左半支明文信息L0和16位右半支明文信息R0;
S4:利用所述16位左半支和右半支明文信息进行20轮迭代轮运算得到输出数据,即,密文信息。所述轮运算由轮密钥加操作(AddRoundKey)、模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成。其中,每轮轮运算均是对32位加密信息进行处理,每下一轮运算对应的32位加密信息由上一轮运算的输出信息组成。
具体过程如下:
Step1
将每一轮待加密数据的右半支Ri(0≤i≤19)进行线性运算:,即Ri循环左移7位异或上Ri循环左移6位再异或Ri循环左移2位。该步骤获得的结果记为tmpRotationi。该实施例采用循环移位参数7,6,2。其中,所有的循环移位参数a,b,c共有16×15×14/3=1120种排列组合方式。该步骤的目的是为了让右半支数据尽可能快的扩散开,因此,在采用自动化分析方法测试了所有的1120种排列组合对算法的安全性影响,结合考虑循环移位参数对算法软硬件性能的影响,采用了7,6,2这组参数;
Step2
将Step1中获得的tmpRotationi与待加密数据的左半支Li(0≤i≤19)进行模加运算,计算结果记为tmpAdditioni。即:
具体来说,从最低比特开始依次进行逐比特加法操作,遵循0+0=0,0+1=1,1+0=1,1+1=0并向左侧的高位进1,最高比特1+1=0并无需再进位规则,以此进行模加运算。该步骤是轮函数中的唯一非线性运算操作,起到混淆和扩散的作用;
Step3
将Step2中获得的tmpAdditioni与第i(0≤i≤19)轮轮密钥ki进行每一比特异或运算,其中第i轮参与轮密钥加运算的轮密钥是寄存器中最低位16-bit,运算关系如以下公式:
Step4
将Step2中获得的tmpXori输出作为第i轮加密的16位输出左半支L(i+1)。同时将Step2中获得的tmpXori和Ri进行逐比特异或操作作为16位输出右半支R(i+1);
重复Step1-Step4操作20次,即可完成对明文P的整个加密过程,并将加密结果作为密文输出。
实施例2
S1:获取待解密的2n位密文C,以及获得该密文所采用的4n位种子密钥K和解密轮数R。其中,本实施例中,待解密的密文为32位,种子密钥为64位,迭代轮数为20轮;
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作(Addition)、循环移位操作(Rotation)与异或操作(XOR)组成。其中,每轮轮常数设为i-1;
本实施例中,预设分组长度为32位,初始种子密钥长度为64位,将其按照高位在左,低位在右的顺序按16位一组分成4组,得到中间密钥并作为反馈移位寄存器的初始状态(t2,t1,t0,k0)加载。然后依据中间密钥生成外部的轮密钥。轮密钥的计算公式如下公式所示:
公式:
式中,第i轮轮常数ci=i-1,1≤i≤R,S7(ki)表示ki循环左移7位,S6(ki)表示ki循环左移6位,S2(ki)表示ki循环左移2位;
S3:按照高位在左,低位在右的顺序将所述32位密文C分成16位左半支密文信息L20和16位右半支密文信息R20;
S4:利用所述16位左半支和右半支密文信息进行20轮解密迭代轮运算得到输出数据,即,明文信息。所述解密轮运算由轮密钥加操作(AddRoundKey)、模减操作(Subtraction)、循环移位操作(Rotation)与异或操作(XOR)组成。其中,每轮轮运算均是对32位解密信息进行处理,每下一轮运算对应的32位解密信息由上一轮运算的输出信息组成。
具体过程如下:
Step1
Step2
将待解密数据的左半支Li(1≤i≤20)与轮密钥k(i-1)进行每一比特异或运算,其中第i轮参与轮密钥加运算的轮密钥是寄存器中最低位16-bit,运算关系如以下公式:
Step3
将Step2中获得的tmpXori与Step1中获得的tmpRotationi进行模减运算,计算结果记为tmpSubtractioni。即:
tmpSubtractioni=tmpXori-tmpRotationi
Step4
将Step3中获得的tmpSubtractioni输出作为第i轮解密的16位输出左半支L(i-1)。同时将Step1中获得的作为16位输出右半支R(i-1)。重复Step1-Step4操作20次,即可完成对密文C的整个解密过程,并将解密结果作为明文输出。
表2 本发明RainSP算法测试向量
分析例
全扩散轮数
算法轮函数部分的全扩散轮数是密码算法扩散性的一个重要指标,在一些密码分析技术的可证明安全界中也起着关键作用。我们主要通过测试轮函数的特征矩阵的本原指数来估计算法达到全扩散的轮数上界。在模加运算中,由于其具有T函数的性质,每一个输出比特都与不超过其比特位置的输入比特相关。注意到较低比特对较高比特的影响随着比特位置之间间隔的增大而减小,对第i(i≥1)位输出比特,我们可以只考虑其与第i和i-1比特的输入有关。在得到轮函数的特征矩阵后,测试它达到全1矩阵所需的最少幂次,这个值即为算法达到全扩散的轮数上界。根据这个方法,我们测试得到全扩散轮数为3轮。
差分分析
差分分析是对分组密码算法最有效的分析方法之一。为了评估RainSP算法抵抗差分分析的能力, 我们基于SMT自动化搜索方法, 对短轮数下的差分特征进行搜索。如表3所示,RainSP-32/64的9轮差分特征概率上界为2-33, 因此RainSP-32/64的有效差分特征 (概率≥2-32)不超过8轮。全轮RainSP算法能够抵抗差分攻击。同时,从对比数据可以看到,RainSP算法抵抗差分攻击的能力优于SPECK算法。
每种版本的结果包含两列:RainSP算法的差分特征汉明重量和SPECK算法的差分特征汉明重量。为了区分最优差分特征,我们用*表示还未达到最优的差分。例如,对于覆盖8轮的RainSP-32/64的最优有效相关密钥差分特征的概率为2-29。
表3、RainSP算法和SPECK的差分特征对比
线性分析
由差分分析和线性分析之间的对偶性质,我们预计差分区分器与线性区分器在(约减轮数的)ARX 型算法中的最优概率是类似的。在对其他的一些ARX 算法的分析中这一观察也得到一定的印证。因此,我们认为RainSP算法能够抵抗基本的线性分析,并省略具体分析细节。
循环移位分析与循环异或分析
循环移位分析和循环异或分析是对 ARX 算法的有效分析方法,主要通过考虑在给定输入对具有一定循环移位关系的情况下,输出对中的统计联系。在RainSP算法中,由于密钥扩展算法中有常数参与运算,且常数不是循环不变量,对循环移位分析造成了有效的抵抗。循环异或分析是对循环移位分析的一个扩展,针对循环移位分析不能处理常数异或,循环异或分析引入了一种新的差分定义,即循环异或差分,并通过分析这种差分在 ARX 算法中的传播规律来构造统计区分器。循环异或分析要求在轮密钥处引入循环异或差分,这就需要分析密钥扩展算法。在我们的设计中,密钥扩展算法中包含异或常数的运算,这里的常数不是循环不变量。因此,我们认为RainSP算法能够抵抗循环移位分析和循环异或分析。
算法性能分析
本测试例给出RainSP加密算法软件实现性能的结果,并把该算法的软件运行性能和SPECK、AES加密算法的性能进行比较。给出的运行数据均在Fedoral 17(内核为3.3.4-5)操作系统下取得,且Fedora操作系统是通过VMware软件运行在win7操作系统下的Guest系统。Win7操作系统运行在一颗Intel corei5-7500处理器上,处理器主频为3.40G,Host主机的物理内存为16G。分配给Guest主机(Fedora17虚拟机)的虚拟硬件为一个单核心处理器,2G内存。在算法编码上,SPECK算法和RainSP算法采用同样的优化策略和优化方法,以及同样的编译参数;AES则采用openssl 3.0.5的crypto库实现。
由于RainSP算法的分组长度只有4、6、8字节三种,SPECK算法则有4、6、8、16字节四种,而AES的分组长度一般为16和32字节,所以给出了RainSP的三类分组长度、SPECK的4类分组长度和AES的16字节分组长度的软件加密性能数据进行比较。
表4 SPECK和RainSP加密速度对比
表5 SPECK和AES加密速度对比
从表4的数据比较可见,对于4、8、16字节的分组长度,不管是SPECK还是RainSP算法,其单位时间加密的分组数都是随着分组长度的增加而减少,但是速度最慢都是6字节分组。对于4、8、16字节的分组,加密速度随着分组长度增加而减少主要在于对分组进行输入和输出处理上,分组越长需要的处理时间越长,但是由于4、8、16分组处理的计算单元分别是2、4、8字节长,都是可以通过一条CPU指令实现的,因此进行分组计算的时间是相近的。而对于6字节分组长度而言,由于每次计算需要处理的计算单元是3字节,而由于CPU的设计,其对3字节的计算单元处理要比2、4、8字节的计算单元慢,因此6字节的分组长无论SPECK还是RainSP算法上都是性能最低的分组长度。
从表5可知,对于16字节长的分组SPECK算法的加密速度是AES的2.34倍,而从表4可知,SPECK算法的加密速度平均是RainSP算法的1.53倍,因此RainSP算法的加密速度平均是AES的1.53倍。
综上所述,本发明更适合轻量级实现,安全性强度更高,RainSP系列分组密码算法具有足够的安全冗余。
以上所述,仅为本发明的较佳实施例,并不用以限制本发明,本发明的专利保护范围以权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (9)
1.一种轻量级分组密码算法RainSP的实现方法,其特征在于,包括如下步骤:
S1:获取需要加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R;
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;
S3:按照高位在左,低位在右的顺序将所述明文P分成n位左半支明文信息和n位右半支明文信息;
S4:利用所述n位左半支和右半支明文信息进行R轮迭代轮运算得到输出密文。
2.根据权利要求1所述的一种轻量级分组密码算法RainSP的实现方法,其特征在于,步骤S2所述密钥扩展算法由模加操作、循环移位操作与异或操作组成,其中,每轮轮常数设为i-1。
3.根据权利要求1所述的一种轻量级分组密码算法RainSP的实现方法,其特征在于,步
骤S2所述密钥扩展算法设计复用轮函数操作,为了从给定的种子密钥K生成轮密钥ki,首先
将种子密钥K分割成四个字并作为反馈移位寄存器的初始状态(t2,t1,t0,k0)加载,其中 ti,,为二元域上的n维向量,K的最低有效n比特加载到k0中,最高有效n比特
被放入t0中,即:
K=t2‖t1‖t0‖k0
为了更新寄存器并生成轮密钥,直接重用轮函数,密钥序列更新操作可以表示为:
其中,第i轮轮常数ci=i-1,1≤i≤R,Sa(ki)表示ki循环左移α位,Sb(ki)表示ki循环左移b位,Sc(ki)表示ki循环左移c位。
4.根据权利要求1所述的一种轻量级分组密码算法RainSP的实现方法,其特征在于,步骤S4所述轮运算由轮密钥加操作、模加操作、循环移位操作与异或操作组成,其中,每轮轮运算均是对2n位加密信息进行处理,每下一轮运算对应的2n位加密信息由上一轮运算的输出信息组成。
6.根据权利要求1所述的一种轻量级分组密码算法RainSP的实现方法,其特征在于,还包括解密,解密步骤如下:
S1:获取待解密的2n位密文C,以及获得该密文所采用的4n位种子密钥K和解密轮数R;
S2:按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作、循环移位操作和异或操作组成,其中,每轮轮常数设为i-1;
S3:按照高位在左,低位在右的顺序将所述2n位密文C分成n位左半支密文信息和n位右半支密文信息;
S4:利用所述n位左半支密文信息和n位右半支密文信息进行R轮解密迭代轮运算输出明文信息。
7.一种轻量级分组密码算法RainSP的实现装置,其特征在于,包括:
初始化单元:用于获取需要加密的2n位明文P,以及该明文所采用的4n位种子密钥K和加密轮数R;
运算单元:用于按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;
分解单元:用于按照高位在左,低位在右的顺序将所述明文P分成n位左半支明文信息和n位右半支明文信息;
密文输出单元:用于利用所述n位左半支明文信息和n位右半支明文信息进行R轮迭代轮运算得到输出密文。
8.根据权利要求7所述的一种轻量级分组密码算法RainSP的实现装置,其特征在于,还包括解密输出明文单元:用于获取待解密的2n位密文C,以及获得该密文所采用的4n位种子密钥K和解密轮数R;按照高位在左,低位在右的顺序将种子密钥K分成4个n位序列填充到密钥扩展算法的寄存器中,利用密钥扩展算法生成R个轮密钥ki;所述密钥扩展算法由模加操作、循环移位操作与异或操作组成,其中,每轮轮常数设为i-1;再按照高位在左,低位在右的顺序将所述4n位密文C分成n位左半支密文信息和n位右半支密文信息;利用所述n位左半支密文信息和n位右半支密文信息进行R轮解密迭代轮运算输出明文信息。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211223800.0A CN115314187B (zh) | 2022-10-08 | 2022-10-08 | 一种轻量级分组密码算法RainSP的实现方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211223800.0A CN115314187B (zh) | 2022-10-08 | 2022-10-08 | 一种轻量级分组密码算法RainSP的实现方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314187A true CN115314187A (zh) | 2022-11-08 |
CN115314187B CN115314187B (zh) | 2023-04-07 |
Family
ID=83866374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211223800.0A Active CN115314187B (zh) | 2022-10-08 | 2022-10-08 | 一种轻量级分组密码算法RainSP的实现方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314187B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987489A (zh) * | 2022-12-28 | 2023-04-18 | 北京电子科技学院 | 一种轻量级的加密解密方法、装置和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180176011A1 (en) * | 2016-12-16 | 2018-06-21 | The Boeing Company | Method and system for generation of cipher round keys by bit-mixers |
WO2020008446A2 (en) * | 2019-09-25 | 2020-01-09 | Symbiosis International (Deemed University) | A system and method for encryption and decryption of text |
CN114499826A (zh) * | 2022-02-25 | 2022-05-13 | 江苏大学 | 一种可灵活序列化的轻量级分组密码实现方法 |
CN114531223A (zh) * | 2022-01-04 | 2022-05-24 | 上海交通大学 | 基于轻量级分组密码榫式算法的加密解密方法 |
-
2022
- 2022-10-08 CN CN202211223800.0A patent/CN115314187B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180176011A1 (en) * | 2016-12-16 | 2018-06-21 | The Boeing Company | Method and system for generation of cipher round keys by bit-mixers |
WO2020008446A2 (en) * | 2019-09-25 | 2020-01-09 | Symbiosis International (Deemed University) | A system and method for encryption and decryption of text |
CN114531223A (zh) * | 2022-01-04 | 2022-05-24 | 上海交通大学 | 基于轻量级分组密码榫式算法的加密解密方法 |
CN114499826A (zh) * | 2022-02-25 | 2022-05-13 | 江苏大学 | 一种可灵活序列化的轻量级分组密码实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987489A (zh) * | 2022-12-28 | 2023-04-18 | 北京电子科技学院 | 一种轻量级的加密解密方法、装置和存储介质 |
CN115987489B (zh) * | 2022-12-28 | 2023-10-20 | 北京电子科技学院 | 一种轻量级的加密解密方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115314187B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rogaway et al. | A software-optimized encryption algorithm | |
CA2497935C (en) | Stream cipher design with revolving buffers | |
KR20180002069A (ko) | 부채널 분석에 대응한 보호 방법 및 장치 | |
Richter-Brockmann et al. | Folding BIKE: Scalable hardware implementation for reconfigurable devices | |
EP3839788B1 (en) | Bit-length parameterizable cipher | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN111464308A (zh) | 一种实现多种哈希算法可重构的方法和系统 | |
Das et al. | Security analysis of industrial test compression schemes | |
CN110784307B (zh) | 轻量级密码算法scenery实现方法、装置及存储介质 | |
CN110572255A (zh) | 轻量级分组密码算法Shadow实现方法、装置及计算机可读介质 | |
US20050120065A1 (en) | Pseudorandom number generator for a stream cipher | |
CN115314187B (zh) | 一种轻量级分组密码算法RainSP的实现方法、装置及电子设备 | |
Paar et al. | Stream ciphers | |
Luo et al. | Power analysis attack on hardware implementation of MAC-Keccak on FPGAs | |
Gielata et al. | AES hardware implementation in FPGA for algorithm acceleration purpose | |
Kahri et al. | Efficient FPGA hardware implementation of secure hash function SHA-256/Blake-256 | |
Gilbert et al. | Decorrelated Fast Cipher: an AES Candidate | |
US9065631B2 (en) | Integrated cryptographic module providing confidentiality and integrity | |
JP3735670B2 (ja) | 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム | |
US11070354B2 (en) | System and method for generating a symmetrically balanced output | |
Henzen et al. | VLSI hardware evaluation of the stream ciphers Salsa20 and ChaCha, and the compression function Rumba | |
CN109995506B (zh) | Skinny算法优化实现方法、系统、终端、存储介质 | |
Mohanraj et al. | High performance GCM architecture for the security of high speed network | |
CN113886804B (zh) | 基于并行循环移位寄存器的轻量级流密码生成方法 | |
Henricksen et al. | The HKC authenticated stream cipher (Ver. 1) |
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 |