CN116186794B - 密码协处理器、密码处理方法、芯片和计算机设备 - Google Patents
密码协处理器、密码处理方法、芯片和计算机设备 Download PDFInfo
- Publication number
- CN116186794B CN116186794B CN202211731022.6A CN202211731022A CN116186794B CN 116186794 B CN116186794 B CN 116186794B CN 202211731022 A CN202211731022 A CN 202211731022A CN 116186794 B CN116186794 B CN 116186794B
- Authority
- CN
- China
- Prior art keywords
- unit
- modular
- cryptographic
- advanced
- point
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 40
- 238000012795 verification Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
Abstract
本发明实施例提供一种密码协处理器、密码处理方法、芯片和计算机设备,密码协处理器包括:存储算法参数和临时计算结果的寄存器堆;运算模块,包括基础运算单元和高级运算单元,基础运算单元适于执行基础运算,高级运算单元适于结合待执行数据,和自所述寄存器堆所调用的算法参数或临时计算结果,调用基础运算单元执行高级运算;至少一个基础运算单元适于被多个不同高级运算单元调用;主控制器,包括适于接收密码算法控制信号的密码算法控制信号端口;所述密码算法控制信号大于或等于两个,不同密码算法控制信号对应不同的密码算法。因此,本发明实施例所提供的密码协处理器可以针对多种密码算法的运算,降低集成电路中密码协处理器占用的面积。
Description
技术领域
本发明实施例涉及计算机处理技术领域,具体涉及一种密码协处理器、密码处理方法、芯片和计算机设备。
背景技术
计算机处理密码需要进行大量计算,为了降低密码处理对处理器的占用,通常通过密码协处理器协助计算机处理密码。密码协处理器是协同主处理器执行密码操作的专用处理器,在处理密码运算时,具有较高的性能。
密码协处理器通常集成在中央处理器(CPU)内部,或者与中央处理器一同集成在片上系统(SOC)中。但是,一种密码协处理器只能处理一种密码算法的密码,但计算机运行中可能需要处理多种密码算法的密码,从而需要集成多种密码协处理器,在CPU或SOC等集成电路中占用了较大的面积。
因此,针对多种密码算法的运算,如何降低集成电路中密码协处理器占用的面积,成为本领域亟需解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种密码协处理器、密码处理方法、芯片和计算机设备,以针对多种密码算法的运算,降低集成电路中密码协处理器占用的面积。
为实现上述目的,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供一种密码协处理器,包括:
寄存器堆,适于存储算法参数和临时计算结果;
运算模块,与所述寄存器堆连接,适于调用所述寄存器堆中存储的算法参数或临时计算结果,所述运算模块包括基础运算单元和高级运算单元,所述基础运算单元适于执行基础运算,所述高级运算单元适于结合待执行数据,和自所述寄存器堆所调用的算法参数或临时计算结果,调用所述基础运算单元执行高级运算;其中,至少一个所述基础运算单元适于被多个不同高级运算单元调用;
主控制器,与所述运算模块连接,包括适于接收密码算法控制信号的密码算法控制信号端口,所述主控制器适于根据所述密码算法控制信号控制所述运算模块的高级运算单元执行与所述密码算法控制信号对应的高级运算;其中,所述密码算法控制信号大于或等于两个,不同密码算法控制信号对应不同的密码算法。
可选的,所述基础运算单元包括:模乘单元、模平方单元、模加单元、模减单元。
可选的,所述高级运算单元包括多个,所述高级运算单元还适于调用其他高级运算单元实现高级运算。
可选的,所述高级运算单元包括:模幂单元、点乘单元、点加单元和倍点单元。
可选的,所述基础运算单元还包括:模逆单元。
可选的,所述模幂单元连接所述模乘单元、模平方单元和模加单元;所述点乘单元连接所述点加单元和所述倍点单元,所述点加单元和所述倍点单元连接所述模乘单元、所述模平方单元、所述模加单元和所述模减单元;
所述模幂单元适于拆分模幂运算为模乘运算、模平方运算和模加运算,分别调用模乘单元处理模乘运算、模平方单元处理模平方运算和模加单元处理模加运算;
所述点乘单元适于拆分点乘运算为点加运算和倍点运算,分别调用所述点加单元处理所述点加运算,调用所述倍点单元处理所述倍点运算;
所述点加单元,适于拆分所述点加运算为模乘运算、模平方运算、模加运算和模减运算,分别调用所述模乘单元处理所述模乘运算,调用所述模平方单元处理所述模平方运算,调用所述模加单元处理所述模加运算以及调用所述模减单元处理所述模减运算;
所述倍点单元,适于拆分所述倍点运算为模乘运算、模平方运算、模加运算和模减运算,分别调用所述模乘单元处理所述模乘运算,调用所述模平方单元处理所述模平方运算,调用所述模加单元处理所述模加运算以及调用所述模减单元处理所述模减运算。
可选的,所述主控制器包括适于接收密码功能信号的密码功能信号端口,适于根据密码算法控制信号和密码功能信号控制所述运算模块执行与所述密码功能信号对应的密码功能。
可选的,还包括:密码功能单元,所述密码功能单元与所述运算模块连接,适于基于运算模块,执行对待执行数据的加密、解密、签名和验签功能中的一种或多种。
可选的,所述主控制器还包括:
参数端口,所述参数端口适于接收主处理器发送的密码参数并将所述密码参数写入所述寄存器堆中。
可选的,所述主控制器还包括:输出端口,所述输出端口适于输出所述密码协处理器的密码算法结果。
可选的,所述主控制器还包括:适于接受开始信号的开始信号端口和适于接受结束信号的结束信号端口。
第二方面,本发明实施例还提供一种密码处理方法,适用于如第一方面所述的密码协处理器,包括:
接收处理器发送的密码算法控制信号;
根据所述密码算法控制信号,调取预先存储的待执行数据,以及,预先存储的算法参数或临时计算结果进行高级运算,所述进行高级运算包括拆分所述高级运算为多个基础运算并执行所述多个基础运算;其中所述基础运算适于被多个所述高级运算拆分利用。
第三方面,本发明实施例还提供一种芯片,包括如第一方面所述的密码协处理器。
第四方面,本发明实施例还提供一种计算机设备,包括如第三方面所述的芯片。
本发明实施例所提供的密码协处理器,包括:寄存器堆,适于存储算法参数和临时计算结果;运算模块,与所述寄存器堆连接,适于调用所述寄存器堆中存储的算法参数或临时计算结果,所述运算模块包括基础运算单元和高级运算单元,所述基础运算单元适于执行基础运算,所述高级运算单元适于结合待执行数据,和自所述寄存器堆所调用的算法参数或临时计算结果,调用所述基础运算单元执行高级运算;其中,至少一个所述基础运算单元适于被多个不同高级运算单元调用;主控制器,与所述运算模块连接,包括适于接收密码算法控制信号的密码算法控制信号端口,所述主控制器适于根据所述密码算法控制信号控制所述运算模块的高级运算单元执行与所述密码算法控制信号对应的高级运算;其中,所述密码算法控制信号大于或等于两个,不同密码算法控制信号对应不同的密码算法。
可见,本发明实施例所提供的密码协处理器,对不同密码算法有不同算法控制信号,从而控制不同的高级运算单元进行高级运算,而高级运算单元用于将高级运算拆分为基础运算,并分发给基础运算单元,因此不必在高级运算单元中进行复杂的运算,因此高级运算单元的电路可以较为简单,也占用较小的芯片面积,同时,基础运算单元可以被多个不同高级运算单元调用,因此可以减少实现不同高级运算所需的电路总体面积,从而在支持计算机处理多种类型密码的同时,节省密码协处理器的在芯片中的占用面积。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是一种公钥加密密码的密码协处理器的一结构示意图;
图2是本发明实施例所提供的密码协处理器的一结构示意图;
图3为本发明实施例所提供的密码处理方法的一流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
计算机所处理的公钥密码有不同的密码算法,通常包括椭圆曲线密码算法(elliptic curve cryptosystem;ECC)和RSA密码算法(Rivest-Shamir-Adleman;RSA)。
计算机处理上述密码需要进行大量计算,为了降低密码处理对处理器的占用,通常通过密码协处理器协助计算机处理密码。密码协处理器是协同主处理器执行密码操作的专用处理器,以硬件的方式处理密码,可以在处理密码运算时具有较高的性能,并降低密码处理对处理器的占用。密码协处理器通常集成在中央处理器(CPU)内部,或者与中央处理器一同集成在片上系统(SOC)中。
为了便于理解,请参考图1,图1是一种公钥加密密码算法的密码协处理器的一结构示意图。
如图所示,密码协处理器可以包括主控制器13、模幂单元12和寄存器堆11。其中主控制器13包括参数端口和输出端口,主控制器13通过参数端口接受密码运算所需的算法参数,并将该算法参数存储于寄存器堆11中,主控制器通过输出端口输出密码处理后的结果;所述寄存器堆11用于存储主处理器发送的算法参数,以及模幂单元12所计算得到的临时计算结果;所述模幂单元12用于在主控制器13的控制下,以硬件方式进行模幂运算。
公钥加密密码算法的主要运算是模幂运算,所以所述公钥加密密码算法的密码协处理器中负责运算的电路为模幂单元12,该模幂单元12可以快速的进行模幂运算,从而提高公钥加密密码算法的处理速度。
值得注意的是,不同密码算法所涉及的主要运算可能不相同,因此密码协处理器只能处理一种密码算法,例如图1所示的公钥加密密码算法的密码协处理器,由于椭圆曲线密码算法的主要运算是点乘运算,因此无法适用于图1所示密码协处理器。而计算机运行过程中可能会处理多种密码算法,因此需要在芯片中集成处理不同密码算法的多个密码协处理器,或者在一密码协处理器中设置多个运算电路,例如在图1所示密码协处理器中增设点乘单元。
但不论是在芯片中集成处理不同密码算法的多个密码协处理器,还是在一密码协处理器中设置多个运算电路,都会增加所需集成的电路,占用较大的芯片面积。
因此,如何在支持计算机处理多种密码算法的同时,降低集成电路中密码协处理器占用的面积,成为本领域亟需解决的技术问题。
为解决上述技术问题,本发明实施例提供一种密码协处理器,具体请参考图2,图2是本发明实施例所提供的密码协处理器的一结构示意图。
如图所示,本发明实施例所提供的密码协处理器包括:寄存器堆21、运算模块22和主控制器23。
其中,所示主控制器23与所述寄存器堆21和所述运算模块22连接,所述运算模块22与所述寄存器堆21连接;所述连接是指被连接的两者间可以传输数据信息。
所述运算模块22包括高级运算单元221和基础运算单元222,所述基础运算单元222适于执行基础运算,所述高级运算单元221适于结合待执行数据,和自所述寄存器堆所调用的算法参数或临时计算结果,调用所述基础运算单元执行高级运算。
所述高级运算单元221和基础运算单元222通过连接,可以传输数据。高级运算单元221中并不进行实际运算,而是通过拆分高级运算为多个基础运算,并将各拆分得到的基础运算和该基础运算所需的从寄存器堆中调用的算法参数,发送给调用的基础运算单元222,使基础运算单元222获取基础运算和所需的算法参数后进行运算,并将所得结果返回高级运算单元221,当然,基础运算单元222是实际进行运算的单元,不再对基础运算进行拆分并发送给其他运算电路。
所述高级运算拆分得到的多个基础运算,可以是拆分出相同的基础运算,例如:将模幂运算拆分为多个模乘运算。
值得注意的是,所述基础运算单元222需要适于被多个不同高级运算单元221复用。所述被多个不同高级运算单元221复用是指:首先,本发明实施例所提供的密码协处理器中包括多个不同的高级运算单元221,不同高级运算单元221是指各高级运算单元221适于进行不同的高级运算,同一高级运算的多个高级运算单元221不能认为是多个不同高级运算单元;其次,多个不同高级运算单元221对高级运算进行拆分,得到多个基础运算后,所调用的基础运算单元222中,至少有一个基础运算单元222会被不同的高级运算单元221所调用。
所述待执行数据是需要被密码算法运算的数据,例如在利用RSA密码算法对A数据签名的过程中,所述A数据即为待执行数据,所述运算模块22需要用算法参数构成的算法对所述A数据进行模幂运算。
所述寄存器堆21可以存储算法参数和所述运算模块22在运算过程中产生的临时计算结果。
所述主控制器23包括适于接收密码算法控制信号的密码算法控制信号端口,所述主控制器适于根据所述密码算法控制信号控制所述运算模块22的高级运算单元221执行与所述密码算法控制信号对应的高级运算;其中,所述密码算法控制信号大于或等于两个,不同密码算法控制信号对应不同的密码算法。
这样,处理器可以通过密码算法控制信号端口向主控制器23发送用以确定所执行的密码算法的密码算法控制信号。
在一些实施例中,本发明实施例所提供的密码协处理器所处理的不同密码算法可以为RSA密码算法和椭圆曲线密码算法,其中与RSA密码算法对应的RSA密码算法控制信号,可以为01;与椭圆曲线密码算法对应的椭圆曲线密码算法控制信号可以为10。这样,主处理器1在接受到01信号时,可以根据待执行数据以及从寄存器堆中读取RSA密码算法的算法参数,对所述待执行数据进行模幂运算。
值得注意的是,所述密码算法控制信号大于或等于两个,这样,主控制器才能处理大于或等于两个的密码算法,从而实现不同密码算法对应的高级运算单元221对至少一个基础运算单元222的复用。
可见,本发明实施例所提供的密码协处理器,对不同密码算法有不同算法控制信号,从而控制不同的高级运算单元221进行高级运算,而高级运算单元221用于将高级运算拆分为基础运算,并分发给基础运算单元222,因此不必在高级运算单元221中进行复杂的运算,因此高级运算单元221的电路可以较为简单,也占用较小的芯片面积,同时,基础运算单元222可以被多个不同高级运算单元221调用,因此可以减少实现不同高级运算所需的电路总体面积,从而在支持计算机处理多种类型密码的同时,节省密码协处理器的在芯片中的占用面积。
请继续参考图2,在一具体实施方式中,为了在支持计算机处理对RSA密码算法和椭圆曲线密码算法的同时,降低集成电路中密码协处理器的面积,本发明实施例所提供的密码协处理器的运算模块22中,基础运算单元222可以包括:模乘单元2221、模平方单元2222、模加单元2223和模减单元2224。
其中,模乘单元2221适于进行模乘运算,模平方单元2222适于进行模平方运算,模加单元2223适于进行模加运算,模减单元2224适于进行模减运算。
为便于理解本方案,请参考表1,表1为本发明实施例所提供的密码协处理器的RSA密码算法的横幂运算拆分表。
表1
其中,A=memod n,如表1所示,RSA密码算法的模幂运算可以表示为根据整数m,e,n,其中整数e的二进制形式为(et,et-1,…,e1,e0)2,计算memod n。上述计算可以具体通过步骤S2中的模平方:A←(A·A)mod n和模乘:A←(A·m)mod n实现,从而模幂运算可以拆分为模乘运算、模平方运算。而进一步的,模乘运算和模平方运算中还会利用模加运算,因此,模幂运算可以拆分为模乘运算、模平方运算和模加运算。
请参考表2,表2为本发明实施例所提供的密码协处理器的椭圆曲线密码算法的点乘运算拆分表。
表2
如表2所示,椭圆曲线密码算法主要涉及点乘运算,而点乘运算可以拆分为点加运算Q←2·Q、倍点运算Q←Q+P。
进一步,请参考表3和表4,所述表3为本发明实施例所提供的密码协处理器的点加运算拆分表,表4为本发明实施例所提供的密码协处理器的倍点运算拆分表。
表3
表4
如表3和表4所示,所述点加和倍点又可以拆分为模平方运算: 模乘运算:T2←T2·T1mod p,模加运算:T1←X1+T1mod p和模减运算:T2←X1-T1mod p。
因此,可以通过设置模乘单元2221、模平方单元2222和模加单元2223为基础运算单元222以执行RSA密码算法,通过上述基础运算单元222以及另外设置的基础运算单元222:模减单元2224,执行椭圆曲线密码算法。这样,所述模乘单元2221、模平方单元2222和模加单元2223可以被两种不同算法复用,从而可以在支持计算机处理对RSA密码算法和椭圆曲线密码算法的同时,降低集成电路中密码协处理器的面积。
此外,在一些实施例中,上层软件传下来的椭圆曲线点是仿射坐标表示,因此椭圆曲线密码算法中还会涉及模逆运算,以用于将椭圆曲线的点从射影坐标转换为仿射坐标或从仿射坐标转换为射影坐标,因此,所述密码协处理器还包括基础运算单元222:模逆单元2225,模逆单元2225适于执行模逆运算。
在一些实施例中,为了支持计算机处理对RSA密码算法和椭圆曲线密码算法,可以设置高级运算单元221为:模幂单元2211和点乘单元2212;其中,模幂单元2211可以拆分模幂运算为模乘运算、模平方运算和模加运算,并调用模乘单元2221、模平方单元2222和模加单元2223;点乘单元2212可以拆分点乘运算为模乘运算、模平方运算、模加运算和模减运算,并调用模乘单元2221、模平方单元2222、模加单元2223和模减单元2224。
当基础运算单元222包括模逆单元2225时,所述模逆单元2225可以具体与高级运算单元221中的点加单元2213和倍点单元2214相连,以被点加单元2213和倍点单元2214调用进行模逆运算。
在另一些实施例中,各高级运算单元221相互间也可以连接,这样,可以额外设置高级运算单元221:点加单元2213和倍点单元2214。点乘单元2212可以只负责拆分点乘运算为点加运算和倍点运算,并分别发送给点加单元2213和倍点单元2214,由点加单元2213和倍点单元2214再分别拆分点加运算和倍点运算为模乘运算、模平方运算、模加运算和模减运算。这样,设置点加单元2213和倍点单元2214,使得硬件结构层次更清晰可以减轻点乘单元2212的工作量和复杂度,易于方案的实现,降低实施方案时出错的概率。同一密码算法可能被密码协处理器用于实现不同功能,具体的,不同功能可以为签名、验签、加密、解密、固定点乘和随机点乘,因此为了可以区分处理器要求协处理器具体实现的功能,在一具体实施方式中,所述主控制器还包括适于接收密码功能信号的密码功能信号端口,适于根据算法控制信号和密码功能信号控制所述运算模块22执行与所述密码功能信号对应的密码功能。
为便于理解,请结合图2参考表5,表5为本发明实施例所提供的密码协处理器的密码功能信号与密码功能对应表.
密码功能信号 | rsa_ | ecc_ |
000 | 签名 | 签名 |
001 | 验签 | 验签 |
010 | 加密 | 加密 |
011 | 解密 | 解密 |
100 | 模幂 | 固定点乘 |
101 | 随机点乘 | |
110 | 模乘 | 模乘 |
表5
如表所示,密码协处理器具体实行的密码功能类别不仅与密码功能信号端口的密码功能信号有关,还与执行的密码算法有关。
这样,通过密码功能信号端口和密码算法控制信号端口接受密码功能信号和密码算法控制信号,可以确定密码算法具体执行的功能。
在一具体实施方式中,本发明实施例所提供的密码协处理器中,可以设置密码功能单元24,所述密码功能单元24与所述运算模块22连接,适于执行各密码功能,包括加密单元241、解密单元242、签名单元243和验签单元244。
在一些实施例中,所述密码功能单元24可以与密码功能信号和密码算法控制信号对应,主控制器接受密码功能信号和密码算法控制信号后,从对应的密码功能单元24中读取待执行数据并提供至高级运算单元221中。
为便于理解,现举例如下:假设主控制器从密码算法控制信号端口接收到椭圆曲线密码算法控制信号10,则表示密码协处理器需要处理椭圆曲线密码算法,假设从密码功能信号端口接受到的密码功能信号是000(合成为10000),说明需要利用椭圆曲线密码算法对待执行数据进行签名,而待执行数据存储于与密码算法控制信号和密码功能信号合成的10000对应的签名单元243中;因此主控制器23调用该签名单元243,读取该签名单元243中的待执行数据至点乘单元2212中,点乘单元2212把对待执行数据的点乘运算分解,分别输入到点加单元2213和倍点单元2214中,点加单元2213和倍点单元2214又会再进行分解,输入到基础运算单元222:模乘单元2221、模平方单元2222、模加单元2223和模减单元2224中,以及调用模逆单元2225实现坐标的转换,基础运算单元222进行基础运算后将值返回至高级运算单元221,得到签名值。
在一具体实施方式中,所述主控制器23还包括:参数端口,所述参数端口适于接收主处理器发送的密码参数并将所述密码参数写入所述寄存器堆21中。
这样,可以通过主控制器23设置所述密码参数于寄存器堆中。
在一具体实施方式中,所述主控制器23还包括:输出端口,所述输出端口适于输出所述密码协处理器的密码算法结果。
这样,主控制器23可以通过所述输出端口输出密码算法运算后的结果。
在一具体实施方式中,所述主控制器23包括:适于接受开始信号的开始信号端口和适于接受结束信号的结束信号端口。这样,主控制器23可以通过开始信号端口和结束信号端口接受处理器的开始信号和结束信号,从而由处理器控制密码处理过程的开始和结束。
为了解决上述技术问题,本发明实施例还提供一种密码处理方法,请参考图3,图3为本发明实施例所提供的密码处理方法的一流程示意图。
如图所示,本发明实施例所提供的密码处理方法,包括:
在步骤S1中,接收处理器发送的密码算法控制信号。
在步骤S2中,根据所述密码算法控制信号,调取预先存储的待执行数据,以及,预先存储的算法参数或临时计算结果进行高级运算,所述进行高级运算包括拆分所述高级运算为多个基础运算并执行所述多个基础运算。
其中,所述基础运算适于被多个所述高级运算拆分利用。
可见,本发明实施例所提供的密码处理方法,对不同密码算法有不同算法控制信号,从而控制不同的高级运算单元221进行高级运算,而高级运算单元221用于将高级运算拆分为基础运算,并分发给基础运算单元222,因此不必在高级运算单元221中进行复杂的运算,因此高级运算单元221的电路可以较为简单,也占用较小的芯片面积,同时,基础运算单元222可以被多个不同高级运算单元221调用,因此可以减少实现不同高级运算所需的电路总体面积,从而在支持计算机处理多种类型密码的同时,节省密码协处理器的在芯片中的占用面积。
本发明实施例还提供一种芯片,包括如上述任一实施例所述的密码协处理器。
本发明实施例还提供一种计算机设备,包括如上述所述的芯片。
可见,本发明实施例所提供的芯片和计算机设备,对不同密码算法有不同算法控制信号,从而控制不同的高级运算单元进行高级运算,而高级运算单元用于将高级运算拆分为基础运算,并分发给基础运算单元,因此不必在高级运算单元中进行复杂的运算,因此高级运算单元的电路可以较为简单,也占用较小的芯片面积,同时,基础运算单元可以被多个不同高级运算单元调用,因此可以减少实现不同高级运算所需的电路总体面积,从而在支持计算机处理多种类型密码的同时,节省密码协处理器的在芯片中的占用面积。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种密码协处理器,其特征在于,包括:
寄存器堆,适于存储算法参数和临时计算结果;
运算模块,与所述寄存器堆连接,适于调用所述寄存器堆中存储的算法参数或临时计算结果,所述运算模块包括基础运算单元和高级运算单元,所述基础运算单元适于执行基础运算,所述高级运算单元适于结合待执行数据,和自所述寄存器堆所调用的算法参数或临时计算结果,调用所述基础运算单元执行高级运算;其中,所述高级运算单元与所述基础运算单元相连接,至少一个所述基础运算单元适于被多个不同高级运算单元调用;
主控制器,与所述运算模块连接,包括适于接收密码算法控制信号的密码算法控制信号端口,所述主控制器适于根据所述密码算法控制信号控制所述运算模块的高级运算单元执行与所述密码算法控制信号对应的高级运算;其中,所述密码算法控制信号大于或等于两个,不同密码算法控制信号对应不同的密码算法。
2.如权利要求1所述的密码协处理器,其特征在于,所述基础运算单元包括:模乘单元、模平方单元、模加单元、模减单元。
3.如权利要求2所述的密码协处理器,其特征在于,所述高级运算单元包括多个,所述高级运算单元还适于调用其他高级运算单元实现高级运算。
4.如权利要求3所述的密码协处理器,其特征在于,所述高级运算单元包括:模幂单元、点乘单元、点加单元和倍点单元。
5.如权利要求4所述的密码协处理器,其特征在于,所述基础运算单元还包括:模逆单元。
6.如权利要求4所述的密码协处理器,其特征在于,所述模幂单元连接所述模乘单元、模平方单元和模加单元;所述点乘单元连接所述点加单元和所述倍点单元,所述点加单元和所述倍点单元连接所述模乘单元、所述模平方单元、所述模加单元和所述模减单元;
所述模幂单元适于拆分模幂运算为模乘运算、模平方运算和模加运算,分别调用模乘单元处理模乘运算、模平方单元处理模平方运算和模加单元处理模加运算;
所述点乘单元适于拆分点乘运算为点加运算和倍点运算,分别调用所述点加单元处理所述点加运算,调用所述倍点单元处理所述倍点运算;
所述点加单元,适于拆分所述点加运算为模乘运算、模平方运算、模加运算和模减运算,分别调用所述模乘单元处理所述模乘运算,调用所述模平方单元处理所述模平方运算,调用所述模加单元处理所述模加运算以及调用所述模减单元处理所述模减运算;
所述倍点单元,适于拆分所述倍点运算为模乘运算、模平方运算、模加运算和模减运算,分别调用所述模乘单元处理所述模乘运算,调用所述模平方单元处理所述模平方运算,调用所述模加单元处理所述模加运算以及调用所述模减单元处理所述模减运算。
7.如权利要求1-6任一项所述的密码协处理器,其特征在于,所述主控制器包括适于接收密码功能信号的密码功能信号端口,适于根据密码算法控制信号和密码功能信号控制所述运算模块执行与所述密码功能信号对应的密码功能。
8.如权利要求7所述的密码协处理器,其特征在于,还包括:密码功能单元,所述密码功能单元与所述运算模块连接,适于基于运算模块,执行对待执行数据的加密、解密、签名和验签功能中的一种或多种。
9.如权利要求8所述的密码协处理器,其特征在于,所述主控制器还包括:
参数端口,所述参数端口适于接收主处理器发送的密码参数并将所述密码参数写入所述寄存器堆中。
10.如权利要求9所述的密码协处理器,其特征在于,所述主控制器还包括:输出端口,所述输出端口适于输出所述密码协处理器的密码算法结果。
11.如权利要求9所述的密码协处理器,其特征在于,所述主控制器还包括:适于接受开始信号的开始信号端口和适于接受结束信号的结束信号端口。
12.一种密码处理方法,其特征在于,适用于如权利要求1至11任一项所述的密码协处理器,包括:
接收处理器发送的密码算法控制信号;
根据所述密码算法控制信号,调取预先存储的待执行数据,以及,预先存储的算法参数或临时计算结果进行高级运算,所述进行高级运算包括拆分所述高级运算为多个基础运算并执行所述多个基础运算;其中,所述基础运算适于被多个所述高级运算拆分利用。
13.一种芯片,其特征在于,包括如权利要求1-11任一项所述的密码协处理器。
14.一种计算机设备,其特征在于,包括如权利要求13所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211731022.6A CN116186794B (zh) | 2022-12-30 | 2022-12-30 | 密码协处理器、密码处理方法、芯片和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211731022.6A CN116186794B (zh) | 2022-12-30 | 2022-12-30 | 密码协处理器、密码处理方法、芯片和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116186794A CN116186794A (zh) | 2023-05-30 |
CN116186794B true CN116186794B (zh) | 2024-04-16 |
Family
ID=86435766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211731022.6A Active CN116186794B (zh) | 2022-12-30 | 2022-12-30 | 密码协处理器、密码处理方法、芯片和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186794B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212292A (zh) * | 2006-12-31 | 2008-07-02 | 航天信息股份有限公司 | 一种ecc\rsa加解密协处理器 |
CN101826142A (zh) * | 2010-04-19 | 2010-09-08 | 中国人民解放军信息工程大学 | 一种可重构椭圆曲线密码处理器 |
CN102279725A (zh) * | 2011-09-01 | 2011-12-14 | 北京华大信安科技有限公司 | Ecc协处理器 |
CN110704109A (zh) * | 2019-09-30 | 2020-01-17 | 华中科技大学 | 一种椭圆曲线密码协处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007020566A1 (en) * | 2005-08-19 | 2007-02-22 | Nxp B.V. | Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation |
-
2022
- 2022-12-30 CN CN202211731022.6A patent/CN116186794B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212292A (zh) * | 2006-12-31 | 2008-07-02 | 航天信息股份有限公司 | 一种ecc\rsa加解密协处理器 |
CN101826142A (zh) * | 2010-04-19 | 2010-09-08 | 中国人民解放军信息工程大学 | 一种可重构椭圆曲线密码处理器 |
CN102279725A (zh) * | 2011-09-01 | 2011-12-14 | 北京华大信安科技有限公司 | Ecc协处理器 |
CN110704109A (zh) * | 2019-09-30 | 2020-01-17 | 华中科技大学 | 一种椭圆曲线密码协处理器 |
Non-Patent Citations (2)
Title |
---|
RSA/ECC密码协处理器的硬件实现;何德彪;陈建华;孙金龙;;计算机工程(22);摘要,正文1-2节 * |
何德彪 ; 陈建华 ; 孙金龙 ; .RSA/ECC密码协处理器的硬件实现.计算机工程.2007,(22),摘要,正文1-2节. * |
Also Published As
Publication number | Publication date |
---|---|
CN116186794A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100414492C (zh) | 一种椭圆曲线密码系统及实现方法 | |
US7904498B2 (en) | Modular multiplication processing apparatus | |
Öztürk et al. | Low-power elliptic curve cryptography using scaled modular arithmetic | |
CN103942031B (zh) | 椭圆域曲线运算方法 | |
US20070198824A1 (en) | Cryptography system and elliptic curve operation method | |
US9268564B2 (en) | Vector and scalar based modular exponentiation | |
Kocabaş et al. | Implementation of binary Edwards curves for very-constrained devices | |
JP3785044B2 (ja) | べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体 | |
JP2004501385A (ja) | 楕円曲線暗号化方法 | |
Parrilla et al. | Elliptic curve cryptography hardware accelerator for high-performance secure servers | |
US7702105B1 (en) | Accelerating elliptic curve point multiplication through batched inversions | |
CN101971138B (zh) | 用于计算椭圆曲线上的点的倍数的设备和方法 | |
CN116186794B (zh) | 密码协处理器、密码处理方法、芯片和计算机设备 | |
Moon et al. | Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications | |
US6609141B1 (en) | Method of performing modular inversion | |
CN117134900A (zh) | 一种实现非对称加密的结构及控制方法 | |
KR101977873B1 (ko) | 하드웨어 구현된 모듈러 역원 모듈 | |
CN114840174B (zh) | 一种使用多乘法器快速实现蒙哥马利模乘的系统及方法 | |
WO2024138867A1 (zh) | 密码协处理器、密码处理方法、芯片和计算机设备 | |
CN112118103A (zh) | 一种素域Fp下椭圆曲线快速点乘的硬件实现系统 | |
WO2017177686A1 (zh) | 同时实现rsa/ecc加解密算法的装置 | |
WO2023043467A1 (en) | A method and architecture for performing modular addition and multiplication sequences | |
JP4543143B2 (ja) | 楕円曲線暗号装置、楕円曲線暗号演算方法 | |
Lim et al. | Elliptic curve digital signature algorithm over GF (p) on a residue number system enabled microprocessor | |
JP3137190B2 (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 |