CN115659419A - 一种数字签名方法、装置、芯片及电子设备 - Google Patents
一种数字签名方法、装置、芯片及电子设备 Download PDFInfo
- Publication number
- CN115659419A CN115659419A CN202211682516.XA CN202211682516A CN115659419A CN 115659419 A CN115659419 A CN 115659419A CN 202211682516 A CN202211682516 A CN 202211682516A CN 115659419 A CN115659419 A CN 115659419A
- Authority
- CN
- China
- Prior art keywords
- digital signature
- module
- dma controller
- hash
- target file
- 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
-
- 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
- Power Sources (AREA)
Abstract
本公开提供一种数字签名方法、装置、芯片和电子设备,所述数字签名装置包括功耗控制模块、DMA控制器、哈希模块以及运算模块;所述运算模块部署于门控电源域;方法包括:功耗控制模块获取数字签名任务,将数字签名任务的信息发送至DMA控制器以及哈希模块;其中数字签名任务的信息包括对目标文件进行签名或验签所需的信息;DMA控制器和哈希模块根据数字签名任务的信息对目标文件进行处理,得到所述目标文件的哈希结果;功耗控制模块根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源;运算模块在电源启动后,根据目标文件和哈希计算结果执行签名或验签所需的运算。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数字签名方法、装置、芯片及电子设备。
背景技术
数字签名技术在各个领域中都有所应用,数字签名技术包括签名和验签两部分,签名和验签都会涉及到大量的计算,在芯片中通常会部署单独的数字签名硬件装置来执行相应的计算,而为了能够更快的完成计算任务,数字签名硬件装置通常会被设计成占用面积较大的硬件模块,进而,数字签名硬件模块会消耗大量的功耗。
基于上述原因,如何减少数字签名硬件模块的功耗是目前需要解决的问题。
发明内容
本公开的目的是提供一种数字签名方法、装置、芯片及电子设备,以解决数字签名功耗较大的问题。
根据本公开的第一个方面,提供一种数字签名方法,应用于数字签名装置,所述数字签名装置包括功耗控制模块、DMA控制器、哈希模块以及运算模块;所述运算模块部署于门控电源域;方法包括:
功耗控制模块获取数字签名任务,将数字签名任务的信息发送至DMA控制器以及哈希模块;其中数字签名任务的信息包括对目标文件进行签名或验签所需的信息;
DMA控制器和哈希模块根据数字签名任务的信息对目标文件进行处理,得到所述目标文件的哈希结果;
功耗控制模块根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源;
运算模块在电源启动后,根据目标文件和哈希计算结果执行签名或验签所需的运算。
在一种实施方式中,所述DMA控制器以及所述哈希模块部署于门控时钟域;
所述功耗控制模块在获取数字签名任务后,还包括:启动所述门控时钟域的时钟;
所述DMA控制器和哈希模块根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果,包括:
所述DMA控制器和哈希模块在时钟启动后,根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果。
在一种实施方式中,所述方法还包括:
运算模块执行运算后,向功耗控制模块返回运算完成标识;
功耗控制模块检测到运算完成标识后,关闭所述门控电源域的电源以及所述门控时钟域的时钟。
在一种实施方式中,所述DMA控制器和哈希模块在时钟启动后,根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果,包括:
所述DMA控制器在每个时钟周期将目标文件中预设长度的文件搬运到本地;
所述哈希模块在每个时钟周期对预设长度的文件进行计算;
所述功耗控制模块根据DMA控制器和/或哈希模块的工作时长确定所述门控电源域的启动时间,包括:
功耗控制模块根据DMA控制器的工作时长确定所述门控电源域的启动时间。
在一种实施方式中,所述功耗控制模块根据DMA控制器的工作时长确定所述门控电源域的启动时间,包括:
根据DMA控制器的搬运位宽和已搬运时间确定已搬运长度;
根据已搬运长度、目标文件的总长度确定剩余搬运长度;
基于剩余搬运长度和搬运位宽,确定剩余搬运时长;
在剩余搬运时长不大于门控电源域的启动时长时,启动门控电源域的电源。
在一种实施方式中,所述功耗控制模块获取数字签名任务,包括:
功耗控制模块基于本地任务列表寄存器中的基地址、任务数量以及预设的每个任务的存储长度,依次获取多个数字签名任务;
所述方法还包括:
DMA控制器和所述哈希模块,在根据当前数字签名任务的信息对当前目标文件进行处理,得到当前目标文件的哈希结果后,根据下一数字签名任务的信息对下一目标文件进行处理;
功耗控制模块根据DMA控制器和/或哈希模块对下一目标文件处理的工作时间,确定在对当前目标文件运算完成后,是否关闭门控电源域的电源。
在一种实施方式中,所述功耗控制模块,根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源,包括:
功耗控制模块根据数字签名任务中的目标文件的长度和DMA控制器的搬运位宽,确定DMA控制器的搬运时长t1;
根据目标文件的长度、哈希模块的计算速度,确定哈希模块计算时长t2;
记录DMA控制器开始工作的时刻到当前时刻的时间间隔t3;
在(t1+t2-t3)不大于所述门控电源域的启动时长时,启动门控电源域的电源。
根据本公开的第二个方面,提供一种数字签名装置,包括功耗控制模块、DMA控制器、哈希模块以及运算模块;所述运算模块部署于门控电源域;
所述功耗控制模块,用于获取数字签名任务,将数字签名任务的信息发送至DMA控制器以及哈希模块;其中数字签名任务的信息包括对目标文件进行签名或验签所需的信息;
所述DMA控制器和所述哈希模块,用于根据数字签名任务的信息对目标文件进行处理,得到所述目标文件的哈希结果;
所述功耗控制模块,用于根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源;
所述运算模块,用于在电源启动后,根据目标文件和哈希计算结果执行签名或验签所需的运算。
在一种实施方式中,所述DMA控制器以及所述哈希模块部署于门控时钟域;
所述功耗控制模块,还用于在获取数字签名任务后,启动所述门控时钟域的时钟;
所述DMA控制器和哈希模块,具体用于在时钟启动后,根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果。
在一种实施方式中,所述运算模块,还用于在执行运算后,向功耗控制模块返回运算完成标识;
所述功耗控制模块,还用于检测到运算完成标识后,关闭所述门控电源域的电源以及所述门控时钟域的时钟。
在一种实施方式中,所述DMA控制器,具体用于在每个时钟周期将目标文件中预设长度的文件搬运到本地;
所述哈希模块,具体用于在每个时钟周期对预设长度的文件进行计算;
所述功耗控制模块,具体用于根据DMA控制器的工作时长确定所述门控电源域的启动时间。
在一种实施方式中,所述功耗控制模块,具体用于根据DMA控制器的搬运位宽和已搬运时间确定已搬运长度;根据已搬运长度、目标文件的总长度确定剩余搬运长度;基于剩余搬运长度和搬运位宽,确定剩余搬运时长;在剩余搬运时长不大于门控电源域的启动时长时,启动门控电源域的电源。
在一种实施方式中,所述功耗控制模块,具体用于基于本地任务列表寄存器中的基地址、任务数量以及预设的每个任务的存储长度,依次获取多个数字签名任务;
所述DMA控制器和所述哈希模块,具体用于在根据当前数字签名任务的信息对当前目标文件进行处理,得到当前目标文件的哈希结果后,根据下一数字签名任务的信息对下一目标文件进行处理;
所述功耗控制模块,具体用于根据DMA控制器和/或哈希模块对下一目标文件处理的工作时间,确定在对当前目标文件运算完成后,是否关闭门控电源域的电源。
在一种实施方式中,所述功耗控制模块,具体用于根据数字签名任务中的目标文件的长度和DMA控制器的搬运位宽,确定DMA控制器的搬运时长t1;根据目标文件的长度、哈希模块的计算速度,确定哈希模块计算时长t2;记录DMA控制器开始工作的时刻到当前时刻的时间间隔t3;在(t1+t2-t3)不大于所述门控电源域的启动时长时,启动门控电源域的电源。
根据本公开的第三个方面,提供一种芯片,包括上述第二个方面任一实施例所述的数字签名装置。
根据本公开的第四个方面,提供一种电子设备,包括上述第三个方面所述的芯片。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1为本公开一个实施方式提供的一种芯片的结构示意图;
图2为本公开一个实施方式提供的一种数字签名装置的结构示意图;
图3为本公开一个实施方式提供的一种数字签名方法的流程示意图;
图4为本公开一个实施方式提供的另一种数字签名装置的结构示意图;
图5为本公开一个实施方式提供的一种功耗控制模块中寄存器数据的示意图;
图6为本公开一个实施方式提供的另一种数字签名方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
数字签名技术通常分为两类算法,一类是RSA,其主要利用大数的质因数分解实现签名或验签过程,一类是椭圆曲线算法,其主要是利用椭圆曲线上的离散对数实现签名或验签过程。
上述两类算法都涉及大量的计算,如大数模乘,而执行大数模乘时,需要的乘法次数和使用的乘法器的位宽强相关,假设要执行大数模乘的数据位宽是x,乘法器的位宽是y,s=x/y, 则一次x位宽的大数模乘需要执行的乘法次数和s的平方成正比。因此,为了减少乘法次数,提升运算效率,目前在数字签名装置中,一般都部署较大位宽的乘法器,如使用上百比特位宽的乘法器。采用这种方式,虽然提高了运算效率,但是也造成数字签名装置的面积较大,进而数字签名装置带来的功耗也很大。
为了解决上述问题,本公开提出将数字签名装置中功耗最大的运算模块部署于门控电源域,在需要运算模块工作的情况下,才开启该门控电源域的电源,以减少运算模块带来的功耗,即减少了数字签名装置带来的功耗。
如图1所示,本公开提出的一种包括数字签名装置的芯片,该芯片至少包括处理器110、数字签名装置120,存储器130,处理器用于生成数字签名任务,数字签名装置用于执行该数字签名任务,存储模块用于存储数字签名任务以及数字签名任务对应的目标文件等数据。
如图2所示,为本公开提出的一种数字签名装置的结构示意图,该数字签名装置包括功耗控制模块210、DMA控制器220、哈希模块230以及运算模块240,其中,运算模块240为针对签名或验签进行大量运算的模块,并且由于运算模块占用面积最大(内部电路元器件最多),功耗控制模块210、DMA控制器220、哈希模块230相对于运算模块240而言占用面积较小,因此运算模块功耗最大。基于上述原因,本公开提出,将该运算模块240部署于门控电源域中,即可以控制该运算模块240的电源随时开启或关闭,在本实施方式中,数字签名装置中的功耗控制模块、DMA控制器以及哈希模块处于常开电源域。本公开提出的数字签名装置可以是专用于对目标文件进行签名的装置、也可以是专用于对目标文件进行验签的装置、还可以是用于既能对目标文件进行签名也能进行验签的装置,实现的算法可以是RAS算法也可以是椭圆曲线算法,本公开对此不进行限定。
基于上述图2所示出的数字签名装置,如图3所示,本公开提出一种数字签名装置的功耗控制方法,包括:
S301,功耗控制模块获取数字签名任务,将数字签名任务的信息发送至DMA控制器以及哈希模块;其中数字签名任务的信息包括对目标文件进行签名或验签所需的信息;
在本步骤中,数字签名任务可以是处理器生成的数字签名任务,处理器可以根据实际需求生成一个或多个数字签名任务,然后将生成的数字签名任务的信息存储在如图1所示的存储器中,每个数字签名任务可以是对一个目标文件进行签名或者验签的任务,其中每个数字签名任务的信息可以包括对目标文件进行签名或验签所需的信息,如包括目标文件的存储地址、目标文件的长度、签名或者验签所使用的算法标识、算法使用的参数、哈希计算所使用的算法标识等。功耗控制模块具体可以是从存储器获取一个或多个数字签名任务,然后将数字签名任务的信息发送至DMA控制器以及哈希模块。另外,如果当前仅有一个数字签名任务(占用的存储空间较少),处理器也可以直接将该数字签名任务的信息存储到功耗控制模块中的专用寄存器中,即本步骤中功耗控制模块还可以是从处理器获取数字签名任务。
S302,DMA控制器和哈希模块根据数字签名任务的信息对目标文件进行处理,得到目标文件的哈希结果;
本步骤中,DMA控制器接收到功耗控制模块发送的数字签名任务的信息后,可以从数字签名任务的信息中获取目标文件的存储地址后,然后将目标文件从该存储地址搬运到本地,即搬运到数字签名装置的缓存中。
哈希模块接收到功耗控制模块发送的数字签名任务的信息后,可以从数字签名任务的信息中获取哈希算法标识,然后根据哈希算法标识确定所使用的目标哈希算法,进而使用目标哈希算法对目标文件进行计算得到目标文件的哈希值。
S303,功耗控制模块根据DMA控制器和/或哈希模块的工作时间确定门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源;
本步骤中,功耗控制模块可以采用多种方式确定门控电源域的启动时间,具体可以参照下文,这里先不进行详述。在到达启动时间时,功耗控制模块会开启门控电源域的电源,即给运算模块提供工作电源。
S304,运算模块在电源启动后,根据目标文件和哈希计算结果执行签名或验签所需的运算。
运算模块在上电后,即可以根据本地的目标文件和哈希计算结果执行数字签名任务中要求的签名或者验签运算。
采用上述方式,将功耗最大的运算模块部署于门控电源域中,并且在数字签名装置中配置功耗控制模块,在芯片上电后不第一时间开启门控电源域的电源,而是由功耗控制模块根据DMA控制器和/或哈希模块的工作时间确定门控电源域的启动时间,即在需要运算模块工作的情况下才开启运算模块的工作电源,尽可能减少运算模块产生的静态或动态功耗,动态功耗可以理解为模块上电后,由工作时钟产生的功耗,而静态功耗可以理解为模块上电后,由模块中各个电路元器件本身产生的功耗,静态功耗和动态功耗都与模块的面积强相关。
另外,虽然电源域启动需要一定的时间,但是目标文件通常较大,搬运和哈希过程需要一定的时间消耗,电源启动的时间要远远小于对目标文件的搬运和哈希所需的时间,因此,可以在搬运和哈希过程中对门控电源域进行启动,并不会影响整体数字签名或验签的效率。
为了进一步减少功耗,在一种实施方式中,如图4所示,还可以将DMA控制器以及哈希模块部署于门控时钟域,即可以控制DMA控制器以及哈希模块工作时钟的关断。
在验签和签名过程中,DMA控制器以及哈希模块需要及时响应数字签名任务,而运算模块可以等到DMA控制器以及哈希模块工作完成后才开始工作,时钟的启动时间与电源的启动时间相比,时钟的启动时间较短,通常仅需一到两个时钟周期。因此将DMA控制器以及哈希模块部署在门控时钟域,既不会影响工作效率也可以进一步减少功耗。
具体的,在本实施方式中,功耗控制模块在获取数字签名任务后,可以启动门控时钟域的时钟,即并不在芯片上电时直接启动DMA控制器以及哈希模块的时钟,而是在需要执行数字签名任务时,才开启DMA控制器以及哈希模块的时钟,DMA控制器以及哈希模块在时钟启动后,根据数字签名任务的信息对目标文件进行处理,得到目标文件的哈希结果。在本实施方式中,在需要DMA控制器和哈希模块工作时才开启DMA控制器以及哈希模块的时钟,可以有效减少DMA控制器以及哈希模块的动态功耗。
考虑到数字签名模块在执行完数字签名任务后,可能会长时间不需要工作,如果继续开启门控电源域和门控时钟域会产生不必要的功耗,因此,在上述S304后,即运算模块执行运算后,还可以向功耗控制模块返回运算完成标识,功耗控制模块检测到运算完成标识后,可以关闭门控电源域的电源以及门控时钟域的时钟。
另外,为了进一步减少功耗,DMA控制器以及哈希模块在执行完工作时,也可以向功耗控制模块发送完成标识,功耗控制模块检测到DMA控制器以及哈希模块的完成标识后,可以先关闭门控时钟域的时钟,即关闭DMA控制器以及哈希模块的时钟。检测到运算完成标识后,再关闭门控电源域的电源。
上述方式中,每执行一次签名或验签任务后,就将运算模块的电源、DMA控制器的时钟、哈希模块的时钟进行关闭,在需要执行下一次任务时,再次分别启动DMA控制器的时钟、哈希模块的时钟以及运算模块的电源。
下面对上述S303中,功耗控制模块根据DMA控制器、哈希模块的工作时间确定门控电源域的启动时间的方式进行说明。
DMA控制器可以和哈希模块串行的工作,即DMA控制器将完整的目标文件搬运到本地后,哈希模块开始对目标文件执行哈希计算。
在DMA控制器和哈希模块串行工作的情况下,功耗控制模块具体可以通过下述方式确定门控电源域的启动时间:
功耗控制模块可以根据数字签名任务中的目标文件的长度和DMA控制器的搬运位宽,确定DMA控制器的搬运时长t1;
即DMA每个时钟周期搬运一个位宽长度的目标文件,可以用目标文件的长度除以搬运位宽,得到需要搬运的时钟周期数,每个时钟周期的时长是固定的,则t1等于需要搬运的时钟周期数乘每个时钟周期的时长;
然后根据目标文件的长度,以及和哈希模块的计算速度,确定哈希模块的计算时长t2;
记录DMA控制器开始工作的时刻到当前时刻的时间间隔t3;
在(t1+t2-t3)不大于门控电源域的启动时长时,启动门控电源域的电源,即DMA控制器和哈希模块两者串行工作的剩余时长,不大于门控电源域的启动时长时,才启动门控电源域的电源,门控电源域的启动时长可以预先通过仿真或测试等方式确定,并记录在功耗控制模块中。
采用该方式,可以在DMA控制器和哈希模块工作完成的同时,完成门控电源域的电源启动。
为了提升整体的工作效率,还可以令DMA控制器和哈希模块并行的工作,具体的,可以是DMA控制器在每个时钟周期将目标文件中预设长度的文件搬运到本地,哈希模块在每个时钟周期对该预设长度的文件进行计算。比如,哈希模块一次处理512bit的数据,则可以预先设置一个512bit大小的缓存,可以将目标文件分为多段512bit大小的数据,DMA每次搬运512bit的数据到该缓存中,哈希模块从该缓存中获取512bit的数据进行计算,在哈希模块从该缓存中获取数据后,DMA控制器开始搬运下一笔512bit的数据,以此类推,采用这种方式, DMA控制器的搬运和哈希模块的计算可以接近在同一时间完成,有效提升了工作效率。
在DMA控制器和哈希模块并行工作的情况下,功耗控制模块具体可以通过下述方式确定门控电源域的启动时间:
由于DMA控制器或哈希模块并行工作的情况下,两者完成工作的时间接近一致,因此功耗控制模块可以根据DMA控制器或哈希模块任一者的工作时长确定门控电源域的启动时间。
下面以根据DMA控制器的工作时间确定门控电源域的启动时间为例,进行说明。
功耗控制模块可以根据DMA控制器的搬运位宽和已搬运时间确定已搬运长度;根据已搬运长度、目标文件的总长度确定剩余搬运长度;基于剩余搬运长度和搬运位宽,确定剩余搬运时长;在剩余搬运时长不大于门控电源域的启动时长时,启动门控电源域的电源。
例如,搬运位宽为512bit,已搬运时间为10个时钟周期,则确定已搬运长度为5120bit;目标文件的总长度是10240bit,则剩余长度是5120bit,则还需要搬运10个时钟周期,如果,门控电源域的启动时长为10个时钟周期,则确定当前可以启动门控电源域的电源。
另外,还可以是功耗控制模块根据数字签名任务中的目标文件的长度和DMA控制器的搬运位宽,确定DMA控制器的搬运总时长t1,记录DMA控制器开始工作的时刻到当前时刻的时间间隔t3,在(t1-t3)不大于门控电源域的启动时长时,启动门控电源域的电源。
沿用上述例子,目标文件的总长度是10240bit,搬运位宽为512bit,则确定DMA控制器的搬运时长t1为20个时钟,如果DMA控制器开始工作的时刻到当前时刻的时间间隔t3为10个时钟,则(t1-t3)为10个时钟,如果,门控电源域的启动时长为10个时钟周期,则确定当前可以启动门控电源域的电源。
下面以根据哈希模块的工作时间确定门控电源域的启动时间为例,进行说明。
功耗控制模块可以根据数字签名任务中的目标文件的长度和哈希模块的计算速度,确定哈希模块的计算总时长t2,记录哈希模块开始工作的时刻到当前时刻的时间间隔t3,在(t2-t3)不大于门控电源域的启动时长时,启动门控电源域的电源。
采用该方式,可以在DMA控制器或哈希模块工作完成的同时,完成门控电源域的电源启动。
上文中提到,处理器可以将生成的数字签名任务的信息存储在功耗控制模块的寄存器中,功耗控制模块获取数字签名任务后开始触发DMA控制器、哈希模块、运算模块执行数字签名任务,功耗控制模块在检测到运算完成标识后,可以关闭门控电源域的电源以及门控时钟域的时钟,并在下次执行数字签名时再次进行开启,上述方式更适用于数字签名任务并发数量较少的场景,即同时只有一个或少量的数字签名任务需要处理的场景。
如图5所示,为功耗控制模块中的寄存器类型的示意图,其中hw_acc_pwr_up_time寄存器是指门控电源域上电所需的时间,可以是预先通过仿真或测试得到的;hw_acc_start寄存器,用于在处理器将数字签名任务的信息写入功耗控制模块的寄存器后,可以将该寄存器值设置为1,以告知功耗控制器可以开始工作;hw_acc_done寄存器用于标识运算模块是否计算完成;hw_acc_status寄存器用于标识本次签名、或验签是否成功。hw_acc_op_mode用于标识本次任务使用的算法;hw_acc_hash_mode用于标识本次任务使用的哈希算法;hw_acc_src_addr和hw_acc_src_length用于标识目标文件的地址和长度。
另外,如果同时有较多数字签名任务需要连续的执行时,处理器可以将生成的多个数字签名任务连续的存储在存储器中,并将多个数字签名任务在存储器中的基地址、任务数量写入功耗控制模块的任务列表寄存器中,功耗控制模块基于该基地址、任务数量以及预设的每个任务的存储长度、依次获取多个数字签名任务并进行处理。
如表1所示,为任务列表寄存器的示意图,其中hw_base_addr用于标识多个数字签名任务的基地址、hw_task_num用于标识数字签名任务的数量。
表1
如表2所示,为存储器中每个数字签名任务的信息,至少包括目标文件的地址以及目标文件的长度,哈希算法、签名或验签算法等,字段的含义可参照上述对于图5的解释。
表2
由于每个数字签名任务在存储器中的存储格式和长度是固定的如表2所示,因此功耗控制模块可以基于基地址、任务数量以及预设的每个任务的存储长度依次获取多个数字签名任务,并进行处理。
更具体的,功耗控制模块可以基于获取的当前数字签名任务触发DMA控制器和哈希模块针对当前数字签名任务进行工作,在DMA控制器和哈希模块根据当前数字签名任务的信息对当前的目标文件进行处理,得到目标文件的哈希结果后,功耗控制模块可以基于下一个数字签名任务触发DMA控制器和哈希模块针对下一个目标文件进行处理,即在DMA控制器和哈希模块根据数字签名任务的信息对第一个目标文件进行处理后,可以根据下一数字签名任务的信息对下一目标文件进行处理,此时,功耗控制模块可以根据DMA控制器和/或哈希模块对下一目标文件处理的工作时间,确定运算模块在对当前目标文件运算完成后,是否关闭门控电源域的电源。
例如,数字签名任务列表寄存器中记录有3个数字签名任务,功耗控制模块在触发DMA控制器和/或哈希模块对第一个数字签名任务的目标文件进行处理并启动门控电源域后,运算模块开始执行第一个数字签名任务,此时,功耗控制模块可以触发DMA控制器和哈希模块对第二个数字签名任务的目标文件进行处理,此时运算模块还在处理第一个数字签名任务的运算,如果DMA控制器和哈希模块对第二个数字签名任务的目标文件进行处理的时间超过预设阈值,例如预设阈值可以是门控电源域的上电时间加上运算模块对当前数字签名任务处理的时间,则仍然可以在运算模块执行完第一个数字签名任务后关闭门控电源域。如果DMA控制器和哈希模块对第二个数字签名任务的目标文件进行处理的时间未超过预设阈值,则可以在运算模块执行完第二个数字签名任务后不关闭门控电源域,以避免降低整体效率。
在本实施例中,确定DMA控制器和/或哈希模块对第一个数字签名任务的目标文件进行处理的时间,可以参照上文,如,在DMA控制器和哈希模块串行工作时,则确定处理的时间为两者工作时间的总和,在DMA控制器和哈希模块并行工作时,则确定处理的时间是任一者工作的时间,这里不再进行赘述。
采用这种方式,可以功耗控制模块可以根据DMA控制、哈希模块对下一个数字签名任务的处理,来判断运算模块在对当前数字签名任务运算完成后是否关闭门口电源域,避免由于关闭门口电源域带来的性能损失。
更具体的,如图6所示,为本公开提出的一种数字签名任务的流程示意图,S601-S604与上述S301-S304相同,这里不再进行赘述。S605中,在功耗控制模块可以确定DMA控制器和/或哈希模块对下一目标文件处理的时间是否超过预设时长,如果是,则执行S607关闭门控电源域的电源,如果否,则执行S606不关闭门口电源域的电源。
与前述一种数字签名方法相对应,如图2所示,本公开还提出一种数字签名装置,包括功耗控制模块、DMA控制器、哈希模块以及运算模块;所述运算模块部署于门控电源域;
所述功耗控制模块,用于获取数字签名任务,将数字签名任务的信息发送至DMA控制器以及哈希模块;其中数字签名任务的信息包括对目标文件进行签名或验签所需的信息;
所述DMA控制器和所述哈希模块,用于根据数字签名任务的信息对目标文件进行处理,得到所述目标文件的哈希结果;
所述功耗控制模块,用于根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源;
所述运算模块,用于在电源启动后,根据目标文件和哈希计算结果执行签名或验签所需的运算。
在一种实施方式中,所述DMA控制器以及所述哈希模块部署于门控时钟域;
所述功耗控制模块,还用于在获取数字签名任务后,启动所述门控时钟域的时钟;
所述DMA控制器和哈希模块,具体用于在时钟启动后,根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果。
在一种实施方式中,所述运算模块,还用于在执行运算后,向功耗控制模块返回运算完成标识;
所述功耗控制模块,还用于检测到运算完成标识后,关闭所述门控电源域的电源以及所述门控时钟域的时钟。
在一种实施方式中,所述DMA控制器,具体用于在每个时钟周期将目标文件中预设长度的文件搬运到本地;
所述哈希模块,具体用于在每个时钟周期对所述预设长度的文件进行计算;
所述功耗控制模块,具体用于根据DMA控制器的工作时长确定所述门控电源域的启动时间。
在一种实施方式中,所述功耗控制模块,具体用于根据DMA控制器的搬运位宽和已搬运时间确定已搬运长度;根据已搬运长度、目标文件的总长度确定剩余搬运长度;基于剩余搬运长度的搬运位宽,确定剩余搬运时长;在剩余搬运时长不大于门控电源域的启动时长时,启动门控电源域的电源。
在一种实施方式中,所述功耗控制模块,具体用于基于本地任务列表寄存器中的基地址、任务数量以及预设的每个任务的存储长度,依次获取多个数字签名任务;
所述DMA控制器和所述哈希模块,具体用于在根据当前数字签名任务的信息对当前目标文件进行处理,得到当前目标文件的哈希结果后,根据下一数字签名任务的信息对下一目标文件进行处理;
所述功耗控制模块,具体用于根据DMA控制器和/或哈希模块对下一目标文件处理的工作时间,确定在对当前目标文件运算完成后,是否关闭门控电源域的电源。
在一种实施方式中,所述功耗控制模块,具体用于根据数字签名任务中的目标文件的长度和DMA控制器的搬运位宽,确定DMA控制器的搬运时长t1;根据目标文件的长度、哈希模块的计算速度,确定哈希模块计算时长t2;记录DMA控制器开始工作的时刻到当前时刻的时间间隔t3;在(t1+t2-t3)不大于所述门控电源域的启动时长时,启动门控电源域的电源。
如图1所示,本公开实施例还提供一种芯片,该芯片包括上述实施方式中的数字签名装置。
本公开实施例还提供一种电子设备,该电子设备包括上述的芯片。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
以上尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改,本领域的技术人员在不脱离本公开的精神和范围的前提下,做出的变更和修改也应视为本公开实施例的保护范围。
Claims (16)
1.一种数字签名方法,应用于数字签名装置,所述数字签名装置包括功耗控制模块、DMA控制器、哈希模块以及运算模块;所述运算模块部署于门控电源域;方法包括:
功耗控制模块获取数字签名任务,将数字签名任务的信息发送至DMA控制器以及哈希模块;其中数字签名任务的信息包括对目标文件进行签名或验签所需的信息;
DMA控制器和哈希模块根据数字签名任务的信息对目标文件进行处理,得到所述目标文件的哈希结果;
功耗控制模块根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源;
运算模块在电源启动后,根据目标文件和哈希计算结果执行签名或验签所需的运算。
2.根据权利要求1所述的方法,所述DMA控制器以及所述哈希模块部署于门控时钟域;
所述功耗控制模块在获取数字签名任务后,还包括:启动所述门控时钟域的时钟;
所述DMA控制器和哈希模块根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果,包括:
所述DMA控制器和哈希模块在时钟启动后,根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果。
3.根据权利要求2所述的方法,还包括:
运算模块执行运算后,向功耗控制模块返回运算完成标识;
功耗控制模块检测到运算完成标识后,关闭所述门控电源域的电源以及所述门控时钟域的时钟。
4.根据权利要求2所述的方法,所述DMA控制器和哈希模块在时钟启动后,根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果,包括:
所述DMA控制器在每个时钟周期将目标文件中预设长度的文件搬运到本地;
所述哈希模块在每个时钟周期对所述预设长度的文件进行计算;
所述功耗控制模块根据DMA控制器和/或哈希模块的工作时长确定所述门控电源域的启动时间,包括:
功耗控制模块根据DMA控制器的工作时长确定所述门控电源域的启动时间。
5.根据权利要求4所述的方法,所述功耗控制模块根据DMA控制器的工作时长确定所述门控电源域的启动时间,包括:
根据DMA控制器的搬运位宽和已搬运时间确定已搬运长度;
根据已搬运长度、目标文件的总长度确定剩余搬运长度;
基于剩余搬运长度和搬运位宽,确定剩余搬运时长;
在剩余搬运时长不大于门控电源域的启动时长时,启动门控电源域的电源。
6.根据权利要求1所述的方法,所述功耗控制模块获取数字签名任务,包括:
功耗控制模块基于本地任务列表寄存器中的基地址、任务数量以及预设的每个任务的存储长度,依次获取多个数字签名任务;
所述方法还包括:
DMA控制器和所述哈希模块,在根据当前数字签名任务的信息对当前目标文件进行处理,得到当前目标文件的哈希结果后,根据下一数字签名任务的信息对下一目标文件进行处理;
功耗控制模块根据DMA控制器和/或哈希模块对下一目标文件处理的工作时间,确定在对当前目标文件运算完成后,是否关闭门控电源域的电源。
7.根据权利要求1所述的方法,所述功耗控制模块,根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源,包括:
功耗控制模块根据数字签名任务中的目标文件的长度和DMA控制器的搬运位宽,确定DMA控制器的搬运时长t1;
根据目标文件的长度、哈希模块的计算速度,确定哈希模块计算时长t2;
记录DMA控制器开始工作的时刻到当前时刻的时间间隔t3;
在(t1+t2-t3)不大于所述门控电源域的启动时长时,启动门控电源域的电源。
8.一种数字签名装置,包括功耗控制模块、DMA控制器、哈希模块以及运算模块;所述运算模块部署于门控电源域;
所述功耗控制模块,用于获取数字签名任务,将数字签名任务的信息发送至DMA控制器以及哈希模块;其中数字签名任务的信息包括对目标文件进行签名或验签所需的信息;
所述DMA控制器和所述哈希模块,用于根据数字签名任务的信息对目标文件进行处理,得到所述目标文件的哈希结果;
所述功耗控制模块,用于根据DMA控制器和/或哈希模块的工作时间确定所述门控电源域的启动时间,并在确定的启动时间启动门控电源域的电源;
所述运算模块,用于在电源启动后,根据目标文件和哈希计算结果执行签名或验签所需的运算。
9.根据权利要求8所述的装置,所述DMA控制器以及所述哈希模块部署于门控时钟域;
所述功耗控制模块,还用于在获取数字签名任务后,启动所述门控时钟域的时钟;
所述DMA控制器和哈希模块,具体用于在时钟启动后,根据数字签名任务的信息对所述目标文件进行处理,得到所述目标文件的哈希结果。
10.根据权利要求9所述的装置,
所述运算模块,还用于在执行运算后,向功耗控制模块返回运算完成标识;
所述功耗控制模块,还用于检测到运算完成标识后,关闭所述门控电源域的电源以及所述门控时钟域的时钟。
11.根据权利要求9所述的装置,
所述DMA控制器,具体用于在每个时钟周期将目标文件中预设长度的文件搬运到本地;
所述哈希模块,具体用于在每个时钟周期对预设长度的文件进行计算;
所述功耗控制模块,具体用于根据DMA控制器的工作时长确定所述门控电源域的启动时间。
12.根据权利要求11所述的装置,
所述功耗控制模块,具体用于根据DMA控制器的搬运位宽和已搬运时间确定已搬运长度;根据已搬运长度、目标文件的总长度确定剩余搬运长度;基于剩余搬运长度和搬运位宽,确定剩余搬运时长;在剩余搬运时长不大于门控电源域的启动时长时,启动门控电源域的电源。
13.根据权利要求8所述的装置,
所述功耗控制模块,具体用于基于本地任务列表寄存器中的基地址、任务数量以及预设的每个任务的存储长度,依次获取多个数字签名任务;
所述DMA控制器和所述哈希模块,具体用于在根据当前数字签名任务的信息对当前目标文件进行处理,得到当前目标文件的哈希结果后,根据下一数字签名任务的信息对下一目标文件进行处理;
所述功耗控制模块,具体用于根据DMA控制器和/或哈希模块对下一目标文件处理的工作时间,确定在对当前目标文件运算完成后,是否关闭门控电源域的电源。
14.根据权利要求8所述的装置,
所述功耗控制模块,具体用于根据数字签名任务中的目标文件的长度和DMA控制器的搬运位宽,确定DMA控制器的搬运时长t1;根据目标文件的长度、哈希模块的计算速度,确定哈希模块计算时长t2;记录DMA控制器开始工作的时刻到当前时刻的时间间隔t3;在(t1+t2-t3)不大于所述门控电源域的启动时长时,启动门控电源域的电源。
15.一种芯片,包括上述权利要求8-14任一项所述的数字签名装置。
16.一种电子设备,包括权利要求15所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211682516.XA CN115659419B (zh) | 2022-12-27 | 2022-12-27 | 一种数字签名方法、装置、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211682516.XA CN115659419B (zh) | 2022-12-27 | 2022-12-27 | 一种数字签名方法、装置、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115659419A true CN115659419A (zh) | 2023-01-31 |
CN115659419B CN115659419B (zh) | 2023-04-14 |
Family
ID=85023559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211682516.XA Active CN115659419B (zh) | 2022-12-27 | 2022-12-27 | 一种数字签名方法、装置、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115659419B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752894A (zh) * | 2005-08-18 | 2006-03-29 | 复旦大学 | 信息安全SoC中基于门控时钟的动态功耗管理方法 |
WO2018090642A1 (zh) * | 2016-11-15 | 2018-05-24 | 平安科技(深圳)有限公司 | 应用程序升级方法、用户终端及存储介质 |
CN111045955A (zh) * | 2019-12-16 | 2020-04-21 | 瓴盛科技有限公司 | 架构动态配置的存储装置及其操作方法及电子设备 |
CN114238205A (zh) * | 2021-11-25 | 2022-03-25 | 南京航空航天大学 | 一种抗功耗攻击的高性能ecc协处理器系统 |
CN115065473A (zh) * | 2022-04-18 | 2022-09-16 | 西安电子科技大学 | 一种基于SoC的低功耗椭圆曲线数字签名系统 |
-
2022
- 2022-12-27 CN CN202211682516.XA patent/CN115659419B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752894A (zh) * | 2005-08-18 | 2006-03-29 | 复旦大学 | 信息安全SoC中基于门控时钟的动态功耗管理方法 |
WO2018090642A1 (zh) * | 2016-11-15 | 2018-05-24 | 平安科技(深圳)有限公司 | 应用程序升级方法、用户终端及存储介质 |
CN111045955A (zh) * | 2019-12-16 | 2020-04-21 | 瓴盛科技有限公司 | 架构动态配置的存储装置及其操作方法及电子设备 |
CN114238205A (zh) * | 2021-11-25 | 2022-03-25 | 南京航空航天大学 | 一种抗功耗攻击的高性能ecc协处理器系统 |
CN115065473A (zh) * | 2022-04-18 | 2022-09-16 | 西安电子科技大学 | 一种基于SoC的低功耗椭圆曲线数字签名系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115659419B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW538341B (en) | A method and apparatus for levelizing transfer delays for a channel of devices such as memory devices in a memory subsystem | |
US7716396B1 (en) | Multi-reader multi-writer circular buffer memory | |
US20020010730A1 (en) | Accelerated montgomery exponentiation using plural multipliers | |
US7165165B2 (en) | Anticipatory power control of memory | |
EP3584719A1 (en) | Method and device for multiplying matrices with vectors | |
CN105045632A (zh) | 一种多核环境下实现免锁队列的方法和设备 | |
JP2020021186A (ja) | トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法 | |
KR20170052432A (ko) | 제로값을 피연산자로 갖는 연산자에 대한 연산을 스킵하는 연산 방법 및 연산 장치 | |
TW201348964A (zh) | 在運行時間下判定最佳化預載入距離 | |
CN117056255B (zh) | 一种原子操作装置、方法、设备及介质 | |
CN115659419B (zh) | 一种数字签名方法、装置、芯片及电子设备 | |
US7693926B2 (en) | Modular multiplication acceleration circuit and method for data encryption/decryption | |
CN112306951B (zh) | 一种基于fpga的cnn-svm资源高效型加速架构 | |
CN111158757B (zh) | 并行存取装置和方法以及芯片 | |
JP2019530114A (ja) | フィードフォーワード及びフィードバックが設けられた多層パーセプトロンモデルを計算のためのモデル計算ユニット及び制御装置 | |
CN114490074B (zh) | 仲裁系统、方法、电子设备、存储介质及芯片 | |
US6886088B2 (en) | Memory that allows simultaneous read requests | |
EP2860628A2 (en) | Information processing apparatus and method of controlling information processing apparatus | |
CN107391440B (zh) | 一种快速傅里叶变换算法输出数据的处理装置及方法 | |
Sahoo et al. | A partitioning methodology for BDD-based verification | |
EP2526477B1 (en) | Memory controller | |
CN112639783B (zh) | 同时的镜像测量和执行 | |
US11403107B2 (en) | Protection against timing-based security attacks by randomly adjusting reorder buffer capacity | |
CN111241099A (zh) | 一种工业大数据存储方法及装置 | |
TWI646460B (zh) | 資料處理電路與資料處理方法 |
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 |