CN116775544A - 一种协处理器和计算机设备 - Google Patents
一种协处理器和计算机设备 Download PDFInfo
- Publication number
- CN116775544A CN116775544A CN202311061412.1A CN202311061412A CN116775544A CN 116775544 A CN116775544 A CN 116775544A CN 202311061412 A CN202311061412 A CN 202311061412A CN 116775544 A CN116775544 A CN 116775544A
- Authority
- CN
- China
- Prior art keywords
- message
- iteration
- hash
- register
- calculation circuit
- 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
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 90
- 238000004364 calculation method Methods 0.000 claims abstract description 88
- 238000012545 processing Methods 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 15
- 239000004973 liquid crystal related substance Substances 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000005429 filling process Methods 0.000 description 2
- 238000013496 data integrity verification Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种协处理器和计算机设备,涉及集成电路技术领域,该协处理器包括:总控制器、填充缓存模块和迭代处理模块;总控制器,用于从随机存取存储器中读取原始消息对应的多个消息块,以及将多个消息块存入所述填充缓存模块;填充缓存模块,用于预存多个消息块,并依次向迭代处理模块发送多个消息块的消息字;迭代处理模块,用于基于指定的哈希算法类型,依次对多个消息块进行消息字扩展和哈希迭代处理,获得原始消息的消息摘要,其中,迭代处理模块支持多个哈希算法类型,灵活性高,成本低,且处理性能佳。本申请基于哈希算法类型对应的杂凑算法的共性,设计通用的协处理器的计算电路,其扩展性强,可以扩展到其他同代杂凑算法。
Description
技术领域
本申请实施例涉及集成电路技术领域,尤其涉及一种协处理器和计算机设备。
背景技术
在信息安全领域,数字指纹和数据完整性验证是重要的应用。这些应用的核心算法就是哈希(hash)算法。在大型服务器中,经常需要支持多种hash算法进行加密计算,以保证信息安全。
相关技术下,针对不同的加密任务,在服务中设置相应的hash计算引擎,以支持多种hash算法的加密计算。然而,该方法计算成本较高,且处理性能较低。
发明内容
本申请实施例提供了一种协处理器和计算机设备,用于降低加密任务的计算成本,提高处理性能。
一方面,本申请实施例提供了一种协处理器,包括:
总控制器、填充缓存模块和迭代处理模块;
所述总控制器,用于从随机存取存储器中读取原始消息对应的多个消息块,以及将所述多个消息块存入所述填充缓存模块;
所述填充缓存模块,用于预存所述多个消息块,并依次向所述迭代处理模块发送所述多个消息块的消息字;
所述迭代处理模块,用于基于指定的哈希算法类型,依次对所述多个消息块的消息字进行消息字扩展和哈希迭代处理,获得所述原始消息的消息摘要,其中,所述迭代处理模块支持多个哈希算法类型。
可选地,所述总控制器执行从随机存取存储器中读取原始消息对应的多个消息块,以及将所述多个消息块存入所述填充缓存模块时,具体用于:
所述总控制器,用于当控制寄存器中的哈希计算使能被置为1,或者,开始工作后所述填充缓存模块的乒乓缓存未满时,通过总线突发模式从随机存取存储器中读取所述原始消息对应的消息块,并将读取的消息块放入所述乒乓缓存中,直到所述乒乓缓存已满或者所述原始消息被读完。
可选地,所述总控制器在读取消息块的过程中,更新相应的消息数据指针。
可选地,所述迭代处理模块执行基于所述指定的哈希算法类型,依次对所述多个消息块的消息字进行消息字扩展和哈希迭代处理,获得所述原始消息的消息摘要时,具体用于:
针对每个消息块,基于所述指定的哈希算法类型,配置扩展计算电路的寄存器参数和迭代计算电路的寄存器参数;并且,以上一个消息块的哈希值为初始值,通过所述扩展计算电路和所述迭代计算电路,对所述消息块的消息字进行消息字扩展和哈希迭代处理,获得所述消息块的哈希值;
若所述消息块为所述原始消息对应的最后一个消息块,则将所述消息块的哈希值,作为所述原始消息的消息摘要。
可选地,所述迭代处理模块执行以上一个消息块的哈希值为初始值,通过所述扩展计算电路和所述迭代计算电路,对所述消息块的消息字进行消息字扩展和哈希迭代处理,获得所述消息块的哈希值时,具体用于:
通过所述扩展计算电路和所述迭代计算电路,以上一个消息块的哈希值为初始值,迭代对所述消息块的消息字进行消息字扩展和哈希计算,直到满足迭代停止条件,获得所述消息块的哈希值,其中,每次迭代过程包括以下操作:
通过所述扩展计算电路对所述消息块的消息字进行消息字扩展,并输出至少一个扩展消息字至所述迭代计算电路;
通过所述迭代计算电路,基于所述至少一个扩展消息字进行哈希计算,获得迭代状态信息,并基于所述迭代状态信息和上一次迭代输出的哈希值,获得本次迭代输出的哈希值。
可选地,所述至少一个扩展消息字的数量,与所述指定的哈希算法类型关联。
可选地,所述迭代处理模块还包括多个状态寄存器和多个摘要寄存器;
所述迭代处理模块还用于:在每次迭代过程中,基于获得的迭代状态信息更新所述多个状态寄存器,以及基于获得的哈希值更新所述多个摘要寄存器,其中,所述多个摘要寄存器的初始值为:上一个消息块结束哈希迭代处理时对应的哈希值,所述多个状态寄存器的初始值为:上一个消息块结束哈希迭代处理时对应的迭代状态信息。
可选地,所述迭代停止条件包括:迭代次数达到预设值,所述预设值与所述指定的哈希算法类型关联。
一方面,本申请实施例提供了一种计算机设备,包括上述任一所述的协处理器。
本申请实施例中通用的协处理器可以支持多个哈希算法的运算,灵活性高,成本低,且处理性能佳。其次,本申请基于哈希算法类型对应的杂凑算法的共性,设计通用的协处理器的计算电路,其扩展性强,可以扩展到其他同代杂凑算法。另外,本申请中的协处理器融合了多种Hash算法,其融合的电路结构难以区分具体的hash算法的类型,增强了抵抗侧信道攻击的能力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种计算机设备的结构示意图;
图2为本申请实施例提供的一种计算机设备的结构示意图;
图3为本申请实施例提供的一种协处理器的结构示意图;
图4为本申请实施例提供的一种迭代处理模块的结构示意图;
图5为本申请实施例提供的一种扩展计算电路的结构示意图;
图6为本申请实施例提供的一种迭代计算电路的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
哈希计算:将一段接收到的消息通过哈希算法将其转换成固定位数的哈希值(也称消息摘要),哈希算法包括但不限于:SHA2算法(比如,SHA256算法、SHA512算法等)、SM3算法等。
中央处理器(Central Processing Unit,简称CPU),作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
随机存取存储器(Random Access Memory,简称RAM),也叫主存,是与CPU直接交换数据的内部存储器。
只读存储器(Read-Only Memory,简称ROM):以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。
直接内存访问(Direct Memory Access,简称DMA)控制器:一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。
协处理器:一种协助中央处理器完成其无法执行或执行效率、效果低下的处理工作而开发和应用的处理器。
单目操作符:只有一个操作数的运算符。
多目操作符:接受多个操作数并执行指定操作的运算符。
举例来说,单目操作符和多目操作符如以下表1所示:
表1
在实际应用中,多种哈希算法得到广泛应用。比如,SHA256算法、SHA512算法、SHA384算法、SM3算法等。通过对各种哈希算法进行分析可知,哈希算法的运算特征包括填充和迭代计算两个阶段。
举例来说,SM 3算法、SHA256算法的填充过程为:
假设消息的长度为 M比特,将位“1”附加到消息的末尾,然后是 k 个零位,其中 k是方程 M + 1 + k = 448 mod 512 的最小非负解。然后附加使用二进制表示的消息长度的 64 位。例如,(8位ASCII)消息“abc”的长度为8*3=24,则消息后填充一位“1”,然后填充448-(24+1)=423个零位,再将消息长度24转换为64位的二进制数填充在末尾,成为 512 位的填充消息,如下所示:
SHA512算法的填充过程为:
假设消息的长度 M 比特,将位“1”附加到消息的末尾,然后是 k 个零位,其中 k是方程 M + 1 + k = 896 mod 1024的最小非负解。然后附加使用二进制表示的消息长度的128位。例如,(8位ASCII)消息“abc”的长度为8*3=24,则消息后填充一位“1”,然后填充896-(24+1)=871个零位,再将消息长度24转换为128位的二进制数填充在末尾,成为1024位的填充消息,如下所示:
SHA256算法的迭代计算过程为:
采用以下公式(1)进行消息扩展:
其中,表示第t个扩展消息字,表示第t个扩展消息字,表示第i个消息块对应的第t个原始消息字,/>和/>固定运算,可通过查询现有的fips180-2获得,此处不再赘述。
采用以下公式(2)确定迭代状态信息:
其中,A、B、C、D、E、F、G表示迭代状态信息,保存在8个状态寄存器中。表示扩展消息字,/>表示常数,CH和Maj均表示多目操作。
采用以下公式(3)进行哈希计算:
其中,、/>、…、/>表示本次迭代获得的哈希值,保存在8个摘要寄存器中,、/>、…、/>示上次迭代获得的哈希值,是8个摘要寄存器更新前保存的值。
SHA512算法的迭代计算过程为:
采用以下公式(4)进行消息扩展:
其中,表示第t个扩展消息字,/>表示第i个消息块对应的第t个原始消息字。
后续也采用上述公式(2)确定迭代状态信息以及采用上述公式(3)进行哈希计算,此处不再赘述。
SM3算法的迭代计算过程为:
采用以下公式(5)进行消息扩展:
其中,和/>表示输出的两个扩展消息字,/>表示第i个消息块对应的第t个原始消息字,ROTL表示移位算法。
采用以下公式(6)确定迭代状态信息:
其中,A、B、C、D、E、F、G表示迭代状态信息,保存在8个状态寄存器中。和/>表示输出的两个扩展消息字,/>表示移位算法,/>表示常数,/>和/>均表示多目操作,P0表示单目操作符。
采用以下公式(7)进行哈希迭代
其中,、/>、…、/>表示本次迭代获得的哈希值,保存在8个摘要寄存器中,、/>、…、/>表示上次迭代获得的哈希值,是8个摘要寄存器更新前保存的值。
需要说明的是,本申请仅以SHA256算法、SHA512算法、SM3算法为例说明哈希算法的运算过程,并不仅限于这几类哈希算法。
通过对上述多种哈希算法进行分析可知,多类哈希算法的迭代计算部分的计算结构类似,以及迭代计算部分的基本计算单元类似。基于上述特征,本申请提出一种专用于哈希计算的通用的协处理器(也可以称之为H协处理器),其中,协处理器包含至少一个配置寄存器,这些配置寄存器由CPU通过总线配置,同时,协处理器还具备DMA功能,可以通过总线主动访问RAM。
本申请实施例中的协处理器至少适用于以下几种应用场景:
参见图1,为本申请实施例提供的协处理器的一种应用场景,计算机设备100中包括:中央处理器101、只读存储器102、其他外设103、总线104、第一协处理器105、第二协处理器106和随机存取存储器107。
中央处理器101通过总线104访问第一协处理器105或第二协处理器106的相关寄存器。当第一协处理器105开始工作时,第一协处理器105拥有总线104的控制权,通过总线104从随机存取存储器107中读取消息,并对读取的消息进行相关处理,获得计算结果;在完成处理后,第一协处理器105向中央处理器101发出中断;中央处理器101在相应的中断服务程序中,获取第一协处理器105产生的计算结果。中央处理器101还可以通过总线104与只读存储器102和其他外设103交互。
参见图2,为本申请实施例提供的协处理器的另一种应用场景,计算机设备200中包括:中央处理器201、只读存储器202、其他外设203、第一总线204、第二总线205、第一协处理器206、第二协处理器207和随机存取存储器208。
中央处理器201通过第一总线204访问第一协处理器206或第二协处理器207的相关寄存器。当第一协处理器206开始工作时,第一协处理器206拥有第二总线205的控制权,通过第二总线205访问随机存取存储器208读取指定的消息,并对读取的消息进行相关处理,获得计算结果;在完成处理后,第一协处理器206向中央处理器201发出中断;中央处理器201在相应的中断服务程序中,获取第一协处理器206产生的计算结果。在第一协处理器206工作时,中央处理器201可以通过第一总线204并行处理其他任务。中央处理器101还可以通过第一总线204与只读存储器202和其他外设203交互。
下面具体介绍协处理器的内部架构,参见图3,其为本申请实施例提供的一种协处理器的结构示意图,该协处理器300至少包括总控制器301、填充缓存模块302和迭代处理模块303。
总控制器301,用于从随机存取存储器304中读取原始消息对应的多个消息块,以及将多个消息块存入填充缓存模块302;
填充缓存模块302,用于预存多个消息块,并依次向迭代处理模块303发送多个消息块的消息字;
迭代处理模块303,用于基于指定的哈希算法类型,依次对多个消息块的消息字进行消息字扩展和哈希迭代处理,获得原始消息的消息摘要,其中,迭代处理模块支持多个哈希算法类型。
具体地,总控制器301包括多个寄存器。比如,控制寄存器(HCPCTL)、哈希消息地址指针寄存器、哈希填充控制寄存器(HashPaddingCtl)等。控制寄存器(HCPCTL)包括多个参数,各个参数的功能描述参见以下表2:
表2
哈希消息地址指针寄存器的功能描述如表3所示:
表3
哈希填充控制寄存器的功能描述如表4所示:
表4
总控制器301根据总线的访问请求,更新或者读取指定的寄存器。在一些实施例中,当读取到HCPEnable=1时,即控制寄存器中的哈希计算使能被置为1时,说明开始进行哈希计算,则总控制器301计算消息块个数,并将消息块个数存入消息块计数器,具体地,总控制器301采用以下公式计算消息块个数:
当消息块长度为512时,那么,采用消息数据长度(Msglen)除以512,若获得的余数不为0且余数长度不小于448,则消息块的个数为:在消息数据长度除以512获得的商的基础上加上2;在其他情况下,消息块的个数为:在消息数据长度除以512获得的商的基础上加上1。
当消息块长度为1024时,那么,采用消息数据长度(Msglen)除以1024,若获得的余数不为0且余数长度不小于896,则消息块的个数为:在消息数据长度除以1024获得的商的基础上加上2;在其他情况下,消息块的个数为:在消息数据长度除以1024获得的商的基础上加上1。
同时,控制寄存器中的参数HCPCTL.done和HCPCTL.intflag清零。另外,通过总线突发(burst)模式从随机存取存储器中读取原始消息对应的消息块,并将消息块放入乒乓缓存中。乒乓缓存中的两个存储空间的大小都为1024位,即支持的最大消息块为1024位,每个消息块包括多个消息字。
在一些实施例中,总控制器301开始工作后,当填充缓存模块的乒乓缓存未满时,总控制器301通过总线突发(burst)模式从随机存取存储器中读取原始消息对应的消息块,并将读取的消息块放入乒乓缓存中,直到乒乓缓存已满或者原始消息被读完。在读取消息块的过程中,更新相应的消息数据指针(MsgPointer)。
在读取的消息块的数量达到消息块计数器(MsgblkCount)保存的个数时,即消息块读取完毕,则等待消息处理完成。在所有消息块处理完成后,将HCPEnable置为0,同时将HCPCTL.done和HCPCTL.intflag置为1。
填充缓存模块302向迭代处理模块303发送消息块的消息字时,还会向迭代处理模块303发送一个valid信号,以通知迭代处理模块303有消息块需要处理。
在一些实施例中,如图4所示,迭代处理模块303包括:消息扩展模块401和哈希迭代模块402,其中,消息扩展模块401包括扩展控制器403和扩展计算电路404,哈希迭代模块402包括迭代控制器405、迭代计算电路406、多个状态寄存器407和多个摘要寄存器408。
扩展控制器403中包括一个计数器extcnt,用于对消息字进行计数。
迭代控制器405中包括一个是轮数计数器loopcnt和一个是消息块计数器blkcnt,轮数计数器loopcnt用于对每个消息块的迭代轮数进行计数,消息块计数器blkcnt用于对参与迭代的消息块进行计数。
针对接收的每个消息块,迭代处理模块303基于指定的哈希算法类型,配置扩展计算电路404的寄存器参数和迭代计算电路406的寄存器参数;并且,以上一个消息块的哈希值为初始值,通过扩展计算电路404和迭代计算电路406,对消息块的消息字进行消息字扩展和哈希迭代处理,获得消息块的哈希值;若消息块为原始消息对应的最后一个消息块,则将消息块的哈希值,作为原始消息的消息摘要。
具体地,迭代处理模块303支持的哈希算法类型包括但不限于:SHA2算法、SM3算法。迭代处理模块303按照消息块的接收顺序依次对多个消息块的消息字进行消息字扩展和哈希迭代处理,获得消息块的哈希值。当消息块计数器blkcnt的值与消息块计数器的值相等时,说明当前计算的消息块为原始消息对应的最后一个消息块,因此,将当前计算的消息块的哈希值,作为原始消息的消息摘要。
在一些实施例中,本申请实施例至少采用以下方式对每个消息块的消息字进行消息字扩展和哈希迭代处理,获得消息块的哈希值:
通过扩展计算电路404和迭代计算电路406,以上一个消息块的哈希值为初始值,迭代对消息块的消息字进行消息字扩展和哈希计算,直到满足迭代停止条件,获得消息块的哈希值,其中,每次迭代过程包括以下操作:
通过扩展计算电路404对消息块的消息字进行消息字扩展,并输出至少一个扩展消息字至迭代计算电路406;通过迭代计算电路406,基于至少一个扩展消息字进行哈希计算,获得迭代状态信息,并基于迭代状态信息和上一次迭代输出的哈希值,获得本次迭代输出的哈希值。
在每次迭代过程中,基于获得的迭代状态信息更新多个状态寄存器,以及基于获得的哈希值更新多个摘要寄存器,其中,多个摘要寄存器的初始值为:上一个消息块结束哈希迭代处理时对应的哈希值,多个状态寄存器的初始值为:上一个消息块结束哈希迭代处理时对应的迭代状态信息。
在实际迭代过程中,扩展计算电路输出的扩展消息字的数量,与指定的哈希算法类型关联。比如,由前文中的公式(1)和公式(4)可知,当哈希算法为SHA256算法或者SHA512算法时,在每轮迭代过程中,扩展计算电路输出一个扩展消息字(即Wt’)。由前文中的公式(5)可知,当哈希算法为SM3算法时,在每轮迭代过程中,扩展计算电路输出两个扩展消息字(即Wt和Wt’)。
迭代停止条件包括:迭代次数达到预设值,其中,预设值与指定的哈希算法类型关联。比如,在SHA256算法中,一个消息块可以划分为16个消息字,扩展计算电路将该消息块从16个消息字扩展至64个消息字,即扩展计算电路执行64次消息字扩展,输出64个扩展消息字至迭代计算电路。迭代计算电路需要对扩展计算电路每次输出的消息字进行迭代计算,因此,针对SHA256算法中的每个消息块,相应的迭代次数为64次。同理,针对其他类型的哈希算法,也存在相应的迭代次数,此处不再赘述。
为了使扩展计算电路适用于多个哈希算法类型,在扩展计算电路中配置多种寄存器,具体包括:MsgExtExpCfg寄存器、MsgExtPostCfg寄存器。下面具体介绍各个寄存器的参数以及功能描述:
MsgExtExpCfg寄存器的相关参数以及功能描述如表5所示:
表5
MsgExtPostCfg寄存器的相关参数以及功能描述如表6所示:
表6
在一些实施例中,参见图5,为本申请实施例提供的一种扩展计算电路的结构示意图,包括:
第一操作数单元、第二操作数单元、第三操作数单元、第四操作数单元、第五操作数单元、第六操作数单元、第七操作数单元、第一预运算单元、第二预运算单元、第一运算操作单元、第二运算操作单元、第三运算操作单元、第四运算操作单元、选择器。
第一操作数单元、第二操作数单元、第三操作数单元、第四操作数单元、第五操作数单元、第六操作数单元、第七操作数单元各自的输入端,分别与填充缓存模块302连接;第一操作数单元的输出端与第一预运算单元的输入端连接,第三操作数单元的输出端与第二预运算单元的输入端连接;
第二操作数单元、第四操作数单元、第一预运算单元和第二预运算单元各自的输出端,分别与第一运算操作单元的输入端连接;
第一运算操作单元的输出端与第二运算操作单元的输入端连接;第二运算操作单元的输出端和第五操作数单元的输出端,分别与第三运算操作单元的输入端连接;第三运算操作单元的输出端和第六操作数单元的输出端分别与选择器的输入端连接;第三运算操作单元的输出端还与填充缓存模块302连接。
选择器的输出端分别与迭代计算电路406和第四运算操作单元的输入端连接,第七操作数单元与第四运算操作单元的输入端连接,第四运算操作单元的输出端与迭代计算电路40连接。
各个操作数单元从填充缓存模块302中读取消息字,填充缓存模块302中包括扩展消息字寄存器组,分别为寄存器w00至寄存器w15,每个W寄存器保存一个消息字,t为正整数。填充缓存模块302中还包括扩展消息字暂存寄存器组,分别为寄存器D0~寄存器D3。
第一操作数单元至第六操作数单元从扩展消息字寄存器组读取消息字,第七操作数单元从扩展消息字暂存寄存器组读取消息字。
第一操作数单元输出消息字至第一预运算单元,第一预运算单元基于MsgExtExpCfg寄存器中参数Op0cmd的取值对消息字进行相应运算,并输出预运算结果0输出至第一运算操作单元。
第二操作数单元直接输出消息字至第一运算操作单元。
第三操作数单元输出消息字至第二预运算单元,第二预运算单元基于MsgExtExpCfg寄存器中参数Op1cmd的取值进行相应运算,并输出预运算结果1至第一运算操作单元。
第三操作数单元直接输出消息字至第一运算操作单元。
第一运算操作单元基于MsgExtExpCfg寄存器中参数extcmd的取值,对预运算结果0、预运算结果1以及接收的消息字进行相应运算,并输出运算结果0至第二运算操作单元。
第二运算操作单元基于MsgExtPostCfg寄存器中参数Post0cmd的取值对运算结果0进行相应运算,并输出运算结果1至第三运算操作单元。
第五操作数单元输出消息字至第三运算操作单元,第三运算操作单元基于MsgExtPostCfg寄存器中参数Post1cmd的取值对运算结果1和接收的消息字进行相应运算,并输出运算结果2至选择器、扩展消息字寄存器组和扩展消息字暂存寄存器组;同时第六操作数单元也输出消息字至选择器。
选择器从第六操作数单元传递的消息字和第三运算操作单元传递的运算结果2中选择一个作为第一扩展消息字(Wt)输出至迭代计算电路406和第四运算操作单元。
在实际应用中,一个消息块可以划分为V个原始消息字,因此,针对前V轮迭代,即计数器extcnt的数值小于V时,选择器可以直接将第六操作数单元传递的原始消息字作为第一扩展消息字输出至迭代计算电路406和第四运算操作单元。后续迭代轮次(计数器extcnt的数值大于等于V)则选择第三运算操作单元传递的运算结果2作为第一扩展消息字输出至迭代计算电路406和第四运算操作单元,其中,V的取值由指定的哈希算法类型确定,比如,针对SHA256算法和SHA512算法,V的取值为16。
除了选择器输出运算结果2至第四运算操作单元,第七操作数单元也输出消息字至第四运算操作单元,第四运算操作单元基于MsgExtPostCfg寄存器中参数Post2cmd的取值对运算结果2和接收的消息字进行相应运算,并将获得的第二扩展消息字(Wt’)输出至迭代计算电路406。
在具体运算过程中,通过设置MsgExtPostCfg寄存器中参数Post2cmd的取值,控制输出的扩展消息字的数量,以适用不同的哈希算法。
比如,当MsgExtPostCfg:post2cmd等于dummy时,扩展计算电路只输出第一扩展消息字至迭代计算电路,第二扩展消息字始终为0。
当MsgExtPostCfg:post2cmd不等于dummy时,扩展计算电路输出第一扩展消息字和第二扩展消息字至迭代计算电路406。
举例来说,当执行SHA2算法时,只使能扩展消息字寄存器组,即寄存器w00至寄存器w15;而不使能扩展消息字暂存寄存器组,即寄存器 D0~寄存器D3,那么,第七操作数单元也无法从扩展消息字暂存寄存器组读取消息字。
当扩展计数器小于16时,选择器将第六操作数单元传递的消息字,即原始消息字(msg_word_raw)直接存入扩展消息字寄存器组中对应的寄存器;同时也把msg_word_raw作为第一扩展消息字传输至迭代计算电路406;当扩展计数器大于或等于16时,选择器选择第三运算操作单元传递的运算结果2(即扩展计算得到的扩展消息字)存入扩展消息字寄存器组中对应的寄存器,以及 作为第一扩展消息字输出至迭代计算电路406。由于post2cmd等于dummy,则第二扩展消息字始终为0。
当执行SM3算法时,post2cmd不等于dummy,扩展消息字寄存器组和扩展消息字暂存寄存器组都被使能。
当扩展计数器小于16时,选择器将第六操作数单元传递的消息字,即原始消息字作为选取消息字(selected_msg_word)存入扩展消息字寄存器组和扩展消息字暂存寄存器组中。
当扩展计数器大于或等于16时,选择器将第三运算操作单元传递的运算结果2(即扩展计算得到的扩展消息字)作为选取消息字(selected_msg_word)存入扩展消息字寄存器组和扩展消息字暂存寄存器组中。
当扩展计数器计数到4时,开始向迭代计算电路406输出有效的扩展消息字。当扩展计数器计数到4后,从扩展消息字寄存器组中取出相应的消息字作为第一扩展消息字Wt输出至迭代计算电路406和第四运算操作单元;第七操作数单元从扩展消息字暂存寄存器组读取消息字传递至第四运算操作单元,第四运算操作单元输出第二扩展消息字Wt’至迭代计算电路406。
需要说明的是,传递给迭代计算电路406的第一扩展消息字Wt和第二扩展消息字Wt’并不是一开始就有效(因为开始的时候寄存器 D0~寄存器D3为空),而是在扩展计数器为4~67时才有效。
针对不同类型的哈希算法,上述MsgExtExpCfg寄存器和MsgExtPostCfg寄存器的其他相关参数的取值也需要相应设置。
比如,参见前文表5和表6,针对SHA256算法,MsgExtExpCfg寄存器中参数Op0cmd的取值为2;MsgExtExpCfg寄存器中参数Op1cmd的取值为1;MsgExtExpCfg寄存器中参数extcmd的取值为0;MsgExtPostCfg寄存器中参数Post0cmd的取值为0;MsgExtPostCfg寄存器中参数Post1cmd的取值为0;MsgExtPostCfg寄存器中参数Post2cmd的取值为0。扩展计算电路404基于上述寄存器参数值迭代进行消息字扩展,每次迭代输出第一扩展消息字至迭代计算电路406,第二扩展消息字始终为0。
又比如,参见前文表5和表6,针对SM3算法,MsgExtExpCfg寄存器中参数Op0cmd的取值为0;MsgExtExpCfg寄存器中参数Op1cmd的取值为0;MsgExtExpCfg寄存器中参数extcmd的取值为1;MsgExtPostCfg寄存器中参数Post0cmd的取值为1;MsgExtPostCfg寄存器中参数Post1cmd的取值为1;MsgExtPostCfg寄存器中参数Post2cmd的取值为2。扩展计算电路404基于上述寄存器参数值迭代进行消息字扩展,每次迭代输出第一扩展消息字和第二扩展消息字至迭代计算电路406。
当然,本申请实施例中的方法还适用于其他哈希算法,此处不再赘述。
在一些实施例中,为了使迭代计算电路406适用于多种哈希算法,在迭代计算电路中配置多种寄存器,具体包括:iterSS1Cfg寄存器、IterSS2cfg寄存器、IterTT2cfg寄存器、iterTT1cfg寄存器、statecalcCfg寄存器、DigestCfg寄存器。下面具体介绍各个寄存器的参数以及功能描述:
iterSS1Cfg寄存器的相关参数以及功能描述如表7所示:
表7
IterSS2cfg寄存器的相关参数以及功能描述如表8所示:
表8
IterTT2cfg寄存器的相关参数以及功能描述如表9所示:
表9
iterTT1cfg寄存器的相关参数以及功能描述如表10所示:
表10
statecalcCfg寄存器的相关参数以及功能描述如表11所示:
表11
在一些实施例中,参见图6,为本申请实施例提供的一种迭代计算电路的结构示意图,迭代计算电路406包括:
第一状态信息单元、第二状态信息单元、第三状态信息单元、第四状态信息单元、第五状态信息单元、第一运算单元、第二运算单元、第三运算单元、第四运算单元、第五运算单元、第六运算单元、第七运算单元、第八运算单元、第九运算单元、第十运算单元、第一加法运算单元、第二加法运算单元、第三加法运算单元、第一状态运算单元和第二状态运算单元。
第一运算单元的输入端与第一状态信息单元连接,第一运算单元的输出端与第一加法运算单元的输入端连接;第二运算单元的输入端与第二状态信息单元连接,第二运算单元的输出端与第一加法运算单元的输入端连接;第三运算单元的输入端与第三状态信息单元连接,第三运算单元的输出端与第一加法运算单元的输入端连接;第一加法运算单元的输出端,分别与第三加法运算单元的输入端和第四运算单元的输入端连接。
第三加法运算单元的输入端还与第七运算单元连接,第三加法运算单元的输出端与第十运算单元的输入端连接;第十运算单元的输出端与第二状态运算单元的输入端连接,第二状态运算单元的输入端还与第九运算单元连接,第二状态运算单元的输出端输出迭代状态信息Ex。
第四运算单元的输入端还与第四状态信息单元连接,第四运算单元的输出端与第二加法运算单元的输入端连接;
第二加法运算单元的输入端还分别与第五运算单元的输出端、第六运算单元的输出端连接,第六运算单元的输入端连接与第五状态信息单元连接,第二加法运算单元的输出端与第一状态运算单元的输入端连接。第一状态运算单元的输入端还与第八运算单元的输出端连接;第一状态运算单元的输出端输出迭代状态信息Ax。
各个状态信息单元从状态寄存器中读取迭代状态信息,其中,哈希迭代模块中包括8个状态寄存器,分别为状态寄存器S0至状态寄存器S7,用于保存迭代状态信息A至迭代状态信息H。另外,哈希迭代模块中包括8个摘要寄存器,分别为摘要寄存器H0至状态寄存器H7,用于保存迭代计算获得的哈希值。
针对第x轮迭代,第一状态信息单元从一个状态寄存器中读取一个迭代状态信息,并将迭代状态信息传递给第一运算单元。第一运算单元基于iterSS1Cfg寄存器中参数Op0cmd的取值进行相应运算,并输出预运算结果0至第一加法运算单元,其中,x为正整数。
第二状态信息单元从一个状态寄存器中读取一个迭代状态信息,并将迭代状态信息传递给第二运算单元。第二运算单元基于iterSS1Cfg寄存器中参数Op1cmd的取值进行相应运算,并输出预运算结果1至第一加法运算单元。
第三状态信息单元从一个状态寄存器中读取一个迭代状态信息,并将迭代状态信息传递给第三运算单元。第三运算单元基于iterSS1Cfg寄存器中参数Op2cmd的取值进行相应运算,并输出预运算结果2至第一加法运算单元,其中,Op2cmd为基于迭代次数而变化的常数。
第一加法运算单元对预运算结果0、预运算结果1和预运算结果2进行加法运算,并输出加法运算结果0至第三加法运算单元和第四运算单元。
第四状态信息单元从一个状态寄存器中读取一个迭代状态信息,并将迭代状态信息传递给第四运算单元。第四运算单元基于IterSS2cfg寄存器中参数Op1cmd和参数SS2cmd的取值,对接收的迭代状态信息和加法运算结果0进行相应运算,并输出预运算结果3至第二加法运算单元。
五运算单元基于iterTT1cfg寄存器中参数tt1op0cmd的取值,对上一轮迭代获得的迭代状态信息、迭代状态信息/>、迭代状态信息/>进行相应运算,并输出预运算结果4至第二加法运算单元。
第五状态信息单元从一个状态寄存器中读取一个迭代状态信息,并将迭代状态信息传递给第六运算单元。第六运算单元基于iterTT1cfg寄存器中参数tt1op1cmd的取值进行相应运算,并输出预运算结果5至第二加法运算单元。
第二加法运算单元将预运算结果3、预运算结果4和预运算结果5、第二扩展消息字进行加法运算,并输出加法运算结果1至第一状态运算单元。
第七运算单元基于IterTT2cfg寄存器中参数tt2op0cmd的取值,对上一轮迭代获得的迭代状态信息、迭代状态信息/>、迭代状态信息/>进行相应运算,并输出预运算结果6至第三加法运算单元。
第三加法运算单元将预运算结果6、迭代状态信息、加法运算结果0和第一扩展消息字进行加法运算,并输出加法运算结果2至第十运算单元。
第八运算单元基于statecalcCfg寄存器中参数Aop1cmd的取值进行相应运算,并输出预运算结果7至第一状态运算单元。
第一状态运算单元对预运算结果7和加法运算结果1进行相加运算,获得本轮迭代输出的迭代状态信息Ax。
第九运算单元基于statecalcCfg寄存器中参数Eop0cmd的取值进行相应运算,并输出预运算结果8至第二状态运算单元。
第十运算单元基于statecalcCfg寄存器中参数Eop1cmd的取值对加法运算结果2进行相应运算,并输出预运算结果9至第二状态运算单元。
第二状态运算单元对预运算结果8和预运算结果9进行相加运算,获得本轮迭代输出的迭代状态信息Ex。
在一些实施例中,其余的迭代状态信息与迭代状态信息Ax或迭代状态信息Ex相同,不需要进行其他运算。
在一些实施例中,迭代计算电路还包括两个附加运算操作单元,分别为第三状态运算单元和第四状态运算单元。
第三状态运算单元基于statecalcCfg寄存器中参数Cop0cmd的取值,对本轮迭代输出的迭代状态信息Bx进行相应运算,获得本轮迭代输出的迭代状态信息Cx,其中,迭代状态信息Bx与迭代状态信息Ax或迭代状态信息Ex相同。
第四状态运算单元基于statecalcCfg寄存器中参数Gop0cmd的取值,对本轮迭代输出的迭代状态信息Fx进行相应运算,获得本轮迭代输出的迭代状态信息Gx,其中,迭代状态信息Fx与迭代状态信息Ax或迭代状态信息Ex相同。
迭代状态信息Dx和迭代状态信息Hx分别与迭代状态信息Ax、迭代状态信息Bx、迭代状态信息Cx、迭代状态信息Ex、迭代状态信息Fx、迭代状态信息Gx中的至少一个迭代状态信息相同。
在获得8个迭代状态信息后,将8个迭代状态信息存入8个状态寄存器,然后采用8个状态寄存器中的迭代状态信息与8个摘要寄存器中保存的上一轮迭代获得的哈希值进行指定运算,并将运算结果作为本轮迭代获得的哈希值存入8个摘要寄存器,其中,指定运算的类型与指定的哈希算法类型相关。
在实际运算法过程中,通过设置上述iterSS1Cfg寄存器、IterSS2cfg寄存器、iterTT1cfg寄存器、IterTT2cfg寄存器、statecalcCfg寄存器、DigestCfg寄存器中相应参数的参数值,可以实现不同类型的哈希算法的迭代计算。
比如,针对SHA256算法,参照公式(2),第一状态信息单元从ROM中读取,第二状态信息单元从状态寄存器S4中读取迭代状态信息/>,第三状态信息单元为空。第四状态信息单元从状态寄存器S0中读取迭代状态信息/>;第五状态信息单元为空。
参见前文表7至表11,iterSS1Cfg、iterSS2Cfg、iterTT1Cfg、iterTT2Cfg寄存器中参数配置如下:
iterSS1Cfg寄存器中参数Op0cmd[6]的取值为0;iterSS1Cfg寄存器中参数Op1cmd的取值为1或2;IterSS2cfg寄存器中参数Op1cmd[3]的取值为0;IterSS2cfg寄存器中参数SS2cmd的取值为1;iterTT1cfg寄存器中参数tt1op0cmd的取值为0;iterTT1cfg寄存器中参数tt1op1cmd的取值为1;IterTT2cfg寄存器中参数tt2op0cmd的取值为0;statecalcCfg寄存器中参数Aop1cmd的取值为0;statecalcCfg寄存器中参数Eop0cmd的取值为0;statecalcCfg寄存器中参数Eop1cmd的取值为 0;statecalcCfg寄存器中参数Cop0cmd的取值为0,statecalcCfg寄存器中参数Gop0cmd的取值为0。
迭代计算电路基于上述各寄存器的取值进行相应运算,其中,第一状态运算单元输出迭代状态信息Ax,以及第一状态运算单元输出迭代状态信息Ex后,根据公式(2)可知:基于迭代状态信息Ax可以相应确定迭代状态信息Bx、迭代状态信息Cx、迭代状态信息Dx;基于迭代状态信息Ex可以相应确定迭代状态信息Fx、迭代状态信息Gx、迭代状态信息Hx。
将获得的8个迭代状态信息存入8个状态寄存器,然后采用公式(3)基于8个状态寄存器中的迭代状态信息与8个摘要寄存器中保存的上一轮迭代获得的哈希值对应进行加法运算,并将运算结果作为本轮迭代获得的哈希值存入8个摘要寄存器。
又比如,针对SM3算法,参照公式(6),第一状态信息单元从状态寄存器S0中读取迭代状态信息,第二状态信息单元从状态寄存器S4中读取迭代状态信息/>,第三状态信息单元从ROM读取迭代状态信息/>,第四状态信息单元从状态寄存器S0中读取迭代状态信息/>,第五状态信息单元从状态寄存器S3中读取迭代状态信息/>。
参见前文表7至表11,iterSS1Cfg、iterSS2Cfg、iterTT1Cfg、iterTT2Cfg寄存器中参数配置如下:
iterSS1Cfg寄存器中参数Op0cmd[6]的取值为1;iterSS1Cfg寄存器中参数Op1cmd的取值为0;IterSS2cfg寄存器中参数Op1cmd[3]的取值为1;IterSS2cfg寄存器中参数SS2cmd的取值为3;iterTT1cfg寄存器中参数tt1op0cmd的取值为1;iterTT1cfg寄存器中参数tt1op1cmd的取值为0;IterTT2cfg寄存器中参数tt2op0cmd的取值为1;statecalcCfg寄存器中参数Aop1cmd的取值为1;statecalcCfg寄存器中参数Eop0cmd的取值为1;statecalcCfg寄存器中参数Eop1cmd的取值为1;statecalcCfg寄存器中参数Cop0cmd的取值为1,statecalcCfg寄存器中参数Gop0cmd的取值为1。
迭代计算电路基于上述各寄存器的取值进行相应运算,其中,第一状态运算单元输出迭代状态信息Ax,以及第一状态运算单元输出迭代状态信息Ex后,根据公式(6)可知:基于迭代状态信息Ax可以相应确定迭代状态信息Bx;基于迭代状态信息Ex可以相应确定迭代状态信息Fx。基于迭代状态信息Cx可以相应确定迭代状态信息Dx,基于迭代状态信息Gx可以相应确定迭代状态信息Hx。
将获得的8个迭代状态信息存入8个状态寄存器,然后采用公式(7)基于8个状态寄存器中的迭代状态信息与8个摘要寄存器中保存的上一轮迭代获得的哈希值对应进行异或运算,并将运算结果作为本轮迭代获得的哈希值存入8个摘要寄存器。
当然,本申请实施例中的方法还适用于其他哈希算法,此处不再赘述。
本申请实施例中通用的协处理器可以支持多个哈希算法的运算,灵活性高,成本低,且处理性能佳。其次,本申请基于哈希算法类型对应的杂凑算法的共性,设计通用的协处理器的计算电路,其扩展性强,可以扩展到其他同代杂凑算法。另外,本申请中的协处理器融合了多种Hash算法,其融合的电路结构难以区分具体的hash算法的类型,增强了抵抗侧信道攻击的能力。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机设备或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备或其他可编程数据处理设备上,使得在计算机设备或其他可编程设备上执行一系列操作步骤以产生计算机设备实现的处理,从而在计算机设备或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种协处理器,其特征在于,包括:
总控制器、填充缓存模块、迭代处理模块,所述迭代处理模块包括:扩展计算电路和迭代计算电路;
所述总控制器,用于从随机存取存储器中读取原始消息对应的多个消息块,以及将所述多个消息块存入所述填充缓存模块;
所述填充缓存模块,用于预存所述多个消息块,并依次向所述迭代处理模块发送所述多个消息块的消息字;
所述迭代处理模块,用于基于指定的哈希算法类型,配置所述扩展计算电路的寄存器参数和所述迭代计算电路的寄存器参数;并且,针对每个消息块,以上一个消息块的哈希值为初始值,通过所述扩展计算电路和所述迭代计算电路,对所述消息块的消息字进行消息字扩展和哈希迭代处理,获得所述消息块的哈希值;若所述消息块为所述原始消息对应的最后一个消息块,则将所述消息块的哈希值,作为所述原始消息的消息摘要,其中,所述迭代处理模块支持多个哈希算法类型。
2.如权利要求1所述的协处理器,其特征在于,所述总控制器执行从随机存取存储器中读取原始消息对应的多个消息块,以及将所述多个消息块存入所述填充缓存模块时,具体用于:
所述总控制器,用于当控制寄存器中的哈希计算使能被置为1,或者,开始工作后所述填充缓存模块的乒乓缓存未满时,通过总线突发模式从随机存取存储器中读取所述原始消息对应的消息块,并将读取的消息块放入所述乒乓缓存中,直到所述乒乓缓存已满或者所述原始消息被读完。
3.权利要求2所述的协处理器,其特征在于,所述总控制器在读取消息块的过程中,更新相应的消息数据指针。
4.权利要求1所述的协处理器,其特征在于,所述迭代处理模块执行以上一个消息块的哈希值为初始值,通过所述扩展计算电路和所述迭代计算电路,对所述消息块的消息字进行消息字扩展和哈希迭代处理,获得所述消息块的哈希值时,具体用于:
通过所述扩展计算电路和所述迭代计算电路,以上一个消息块的哈希值为初始值,迭代对所述消息块的消息字进行消息字扩展和哈希计算,直到满足迭代停止条件,获得所述消息块的哈希值,其中,每次迭代过程包括以下操作:
通过所述扩展计算电路对所述消息块的消息字进行消息字扩展,并输出至少一个扩展消息字至所述迭代计算电路;
通过所述迭代计算电路,基于所述至少一个扩展消息字进行哈希计算,获得迭代状态信息,并基于所述迭代状态信息和上一次迭代输出的哈希值,获得本次迭代输出的哈希值。
5.权利要求4所述的协处理器,其特征在于,所述至少一个扩展消息字的数量,与所述指定的哈希算法类型关联。
6.权利要求4所述的协处理器,其特征在于,所述迭代处理模块还包括多个状态寄存器和多个摘要寄存器;
所述迭代处理模块还用于:在每次迭代过程中,基于获得的迭代状态信息更新所述多个状态寄存器,以及基于获得的哈希值更新所述多个摘要寄存器,其中,所述多个摘要寄存器的初始值为:上一个消息块结束哈希迭代处理时对应的哈希值,所述多个状态寄存器的初始值为:上一个消息块结束哈希迭代处理时对应的迭代状态信息。
7.权利要求4所述的协处理器,其特征在于,所述迭代停止条件包括:迭代次数达到预设值,所述预设值与所述指定的哈希算法类型关联。
8.一种计算机设备,其特征在于,包括权利要求1至7任一所述的协处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061412.1A CN116775544B (zh) | 2023-08-23 | 2023-08-23 | 一种协处理器和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061412.1A CN116775544B (zh) | 2023-08-23 | 2023-08-23 | 一种协处理器和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116775544A true CN116775544A (zh) | 2023-09-19 |
CN116775544B CN116775544B (zh) | 2023-11-28 |
Family
ID=87991658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311061412.1A Active CN116775544B (zh) | 2023-08-23 | 2023-08-23 | 一种协处理器和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775544B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117118828A (zh) * | 2023-10-23 | 2023-11-24 | 上海芯联芯智能科技有限公司 | 一种协议转换器、电子设备及一种配置方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008172706A (ja) * | 2007-01-15 | 2008-07-24 | Mitsubishi Electric Corp | 分散型データ処理装置 |
US20090262925A1 (en) * | 2008-04-21 | 2009-10-22 | Natarajan Vijayarangan | Method for designing a secure hash function and a system thereof |
JP2012023617A (ja) * | 2010-07-15 | 2012-02-02 | Furukawa Electric Co Ltd:The | データ中継装置及び暗号化通信方法 |
US20150186139A1 (en) * | 2013-12-27 | 2015-07-02 | Intel Corporation | Sm3 hash function message expansion processors, methods, systems, and instructions |
US20150378734A1 (en) * | 2014-06-30 | 2015-12-31 | Microunity Systems Engineering, Inc. | System and methods for expandably wide operand instructions |
CN105721161A (zh) * | 2016-01-28 | 2016-06-29 | 东南大学 | 一种基于总线的h2-mac消息认证ip核硬件装置 |
CN107666387A (zh) * | 2016-07-27 | 2018-02-06 | 北京计算机技术及应用研究所 | 低功耗并行哈希计算电路 |
WO2020144027A1 (en) * | 2019-01-09 | 2020-07-16 | British Telecommunications Public Limited Company | Variable data protection |
CN111464308A (zh) * | 2020-03-12 | 2020-07-28 | 烽火通信科技股份有限公司 | 一种实现多种哈希算法可重构的方法和系统 |
CN111913749A (zh) * | 2020-08-07 | 2020-11-10 | 山东大学 | 基于流水线的sm3算法fpga实现方法及系统 |
CN112072635A (zh) * | 2019-06-11 | 2020-12-11 | 上海芯联芯智能科技有限公司 | 智能供电及用电的系统和方法、智能用电系统 |
CN115328509A (zh) * | 2022-06-28 | 2022-11-11 | 杭州趣链科技有限公司 | 算法变更方法、装置、计算机设备及存储介质 |
CN115756964A (zh) * | 2022-11-22 | 2023-03-07 | 中国人民解放军战略支援部队信息工程大学 | 一种协处理器固件解析方法及装置 |
CN115967493A (zh) * | 2021-10-12 | 2023-04-14 | 北京航空航天大学 | 基于国密sm3的哈希原像零知识证明电路生成方法及装置 |
-
2023
- 2023-08-23 CN CN202311061412.1A patent/CN116775544B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008172706A (ja) * | 2007-01-15 | 2008-07-24 | Mitsubishi Electric Corp | 分散型データ処理装置 |
US20090262925A1 (en) * | 2008-04-21 | 2009-10-22 | Natarajan Vijayarangan | Method for designing a secure hash function and a system thereof |
JP2012023617A (ja) * | 2010-07-15 | 2012-02-02 | Furukawa Electric Co Ltd:The | データ中継装置及び暗号化通信方法 |
US20150186139A1 (en) * | 2013-12-27 | 2015-07-02 | Intel Corporation | Sm3 hash function message expansion processors, methods, systems, and instructions |
US20150378734A1 (en) * | 2014-06-30 | 2015-12-31 | Microunity Systems Engineering, Inc. | System and methods for expandably wide operand instructions |
CN105721161A (zh) * | 2016-01-28 | 2016-06-29 | 东南大学 | 一种基于总线的h2-mac消息认证ip核硬件装置 |
CN107666387A (zh) * | 2016-07-27 | 2018-02-06 | 北京计算机技术及应用研究所 | 低功耗并行哈希计算电路 |
WO2020144027A1 (en) * | 2019-01-09 | 2020-07-16 | British Telecommunications Public Limited Company | Variable data protection |
CN112072635A (zh) * | 2019-06-11 | 2020-12-11 | 上海芯联芯智能科技有限公司 | 智能供电及用电的系统和方法、智能用电系统 |
CN111464308A (zh) * | 2020-03-12 | 2020-07-28 | 烽火通信科技股份有限公司 | 一种实现多种哈希算法可重构的方法和系统 |
CN111913749A (zh) * | 2020-08-07 | 2020-11-10 | 山东大学 | 基于流水线的sm3算法fpga实现方法及系统 |
CN115967493A (zh) * | 2021-10-12 | 2023-04-14 | 北京航空航天大学 | 基于国密sm3的哈希原像零知识证明电路生成方法及装置 |
CN115328509A (zh) * | 2022-06-28 | 2022-11-11 | 杭州趣链科技有限公司 | 算法变更方法、装置、计算机设备及存储介质 |
CN115756964A (zh) * | 2022-11-22 | 2023-03-07 | 中国人民解放军战略支援部队信息工程大学 | 一种协处理器固件解析方法及装置 |
Non-Patent Citations (1)
Title |
---|
曹记东;和斌涛;: "基于整数帐篷映射和随机盐对MD5算法的改进", 信息与电脑(理论版), no. 04 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117118828A (zh) * | 2023-10-23 | 2023-11-24 | 上海芯联芯智能科技有限公司 | 一种协议转换器、电子设备及一种配置方法 |
CN117118828B (zh) * | 2023-10-23 | 2024-01-23 | 上海芯联芯智能科技有限公司 | 一种协议转换器、电子设备及一种配置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116775544B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101753548B1 (ko) | 단일 데이터 버퍼의 병렬 처리 | |
US20220171885A1 (en) | Co-processor for cryptographic operations | |
CN116775544B (zh) | 一种协处理器和计算机设备 | |
CN108009126B (zh) | 一种计算方法及相关产品 | |
CN107315566B (zh) | 一种用于执行向量循环移位运算的装置和方法 | |
TWI582692B (zh) | 三維摩頓座標轉換處理器,方法,系統,及指令 | |
CN108108190B (zh) | 一种计算方法及相关产品 | |
JP2006338538A (ja) | ストリームプロセッサ | |
CN111176608A (zh) | 一种用于执行向量比较运算的装置和方法 | |
CN114095149B (zh) | 信息加密方法、装置、设备及存储介质 | |
CN114579078A (zh) | 一种加速器、加速方法和电子设备 | |
CN108090028B (zh) | 一种计算方法及相关产品 | |
CN109951275B (zh) | 密钥生成方法、装置、计算机设备及存储介质 | |
CN115129297B (zh) | 多点乘运算系统、方法、图形处理器、电子装置及设备 | |
CN114064122A (zh) | 指令处理方法、装置、设备及存储介质 | |
US6584514B1 (en) | Apparatus and method for address modification in a direct memory access controller | |
US7783691B2 (en) | Sharing of a logic operator having a work register | |
CN109802824B (zh) | 一种移位处理的方法、装置、计算机存储介质及终端 | |
CN114205104A (zh) | 针对功率和电磁侧信道攻击的对认证标签计算的保护 | |
CN112470136A (zh) | 直接存储器存取控制器 | |
JPH0528431B2 (zh) | ||
CN117075820A (zh) | 一种消息缓存器和协处理器 | |
CN118276942A (zh) | 用于执行矢量计算的方法、计算装置、介质和程序产品 | |
CN118057297A (zh) | 椭圆曲线加密算法的点乘计算电路、方法、设备及介质 | |
JP3693873B2 (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 |