CN105912501A - 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 - Google Patents
一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 Download PDFInfo
- Publication number
- CN105912501A CN105912501A CN201610299248.1A CN201610299248A CN105912501A CN 105912501 A CN105912501 A CN 105912501A CN 201610299248 A CN201610299248 A CN 201610299248A CN 105912501 A CN105912501 A CN 105912501A
- Authority
- CN
- China
- Prior art keywords
- data
- reconfigurable
- computing
- row
- reconfigurable processor
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
- G06F15/7882—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Abstract
本发明公开了一种基于大规模粗粒度可重构处理器的SM4‑128加密算法实现方法及系统,该系统包括可重构处理器、微处理器、系统总线;所述可重构计算阵列包括可重构计算阵列块,可重构计算阵列块包括可重构阵列运算行、写端口运算行选择器、读端口运算行选择器;所述微处理器通过系统总线分别与配置控制模块的配置与控制接口,可重构处理器的输入先入先出寄存器组连接,所述输入先入先出寄存器组连接可重构计算阵列,可重构计算阵列连接输出端连接可重构处理器,输出端连接可重构处理器通过系统总线与微处理器连接。该系统及方法针对SM4‑128加密算法,通过将多轮迭代在可重构处理器中部分展开和中间结果数据缓存的方式进行优化和加速。
Description
技术领域
本发明涉及嵌入式可重构系统领域,尤其涉及一种应用于通信、加密等领域的基于大规模粗粒度嵌入式可重构系统及其处理方法。
背景技术
通用处理器与专用集成电路(ASIC)是传统的计算机系统结构领域的两大主流方法。然而,随着应用领域对系统的性能、能耗、上市时间等指标需求的不断提高,这两种传统计算模式的弊端就暴露出来。
通用处理器方法适用范围广,但是计算效率低,专用集成电路虽然可以提高计算速度和计算效率,满足性能需求,但是ASIC器件的灵活性很差。
为了在灵活性和计算效率之间实现很好的权衡,可重构计算(reconfigurable computing)技术应运而生。可重构计算是当前计算机系统结构领域的发展趋势之一,它的架构介于通用处理器和ASIC之间,并且综合了二者长处。它通过对可重构设备进行配置,可以使之由一个通用的计算平台转化为一个专用的硬件系统,以完成具体的计算任务,相当于计算任务同时在时间和空间上展开,显示出了应用的灵活性和很高的计算性能。此外,可重构计算技术还具有系统能耗低、可靠性高、上市时间短等优势。这些优势使得可重构计算技术在各个应用领域尤其是嵌入式应用领域有着广阔的应用前景。很多在嵌入式领域中的主流应用,例如多媒体应用、加/解密应用以及通信应用等都非常适合利用可重构计算技术实现。当前的可重构计算技术主要还是用于尖端技术领域中的计算平台,但随着可重构逻辑器件成本逐渐降低,运行时可重构计算技术不断完善,我们有理由相信可重构计算技术具备的种种优势会使其在更多的领域里大有作为。
目前国内外已研究有多重可重构系统,如ReMAP,AsAP,DRP等。但是,这些阵列的互联方式较为简单,在SM4-128加密算法方法的运算中需要大量的中间数据存储以及较多的轮数,因此运算的效率和速度较低。传统的可重构计算系统在SM4-128加密算法的运算效率与运算周期方面存在较大问题。
发明内容
为了克服现有技术中存在的不足,本发明的目的是提供一种基于大规模粗粒度可重构处理器的SM4-128加密算法系统,利用可重构技术的并行性处理、运算模块独立可配置等优点,在支持一定的灵活性的同时,通过提高对SM4-128加密算法算法的并行度以及优化流水线等方法以实现SM4-128加密算法算法的高效运算。
为实现上述目的,本发明采用的技术方案为:
一种基于大规模粗粒度可重构处理器的SM4-128加密算法系统,包括可重构处理器、微处理器、系统总线;
其中,所述可重构处理器包括配置控制模块、输入先入先出寄存器组、输出先入先出寄存器组、通用寄存器堆、可重构计算阵列;
所述配置控制模块包括依次连接的配置与控制接口、配置存储器、配置解析模块,配置控制模块的输出端连接可重构处理器;
所述可重构计算阵列包括可重构计算阵列块,可重构计算阵列块包括可重构阵列运算行、写端口运算行选择器、读端口运算行选择器;所述可重构阵列运算行的输出端连接写端口运算行选择器的输入端,写端口运算行选择器的输出端连接通用寄存器堆;所述读端口运算行选择器的输入端接入通用寄存器堆,读端口运算行选择器的输出端连接可重构阵列运算行;
其中,所述可重构阵列运算行包括算术逻辑单元、查找表单元、比特置换网络、字节置换网络以及数据输入单元和数据输出单元;
所述微处理器通过系统总线分别与配置控制模块的配置与控制接口,可重构处理器的输入先入先出寄存器组连接,所述输入先入先出寄存器组连接可重构计算阵列,可重构计算阵列连接输出端连接可重构处理器,输出端连接可重构处理器通过系统总线与微处理器连接;
其中,通过分析SM4-128加密算法的特征来确定SM4-128加密算法的运算流程,将多轮的SM4-128加密算法运算展开成一幅数据流图映射到可重构处理器中,通过多幅数据流图最终完成SM4-128加密算法的整个运算;
微处理器通过系统总线发送明文数据给可重构处理器,可重构处理器将明文数据存入输入先入先出寄存器组,并在最终计算完成后输出密文数据到输出先入先出寄存器组,并发送中断信号,最终由微处理器读出输出至输出先入先出寄存器组中的数据。
首先对配置单元中的配置存储器进行初始化,微处理器将所需要的配置信息通过配置单元的配置与控制接口发送到配置存储器中,然后通过配置单元中的配置解析模块解析配置存储器,实现对计算阵列的配置、启动以及切换操作。
进一步的,所述的可重构处理器有M个可重构计算阵列块、1个通用寄存器堆、1个输入先入先出寄存器组和1个输出先入先出寄存器组,其中M取整数;其中M个可重构计算阵列块通过一个1个通用寄存器堆互相进行数据的储存、读取和传递;且多个可重构计算阵列块中相邻的两个可重构计算阵列块通过数据输入单元和数据输出单元连接;第一个可重构计算阵列块通过第一个可重构阵列运算行的数据输入单元与输入先入先出寄存器组相连,同时第M个可重构计算阵列块通过最后一个个可重构阵列运算行的数据输出单元与输出先入先出寄存器组相连。作为优选方案,可重构处理器有10个可重构阵列块。
进一步的,所述的每个可重构计算阵列块包括N个可重构阵列运算行和1个读端口运算行选择器和1个写端口运算行选择器,其中N取整数;其每N个可重构阵列运算行共享1个通用寄存器堆的读端口和写端口。作为优选方案,可重构阵列块包括4个可重构阵列运算行。
进一步的,所述的可重构阵列运算行包括X1个数据输入单元,X2个数据输出单元,X3个字节置换网络,X4个比特置换网络和X5个8位算术逻辑单元,X6个查找表单元,其中X1,X2,X3,X4,X5和X6均取整数;数据经过数据输入单元,由选择器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和比特置换网络;字节置换网络与比特置换网络的输出分为X5个8位的数据分别固定对应于X5个8位算术逻辑单元,并行运算X5/4组SM4-128加密算法数据;每个算术逻辑单元使用数据选择器选择任意三个置换网络的输出作为其输入;数据输出单元暂存算术逻辑单元的结果并读取配置信息决定将数据输出到先入先出寄存器组、下一个可重构阵列运算行或通用寄存器堆。作为优选方案,可重构阵列运算行包括数据载入单元,数据输出单元,字节置换网络,比特置换网络和16个8位算术逻辑单元;数据经过数据载入单元,由选择器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和比特置换网络;字节置换网络与比特置换网络的128位的输出分为16个8位的数据分别固定对应于16个8位算术逻辑单元,一次性可以运算4组SM4-128加密算法数据;每个算术逻辑单元可以使用数据选择器选择其中三个置换网络的输出作为其输入;数据载入单元可以暂存算术逻辑单元的结果并读取配置信息决定将数据输出到先进先出寄存器组、下一个可重构阵列运算行还是通用寄存器堆。
进一步的,所述算术逻辑单元及查找表用于实现异或运算、与运算、直通输出、查表操作的运算操作;同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出;每4个8位的算术逻辑单元通过进位端口连接成为1个32位的算术逻辑单元;每4个可重构阵列运算行共享一个查找表,来实现查表操作。作为优选方案,算术逻辑单元中包含3输入异或、2输入异或运算;同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出;查找表单元支持数据的查表操作,每4个可重构计算行单元共享一个查找表单元。由于SM4-128加密算法方法中全部为32位运算,因此每4个8位的算术逻辑单元可以通过进位端口连接成为1个32位的算术逻辑单元。
进一步的,该系统的SM4-128加密算法包括如下6个步骤,对于32轮迭代的128比特的加密算法,对(2)~(6)步骤顺序操作并循环32次后,执行(6)执行1次,即可得到密文(其中0≤i≤31):
(1)生成Y[i]:数据输入单元将X[i+1],X[i+2],X[i+3]同时载入可重构运算单元行中,(其中0≤i≤31);对载入数据经过字节置换网络后,输入值同一个32比特的逻辑运算单元,进行三输入异或操作,得到Y[i],并将其计算结果存入通用寄存器中;
(2)生成A[i]:数据输入单元将轮密钥rk[i]及Y[i]同时载入可重构运算单元行中,在经过字节置换网络进行移位后,再对ri[i],Y[i]两者进行异或操作,将结果A[i]输出至缓存单元中;
(3)查表操作:数据输入单元将A[i]从缓存单元中载入至可重构运算单元行中;A[i]在通过字节置换网络后,在查找表中对A[i]进行查表操作,得到B[i],并将B[i]存入缓存单元中;
(4)线性变换:数据输入单元将B[i]从缓存单元中载入至可重构阵列单元行中;B[i]在经过比特置换网络后,生成中间数据B1[i],B2[i],将B1[i],B2[i],B[i]三者进行异或操作,生成M[i],并将M[i]及B[i]存入缓存单元;将上一行输出结果M[i]及B[i]从缓存单元中载入至可重构阵列单元行中,B[i]在经过比特置换网络后,生成中间数据B3[i],B4[i],将B3[i],B4[i],M[i]三者进行异或操作,得到T[i];
(5)生成X[i+4]:数据输入单元将T[i]从缓存单元中载入至可重构阵列单元行中,对T[i]及X[i]进行异或操作,得到X[i+4];
(6)逆序操作:数据输入单元将X[32],X[33],X[34],X[35]从通用寄存器中载入至可重构计算单元行中,经过字节置换网络,实现逆序,得到从高位至低位按照X[35],X[34],X[33],X[32]的数据,输出至输出先入先出寄存器组,得到密文。
一种基于大规模粗粒度可重构处理器的SM4-128加密算法的实现方法,包括以下步骤:
(1)分析SM4-128加密算法的计算特点,并归纳出数据流图;
(2)确定数据流图之后,针对可重构处理器的硬件特点,在了解其各寄存器、运算器以及各功能模块的作用机制的情况下配置可重构处理器,并生成配置信息;
(3)通过微处理器将配置信息以及所需要的各种初始数据存入相应的存储器中;
(4)最后微处理器启动可重构处理器,并将配置信息及数据发送给可重构处理器;
(5)当可重构处理器完成当前任务后,发送中断信号。
有益效果:本发明基于大规模粗粒度动态可重构处理器,通过10个可重构阵列块包含多个运算单元,借助通用寄存器堆提高SM4-128加密算法算法的运算并行度,在具有一定灵活性的同时,提高SM4-128加密算法方法的运算效率,尽可能的减少运算周期。
附图说明
图1为本发明的基于大规模粗粒度嵌入式可重构系统处理器框图;
图2a-图2d为一个可重构阵列块的运算流示意,共同构成本发明中SM4-128加密算法运算流图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示为一种基于大规模粗粒度可重构处理器的SM4-128加密算法系统,包括可重构处理器、微处理器、系统总线;
其中,所述可重构处理器包括配置控制模块、输入先入先出寄存器组、输出先入先出寄存器组、通用寄存器堆、可重构计算阵列;
所述配置控制模块包括依次连接的配置与控制接口、配置存储器、配置解析模块,配置控制模块的输出端连接可重构处理器;
所述可重构计算阵列包括可重构计算阵列块,可重构计算阵列块包括可重构阵列运算行、写端口运算行选择器、读端口运算行选择器;所述可重构阵列运算行的输出端连接写端口运算行选择器的输入端,写端口运算行选择器的输出端连接通用寄存器堆;所述读端口运算行选择器的输入端接入通用寄存器堆,读端口运算行选择器的输出端连接可重构阵列运算行;
其中,所述可重构阵列运算行包括算术逻辑单元、查找表单元、比特置换网络、字节置换网络以及数据输入单元和数据输出单元;
所述微处理器通过系统总线分别与配置控制模块的配置与控制接口,可重构处理器的输入先入先出寄存器组连接,所述输入先入先出寄存器组连接可重构计算阵列,可重构计算阵列连接输出端连接可重构处理器,输出端连接可重构处理器通过系统总线与微处理器连接;
其中,通过分析SM4-128加密算法的特征来确定SM4-128加密算法的运算流程,将多轮的SM4-128加密算法运算展开成一幅数据流图映射到可重构处理器中,通过多幅数据流图最终完成SM4-128加密算法的整个运算;
微处理器通过系统总线发送明文数据给可重构处理器,可重构处理器将明文数据存入输入先入先出寄存器组,并在最终计算完成后输出密文数据到输出先入先出寄存器组,并发送中断信号,最终由微处理器读出输出至输出先入先出寄存器组中的数据。
首先对配置单元中的配置存储器进行初始化,微处理器将所需要的配置信息通过配置单元的配置与控制接口发送到配置存储器中,然后通过配置单元中的配置解析模块解析配置存储器,实现对计算阵列的配置、启动以及切换操作。
可重构处理器有10个可重构计算阵列块、1个通用寄存器堆、1个输入先入先出寄存器组和1个输出先入先出寄存器组;其中10个可重构计算阵列块通过一个1个通用寄存器堆互相进行数据的储存、读取和传递;且多个可重构计算阵列块中相邻的两个可重构计算阵列块通过数据输入单元和数据输出单元连接;第一个可重构计算阵列块通过第一个可重构阵列运算行的数据输入单元与输入先入先出寄存器组相连,同时第10个可重构计算阵列块通过最后一个个可重构阵列运算行的数据输出单元与输出先入先出寄存器组相连。
每个可重构计算阵列块包括4个可重构阵列运算行和1个读端口运算行选择器和1个写端口运算行选择器;其每4个可重构阵列运算行共享1个通用寄存器堆的读端口和写端口。
可重构阵列运算行包括数据载入单元,数据输出单元,字节置换网络,比特置换网络和16个8位算术逻辑单元;数据经过数据载入单元,由选择器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和比特置换网络;字节置换网络与比特置换网络的128位的输出分为16个8位的数据分别固定对应于16个8位算术逻辑单元,一次性可以运算4组SM4-128加密算法数据;每个算术逻辑单元可以使用数据选择器选择其中三个置换网络的输出作为其输入;数据载入单元可以暂存算术逻辑单元的结果并读取配置信息决定将数据输出到先进先出寄存器组、下一个可重构阵列运算行还是通用寄存器堆。
算术逻辑单元中包含3输入异或、2输入异或运算;同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出;查找表单元支持数据的查表操作,每4个可重构计算行单元共享一个查找表单元。由于SM4-128加密算法方法中全部为32位运算,因此每4个8位的算术逻辑单元可以通过进位端口连接成为1个32位的算术逻辑单元。
该系统的SM4-128加密算法包括如下6个步骤,对于32轮迭代的128比特的加密算法,对(2)~(6)步骤顺序操作并循环32次后,执行(6)执行1次,即可得到密文(其中0≤i≤31):
(1)生成Y[i]:数据输入单元将X[i+1],X[i+2],X[i+3]同时载入可重构运算单元行中,(其中0≤i≤31);对载入数据经过字节置换网络后,输入值同一个32比特的逻辑运算单元,进行三输入异或操作,得到Y[i],并将其计算结果存入通用寄存器中;
(2)生成A[i]:数据输入单元将轮密钥rk[i]及Y[i]同时载入可重构运算单元行中,在经过字节置换网络进行移位后,再对ri[i],Y[i]两者进行异或操作,将结果A[i]输出至缓存单元中;
(3)查表操作:数据输入单元将A[i]从缓存单元中载入至可重构运算单元行中;A[i]在通过字节置换网络后,在查找表中对A[i]进行查表操作,得到B[i],并将B[i]存入缓存单元中;
(4)线性变换:数据输入单元将B[i]从缓存单元中载入至可重构阵列单元行中;B[i]在经过比特置换网络后,生成中间数据B1[i],B2[i],将B1[i],B2[i],B[i]三者进行异或操作,生成M[i],并将M[i]及B[i]存入缓存单元;将上一行输出结果M[i]及B[i]从缓存单元中载入至可重构阵列单元行中,B[i]在经过比特置换网络后,生成中间数据B3[i],B4[i],将B3[i],B4[i],M[i]三者进行异或操作,得到T[i];
(5)生成X[i+4]:数据输入单元将T[i]从缓存单元中载入至可重构阵列单元行中,对T[i]及X[i]进行异或操作,得到X[i+4];
(6)逆序操作:数据输入单元将X[32],X[33],X[34],X[35]从通用寄存器中载入至可重构计算单元行中,经过字节置换网络,实现逆序,得到从高位至低位按照X[35],X[34],X[33],X[32]的数据,输出至输出先入先出寄存器组,得到密文。
一种基于大规模粗粒度可重构处理器的SM4-128加密算法的实现方法,包括以下步骤:
(1)分析SM4-128加密算法的计算特点,并归纳出数据流图;
(2)确定数据流图之后,针对可重构处理器的硬件特点,在了解其各寄存器、运算器以及各功能模块的作用机制的情况下配置可重构处理器,并生成配置信息;
(3)通过微处理器将配置信息以及所需要的各种初始数据存入相应的存储器中;
(4)最后微处理器启动可重构处理器,并将配置信息及数据发送给可重构处理器;
(5)当可重构处理器完成当前任务后,发送中断信号。
该实现方法基于SM4-128加密算法方法,需要将其转化为数据流图,并制定SM4-128加密算法方法的数据输入方式,然后根据数据流图和数据输入方式对应特定的可重构系统处理器生成相应的配置信息,通过配置可重构阵列块将SM4-128加密算法映射到该阵列上,由此实现SM4-128加密算法方法。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。
Claims (7)
1.一种基于大规模粗粒度可重构处理器的SM4-128加密算法系统,其特征在于:包括可重构处理器、微处理器、系统总线;
其中,所述可重构处理器包括配置控制模块、输入先入先出寄存器组、输出先入先出寄存器组、通用寄存器堆、可重构计算阵列;
所述配置控制模块包括依次连接的配置与控制接口、配置存储器、配置解析模块,配置控制模块的输出端连接可重构处理器;
所述可重构计算阵列包括可重构计算阵列块,可重构计算阵列块包括可重构阵列运算行、写端口运算行选择器、读端口运算行选择器;所述可重构阵列运算行的输出端连接写端口运算行选择器的输入端,写端口运算行选择器的输出端连接通用寄存器堆;所述读端口运算行选择器的输入端接入通用寄存器堆,读端口运算行选择器的输出端连接可重构阵列运算行;
其中,所述可重构阵列运算行包括算术逻辑单元、查找表单元、比特置换网络、字节置换网络以及数据输入单元和数据输出单元;
所述微处理器通过系统总线分别与配置控制模块的配置与控制接口,可重构处理器的输入先入先出寄存器组连接,所述输入先入先出寄存器组连接可重构计算阵列,可重构计算阵列连接输出端连接可重构处理器,输出端连接可重构处理器通过系统总线与微处理器连接;
其中,通过分析SM4-128加密算法的特征来确定SM4-128加密算法的运算流程,将多轮的SM4-128加密算法运算展开成一幅数据流图映射到可重构处理器中,通过多幅数据流图最终完成SM4-128加密算法的整个运算;
微处理器通过系统总线发送明文数据给可重构处理器,可重构处理器将明文数据存入输入先入先出寄存器组,并在最终计算完成后输出密文数据到输出先入先出寄存器组,并发送中断信号,最终由微处理器读出输出至输出先入先出寄存器组中的数据。
2.如权利要求1所述的基于大规模粗粒度可重构处理器的SM4-128加密算法系统,其特征在于:所述的可重构处理器有M个可重构计算阵列块、1个通用寄存器堆、1个输入先入先出寄存器组和1个输出先入先出寄存器组,其中M取整数;其中M个可重构计算阵列块通过一个1个通用寄存器堆互相进行数据的储存、读取和传递;且多个可重构计算阵列块中相邻的两个可重构计算阵列块通过数据输入单元和数据输出单元连接;第一个可重构计算阵列块通过第一个可重构阵列运算行的数据输入单元与输入先入先出寄存器组相连,同时第M个可重构计算阵列块通过最后一个可重构阵列运算行的数据输出单元与输出先入先出寄存器组相连。
3.如权利要求2所述的基于大规模粗粒度可重构处理器的SM4-128加密算法系统,其特征在于:所述的每个可重构计算阵列块包括N个可重构阵列运算行和1个读端口运算行选择器和1个写端口运算行选择器,其中N取整数;其每N个可重构阵列运算行共享1个通用寄存器堆的读端口和写端口。
4.如权利要求3所述的基于大规模粗粒度可重构处理器的SM4-128加密算法系统,其特征在于:所述的可重构阵列运算行包括X1个数据输入单元,X2个数据输出单元,X3个字节置换网络,X4个比特置换网络和X5个8位算术逻辑单元,X6个查找表单元,其中X1,X2,X3,X4,X5和X6均取整数;数据经过数据输入单元,由选择器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和比特置换网络;字节置换网络与比特置换网络的输出分为X5个8位的数据分别固定对应于X5个8位算术逻辑单元,并行运算X5/4组SM4-128加密算法数据;每个算术逻辑单元使用数据选择器选择任意三个置换网络的输出作为其输入;数据输出单元暂存算术逻辑单元的结果并读取配置信息决定将数据输出到先入先出寄存器组、下一个可重构阵列运算行或通用寄存器堆。
5.如权利要求4所述的基于大规模粗粒度可重构处理器的SM4-128加密算法系统,其特征在于:所述算术逻辑单元及查找表用于实现异或运算、与运算、直通输出、查表操作的运算操作;同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出;每4个8位的算术逻辑单元通过进位端口连接成为1个32位的算术逻辑单元;每4个可重构阵列运算行共享一个查找表,来实现查表操作。
6.如权利要求1-5任一所述的基于大规模粗粒度可重构处理器的SM4-128加密算法系统,其特征在于:其特征在于:该系统的SM4-128加密算法包括如下6个步骤,对于32轮迭代的128比特的加密算法,对(2)~(6)步骤顺序操作并循环32次后,执行(6)执行1次,即可得到密文(其中0≤i≤31):
(1)生成Y[i]:数据输入单元将X[i+1],X[i+2],X[i+3]同时载入可重构运算单元行中,(其中0≤i≤31);对载入数据经过字节置换网络后,输入值同一个32比特的逻辑运算单元,进行三输入异或操作,得到Y[i],并将其计算结果存入通用寄存器中;
(2)生成A[i]:数据输入单元将轮密钥rk[i]及Y[i]同时载入可重构运算单元行中,在经过字节置换网络进行移位后,再对ri[i],Y[i]两者进行异或操作,将结果A[i]输出至缓存单元中;
(3)查表操作:数据输入单元将A[i]从缓存单元中载入至可重构运算单元行中;A[i]在通过字节置换网络后,在查找表中对A[i]进行查表操作,得到B[i],并将B[i]存入缓存单元中;
(4)线性变换:数据输入单元将B[i]从缓存单元中载入至可重构阵列单元行中;B[i]在经过比特置换网络后,生成中间数据B1[i],B2[i],将B1[i],B2[i],B[i]三者进行异或操作,生成M[i],并将M[i]及B[i]存入缓存单元;将上一行输出结果M[i]及B[i]从缓存单元中载入至可重构阵列单元行中,B[i]在经过比特置换网络后,生成中间数据B3[i],B4[i],将B3[i],B4[i],M[i]三者进行异或操作,得到T[i];
(5)生成X[i+4]:数据输入单元将T[i]从缓存单元中载入至可重构阵列单元行中,对T[i]及X[i]进行异或操作,得到X[i+4];
(6)逆序操作:数据输入单元将X[32],X[33],X[34],X[35]从通用寄存器中载入至可重构计算单元行中,经过字节置换网络,实现逆序,得到从高位至低位按照X[35],X[34],X[33],X[32]的数据,输出至输出先入先出寄存器组,得到密文。
7.一种基于大规模粗粒度可重构处理器的SM4-128加密算法的实现方法,其特征在于:包括以下步骤:
(1)分析SM4-128加密算法的计算特点,并归纳出数据流图;
(2)确定数据流图之后,针对可重构处理器的硬件特点,在了解其各寄存器、运算器以及各功能模块的作用机制的情况下配置可重构处理器,并生成配置信息;
(3)通过微处理器将配置信息以及所需要的各种初始数据存入相应的存储器中;
(4)最后微处理器启动可重构处理器,并将配置信息及数据发送给可重构处理器;
(5)当可重构处理器完成当前任务后,发送中断信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610299248.1A CN105912501B (zh) | 2016-05-06 | 2016-05-06 | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610299248.1A CN105912501B (zh) | 2016-05-06 | 2016-05-06 | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105912501A true CN105912501A (zh) | 2016-08-31 |
CN105912501B CN105912501B (zh) | 2018-11-06 |
Family
ID=56748507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610299248.1A Active CN105912501B (zh) | 2016-05-06 | 2016-05-06 | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105912501B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679012A (zh) * | 2017-09-27 | 2018-02-09 | 清华大学无锡应用技术研究院 | 用于可重构处理系统的配置的方法和装置 |
CN108400866A (zh) * | 2018-03-01 | 2018-08-14 | 中国人民解放军战略支援部队信息工程大学 | 一种粗粒度可重构密码逻辑阵列 |
CN108616348A (zh) * | 2018-04-19 | 2018-10-02 | 清华大学无锡应用技术研究院 | 使用可重构处理器实现安全算法、解密算法的方法及系统 |
CN108959128A (zh) * | 2018-06-04 | 2018-12-07 | 浙江大学 | Crypt-SHA512加密算法的加速装置与方法 |
CN109993274A (zh) * | 2017-12-29 | 2019-07-09 | 深圳云天励飞技术有限公司 | 人工智能计算装置及相关产品 |
CN110059493A (zh) * | 2019-04-10 | 2019-07-26 | 无锡沐创集成电路设计有限公司 | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 |
CN110321162A (zh) * | 2019-07-01 | 2019-10-11 | 无锡沐创集成电路设计有限公司 | 基于粗粒度可重构计算单元的present加密算法实现方法及系统 |
CN112350819A (zh) * | 2020-10-23 | 2021-02-09 | 四川九洲电器集团有限责任公司 | 一种全流水线sms4加解密方法及系统 |
CN112559442A (zh) * | 2020-12-11 | 2021-03-26 | 清华大学无锡应用技术研究院 | 一种基于软件定义硬件的阵面数字信号处理系统 |
CN113259088A (zh) * | 2021-05-19 | 2021-08-13 | 哈尔滨理工大学 | 一种面向流密码算法的可重构数据通路 |
CN117056279A (zh) * | 2023-10-12 | 2023-11-14 | 之江实验室 | 可重构电路、可重构芯粒间互联的装置及其方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087874A1 (en) * | 2000-12-29 | 2002-07-04 | Lippincott Louis A. | Apparatus and method for integrated chipset content protection |
WO2007145220A1 (ja) * | 2006-06-14 | 2007-12-21 | Panasonic Corporation | 書き換え可能な回路を備える装置、更新システム、更新方法、更新プログラム、及び集積回路 |
CN103297223A (zh) * | 2013-05-07 | 2013-09-11 | 北京航空航天大学 | 基于动态可重构的自恢复容错aes结构及其加密方法 |
CN104933008A (zh) * | 2015-06-24 | 2015-09-23 | 东南大学 | 可重构系统和可重构阵列结构及其应用 |
CN105335331A (zh) * | 2015-12-04 | 2016-02-17 | 东南大学 | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 |
-
2016
- 2016-05-06 CN CN201610299248.1A patent/CN105912501B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087874A1 (en) * | 2000-12-29 | 2002-07-04 | Lippincott Louis A. | Apparatus and method for integrated chipset content protection |
WO2007145220A1 (ja) * | 2006-06-14 | 2007-12-21 | Panasonic Corporation | 書き換え可能な回路を備える装置、更新システム、更新方法、更新プログラム、及び集積回路 |
CN103297223A (zh) * | 2013-05-07 | 2013-09-11 | 北京航空航天大学 | 基于动态可重构的自恢复容错aes结构及其加密方法 |
CN104933008A (zh) * | 2015-06-24 | 2015-09-23 | 东南大学 | 可重构系统和可重构阵列结构及其应用 |
CN105335331A (zh) * | 2015-12-04 | 2016-02-17 | 东南大学 | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 |
Non-Patent Citations (1)
Title |
---|
王敏等: ""SM4密码算法的频域能量分析攻击"", 《信息网络安全》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679012A (zh) * | 2017-09-27 | 2018-02-09 | 清华大学无锡应用技术研究院 | 用于可重构处理系统的配置的方法和装置 |
CN109993274A (zh) * | 2017-12-29 | 2019-07-09 | 深圳云天励飞技术有限公司 | 人工智能计算装置及相关产品 |
CN108400866A (zh) * | 2018-03-01 | 2018-08-14 | 中国人民解放军战略支援部队信息工程大学 | 一种粗粒度可重构密码逻辑阵列 |
CN108400866B (zh) * | 2018-03-01 | 2021-02-02 | 中国人民解放军战略支援部队信息工程大学 | 一种粗粒度可重构密码逻辑阵列 |
US10848306B2 (en) | 2018-04-19 | 2020-11-24 | Wuxi Research Institute Of Applied Technologies Tsinghua University | Method and system of implementing security algorithm and decryption algorithm by using reconfigurable processor |
CN108616348B (zh) * | 2018-04-19 | 2019-08-23 | 清华大学无锡应用技术研究院 | 使用可重构处理器实现安全算法、解密算法的方法及系统 |
CN108616348A (zh) * | 2018-04-19 | 2018-10-02 | 清华大学无锡应用技术研究院 | 使用可重构处理器实现安全算法、解密算法的方法及系统 |
CN108959128A (zh) * | 2018-06-04 | 2018-12-07 | 浙江大学 | Crypt-SHA512加密算法的加速装置与方法 |
CN110059493A (zh) * | 2019-04-10 | 2019-07-26 | 无锡沐创集成电路设计有限公司 | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 |
CN110059493B (zh) * | 2019-04-10 | 2023-04-07 | 无锡沐创集成电路设计有限公司 | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 |
CN110321162A (zh) * | 2019-07-01 | 2019-10-11 | 无锡沐创集成电路设计有限公司 | 基于粗粒度可重构计算单元的present加密算法实现方法及系统 |
CN112350819A (zh) * | 2020-10-23 | 2021-02-09 | 四川九洲电器集团有限责任公司 | 一种全流水线sms4加解密方法及系统 |
CN112559442A (zh) * | 2020-12-11 | 2021-03-26 | 清华大学无锡应用技术研究院 | 一种基于软件定义硬件的阵面数字信号处理系统 |
CN113259088A (zh) * | 2021-05-19 | 2021-08-13 | 哈尔滨理工大学 | 一种面向流密码算法的可重构数据通路 |
CN113259088B (zh) * | 2021-05-19 | 2023-10-20 | 哈尔滨理工大学 | 一种面向流密码算法的可重构数据通路 |
CN117056279A (zh) * | 2023-10-12 | 2023-11-14 | 之江实验室 | 可重构电路、可重构芯粒间互联的装置及其方法 |
CN117056279B (zh) * | 2023-10-12 | 2024-01-26 | 之江实验室 | 可重构电路、可重构芯粒间互联的装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105912501B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912501A (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
CN105335331B (zh) | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 | |
US10515046B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
CN108268278B (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
US10416999B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US20190095383A1 (en) | Processors, methods, and systems for debugging a configurable spatial accelerator | |
US20190004994A1 (en) | Processors and methods for pipelined runtime services in a spatial array | |
CN100536390C (zh) | 一种椭圆曲线密码协处理器 | |
WO2019194918A1 (en) | Apparatuses, methods, and systems for conditional queues in a configurable spatial accelerator | |
CN110321162B (zh) | 基于粗粒度可重构计算单元的present加密算法实现方法及系统 | |
CN105975251B (zh) | 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 | |
CN104933008B (zh) | 可重构系统和可重构阵列结构及其应用 | |
CN110059493B (zh) | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 | |
US20220374695A1 (en) | Performance estimation-based resource allocation for reconfigurable architectures | |
CN106021171A (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统 | |
EP4031985A1 (en) | Efficient execution of operation unit graphs on reconfigurable architectures based on user specification | |
CN102446342B (zh) | 可重构二值运算器、可重构二值图像处理系统及其实现基本形态学算法的方法 | |
CN106155979B (zh) | 一种基于粗粒度可重构架构的des算法密钥扩展系统及扩展方法 | |
CN103761072A (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
CN110890120B (zh) | 基于阻变存储器的通用区块链应用处理加速方法及系统 | |
CN109672524B (zh) | 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法 | |
CN113055060B (zh) | 面向大规模mimo信号检测的粗粒度可重构架构系统 | |
CN203706196U (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
CN104011674B (zh) | 数字信号处理器 | |
CN102004672B (zh) | 一种可配置归约目标自增间隔的归约装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |