专用处理器及其模型验证方法、装置、处理方法和介质与流程

文档序号:30796949发布日期:2022-07-19 20:28阅读:122来源:国知局
专用处理器及其模型验证方法、装置、处理方法和介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种专用处理器及其模型验证方法、装置、处理方法和介质。


背景技术:

2.随着人类社会的快速发展,人们对信息安全的要求越来越高,尤其在现在这个信息爆炸的互联网时代,电子互联网产品在市场中的快速发展,使得人们对信息安全的需求更为迫切。
3.经典的密码系统主要由密钥和密码算法两部分组成,其中密码算法是用于加密和解密的数学函数。但是随着处理能力大幅度提升的量子计算机的出现,导致原有密码系统的密码密钥的所有可能排列可在相对较短的时间内通过量子计算机测试完成,这大大增加了原有密码系统的风险,针对此风险,密码系统需要能够抵抗量子计算机对现有密码算法攻击的新一代密码算法,因而形成了后量子密码算法的概念,也称抗量子密码算法。随着近十几年量子计算机技术的飞速发展,后量子密码算法的重要性更加凸显出来。
4.性能和实现安全等方面的原因使得后量子密码算法需要采用硬件方法实现。专用集成电路(asic,application specific integrated circuit)是硬件实现密码算法的传统方法。asic方法效率高,却无法满足应用环境中灵活实现密码算法的需求,使得后量子密码算法处理器的开发和验证有较大难度。


技术实现要素:

5.本技术主要解决的技术问题是提供一种专用处理器的模型验证方法、专用处理器的模型验证装置、专用处理器的处理方法和计算机可读存储介质,可以解决后量子密码算法处理器开发验证难度大的问题。
6.为解决上述技术问题,本技术采用的一个技术方案是:提供一种专用处理器的模型验证方法,包括:建立包括多种后量子密码算法基本运算模块的指令集;基于指令集构建专用处理器的处理器模型并对处理器模型进行仿真验证;将仿真验证通过的处理器模型进行包括至少逻辑综合以及布局布线的编译处理以生成相应的配置文件并烧写到fpga平台;获取机器指令码文件并将文件加载到fpga平台中运行,来验证专用处理器模型是否可执行与该机器指令码文件对应的后量子密码算法代码相对应的处理,该后量子密码算法代码是基于前述指令集实现,且调用了至少一种上述后量子密码算法基本运算模块。
7.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种专用处理器的模型验证装置,包括:收发器、处理器和存储器,其中收发器和存储器分别与处理器耦接,而处理器通过收发器与外部设备通信,其中存储器存储有计算机程序数据并由计算机执行该计算机程序数据,来实现上述的专用处理器的模型验证方法。
8.为解决上述技术问题,本技术采用的又一个技术方案是:提供一种专用处理器的处理方法,包括:获取机器指令码文件;在后量子密码算法指令集中调用与机器指令码文件
相对应的后量子密码算法代码,进而执行与后量子密码代码相对应的处理,该后量子密码算法代码是基于至少一种后量子密码算法基本运算模块形成的。
9.为解决上述技术问题,本技术采用的又一个技术方案是:提供一种专用处理器,包括存储电路、通信电路以及处理电路,存储电路用于存储根据后量子密码算法代码编译的机器指令码文件,通信电路用于获取机器指令码文件,处理电路用于执行与机器指令码对应的后量子密码算法代码相应的处理。
10.为解决上述技术问题,本技术采用的又一个技术方案是:一种计算机可读存储介质,其存储有程序数据,能够被处理器执行以实现上述任一项所述的方法。
11.本技术的有益效果是:本技术通过建立包括多种后量子密码算法基本运算模块的指令集,并对基于指令集构建所述专用处理器的处理器模型进行仿真验证;处理器模型仿真验证成功后,将处理器模型对应的配置文件烧写到fpga平台,以及将基于指令集编写的后量子密码算法代码编译成指令码文件并加载到fpga平台进行运行和验证本技术中的指令集包含多种后量子密码算法模块基本运算操作指令,验证处理器模型和配置文件时,能够提高专用处理器的验证和开发效率、减少相应的硬件资源消耗,从而提高处理器设计开发的灵活性、降低处理器的开发难度。
附图说明
12.图1是本技术专用处理器的模型验证方法第一实施例的流程示意图;
13.图2是本技术专用处理器的处理器模型构建和仿真验证一实施方式的流程示意图;
14.图3是本技术专用处理器的模型验证装置一实施例的结构示意图;
15.图4是本技术专用处理器的处理方法一实施例的流程示意图;
16.图5是本技术专用处理器一实施例的结构示意图;
17.图6是本技术计算机可读存储介质一实施例的结构示意图。
具体实施方式
18.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
19.后量子密码算法是专用于抵抗量子计算机攻击的一种新一代密码算法,适用于移动终端、互联网络等各设备的处理器。因后量子密码算法安全系数更高,在网络科技和量子计算机技术飞速发展的互联网时代,人们对后量子密码算法应用的迫切性也越来越高。
20.本技术专用处理器的模型验证方法实施例能够应用于后量子密码处理器设计、芯片设计以及fpga设计等。通过本技术的验证方法所设计的后量子密码处理器、芯片以及fpga等,可调用多种后量子密码算法,灵活性更高,开发和验证难度更低,而且能减少相关硬件资源的消耗。
21.请参阅图1,图1是本技术提供的专用处理器的模型验证方法第一实施例的流程示意图,具体包括以下步骤:
22.s11:建立包括多种后量子密码算法基本运算模块的指令集。
23.其中,指令集可以包含基本指令集和后量子密码算法扩展指令集。基本指令集和后量子密码算法扩展指令集的指令基本指令长度、格式都相同,但指令周期不一致。基本指令集可以是已有的一种处理器指令集,后量子密码算法扩展指令集可以是后量子密码算法中的一个或多个功能模块。建立包括多种后量子密码算法基本运算模块的指令集,具体而言可以是接收后量子密码算法扩展指令集,并将后量子密码算法扩展指令集和基本指令集组合,形成上述的包括多种后量子密码算法基本运算模块的指令集。
24.基本指令集可以是risc-v指令集、arm指令集等多种常见指令集和自定义处理器指令集中的任何一种。后量子密码算法扩展指令集可以包括ks_mul(karatsuba乘法)、tc_mul(toom-cook乘法)、ntt(ntt算法)、arr_dot_mul(矢量乘法)、arr_dot_add(矢量加法)、arr_ldr(矢量读取)、arr_str(矢量存储)、q_div32(32位快速除法)、sha3(secure hash algorithm 3算法)、rand(随机数生成算法)等后量子密码算法指令模块中的至少两种。
25.其中,各算法详细功能如下:karatsuba乘法是一种快速乘法。此算法在1960年由anatolii alexeevitch karatsuba提出,并于1962年得以发表。此算法主要用于两个大数相乘,当使用大数表示多项式时也可用于多项式乘法。当多项式次数较低时该算法有较好的性能;
26.toom-cook算法是一类应用广泛的多精度整数的快速乘法算法,目前主要的研究方法是插值理论。当多项式次数较高时该算法有比karatsuba更好的性能;ntt(number theoretic transforms)算法是一种快速数论变换算法,这种算法对多项式进行有限域上的快速傅里叶变换,得到多项式的傅里叶域表示,将直接的多项式乘法转换为傅里叶域的矢量乘法,与直接计算相比,大大减少了运算次数。通常来说ntt的运算效率高于karatsuba和toom-cook,但ntt算法对多项式次数n和有限域模数q的选择有要求(ntt要求,对ntt的负包卷积优化要求),在某些后量子密码中无法高效率使用;arr_dot_mul(矢量乘法)即向量逐项乘法,两个向量分量分别相乘得到第三个向量的分量,类似于向量点乘,但不求和,得到的是相同长度的向量;arr_dot_add(矢量加法)指向量逐项相加,即两个向量分量分别相加得到第三个向量的分量,得到的是相同长度的向量;arr_ldr(矢量读取)、arr_str矢量存储即从指定内存中读取向量和存储向量到内存中;sha3(keccak算法):是一种被选定为sha-3标准的单向散列函数算法。目前提出的后量子密码算法中广泛使用sha-3算法,sha-3中定义的各种算法均可通过调用keccak算法的方式来实现。
27.可选地,指令集所包含的后量子密码算法基本运算模块可根据不同处理器的应用场景和设计方案而进行自由搭配、扩展或缩小。选入指令集的至少一种后量子密码算法基本运算模块即可由后续设计的处理器运行时进行自由调用,进而实现不限于一种后量子密码算法基本运算模块指令的调用,由此可突破专用处理器运行时调用后量子密码算法指令的局限性。
28.s12:根据指令集构建专用处理器的处理器模型,并对处理器模型进行仿真验证。
29.在专用处理器设计的初期对处理器模型进行验证,能够更早地发现和消除硬件和软件整合过程中的设计缺陷。
30.本实施例中,处理器模型可以包括系统级处理器模型和rtl级处理器模型。系统级处理器模型是在一个新的抽象层次上描述硬件,能够实现快速的系统建模和仿真分析,从
而能够提高专用处理器软硬件设计的效率。rtl级处理器模型描述细节精确的硬件,对rtl级处理器模型进行仿真可以检查代码中的语法错误以及代码行为的正确性。系统级处理器模型的仿真验证可以在rtl级仿真验证之前,如此能够提高仿真验证效率,降低建模成本。
31.具体地,请参阅图2,图2是本技术提供的专用处理器的处理器模型构建和仿真验证一实施方式的流程示意图。具体处理器模型的构建及仿真验证可以通过的如下步骤实现:
32.s121:根据指令集构建专用处理器的系统级处理器模型,并对系统级处理器仿真模型进行系统级仿真验证;
33.专用处理器的系统级处理器仿真模型可以是基于电子系统级(esl,electronic system level)设计方法构建而成的。具体而言,使用处理器生成工具基于指令集构建系统级处理器模型,处理器生成工具可以是以lisa语言为核心描述的coware processor designer仿真软件或codasip studio工具等。系统级处理器模型的构建工具不限于本实施例中所提及的coware processor designer仿真软件、codasip studio工具,也可为其他的仿真软件及编程语言(如system c语言)等。
34.在构建好系统级处理器模型后,对系统级处理器仿真模型进行系统级仿真验证,即高层指令仿真验证。
35.系统级处理器模型的仿真验证结果为错误,则发出仿真验证结果错误的提示,以提示对系统级处理器模型进行改善。对改善后的系统级处理器模型再次执行系统级仿真验证,直至系统级处理器仿真模型的仿真验证通过。若系统级处理器仿真模型验证成功通过,执行s122。
36.s122:将验证成功的系统级处理器模型转换成rtl级处理器模型,并对rtl级处理器模型进行rtl级仿真验证;
37.系统级处理器模型仿真验证成功后,将该系统级处理器模型转换为verilog/vhdl rtl(register transfer level)级处理器模型。转换系统级处理器模型为rtl级处理器模型的工具可以是coware processor designer仿真软件或codasip studio工具。
38.进一步地,对该rtl级处理器模型进行rtl级仿真验证,已验证模型设计的正确性。rtl级仿真验证工具可以是modelsim仿真软件或synopsys工具。
39.s13:将验证通过的rtl级处理器模型进行包括至少逻辑综合以及布局布线的编译处理,生成相应的配置文件并烧写到fpga平台。
40.具体地,将验证通过的rtl级处理器模型进行包括至少逻辑综合以及布局布线的编译处理,以转换成门级电路网表以及与门级电路网表对应的硬件资源信息,进而形成配置文件烧写到fpga平台。fpga平台具有高度并行的优势,具有极高的执行效率,并且fpga平台可以无限地重新编辑,可以减小硬件资源的开销。
41.s14:获取机器指令码文件并将其加载到fpga平台中运行。
42.将指令码文件加载到fpga平台中运行,以在fpga平台中验证专用处理器模型是否能够在指令集中调用与机器指令码文件相对应的至少一种后量子密码算法基本运算模块以形成相应的后量子密码算法代码,进而执行与后量子密码算法代码相应的处理。
43.其中,机器指令码文件由后量子密码算法程序文件通过编译工具编译而成。其中,后量子密码算法程序文件是根据专用处理器的指令集编辑而成。
44.具体地,根据后量子密码算法处理器指令集编写后量子密码算法程序文件。后量子密码算法程序文件例如是newhope算法代码或saber算法代码等。使用后量子密码算法处理器指令集对应的编译工具编译后量子密码算法程序文件,得到机器指令码文件。
45.举例说明,可建立risc-v基本指令集和ntt、arr_dot_mul、arr_dot_add、arr_ldr、arr_str、q_div32、sha3、rand等至少一种后量子密码算法基本运算模块组成的专用处理器的指令集。根据该指令集编写newhope算法代码,然后根据该指令集对应的编译工具编译newhope算法代码,得到newhope算法机器指令码文件,再把该newhope算法机器指令码文件加载到fpga的平台中运行验证。还可以根据该指令集编写saber算法代码,然后根据该指令集对应的编译工具编译saber算法代码,得到saber算法机器指令码文件,再把该saber算法机器指令码文件加载到fpga平台中运行验证。
46.基于上述方法步骤,本实施例通过将ntt、arr_dot_mul、arr_dot_add、arr_ldr、arr_str、q_div32、sha3、rand等至少一种后量子密码算法功基本运算模块添加到基本指令集中构成专用处理器的指令集,并分别对基于指令集构建的系统级处理器模型和rtl级处理器模型进行仿真验证,能够提高专用处理器的设计和验证效率,降低专用处理器的开发次数和开发难度,能够减少所需要的硬件资源。进一步地,将rtl级处理器模型综合后烧写到fpga平台,并将指令集对应的机器指令码文件加载到fpga平台中运行,能够提高专用处理器的开发和验证效率。
47.请参阅图3,图3为本技术提供的专用处理器的模型验证装置一实施例的结构示意图。
48.本实施例中,专用处理器的模型验证装置20包括收发器21、处理器22和存储器23。其中,收发器21与存储器23和处理器22耦接,处理器22通过收发器21与外部设备通信,处理器22通过收发器21接收外部设备发送的执行命令,存储器23存储有计算机程序数据,处理器22可执行存储器23中的计算机程序数据,以执行上述专用处理器的模型验证方法。
49.具体地,收发器21被配置为接收外部设备的执行命令和文件。执行命令例如包括建立包括多种后量子密码算法基本运算模块的指令集的命令、对处理器模型进行仿真验证的命令、机器指令码文件等。
50.处理器22被配置为根据执行命令运行计算机程序数据,以处理执行命令对应的任务。例如,处理器22建立包括多种后量子密码算法基本运算模块的指令集;基于指令集构建专用处理器的处理器模型,并对处理器模型进行仿真验证;将验证通过的处理器模型进行逻辑综合、布线布局等编译处理,以生成相应的配置文件并烧写到fpga平台;获取机器指令码文件,并将指令码文件加载到fpga平台中运行,以在fpga平台中验证专用处理器模型是否能够在指令集中调用与机器指令码文件相对应的至少一种后量子密码算法基本运算模块以形成相应的后量子密码算法代码,进而执行与后量子密码算法代码相应的处理。
51.进一步地,处理器22将执行结果通过收发器21发送给外部设备。例如处理器22可通过收发器21将系统级处理器模型的仿真验证结果发送给外部设备。
52.请参阅图4,图4为本技术提供的专用处理器的处理方法一实施例的流程示意图,具体包括以下步骤:
53.s41:获取机器指令码文件;
54.接收用户输入的机器指令码文件。
55.其中,机器指令码文件由后量子密码算法程序文件通过编译工具编译而成。后量子密码算法程序文件是根据专用处理器的指令集编写而成的。因此,专用处理器能够理解和运行机器指令码文件。
56.s42:在指令集中调用与机器指令码文件对应的至少一种后量子密码算法基本运算模块形成的后量子密码算法代码,执行与该后量子密码算法代码相对应的处理。
57.具体地,先将rom(read-only memory)中的机器指令码文件加载到验证平台中运行验证,当机器指令码验证无误后,即可使用专用处理器对基于专用处理器指令集编写的后量子密码算法代码所编译的机器指令码文件进行调用,进而执行与后量子密码算法代码相对应的处理。
58.在指令集中调用与机器指令码文件相对应的至少一种基本指令模块和至少一种后量子密码算法基本运算模块形成相应的后量子密码算法代码,其中指令集还包括多种基本指令模块。
59.其中,基本指令集可以是risc-v指令集、arm指令集等多种常见指令集或自定义处理器指令集中的任何一种。后量子密码算法扩展指令集可以包括ks_mul(karatsuba乘法)、tc_mul(toom-cook乘法)、ntt(ntt算法)、arr_dot_mul(矢量乘法)、arr_dot_add(矢量加法)、arr_ldr(矢量读取)、arr_str(矢量存储)、q_div32(32位快速除法)、sha3(keccak算法)、rand(随机数生成算法)等后量子密码算法指令模块中的至少两种。
60.本实施例中,专用处理器集成有多个后量子密码算法基本运算模块的指令集,用户能够通过机器指令码调用的任意后量子密码算法基本运算模块,使得专用处理器能够同时实现多种后量子密码算法基本操作指令的功能,专用处理器的可扩展性更强并且更灵活,能够降低后量子密码算法硬件实现成本。
61.请参阅图5,图5是本技术提供的专用处理器一实施例的结构示意图。专用处理器50包括存储电路51、通信电路52以及处理电路53,存储电路51用于存储基于指令集编译的机器指令码文件,通信电路52用于获取机器指令码文件,处理电路53用于在指令集中调用与机器指令码文件相对应的至少一种后量子密码算法基本运算模块以形成相应的后量子密码算法代码,进而执行与后量子密码算法代码相应的处理。
62.请参阅图6,图6为本技术计算机可读存储介质的结构示意图。其中,计算机可读存储介质60存储有程序数据61,能够被处理器执行上述任一项专用处理器的模型验证方法。例如,该计算机可读存储介质60可存储有待仿真验证的基于专用处理器指令集建立的系统级处理器仿真模型的程序数据61,也可存储待仿真验证的rtl级处理器仿真模型的程序数据,也可存储根据专用处理器编写的后量子密码算法代码编译而成的机器指令码文件。
63.本实施例计算机可读存储介质60可以是u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
64.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨
论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
65.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
66.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
67.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
68.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
69.在本技术所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。
70.以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所做的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1