1.本发明涉及计算机技术领域,特别是涉及一种芯片验证方法、系统、设备及存储介质。
背景技术:
2.在整个芯片的研发流程中,随着硬件设计的复杂性日益增加,芯片中算法的加密功能的验证所带来的工作量越来越大,消耗了大部分的研发成本。
3.例如验证人员需要搭建出标准化的验证平台,从而得到芯片的加密算法的加密结果。然后,通过在外部编写的加密算法对同样的数据加密,来验证芯片的加密算法得到的加密结果是否正确,搭建出标准化的验证平台费时费力,并且在外部编写的加密算法也可能出现编写错误,影响芯片验证的效率,提高了验证的复杂性。
4.综上所述,如何提高芯片验证的效率,是目前本领域技术人员急需解决的技术问题。
技术实现要素:
5.本发明的目的是提供一种芯片验证方法、系统、设备及存储介质,以提高芯片验证的效率。
6.为解决上述技术问题,本发明提供如下技术方案:
7.一种芯片验证方法,包括:
8.从openssl算法库中调用目标算法;
9.通过所述目标算法加密第一原文数据,得到第一加密结果并保存;
10.将所述第一原文数据以及所述目标算法的参数信息导入uvm平台;
11.通过所述uvm平台运行待测芯片中的待测算法,并基于所述参数信息以及所述待测算法加密所述第一原文数据,得到第二加密结果;
12.判断所述第二加密结果与所述第一加密结果是否一致;
13.如果是,则确定所述待测算法的加密功能的验证结果为通过;
14.如果否,则确定所述待测算法的加密功能的验证结果为不通过。
15.优选的,还包括:
16.通过所述目标算法加密第二原文数据,得到第三加密结果并导入所述uvm平台;
17.通过所述uvm平台运行所述待测芯片中的所述待测算法,并基于所述参数信息以及所述待测算法解密所述第三加密结果,得到解密数据;
18.判断所述解密数据与所述第二原文数据是否一致;
19.如果是,则确定所述待测算法的解密功能的验证结果为通过;
20.如果否,则确定所述待测算法的解密功能的验证结果为不通过。
21.优选的,所述从openssl算法库中调用目标算法,包括:
22.通过预设的c语言函数,从openssl算法库中调用目标算法。
23.优选的,所述将所述第一原文数据以及所述目标算法的参数信息导入uvm平台,包括:
24.将所述c语言函数导入所述uvm平台;
25.在所述uvm平台中调用所述c语言函数,以将所述第一原文数据以及所述目标算法的参数信息导入uvm平台。
26.优选的,所述判断所述第二加密结果与所述第一加密结果是否一致,包括:
27.通过uvm平台的scoreboard模块,判断所述第二加密结果与所述第一加密结果是否一致。
28.优选的,得到的所述第一加密结果被保存为二进制格式;相应的,得到的所述第二加密结果被保存为二进制格式。
29.优选的,所述目标算法为ecc算法或者为rsa算法。
30.一种芯片验证系统,应用与uvm平台中,包括:
31.目标算法调用单元,用于从openssl算法库中调用目标算法;
32.第一加密结果保存单元,用于通过所述目标算法加密第一原文数据,得到第一加密结果并保存;
33.导入单元,用于将所述第一原文数据以及所述目标算法的参数信息导入uvm平台;
34.第二加密结果保存单元,用于通过所述uvm平台运行待测芯片中的待测算法,并基于所述参数信息以及所述待测算法加密所述第一原文数据,得到第二加密结果;
35.比较单元,用于判断所述第二加密结果与所述第一加密结果是否一致;
36.如果是,则触发第一结果输出单元,用于确定所述待测算法的加密功能的验证结果为通过;
37.如果否,则触发第二结果输出单元,用于确定所述待测算法的加密功能的验证结果为不通过。
38.一种芯片验证设备,包括:
39.存储器,用于存储计算机程序;
40.处理器,用于执行所述计算机程序以实现上述任一项所述的芯片验证方法的步骤。
41.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的芯片验证方法的步骤。
42.应用本发明实施例所提供的技术方案,通过uvm平台,结合openssl算法库,实现了高效的芯片验证。具体的,本技术的方案中无需手动编译外部的算法,而是直接从openssl算法库中调用目标算法,调用了目标算法之后,便可以通过目标算法加密第一原文数据,得到第一加密结果并保存。在利用待测芯片中的待测算法进行加密时,本技术是基于uvm平台实现的,具体的,将第一原文数据以及目标算法的参数信息导入uvm平台之后,可以通过uvm平台运行待测芯片中的待测算法,并基于参数信息以及待测算法加密第一原文数据,得到第二加密结果。之后,判断第二加密结果与第一加密结果是否一致;如果是,则可以确定待测算法的加密功能的验证结果为通过,否则可以确定待测算法的加密功能的验证结果为不通过。综上所述,本技术的方案通过uvm平台,结合openssl算法库,实现了高效的芯片验证。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明中一种芯片验证方法的实施流程图;
45.图2为本发明中一种芯片验证系统的结构示意图。
具体实施方式
46.本发明的核心是提供一种芯片验证方法,通过uvm平台,结合openssl算法库,实现了高效的芯片验证。
47.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.请参考图1,图1为本发明中一种芯片验证方法的实施流程图,该芯片验证方法可以包括以下步骤:
49.步骤s101:从openssl算法库中调用目标算法。
50.openssl(open secure sockets layer,开放式安全套接层协议)是一个ssl协议的开源实现,采用c语言作为开发语言,具备了跨平台的能力,支持unix/linux、windows、mac os等多种平台,其包含一个强大的密码算法库,可以实现目前大部分主流的密码算法和标准。
51.因此,本技术无需工作人员手动编译目标算法实现芯片验证,而是可以直接从openssl算法库中调用目标算法,这样使得得到的目标算法不容易出现编译错误的情况,并且步骤s101的操作也较为方便。
52.由于openssl采用c语言作为开发语言,因此,在实际应用中,步骤s101可以具体为:通过预设的c语言函数,从openssl算法库中调用目标算法。
53.调用的目标算法的具体类型可以根据实际需要进行设定和调整,但可以理解的是,应当与待测芯片中的待测算法是一致的。考虑到ecc(elliptic curve cryptography,椭圆曲线密码)算法以及rsa(非对称加密)算法是目前较为常用的加密算法,因此,在实际中,目标算法可以为ecc算法或者为rsa算法。
54.步骤s102:通过目标算法加密第一原文数据,得到第一加密结果并保存。
55.从openssl算法库中调用了目标算法之后,便可以通过目标算法加密第一原文数据,得到第一加密结果并保存。第一原文数据可以由工作人员预先设定,也可以是随机生成的,并不影响本发明的实施。
56.在一种具体实施方式中,为了便于数据的读取,得到的第一加密结果被保存为二进制格式,同样的,后文中得到的第二加密结果也可以被保存为二进制格式以便于读取。
57.例如目标算法为rsa算法,可以通过调用rsa_generate_key函数生成私钥和公钥并保存,也即此时的目标算法的参数信息即为生成的私钥和公钥。可以通过pem_read_bio_
rsaprivatekey函数读取私钥,可以通过rsa_public_encrypt函数进行加密,可以通过rsa_private_decrypt函数进行解密。
58.步骤s103:将第一原文数据以及目标算法的参数信息导入uvm平台。
59.本技术考虑到uvm(universal verification methodology,通用验证方法学)可以提高验证效率,提供了一套基于system-verilog语言的库文件。这套库文件包含了众多常用的基类和方法,也规范了验证平台的结构和运行过程。因此,本技术的方案中,基于uvm平台进行芯片验证,使得验证人员能够快速、有效的搭建出标准化的验证平台。并且,随着soc工程的规模越来越大,系统越来越复杂,利用uvm平台进行验证,有利于适应验证的需求,提高验证环境的复用性,提高验证效率。
60.目标算法的参数信息,指的是目标算法进行加、解密时所需要使用到的参数信息。将第一原文数据以及目标算法的参数信息导入uvm平台的方式有种,例如在本发明的一种具体实施方式中,步骤s103可以具体包括:
61.将c语言函数导入uvm平台;
62.在uvm平台中调用c语言函数,以将第一原文数据以及目标算法的参数信息导入uvm平台。
63.该种实施方式中,先将上文中描述的c语言函数导入uvm平台,例如uvm平台的system-verilog语言提供了dpi接口,可以使用import语句将之前写好的c语言函数导入uvm平台。
64.导入之后,便可以在uvm平台中调用c语言函数,具体的,可以在uvm平台的transaction中调用c语言函数,从而使得uvm平台能够获得后续需要发送给待测芯片中的待测算法的数据,该场合中,需要发送给待测芯片中的待测算法的便是第一原文数据以及目标算法的参数信息,因此,可以调用c语言函数,从而将第一原文数据以及目标算法的参数信息导入uvm平台。
65.步骤s104:通过uvm平台运行待测芯片中的待测算法,并基于参数信息以及待测算法加密第一原文数据,得到第二加密结果。
66.将导入了uvm平台的第一原文数据以及目标算法的参数信息发送给待测芯片中的待测算法,待测芯片中的待测算法便可以对第一原文数据进行加密,得到第二加密结果。在实际应用中,如上文的描述,得到的第二加密结果可以保存为二进制格式。然后,可以通过driver模块驱动到接口,使得uvm平台的monitor模块能够监控到第二加密结果。
67.步骤s105:判断第二加密结果与第一加密结果是否一致;
68.如果是,则执行步骤s106:确定待测算法的加密功能的验证结果为通过;
69.如果否,则步骤s107:确定待测算法的加密功能的验证结果为不通过。
70.在判断第二加密结果与第一加密结果是否一致时,也可以通过uvm平台实现,以进一步地提高芯片验证的效率,即在本发明的一种具体实施方式中,步骤s105可以具体包括:
71.通过uvm平台的scoreboard模块,判断第二加密结果与第一加密结果是否一致。
72.具体的,uvm平台的scoreboard模块可以通过monitor模块得到第二加密结果,进而将其与步骤s102中得到的第一加密结果进行比较,判断二者是否一致。当然,其他场合中,可以通过其他方式判断第二加密结果与第一加密结果是否一致。此外,判断第二加密结果与第一加密结果是否一致时,可以通过全量比较的方式来判断,也可以通过校验位来判
断,根据实际需要进行选取即可。
73.可以理解的是,当第二加密结果与第一加密结果一致时,便可以确定待测算法的加密功能的验证结果为通过,反之则为不通过。并且实际应用中,可以在不通过时报错,以提醒验证人员进行处理。
74.在本发明的一种具体实施方式中,还可以包括:
75.通过目标算法加密第二原文数据,得到第三加密结果并导入uvm平台;
76.通过uvm平台运行待测芯片中的待测算法,并基于参数信息以及待测算法解密第三加密结果,得到解密数据;
77.判断解密数据与第二原文数据是否一致;
78.如果是,则确定待测算法的解密功能的验证结果为通过;
79.如果否,则确定待测算法的解密功能的验证结果为不通过。
80.在前述实施方式中,对待测算法的加密功能进行了验证,该种实施方式中,则可以通过uvm平台,结合openssl算法库,实现待测算法的解密功能的验证。
81.具体的,可以通过目标算法加密第二原文数据,得到第三加密结果并导入uvm平台,第二原文数据可以由工作人员预先设定,也可以是随机生成的,并不影响本发明的实施。得到了第三加密结果之后,将第三加密结果以及目标算法的参数信息发送给待测芯片中的待测算法,待测芯片中的待测算法便可以对第三加密结果进行解密,得到解密数据。最后,通过判断解密数据与第二原文数据是否一致,可以确定出待测算法的解密功能的是否验证通过。
82.应用本发明实施例所提供的技术方案,通过uvm平台,结合openssl算法库,实现了高效的芯片验证。具体的,本技术的方案中无需手动编译外部的算法,而是直接从openssl算法库中调用目标算法,调用了目标算法之后,便可以通过目标算法加密第一原文数据,得到第一加密结果并保存。在利用待测芯片中的待测算法进行加密时,本技术是基于uvm平台实现的,具体的,将第一原文数据以及目标算法的参数信息导入uvm平台之后,可以通过uvm平台运行待测芯片中的待测算法,并基于参数信息以及待测算法加密第一原文数据,得到第二加密结果。之后,判断第二加密结果与第一加密结果是否一致;如果是,则可以确定待测算法的加密功能的验证结果为通过,否则可以确定待测算法的加密功能的验证结果为不通过。综上所述,本技术的方案通过uvm平台,结合openssl算法库,实现了高效的芯片验证。
83.相应于上面的方法实施例,本发明实施例还提供了一种芯片验证系统,可与上文相互对应参照。
84.参见图2所示,为本发明中一种芯片验证系统的结构示意图,应用与uvm平台中,包括:
85.目标算法调用单元201,用于从openssl算法库中调用目标算法;
86.第一加密结果保存单元202,用于通过目标算法加密第一原文数据,得到第一加密结果并保存;
87.导入单元203,用于将第一原文数据以及目标算法的参数信息导入uvm平台;
88.第二加密结果保存单元204,用于通过uvm平台运行待测芯片中的待测算法,并基于参数信息以及待测算法加密第一原文数据,得到第二加密结果;
89.比较单元205,用于判断第二加密结果与第一加密结果是否一致;
90.如果是,则触发第一结果输出单元206,用于确定待测算法的加密功能的验证结果为通过;
91.如果否,则触发第二结果输出单元207,用于确定待测算法的加密功能的验证结果为不通过。
92.在本发明的一种具体实施方式中,导入单元203,还用于:通过目标算法加密第二原文数据,得到第三加密结果并导入uvm平台;
93.还包括:解密数据确定单元,用于通过uvm平台运行待测芯片中的待测算法,并基于参数信息以及待测算法解密第三加密结果,得到解密数据;
94.比较单元205,还用于判断解密数据与第二原文数据是否一致;
95.如果是,则触发第一结果输出单元206,第一结果输出单元206还用于确定待测算法的解密功能的验证结果为通过;
96.如果否,则触发第二结果输出单元207,第二结果输出单元207还用于确定待测算法的解密功能的验证结果为不通过。
97.在本发明的一种具体实施方式中,目标算法调用单元201,具体用于:
98.通过预设的c语言函数,从openssl算法库中调用目标算法。
99.在本发明的一种具体实施方式中,导入单元203,具体用于:
100.将c语言函数导入uvm平台;
101.在uvm平台中调用c语言函数,以将第一原文数据以及目标算法的参数信息导入uvm平台。
102.在本发明的一种具体实施方式中,比较单元205,具体用于:
103.通过uvm平台的scoreboard模块,判断第二加密结果与第一加密结果是否一致。
104.在本发明的一种具体实施方式中,得到的第一加密结果被保存为二进制格式;相应的,得到的第二加密结果被保存为二进制格式。
105.在本发明的一种具体实施方式中,目标算法为ecc算法或者为rsa算法。
106.相应于上面的方法和系统实施例,本发明实施例还提供了一种芯片验证设备以及一种计算机可读存储介质,可与上文相互对应参照。
107.该芯片验证设备可以包括:
108.存储器,用于存储计算机程序;
109.处理器,用于执行计算机程序以实现如上述任一实施例中的芯片验证方法的步骤。
110.该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例中的芯片验证方法的步骤。这里所说的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。
111.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
112.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
113.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
技术特征:
1.一种芯片验证方法,其特征在于,包括:从openssl算法库中调用目标算法;通过所述目标算法加密第一原文数据,得到第一加密结果并保存;将所述第一原文数据以及所述目标算法的参数信息导入uvm平台;通过所述uvm平台运行待测芯片中的待测算法,并基于所述参数信息以及所述待测算法加密所述第一原文数据,得到第二加密结果;判断所述第二加密结果与所述第一加密结果是否一致;如果是,则确定所述待测算法的加密功能的验证结果为通过;如果否,则确定所述待测算法的加密功能的验证结果为不通过。2.根据权利要求1所述的芯片验证方法,其特征在于,还包括:通过所述目标算法加密第二原文数据,得到第三加密结果并导入所述uvm平台;通过所述uvm平台运行所述待测芯片中的所述待测算法,并基于所述参数信息以及所述待测算法解密所述第三加密结果,得到解密数据;判断所述解密数据与所述第二原文数据是否一致;如果是,则确定所述待测算法的解密功能的验证结果为通过;如果否,则确定所述待测算法的解密功能的验证结果为不通过。3.根据权利要求1所述的芯片验证方法,其特征在于,所述从openssl算法库中调用目标算法,包括:通过预设的c语言函数,从openssl算法库中调用目标算法。4.根据权利要求3所述的芯片验证方法,其特征在于,所述将所述第一原文数据以及所述目标算法的参数信息导入uvm平台,包括:将所述c语言函数导入所述uvm平台;在所述uvm平台中调用所述c语言函数,以将所述第一原文数据以及所述目标算法的参数信息导入uvm平台。5.根据权利要求1所述的芯片验证方法,其特征在于,所述判断所述第二加密结果与所述第一加密结果是否一致,包括:通过uvm平台的scoreboard模块,判断所述第二加密结果与所述第一加密结果是否一致。6.根据权利要求1所述的芯片验证方法,其特征在于,得到的所述第一加密结果被保存为二进制格式;相应的,得到的所述第二加密结果被保存为二进制格式。7.根据权利要求1所述的芯片验证方法,其特征在于,所述目标算法为ecc算法或者为rsa算法。8.一种芯片验证系统,其特征在于,应用与uvm平台中,包括:目标算法调用单元,用于从openssl算法库中调用目标算法;第一加密结果保存单元,用于通过所述目标算法加密第一原文数据,得到第一加密结果并保存;导入单元,用于将所述第一原文数据以及所述目标算法的参数信息导入uvm平台;第二加密结果保存单元,用于通过所述uvm平台运行待测芯片中的待测算法,并基于所述参数信息以及所述待测算法加密所述第一原文数据,得到第二加密结果;
比较单元,用于判断所述第二加密结果与所述第一加密结果是否一致;如果是,则触发第一结果输出单元,用于确定所述待测算法的加密功能的验证结果为通过;如果否,则触发第二结果输出单元,用于确定所述待测算法的加密功能的验证结果为不通过。9.一种芯片验证设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的芯片验证方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的芯片验证方法的步骤。
技术总结
本申请公开了一种芯片验证方法,包括:从OpenSSL算法库中调用目标算法;通过目标算法加密第一原文数据,得到第一加密结果并保存;将第一原文数据以及目标算法的参数信息导入UVM平台;通过UVM平台运行待测芯片中的待测算法,并基于参数信息以及待测算法加密第一原文数据,得到第二加密结果;判断第二加密结果与第一加密结果是否一致;如果是,则确定待测算法的加密功能的验证结果为通过;如果否,则确定待测算法的加密功能的验证结果为不通过。应用本申请的方案,通过UVM平台,结合OpenSSL算法库,实现了高效的芯片验证。本申请还公开了一种芯片验证系统、设备及存储介质,具有相应技术效果。技术效果。技术效果。
技术研发人员:王莹
受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
技术研发日:2021.11.26
技术公布日:2022/3/8