CN109617670A - 一种加密系统及解密系统 - Google Patents
一种加密系统及解密系统 Download PDFInfo
- Publication number
- CN109617670A CN109617670A CN201811569952.XA CN201811569952A CN109617670A CN 109617670 A CN109617670 A CN 109617670A CN 201811569952 A CN201811569952 A CN 201811569952A CN 109617670 A CN109617670 A CN 109617670A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- computation unit
- interative computation
- encryption
- expansion
- 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
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)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种加密系统及解密系统,所述加密系统包括加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合;其中:所述加密算法的集合迭代运算单元,适于在一个时钟周期内完成加密算法的至少两轮单次迭代运算;所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算;所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述加密算法的集合迭代运算单元。本发明实施例中的技术方案可以提升加密系统的效率及数据吞吐率。
Description
技术领域
本发明涉及芯片设计领域,尤其涉及一种加密系统及解密系统。
背景技术
随着网络技术和通信技术的飞速发展,加密方法的应用越来越广泛。加密方法不仅运用于网络数据传输,也越来越多的应用于近场通信等场景。加密方法的运用逐渐走入日常生活,例如,应用于支付等场景中。在一些应用场景中,对加密方法的效率及系统处理数据的吞吐率均有较高的要求。
现有的加密方法的效率及数据吞吐率有待提升。
发明内容
本发明实施例解决的技术问题是提升加密方法的效率及数据吞吐率。
为解决上述技术问题,本发明实施例提供一种加密系统,包括加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合;其中:所述加密算法的集合迭代运算单元,适于在一个时钟周期内完成加密算法的至少两轮单次迭代运算;所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算;所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述加密算法的集合迭代运算单元。
可选的,所述运算单元组合为多个,其中,多个所述加密算法的集合迭代运算单元相串联,以完成所述加密算法的多轮迭代运算。
可选的,多个所述扩展算法的集合迭代运算单元相串联,以完成所述扩展算法的多轮迭代运算。
可选的,所述加密系统还包括:第一寄存器,适于存储所述待加密的明文数据。
可选的,所述加密系统还包括:第二寄存器,适于存储所述加密算法的集合迭代运算单元输出的运算结果。
可选的,所述加密算法的集合迭代运算单元在一个时钟周期内完成的加密算法的单次迭代运算的轮数,与所述扩展算法的集合迭代运算单元在一个时钟周期内完成的扩展算法的单次迭代运算的轮数相等。
可选的,加密算法的集合迭代运算单元加密算法的集合迭代运算单元的数量相等。
可选的,所述扩展算法的集合迭代运算单元在一个时钟周期内完成的扩展算法的单次迭代运算得到的轮密钥,适于供所述加密算法的集合迭代运算单元在下个时钟周期内使用,以完成下个时钟周期内的加密算法的单次迭代运算。
可选的,所述加密系统还包括:扩展结果存储单元,适于在所述扩展算法的集合迭代运算单元完成一个时钟周期内的扩展算法的单次迭代运算后,存储所得到的轮密钥。
本发明实施例还提供一种解密系统,其特征在于,包括:解密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合;其中:所述解密算法的集合迭代运算单元,适于在一个时钟周期内完成至少两轮解密算法的单次迭代运算;所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算;所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述解密算法的集合迭代运算单元。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在本发明实施例中,加密系统包括加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合,其中加密算法的集合迭代运算单元适于在一个时钟周期内完成加密算法的至少两轮单次迭代运算,所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算,故在本发明实施例中,完成加密算法的多轮迭代运算以及扩展算法的多轮扩展运算所需的时钟周期较少。另外,在本发明实施例中,所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述加密算法的集合迭代运算单元,从而可以使得扩展算法中的运算可以与加密算法中的运算并行进行,进而在更新密钥时的运算效率可以更高,例如在一次一密的应用场景中尤其具有效率优势。
进一步,在本发明实施例中,多个加密算法的集合迭代运算单元相串联,待加密的明文数据可以顺序经过所述多个加密算法的集合迭代运算单元,故在一个加密算法的多轮迭代运算尚未完成时,已对前数据进行过计算的加密算法的集合迭代运算单元可以执行对后数据的加密算法的迭代运算,故提升了加密运算的数据吞吐率。
进一步,所述加密算法的集合迭代运算单元在一个时钟周期内完成的加密算法的单次迭代运算的轮数,与所述扩展算法的集合迭代运算单元在一个时钟周期内完成的扩展算法的单次迭代运算的轮数相等,有利于扩展算法的集合迭代运算单元向加密算法的集合迭代运算单元提供轮密钥,二者可以更高效的并行进行运算,进而可以提升加密方法的效率。
附图说明
图1是本发明实施例中一种加密系统的结构示意图;
图2是本发明实施例中一种加密系统的部分结构示意图。
具体实施方式
如前所述,现有的加密方法的效率及数据吞吐率有待提升。
在本发明实施例中,加密系统包括加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合,其中加密算法的集合迭代运算单元适于在一个时钟周期内完成加密算法的至少两轮单次迭代运算,所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算,故在本发明实施例中,完成加密算法的多轮迭代运算以及扩展算法的多轮扩展运算所需的时钟周期较少。
另外,在本发明实施例中,所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述加密算法的集合迭代运算单元,从而可以使得扩展算法中的运算可以与加密算法中的运算并行进行,进而在更新密钥时的运算效率可以更高,例如在一次一密的应用场景中尤其具有效率优势。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例中一种加密系统的结构示意图,以下参照图1进行说明。
在本发明实施例中,加密系统可以包括加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合;其中:加密算法的集合迭代运算单元11适于在一个时钟周期内完成加密算法的至少两轮单次迭代运算;所述扩展算法的集合迭代运算单元14,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算;所述扩展算法的集合迭代运算单元14输出在一个时钟周期内产生的至少两个轮密钥至所述加密算法的集合迭代运算单元11。
本发明实施例中的加密系统可以用于实现不同的用于加密的算法规则,特别是可以以更高的效率实现其中包含多轮迭代运算的用于加密算法。含多轮迭代运算的用于加密的算法规则可以是DES加算法、AES算法、SM4分组密码算法中任一种。
本领域技术人员可以理解的是上述用于加密的算法规则可以包括加密算法、扩展算法及解密算法,其中扩展算法为密钥扩展算法的简称。例如SM4分组密码算法中:通过预设的密钥得到轮密钥的部分可以称作扩展算法;结合轮密钥将明文转变为密文的部分可以称作加密算法;根据加密算法的流程反推进行解密可以称作解密算法。
在本发明实施例中,将加密算法的多轮迭代运算中每轮迭代运算称作加密算法的单次迭代运算,将扩展算法多轮迭代运算中每轮迭代运算称作扩展算法的单次迭代运算,将解密算法多轮迭代运算中每轮迭代运算称作解密算法的单次迭代运算。本发明实施例中的加密算法的多轮迭代运算、扩展算法的多轮迭代运算以及解密算法的多轮迭代运算,均可按照以下任一种算法规则中的规定实现:DES加算法、AES算法以及SM4分组密码算法。
加密算法的多轮迭代运算中,可以包括预设轮的加密算法的单次迭代运算。例如,SM4分组密码算法中包括32轮的加密算法的单次迭代运算,DES加密算法中包括16轮迭代的加密算法的单次迭代运算。完成预设轮数的加密算法的单次迭代运算,在SM4分组密码算法中,可以是完成32轮的加密算法的单次迭代运算;在DES加密算法中,可以是完成16轮的加密算法的单次迭代运算。本领域技术人员可以理解的是,在不同的加密算法中,加密算法的单次迭代运算的具体实现方式可以不同。
在具体实施中,参见图1,所述运算单元组合可以包括第一个加密算法的集合迭代运算单元11以及第一个扩展算法的集合迭代运算单元14。本发明实施例中的“第一个”“第二个”等,是按照数据流向,以数据经过的顺序进行计数的。
在具体实施中,扩展算法的集合迭代运算单元14可以每完成一轮单次迭代运算产生一个轮密钥,由此,扩展算法的集合迭代运算单元14在一个时钟周期内可以产生至少两个轮密钥。
轮密钥可以是加密算法的多轮迭代运算中,每轮加密算法的单次迭代运算所需的加密密钥,轮密钥与单次迭代运算的轮位置相关。本领域技术人员可以理解的是,轮密钥也可以是解密算法的多轮迭代运算中,每轮解密算法的单次迭代运算所需的解密密钥。进一步地,轮密钥可以是对相同的硬件资源输入不同的数据进行运算得到的加密密钥和解密密钥。
在具体实施中,加密算法的集合迭代运算单元11在一个时钟周期内完成单次迭代运算的数量可以与扩展算法的集合迭代运算单元14相等。如此,扩展算法的集合迭代运算单元14与加密算法的集合迭代运算单元11的运算可以更匹配,加密系统的效率可以更高。
具体地,扩展算法的集合迭代运算单元14在一个时钟周期内完成的扩展算法的单次迭代运算得到的轮密钥,可以供所述加密算法的集合迭代运算单元11在下个时钟周期内使用,以完成下个时钟周期内的加密算法的单次迭代运算。如此,在更新密钥时,加密算法的集合迭代运算单元11可以从扩展算法的集合迭代运算单元14获取本时钟周期内至少两轮单次迭代运算所需的轮密钥,无需等待加密算法所需的所有轮密钥完全生成后再进行迭代运算,可以提升加密系统效率。在需要频繁更换密钥的场景中,例如在在一次一密的应用场景中,加密系统效率尤为重要,本发明实施例中的加密系统应用于该类场景中,可以大幅提升加密系统的总体效率。
在具体实施中,所述运算单元组合可以为多个。在具体实施中,运算单元组合的数量与一个时钟内完成的加密算法的单次迭代运算的轮数,可以等于加密算法的单次迭代运算的总轮数。
其中,多个所述加密算法的集合迭代运算单元11可以相串联,以完成所述加密算法的多轮迭代运算
虽然图中仅示出两个加密算法的集合迭代运算单元11,但可以理解的是,按照图中给出的连接方式,可以扩展更多的加密算法的集合迭代运算单元11。图中的数据标识仅为示意,并非对数据位数或数据传递方式的限制。
在具体实施中,多个所述加密算法的集合迭代运算单元11相串联,可以是前一加密算法的集合迭代运算单元11的输出,偶接至后一加密算法的集合迭代运算单元11,作为下一加密算法的集合迭代运算单元11的输入。
多个集合加密运算11相串联后,可以完成加密算法的多轮迭代运算。也即,待加密的明文数据按照加密算法的集合迭代运算单元11串联的顺序,依次经过多个加密算法的集合迭代运算单元11,最后一个加密算法的集合迭代运算单元11的输出,可以直接或者经过其它变换,例如反序变换后,作为加密算法的多轮迭代运算的输出结果。
以SM4分组密码算法为例,图中待加密的明文数据为数据[X0,X1,X2,X3],可以从第一寄存器12中获取,第一寄存器12可以存储输入的待加密的明文数据Plain[127:0]。
经过第一个加密算法的集合迭代运算单元11后,输出为数据[X4,X5,X6,X7],该输出作为第二个加密算法的集合迭代运算单元11的输入,第二个加密算法的集合迭代运算单元11的输出[X8,X9,X10,X11]作为第三个加密算法的集合迭代运算单元11的输入,直至完成32轮的加密算法的单次迭代运算。
本领域技术人员可以理解的是,加密算法的集合迭代运算单元11的前后顺序的划分,可以依据待加密的明文数据的数据流向,在多个加密算法的集合迭代运算单元11的连接中是一种相对概念,并非对加密算法的集合迭代运算单元11的内部结构或功能的限制。另外,图1中的数据示意方式也并非对本发明实施例中加密系统的限制。
在本发明实施例中,多个加密算法的集合迭代运算单元11相串联,一个加密算法的多轮迭代运算的数据可以顺序经过所述多个加密算法的集合迭代运算单元11,故在一个加密算法的多轮迭代运算尚未完成时,已对前数据进行过计算的加密算法的集合迭代运算单元11可以执行对后数据的加密算法的多轮迭代运算,故提升了加密运算的数据吞吐率。
例如,结合图1,沿用前例,按数据流方向,待加密的明文数据为数据经过第一个加密算法的集合迭代运算单元11后,输出为数据[X4,X5,X6,X7],该输出作为第二个加密算法的集合迭代运算单元11的输入。在第二个加密算法的集合迭代运算单元11对输出数据[X4,X5,X6,X7]进行集合加密运算,即第4至第8轮的加密算法的单次迭代运算时,第一个加密算法的集合迭代运算单元11可以对另一组待加密的明文数据进行第1至4轮的加密算法的单次迭代运算。依次类推,当第三个加密算法的集合迭代运算单元(图中未示出)对第二个加密算法的集合迭代运算单元11输出的数据[X8,X9,X10,X11]进行第9至12轮的加密算法的单次迭代运算时,第二个加密算法的集合迭代运算单元11与第一个加密算法的集合迭代运算单元11同时可以进行运算。如此,多个加密算法的集合迭代运算单元11可以形成流水线式结构,流水线的级数可以与加密算法的集合迭代运算单元11的数量一致,进而可以提升加密系统的吞吐率。
在具体实施中,所述加密算法的集合迭代运算单元11的数量可以根据所述加密算法的单次迭代运算的轮数,以及所述加密算法的集合迭代运算单元11在一个时钟周期内完成的加密算法的单次迭代运算的轮数确定。
其中,根据加密算法的集合迭代运算单元每个时钟周期内完成的单次迭代运算的数量确定硬件资源的运算速度下限。故可以根据需要确定加密算法的集合迭代运算单元每个时钟周期内完成的单次迭代运算的数量,进而根据加密算法的单次迭代运算的总数量以及每个时钟周期内完成的单次迭代运算的数量确定加密算法的集合迭代运算单元的数量以及硬件资源的运算速度下限。
例如,SM4分组密码算法中,加密算法中包含的单次迭代运算的轮数为32轮,根据需要确定加密算法的集合迭代运算单元11在一个时钟周期内完成的加密算法的单次迭代运算的轮数可以为4轮,则加密系统可以包括8个相串联的加密算法的集合迭代运算单元11。
在具体实施中,加密系统可以包括第二寄存器13,适于存储所述加密算法的集合迭代运算单元11输出的运算结果。结合参考图2,第二寄存器13的数量可以是多个,分别用于存储多个加密算法的集合迭代运算单元11输出的运算结果。第二寄存器13的数量可以与加密算法的集合迭代运算单元11的数量相等。第二寄存器13存储的运算结果也可以是对加密算法的集合迭代运算单元11输出的运算结果处理后的数据,具体的处理可以根据加密系统实现的加密算法确定。例如,当加密系统实现的加密算法为SM4分组密码算法时,最后一个第二寄存器13存储的可以是运算结果的反序数据,可以是图中的数据[X35,X34,X33,X32]。
在具体实施中,加密算法的集合迭代运算单元11相类似,多个所述扩展算法的集合迭代运算单元14可以相串联。其具体实现及有益效果与多个加密算法的集合迭代运算单元11向串联类似,在此不再赘述。
在具体实施中,加密系统还可以包括第三寄存器15,可以在扩展算法的集合迭代运算单元14完成一个时钟周期内的扩展算法的单次迭代运算后,存储所得到的轮密钥。第三寄存器15的数量可以是多个,与所述扩展算法的集合迭代运算单元14的数量一致。
如前所述,加密算法的集合迭代运算单元11在一个时钟周期内完成的加密算法的单次迭代运算的轮数,与所述扩展算法的集合迭代运算单元14在一个时钟周期内完成的扩展算法的单次迭代运算的轮数相等。如此,有利于扩展算法的集合迭代运算单元14向加密算法的集合迭代运算单元11提供轮密钥,二者可以更高效的并行进行运算,进而可以提升加密方法的效率。
具体地,所述扩展算法的集合迭代运算单元14的轮密钥,可以根据集合加密运算与集合扩展运算的对应关系,输出至所述加密算法的集合迭代运算单元11。其中,所述集合扩展运算包括一个时钟周期内的扩展算法的单次迭代运算,所述集合加密运算包括一个时钟周期内的加密算法的单次迭代运算。
进一步地,加密算法的单次迭代运算与所述扩展算法的单次迭代运算的对应关系,可以是数据输入后经过扩展算法的单次迭代运算和加密算法的单次迭代运算的轮数的对应关系。
例如,参考图1,输入的密钥信息输入的密钥信息Key[127:0]可以存储于第四寄存器16,原始密钥数据[K0,K1,K2,K3]可以从第四寄存器16获取。经过第一轮集合扩展运算后,也即,经过第一个扩展算法的集合迭代运算单元14后,输出轮密钥[K4,K5,K6,K7];该轮密钥可以用于第一轮集合加密运算,也即,利用第一个加密算法的集合迭代运算单元11对待加密的明文数据[X0,X1,X2,X3]进行加密运算。
相应地,输入的密钥信息经过两轮集合扩展运算后,输出为轮密钥[K8,K9,K10,K11],该轮密钥可以用于第二轮集合加密运算,也即,由第二个加密算法的集合迭代运算单元11对数据[X4,X5,X6,X7]进行集合加密运算。
通过上述实施例可以看出,在本发明实施例中,密钥扩展过程中的多轮迭代运算与加密算法的多轮迭代运算可以在同一个时钟周期内完成,在功耗上特征已经难以分别出单个轮运算的模型,进而使得攻击者无法有效地找到每轮运算的侧信道信息,故可以有效抵抗加密算法的模板攻击,
例如,当加密方法用于实现SM4分组密码算法时,可以有效抵抗SM4分组密码算法的模板攻击。以下以SM4分组密码算法为例对抵抗模板攻击的原理进行进一步说明。本领域技术应当理解的是,本发明实施例中的加密算法的单次迭代运算与扩展算法的单次迭代运算均可以称为轮运算。
SM4分组密码算法模板攻击是基于密码芯片在SM4分组密码算法运算时的功耗与正在参与运算数据的相关性的基础上实施的。其攻击过程通常包括两个步骤:第一个阶段是对所有可能猜测密钥的能量消耗特征,并依据算法的轮运算规格,依次建立对应模型;第二个阶段是采集被攻击密码芯片上的每轮运算时的侧信道功耗信息,计算其与所建模的能量消耗特征的匹配程度,即可得到有关正确密钥的信息。
由于模板攻击非常有效、实现简单且无需大量资源,所以目前是侧信道分析攻击研究领域的重点之一。而本发明实施例中,由于四轮迭代进行的扩展算法的单次迭代运算与集合加密运算中四轮迭代进行的加密算法的单次迭代运算是同时进行的,在功耗上特征已经无法分别出单个轮运算的模型。故针对目前现有的32轮运算的模型无法从侧信道上进行分析破解密钥,进而本发明实施例中的加密系统的安全性更高。
本领域技术人员可以理解的是,加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的具体实现可以适应于加密系统实现的加密算法。
由于本发明实施例中加密系统实现的加密运算为加密算法的多轮迭代运算,本领域技术人员可以理解的是,每个扩展算法的集合迭代运算单元14的运算过程是相同的,每个加密算法的集合迭代运算单元11的运算方式是相同的。以下结合图2,以SM4分组密码算法为例,对加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的具体实现进行举例说明。
SM4分组密码算法中分组长度和密钥长度均为128bit,扩展算法的集合迭代运算单元14在一个时钟周期内可以完成4轮扩展算法的单次迭代运算,每轮扩展算法的单次迭代运算的运算方式可以是与SM4分组密码算法中规定的密钥扩展算法一致。扩展算法的集合迭代运算单元14的输入可以分别为[Ki,Ki+1,Ki+2,Ki+3]与[CKi,CKi+1,CKi+2,CKi+3]。其中,[Ki,Ki+1,Ki+2,Ki+3]为四个32位的数据,作为待进行集合扩展运算数据;[CKi,CKi+1,CKi+2,CKi+3]为固定参数,用于与SM4分组密码算法中的密钥扩展算法,i∈[0,31]。
[Ki,Ki+1,Ki+2,Ki+3]经扩展算法的集合迭代运算单元14运算的输出(Ki+4,Ki+5,Ki+6,Ki+7)可以表示为公式(1):
(Ki+4,Ki+5,Ki+6,Ki+7)=BT(Ki,Ki+1,Ki+2,Ki+3,CKi,CKi+1,CKi+2,CKi+3) (1)
其中,函数BT表示扩展算法的集合迭代运算单元26的运算函数。
扩展算法的集合迭代运算单元26的内部操作可以表示为公式(2)至(5):
RKi=Ki+4=Ki⊕T(Ki+1⊕Ki+2⊕Ki+3⊕CKi) (2)
RKi+1=Ki+5=Ki+1⊕T(Ki+2⊕Ki+3⊕Ki+4⊕CKi+1) (3)
RKi+2=Ki+6=Ki+2⊕T(Ki+3⊕Ki+4⊕Ki+5⊕CKi+2) (4)
RKi+3=Ki+7=Ki+3⊕T(Ki+4⊕Ki+5⊕Ki+6⊕CKi+3) (5)
其中,函数T为合成置换函数,具体操作可以参见SM4分组密码算法中的规定。
扩展算法的集合迭代运算单元14生成的轮密钥,可以供加密算法的集合迭代运算单元11进行集合加密运算。加密算法的集合迭代运算单元11进行4轮迭代的加密算法的单次迭代运算,其输入为[Xi,Xi+1,Xi+2,Xi+3]与[Ki+4,Ki+5,Ki+6,Ki+7],输出为[Xi+4,Xi+5,Xi+6,Xi+7],加密算法的集合迭代运算单元11进行的运算可以表示为:
(Xi+4,Xi+5,Xi+6,Xi+7)=BF(Xi,Xi+1,Xi+2,Xi+3,RKi,RKi+1,RKi+2,RKi+3) (6)
其中,函数BF为集合扩展运算的函数,也即在一个时钟周期内进行的四轮扩展算法的单次迭代运算。每轮扩展算法的单次迭代运算的具体实现方式可以参见SM4分组密码算法,可以参见公式(7):
Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,RKi)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕RKi) (7)
在具体实施中,加密算法的集合迭代运算单元11的运算可以表示为公式(8)至公式(11):
Xi+4=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕RKi) (8)
Xi+5=Xi+1⊕T(Xi+2⊕Xi+3⊕Xi+4⊕RKi+1) (9)
Xi+6=Xi+2⊕T(Xi+3⊕Xi+4⊕Xi+5⊕RKi+2) (10)
Xi+7=Xi+3⊕T(Xi+4⊕Xi+5⊕Xi+6⊕RKi+3) (11)
本发明实施例中的加密系统,适用于手机、平板电脑、射频通信设备等各种适当的终端。由于本发明实施例中的加密系统的效率较高,且数据吞吐率较大,尤其适用于要求数据实时加密传输的场景。
本发明实施例还提供一种解密系统,可以包括集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合;其中:
所述解密算法的集合迭代运算单元,适于在一个时钟周期内完成至少两轮解密算法的单次迭代运算;
所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算;
所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述解密算法的集合迭代运算单元。
本领域技术人员可以理解的是,在统一算法规则中规定的具有多轮迭代运算的加密算法和解密算法可以是对称的,也即,利用同一硬件资源,根据输入的不同,可以分别完成加密运算以及解密运算。
故本发明实施例中所述的解密系统可以采用与所述加密系统相对应的方式实现,其中涉及的具体名词解释、具体实现方式以及有益效果,本领域技术人员可以根据本发明实施例中所述的加密方法获悉,在此不再赘述。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (11)
1.一种加密系统,其特征在于,包括加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合;其中:
所述加密算法的集合迭代运算单元,适于在一个时钟周期内完成加密算法的至少两轮单次迭代运算;
所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算;
所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述加密算法的集合迭代运算单元。
2.根据权利要求1所述的加密系统,其特征在于,所述运算单元组合为多个,其中,多个所述加密算法的集合迭代运算单元相串联,以完成所述加密算法的多轮迭代运算。
3.根据权利要求2所述的加密系统,其特征在于,多个所述扩展算法的集合迭代运算单元相串联,以完成所述扩展算法的多轮迭代运算。
4.根据权利要求1所述的加密系统,其特征在于,还包括:第一寄存器,适于存储所加密的明文数据。
5.根据权利要求1所述的加密系统,其特征在于,还包括:第二寄存器,适于存储所述加密算法的集合迭代运算单元输出的运算结果。
6.根据权利要求1所述的加密系统,其特征在于,所述加密算法的集合迭代运算单元在一个时钟周期内完成的加密算法的单次迭代运算的轮数,与所述扩展算法的集合迭代运算单元在一个时钟周期内完成的扩展算法的单次迭代运算的轮数相等。
7.根据权利要求1所述的加密系统,其特征在于,加密算法的集合迭代运算单元加密算法的集合迭代运算单元的数量相等。
8.根据权利要求7所述的加密系统,其特征在于,所述扩展算法的集合迭代运算单元在一个时钟周期内完成的扩展算法的单次迭代运算得到的轮密钥,适于供所述加密算法的集合迭代运算单元在下个时钟周期内使用,以完成下个时钟周期内的加密算法的单次迭代运算。
9.根据权利要求7所述的加密系统,其特征在于,加密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合的数量为:所述加密算法的单次迭代运算的总轮数与加密算法的集合迭代运算单元在一个时钟周期内完成加密算法的单次迭代运算的轮数之商。
10.根据权利要求1所述的加密系统,其特征在于,还包括:扩展结果存储单元,适于在所述扩展算法的集合迭代运算单元完成一个时钟周期内的扩展算法的单次迭代运算后,存储所得到的轮密钥。
11.一种解密系统,其特征在于,包括:解密算法的集合迭代运算单元以及扩展算法的集合迭代运算单元的运算单元组合;其中:
所述解密算法的集合迭代运算单元,适于在一个时钟周期内完成至少两轮解密算法的单次迭代运算;
所述扩展算法的集合迭代运算单元,适于在一个时钟周期内完成扩展算法的至少两轮单次迭代运算;
所述扩展算法的集合迭代运算单元输出在一个时钟周期内产生的至少两个轮密钥至所述解密算法的集合迭代运算单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811569952.XA CN109617670B (zh) | 2018-12-21 | 2018-12-21 | 一种加密系统及解密系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811569952.XA CN109617670B (zh) | 2018-12-21 | 2018-12-21 | 一种加密系统及解密系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109617670A true CN109617670A (zh) | 2019-04-12 |
CN109617670B CN109617670B (zh) | 2023-05-12 |
Family
ID=66011096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811569952.XA Active CN109617670B (zh) | 2018-12-21 | 2018-12-21 | 一种加密系统及解密系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109617670B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527531A (zh) * | 2003-03-07 | 2004-09-08 | 华为技术有限公司 | 一种数据加密标准或三重数据加密标准的实现方法 |
CN101159545A (zh) * | 2007-11-19 | 2008-04-09 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
US20150086007A1 (en) * | 2013-09-24 | 2015-03-26 | Sanu Mathew | Compact, low power advanced encryption standard circuit |
CN108933653A (zh) * | 2018-06-28 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种基于大规模数据的aes加解密系统及方法 |
-
2018
- 2018-12-21 CN CN201811569952.XA patent/CN109617670B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527531A (zh) * | 2003-03-07 | 2004-09-08 | 华为技术有限公司 | 一种数据加密标准或三重数据加密标准的实现方法 |
CN101159545A (zh) * | 2007-11-19 | 2008-04-09 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
US20150086007A1 (en) * | 2013-09-24 | 2015-03-26 | Sanu Mathew | Compact, low power advanced encryption standard circuit |
CN108933653A (zh) * | 2018-06-28 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种基于大规模数据的aes加解密系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109617670B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109495465B (zh) | 基于智能合约的隐私集合交集方法 | |
CN112202568B (zh) | 软硬件协同设计sm9数字签名通信方法和系统 | |
CN102207847B (zh) | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 | |
CN112380565A (zh) | 一种基于可信硬件与区块链的安全多方计算方法 | |
CN104639314A (zh) | 基于aes加密/解密算法的装置和流水控制方法 | |
CN109617671B (zh) | 加解密、扩展方法及装置、加解密系统、终端 | |
CN101827107A (zh) | 一种基于ieee802.1ae协议的gcm高速加解密器 | |
CN116204909B (zh) | 向量元素映射方法、电子设备及计算机可读存储介质 | |
CN101000538A (zh) | 椭圆曲线密码体制协处理器的实现方法 | |
Feizi et al. | A hardware implementation of simon cryptography algorithm | |
CN106656465B (zh) | 一种抵御能量分析攻击的加法掩码硬件实现方法及电路 | |
CN103444125A (zh) | 加密处理设备、加密处理方法和程序 | |
CN104219045B (zh) | Rc4 流密码生成器 | |
CN101867471A (zh) | 基于无理数的des认证加密算法 | |
CN117614707B (zh) | 基于智能合约的区块链交易方法、系统、电子设备及介质 | |
CN107070629A (zh) | 一种针对sm4密码算法轮输出的模板攻击方法 | |
CN101582170B (zh) | 一种基于椭圆曲线密码体制的遥感图像加密方法 | |
CN101515853B (zh) | 信息终端及其信息安全装置 | |
CN200990078Y (zh) | 快速rsa密码和大数模指数运算的电路 | |
CN206585573U (zh) | 可重构s盒电路结构 | |
CN109617670A (zh) | 一种加密系统及解密系统 | |
CN110266481A (zh) | 基于矩阵的后量子加、解密方法与解密装置 | |
Li et al. | An implementation method for SM4-GCM on FPGA | |
CN105187198B (zh) | 一种用于IPSec协议下的AES算法硬件实现装置 | |
CN105577362B (zh) | 一种应用于aes算法的字节替换方法及系统 |
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 |