CN111563281B - 一种支持多种加解密算法的处理器及其实现方法 - Google Patents
一种支持多种加解密算法的处理器及其实现方法 Download PDFInfo
- Publication number
- CN111563281B CN111563281B CN202010361102.1A CN202010361102A CN111563281B CN 111563281 B CN111563281 B CN 111563281B CN 202010361102 A CN202010361102 A CN 202010361102A CN 111563281 B CN111563281 B CN 111563281B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- encryption
- decryption
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000008707 rearrangement Effects 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 7
- 235000018597 common camellia Nutrition 0.000 claims description 4
- 240000001548 Camellia japonica Species 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 15
- 230000006870 function Effects 0.000 abstract description 13
- 238000013461 design Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 5
- 238000006467 substitution reaction Methods 0.000 description 5
- 241000209507 Camellia Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Classifications
-
- 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
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种支持多种加解密算法的处理器及其实现方法,其中,处理器包括控制单元、存储单元及数据通路;所述存储单元包括读重排列模块;所述数据通路包括:第一非线性操作模块、第一逻辑运算模块、第一级运算流水结果暂存模块、第二逻辑运算模块、第二级运算流水结果暂存模块、第二非线性操作模块、第三逻辑运算模块和写回模块;数据通路本轮次加解密运算结果由写回模块从第一级运算流水结果暂存模块或第二级运算流水结果暂存模块或第三逻辑运算模块数据中选择输出。本发明将加解密过程模块化,对多种加解密算法的相同部分进行硬件复用,实现多种加解密算法使用较少硬件电路,可实现对处理器功能进行扩展,使其支持更多加解密算法。
Description
技术领域
本发明属于电子信息安全技术领域,具体涉及到一种支持多种加解密算法的处理器及其实现方法。
背景技术
由于信息数据***性增长,高通量数据加密方式显得尤为重要。已有的软件加密方式已无法适应高通量数据传输需求,这使得硬件加密方式在许多场景中成为优选,硬件方式加解密技术正在扮演越来越重要的角色。
通常地,加解密处理电路应具有高通量、支持多种算法,并考虑其可移植性。现阶段主要加解密方法主要包括:基于通用CPU(中央处理器)方案、GPU/通用DSP(DigitalSignalProcessor,数字信号处理器)方案、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)方案、ASIP(ApplicationSpecificIntegratedProcessor,专用处理器)方案和FPGA方案等。其中,CPU方案灵活高,可以通过软件编程实现任何加解密算法,但其能效较低,性能较差,容易遭受软件攻击。ASIC方案能效高、性能好,但灵活性较差,不具有可配置性,当加解密标准升级后,需要重新设计ASIC,开发成本变高。ASIP是为某一特定应用和某一领域应用而专门设计的处理器,通过研究应用的某些特性来满足所需的性能,成本和功率等要求,是对专用集成电路和通用处理器这两个极端的一种平衡,相当于可编程配置的ASIC方案,其能效高、性能好、灵活性强,广泛运用于数字信号处理,音视频处理,图像处理等领域。此外,制约设备的一个非常重要因素就是处理器的功耗面积比,加解密处理器通常需要在有限的功耗和硅开销限制下,为多种加解密算法提供高于通用处理器的性能。
常用加解密算法都会具有一些共性的非线性操作,比如查找表操作、异或操作等。然而,出于速度、安全的考虑,一个节点中不能支持两种加解密算法,但由于对加解密的多样性需求,传统做法是在***中嵌入多个只支持单个加解密标准的硬件电路,而这样的方式增加了***的计算资源开销。如何结合所支持加解密算法自身结构,巧妙的设计硬件结构,对于不同的加解密算法,复用一部分硬件电路,提高面积效率比的效果,是需要亟待解决的技术问题。
发明内容
针对现有技术中所存在的问题,本发明结合密码学、计算机体系结构,运用ASIP专用处理器、专用集成电路设计思想、软硬件协同设计思想,以加解密算法为基础,提出了一种处理器设计架构和同时支持多种加解密算法的处理器。
为达到以上目的,一方面,本发明提出了一种支持多种加解密算法的处理器,包括:控制逻辑单元,用于控制整个处理器运行;
存储单元,用于存储和提供所述数据通路进行加密或解密运算的操作数据,包括读重排列模块;以及
数据通路,用于完成相应加解密算法运算;
其中,
所述读重排列模块用于对拟输入数据通路的操作数据进行重排列;
所述数据通路包括:
第一非线性操作模块,用于接收读重排列模块输出的重排列数据,并暂存执行相应非线性操作后的数据;
第一逻辑运算模块,用于接收读重排列模块输出的重排列数据,进行指定的逻辑运算,并将运算结果存储于第一级运算流水结果暂存模块;
第一级运算流水结果暂存模块,用于暂存本轮次加解密的第一逻辑运算模块和第一非线性操作模块的输出数据;
第二逻辑运算模块,用于接收第一级流水线输出暂存模块数据,并进行指定的逻辑运算,结果数据存储于第二级运算流水结果暂存模块;
第二级运算流水结果暂存模块,用于暂存本轮次加解密的第二逻辑运算模块和第一级运算流水结果暂存模块的输出数据;
第二非线性操作模块,用于接收所述读重排列模块输出的重排列数据和第二级运算流水结果暂存模块,并存储执行相应非线性操作后的数据;
第三逻辑运算模块,用于接收第二级运算流水结果暂存模块和第二非线性操作模块数据,进行相应逻辑运算,运算结果作为第三运算流水级输出数据;
写回模块,用于从第一级运算流水结果暂存模块或第二级运算流水结果暂存模块或第三逻辑运算模块的数据中选择所述数据通路本轮次加密或解密运算的输出结果。
优选地,所述逻辑控制单元根据下列加解密算法AES、ZUC、Snow3G、Camellia、ARIA、SEED、FOX、CLEFIA、Hierocrypt-3、SMS4中的至少一种控制所述存储单元以及所述数据通路的操作。
优选地,所述控制逻辑单元支持构成所述处理器的指令集的加解密算法指令。
优选地,所述处理器指令集的指令长度为80位,由高位至低位依次为:第79至72位为控制信号,第71至56位为计数器,第55至42位为源操作数0,第41至28位为源操作数1,第27至14位为源操作数2,第13至0位为目的操作数。
优选地,所述控制逻辑单元包括:
程序流控制器,用于处理器运行控制,包括控制所述数据通路的加解密轮次循环;
程序存储器,用于存储需要执行的指令;
指令解码器,用于将所述指令的机器码译为控制逻辑,控制所述存储单元和所述数据通路。
优选地,所述存储单元还包括:
地址生成器,用于根据指令及其译码结果生成操作数地址;
数据存储器,用于存储地址对应的操作数;
写重排序模块,用于对所述数据通路的输出结果进行重排列后送至所述数据存储器。
优选地,所述数据通路的写回模块根据不同加密或解密算法,将所述数据通路输出结果送至所述写重排序模块或临时数据寄存器或作为处理器输出。
优选地,所述临时数据寄存器将数据送至所述读重排列模块,以使所述数据通路获得下一轮次加密或解密运算的操作数据。
优选地,所述处理器流水级包括:取指、译码、访存、重排列、3级运算和写回。
另一方面,本发明提出了一种加密或解密方法,其特征在于,包括以下步骤:
步骤S1、获得加密或者解密指令;
步骤S2、对所述指令进行译码,得到操作数据存储地址和控制信号;
步骤S3、根据数据存储地址在数据存储器中取得操作数据;
步骤S4、由读重排列模块对所述操作数据进行重排列;
步骤S5、重排列后的操作数据送入数据通路,完成所述加密或者解密指令指定的逻辑运算和非线性操作;
步骤S6、输出加密或解密运算结果。
本发明相对于现有技术取得了如下的技术效果:
本发明通过对加解密算法的分析和重构,将加解密的过程进行模块化,对多种加解密算法中的相同的部分进行硬件的复用,从而在实现的多种加解密算法的过程中使用较少的硬件电路,减少电路的面积开销,同时通过硬件并行化,提高数据通量,处理器顶层采用模块化设计,可以很容易对处理器的功能进行扩展,使其支持更多的加加解密算法。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1示出根据本发明一个实施例的处理器及数据通路结构示意图;
图2示出根据本发明一个实施例的处理器8级工作流水线示意图;
图3示出根据本发明一个实施例的处理器逻辑控制单元结构示意图;
图4示出根据本发明一个实施例的处理器存储单元结构示意图;
图5示出根据本发明一个实施例的加解密的专用指令集及其编码格式;
图6示出根据本发明一个实施例的指令编码规则示意图;
图7示出根据本发明一个实施例的AES加解密算法的专用指令;
图8示出根据本发明一个实施例的处理器实现方法流程图;
图9示出根据本发明一个实施例的处理器实现方法具体工作过程示例。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。下面结合附图和具体实施方式对本发明作进一步描述。
根据本发明的一个方面,提供一种支持多种加解密算法的处理器,所支持的加解密算法包括:AES、ZUC、Snow3G、Camellia、ARIA、SEED、FOX、CLEFIA、Hierocrypt-3、SMS4等。上述算法的共同特性包括:1)加解密算法是基本上是轮次加密。加解密算法由于复杂度的要求,一般都是以轮次操作的形式存在的。除首尾轮次外,每个轮次之间操作基本上都是一样的,只是操作数不同。因此在硬件上可以使用一个数据通路完成一个轮次的操作,并可以使用流水线的形式大大提高执行效率;2)其次,非线性操作通过查找表形式实现。加解密算法中普遍存在非线性操作,以提高算法暴力破解的复杂度。而这些非线性操作都是基于二进制整数在伽罗华域上的一些运算,并且非线性操作的输入比特是长度为2的倍数,一般为8比特,这使得使用查找表操作代替非线性操作变得非常简单。在硬件电路中,查找表操作可以通过访存的形式实现;3)分组码的密钥长度、码长固定。对于大多数加解密算法,密钥长度和输入码长都是固定的,通常为2的倍数,但是密钥在每个加解密轮次中都是固定的;4)算法的加密过程和解密过程呈镜像。加密过程和解密过程非常相似,如果在硬件中进行适当设计,加密过程和解密过程可以进行硬件上的复用,提高面积效率比;5)加解密算法逻辑运算大多是基于伽罗华域的乘法和加法,主要是异或运算,由于在实际算法中,运算的单元大多数为字节,可以将乘法展开,提高运算效率。
发明人通过研究发现,在硬件实现上,加解密算法的非线性操作可以在硬件中使用查找表的方式去实现;加解密算法中的加法,如待加密比特与轮密钥、带加密比特与待加密比特等,可以在硬件中使用异或门实现;加解密算法中乘法由于其基于伽罗华域的特点可使用硬件方式进行实现。以AES加密算法为例,该算法主要操作由轮秘钥加、字节代替、行移位、列混淆组成。其中轮秘钥加操作的实现在硬件中表现为异或操作,能够高效快速的通过硬件电路的异或门实现;字节代替操作实质上为查找表操作,在硬件实现过程中,通过对查找表进行存储,使用RAM访存的操作可以高效地实现字节代替操作;行移位操作中主要操作为循环移位,在硬件中可以使用寄存器或者线的重排列实现;列混淆为基于伽罗华域的乘法运算,也较为适合在硬件中实现。
据此,根据本发明的一个实施例中,提供一种处理器,其结构如图1所示,包括控制逻辑单元200、存储单元300以及数据通路100。控制逻辑单元200用于控制整个处理器运行。存储单元300用于存储和提供所述数据通路进行加密或解密运算的操作数据。数据通路100用于完成相应加解密算法运算。该处理器的工作流水级共为8级,如图2所示,包括:取指IF、译码ID、访存MEM、重排列PMT、第一级运算EX1、第二级运算EX2、第三级运算EX3、写回WB。
控制逻辑单元200包括程序流控制器201、程序存储器202和指令解码器203,如图3所示。其中,
程序流控制器201用于控制整个处理器的运行。在加解密处理器中,程序流控制器相当于神经中枢,产生控制指令,控制着整个芯片的工作流程。本发明实施例中,提供了加解密专用的指令集。在指令集中,一条指令就能完成加解密的一个轮次,由于加解密部分是轮次设计,会有大量的循环,并且循环的形式比较固定,不会存在比较复杂的指令地址跳转,所以在设计循环控制电路的时候,本发明实施例中包括循环控制功能,在程序流控制器中能够在一个时钟周期根据输入信息迅速产生新的输入地址。
程序存储器202用于存储着需要执行的指令。可以根据输入地址,在程序存储器中取得指令并输出。
指令解码器203用于对取得的指令从机器码译为控制信号。指令译码器203在整个处理器中具有重要作用,负责将控制指令发放给各个功能模块,各个功能模块根据接收到的控制信号完成相应的工作。
存储单元300,用于存储和提供所述数据通路进行加密或解密运算的操作数据。存储单元300包括地址生成器301、数据存储器302、读重排序模块303和写重排序模块304,如图4所示。其中,
地址生成器301负责根据指令和指令译码结果得到生成操作数据的地址,到数据存储器302中取得操作数据。本设计中设计的指令大都是SIMD指令,采用了四路地址生成单元,能够并行地处理更宽的数据。
数据存储器302存储着指令的操作数据,能够读写数据。数据存储器302封装了16个256×8位的RAM,寻址的地址为128位。处理器在每个时钟周期内并行地处理128位数据,所以在一个时钟周期内处理器需要从数据存储器内获取128位的数据。
读重排序模块303用于对数据存储器302的访存数据进入数据通路前的重排列,排列方式由加解密算法特性决定。
写重排序模块304对数据通路100的写回模块141的输出结果进行重排列,排列方式由加解密算法特性决定。
数据通路100包括3级运算流水,将本发明处理器所支持的算法的逻辑运算映射到相应级运算流水中。如图1所示,数据通路100各个模块及其工作过程描述如下:
第一非线性操作模块111,用于接收读重排列模块303输出的重排列数据,并暂存执行相应非线性操作后的数据;
第一逻辑运算模块121,用于接收读重排列模块303输出的重排列数据,进行相应逻辑运算,并将运算结果存储于第一运算流水级输出暂存模块121;
第一级运算流水结果暂存模块131,用于暂存本轮次加解密的第一逻辑运算模块121和第一非线性操作模块111的输出数据;
第二逻辑运算模块122,用于接收第一级流水线输出暂存模块121数据,并进行相应逻辑运算,结果数据存储于第二运算流水级输出暂存模块122;
第二级运算流水结果暂存模块132,用于暂存本轮次加解密的第二逻辑运算模块122和第一运算流水级输出暂存模块131的输出数据;
第二非线性操作模块112,用于接收所述读重排列模块303输出的重排列数据和第二运算流水级输出暂存模块132,执行非线性操作,并存储执行相应非线性操作后的数据;
第三逻辑运算模块123,用于接收第二运算流水级输出暂存模块132和第二非线性操作模块数据112,进行相应逻辑运算,运算结果作为第三运算流水级输出数据;
写回模块141,用于从第一运算流水级输出暂存模块131或第二运算流水级输出暂存模块132或第三逻辑运算模块123的数据中选择本轮次加解密运算结果输出。
由于数据存储器302封装了16个256×8位的RAM,寻址的地址为128位,因此数据通路100在每个时钟周期内并行地处理128位数据。由于算法之间的相似性,使得电路上的复用成为可能。不同的算法会具有相同的运算,把这些运算作为数据通路的子模块,在数据读重排列模块中根据不同的算法对数据进行不同的排列,在数据通路中就可以使用同一硬件电路进行逻辑运算;在数据通路中,查找表非线性操作占有一定的比重,每个加解密算法中都会存在查找表非线性操作,不同算法之间可以使用同一块查找表电路。这样能够提高处理器的面积效率比。同时,使得硬件电路可配置,方便进行设计迭代和二次开发。在数据通路中,3级运算流水完成算法中的逻辑运算,在数据通路的最后,使用一个模块用于选择3级运算流水的输出作为数据通路的输出。
根据本发明的一个实施例,用于实现加解密算法中的非线性运算的第一非线性操作模块111和第二非线性操作模块112,分别包含16个256×8位的SRAM,并接收16个8位的数据作为输入。输入的是16个SRAM的地址,因此可以获得来自于SRAM的16个8位数据。根据目标算法的不同要求,可以在数据通路的第1级运算流水或者第2级运算流水中使用第二非线性操作模块112,读重排列模块303对于输入数据进行重排列。
以AES加密算法为例,当在处理器上执行AES加密指令时,会用到数据通路100的2个运算流水级。在第1级运算流水EX1中,读重排列模块303和第一非线性操作模块111分别完成AES加密函数中的shiftrows函数和subbytes函数,轮次密钥从读重排列模块303传送到第一逻辑运算模块121,第一逻辑运算模块121的运算结果和第一非线性操作模块111完成subbytes函数调用后的数据暂存于第一级运算流水结果暂存模块131;在第2级运算流水中,第二逻辑运算模块122完成AES加密函数的mixcolumns函数和addroundkey函数调用,运算结果存储于第二级运算流水结果暂存模块132;第3级运算流水无逻辑运算任务。最终,写回模块141输出运算结果至写重排列模块304。
根据本发明的一个实施例,处理器根据所支持的10种加解密算法,对应用于加解密的专用指令集及其编码格式如图5所示。本发明一个实施例的处理器所支持的加解密专用指令集共有57条指令,其中,使用6条指令完成AES加解密算法,6条指令完成Camellia加解密算法,3条指令完成ZUC加解密算法,4条指令完成SNOW3G加解密算法,3条指令完成SMS4加解密算法,6条指令完成SEED加解密算法,4条指令完成HC-3加解密算法,5条指令完成ARIA加解密算法,6条指令完成FOX加解密算法,4条指令完成CLEFIA加解密算法。考虑了指令集扩展的情况,可以很方便地根据硬件设计进行指令集的调整,其指令根据专门制定的编码规则,一共占80位。如图6所示,一条指令由高位至低位为:第79至72位为控制信号,第71至56位为计数器,第55至42位为源操作数0,第41至28位为源操作数1,第27至14位为源操作数2,第13至0位为目的操作数。
以AES加解密算法的加密过程为例说明加解密专用指令集的使用。如图7所示,其中指令AESENCF完成AES加密算法的第一轮加密,其完成的逻辑功能为轮密钥加;AESECN指令完成AES加密算法的中间轮次,其完成的逻辑功能为字节代替、行移位列混淆、轮密钥加功能;AESENCL完成AES加密算法的最后一轮加密,其完成的逻辑功能为字节代替、行移位、轮密钥加功能。AESDECF、AESDEC、AESDECL操作也是类似。这样,完成AES加密过程,只需要专用指令集中的三条指令,大大降低了软件开发的复杂度。
根据本发明的一个实施例,通过一直支持多种加解密算法的处理器实现方法,如图8所示,包括:
步骤S1、地址生成器生成指令地址,到程序存储器取得这条指令;
步骤S2、指令译码器对所述指令进行译码,得到操作数据存储地址和控制信号;
步骤S3、根据数据存储地址在数据存储器中取得操作数据;
步骤S4、由读重排列模块对所述操作数据进行重排列;
步骤S5、重排列后的操作数据送入数据通路,完成相应逻辑运算和非线性操作;
步骤S6、输出加密或解密运算结果。
举例说明上述处理器的实现方法,如图9所示。控制逻辑单元200每次读取一条指令,并将读取的指令解码为80位的控制信号,存入位长为80位的寄存器,该寄存器连接到程序流控制器201、地址生成器301、数据存储器302、读重排序模块303、数据通路100、写重排序模块304。程序流控制器301根据输入信号来控制程序存储器202,产生新的指令,包括控制循环、结束循环等。地址生成器301根据传入的控制信号产生操作数的地址,传送到数据存储器302中进行取数。其中,数据存储器302由四个存储器块组成(其中每个存储器块由16个256x8比特的SRAM组成)。取数完成之后,得到的数会被传送进读重排序模块303中进行重排列。根据具体的控制信号会有不同的排列方式,不同加解密算法会有不同的控制信号,产生不同的排列方式。然后,操作数据进入数据通路100,数据通路根据指令译码模块203的输出信号、读重排序303模块提供的数据进行数据的运算,再由数据通路100的写回模块131将运算结果写入到写重排序模块304进行重排列。根据不同加密或解密算法,写重排序模块304的输出,可以作为处理器的输出结果;也可能送至一组临时数据寄存器后再送至读重排列模块303进行重排列,作为数据通路100下一轮次运算的输入;还可能存储至数据存储器302模块。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种支持多种加解密算法的处理器,其特征在于,包括
控制逻辑单元,用于控制整个处理器运行,其包括:
程序流控制器,用于处理器运行控制,包括控制数据通路的加解密轮次循环;
程序存储器,用于存储需要执行的指令;
指令解码器,用于将所述指令的机器码译为控制逻辑,控制存储单元和所述数据通路;
存储单元,用于存储和提供所述数据通路进行加密或解密运算的操作数据,包括读重排列模块;以及
数据通路,用于完成相应加解密算法运算;
其中,
所述读重排列模块用于对拟输入数据通路的操作数据进行重排列;
所述数据通路包括:
第一非线性操作模块,用于接收读重排列模块输出的重排列数据,并暂存执行相应非线性操作后的数据;
第一逻辑运算模块,用于接收读重排列模块输出的重排列数据,进行指定的逻辑运算,并将运算结果存储于第一级运算流水结果暂存模块;
第一级运算流水结果暂存模块,用于暂存本轮次加解密的第一逻辑运算模块和第一非线性操作模块的输出数据;
第二逻辑运算模块,用于接收第一级流水线输出暂存模块数据,并进行指定的逻辑运算,结果数据存储于第二级运算流水结果暂存模块;
第二级运算流水结果暂存模块,用于暂存本轮次加解密的第二逻辑运算模块和第一级运算流水结果暂存模块的输出数据;
第二非线性操作模块,用于接收所述读重排列模块输出的重排列数据和第二级运算流水结果暂存模块,并存储执行相应非线性操作后的数据;
第三逻辑运算模块,用于接收第二级运算流水结果暂存模块和第二非线性操作模块数据,进行相应逻辑运算,运算结果作为第三运算流水级输出数据;
写回模块,用于从第一级运算流水结果暂存模块或第二级运算流水结果暂存模块或第三逻辑运算模块的数据中选择所述数据通路本轮次加密或解密运算的输出结果。
2.根据权利要求1所述的处理器,其特征在于,所述逻辑控制单元根据下列加解密算法AES、ZUC、Snow3G、Camellia、ARIA、SEED、FOX、CLEFIA、Hierocrypt-3、SMS4中的至少一种控制所述存储单元以及所述数据通路的操作。
3.根据权利要求2所述的处理器,其特征在于,所述控制逻辑单元支持构成所述处理器的指令集的加解密算法指令。
4.根据权利要求3所述的处理器,其特征在于,所述处理器指令集的指令长度为80位,由高位至低位依次为:第79至72位为控制信号,第71至56位为计数器,第55至42位为源操作数0,第41至28位为源操作数1,第27至14位为源操作数2,第13至0位为目的操作数。
5.根据权利要求1所述的处理器,其特征在于,所述存储单元还包括:
地址生成器,用于根据指令及其译码结果生成操作数地址;
数据存储器,用于存储地址对应的操作数;
写重排序模块,用于对所述数据通路的输出结果进行重排列后送至所述数据存储器。
6.根据权利要求5所述的处理器,其特征在于,所述数据通路写回模块根据不同加密或解密算法,将所述数据通路输出结果送至所述写重排序模块或临时数据寄存器或作为处理器输出。
7.根据权利要求6所述的处理器,其特征在于,所述临时数据寄存器将数据送至所述读重排列模块,以使所述数据通路获得下一轮次加密或解密运算的操作数据。
8.根据权利要求1至7中任一项所述的处理器,其特征在于,处理器流水级包括:取指、译码、访存、重排列、3级运算和写回。
9.一种基于权利要求1至8任一项所述的处理器的加密或者解密方法,其特征在于,包括以下步骤:
步骤S1、获得加密或者解密指令;
步骤S2、对所述指令进行译码,得到操作数据存储地址和控制信号;
步骤S3、根据数据存储地址在数据存储器中取得操作数据;
步骤S4、由读重排列模块对所述操作数据进行重排列;
步骤S5、重排列后的操作数据送入数据通路,完成所述加密或者解密指令指定的逻辑运算和非线性操作;
步骤S6、输出加密或解密运算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361102.1A CN111563281B (zh) | 2020-04-30 | 2020-04-30 | 一种支持多种加解密算法的处理器及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361102.1A CN111563281B (zh) | 2020-04-30 | 2020-04-30 | 一种支持多种加解密算法的处理器及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111563281A CN111563281A (zh) | 2020-08-21 |
CN111563281B true CN111563281B (zh) | 2023-10-27 |
Family
ID=72073293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010361102.1A Active CN111563281B (zh) | 2020-04-30 | 2020-04-30 | 一种支持多种加解密算法的处理器及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563281B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112152607B (zh) * | 2020-09-15 | 2024-07-16 | Oppo广东移动通信有限公司 | 完整性保护电路及其数据处理方法和原始数据校验装置 |
CN112350819B (zh) * | 2020-10-23 | 2022-02-18 | 四川九洲电器集团有限责任公司 | 一种全流水线sms4加解密方法及*** |
CN114826617A (zh) * | 2022-04-29 | 2022-07-29 | 西北工业大学 | 工业物联网终端***设计、数据验证方法及硬件加速装置 |
CN115765990B (zh) * | 2022-11-02 | 2023-07-18 | 华中科技大学 | 一种后量子密码算法的ntru安全协处理器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7254231B1 (en) * | 1999-10-14 | 2007-08-07 | Ati International Srl | Encryption/decryption instruction set enhancement |
CN102054137A (zh) * | 2009-11-10 | 2011-05-11 | 美信集成产品公司 | 用于集成微控制器和外部存储***的块加密安全 |
CN102571119A (zh) * | 2010-11-15 | 2012-07-11 | 瑞萨电子株式会社 | 半导体集成电路及其操作方法 |
CN108293021A (zh) * | 2015-01-30 | 2018-07-17 | Nicira股份有限公司 | 边缘网关处的动态数据通路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9893881B2 (en) * | 2015-06-29 | 2018-02-13 | Intel Corporation | Efficient sharing of hardware encryption pipeline for multiple security solutions |
-
2020
- 2020-04-30 CN CN202010361102.1A patent/CN111563281B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7254231B1 (en) * | 1999-10-14 | 2007-08-07 | Ati International Srl | Encryption/decryption instruction set enhancement |
CN102054137A (zh) * | 2009-11-10 | 2011-05-11 | 美信集成产品公司 | 用于集成微控制器和外部存储***的块加密安全 |
CN102571119A (zh) * | 2010-11-15 | 2012-07-11 | 瑞萨电子株式会社 | 半导体集成电路及其操作方法 |
CN108293021A (zh) * | 2015-01-30 | 2018-07-17 | Nicira股份有限公司 | 边缘网关处的动态数据通路 |
Also Published As
Publication number | Publication date |
---|---|
CN111563281A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563281B (zh) | 一种支持多种加解密算法的处理器及其实现方法 | |
US7174014B2 (en) | Method and system for performing permutations with bit permutation instructions | |
US7221763B2 (en) | High throughput AES architecture | |
ES2805125T3 (es) | Arquitectura e instrucciones flexibles para el estándar de cifrado avanzado (AES) | |
CN110321162B (zh) | 基于粗粒度可重构计算单元的present加密算法实现方法及*** | |
US6952478B2 (en) | Method and system for performing permutations using permutation instructions based on modified omega and flip stages | |
JP4740611B2 (ja) | 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ | |
GB2551849B (en) | AES hardware implementation | |
KR100377176B1 (ko) | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 | |
JP2003015522A (ja) | 暗号回路 | |
US20090168999A1 (en) | Method and apparatus for performing cryptographic operations | |
CN110059493B (zh) | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及*** | |
KR20100092805A (ko) | 재구성 가능한 구조의 프로세서 | |
JP2002049309A (ja) | データ暗号化標準アルゴリズムを利用した暗号化装置 | |
McGregor et al. | Architectural enhancements for fast subword permutations with repetitions in cryptographic applications | |
US9112698B1 (en) | Cryptographic device and method for data encryption with per-round combined operations | |
US20100329450A1 (en) | Instructions for performing data encryption standard (des) computations using general-purpose registers | |
US6865272B2 (en) | Executing permutations | |
Plos et al. | Compact hardware implementations of the block ciphers mCrypton, NOEKEON, and SEA | |
JP4120193B2 (ja) | 暗号復号回路 | |
US7254231B1 (en) | Encryption/decryption instruction set enhancement | |
KR20030051111A (ko) | AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로 | |
US7295672B2 (en) | Method and apparatus for fast RC4-like encryption | |
KR20060014420A (ko) | 암호화/암호 해독용 장치, 메모리 요구량 감소 방법 및컴퓨터 프로그램 제품 | |
JP2004302647A (ja) | ベクトルプロセッサおよびレジスタのアドレス指定方法 |
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 |