CN116415262A - 一种电路模块以及基于寄存器的运算方法 - Google Patents
一种电路模块以及基于寄存器的运算方法 Download PDFInfo
- Publication number
- CN116415262A CN116415262A CN202111640115.3A CN202111640115A CN116415262A CN 116415262 A CN116415262 A CN 116415262A CN 202111640115 A CN202111640115 A CN 202111640115A CN 116415262 A CN116415262 A CN 116415262A
- Authority
- CN
- China
- Prior art keywords
- register
- field
- information
- circuit module
- symmetric key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013478 data encryption standard Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
本申请提供一种电路模块以及基于寄存器的运算方法,其中,电路模块包括寄存器和运算单元,运算单元能够实现至少两种对称密钥算法,从而可以通过寄存器和运算单元实现不止一种对称密钥算法,硬件成本较低。寄存器在获取到指定指令时,将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识;运算单元在检测到第二字段写入启动标识时,读取寄存器的第一字段的信息;根据读取到的目标对称密钥算法的信息和待运算数据的信息产生运算结果。这样,可以根据当前场景需要,选择合适的对称密钥算法来执行相应的运算,从而以较低的硬件成本,满足多种应用场景的需要。
Description
技术领域
本申请属于电路技术领域,尤其涉及一种电路模块以及基于寄存器的运算方法。
背景技术
为了满足不同应用场景的需要,通常期望能够在一个芯片上实现多个基于硬件的对称密钥算法的功能。
而由于各个对称密钥算法各不相同,因此通常是在芯片上设置多个硬件模块来分别实现各个对称密钥算法。此时,芯片上为了实现各个对称密钥算法,所需的晶圆的面积较大,所消耗的硬件资源较多,导致成本较高。
发明内容
本申请实施例提供了一种电路模块以及基于寄存器的运算方法,可以解决芯片上为了实现各个对称密钥算法,所需的晶圆的面积较大的问题。
第一方面,本申请实施例提供了一种电路模块,电路模块包括寄存器和运算单元,运算单元能够实现至少两种对称密钥算法;
寄存器用于:
当获取到指定指令时,将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识,运算配置数据中包括目标对称密钥算法的信息和待运算数据的信息;
运算单元用于:
当检测到第二字段写入启动标识时,读取寄存器的第一字段的信息;
根据读取到的第一字段中,目标对称密钥算法的信息和待运算数据的信息,产生运算结果。
可选地,寄存器包括配置寄存器和控制寄存器,寄存器中的第一字段位于配置寄存器中,寄存器中的第二字段位于控制寄存器中。
可选地,运算配置数据包括算法类型信息、加解密类型信息、密钥长度信息、密钥信息以及待运算数据中的至少一种。
可选地,运算单元还用于:
在产生运算结果之后,将运算结果写入寄存器中的第三字段,并在寄存器中的第四字段写入运算结束标识。
可选地,寄存器包括运算状态寄存器和运算结果寄存器,寄存器中的第三字段位于运算结果寄存器中,寄存器中的第四字段位于运算状态寄存器中。
可选地,寄存器与总线接口连接;
寄存器用于:
通过总线接口,获取指定指令。
可选地,电路模块还包括控制单元,控制单元用于:
基于时钟信号或者复位信号,控制运算单元。
第二方面,本申请实施例提供了一种基于寄存器的运算方法,运算方法应用于电路模块,电路模块包括寄存器和运算单元,运算单元能够实现至少两种对称密钥算法,运算方法包括:
当获取到指定指令时,寄存器将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识,运算配置数据中包括目标对称密钥算法的信息和待运算数据的信息;
当检测到第二字段写入启动标识时,运算单元读取寄存器的第一字段的信息;
运算单元根据读取到的第一字段中,目标对称密钥算法的信息和待运算数据的信息,产生运算结果。
可选地,运算方法还包括:
寄存器通过总线接口,获取指定指令。
可选地,电路模块还包括控制单元,运算方法还包括:
基于时钟信号或者复位信号,控制运算单元。
第三方面,本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如第二方面的基于寄存器的运算方法。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例中,电路模块包括寄存器和运算单元,运算单元能够实现至少两种对称密钥算法,可见,本申请实施例中,可以通过寄存器和运算单元实现不止一种对称密钥算法,而不是针对每个对称密钥算法单独设置独立的运算单元和独立的寄存器,硬件成本较低。寄存器在获取到指定指令时,将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识;运算单元在检测到第二字段写入启动标识时,读取寄存器的第一字段的信息;根据读取到的第一字段中,目标对称密钥算法的信息和待运算数据的信息,产生运算结果。可见,本申请实施例中,可以根据当前场景需要,选择合适的对称密钥算法来执行相应的运算,从而以较低的硬件成本,满足多种应用场景的需要。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种芯片的结构示意图;
图2为本申请实施例提供的一种电路模块的结构示意图;
图3A为本申请实施例提供的AES算法对应的一种传统电路框架的结构示意图;
图3B为本申请实施例提供的DES算法对应的一种传统电路框架的结构示意图;
图3C为本申请实施例提供的SM4算法对应的一种传统电路框架的结构示意图;
图4为本申请实施例提供的运算单元的一种示例性结构示意图;
图5为本申请实施例提供的一种基于寄存器的运算方法的流程示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是本申请还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施例的限制。
正如背景技术中的描述,目前的芯片中部署的基于硬件的对称密钥算法通常都是各自独立的电路模块,这样,为了实现多个对称密钥算法,传统的做法是需要采用多个独立的电路模块,因此芯片中所要占用的晶圆面积会比较大,并且,需要为不同的对称密钥算法配置不同的寄存器来进行相应的运算操作,硬件成本较高,并且,需要为不同的软件程序来驱动不同的寄存器来分别实现不同的算法,导致软件复杂度较高。
基于以上技术问题,本申请实施例提供了一种电路模块,可以解决芯片上为了实现各个对称密钥算法,所需的晶圆的面积较大的问题。
其中,电路模块可以位于芯片上。电路模块可以通过总线接口与芯片上的CPU等其他模块进行连接。
芯片的具体结构在此不做限制。
在一种示例中,如图1所示,芯片可以包括中央处理器(central processingunit,CPU)、高速总线(Advanced High-Performance Bus,AHB)以及外围设备总线(Advanced Peripheral Bus,APB)。CPU可以通过AHB与存储器保护单元(MemoryProtection Unit,MPU)连接,MPU可以与非易失性存储器(Non-Volatile Memory,NVM)、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、一次性可编程存储器(One-time Programmable Memory,OTP)中的至少一种进行连接。AHB与APB之间通过AHB-APB桥(bridge)连接。AHB可以用于低带宽的周边设备进行连接。例如,AHB可以与以下设备中的一种或多种进行连接:
电路模块、循环冗余校验(Cyclic Redundancy Check,CRC)、看门狗计时器(WatchDog Timer,WDT)、随机数发生器(Random Number Generator,RNG)、单线协议(Single WireProtocol,SWP)接口、时钟(Timer,TIMER)、通用功能输入/输出(General purpose input/output,GPIO)、知识产权核(Intellectual Property Core,IP Core)、电源毛刺检测传感器(Glitch Sensor,GS)、光检测传感器(Light Detector,LD)、温度检测传感器(Temperature Detector,TD)、频率检测传感器(Frequency Detector,FD)、电压检测传感器(Voltage Detector,VD)、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)、串行外设接口(Serial Peripheral Interface,SPI)、集成电路(Inter-Integrated Circuit,I2C)总线、ISO7816接口。
可见,在如图1的一种示例中,本申请实施例中的电路模块可以通过APB与芯片中的CPU连接,以与CPU进行信息交互。需要说明的是,在其他一些示例中,该电路模块也可以通过其他方式与芯片中的CPU进行连接。此外,电路模块也可以与芯片中的其他模块进行连接。本申请实施例对于电路模块在芯片中的具体位置以及连接关系等不做限定。
如图2所示,为电路模块的一种具体示例图。
图2中,电路模块20可以包括寄存器201和运算单元202,运算单元202能够实现至少两种对称密钥算法。
电路模块中,寄存器用于:
当获取到指定指令时,将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识,运算配置数据中包括目标对称密钥算法的信息和待运算数据的信息;
运算单元用于:
当检测到第二字段写入启动标识时,读取寄存器的第一字段的信息;
根据读取到的第一字段中,目标对称密钥算法的信息和待运算数据的信息,产生运算结果。
下面针对电路模块的应用进行具体介绍。
电路模块中的寄存器的数量在此不做限制。示例性地,该寄存器可以为一组寄存器。该一组寄存器中可以包括多个寄存器,各个寄存器的配置可以相互不同,也可以相同或者相似。例如,该寄存器中,可以包括多个待运算数据寄存器,以存储多组待运算数据。
电路模块中,运算单元能够实现至少两种对称密钥算法。其中,对称密钥算法指加密和解密使用相同密钥、或者加密和解密的密钥可以相互推算的算法。本申请实施例中,上述对称密钥算法为硬件对称密钥算法,也即是说基于硬件来实现的对称密钥算法,这样可以减少程序代码量,减少代码开发成本。
示例性地,该至少两种对称密钥算法可以包括高级加密标准(AdvancedEncryption Standard,AES)算法、数据加密标准(Data Encryption Standard,DES)算法、三重数据加密标准(Triple Data Encryption Standard,TDES)算法、SM1算法、SM4算法以及SSF33算法中的至少两种。
该运算单元中,可以基于该至少两种对称密钥算法的运算逻辑进行相应逻辑基础组件的合并和重组。例如,在一种示例中,SM4算法和AES算法均涉及异或逻辑运算,则该运算单元中可以包括能够进行异或逻辑运算的逻辑基础组件,以基于应用场景的需要,通过该逻辑基础组件执行SM4算法或者AES算法中的异或逻辑运算,从而使得该能够进行异或逻辑运算的逻辑基础组件能够满足多个对称密钥算法的运算要求,而不需要为各个对称密钥算法设置不同的逻辑基础组件来分别执行异或逻辑运算。
并且,各个对称密钥算法可以在逻辑单元中对应不同的逻辑通路,以完成各个对称密钥算法各自对应的运算。此外,该运算单元可以对应电路模块中的寄存器,也即是说,无论运算单元当前用于实现哪一种对称密钥算法,都可以基于该寄存器来实现相应的加密或者解密运算。可见,本申请实施例中,该至少两种对称密钥算法都基于相同的寄存器来进行相应的运算操作,简化了芯片中部署多种对称密钥算法时的寄存器的操作以及相关的配置要求,并且相对于每一种对称密钥算法对应配置一组寄存器的传统方式,本申请实施例的方案减少了寄存器数量,降低了硬件成本。
寄存器在获取到指定指令时,将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识。
运算配置数据中包括目标对称密钥算法的信息和待运算数据的信息。其中,运算单元能够实现的至少两种对称密钥算法中包括该目标对称密钥算法。示例性地,该待运算数据指需要进行加密或者解密的数据,该目标对称密钥算法可以包括目标对称密钥算法的算法类型、加解密类型、密钥长度等。
其中,该指定指令的具体获取方式可以有多种。
示例性地,该指定指令可以是由芯片中的CPU等模块通过总线接口发送至寄存器的,或者,也可以是其他设备发送给寄存器的。该指定指令用于指示电路模块执行指定的加密运算或者解密运算。
该指定指令相关的运算配置数据可以包括该指定指令中携带有的一些数据,也可以是基于该指定指令确定的数据。
例如,该指定指令包含目标对称密钥算法的算法标识,则可以基于该目标对称密钥算法的算法标识,从指定的存储空间中查询到该算法标识对应的密钥信息、密钥长度信息、算法类型信息。此外,该指定指令中还可以携带待运算数据以及相应运算的加解密类型,该加解密类型指示是进行加密运算或者解密运算。
这样,寄存器可以获得该待运算数据、以及查询到的该目标对称密钥算法对应的密钥信息、密钥长度信息、算法类型信息以作为该指定指令相关的运算配置数据,并写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识,以通过该启动标识指示其他单元或者模块(例如运算单元)进行该指定指令对应的加密或者解密运算。
运算单元在检测到第二字段写入启动标识时,读取寄存器的第一字段的信息;根据读取到的第一字段中,目标对称密钥算法的信息和待运算数据的信息,产生运算结果。
其中,运算单元可以监听该第二字段,当监听到该第二字段写入该启动标识时,读取第一字段中的信息,以获取指定指令相关的运算配置数据。以根据读取到的目标对称密钥算法的信息,确定运算单元中当前要应用的逻辑基础组件以及相应的逻辑通路,以对待运算数据执行相应的目标对称密钥算法的运算,从而产生运算结果。
可见,本申请实施例中,电路模块包括寄存器和运算单元,运算单元能够实现至少两种对称密钥算法,从而可以通过寄存器和运算单元实现不止一种对称密钥算法,而不是针对每个对称密钥算法单独设置独立的运算单元和独立的寄存器,硬件成本较低。寄存器在获取到指定指令时,将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识;运算单元在检测到第二字段写入启动标识时,读取寄存器的第一字段的信息;根据读取到的第一字段中,目标对称密钥算法的信息和待运算数据的信息,产生运算结果。这样,可以根据当前场景需要,选择合适的对称密钥算法来执行相应的运算,从而以较低的硬件成本,满足多种应用场景的需要。
可选地,在一些实施例中,运算配置数据包括算法类型信息、加解密类型信息、密钥长度信息、密钥信息以及待运算数据中的至少一种。
其中,不同的运算配置数据可以存储于配置寄存器的不同字段。若配置寄存器的数量有多个,那么,该多个配置寄存器可以用于存储运算配置信息中的不同信息。
可选地,在一些实施例中,寄存器包括配置寄存器和控制寄存器,寄存器中的第一字段位于配置寄存器中,寄存器中的第二字段位于控制寄存器中。
其中配置寄存器具体可以包括一个或者多个寄存器。当配置寄存器的数量为多个时,不同的配置寄存器可以用于存储不同的配置信息。
例如,在一种示例中,该配置寄存器具体可以包括功能配置寄存器、密钥配置寄存器和待运算数据配置寄存器。
其中,该功能配置寄存器中的字段可以用于存储算法类型信息、加解密类型信息和密钥长度信息。
该功能配置寄存器中的字段的一种示例性配置方式可以参见表1。在该种示例中,该功能配置寄存器为32位的寄存器。
表1:功能配置寄存器中的字段配置方式
密钥配置寄存器用于存储密钥信息。
该密钥配置寄存器可以有一个,也可以有多个。
例如,在一种示例中,该密钥配置寄存器可以有8个,该8个密钥配置寄存器中,任一密钥配置寄存器的名称可以为BCEKEYx,x=0,1,2,3,4,5,6或7。其中,任一密钥配置寄存器BCEKEYx中的字段的一种示例性配置方式可以参见表2。在该种示例中,该密钥配置寄存器为32位的寄存器。
表2:密钥配置寄存器中的字段配置方式
待运算数据配置寄存器用于存储待运算数据。
该待运算数据配置寄存器可以有一个,也可以有多个。
例如,在一种示例中,该待运算数据配置寄存器可以有4个,该4个待运算数据配置寄存器中,任一待运算数据配置寄存器的名称可以为BCEDATIN x,x=0,1,2或3。
该待运算数据配置寄存器中的字段的一种示例性配置方式可以参见表3。在该种示例中,该待运算数据配置寄存器为32位的寄存器。
表3:待运算数据配置寄存器中的字段配置方式
控制寄存器可以用于存储启动标识。以使得运算单元基于控制寄存器中存储的启动标识,启动相应的运算操作。
在一种示例中,该控制寄存器中的字段的一种示例性配置方式可以参见表4。在该种示例中,该控制寄存器为32位的寄存器。此时,启动标识为1并存储于该控制寄存器的0位。
表4:控制寄存器中的字段配置方式
可选地,在一些实施例中,运算单元还用于:
在产生运算结果之后,将运算结果写入寄存器中的第三字段,并在寄存器中的第四字段写入运算结束标识。
本申请实施例中,运算单元在产生运算结果之后,可以将运算结果写入寄存器中的第三字段,并在寄存器的第四字段写入运算结束标识,以指示运算单元完成该指定指令对应的运算。以便于其他模块或者设备从寄存器获取到该运算结果。
例如,芯片中的CPU在通过总线接口向寄存器发送指定指令之后,可以通过总线接口,以指定的周期循环查询寄存器中的第四字段,当检测到第四字段中的运算结束标识时,可以读取寄存器中的第三字段,从而从寄存器的第三字段中获取该运算结果。
可选地,在一些实施例中,寄存器包括运算状态寄存器和运算结果寄存器,寄存器中的第三字段位于运算结果寄存器中,寄存器中的第四字段位于运算状态寄存器中。
运算状态寄存器用于存储运算结束标识,以通过该运算结束标识,指示运算单元已完成相应的加密或者解密运算。
在一种示例中,该运算状态寄存器中的字段的一种示例性配置方式可以参见表5。在该种示例中,该运算状态寄存器为32位的寄存器。此时,运算结束标识为1并存储于该运算状态寄存器的0位。
表5:运算状态寄存器中的字段配置方式
运算结果寄存器用于存储运算结果。
该运算结果寄存器可以有一个,也可以有多个。
例如,在一种示例中,该运算结果寄存器可以有4个,该4个运算结果寄存器中,任一运算结果寄存器的名称可以为BCEDATOUT x,x=0,1,2或3。
该运算结果寄存器中的字段的一种示例性配置方式可以参见表6。在该种示例中,该运算结果寄存器为32位的寄存器。
表6:运算结果寄存器中的字段配置方式
可选地,在一些实施例中,寄存器与总线接口连接;
寄存器用于:
通过总线接口,获取指定指令。
其中,总线接口可以分别与控制单元和寄存器连接,以使得寄存器和控制单元可以与芯片中的其他模块进行信息交互。例如,寄存器可以通过总线接口获取CPU的相关控制指令、待运算数据以及配置信息等等,并可以通过总线接口向CPU传输运算结果。
可选地,在一些实施例中,电路模块还包括控制单元,控制单元用于:
基于时钟信号或者复位信号,控制运算单元。
控制单元可以与运算单元连接,从而可以与运算单元进行信息交互。例如,控制单元可以向运算单元发送相关算法的配置信息、向运算单元发送复位信号以使得相应运算单元在运算完成后进行复位。
下面结合附图,举例说明本申请实施例中电路模块相对于目前的传统方式的差异。
在一种示例中,芯片中需要部署AES算法、DES算法和SM4算法。
目前的传统方式中,AES算法对应的知识产权核(Intellectual Property Core,IP Core)框架设计如图3A所示。在集成电路领域,IP核指用于专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程逻辑门阵列(Field ProgrammableGate Array,FPGA)中的预先设计好的电路功能模块。
其中,该示例中,AES算法对应的IP核框架中包括控制单元、总线接口、AES算法单元、逻辑单元、安全单元和AES寄存器。
DES算法对应的IP电路框架设计如图3B所示。其中,该示例中,DES算法对应的IP核中包括控制单元、总线接口、DES算法单元、逻辑单元、安全单元和DES寄存器。
SM4算法对应的IP核框架设计如图3C所示。其中,该示例中,SM4算法对应的IP核框架中包括控制单元、总线接口、SM4算法单元、逻辑单元、安全单元和SM4寄存器。
而作为本申请实施例的一种示例,如图4所示,运算单元可以实现AES算法、DES算法和SM4算法。其中,运算单元中的逻辑基础组件的不同组合可以分别用于实现AES算法、DES算法和SM4算法,并且,运算单元有至少一个逻辑基础组件均可以用于AES算法、DES算法和SM4算法。例如,运算单元中能够进行异或逻辑运算的逻辑基础组件均用于AES算法、DES算法和SM4算法的运算中。该运算单元还可以包括逻辑子单元和安全子单元。该逻辑子单元用于执行指定的逻辑运算。该安全子单元用于执行基于数据掩码、随机数噪声的相关运算,以进一步提升数据安全性。
可见,通过将多个独立的对称密钥算法的电路整合为一个运算单元,可以在保持原有的算法功能的基础上,精简了电路,减少了电路所占的空间。
在实际研发时,通过测试,相比于传统的硬件对称密钥算法分别设置对应的电路模块的方案,本申请实施例的一种具体实施中的方案的功耗小于传统方案中的功耗。
其中,本申请实施例的一种具体实施中的方案的功耗与传统方案的功耗的对比情况如表7。
表7:本申请实施例的一种具体实施中的方案的功耗与传统方案的功耗的对比情况
此外,通过测试,相比于传统的硬件对称密钥算法分别设置对应的电路模块的方案,本申请实施例的一种具体实施中的方案的运行速度高于传统方案。
本申请实施例的一种具体实施中的方案与传统方案的运行速度的对比情况如表8。
表8:本申请实施例的一种具体实施中的方案与传统方案的运行速度的对比情况
其中,AES-128加密指密钥长度为128位的AES算法的加密运算。AES-192加密至AES-256解密的含义可以参考AES-128加密的含义。TDES-2KEY加密指基于两个密钥的TDES算法的加密运算。TDES-3KEY加密至TDES-3KEY解密的含义可以参考TDES-2KEY加密的含义。
并且,通过测试,相比于传统的硬件对称密钥算法分别设置对应的电路模块的方案,本申请实施例的一种具体实施中的方案的代码量少于传统方案。
本申请实施例的一种具体实施中的方案与传统方案的代码量的对比情况如表9。
表9:本申请实施例的一种具体实施中的方案与传统方案的代码量的对比情况
根据表9的示例,在实现相同的算法功能的情况下,本申请实施例的一种具体实施相比于传统方案可以减少大约210Bytes的代码量。
对应于上述电路模块,本申请实施例提供了一种基于寄存器的运算方法。图5示出了本申请实施例提供的一种基于寄存器的运算方法的流程图,该运算方法可以应用于上述任一实施例中的电路模块。在一种实施例中,该电路模块包括寄存器和运算单元,运算单元能够实现至少两种对称密钥算法。
运算方法包括:
步骤501,当获取到指定指令时,寄存器将指定指令相关的运算配置数据写入寄存器中的第一字段,并在寄存器中的第二字段写入启动标识,运算配置数据中包括目标对称密钥算法的信息和待运算数据的信息;
步骤502,当检测到第二字段写入启动标识时,运算单元读取寄存器的第一字段的信息;
步骤503,运算单元根据读取到的第一字段中,目标对称密钥算法的信息和待运算数据的信息,产生运算结果。
可选地,该运算方法还包括:
寄存器通过总线接口,获取指定指令。
可选地,电路模块中还包括控制单元,运算方法还包括:
基于时钟信号或者复位信号,控制运算单元。
上述步骤的具体介绍可参考上述电路模块的实施例中的关联部分,在此不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述各个方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种电路模块,其特征在于,包括寄存器和运算单元,所述运算单元能够实现至少两种对称密钥算法;
所述寄存器用于:
当获取到指定指令时,将所述指定指令相关的运算配置数据写入所述寄存器中的第一字段,并在所述寄存器中的第二字段写入启动标识,所述运算配置数据中包括目标对称密钥算法的信息和待运算数据的信息;
所述运算单元用于:
当检测到所述第二字段写入所述启动标识时,读取所述寄存器的第一字段的信息;
根据读取到的所述第一字段中,所述目标对称密钥算法的信息和所述待运算数据的信息,产生运算结果。
2.根据权利要求1所述的电路模块,其特征在于,所述寄存器包括配置寄存器和控制寄存器,所述寄存器中的第一字段位于所述配置寄存器中,所述寄存器中的第二字段位于所述控制寄存器中。
3.根据权利要求1所述的电路模块,其特征在于,所述运算配置数据包括算法类型信息、加解密类型信息、密钥长度信息、密钥信息以及待运算数据中的至少一种。
4.根据权利要求1所述的电路模块,其特征在于,所述运算单元还用于:
在产生所述运算结果之后,将所述运算结果写入所述寄存器中的第三字段,并在所述寄存器中的第四字段写入运算结束标识。
5.根据权利要求4所述的电路模块,其特征在于,所述寄存器包括运算状态寄存器和运算结果寄存器,所述寄存器中的第三字段位于所述运算结果寄存器中,所述寄存器中的第四字段位于所述运算状态寄存器中。
6.根据权利要求1所述的电路模块,其特征在于,所述寄存器与总线接口连接;
所述寄存器用于:
通过所述总线接口,获取所述指定指令。
7.根据权利要求1-6任一项所述的电路模块,其特征在于,所述电路模块还包括控制单元,所述控制单元用于:
基于时钟信号或者复位信号,控制所述运算单元。
8.一种基于寄存器的运算方法,其特征在于,应用于电路模块,所述电路模块包括寄存器和运算单元,所述运算单元能够实现至少两种对称密钥算法,所述运算方法包括:
当获取到指定指令时,所述寄存器将所述指定指令相关的运算配置数据写入所述寄存器中的第一字段,并在所述寄存器中的第二字段写入启动标识,所述运算配置数据中包括目标对称密钥算法的信息和待运算数据的信息;
当检测到所述第二字段写入所述启动标识时,所述运算单元读取所述寄存器的第一字段的信息;
所述运算单元根据读取到的所述第一字段中,所述目标对称密钥算法的信息和所述待运算数据的信息,产生运算结果。
9.根据权利要求8所述的运算方法,其特征在于,还包括:
所述寄存器通过总线接口,获取所述指定指令。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求8或9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111640115.3A CN116415262A (zh) | 2021-12-29 | 2021-12-29 | 一种电路模块以及基于寄存器的运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111640115.3A CN116415262A (zh) | 2021-12-29 | 2021-12-29 | 一种电路模块以及基于寄存器的运算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116415262A true CN116415262A (zh) | 2023-07-11 |
Family
ID=87049726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111640115.3A Pending CN116415262A (zh) | 2021-12-29 | 2021-12-29 | 一种电路模块以及基于寄存器的运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116415262A (zh) |
-
2021
- 2021-12-29 CN CN202111640115.3A patent/CN116415262A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11012333B2 (en) | Securing and controlling remote access of a memory-mapped device utilizing an ethernet interface and test port of a network device | |
US9104894B2 (en) | Hardware enablement using an interface | |
CN108701191B (zh) | 数据处理设备和验证数据处理设备的完整性的方法 | |
CN108628791B (zh) | 基于pcie接口的高速安全芯片 | |
US20140310536A1 (en) | Storage device assisted inline encryption and decryption | |
KR102466160B1 (ko) | 데이터의 루프백을 수행하는 시스템 온 칩과 집적 회로, 및 이들을 포함하는 모바일 장치 | |
CN105740718B (zh) | 电子系统、电子装置及电子装置的存取认证方法 | |
Liu et al. | Study of secure boot with a FPGA-based IoT device | |
US8826042B2 (en) | Memory controller, memory control apparatus, memory device, memory information protection system, control method for memory control apparatus, and control method for memory device | |
US5333198A (en) | Digital interface circuit | |
CN107850932B (zh) | 用于在处理器中保存和恢复数据以便节省电力的设备和方法 | |
US10977206B2 (en) | Data communication device and method for data communication | |
CN116415262A (zh) | 一种电路模块以及基于寄存器的运算方法 | |
CN213751073U (zh) | 安全芯片装置和系统 | |
CN114143031B (zh) | 一种基于Web和SSH的远程加密平台 | |
US20150039928A1 (en) | Data processing method and apparatus | |
EP3292421B1 (en) | Apparatus and method for remotely testing memory-mapped devices of a system-on-chip via an ethernet interface | |
CN117112474B (zh) | 一种通用可信的基板管理方法和系统 | |
US9043496B2 (en) | Bridge circuit | |
CN111527724B (zh) | 处理装置、半导体集成电路以及状态监视方法 | |
TWI775436B (zh) | 匯流排系統 | |
US7539304B1 (en) | Integrated circuit having self test capability using message digest and method for testing integrated circuit having message digest generation circuitry | |
US20240106644A1 (en) | Mitigation of side channel attacks on platform interconnects using endpoint hardware based detection, synchronization and re-keying | |
US11363160B2 (en) | Detachable device, control method thereof, and storage medium | |
EP4156014A1 (en) | Integrated circuit package reconfiguration mechanism |
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 |