一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

操作系统的安全启动方法、装置及电子设备与流程

2022-03-01 22:15:26 来源:中国专利 TAG:


1.本技术涉及密码算法技术领域,具体涉及一种用于操作系统的安全启动方法、装置、电子设备及计算机可读介质。


背景技术:

2.pc机的操作系统在启动过程中,存在系统启动代码被篡改的风险。为了保证操作系统的安全启动,需要在pc机中设置额外的专用安全硬件,例如se(security element)、tpm(trusted platform module)等。通过专用安全硬件进行安全启动的过程如下:
3.使用安全硬件生成密钥,并将密钥存储在安全硬件中;
4.cpu将需要解密的密文形式的系统启动代码传入安全硬件中;
5.安全硬件使用已存储的密钥对密文形式的系统启动代码进行解密得到明文形式的系统启动代码;
6.安全硬件将明文形式的系统启动代码传回cpu;
7.cpu加载运行系统启动代码完成系统启动。
8.在上述过程中,由于安全硬件的性能有限,只能对少量系统启动代码进行加、解密处理,且处理速度较慢。此外,安全硬件往往不是pc机的标准配置,在经济性和技术通用性上具有很大局限性。


技术实现要素:

9.本技术旨在提供一种操作系统的安全启动方法,不需要专用的安全硬件即可实现操作系统的安全启动。
10.根据本技术的第一方面,提供一种用于操作系统的安全启动方法,包括:
11.操作系统上电后,在运算加速单元中根据其sram的初始数据获得第二密钥;
12.运算加速单元从cpu中获取密文形式的第一密钥和密文形式的系统启动代码;
13.在运算加速单元中,采用第一解密算法使用所述第二密钥对所述密文形式的第一密钥进行解密,获得明文形式的第一密钥;
14.在运算加速单元中,采用第二解密算法使用所述明文形式的第一密钥对所述加密的系统启动代码进行解密,获得所述明文形式的系统启动代码并传输至cpu。
15.根据本技术的一些实施例,所述运算加速单元包括:gpu或ai芯片。
16.根据本技术的一些实施例,在运算加速单元中根据其sram的初始数据获得第二密钥,包括:
17.使用fuzzy extractor算法从所述sram的初始数据中提取所述第二密钥。
18.根据本技术的一些实施例,所述安全启动方法,还包括:
19.获得所述第二密钥之后,对所述sram进行初始化,清除上电后sram的初始数据。
20.根据本技术的一些实施例,所述第一解密算法、所述第二解密算法包括:
21.des算法、后量子密码算法、全同态密码算法中的一种。
22.根据本技术的一些实施例,所述安全启动方法,还包括:
23.出厂时,操作系统上电后,在运算加速单元中获取所述第二密钥;
24.在运算加速单元中,采用第一加密算法使用所述第二密钥对所述明文形式的第一密钥进行加密,获得密文形式的第一密钥并传输至cpu进行本地存储;
25.在运算加速单元中,采用第二加密算法使用所述明文形式的第一密钥对所述系统启动代码进行加密,获得密文形式的系统启动代码并传输至cpu进行本地存储。
26.根据本技术的一些实施例,所述第一加密算法、所述第二加密算法包括:
27.aes算法、后量子密码算法、全同态密码算法中的一种。
28.根据本技术的一些实施例,所述安全启动方法,还包括:
29.所述系统启动代码传输至cpu后,销毁运算加速单元中的所述明文形式的第一密钥和所述第二密钥。
30.根据本技术的第二方面,提供一种操作系统的安全启动装置,包括:
31.密钥生成模块,用于操作系统上电后,在运算加速单元中根据其sram的初始数据获得第二密钥;
32.数据传输模块,用于运算加速单元从cpu中获取密文形式的第一密钥和密文形式的系统启动代码;
33.第一解密模块,用于在运算加速单元中采用第一解密算法使用所述第二密钥对所述密文形式的第一密钥进行解密,获得明文形式的第一密钥;
34.第二解密模块,用于在运算加速单元中,采用第二解密算法使用所述明文形式的第一密钥对所述密文形式的系统启动代码进行解密,获得明文形式的系统启动代码并传输至cpu。
35.根据本技术的一些实施例所述安全启动装置,还包括:
36.启动设置模块,用于在运算加速单元中获得密文形式的系统启动代码和密文形式的第一密钥。
37.根据本技术的一些实施例,所述启动设置模块包括:
38.第一加密模块,用于在运算加速单元中,采用第一加密算法使用所述第二密钥对所述明文形式的第一密钥进行加密,获得密文形式的第一密钥并传输至cpu进行本地存储;
39.第二加密模块,用于采用第二加密算法使用所述明文形式的第一密钥对所述系统启动代码进行加密,获得密文形式的系统启动代码并传输至cpu进行本地存储。
40.根据本技术的第三方面,提供一种电子设备,包括:
41.一个或多个中央处理单元;
42.一个或多个运算加速单元;
43.第一存储装置和第二存储装置,分别用于存储一个或多个程序;当所述一个或多个程序分别被所述一个或多个处理器和gpu执行,使得所述一个或多个中央处理单元和运算加速单元实现上述安全启动方法。
44.根据本技术的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述安全启动方法。
45.本技术提供的操作系统的安全启动方法,能够产生以下有益效果:
46.利用通用硬件,例如gpu来实现操作系统的安全启动,不需要额外的专用安全硬
件,具有更好的经济性和通用性;
47.由于gpu运算能力远远强于专用安全硬件,所述安全启动方法中的加、解密速度更快,可以处理更多的系统启动代码,实现更快速、更安全的安全启动方案。
48.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。
附图说明
49.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例。
50.图1示出根据本技术示例实施例的安全启动方法流程图。
51.图2示出根据本技术另一示例实施例的安全启动方法流程图。
52.图3示出根据本技术示例实施例的安全启动装置组成框图。
53.图4示出根据本技术另一示例实施例的安全启动装置组成框图。
54.图5示出根据本技术示例实施例的安全启动电子设备组成框图。
具体实施方式
55.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例。提供这些实施例是为使得本技术更全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
56.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
57.本领域技术人员可以理解,附图只是示例实施例的示意图,可能不是按比例的。附图中的模块或流程并不一定是实施本技术所必须的,因此不能用于限制本技术的保护范围。
58.通用图形处理器(general-purpose computing on graphics processing units,简称gpgpu)技术是一种利用处理图形任务的图形处理器(gpu)来计算原本由中央处理器(cpu)处理的通用计算任务的技术。由于现代图形处理器(gpu)强大的并行处理能力和可编程流水线,指令流处理器可以处理非图形数据。特别在面对数据处理的运算量远大于数据调度和传输的需要时,通用图形处理器(gpu)在性能上大大超越了传统的中央处理器(cpu)应用程序。gpgpu技术在密码算法实现中已有广泛的应用,不少传统的密码算法如des、aes等以及前沿的后量子密码算法、全同态密码算法都选择使用gpgpu技术来实现加速。已有的gpgpu编程语言包括opengl,cuda和opencl等,其程序执行流程一般是将数据从cpu传入gpu,在gpu中处理数据,再将处理结果从gpu传回cpu。由于pc机的主程序都在cpu中运行,gpu处理数据的过程及中间结果均不可直接访问,因此相比cpu来说gpu可视为安全执行环境。
59.物理不可克隆函数(physical unclonable function,简称puf)是一种硬件安全技术,是半导体制造过程中自然发生的不可克隆的物理变化,是一种“数字指纹”,用作半导体设备(如微处理器)的唯一身份。在密码技术中,使用物理不可克隆函数的基本好处是其“唯一性”和“不可预测性”。gpu sram上电后的初始数据就是一种puf。对于不同的gpu芯片,其sram在上电后、初始化前存储的初始数据都不一样。通过fe(fuzzy extractor)算法可以从中提取出稳定的随机数据。提取出的随机数据对于不同的gpu芯片而言是唯一的,且在gpu sram初始化后无法获得,需要再次上电、在初始化前通过运行fe算法获得。
60.因此,在本技术提供的操作系统的安全启动方法中,将通过fe(fuzzy extractor)算法从gpu sram的初始数据中提取的随机数据,作为安全启动密钥,不需要额外的专用安全硬件即可实现操作系统的安全系统。此外,本技术提供的所述安全启动方法,并不局限于pc机。凡是具有cpu和gpu处理器的终端,都可以采用所述安全启动方法,进行安全启动。
61.在本技术提供的操作系统的安全启动方法,不局限于gpu。具有sram、良好运算性能的运算加速单元都可以实现所述安全启动方法。本文中,以pc机、gpu为例,结合附图对本技术的技术方案进行描述。
62.图1示出根据本技术示例实施例的安全启动方法流程图。
63.根据本技术的第一方面,提供一种操作系统的安全启动方法。如图1所示,所述安全启动方法包括:
64.在步骤s110,操作系统上电后,在gpu中根据gpu sram的初始数据获得第二密钥。
65.在操作系统上电后,gpu sram的初始数据是一种puf。对于不同的gpu芯片,其sram在上电后、初始化前存储的初始数据都不一样。通过fe(fuzzy extractor)算法可以从中提取出稳定的随机数据。提取出的随机数据对于不同的gpu芯片而言是唯一的,且在gpu sram初始化后无法获得,需要再次上电、在初始化前通过运行fe算法获得。
66.因此,将通过fe(fuzzy extractor)算法从gpu sram的初始数据中提取的随机数据,作为安全启动的第二密钥,不需要额外的专用安全硬件即可实现操作系统的安全系统。
67.在步骤s120,gpu从cpu中获取密文形式的第一密钥和密文形式的系统启动代码。
68.使用本技术提供的安全启动方法,需要对pc机在出厂时,进行预先设置。在预先设置过程中,将需要进行加密的系统启动代码和用于对所述系统启动代码进行加密或解密的第一密钥传输至gpu。
69.操作系统上电后,在gpu中根据gpu sram的初始数据获得所述第二密钥。在gpu中,采用第一加密算法使用所述第二密钥对所述第一密钥进行加密,获得密文形式的第一密钥。再采用第二加密算法使用所述明文形式的第一密钥对所述系统启动代码进行加密,获得密文形式的系统启动代码。密文形式的第一密钥和密文形式的系统启动代码传输至cpu进行本地存储,即可完成安全启动设置。第一加密算法、第二加密算法可以是aes算法、后量子密码算法、全同态密码算法中的一种。第一加密算法和第二加密算法可以相同也可以不同。
70.在每一次的启动过程中,操作系统上电后,存储在本地的密文形式的第一密钥和密文形式的系统启动代码传输至gpu,用于执行安全启动过程。
71.在步骤s130,在gpu中,采用第一解密算法使用所述第二密钥对所述密文形式的第一密钥进行解密,获得明文形式的第一密钥。密文形式的第一密钥传输至gpu后,采用所述
第一解密算法、使用所述第二密钥即可实现对第一密钥的解密,获得明文形式的第一密钥。根据申请的一些实施例,第一解密算法可以是des算法、后量子密码算法、全同态密码算法中的一种。
72.在步骤s140,在gpu中,采用第二解密算法使用所述明文形式的第一密钥对所述密文形式的系统启动代码进行解密,获得明文形式的系统启动代码并传输至cpu。
73.密文形式的系统启动代码传输至gpu后,采用所述第二解密算法、使用所述明文形式的第一密钥即可实现对启动代码的解密,获得明文形式的启动代码。根据申请的一些实施例,第一解密算法可以是des算法、后量子密码算法、全同态密码算法中的一种。第一解密算法和第二解密算法可以相同也可以不同。
74.系统启动代码从gpu传输至cpu。cpu加载运行所述系统启动代码,完成操作系统的安全启动。
75.图2示出根据本技术另一示例实施例的安全启动方法流程图。
76.根据本技术的另一实施例,如图2所示,所述安全启动方法还包括:
77.在步骤s150,获得所述第二密钥之后,对gpu sram进行初始化,清除上电后sram的初始数据。gpu sram经过初始化后,其中的初始数据就被销毁。只能在下一次操作系统上电后、gpu sram初始化之前获取所述第二密钥,从而可保证第二密钥的安全性。此外,由于fuzzy extractor算法自身的特性,可保证对于同一个gpu,每次上电后提取的随机数据是一致的,即每提取的第二密码是一致的。
78.根据本技术的一些实施例,gpu sram的初始化既可以在安全启动过程中,也可以在安全启动完成后进行。
79.在步骤s160,完成所述安全启动后,销毁gpu中所述明文形式的第一密钥和所述第二密钥。
80.图3示出根据本技术示例实施例的安全启动装置组成框图。
81.根据本技术的第二方面,提供一种操作系统的安全启动装置300。如图3所示,安全启动装置300包括:密钥生成模块310、数据传输模块320、第一解密模块330和第二解密模块340。
82.密钥生成模块310,用于操作系统上电后,在gpu中根据gpu sram的初始数据获得第二密钥。
83.操作系统上电后,gpu sram的初始数据是一种puf。对于不同的gpu芯片,其sram在上电后、初始化前存储的初始数据都不一样。通过fe(fuzzy extractor)算法可以从中提取出稳定的随机数据。提取出的随机数据对于不同的gpu芯片而言是唯一的,且在gpu sram初始化后无法获得,需要再次上电、在初始化前通过运行fe算法获得。因此,将通过fe(fuzzy extractor)算法从gpu sram的初始数据中提取的随机数据,可作为安全启动的第二密钥。
84.数据传输模块320,用于gpu从cpu中获取密文形式的第一密钥和密文形式的系统启动代码。
85.第一密钥和系统启动代码在cpu中进行本地存储。通过预先设置,可以获得密文形式的系统启动代码、密文形式的第一密钥,并在本地进行存储。密文形式的系统启动代码可以使用第一密钥进行解密。密文形式的第一密钥其密钥可以使用第二密钥进行解密。
86.在安全启动过程中,密文形式的系统启动代码和密文形式的第一密钥传输至gpu,
进行解密。
87.第一解密模块330,用于在gpu中采用第一解密算法使用所述第二密钥对所述密文形式的第一密钥进行解密,获得明文形式的第一密钥。
88.第二解密模块340,用于采用第二解密算法使用所述明文形式的第一密钥对所述密文形式的系统启动代码进行解密,获得明文形式的系统启动代码并传输至cpu。
89.图4示出根据本技术另一示例实施例的安全启动装置组成框图。
90.根据本技术的另一实施例,如图4所示,安全启动装置300还可以包括启动设置模块350,用于在gpu中,获得密文形式的系统启动代码和密文形式的第一密钥。
91.安全启动设置类似于pc机的出厂设置。在所述安全启动设置过程中,首先,需要进行加密的系统启动代码和用于对所述系统启动代码进行加密或解密的明文形式的第一密钥传输至gpu。在gpu中,采用第一加密算法使用所述第二密钥对所述明文的第一密钥进行加密,获得所述密文形式的第一密钥。然后,采用第二加密算法使用所述明文形式的第一密钥对所述明文形式的系统启动代码进行加密,获得密文形式的系统启动代码。密文形式的第一密钥和密文形式的系统启动代码传输至cpu进行本地存储,即可完成安全启动设置。
92.图5示出根据本技术示例实施例的安全启动电子设备组成框图。
93.本技术还提供一种操作系统的安全启动电子设备700。图5显示的电子设备700仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
94.如图5所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个中央处理单元710、至少一个第一存储单元720、至少一个运算加速单元730、至少一个第二存储单元740、连接不同系统组件的总线770等。中央处理单元710与运算加速单元730之间进行数据通讯。
95.第一存储单元720存储有程序代码,程序代码可以被中央处理单元710执行,使得中央处理单元710执行本说明书描述的根据本技术各实施例的方法。
96.第一存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(rom)7203。
97.第一存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
98.第二存储单元740存储有程序代码,程序代码可以被运算加速单元730执行,使得运算加速单元730执行本说明书描述的根据本技术各实施例的方法。
99.第二存储单元740包括sram,还可以包括一组(至少一个)程序模块7403的程序/实用工具7402,这样的程序模块7403包括但不限于:一个或者多个应用程序、其它程序模块以及程序数据。
100.总线770可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
101.电子设备700也可以与一个或多个外部设备7001(例如触摸屏、键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调
制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
102.本技术还提供一种计算机可读介质,其上存储有计算机程序,所述程被处理器执行时实现上述安全启动方法。
103.本技术提供的操作系统的安全启动方法,利用了gpu在上电后、初始化前的puf特性,以及gpu强大的处理能力,通过gpu来实现操作系统的安全启动,不需要额外的专用安全硬件,具有更好的经济性和通用性;由于gpu运算能力远远强于专用安全硬件,所述安全启动方法中的加、解密速度更快,可以处理更多的系统启动代码,实现更快速、更安全的安全启动方案。
104.需要说明的是,以上参照附图所描述的每个实施例仅用以说明本技术而非限制本技术的范围,本领域的普通技术人员应当理解,在不脱离本技术的精神和范围的前提下对本技术进行的修改或者等同替换,均应涵盖在本技术的范围之内。此外,除上下文另有所指外,以单数形式出现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施例的全部或一部分可结合任何其它实施例的全部或一部分来使用。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献