密码核的安全验证方法、装置、电子设备及存储介质与流程

文档序号:35415307发布日期:2023-09-10 01:52阅读:53来源:国知局
密码核的安全验证方法、装置、电子设备及存储介质

本说明书涉及集成电路领域,尤其是涉及一种密码核的安全验证方法、装置、电子设备及存储介质。


背景技术:

1、密码核是指能够进行加解密运算的集成电路设计。集成电路是计算机系统的核心,也是信息处理、存储和传输的重要支撑平台。随着集成电路的发展,集成电路的设计规模不断增大。目前,典型的集成电路设计已经达到数十个密码核。

2、然而,密码核中可能存在由于设计缺陷而引入的安全漏洞。这些设计缺陷通常是由于硬件设计说明不完善、编码不规范、性能优化等因素导致的。虽然这些设计缺陷可能是由于设计者无意导致的,但是一旦这些设计缺陷导致的安全漏洞被攻击者发掘和利用,就会导致关键信息的泄露或者导致电路不能实现正常功能。因此,针对密码核进行安全验证是十分重要的。

3、相关技术中,使用门级代码进行的信息流分析安全验证,能够比常用的功能验证覆盖率更高。然而,基于门级代码进行的信息流安全验证在遇到大规模电路设计时,会遇到技术爆炸的问题,并且该方式验证效率低。


技术实现思路

1、本说明书旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本说明书的一个目的在于提出一种密码核安全验证方法,能够基于信息流分析的方式,处理rtl级代码,具有更高的验证效率和验证精度。

2、本说明书第二个目的在于提出一种密码核安全验证装置。

3、本说明书第三个目的在于提出一种电子设备。

4、本说明书第四个目的在于提出一种计算机可读存储介质。

5、为达上述目的,本说明书第一方面实施例提出了一种密码核安全验证方法。所述安全验证方法包括:以所述密码核的执行逻辑为参考,基于信息流模型库中的目标基础模型生成所述密码核对应的目标信息流模型;其中,所述密码核对应有逻辑函数,所述逻辑函数包括运算单元,所述目标基础模型用于描述在执行所述运算单元时对电路信号的运算过程;所述目标信息流模型用于描述在执行所述密码核时对电路信号的运算过程;针对所述密码核需要验证的安全属性构建对应的安全属性断言;其中,所述安全属性断言用于加入所述目标信息流模型中;通过执行加入所述安全属性断言后的目标信息流模型,对所述密码核进行安全验证。

6、在本说明书的一些实施例中,所述以所述密码核的执行逻辑为参考,基于信息流模型库中的目标基础模型生成所述密码核对应的目标信息流模型,包括:拆分所述密码核得到多个逻辑函数;其中,所述逻辑函数包括至少一个运算单元;针对任一逻辑函数,在所述信息流模型库中确定所述任一逻辑函数包括的运算单元所对应的目标基础模型;以所述任一逻辑函数的执行逻辑为参考,基于所述目标基础模型生成所述任一逻辑函数对应的目标中间模型;以所述密码核的执行逻辑为参考,基于所述目标中间模型和/或所述目标基础模型生成所述目标信息流模型。

7、在本说明书的一些实施例中,所述多个逻辑函数包括数据流逻辑函数和控制流逻辑函数;其中,所述数据流逻辑函数表示使用显示赋值方式的逻辑函数;所述控制流逻辑函数表示使用隐式赋值方式的逻辑函数;所述以所述任一逻辑函数的执行逻辑为参考,基于所述目标基础模型生成所述任一逻辑函数对应的目标中间模型,包括:针对所述多个逻辑函数中的任一数据流逻辑函数,以所述任一数据流逻辑函数的执行逻辑为参考,基于所述任一数据流逻辑函数对应的第一目标基础模型生成所述任一数据流逻辑函数对应的显示流中间模型;针对所述多个逻辑函数中的任一控制流逻辑函数,以所述任一控制流逻辑函数的执行逻辑为参考,基于所述任一控制流逻辑函数对应的第二目标基础模型生成所述任一控制流逻辑函数对应的隐式流中间模型。

8、在本说明书的一些实施例中,所述数据流逻辑函数包括至少一个数据流变量;基于所述任一数据流逻辑函数对应的第一目标基础模型生成所述任一数据流逻辑函数对应的显示流中间模型之前,所述方法还包括:对所述任一数据流逻辑函数中的任一数据流变量进行位宽拓展得到所述任一数据流变量对应的多位宽数据流变量;其中,所述多位宽数据流变量用于适配所述第一目标基础模型的输入。

9、在本说明书的一些实施例中,针对所述多个逻辑函数中的任一控制流逻辑函数,以所述任一控制流逻辑函数的执行逻辑为参考,基于所述任一控制流逻辑函数对应的第二目标基础模型生成所述任一控制流逻辑函数对应的隐式流中间模型,包括:确定所述任一控制流逻辑函数所包括的条件语句,并为所述条件语句生成对应的条件变量;在所述信息流模型库中确定与所述任一控制流逻辑函数对应的第二目标基础模型;在所述第二目标基础模型中添加针对所述任一控制流逻辑函数生成的条件变量;以所述任一控制流逻辑函数的执行逻辑为参考,基于所述任一控制流逻辑函数对应的添加所述条件变量后的第二目标基础模型生成所述任一控制流逻辑函数对应的隐式流中间模型。

10、在本说明书的一些实施例中,针对所述密码核需要验证的安全属性构建对应的安全属性断言,包括:针对任一安全属性,确定所述密码核中用于验证所述任一安全属性的待验证信号;基于所述任一安全属性所对应的信息流安全策略,对所述待验证信号设置安全标签并进行安全级别划分;基于所述任一安全属性对应的信息流安全策略、所述待验证信号对应的安全标签以及所述待验证信号对应的安全级别,生成所述任一安全属性对应的安全属性断言。

11、在本说明书的一些实施例中,所述安全属性对应有待验证信号,所述待验证信号设置有安全标签;通过执行加入所述安全属性断言后的目标信息流模型,对所述密码核进行安全验证,包括:针对所述密码核的任一安全属性的验证,通过所述任一安全属性对应的待验证信号在所述目标信息流模型中的运算,确定所述待验证信号流入目标输出位的输出安全标签;其中,所述输出安全标签是所述待验证信号对应的安全标签经过运算得到的;基于所述输出安全标签和所述待验证信号对应的安全标签的比较结果,确定针对所述任一安全属性的验证结果。

12、在本说明书的一些实施例中,所述安全属性包括机密性验证;针对所述密码核需要验证的安全属性构建对应的安全属性断言,包括:针对所述机密性验证,确定所述密码核中用于所述机密性验证的待验证密钥信号;基于所述机密性验证所对应的信息流安全策略,对所述待验证密钥信号设置安全标签并进行安全级别划分;基于所述机密性验证对应的信息流安全策略、所述待验证密钥信号对应的安全标签以及安全级别,生成所述机密性验证对应的安全属性断言。

13、在本说明书的一些实施例中,所述待验证密钥信号对应的目标输出位包括密文输出位;通过执行加入所述安全属性断言后的目标信息流模型,对所述密码核进行安全验证,包括:通过所述待验证密钥信号在所述目标信息流模型中的运算,确定所述待验证密钥信号流入所述密文输出位的第一输出安全标签;其中,所述第一输出安全标签是所述待验证密钥信号对应的安全标签经过运算得到的;基于所述第一输出安全标签和所述待验证密钥信号对应的安全标签的比较结果,确定所述机密性验证的验证结果。

14、在本说明书的一些实施例中,所述待验证密钥信号对应的安全标签包括若干字节,设置所述若干字节中任一字节为非零字符;基于所述第一输出安全标签和所述待验证密钥信号对应的安全标签的比较结果,确定所述机密性验证的验证结果,包括:在所述第一输出安全标签中的多个字节为所述安全标签中的非零字符的情况下,确定所述机密性验证对应的安全属性断言成功;其中,所述安全属性断言成功表示所述待验证密钥信号未泄露至所述密文输出位;在所述第一输出安全标签与所述安全标签相同的情况下,确定所述机密性验证对应的安全属性断言失败;其中,所述安全属性断言失败表示所述待验证密钥信号泄露至所述密文输出位。

15、在本说明书的一些实施例中,所述待验证密钥信号对应的目标输出位包括非密文输出位;通过执行加入所述安全属性断言后的目标信息流模型,对所述密码核进行安全验证,还包括:通过所述待验证密钥信号在所述目标信息流模型中的运算,确定所述待验证密钥信号流入所述非密文输出位的第二输出安全标签;其中,所述第二输出安全标签是所述待验证密钥信号对应的安全标签经过运算得到的;基于所述第二输出安全标签和所述待验证密钥信号对应的安全标签的比较结果,确定所述机密性验证的验证结果。

16、在本说明书的一些实施例中,所述待验证密钥信号对应的安全标签包括若干字节的非零字符;基于所述第二输出安全标签和所述待验证密钥信号对应的安全标签的比较结果,确定所述机密性验证的验证结果,包括:在所述第二输出安全标签的每个字节均未包含所述安全标签中任一非零字符情况下,确定所述机密性验证对应的安全属性断言成功;其中,所述安全属性断言成功表示所述待验证密钥信号未泄露至所述非密文输出位;在所述第二输出安全标签的任一字节由所述安全标签中任一非零字符构成的情况下,确定所述机密性验证对应的安全属性断言失败;其中,所述安全属性断言失败表示所述待验证密钥信号泄露至所述非密文输出位。

17、为达上述目的,本说明书第二方面实施例提出了一种密码核安全验证装置。所述安全验证装置包括:模型生成模块,用于以所述密码核的执行逻辑为参考,基于信息流模型库中的目标基础模型生成所述密码核对应的目标信息流模型;其中,所述密码核对应有逻辑函数,所述逻辑函数包括运算单元,所述目标基础模型用于描述在执行所述运算单元时对电路信号的运算过程;所述目标信息流模型用于描述在执行所述密码核时对电路信号的运算过程;断言生成模块,用于针对所述密码核需要验证的安全属性构建对应的安全属性断言;其中,所述安全属性断言用于加入所述目标信息流模型中;验证模块,用于通过执行加入所述安全属性断言后的目标信息流模型,对所述密码核进行安全验证。

18、在本说明书的一些实施例中,所述模型生成模块还用于:拆分所述密码核得到多个逻辑函数;其中,所述逻辑函数包括至少一个运算单元;针对任一逻辑函数,在所述信息流模型库中确定所述任一逻辑函数包括的运算单元所对应的目标基础模型;以所述任一逻辑函数的执行逻辑为参考,基于所述目标基础模型生成所述任一逻辑函数对应的目标中间模型;以所述密码核的执行逻辑为参考,基于所述目标中间模型和/或所述目标基础模型生成所述目标信息流模型。

19、在本说明书的一些实施例中,所述多个逻辑函数包括数据流逻辑函数和控制流逻辑函数;其中,所述数据流逻辑函数表示使用显示赋值方式的逻辑函数;所述控制流逻辑函数表示使用隐式赋值方式的逻辑函数;所述模型生成模块还用于:针对所述多个逻辑函数中的任一数据流逻辑函数,以所述任一数据流逻辑函数的执行逻辑为参考,基于所述任一数据流逻辑函数对应的第一目标基础模型生成所述任一数据流逻辑函数对应的显示流中间模型;针对所述多个逻辑函数中的任一控制流逻辑函数,以所述任一控制流逻辑函数的执行逻辑为参考,基于所述任一控制流逻辑函数对应的第二目标基础模型生成所述任一控制流逻辑函数对应的隐式流中间模型。

20、为达上述目的,本说明书第三方面实施例提出了一种电子设备。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如第一方面任意一项实施例所述的密码核安全验证方法。

21、为达上述目的,本说明书第四方面实施例提出了一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时,实现如第一方面任意一项实施例所述的密码核安全验证方法。

22、通过上述实施例,基于信息流模型库中预构建的目标基础模型,以密码核的执行逻辑为参考,生成密码核rtl级的目标信息流模型。然后,将针对密码核构建的安全属性断言写入目标信息流模型。通过执行加入安全属性断言后的目标信息流模型,便可完成对密码核的安全验证。本说明书实施例的密码核安全验证方法,能够处理密码核rtl级verilog语言,为其建立rtl级的信息流模型。相比门级验证,具有更高的验证效率和验证精度,并且可以避免由于重汇聚路径导致的误报。

23、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本说明书的实践了解到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1