一种基于SM3_HMAC算法的QKD设备的固件完整性校验方法及系统与流程

未命名 07-14 阅读:168 评论:0

一种基于sm3_hmac算法的qkd设备的固件完整性校验方法及系统
技术领域
1.本发明涉及量子密钥分发(qkd)设备,特别是qkd设备的固件完整性校验。


背景技术:

2.在量子密钥分发(qkd)设备中,为确保设备固件的安全性及完整性,防止恶意篡改,保护qkd设备的设备固件安全性和完整性至关重要,通常做法是将设备固件包放入设备中,通过一些硬件防拆方法来保护设备,但在完整性和固件校验层面上,并无过多的方法,通常的固件校验就是比较固件版本号是否一致等,对设备固件的保护较弱。现有的设备,或者在软件层面上对设备固件不做校验,仅通过硬件防拆等方法保护;或者仅在软件层面上简单的比对,对固件被篡改防护措施很弱,无法做到有效的校验及安全性防护。
3.文献号为cn201410780458的发明专利《一种基于密码的进程认证方法》通过为进程设置认证密码,根据认证密码计算进程的hmac值并存储到扩展属性中,预先在操作系统中设置密码获取控制开关并配置密码获取控制开关状态;在收到进程的操作请求后,根据密码获取控制开关来判断是否需要进行密码验证,当需要进行密码验证时获取认证密码,基于认证密码计算进程的hmac值,将计算得到的hmac值、进程的扩展属性中的hmac值进行比较,如果两者相同,则判定该进程密码认证成功并继续进程的操作请求,否则拒绝进程的操作请求。文献号为cn201710829211的发明专利《在移动平台上快速打开信息安全设备应用的方法及系统》:当检测到有信息安全设备连接到移动app上时,根据该信息安全设备的设备码判断该信息安全设备是否为第一次连接,是则保存该信息安全设备上的数据至信息安全设备移动app,计算数据hmac值;当检测到信息安全设备为再次连接时,检测在移动app上是否有该信息安全设备的缓存数据,如果有则计算该缓存数据的hmac值,判断该hmac值是否与hmac2一致,如果一致则执行下一步;直接调用移动app上保存的数据。
4.现有技术对固件包的完整性保护性弱,在qkd设备内,没有对设备固件进行校验,即使设备固件被篡改,也无法得知,也没有通过算法类措施对设备固件进行计算校验比对,无法做到对设备固件的保护。


技术实现要素:

5.本发明所要解决的技术问题在于如何对qkd设备的固件完整性进行较强的保护。
6.本发明通过以下技术手段实现解决上述技术问题的:一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,包括:
7.约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致;
8.所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到sm3_hmac值,并将所述sm3_hmac值预置所述安全芯片中;
9.将设备固件放入qkd设备中,设备上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,
比对一致,说明该设备固件完整,并运行该设备固件,比对不一致,说明该设备固件有问题。
10.本发明提前约定pc端计算软件与安全芯片内部的sm3_hmac密钥,确保sm3_hmac算法的输入一致性。本方案提出基于sm3_hmac算法的qkd设备的固件校验方案,使用安全芯片调用sm3_hmac算法对固件包进行处理,得到sm3_hmac处理结果,若一致,则固件校验成功,本方案通过硬件(安全芯片)和软件(sm3_hmac算法)方法实现对设备固件的完整性校验,保护了qkd设备的固件完整性及安全性,避免了设备固件缺损导致的qkd设备被攻击现象。
11.在更具体的技术方案中,所述约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致的步骤,包括:
12.获取所述pc端和所述安全芯片的设备数据;
13.获取所述pc端和所述安全芯片的一致密钥数据,据以获得所述sm3_hmac密钥;
14.根据所述设备数据将所述sm3_hmac密钥设为所述pc端和所述安全芯片的一致性密钥。
15.在更具体的技术方案中,所述一致性密钥的大小为16字节。
16.在更具体的技术方案中,所述安全芯片将所述sm3_hmac值存储到指定的flash地址中。
17.在更具体的技术方案中,所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到sm3_hmac值,具体包括:
18.获取并处理所述一致sm3_hmac密钥与认证索引,据以得到第一输出数据和第二输出数据;
19.获取设备固件待处理数据;
20.处理所述第一输出数据和所述设备固件待处理数据,据以得到第一次sm3待处理数据;
21.以sm3算法处理所述第一次sm3待处理数据,据以得到一次哈希数据;
22.以sm3算法处理一次哈希数据与所述第二输出数据,据以得到第二次sm3待处理数据;
23.以sm3算法处理所述第二次sm3待处理数据,据以得到所述sm3_hmac处理结果。
24.在更具体的技术方案中,所述将设备固件放入qkd设备中,设备上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,包括:
25.步骤31、对所述qkd设备上电;
26.步骤32、qkd设备内的固件校验软件读取所述安全芯片中存储的sm3_hmac值;
27.步骤33、以所述固件校验软件读取所述设备固件的固件大小数据并送入所述安全芯片中,所述安全芯片利用sm3_hmac算法,根据约定的一致sm3_hmac密钥处理所述设备固件,据以得到所述设备固件的sm3_hmac计算结果;
28.步骤34、固件校验软件将步骤32读取的所述安全芯片中存储的sm3_hmac值,与步骤s33中处理得到的所述设备固件的sm3_hmac计算结果相比较,比较一致,进入步骤s35,比对不一致,进入步骤s36;
29.步骤35、若结果一致,固件校验软件产生一个特定标志文件,并进入步骤s37;
30.步骤36、若结果不一致,则说明设备固件有问题,不会触发操作系统产生特定标志
文件,操作系统也不会对设备固件进行处理,无法得到qkd业务软件,qkd设备无法正常运行;
31.步骤37、操作系统对设备固件进行处理后,得到qkd业务软件并运行它。
32.在更具体的技术方案中,所述步骤36中,qkd设备点亮故障灯,设备进入人工检修状态。
33.本发明还提供一种基于sm3_hmac算法的qkd设备的固件完整性校验系统,所述系统包括:
34.密钥约定模块:用来约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致;
35.设备固件处理模块:所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到sm3_hmac值,并将所述sm3_hmac值预置所述安全芯片中,所述安全芯片再将其存储到指定的flash地址中;
36.校验模块,将设备固件放入qkd设备中,设备固件上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,比对一致,说明该设备固件完整,并运行该设备固件,比对不一致,说明该设备固件有问题。
37.在更具体的技术方案中,所述密钥约定模块包括:
38.设备数据获取单元,用来获取所述pc端和所述安全芯片的设备数据;
39.sm3_hmac密钥获取单元,用来获取所述pc端和所述安全芯片的一致密钥数据,据以获得所述sm3_hmac密钥;
40.密钥设置单元,根据所述设备数据将所述sm3_hmac密钥设为所述pc端和所述安全芯片的一致性密钥。
41.在更具体的技术方案中,所述设备固件处理模块具体包括:
42.上电单元,对所述qkd设备上电;
43.sm3_hmac值读取单元,qkd设备内的固件校验软件读取所述安全芯片中存储的sm3_hmac值;
44.sm3_hmac计算单元,以所述固件校验软件读取所述设备固件的固件大小数据并送入所述安全芯片中,所述安全芯片利用sm3_hmac算法,根据密钥约定模块约定的一致sm3_hmac密钥处理所述设备固件,据以得到所述设备固件的sm3_hmac计算结果;
45.比较单元,固件校验软件将sm3_hmac值读取单元读取的所述安全芯片中存储的sm3_hmac值,与步骤s33中处理得到的所述设备固件的sm3_hmac计算结果相比较,比较一致,进入特定标志文件产生单元,比对不一致,进入报警单元;
46.特定标志文件产生单元,若结果一致,固件校验软件产生一个特定标志文件,并进入运行单元;
47.报警单元,若结果不一致,则说明设备固件有问题,不会触发操作系统产生特定标志文件,操作系统也不会对设备固件进行处理,无法得到qkd业务软件,qkd设备无法正常运行;
48.运行单元,操作系统对设备固件进行处理后,得到qkd业务软件并运行它。
49.本发明相比现有技术具有以下优点:
50.本发明提供的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法本发明提前约定pc端计算软件与安全芯片内部的sm3_hmac密钥(大小为16字节),确保sm3_hmac算法的输入一致性。本方案提出基于sm3_hmac算法的qkd设备的固件校验方案,使用安全芯片调用sm3_hmac算法对固件包进行处理,得到32字节的sm3_hmac的处理结果,若一致,则固件校验成功,本方案通过硬件(安全芯片)和软件(sm3_hmac算法)方法实现对设备固件的完整性校验,保护了qkd设备的固件完整性及安全性,避免了设备固件缺损导致的qkd设备被攻击现象。
附图说明
51.图1是现有的sm3_hmac算法的处理流程示意图;
52.图2是本发明实施例中sm3_hmac计算结果比对示意图;
53.图3是本发明实施例中qkd设备的固件完整性校验流程图。
具体实施方式
54.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.实施例一:
56.sm3_hmac算法介绍:
57.sm3_hmac算法是依据sm3算法为基础,添加了16字节的认证密钥,在进行处理前,将16字节的认证密钥与待处理数据作为输入变量,返回值为32字节的sm3_hmac值。
58.如图1所示,sm3_hmac算法的具体处理流程如下:
59.首先收到sm3_hmac处理指令;
60.将认证密钥与认证索引数据进行处理;
61.得到输出一ipad和输出二opad;
62.将输出一ipad与待处理数据进行处理,得到第一次sm3待处理数据;
63.随后进行sm3处理,处理成功,则得到第一次处理的32字节的hash值,处理不成功,则结束算法;
64.将得到的第一次处理的32字节的hash值与输出二opad进行处理,得到第二次sm3待处理数据;
65.再次进行sm3处理,处理成功,则得到第二次处理的32字节的hash值,此次hash值就是sm3_hmac值,处理不成功,则结束算法。
66.如图2和图3所示,本发明基于sm3_hmac算法的qkd设备的固件完整性校验方法包括以下步骤:
67.步骤s1、约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致;
68.具体包括:
69.获取所述pc端和所述安全芯片的设备数据;
70.获取所述pc端和所述安全芯片的一致密钥数据,据以获得所述sm3_hmac密钥;
71.根据所述设备数据将所述sm3_hmac密钥设为所述pc端和所述安全芯片的一致性密钥,所述一致性密钥的大小为16字节。
72.步骤s2、所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到32字节的sm3_hmac值,并将所述32字节的sm3_hmac值预置所述安全芯片中,所述安全芯片再将其存储到指定的flash地址中;
73.在pc端,使用专用的计算软件对设备固件进行sm3_hmac处理,处理成功后,将sm3_hmac处理结果预置到安全芯片内部指定的非易失性存储区中,用以与固件sm3_hmac计算结果进行安全比对,从而保障安全固件的完整性。
74.所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到32字节的sm3_hmac值,具体采用上述公开的sm3_hmac算法,包括:
75.获取并处理所述一致sm3_hmac密钥与认证索引,据以得到第一输出数据和第二输出数据;
76.获取设备固件待处理数据;
77.处理所述第一输出数据和所述设备固件待处理数据,据以得到第一次sm3待处理数据;
78.以sm3算法处理所述第一次sm3待处理数据,据以得到一次哈希数据;
79.以sm3算法处理一次哈希数据与所述第二输出数据,据以得到第二次sm3待处理数据;
80.以sm3算法处理所述第二次sm3待处理数据,据以得到所述sm3_hmac处理结果。
81.步骤s3、将设备固件放入qkd设备中,设备上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,比对一致,说明该设备固件完整,并运行该设备固件,比对不一致,说明该设备固件有问题,需要进行检修。
82.本发明提前约定pc端计算软件与安全芯片内部的sm3_hmac密钥(大小为16字节)一致,确保sm3_hmac算法的输入一致性。
83.如图3所示,该步骤具体包括:
84.步骤31、对所述qkd设备上电;
85.步骤32、qkd设备内的固件校验软件读取所述安全芯片中存储的sm3_hmac值,即步骤s2中得到的32字节的sm3_hmac值;
86.步骤33、以所述固件校验软件读取所述设备固件的固件大小数据并送入所述安全芯片中,所述安全芯片利用sm3_hmac算法,根据步骤s1约定的一致sm3_hmac密钥处理所述设备固件,据以得到所述设备固件的sm3_hmac计算结果;
87.步骤34、固件校验软件将步骤32读取的所述安全芯片中存储的sm3_hmac值,与步骤s33中处理得到的所述设备固件的sm3_hmac计算结果相比较,比较一致,进入步骤s35,比对不一致,进入步骤s36;
88.步骤35、若结果一致,固件校验软件产生一个特定标志文件,并进入步骤s37;
89.步骤36、若结果不一致,则说明设备固件有问题,不会触发操作系统产生特定标志文件,操作系统也不会对设备固件进行处理,无法得到qkd业务软件,qkd设备无法正常运行,此时qkd设备点亮故障灯,设备进入人工检修状态;
90.步骤37、操作系统对设备固件进行处理后,得到qkd业务软件并运行它。
91.综上,本发明提供的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,提前约定pc端计算软件与安全芯片内部的sm3_hmac密钥(大小为16字节),确保sm3_hmac算法的输入一致性。本方案提出基于sm3_hmac算法的qkd设备的固件校验方案,使用安全芯片调用sm3_hmac算法对固件包进行处理,得到32字节的sm3_hmac的处理结果,若一致,则固件校验成功,本方案通过硬件(安全芯片)和软件(sm3_hmac算法)方法实现对设备固件的完整性校验,保护了qkd设备的固件完整性及安全性,避免了设备固件缺损导致的qkd设备被攻击现象。
92.实施例二:
93.本实施例提供一种基于sm3_hmac算法的qkd设备的固件完整性校验系统,包括以下模块:
94.密钥约定模块:用来约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致;
95.具体包括:
96.设备数据获取单元,用来获取所述pc端和所述安全芯片的设备数据;
97.sm3_hmac密钥获取单元,用来获取所述pc端和所述安全芯片的一致密钥数据,据以获得所述sm3_hmac密钥;
98.密钥设置单元,根据所述设备数据将所述sm3_hmac密钥设为所述pc端和所述安全芯片的一致性密钥,所述一致性密钥的大小为16字节。
99.设备固件处理模块:所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到32字节的sm3_hmac值,并将所述32字节的sm3_hmac值预置所述安全芯片中,所述安全芯片再将其存储到指定的flash地址中;
100.在pc端,使用专用的计算软件对设备固件进行sm3_hmac处理,处理成功后,将sm3_hmac处理结果预置到安全芯片内部指定的非易失性存储区中,用以与固件sm3_hmac计算结果进行安全比对,从而保障安全固件的完整性。
101.所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到32字节的sm3_hmac值,具体采用上述公开的sm3_hmac算法,包括:
102.获取并处理所述一致sm3_hmac密钥与认证索引,据以得到第一输出数据和第二输出数据;
103.获取设备固件待处理数据;
104.处理所述第一输出数据和所述设备固件待处理数据,据以得到第一次sm3待处理数据;
105.以sm3算法处理所述第一次sm3待处理数据,据以得到一次哈希数据;
106.以sm3算法处理一次哈希数据与所述第二输出数据,据以得到第二次sm3待处理数据;
107.以sm3算法处理所述第二次sm3待处理数据,据以得到所述sm3_hmac处理结果。
108.校验模块,将设备固件放入qkd设备中,设备固件上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,比对一致,说明该设备固件完整,并运行该设备固件,比对不一致,说
明该设备固件有问题,需要进行检修。
109.本发明提前约定pc端计算软件与安全芯片内部的sm3_hmac密钥(大小为16字节)一致,确保sm3_hmac算法的输入一致性。
110.如图3所示,该设备固件处理模块具体包括:
111.上电单元,对所述qkd设备上电;
112.sm3_hmac值读取单元,qkd设备内的固件校验软件读取所述安全芯片中存储的sm3_hmac值,即步骤s2中得到的32字节的sm3_hmac值;
113.sm3_hmac计算单元,以所述固件校验软件读取所述设备固件的固件大小数据并送入所述安全芯片中,所述安全芯片利用sm3_hmac算法,根据密钥约定模块约定的一致sm3_hmac密钥处理所述设备固件,据以得到所述设备固件的sm3_hmac计算结果;
114.比较单元,固件校验软件将sm3_hmac值读取单元读取的所述安全芯片中存储的sm3_hmac值,与步骤s33中处理得到的所述设备固件的sm3_hmac计算结果相比较,比较一致,进入特定标志文件产生单元,比对不一致,进入报警单元;
115.特定标志文件产生单元,若结果一致,固件校验软件产生一个特定标志文件,并进入运行单元;
116.报警单元,若结果不一致,则说明设备固件有问题,不会触发操作系统产生特定标志文件,操作系统也不会对设备固件进行处理,无法得到qkd业务软件,qkd设备无法正常运行,此时qkd设备点亮故障灯,设备进入人工检修状态;
117.运行单元,操作系统对设备固件进行处理后,得到qkd业务软件并运行它。
118.综上,本发明提供的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,提前约定pc端计算软件与安全芯片内部的sm3_hmac密钥(大小为16字节),确保sm3_hmac算法的输入一致性。本方案提出基于sm3_hmac算法的qkd设备的固件校验方案,使用安全芯片调用sm3_hmac算法对固件包进行处理,得到32字节的sm3_hmac的处理结果,若一致,则固件校验成功,本方案通过硬件(安全芯片)和软件(sm3_hmac算法)方法实现对设备固件的完整性校验,保护了qkd设备的固件完整性及安全性,避免了设备固件缺损导致的qkd设备被攻击现象。
119.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,其特征在于,包括:约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致;所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到sm3_hmac值,并将所述sm3_hmac值预置所述安全芯片中;将设备固件放入qkd设备中,设备固件上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,比对一致,说明该设备固件完整,并运行该设备固件,比对不一致,说明该设备固件有问题。2.根据权利要求1所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,其特征在于,所述约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致的步骤,包括:获取所述pc端和所述安全芯片的设备数据;获取所述pc端和所述安全芯片的一致密钥数据,据以获得所述sm3_hmac密钥;根据所述设备数据将所述sm3_hmac密钥设为所述pc端和所述安全芯片的一致性密钥。3.根据权利要求2所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,其特征在于,所述一致性密钥的大小为16字节。4.根据权利要求1所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,其特征在于,所述安全芯片将所述sm3_hmac值存储到指定的flash地址中。5.根据权利要求1所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,其特征在于,所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到sm3_hmac值,具体包括:获取并处理一致的sm3_hmac密钥与认证索引,据以得到第一输出数据和第二输出数据;获取设备固件待处理数据;处理所述第一输出数据和所述设备固件待处理数据,据以得到第一次sm3待处理数据;以sm3算法处理所述第一次sm3待处理数据,据以得到一次哈希数据;以sm3算法处理一次哈希数据与所述第二输出数据,据以得到第二次sm3待处理数据;以sm3算法处理所述第二次sm3待处理数据,据以得到所述sm3_hmac处理结果。6.根据权利要求1所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,其特征在于,所述将设备固件放入qkd设备中,设备上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,包括:步骤31、对所述qkd设备上电;步骤32、qkd设备内的固件校验软件读取所述安全芯片中存储的sm3_hmac值;步骤33、以所述固件校验软件读取所述设备固件的固件大小数据并送入所述安全芯片中,所述安全芯片利用sm3_hmac算法,根据约定的一致sm3_hmac密钥处理所述设备固件,据以得到所述设备固件的sm3_hmac计算结果;步骤34、固件校验软件将步骤32读取的所述安全芯片中存储的sm3_hmac值,与步骤s33中处理得到的所述设备固件的sm3_hmac计算结果相比较,比较一致,进入步骤s35,比对不一致,进入步骤s36;
步骤35、若结果一致,固件校验软件产生一个特定标志文件,并进入步骤s37;步骤36、若结果不一致,则说明设备固件有问题,不会触发操作系统产生特定标志文件,操作系统也不会对设备固件进行处理,无法得到qkd业务软件,qkd设备无法正常运行;步骤37、操作系统对设备固件进行处理后,得到qkd业务软件并运行它。7.根据权利要求6所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验方法,其特征在于,所述步骤36中,qkd设备点亮故障灯,设备进入人工检修状态。8.一种基于sm3_hmac算法的qkd设备的固件完整性校验系统,其特征在于,所述系统包括:密钥约定模块:用来约定专用pc端的计算软件与安全芯片内部的sm3_hmac密钥一致;设备固件处理模块:所述pc端的计算软件使用sm3_hmac算法处理所述设备固件,以得到sm3_hmac值,并将所述sm3_hmac值预置所述安全芯片中,所述安全芯片再将其存储到指定的flash地址中;校验模块,将设备固件放入qkd设备中,设备固件上电后,调用安全芯片的sm3_hmac算法对设备固件进行处理,得到sm3_hmac计算结果,然后与所述安全芯片中预置的sm3_hmac值进行比对,比对一致,说明该设备固件完整,并运行该设备固件,比对不一致,说明该设备固件有问题。9.如权利要求8所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验系统,其特征在于,所述密钥约定模块包括:设备数据获取单元,用来获取所述pc端和所述安全芯片的设备数据;sm3_hmac密钥获取单元,用来获取所述pc端和所述安全芯片的一致密钥数据,据以获得所述sm3_hmac密钥;密钥设置单元,根据所述设备数据将所述sm3_hmac密钥设为所述pc端和所述安全芯片的一致性密钥。10.如权利要求8所述的一种基于sm3_hmac算法的qkd设备的固件完整性校验系统,其特征在于,所述设备固件处理模块具体包括:上电单元,对所述qkd设备上电;sm3_hmac值读取单元,qkd设备内的固件校验软件读取所述安全芯片中存储的sm3_hmac处理结果;sm3_hmac计算单元,以所述固件校验软件读取所述设备固件的固件大小数据并送入所述安全芯片中,所述安全芯片利用sm3_hmac算法,根据密钥约定模块约定的所述一致sm3_hmac密钥处理所述设备固件,据以得到所述设备固件的sm3_hmac计算结果;比较单元,固件校验软件将sm3_hmac值读取单元读取的所述安全芯片中存储的sm3_hmac值,与步骤s33中处理得到的所述设备固件的sm3_hmac计算结果相比较,比较一致,进入特定标志文件产生单元,比对不一致,进入报警单元;特定标志文件产生单元,若结果一致,固件校验软件产生一个特定标志文件,并进入运行单元;报警单元,若结果不一致,则说明设备固件有问题,不会触发操作系统产生特定标志文件,操作系统也不会对设备固件进行处理,无法得到qkd业务软件,qkd设备无法正常运行;运行单元,操作系统对设备固件进行处理后,得到qkd业务软件并运行它。

技术总结
本发明提供一种基于SM3_HMAC算法的量子密钥分发设备的固件完整性校验方法及系统包括:约定PC端计算软件与安全芯片内部的一致SM3_HMAC密钥;以所述PC端处理所述设备固件,以得到并预置SM3_HMAC处理结果至所述安全芯片中;以所述量子密钥分发设备计算所述设备固件,以得到并返回固件SM3_HMAC计算结果至所述固件校验软件;以所述固件校验软件比对所述固件SM3_HMAC计算结果与所述安全芯片预置值,以得到量子密钥分发启动数据。本发明具有以下优点:本发明通过硬件和软件结合的方法,避免了在QKD设备内,设备固件被篡改的风险,保证了设备固件的完整性及安全性。备固件的完整性及安全性。备固件的完整性及安全性。


技术研发人员:张鑫 程林 孙德 唐世彪 栗帅
受保护的技术使用者:科大国盾量子技术股份有限公司
技术研发日:2021.12.31
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐