CN112818415A - 基于APSoC的国密计算方法、系统及介质 - Google Patents
基于APSoC的国密计算方法、系统及介质 Download PDFInfo
- Publication number
- CN112818415A CN112818415A CN202011637285.1A CN202011637285A CN112818415A CN 112818415 A CN112818415 A CN 112818415A CN 202011637285 A CN202011637285 A CN 202011637285A CN 112818415 A CN112818415 A CN 112818415A
- Authority
- CN
- China
- Prior art keywords
- calculation
- protocol
- data
- apsoc
- calculated
- 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
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于APSoC的国密计算方法,包括:获取ARM核发送的待计算信息;按照预设的数据传输格式对所述待计算信息进行解析,得到待计算数据和操作码;根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果;最后按照所述数据传输格式对所述计算结果进行封装,输出封装后的计算结果;既提高了国密计算速度,又可使用APSoC内部的ARM核充当核心处理器来驱动国密计算,具有集成度高、体积小的优势,适合嵌入式设备使用,有效地解决了现有技术在进行国密计算时计算速度和体积不能兼顾、不利于集成和嵌入式设备使用的问题。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种基于APSoC的国密计算方法、系统及介质。
背景技术
现有技术在进行国密计算时,主要有两种实现方式。第一种是通过在操作系统中使用软件实现。此方案受到硬件资源限制,计算效率低;CPU执行密码计算时会占用CPU资源导致CPU无法执行其他工作。第二种是通过现场可编程逻辑门阵列FPGA中的片上可变成系统SoPC实现。此方案利用FPGA实现国密计算软核,并通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIE)接口对外实现数据交互。尽管相比于第一种实现方式,第二种实现方式具备计算速度快的优势,然而第二种实现方式仅能作为密码卡,若充当处理器的外设执行国密计算时,需要核心处理器进行驱动,密码卡和核心处理器共同构成一个完整的系统,其占用体积大,不利于集成,不适合嵌入式设备的使用。
发明内容
本发明实施例提供了一种基于APSoC的国密计算方法、系统及介质,以解决现有技术在进行国密计算时计算速度和体积不能兼顾、不利于集成和嵌入式设备使用的问题。
一种基于APSoC的国密计算方法,包括:
获取ARM核发送的比特流;
按照预设的数据传输格式对所述比特流进行解析,得到待计算数据和操作码;
根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果;
按照所述数据传输格式对所述计算结果进行封装,向所述ARM核输出封装后的计算结果。
可选地,所述根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果包括:
按照所述操作码及其对应的协议规范将所述待计算数据划分为若干个计算环节;
按照划分顺序执行所述计算环节,将所述计算环节的计算结果保存至存储器中;
在执行完所有的计算环节后,从所述存储器中读取最后保存的计算结果,作为所述待计算数据的计算结果,并将状态机更新为空闲状态。
可选地,所述按照划分顺序执行所述计算环节,将所述计算环节的计算结果保存至存储器中包括:
对于每一个计算环节,在执行开始时将所述状态机更新为计算中;
调度预设的运算单元对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理;
当获取到所述预设的运算单元返回的运算结果时,将所述计算环节对应的计算结果保存至所述存储器中,并将状态机更新为计算完成状态;
继续执行下一个计算环节。
可选地,在所述数据传输格式中,按照接收的先后顺序,第0-1比特位表示预设的开头信息,第2-4比特位表示操作码,第5比特位表示信息类型,第6-7比特位表示保留位,第8-39比特位表示数据长度,第40及其之后的比特位表示待计算数据。
可选地,所述协议规范包括SM2协议规范、SM3协议规范、SM4协议规范中的至少一种。
可选地,所述当所述协议规范为SM2协议规范时,所述预设的运算单元包括群运算单元和模运算单元;
其中,所述群运算单元用于执行基于椭圆曲线的群运算处理,所述模运算单元用于执行取模运算处理。
可选地,所述当所述协议规范为SM3协议规范时,所述预设的运算单元包括消息扩展单元和迭代压缩单元;
其中,所述消息扩展单元用于执行SM3协议中关于消息扩展的计算处理,所述迭代压缩单元用于执行SM3协议中关于迭代压缩的计算处理。
可选地,所述当所述协议规范为SM4协议规范时,所述预设的运算单元包括密钥扩展单元和轮运算单元;
其中,所述密钥扩展单元用于执行SM4协议中关于密钥扩展的计算处理,所述轮运算单元用于执行SM4协议的各轮计算中的特殊处理。
一种基于APSoC的国密计算装置,包括:
接口模块,用于获取ARM核发送的比特流;
解析模块,用于按照预设的数据传输格式对所述比特流进行解析,得到待计算数据和操作码;
协议计算模块,用于根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果;
所述解析模块还用于按照所述数据传输格式对所述计算结果进行封装;
所述接口模块还用于向所述ARM核输出封装后的计算结果。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的基于APSoC的国密计算方法。
本发明采用APSoC进行国密计算,通过获取ARM核发送的待计算信息;按照预设的数据传输格式对所述待计算信息进行解析,得到待计算数据和操作码;根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果;最后按照所述数据传输格式对所述计算结果进行封装,输出封装后的计算结果;既提高了国密计算速度,又可使用APSoC内部的ARM核充当核心处理器来驱动国密计算,具有集成度高、体积小的优势,适合嵌入式设备使用,有效地解决了现有技术在进行国密计算时计算速度和体积不能兼顾、不利于集成和嵌入式设备使用的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的APSoC示意图;
图2是本发明一实施例提供的基于APSoC的国密计算系统的示意图;
图3是本发明一实施例提供的基于APSoC的国密计算方法的流程图;
图4是本发明一实施例提供的基于APSoC的国密计算方法中步骤S103的流程图;
图5是本发明一实施例提供的基于APSoC的国密计算方法中步骤S302的一流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术在进行国密计算时计算速度和体积不能兼顾、不利于集成和嵌入式设备使用的问题,本发明实施例采用APSoC进行国密计算,通过获取ARM核发送的待计算信息;按照预设的数据传输格式对所述待计算信息进行解析,得到待计算数据和操作码;根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果;最后按照所述数据传输格式对所述计算结果进行封装,输出封装后的计算结果;既提高了国密计算速度,又可使用APSoC内部的ARM核充当核心处理器来驱动国密计算,具有集成度高、体积小的优势,适合嵌入式设备使用。以下将对本实施例提供的基于APSoC的国密计算方法进行详细的描述。
本发明实施例采用APSoC进行国密计算。图1为本发明实施例提供的系统级的全可编程片上系统(All Programmable System-on-Chip,简称APSoC)的示意图。如图1所示,所述APSoC包括ARM核1和国密计算系统2。所述ARM核1用于驱动所述国密计算系统2。所述国密计算系统2用于进行国密计算。
图2为本发明实施例提供的基于APSoC的国密计算系统示意图。所述基于APSoC的国密计算系统包括接口模块10、解析模块20、协议计算模块30以及存储器40。
其中,所述接口模块10优选为总线(Advanced eXtensible Interface,AXI)接口,AXI接口指的是一种由ARM公司提出的总线协议,是一种面向高性能、高带宽、低延迟的片内总线。所述ARM核1与国密计算系统2之间通过AXI接口交互,传输数据。具体地,在ARM核1驱动国密计算时,所述AXI接口用于获取ARM核1发送的比特流;在所述国密计算系统2的计算结束时,所述AXI接口用于向所述ARM核1输出封装后的计算结果。
所述解析模块20的第一端与所述AXI接口连接,第二端与所述协议计算模块30连接。所述解析模块20用于接收所述AXI接口发送过来的比特流,按照预设的数据传输格式对所述比特流进行解析,得到待计算数据和操作码。所述比特流为原始数据编码,通过解析,可将所述原始数据编码解码成可被所述协议计算模块30使用的解析数据,即待计算数据核操作码。其中,在所述数据传输格式中,按照接收的先后顺序,第0-1比特位表示预设的开头信息,第2-4比特位表示操作码,第5比特位表示信息类型,第6-7比特位表示保留位,第8-39比特位表示数据长度,第40及其之后的比特位表示待计算数据。可选地,表1为本发明提供的数据传输格式的一个示例。在表1中,预设的开头信息固定为11。操作码用于指定示国密计算的类型,在本示例中,国密计算的类型包括但不限于SM3哈希计算、SM2加密计算、SM2解密计算、SM2签名计算、SM2验签计算、SM4加密计算、SM4解密计算,分别对应的操作码为100、010、110、001、101、011、111,还包括一个保留位000。信息类型用于指定数据传输方向,在本示例中,所述数据传输方向包括ARM发送和ARM接收,分别对应的信息类型为0、1。保留位用00表示。数据长度用于指定数据长度,遵循低地址存放最低有效字节(Least SignificantBit,简称LSB)规则。第40及其之后的比特位用于存放本次国密计算对应的待计算数据。
表1
所述协议计算模块30用于根据所述解析模块20得到的操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果。可选地,作为本发明的一个优选示例,所述协议规范包括SM2协议规范、SM3协议规范、SM4协议规范中的至少一种。相应地,所述协议计算模块30包括SM2协议计算模块31、SM3协议计算模块32、SM4协议计算模块33中的至少一种。所述解析模块20在得到操作码之后,根据所述操作码触发相应的SM2协议计算模块31或者SM3协议计算模块32或者SM4协议计算模块33,由所述SM2协议计算模块31或者SM3协议计算模块32或者SM4协议计算模块33根据具体的协议规范对所述待计算数据执行计算处理。
可选地,所述SM2协议计算模块31,还包括SM2协议控制单元311、第一调度单元312、至少一个群运算单元313和至少一个模运算单元314。所述SM2协议控制单元311用于按照所述操作码及其对应的协议规范将所述待计算数据划分为若干个计算环节,执行所述计算环节;每一计算环节得到的中间结果临时存放在所述存储器40中。具体地,在一个计算环节中,所述SM2协议控制单元311将所述操作码及所述计算环节对应的待计算数据发送至所述第一调度单元312,同时将所述状态机更新为计算中;所述第一调度单元312用于调度预设的运算单元对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理,当获取到所述预设的运算单元返回的运算结果时,将所述计算结果返回至所述SM2协议控制单元311。其中,所述群运算单元313用于执行基于椭圆曲线的群运算处理,所述模运算单元314用于执行取模运算处理。所述SM2协议控制单元311进一步将所述计算环节对应的计算结果保存至存储器40中,并将状态机更新为计算完成状态,所述群运算单元313和模运算单元314即刻被转化为空闲状态。所述SM2协议控制单元311继续指导执行下一个计算环节。在执行完所有的计算环节后,所述SM2协议控制单元311从所述存储器40中读取最后保存的计算结果,作为所述待计算数据的计算结果发送至所述解析模块20,并将所述状态机更新为空闲状态。所述解析模块20还用于按照所述数据传输格式对所述计算结果进行封装;所述AXI接口还用于向所述ARM核1输出封装后的计算结果。至此完成对所述待计算数据的国密计算过程,释放所述协议计算模块30。
同理,所述SM3协议计算模块32,还包括SM3协议控制单元321、第二调度单元322、至少一个消息扩展单元323和至少一个迭代压缩单元324。所述SM3协议控制单元321用于按照所述操作码及其对应的协议规范将所述待计算数据划分为若干个计算环节,执行所述计算环节;每一计算环节得到的中间结果临时存放在所述存储器40中。具体地,在一个计算环节中,所述SM3协议控制单元321将所述操作码及所述计算环节对应的待计算数据发送至所述第二调度单元322,同时将所述状态机更新为计算中;所述第二调度单元322用于调度预设的运算单元对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理,当获取到所述预设运算单元返回的运算结果时,将所述计算结果返回至所述SM3协议控制单元321。其中,所述消息扩展单元323用于执行SM3协议中关于消息扩展的计算处理,所述迭代压缩单元323用于执行SM3协议中关于迭代压缩的计算处理。所述SM3协议控制单元321进一步将所述计算环节对应的计算结果保存至存储器40中,并将状态机更新为计算完成状态,所述消息扩展单元323和所述迭代压缩单元323即刻被转化为空闲状态。所述SM3协议控制单元321继续指导执行下一个计算环节。在执行完所有的计算环节后,所述SM3协议控制单元321从所述存储器40中读取最后保存的计算结果,作为所述待计算数据的计算结果发送至所述解析器20,并将所述状态机更新为空闲状态。所述解析单元20还用于按照所述数据传输格式对所述计算结果进行封装;所述AXI接口还用于向所述ARM核1输出封装后的计算结果。至此完成对所述待计算数据的国密计算过程,释放所述协议计算模块30。
同理,所述SM4协议计算模块33,还包括SM4协议控制单元331、第三调度单元332、至少一个密钥扩展单元333和至少一个轮运算单元334。所述SM4协议控制单元331用于按照所述操作码及其对应的协议规范将所述待计算数据划分为若干个计算环节,执行所述计算环节;每一计算环节得到的中间结果临时存放在所述存储器40中。具体地,在一个计算环节中,所述SM4协议控制单元331将所述操作码及所述计算环节对应的待计算数据发送至所述第三调度单元332,同时将所述状态机更新为计算中;所述第三调度单元332用于调度预设的运算单元对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理,当获取到所述预设运算单元返回的运算结果时,将所述计算结果返回至所述SM4协议控制单元331。其中,所述密钥扩展单元333用于执行SM4协议中关于密钥扩展的计算处理,所述轮运算单元334用于执行SM4协议的各轮计算中的特殊处理。所述SM4协议控制单元331进一步将所述计算环节对应的计算结果保存至存储器40中,并将状态机更新为计算完成状态,所述密钥扩展单元333和所述轮运算单元334即刻被转化为空闲状态。所述SM4协议控制单元331继续指导执行下一个计算环节。在执行完所有的计算环节后,所述SM4协议控制单元331从所述存储器40中读取最后保存的计算结果,作为所述待计算数据的计算结果发送至所述解析模块20,并将所述状态机更新为空闲状态。所述解析模块20还用于按照所述数据传输格式对所述计算结果进行封装;所述AXI接口还用于向所述ARM核1输出封装后的计算结果。至此完成对所述待计算数据的国密计算过程,释放所述协议计算模块30。
本发明实施例通过采用APSoC实现国密计算,既提高了国密计算速度,又可使用APSoC内部的ARM核充当核心处理器来驱动国密计算,具有集成度高、体积小的优势、功耗低、移植性好的特点,适合嵌入式设备使用,尤其是物联网场景下与嵌入式设备的高度融合使用,有效地解决了现有技术在进行国密计算时计算速度和体积不能兼顾、不利于集成和嵌入式设备使用的问题。进一步地,本发明实施例通过将计算资源进行划分,形成一个各最小单元的功能运算单元,比如群运算单元和模运算单元、消息扩展单元和迭代压缩单元、密钥扩展单元和至轮运算单元,便于通过流水线方式调度计算资源,对这些功能运算单元进行复用,使计算资源可在单位时间内被最大化利用。
图3为本发明实施例提供的基于APSoC的国密计算方法的实现流程。所述基于APSoC的国密计算方法应用于如图2所示的APSoC中的国密计算系统。如图3所示,所述方法包括:
在步骤S101中,获取ARM核发送的比特流。
在这里,ARM核1中的应用程序通过所述AXI接口向所述国密计算系统发送待计算的比特流。所述国密计算系统2通过所述AXI接口获取所述待计算的比特流。
在步骤S102中,按照预设的数据传输格式对所述比特流进行解析,得到待计算数据和操作码。
所述国密计算系统2通过所述解析模块20对所述待计算的比特流进行解析,得到其中的待计算数据核操作码,并根据所述操作码触发对应的协议计算模块30。所述预设的数据传输格式具体请参见上述表1,此处不再赘述。
为了便于理解,以下给出解析的过程示例。假设ARM核1向国密计算系统2通过AXI接口发送以下十六进制的待计算信息:
0f18e9c4341e8f8eaa16289276814cefc3d5739aea1803c226771ff7e5eee7ae1edbdc8c1b3e488224f56f538e88957febc429fb6b47a53fe8bd3c0de5023d6833a22e6fd4282c1232f3a2a856906bcdf71f526b56a04da2b8b03a35be567f2c3927961b4ba8039f321d32edfcedb7a6aef6792537cc6fd88d2e23eb266f1df55d7aa95d28b60c8948819beb70822bfc4d44dc271f31737bbb21e9814e57ae300000050017
这里以后往前表示接收先后顺序,那么最开始接收到的2个十六进制位“17”转换为二进制位为“00010111”,其中第0-1比特位上的“11”表示开头信息,第2-4比特位上的“101”表示操作码,对应表1是SM2验签计算,第5比特位上的“0”表示ARM发送,第6-7比特位上的“00”表示保留位。然后再接收到的8个十六进制位“00000500”为数据长度,表示1280比特位,之后再往后解析1280比特位作为待计算数据。
在步骤S103中,根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果。
所述国密计算系统2通过所述协议计算模块30根据具体的协议规范对所述待计算数据执行计算处理。在这里,所述协议计算模块30内包括多种运算单元资源,所述协议计算模块30通过调度所述运算单元来完成国密计算。可选地,如图4所示,所述步骤S103还包括:
在步骤S301中,按照所述操作码及其对应的协议规范将所述待计算数据划分为若干个计算环节。
在这里,本发明实施例根据协议规范划分计算环节。示例性地,假设前文示例是对“1+2+3”与“6”进行SM2验签计算,通过步骤S301则会划分出三个计算环节,分别为:第一计算环节,执行“1+2”;第二计算环节,执行“上一计算环节的计算结果+3”;第三计算环节,判断“上一计算环节的计算结果与6是否相等”。应当理解,以上仅为本发明提供的一个划分计算环节的示例,并不构成对本发明的限制,实际应用中的SM2验签计算步骤并不局限于此。
在步骤S302中,按照划分顺序执行所述计算环节,将所述计算环节的计算结果保存至存储器中。
在这里,本发明实施例按照计算环节的划分先后顺序,执行每一计算环节,并将每次计算环节的计算结果作为中间结果保存至存储40中。在本发明实施例中每一计算环节的计算结果均会对下一计算环节产生影响,作为下一计算环节的计算参数之一。可选地,如图5所示,所述步骤S302还包括:
在步骤S501中,对于每一个计算环节,在执行开始时将所述状态机更新为计算中。
具体地,本发明实施例通过将所述操作码及所述计算环节对应的待计算数据发送至调度单元来触发计算环节,并控制状态机进行更新,更新状态信息为计算中,以表示协议计算模块30正在运行。
在步骤S502中,调度预设的运算单元对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理。
可选地,所述协议计算模块30包括但不限于SM2协议计算模块31、SM3协议计算模块32、SM4协议计算模块33中的任意组合。其中,当所述协议计算模块30为SM2协议计算模块31时,所述SM2协议计算模块31内部包括第一调度单元312、至少一个群运算单元313和模运算单元314,所述群运算单元313用于执行基于椭圆曲线的群运算处理,所述模运算单元314用于执行取模运算处理。所述第一调度单元312每次调度时,调度空闲的群运算单元313或模运算单元314,通过所调度的群运算单元313或模运算单元314对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理。
当所述协议计算模块30为SM3协议计算模块32时,所述SM3协议计算模块32内部包括第二调度单元322、至少一个消息扩展单元323和迭代压缩单元324。所述消息扩展单元323用于执行SM3协议中关于消息扩展的计算处理,所述迭代压缩单元324用于执行SM3协议中关于迭代压缩的计算处理。所述第二调度单元322每次调度时,调度空闲的消息扩展单元323或迭代压缩单元324,通过所调度的消息扩展单元323或迭代压缩单元324对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理。
当所述协议计算模块30为SM4协议计算模块33时,所述SM4协议计算模块33内部包括第三调度单元332、至少一个密钥扩展单元333和轮运算单元334。所述密钥扩展单元333用于执行SM4协议中关于密钥扩展的计算处理,所述轮运算单元334用于执行SM4协议的各轮计算中的特殊处理。所述第上调度单元332每次调度时,调度空闲的密钥扩展单元333或轮运算单元334,通过所调度的密钥扩展单元333或轮运算单元334对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理。
在步骤S503中,当获取到所述预设的运算单元返回的运算结果时,将所述计算环节对应的计算结果保存至所述存储器中,并将状态机更新为计算完成状态。
在这里,每个计算环节得到的计算结果作为中间结果,缓存至所述存储器40中,同时将状态机更新为计算完成状态,以表示协议计算模块30在等待运行。继续返回至步骤S501执行下一个计算环节。直至完成对所述计算环节的计算处理。此时,所述步骤S103还包括:
在步骤S303中,在执行完所有的计算环节后,从所述存储器中读取最后保存的计算结果,作为所述待计算数据的计算结果,并将状态机更新为空闲状态。
在这里,本发明实施例从存储器40中读取最后保存的计算结果作为待计算数据的计算结果进行输出,同时将状态机更新为空闲状态,以表示协议计算模块30空闲、可被调用。
承接前文示例,通过上述步骤S501至步骤S503,可以得到,第一计算环节执行完后存储器40中保存的计算结果为3;第二计算环节执行完后存储器40保存的计算结果为6;第三计算环节执行完后存储器40保存的计算结果为1,这里用1表示“是”,0表示“否”。在通过步骤S303读取最后保存的计算结果1,作为所述待计算数据的计算结果。应当理解,以上仅为本发明提供的一个执行计算环节的示例,并不构成对本发明的限制,实际应用中的SM2验签计算步骤并不局限于此。
在步骤S104中,按照所述数据传输格式对所述计算结果进行封装,向所述ARM核输出封装后的计算结果。
最后所述国密计算系统2通过所述解析模块20按照所述数据传输格式对所述计算结果进行封装,然后通过所述AXI接口将封装后的计算结果发送至所述ARM核1。
示例性地,承接前文示例,若待计算数据的SM2验签结果为1时,按照预设的数据传输格式对所述计算结果进行封装,可以得到封装后的计算结果为:00010000000000000000000000000000000100110111,从后往前,其中第0-1比特位上的“11”表示开头信息,第2-4比特位上的“101”表示操作码,对应表1是SM2验签计算,第5比特位上的“1”表示ARM接收,第6-7比特位上的“00”表示保留位。之后的第8-39比特位“00000000000000000000000000000001”为数据长度,为1比特位,往后第40比特位存储计算结果“1”。从而完成对所述计算结果的封装。通常还可以将所述二进制的封装后的计算结果转换位十六进制“10000000137”,以便于查看。
本发明实施例通过采用APSoC实现国密计算,既提高了国密计算速度,又可使用APSoC内部的ARM核充当核心处理器来驱动国密计算,具有集成度高、体积小的优势、功耗低、移植性好的特点,适合嵌入式设备使用,尤其是物联网场景下与嵌入式设备的高度融合使用,有效地解决了现有技术在进行国密计算时计算速度和体积不能兼顾、不利于集成和嵌入式设备使用的问题。进一步地,本发明实施例通过将计算资源进行划分,形成一个各最小单元的功能运算单元,比如群运算单元和模运算单元、消息扩展单元和迭代压缩单元、密钥扩展单元和轮运算单元,便于通过流水线方式调度计算资源,对这些功能运算单元进行复用,使计算资源可在单位时间内被最大化利用。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于APSoC的国密计算方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于APSoC的国密计算方法,其特征在于,包括:
获取ARM核发送的比特流;
按照预设的数据传输格式对所述比特流进行解析,得到待计算数据和操作码;
根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果;
按照所述数据传输格式对所述计算结果进行封装,向所述ARM核输出封装后的计算结果。
2.如权利要求1所述的基于APSoC的国密计算方法,其特征在于,所述根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果包括:
按照所述操作码及其对应的协议规范将所述待计算数据划分为若干个计算环节;
按照划分顺序执行所述计算环节,将所述计算环节的计算结果保存至存储器中;
在执行完所有的计算环节后,从所述存储器中读取最后保存的计算结果,作为所述待计算数据的计算结果,并将状态机更新为空闲状态。
3.如权利要求2所述的基于APSoC的国密计算方法,其特征在于,所述按照划分顺序执行所述计算环节,将所述计算环节的计算结果保存至存储器中包括:
对于每一个计算环节,在执行开始时将所述状态机更新为计算中;
调度预设的运算单元对所述计算环节对应的待计算数据和上一计算环节的计算结果执行计算处理;
当获取到所述预设的运算单元返回的运算结果时,将所述计算环节对应的计算结果保存至所述存储器中,并将状态机更新为计算完成状态;
继续执行下一个计算环节。
4.如权利要求1至3任一项所述的基于APSoC的国密计算方法,其特征在于,在所述数据传输格式中,按照接收的先后顺序,第0-1比特位表示预设的开头信息,第2-4比特位表示操作码,第5比特位表示信息类型,第6-7比特位表示保留位,第8-39比特位表示数据长度,第40及其之后的比特位表示待计算数据。
5.如权利要求4所述的基于APSoC的国密计算方法,其特征在于,所述协议规范包括SM2协议规范、SM3协议规范、SM4协议规范中的至少一种。
6.如权利要求5所述的基于APSoC的国密计算方法,其特征在于,所述当所述协议规范为SM2协议规范时,所述预设的运算单元包括群运算单元和模运算单元;
其中,所述群运算单元用于执行基于椭圆曲线的群运算处理,所述模运算单元用于执行取模运算处理。
7.如权利要求5所述的基于APSoC的国密计算方法,其特征在于,所述当所述协议规范为SM3协议规范时,所述预设的运算单元包括消息扩展单元和迭代压缩单元;
其中,所述消息扩展单元用于执行SM3协议中关于消息扩展的计算处理,所述迭代压缩单元用于执行SM3协议中关于迭代压缩的计算处理。
8.如权利要求5所述的基于APSoC的国密计算方法,其特征在于,所述当所述协议规范为SM4协议规范时,所述预设的运算单元包括密钥扩展单元和轮运算单元;
其中,所述密钥扩展单元用于执行SM4协议中关于密钥扩展的计算处理,所述轮运算单元用于执行SM4协议的各轮计算中的特殊处理。
9.一种基于基于APSoC的国密计算系统,其特征在于,所述系统包括:
接口模块,用于获取ARM核发送的比特流;
解析模块,用于按照预设的数据传输格式对所述比特流进行解析,得到待计算数据和操作码;
协议计算模块,用于根据所述操作码及其对应的协议规范对所述待计算数据执行计算处理,得到计算结果;
所述解析模块还用于按照所述数据传输格式对所述计算结果进行封装;
所述接口模块还用于向所述ARM核输出封装后的计算结果。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的基于APSoC的国密计算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011637285.1A CN112818415A (zh) | 2020-12-31 | 2020-12-31 | 基于APSoC的国密计算方法、系统及介质 |
PCT/CN2021/141692 WO2022143536A1 (zh) | 2020-12-31 | 2021-12-27 | 基于APSoC的国密计算方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011637285.1A CN112818415A (zh) | 2020-12-31 | 2020-12-31 | 基于APSoC的国密计算方法、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112818415A true CN112818415A (zh) | 2021-05-18 |
Family
ID=75857196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011637285.1A Pending CN112818415A (zh) | 2020-12-31 | 2020-12-31 | 基于APSoC的国密计算方法、系统及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112818415A (zh) |
WO (1) | WO2022143536A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114629622A (zh) * | 2022-02-22 | 2022-06-14 | 广东省绿算技术有限公司 | 基于fpga的国密算法加速运算控制方法及装置 |
WO2022143536A1 (zh) * | 2020-12-31 | 2022-07-07 | 杭州趣链科技有限公司 | 基于APSoC的国密计算方法、系统、设备及介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115209358B (zh) * | 2022-07-15 | 2024-04-09 | 深圳市道通智能航空技术股份有限公司 | 自动相关监视广播信息的发送方法、装置和存储介质 |
CN115242530B (zh) * | 2022-07-27 | 2023-10-13 | 常州星宇车灯股份有限公司 | 基于国密算法的车载安全通信系统、方法及汽车 |
CN116506106B (zh) * | 2023-03-13 | 2023-11-03 | 苏州宏存芯捷科技有限公司 | 一种基于fpga的可配置密钥sm4加解密系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737270A (zh) * | 2011-04-15 | 2012-10-17 | 航天信息股份有限公司 | 一种基于国产算法的银行智能卡芯片安全协处理器 |
CN105099711A (zh) * | 2015-08-28 | 2015-11-25 | 北京三未信安科技发展有限公司 | 一种基于zynq的小型密码机及数据加密方法 |
CN106228088A (zh) * | 2016-08-11 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种基于国产bmc芯片的sm4算法ip核的设计方法 |
US20160380772A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
CN109818745A (zh) * | 2017-11-21 | 2019-05-28 | 佛山芯珠微电子有限公司 | 物联网信息安全芯片 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112818415A (zh) * | 2020-12-31 | 2021-05-18 | 杭州趣链科技有限公司 | 基于APSoC的国密计算方法、系统及介质 |
-
2020
- 2020-12-31 CN CN202011637285.1A patent/CN112818415A/zh active Pending
-
2021
- 2021-12-27 WO PCT/CN2021/141692 patent/WO2022143536A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737270A (zh) * | 2011-04-15 | 2012-10-17 | 航天信息股份有限公司 | 一种基于国产算法的银行智能卡芯片安全协处理器 |
US20160380772A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
CN105099711A (zh) * | 2015-08-28 | 2015-11-25 | 北京三未信安科技发展有限公司 | 一种基于zynq的小型密码机及数据加密方法 |
CN106228088A (zh) * | 2016-08-11 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种基于国产bmc芯片的sm4算法ip核的设计方法 |
CN109818745A (zh) * | 2017-11-21 | 2019-05-28 | 佛山芯珠微电子有限公司 | 物联网信息安全芯片 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022143536A1 (zh) * | 2020-12-31 | 2022-07-07 | 杭州趣链科技有限公司 | 基于APSoC的国密计算方法、系统、设备及介质 |
CN114629622A (zh) * | 2022-02-22 | 2022-06-14 | 广东省绿算技术有限公司 | 基于fpga的国密算法加速运算控制方法及装置 |
CN114629622B (zh) * | 2022-02-22 | 2023-03-24 | 广东省绿算技术有限公司 | 基于fpga的国密算法加速运算控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022143536A1 (zh) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112818415A (zh) | 基于APSoC的国密计算方法、系统及介质 | |
US11269529B2 (en) | Neural network data processing apparatus, method and electronic device | |
CN111327603B (zh) | 数据传输方法、装置和系统 | |
US20190319803A1 (en) | Odd index precomputation for authentication path computation | |
US11205017B2 (en) | Post quantum public key signature operation for reconfigurable circuit devices | |
CN107027036A (zh) | 一种fpga异构加速平台的解压缩方法、装置及系统 | |
US20120030421A1 (en) | Maintaining states for the request queue of a hardware accelerator | |
WO2002101978A2 (en) | Apparatus and method for a hash processing system using multiple hash storage areas | |
US8943240B1 (en) | Direct memory access and relative addressing | |
CN112152787A (zh) | 用于后量子密码学安全的基于哈希的签名和验证的消息索引感知多哈希加速器 | |
US20140211942A1 (en) | Cryptographic key derivation device and method therefor | |
CN112152784A (zh) | 用于基于散列的签名算法的并行处理技术 | |
CN109743757A (zh) | 数据处理方法、装置、无线模组和物联网设备 | |
CN104486442A (zh) | 分布式存储系统的数据传输方法、装置 | |
CN116225671A (zh) | 一种基于dpdk的数据处理方法及装置 | |
CN112035866B (zh) | 一种数据加密方法、装置、设备和计算机可读存储介质 | |
CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
CN210109808U (zh) | 一种处理器芯片 | |
CN115442026B (zh) | 一种hmac算法处理系统、方法、设备及介质 | |
US20230350720A1 (en) | Chaining Services in an Accelerator Device | |
CN111566987A (zh) | 数据处理方法、电路、终端设备及存储介质 | |
CN115878351B (zh) | 消息的传输方法及装置、存储介质及电子装置 | |
US20220414014A1 (en) | Technology for early abort of compression acceleration | |
Durand et al. | A Programmable Inbound Transfer Processor for Active Messages in Embedded Multicore Systems | |
CN109792332B (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 |