CN112612486B - 存储器烧录方法、装置和待烧录芯片 - Google Patents
存储器烧录方法、装置和待烧录芯片 Download PDFInfo
- Publication number
- CN112612486B CN112612486B CN202011574639.2A CN202011574639A CN112612486B CN 112612486 B CN112612486 B CN 112612486B CN 202011574639 A CN202011574639 A CN 202011574639A CN 112612486 B CN112612486 B CN 112612486B
- Authority
- CN
- China
- Prior art keywords
- burned
- public key
- data
- chip
- data file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种存储器烧录方法、装置和待烧录芯片,其中,方法包括:利用预设芯片文件处理应用对待烧录数据的脚本文件进行格式转换,得到待烧录数据文件;利用预设加密算法生成第一私钥和第一公钥,并获取预设芯片文件处理应用中保存的根私钥,利用根私钥对第一公钥进行签名,得到公钥证书;根据第一私钥对待烧录文件进行签名,得到签名数据文件,最后将签名数据文件和公钥证书烧录至待烧录芯片的缓存,以使得待烧录芯片根据所述根公钥和公钥证书验证所述签名数据文件,得到待烧录数据,并将所述待烧录数据烧录至所述待烧录芯片的存储器中。本申请实施例保证了烧录至eFuse中的待烧录数据的合法性、私密性及完整性。
Description
技术领域
本申请涉及芯片技术领域,具体涉及一种存储器烧录方法、装置和待烧录芯片。
背景技术
eFuse是指一次性可编程存储器,一次只有一根熔丝被编程,且仅有一次被编程(写入)的机会。一般在芯片出厂之前会往eFuse写入一些信息,比如,芯片的ID号、版本号、密钥等信息。随着芯片生命周期的变化,还有些控制信息,会向eFuse中写入,以更改eFuse中的某些位(bit)。这些控制信息包括权限的变更,安全特性的enable(开启/关闭)等,如secure boot的enable(安全启动的开启/关闭)。由于eFuse的特性只能写入一次,因此必须保证写入信息的合法性和完整性。
发明内容
本申请实施例提供一种存储器烧录方法、装置和待烧录芯片,可保证烧录至eFuse中的待烧录数据的合法性及完整性。
本申请实施例提供了一种存储器烧录方法,应用于电子设备中,所述电子设备中包括预设芯片文件处理应用,所述存储器烧录方法包括:
获取待烧录数据对应的脚本文件,待烧录数据需向待烧录芯片的存储器中进行烧录;
利用预设芯片文件处理应用对脚本文件进行格式转换,得到待烧录数据文件;
利用预设加密算法生成第一私钥和第一公钥;
获取预设芯片文件处理应用中保存的根私钥,根私钥和根公钥形成密钥对,根公钥保存在待烧录芯片中;
根据根私钥对第一公钥进行签名,得到公钥证书;
根据第一私钥对待烧录数据文件进行签名,生成包括签名值的签名数据文件;
将签名数据文件和公钥证书烧录至待烧录芯片的缓存中,以使得待烧录芯片根据根公钥和公钥证书验证签名数据文件,得到待烧录数据,并将待烧录数据烧录至待烧录芯片的存储器中。
本申请实施例提供了一种存储器烧录方法,应用于待烧录芯片中,所述存储器烧录方法包括:
在待烧录芯片启动的过程中,从待烧录芯片的缓存中加载签名数据文件和公钥证书,签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,第一私钥和第一公钥形成密钥对;
获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,根证书中包括根公钥,加密公钥数据是对根公钥进行第一加密计算得到的,根公钥和根私钥形成密钥对;
将根证书中的根公钥进行第一加密计算后得到第一加密数据;
当第一加密数据与加密公钥数据相同时,根据根证书中的根公钥来验证公钥证书;
若公钥证书通过验证,利用公钥证书中的第一公钥来验证签名数据文件,以得到待烧录数据文件;
将待烧录数据文件中的待烧录数据烧录至待烧录芯片的存储器中。
本申请实施例还提供了一种存储器烧录装置,应用于电子设备中,所述电子设备中包括预设芯片文件处理应用,所述存储器烧录装置包括:
第一获取模块,用于获取待烧录数据对应的脚本文件,待烧录数据需向待烧录芯片的存储器中进行烧录;
转换模块,用于利用预设芯片文件处理应用对脚本文件进行格式转换,得到待烧录数据文件;
生成模块,用于利用预设加密算法生成第一私钥和第一公钥;
第二获取模块,用于获取预设芯片文件处理应用中保存的根私钥,根私钥和根公钥形成密钥对,根公钥保存在待烧录芯片中;
第一签名模块,用于根据根私钥对第一公钥进行签名,得到公钥证书;
第二签名模块,用于根据第一私钥对待烧录数据文件进行签名,生成包括签名值的签名数据文件;
第一烧录模块,用于将签名数据文件和公钥证书烧录至待烧录芯片的缓存中,以使得待烧录芯片根据根公钥和公钥证书验证签名数据文件,以得到待烧录数据,并将待烧录数据烧录至待烧录芯片的存储器中。
本申请实施例还提供了一种存储器烧录装置,应用于待烧录芯片中,所述电子设备中包括预设芯片文件处理应用,所述存储器烧录装置包括:
加载模块,用于在待烧录芯片启动的过程中,从待烧录芯片的缓存中加载签名数据文件和公钥证书,签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,第一私钥和第一公钥形成密钥对;
第三获取模块,用于获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,根证书中包括根公钥,加密公钥数据是对根公钥进行第一加密得到的,根公钥和根私钥形成密钥对;
公钥加密模块,用于将根证书中的根公钥进行第一加密后得到第一加密数据;
第一验证模块,用于当第一加密数据与加密公钥数据相同时,根据根证书中的根公钥来验证公钥证书;
第二验证模块,用于若公钥证书通过验证,利用公钥证书中的第一公钥来验证签名数据文件,以得到待烧录数据文件;
第二烧录模块,用于将待烧录数据文件中的待烧录数据烧录至待烧录芯片的存储器中。
本申请实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器;以及一个或多个应用程序,其中所述处理器和所述存储器相连接,所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述应用于电子设备中任一项所述的存储器烧录方法的步骤。
本申请实施例还提供了一种待烧录芯片,所述待烧录芯片包括:存储器和处理器,以及一个或多个应用程序,其中所述处理器和所述存储器相连接,所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述应用于待烧录芯片中任一项所述的存储器烧录方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一种应用于电子设备中的存储器烧录方法中的步骤,或者实现上述任一种应用于待烧录芯片中的存储器烧录方法中的步骤。
本申请实施例通过获取待烧录数据对应的脚本文件,利用预设芯片文件处理应用对脚本文件进行格式转换,得到待烧录数据文件;利用预设加密算法生成第一私钥和第一公钥,并获取预设芯片文件处理应用中保存的根私钥,利用根私钥对第一公钥进行签名,得到公钥证书;根据第一私钥对待烧录文件进行签名,得到签名数据文件,最后将签名数据文件和公钥证书烧录至待烧录芯片的缓存,以使得待烧录芯片在启动的过程中,从缓存中加载签名数据文件和公钥证书,利用待烧录芯片中保存的加密公钥数据来验证根证书中的跟公钥的合法性;若验证通过,利用根公钥来验证公钥证书的合法性;若验证通过,利用公钥证书中的第一公钥来验证签名数据文件,以得到待烧录数据文件,将待烧录数据文件烧录至待烧录芯片的一次性可编程存储器中。本申请实施例中无需在电子设备和待烧录芯片中传递公钥和私钥对应的信息,直接使用待烧录芯片中保存的加密公钥数据来验证待烧录芯片中的根证书的合法性,再根据根证书来验证公钥证书的合法性,再根据公钥证书的第一公钥来验证签名数据文件的合法性,以得到待烧录数据文件,一级一级的多层验证,保证了烧录至eFuse中的待烧录数据的合法性及完整性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的存储器烧录方法的流程示意图;
图2是本申请实施例提供的预先定义的数据结构的示意图;
图3是本申请实施例提供的存储器烧录方法的又一流程示意图;
图4是本申请实施例提供的存储器烧录方法的另一流程示意图;
图5是本申请实施例提供的存储器烧录方法的流程示意图;
图6是本申请实施例提供的存储器烧录方法的另一流程示意图;
图7是本申请实施例提供的存储器烧录装置的结构示意图;
图8是本申请实施例提供的存储器烧录装置的结构示意图;
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种存储器烧录方法、装置、电子设备、待烧录芯片和存储介质。该电子设备包括但不限于智能手机、平板电脑、笔记本电脑、智能电视、智能机器人、个人计算机(PC,Personal Computer)、服务器计算机,等等。该电子设备中包括预设芯片文件处理应用,该预设芯片文件处理应用和待烧录芯片都由芯片厂商提供。本申请实施例中的待烧录数据需向待烧录芯片的存储器中进行烧录。该存储器可以是待烧录芯片中的任一种存储器;优选地,本申请实施例中的存储器为一次性可编程存储器。由于一次性可编程存储器仅有一次被写入的机会,因此,待烧录数据的合法性、完整性等显得尤为重要。下文中的实施例将以存储器为一次性可编程存储器为例进行说明。
请参阅图1,是本申请实施例提供的存储器烧录方法的流程示意图。该存储器烧录方法运行于电子设备中,该存储器烧录方法包括以下步骤:
101,获取待烧录数据对应的脚本文件,该待烧录数据需向待烧录芯片的一次性可编程存储器中进行烧录。
其中,待烧录数据包括需向待烧录芯片的一次性可编程存储器(eFuse)中进行烧录的一些控制信息,如权限的变更、安全特性的enable(开启状态)等,如secure boot的enable(安全启动的开启状态)等。这些控制信息不会在待烧录芯片出厂前写入至一次性可编程存储器中,而是随着待烧录芯片生命周期的变化而需写入的数据。
其中,可按照预先定义的数据结构,将待烧录数据写成脚本文件,并获取该脚本文件。预先定义的数据结构如图2所示。其中,该数据结构包括eFuse分区头部信息,用secdat_hrd来表示;eFuse数据的偏移、烧录类型和属性等信息,用list of fusecdat_hdr_segment来表示;烧录列表,用list of segments来表示;eFuse分区尾部,用secdat_footer_segment来表示。最后还包括整个该数据结构所对应文件的哈希值,该哈希值以用来保证该文件的完整性。其中,每个结构中都包括更细节的部分。例如secdat_hrd中包括版本(revision)、大小(size)、详细信息(info)、烧录数量(segment_number)等信息;list offusecdat_hdr_segment中包括偏移(offset)、烧录类型(type)、属性(attribute)等信息;list of segments中包括烧录列表头(fuse_list_hdr)、烧录条目(fuse_entry)等。其中,例如,fuse_list_hdr中包括版本(revison)、大小(size);fuse_entry中包括eFuse分区类型(region_type)、烧录地址(raw_row_address)、lsb值(lsb_val)、msb值(msb_val)、具体操作(operation)等信息。
按照上述数据结构,将待烧录数据写成脚本文件,如json脚本文件,例如fuse_DM.json和fuse_DD.json等。
102,利用预设芯片文件处理应用对脚本文件进行格式转换,得到待烧录数据文件。
其中,预设芯片文件处理应用和待烧录芯片由芯片厂商提供,预设芯片文件处理应用也可以理解为是一个芯片文件处理工具,如fusetool。利用预设芯片文件处理应用对脚本文件进行格式转换,以将json脚本文件转换为待烧录芯片可以识别的、可烧录的文件格式,进行格式转换后得到待烧录数据文件。其中,待烧录数据文件可以为fuse.dat来表示。
可理解地,本申请实施例中待烧录数据文件对应的是DATA文件(数据文件),而非固件程序。若是对固件程序进行烧录,只需要将固件程序烧录至待烧录芯片的缓存就好,而无需烧录至eFuse分区;本申请实施例中的待烧录数据文件需要烧录至eFuse分区。其中,烧录至待烧录芯片的缓存可以多次擦除,多次改写;而烧录至eFuse分区只允许烧录一次。因此,烧录固件程序和烧录本申请实施例中的待烧录数据文件存在本质的区别。
103,利用预设加密算法生成第一私钥和第一公钥。
其中,预设加密算法可以是椭圆曲线数字签名算法(Elliptic Curve DigitalSignature Algorithm,ECDSA),是一个在比特币中使用广泛的数字签名算法。在同等安全强度的情况下,ECDSA算法相对于RSA等签名算法,所使用的密钥长度更短,且性能更好。其中,预设加密算法还可以是其他的加密算法。
利用预设加密算法生成第一私钥和第一公钥,其中,第一私钥和第一公钥形成密钥对。
104,获取预设芯片文件处理应用中保存的根私钥,根私钥和根公钥形成密钥对,根公钥保存在待烧录芯片中。
由于预设芯片文件处理应用和待烧录芯片由芯片厂商提供,在待烧录芯片出厂前,将根公钥保存在待烧录芯片中,将根私钥保存至预设芯片文件处理应用中。具体地,将根公钥的加密公钥数据(如根公钥的hash值)保存至待烧录芯片的一次性可编程存储器(eFuse)中,将根公钥保存至待烧录芯片的根证书中;将根私钥保存至预设芯片文件处理应用安全介质中,如UKey(数据证书)中。其中,根私钥和根公钥形成密钥对,根私钥和根公钥通过加密算法得到。该根私钥与安全启动(secure boot)验证所用的根密钥为同一密钥。
将根私钥和根公钥分别保存至预设芯片文件处理应用和待烧录芯片中,如此,无需通过网络来传输根私钥和根公钥,保证了根私钥和根公钥的合法性和私密性和完整性。
该步骤中直接获取预设芯片文件处理应用中保存的根私钥。
105,根据根私钥对第一公钥进行签名,得到公钥证书。
其中,公钥证书中包括了第一公钥和对第一公钥的签名值。根据根私钥对第一公钥进行签名的步骤,包括:利用哈希函数生成第一公钥的摘要信息,利用第一公钥对第一公钥的摘要信息进行签名,以得到第一公钥的签名值,根据第一公钥的签名值和第一公钥得到公钥证书。该处所例举的生成第一公钥的签名值仅仅只是示例,还可以通过其他方式来得到第一公钥的签名值。其中,生成的公证证书可以用fuse.cer来表示。
106,根据第一私钥对待烧录数据文件进行签名,生成包括签名值的签名数据文件。
其中,签名数据文件中包括待烧录数据文件的签名值和待烧录数据文件。根据第一私钥对待烧录数据文件进行签名的步骤,包括:利用哈希函数(与上文中的哈希函数可以是同一个哈希函数,也可以是不同哈希函数)生成待烧录数据文件的摘要信息,利用第一私钥对待烧录数据文件的摘要信息进行签名,以得到待烧录数据文件的签名值,根据待烧录数据文件和待烧录数据文件的签名值得到包括签名值的签名数据文件。需要注意的是,还可以通过其他方式来得到待烧录数据文件的签名值。其中,签名数据文件可以用fuse.sig来表示。
需要注意的是,以上步骤101至106一般在芯片厂商(Vendor)这边来完成,可以理解地,一般待烧录数据文件由芯片厂商来提供。
107,将签名数据文件和公钥证书烧录至待烧录芯片的缓存中,以使得待烧录芯片根据根公钥和公钥证书验证签名数据文件,得到待烧录数据,并将待烧录数据烧录至待烧录芯片的一次性可编程存储器中。
步骤107既可以在芯片厂商这边来完成,还可以通过其他厂商来完成。无论通过哪边来完成,都需要在电子设备中来执行相关操作。
具体地,通过烧录工具将签名数据文件和公钥证书烧录至待烧录芯片的缓存中,如烧录至待烧录芯片的flash缓存分区中,烧录至flash缓存分区中保存该签名数据文件和公钥证书,以使得待烧录芯片根据根公钥和公钥证书验证签名数据文件,得到待烧录数据,并将待烧录数据烧录至待烧录芯片的一次性可编程存储器中。
上述方法实施例运行于电子设备中,通过预设加密算法生成第一私钥和第一公钥,并获取预设芯片文件处理应用中保存的根私钥,根私钥和根公钥形成密钥对,根公钥保存在待烧录芯片中,根据所述根私钥对所述第一公钥进行签名,得到公钥证书,根据第一私钥对所述待烧录数据文件进行签名,生成包括签名值的签名数据文件,将签名数据文件和公钥证书烧录至待烧录芯片的flash缓存分区中,如此,以得到待烧录数据所对应的签名数据文件和对应的公钥证书。可以理解地,该方法实施例制作待烧录数据所对应的相关文件,以使得待烧录芯片根据根公钥和公钥证书验证签名数据文件,得到待烧录数据,并将待烧录数据烧录至待烧录芯片的一次性可编程存储器中。
图3是本申请实施例提供的存储器烧录方法的流程示意图。该存储器烧录方法运行于电子设备中,该存储器烧录方法包括以下步骤:
201,获取待烧录数据对应的脚本文件,该待烧录数据需向待烧录芯片的一次性可编程存储器中进行烧录。
202,利用预设芯片文件处理应用对脚本文件进行格式转换,得到待烧录数据文件。其中,待烧录数据文件可以用fuse.dat来表示。
203,对待烧录数据文件进行加密处理,以得到加密数据文件。
为了提高保密性,对待烧录数据文件进行加密处理,以得到加密数据文件,再对加密数据文件进行相应的处理。可以理解地,一般情况下,待烧录数据文件由芯片厂商提供,而操作烧录者可能是代工生产厂商(Original Equipment Manufacturer,OEM),因此必要保证待烧录数据文件的私密性。可以理解地,下面步骤中涉及签名,签名用来保证合法性,并没有涉及加密,将对应的打包文件/签名数据文件烧录至待烧录芯片的缓存中后,仍可能得到待烧录数据文件。因此,为了提高保密性,防止待烧录数据文件的泄露以及对待烧录数据文件的篡改等,对待烧录数据文件进行加密处理,以得到加密数据文件。
其中,加密数据文件可以用fuse.enc来表示。
在一种情况下,对待烧录数据文件进行加密处理,以得到加密数据文件的步骤,包括:利用加密算法对待烧录数据文件进行加密处理,以得到加密数据文件。
其中,加密算法可以采用任一一种加密算法,只要加密后可进行解密,以得到对应的待烧录数据文件即可。
在一种情况下,对待烧录数据文件进行加密处理,以得到加密数据文件的步骤,包括:对待烧录数据文件进行加扰处理,以得到加密数据文件。
其中,对待烧录数据文件进行加扰处理,以得到加密数据文件的步骤,包括:加载待烧录数据文件的数据流;将数据流按照每组2N个字节进行分割,以得到多组数据流,其中,最后一组的数据流不足2N个字节,则补零;将每组数据流中的前一半字节和后一半字节进行异或处理,并将异或处理的结果放入前一半字节或者后一半字节中,以得到异或处理后的数据流;将异或处理后的数据流所对应的文件作为加密数据文件,其中,N为正整数。
待烧录数据文件的数据流以二进制形式存在。假设N=8,则将数据流按照每组16个字节进行分割,得到多组数据流,其中,最后一组的数据流不足18个字节,则补零,以达到18个字节。将每组数据流中的前8个字节和后8个字节进行异或处理,并将异或处理的结果放在前8个字节中,以得到异或处理后的数据流,将异或处理后的数据流所对应的文件作为加密数据文件。
将待烧录数据文件进行异或处理,并将异或处理的结果放在前8个字节中,如此,不增加待烧录数据文件的数据量,但提高了待烧录数据文件的保密性。
进一步地,在得到异或处理后的数据流的步骤之后,还包括:将异或处理之后得到的数据流中的每组数据流中循环左移或者右移预设位数,以得到移动后的数据流;将移动后的数据流所对应的文件作为加密数据文件。
其中,预设位数的值少于2N*8,其中,N为正整数。假设预设位数为4位,将异或处理之后得到的数据流中的每组数据流中循环左移4位或者循环右移4位。假设其中一组数据流为1001110101001111,循环右移4位后得到1111100111010100,循环左移4位后得到1101010011111001。其中,将每组数据流中的数据循环左移或者循环右移,不会增加待烧录数据文件的数据量,但提高了待烧录数据文件的保密性。
需要说明的是,该步骤中对待烧录数据文件进行加扰处理只是一个示例说明,在其他情况下,也可以使用其他的加扰处理方法来进行加扰处理,达到加密效果。
204,利用预设加密算法生成第一私钥和第一公钥。
205,获取预设芯片文件处理应用中保存的根私钥,根私钥和根公钥形成密钥对,根公钥保存在待烧录芯片中。
206,根据根私钥对第一公钥进行签名,得到公钥证书。其中,公钥证书可用fuse.cer来表示。
207,根据第一私钥对加密数据文件进行签名,生成包括签名值的签名数据文件。其中,签名数据文件可用fuse.sig来表示。
在一实施例中,将签名数据文件和公钥证书进行打包,以使得待烧录芯片可以直接识别打包文件,无需再编写/改写代码来分别识别签名数据文件和公钥证书,且将签名数据文件和公钥证书进行打包,可降低存储空间。
208,将签名数据文件和公钥证书打包,生成打包文件。
利用预设打包工具,如fiptool打包工具,对签名数据文件fuse.sig和公钥证书fuse.cer进行打包,生成打包文件。其中,打包文件可以用fuse.fip来表示。其中,打包可理解为压缩,将签名数据文件fuse.sig和公钥证书fuse.cer压缩至一个文件。
209,将打包文件烧录至待烧录芯片的缓存中,以使得待烧录芯片解包打包文件,得到签名数据文件和公钥证书,根据根公钥和公钥证书验证签名数据文件,得到待烧录数据,并将待烧录数据烧录至待烧录芯片的一次性可编程存储器中。
该方法实施例中与上文中相同的步骤,请参看上文中对应的描述,在此不再赘述。
该方法实施例对待烧录数据文件进行加密,在保证待烧录数据文件合法性和完整性的同时,提高了待烧录数据文件的保密性,防止待烧录数据文件的泄露以及对待烧录数据文件的篡改等。另一方面,利用打包工具对签名数据文件和公钥证书进行打包,以使得待烧录芯片可以识别该签名数据文件和公钥证书,且降低存储空间。
图4是本申请实施例提供的存储器烧录方法的简易示意图,该存储器烧录方法运行于电子设备中。可结合图3一起来参看该存储器烧录方法。首先,获取待烧录数据的脚本文件,其中,如脚本文件包括fuse_DM.json和fuse_DD.json;利用预设芯片文件处理应用fusetool对脚本文件进行格式转换,以得到待烧录数据文件fuse.dat;对待烧录数据文件fuse.dat进行加密处理,以得到加密数据文件fuse.enc;基于预设加密算法,如ECDSA算法,生成第一公钥和第一私钥;获取预预设芯片文件处理应用fusetool中保存的根私钥;利用根私钥对第一公钥进行签名,得到公钥证书fuse.cer;利用第一私钥对加密数据文件fuse.enc进行签名,得到包括签名值的签名数据文件fuse.sig;利用打包工具fiptool对签名数据文件fuse.sig和公钥证书fuse.cer进行打包,生成打包文件fuse.fip文件;将打包文件fuse.fip烧录至待烧录芯片的flash缓存分区中,以使得待烧录芯片解包打包文件fuse.fip,得到签名数据文件fuse.sig和公钥证书fuse.cer,根据根公钥和公钥证书fuse.cer验证签名数据文件fuse.sig,得到待烧录数据,并将待烧录数据烧录至待烧录芯片的一次性可编程存储器中。
上述方法实施例运行于电子设备中,以为了制作待烧录数据文件相关的文件。下面将介绍运行于待烧录芯片中的存储器烧录方法,以将待烧录数据烧录至一次性可编程存储器中。一般情况下,运行于待烧录芯片中的存储器烧录方法由代工生产厂商这边来操作,即一般情况下,操作烧录者为代工生产厂商。
本申请实施例中的待烧录芯片包括存储器和处理器,其中,处理器中包括对应的处理核,存储器包括flash缓存存储器和一次性可编程存储器等。
图5是本申请实施例提供的存储器烧录方法的流程示意图,该存储器烧录方法应用于待烧录芯片中,该存储器烧录方法包括如下步骤。
301,在待烧录芯片启动的过程中,从待烧录芯片的缓存中加载签名数据文件和公钥证书,签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,第一私钥和第一公钥形成密钥对。
待烧录芯片上电启动,上电启动后会加载引导加载程序(BootLoader),引导加载程序包括Boot ROM程序和SBL(Second Boot Loader)程序,其中,Boot ROM程序为上电后运行的第一段程序,SBL程序为上电后运行的第二段程序。在待烧录芯片启动至SBL程序中的一个阶段时,即在初始化完成之后,从待烧录芯片的flash缓存中加载签名数据文件fuse.sig和公钥证书fuse.cer。具体地,将签名数据文件fuse.sig和公钥证书fuse.cer加载至待烧录芯片的随机存取存储器(Random Access Memory,RAM,也称为主存)的安全分区。需要注意的是,待烧录芯片的RAM的安全分区,加了硬件保护机制。只允许特定的CPU核(待烧录芯片内部的CPU核)来访问RAM的安全分区,例如,只允许master核(主核)来访问RAM的安全分区,其他的核不允许访问。因此,将签名数据文件fuse.sig和公钥证书fuse.cer加载至RAM的安全分区中,以在RAM的安全分区中进行后续处理,以提高安全性。或者也可以加载至其他的特定安全分区中。
其中,签名数据文件fuse.sig和公钥证书fuse.cer是在电子设备完成后,再烧录至待烧录芯片中的。签名数据文件fuse.sig是电子设备根据第一私钥对待烧录数据文件进行签名得到的,待烧录数据文件中包括待烧录数据;公钥证书fuse.cer是根据电子设备中的预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的;第一私钥和第一公钥形成密钥对,该第一私钥和第一公钥是电子设备根据预设加密算法生成的。电子设备生成第一私钥和第一公钥后,利用第一私钥对待烧录数据文件进行签名,得到包括签名值的签名数据文件fuse.sig;利用预设芯片文件处理应用中保存的根私钥对第一公钥进行签名,得到公钥证书fuse.cer。其中,预设芯片文件处理应用和待烧录芯片都由芯片厂商提供。
302,获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,根证书中包括根公钥,加密公钥数据是对根公钥进行第一加密计算得到的,根公钥和根私钥形成密钥对。
待烧录芯片的一次性可编程存储器(eFuse)中保存有加密公钥数据,该加密公钥数据是对根公钥进行第一加密得到的,其中,第一加密计算可以是哈希计算,如此,该加密公钥数据理解为对根公钥进行哈希计算,以得到根公钥的哈希值,即在待烧录芯片的eFuse中保存有根公钥的哈希值。需要注意的是,加密公钥数据可在待烧录芯片出厂前就烧录至eFuse中,将加密公钥数据保存至eFuse中,以保证加密公钥数据的准确性和合法性,保存至eFuse中的加密公钥数据不会被修改。其中,第一加密计算还可以是其他的加密计算。
待烧录芯片中还保存有根证书,其中,根证书中包括根公钥,即根公钥保存在根证书中。根公钥和根私钥形成密钥对,根私钥则保存至预设芯片文件处理应用中,可在待烧录芯片出厂前就将根私钥和根公钥分别烧录至预设芯片文件处理应用中以及待烧录芯片中。
303,将根证书中的根公钥进行第一加密计算后得到第一加密数据。
获取根证书中的根公钥,对根公钥进行第一加密计算,得到第一加密数据。若第一加密计算为哈希计算,则对根公钥进行同样的哈希计算,以得到根公钥的第一加密数据。若第一加密计算是其他的加密计算,则同样通过第一加密计算得到第一加密数据。
304,当第一加密数据与加密公钥数据相同时,根据根证书中的根公钥来验证公钥证书。
由于加密公钥数据是保存在eFuse中的,eFuse中的数据仅可以写一次,因此,eFuse中的加密公钥数据是准确的,合法的。将根证书中的根公钥进行同样的第一加密计算后得到的第一加密数据,若与加密公钥数据相同,则意味着根公钥没有被修改,意味着根证书是合法的;若第一加密数据与加密公钥数据不相同,则意味着根证书是非法的,如可能被修改等,不进行后续操作。若根证书合法,再根据跟证书中的根公钥来验证公钥证书fuse.cer。公钥证书fuse.cer是根私钥对第一公钥进行签名得到的,而根私钥和根公钥形成密钥对,因此,利用根证书中的根公钥对公钥证书中对应的签名值进行解密,若成功解密,则意味着通过验证,意味着公钥证书fuse.cer是合法的。若未成功解密,则意味着未通过验证,意味着公钥证书fuse.cer是非法的,不进行后续操作。
305,若公钥证书通过验证,利用公钥证书中的第一公钥来验证签名数据文件,以得到待烧录数据文件。
若公钥证书fuse.cer通过验证,意味着公钥证书是合法的,去除对应的签名值,得到第一公钥,利用公钥证书中的第一公钥来验证签名数据文件fuse.sig。因为签名数据文件fuse.sig包括利用第一私钥对待烧录数据文件进行签名后得到的签名值,同时第一公钥和第一私钥形成密钥对,若公钥证书合法,利用公钥证书中的第一公钥来对签名数据文件fuse.sig中的签名值进行解密,若成功解密,则意味着通过验证,意味着签名数据文件fuse.sig是合法的,去除签名数据文件中的签名值,得到签名数据文件中的待烧录数据文件fuse.dat;若未成功解密,则意味着未通过验证,意味着签名数据文件fuse.sig是非法的,不进行后续操作。
306,将待烧录数据文件中的待烧录数据烧录至待烧录芯片的存储器中。
得到待烧录数据文件fuse.dat后,执行烧录程序,按照预先定义的数据结构,提取出对应的eFuse值,即提取出待烧录数据,并将待烧录数据烧录至对应的eFuse区域中。
上述实施例根据待烧录芯片中保存的加密公钥数据来验证根证书的合法性,若根证书合法,则根据根证书来验证公钥证书的合法性,若公钥证书合法,利用公钥证书来验证签名数据文件的合法性,若签名数据文件合法,则获取签名数据文件中的待烧录数据文件,以提取出待烧录数据文件中的待烧录数据,并执行烧录程序,将待烧录数据烧录至对应的eFuse中。该方法实施例无需在电子设备和待烧录芯片中传递公钥和私钥对应的信息,通过逐层验证,一级一级的多层验证,保证了烧录至eFuse中的待烧录数据的合法性及完整性。
图6是本申请实施例提供的存储器烧录方法的流程示意图,该存储器烧录方法应用于待烧录芯片中,该存储器烧录方法包括如下步骤。
401,在待烧录芯片启动的过程中,从待烧录芯片的缓存中加载打包文件。
在一实施例中,由于待烧录芯片可直接识别打包文件,为了使得待烧录芯片可直接识别打包文件,无需再编写/改写代码来分别识别签名数据文件和公钥证书,因此,在电子设备端利用打包工具fiptool将签名数据文件fuse.sig和公钥证书fuse.cer进行打包,生成打包文件fuse.fip。第一方面,可使得待烧录芯片直接识别打包文件,另一方面,可节省存储空间。
其中,将打包文件fuse.fip加载至待烧录芯片的RAM的安全分区中,以在RAM的安全分区中进行后续的处理,提高安全性。
402,将打包文件进行解包,以得到签名数据文件和公钥证书,签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,第一私钥和第一公钥形成密钥对。
例如,使用打包工具fiptool将打包文件fuse.fip进行解包,得到签名数据文件fuse.sig和公钥证书fuse.cer。具体地,对签名数据文件fuse.sig和公钥证书fuse.cer的具体解释请参看上文中对应描述,在此不再赘述。需要注意的是,在待烧录芯片的RAM安全分区中,进行解包。其中,解包可理解为解压缩,将打包文件fuse.fip解压缩为两个文件等。
403,获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,根证书中包括根公钥,加密公钥数据是对根公钥进行第一加密计算得到的,根公钥和根私钥形成密钥对。
404,将根证书中的根公钥进行第一加密计算后得到第一加密数据。
405,当第一加密数据与加密公钥数据相同时,根据根证书中的根公钥来验证公钥证书。
406,若公钥证书通过验证,利用公钥证书中的第一公钥来验证签名数据文件。
若公钥证书fuse.cer通过验证,去除对应的签名值,得到第一公钥,利用公钥证书中的第一公钥来验证签名数据文件fuse.sig。因为签名数据文件fuse.sig包括利用第一私钥对待烧录数据文件进行签名后得到的签名值,同时第一公钥和第一私钥形成密钥对,若公钥证书合法,利用公钥证书中的第一公钥来对签名数据文件fuse.sig中的签名值进行解密,若成功解密,则意味着通过验证,意味着签名数据文件fuse.sig是合法的;若未成功解密,则意味着未通过验证,意味着签名数据文件fuse.sig是非法的,不进行后续操作。
407,若签名数据文件验证通过,得到签名数据文件中的加密数据文件。
若签名数据文件fuse.sig通过验证,去除签名数据文件fuse.sig中的签名值,得到签名数据文件中的加密数据文件fuse.enc。
在一实施例中,可以理解地,若在电子设备端对待烧录数据文件进行加密,则对应的,签名数据文件fuse.sig通过验证,得到签名数据文件中的加密数据文件fuse.enc后,需要加密数据文件fuse.enc进行解密。
408,对加密数据文件进行解密处理,以得到待烧录数据文件。
其中,若电子设备端是利用加密算法对待烧录数据文件进行加密处理,以得到加密数据文件;对应的,对加密数据文件进行解密处理,以得到待烧录数据文件的步骤,包括:利用加密算法对加密数据文件进行解密处理,以得到待烧录数据文件。其中,待烧录数据文件用fuse.dat来表示。
其中,若电子设备端是对待烧录数据文件进行加扰处理,以得到加密数据文件;对应的,对加密数据文件进行解密处理,以得到待烧录数据文件的步骤,包括:对加密数据文件进行解扰处理,以得到待烧录数据文件。
在一种情况下,对加密数据文件进行解扰处理的步骤,包括:加载加密数据文件对应的数据流;将数据流按照每组2N个字节进行分割,以得到多组数据流,其中,N为正整数;将每组数据流中的前一半字节和后一半字节进行异或处理,并将异或处理的结果放入前一半字节或者后一半字节中;检测最后一组数据流中的数据是否补充了零;若是,去除最后一组数据流中补充的零;将得到的数据流所对应的文件作为待烧录数据文件。
其中,若电子设备端将异或处理的结果放入前一半字节中,则对应地,对加密数据文件进行解扰处理时,也是将异或处理的结果放入前一半字节中;若电子设备端将异或处理的结果放入后一半字节中,则对应地,对加密数据文件进行解扰处理时,也是将异或处理的结果放入后一半字节中。
在一种情况下,对加密数据文件进行解扰处理时,在得到多组数据流之后,还包括:将每组数据流循环右移或者左移预设位数;接着执行将每组数据流中的前一半字节和后一半字节进行异或处理的步骤。其中,若电子设备端将每组数据流循环右移预设位数,则对应地,对加密数据文件进行解扰处理时,将每组数据流循环左移预设位数;若电子设备端将每组数据流循环左移预设位数,则对应地,对加密数据文件进行解扰处理时,将每组数据流循环右移预设位数。
可以理解地,加扰处理和解扰处理,都是芯片厂商提供的自主加密方法,通过自主加密方法来提高保密性。
409,将待烧录数据文件中的待烧录数据烧录至待烧录芯片的存储器中。
其中,该实施例中未详细描述的步骤请参看上述实施例中对应的描述,在此不再赘述。
该实施例中增加了获取打包文件,并解包为签名数据文件和公钥证书的步骤,以及增加了对加密数据文件进行解密处理的步骤。在待烧录芯片中对加密数据文件进行解密处理,以防止待烧录数据被泄露,提高了待烧录数据的保密性。
本申请实施例还提供一种存储器烧录装置,该存储器烧录装置应用于电子设备中,该电子设备中包括预设芯片文件处理应用。如图7所示,该存储器烧录装置包括第一获取模块501、转换模块502、生成模块503、第二获取模块504、第一签名模块505、第二签名模块506以及第一烧录模块507。
第一获取模块501,用于获取待烧录数据对应的脚本文件,待烧录数据需向待烧录芯片的存储器中进行烧录。
转换模块502,用于利用预设芯片文件处理应用对脚本文件进行格式转换,得到待烧录数据文件。
生成模块503,用于利用预设加密算法生成第一私钥和第一公钥。
第二获取模块504,用于获取预设芯片文件处理应用中保存的根私钥,根私钥和根公钥形成密钥对,根公钥保存在待烧录芯片中。
第一签名模块505,用于根据根私钥对第一公钥进行签名,得到公钥证书。
第二签名模块506,用于根据第一私钥对待烧录数据文件进行签名,生成包括签名值的签名数据文件。
第一烧录模块507,用于将签名数据文件和公钥证书烧录至待烧录芯片的缓存中,以使得待烧录芯片根据根公钥和公钥证书验证签名数据文件,以得到待烧录数据,并将待烧录数据烧录至待烧录芯片的存储器中。
在一种情况下,如图7所示,该存储器烧录装置还包括第一加密模块508。其中,第一加密模块508,用于在得到待烧录数据文件之后,对待烧录数据文件进行加密处理,以得到加密数据文件。第二签名模块506,还用于根据第一私钥对加密数据文件进行签名,生成包括签名值的签名数据文件。
在一种情况下,第一加密模块508,具体用于在得到待烧录数据文件之后,对待烧录数据文件进行加扰处理,以得到加密数据文件。
其中,第一加密模块508,在执行对待烧录数据文件进行加扰处理,以得到加密数据文件的步骤时,具体执行:加载待烧录数据文件的数据流;将数据流按照每组2N个字节进行分割,以得到多组数据流,其中,最后一组的数据流不足2N个字节,则补零,其中,N为正整数;将每组数据流中的前一半字节和后一半字节进行异或处理,并将异或处理的结果放入前一半字节或者后一半字节中,以得到异或处理后的数据流;将异或处理后的数据流所对应的文件作为加密数据文件。
进一步地,第一加密模块508,在得到异或处理后的数据流之后,将异或处理之后得到的数据流中的每组数据流中循环左移或者右移预设位数,以得到移动后的数据流,将移动后的数据流所对应的文件作为加密数据文件。
在一种情况下,如图7所示,该存储器烧录装置还包括打包模块509。其中,打包模块509,具体用于在将加密数据文件和公钥证书发送至待烧录芯片的缓存中之前,将签名数据文件和公钥证书打包,生成打包文件;第一烧录模块507,还用于将打包文件烧录至待烧录芯片的缓存中。
本申请实施例还提供一种存储器烧录装置,该存储器烧录装置应用于待烧录芯片中,该待烧录芯片中包括存储器和处理器。如图8所示,该存储器烧录装置包括加载模块601、第三获取模块602、公钥加密模块603、第一验证模块604、第二验证模块605以及第二烧录模块606。
加载模块601,用于在待烧录芯片启动的过程中,从待烧录芯片的缓存中加载签名数据文件和公钥证书,签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,第一私钥和第一公钥形成密钥对;
第三获取模块602,用于获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,根证书中包括根公钥,加密公钥数据是对根公钥进行第一加密得到的,根公钥和根私钥形成密钥对。
公钥加密模块603,用于将根证书中的根公钥进行第一加密后得到第一加密数据。
第一验证模块604,用于当第一加密数据与加密公钥数据相同时,根据根证书中的根公钥来验证公钥证书。
第二验证模块605,用于若公钥证书通过验证,利用公钥证书中的第一公钥来验证签名数据文件,以得到待烧录数据文件。
第二烧录模块606,用于将待烧录数据文件中的待烧录数据烧录至待烧录芯片的存储器中。
在一种情况下,如图8所示,该存储器烧录装置还包括第一解密模块607。其中,第一解密模块607,用于在签名数据文件验证通过,得到签名数据文件中的加密数据文件之后,对加密数据文件进行解密处理,以得到待烧录数据文件。
在一种情况下,第一解密模块607,具体用于在签名数据文件验证通过,得到签名数据文件中的加密数据文件之后,对加密数据文件进行加扰处理,以得到待烧录数据文件。
其中,第一解密模块607,在执行对加密数据文件进行加扰处理,以得到待烧录数据文件的步骤时,具体执行:获取加密数据文件对应的数据流;将数据流按照每组2N个字节进行分割,以得到多组数据流,其中,N为正整数;将每组数据流中的前一半字节和后一半字节进行异或处理,并将异或处理的结果放入前一半字节或者后一半字节中;检测最后一组数据流中的数据是否补充了零;若是,去除最后一组数据流中补充的零;将得到的数据流所对应的文件作为待烧录数据文件。
其中,第一解密模块607,还用于在得到多组数据流之后,将每组数据流循环右移或者左移预设位数;接着执行将每组数据流中的前一半字节和后一半字节进行异或处理的步骤。
在一种情况下,如图8所示,该存储器烧录装置还包括解包模块608。其中,加载模块601,用于从待烧录芯片的缓存中加载打包文件。解包模块608,用于将打包文件进行解包,以得到签名数据文件和公钥证书。
具体实施时,以上各个单元/模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现。以上装置和各单元/模块的具体实现过程,以及所达到的有益效果,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
本申请实施例还提供一种电子设备,如图9所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、射频(Radio Frequency,RF)电路903、电源904、输入单元905、以及显示单元906等部件。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该电子设备的控制中心。其中,处理器利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器可包括一个或多个处理核心;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地是,上述调制解调处理器也可以不集成到处理器中。
存储器902可用于存储软件程序(计算机程序)以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如预设芯片文件处理应用等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
RF电路903可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器901处理;另外,将涉及上行的数据发送给基站。通常,RF电路903包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路903还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
电子设备还包括给各个部件供电的电源904(比如电池),优选的,电源904可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源904还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元905,该输入单元905可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体地实施例中,输入单元905可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器901,并能接收处理器901发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元905还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该电子设备还可包括显示单元906,该显示单元906可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元906可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器901以确定触摸事件的类型,随后处理器901根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
获取待烧录数据对应的脚本文件,待烧录数据需向待烧录芯片的存储器中进行烧录;利用预设芯片文件处理应用对脚本文件进行格式转换,得到待烧录数据文件;利用预设加密算法生成第一私钥和第一公钥;获取预设芯片文件处理应用中保存的根私钥,根私钥和根公钥形成密钥对,根公钥保存在待烧录芯片中;根据根私钥对第一公钥进行签名,得到公钥证书;根据第一私钥对待烧录数据文件进行签名,生成包括签名值的签名数据文件;将签名数据文件和公钥证书烧录至待烧录芯片的缓存中,以使得待烧录芯片根据根公钥和公钥证书验证签名数据文件,得到待烧录数据,并将待烧录数据烧录至待烧录芯片的存储器中。
该电子设备可以实现本申请实施例所提供的应用于电子设备中的存储器烧录方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的应用于电子设备中的任一存储器烧录方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本申请实施例还提供一种待烧录芯片,该待烧录芯片包括存储器和处理器。其中,存储器包括第一次可编程存储器,flash缓存存储器、随时存取存储器RAM等。其中,处理器用于运行存储器内的应用程序,从而实现各种功能,如下:
在待烧录芯片启动的过程中,从待烧录芯片的缓存中加载签名数据文件和公钥证书,签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,第一私钥和第一公钥形成密钥对;获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,根证书中包括根公钥,加密公钥数据是对根公钥进行第一加密计算得到的,根公钥和根私钥形成密钥对;将根证书中的根公钥进行第一加密计算后得到第一加密数据;当第一加密数据与加密公钥数据相同时,根据根证书中的根公钥来验证公钥证书;若公钥证书通过验证,利用公钥证书中的第一公钥来验证签名数据文件,以得到待烧录数据文件;将待烧录数据文件中的待烧录数据烧录至待烧录芯片的存储器中。
该待烧录芯片可以实现本申请实施例所提供的应用于待烧录芯片中的存储器烧录方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的应用于待烧录芯片中的任一存储器烧录方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
需要说明的是,本申请实施例中的待烧录芯片并非完全未进行烧录的芯片,而是已经进行了至少一次烧录的芯片,该待烧录芯片中存储有根证书、加密公钥数据等信息。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令(应用程序)来完成,或通过指令(应用程序)控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令(应用程序),该指令(应用程序)能够被处理器进行加载,以执行本发明实施例所提供的应用于电子设备中的存储器烧录方法中任一实施例的步骤,或者执行本申请实施例所提供的应用于待烧录芯片中的存储器烧录方法中任一实施例中的而步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令(应用),可以执行本发明实施例所提供的应用于电子设备中的任一存储器烧录方法实施例中的步骤或者应用于待烧录芯片中的任一存储器烧录方法实施例中的步骤,因此,可以实现本发明实施例所提供的应用于电子设备中的任一存储器烧录方法所能实现的有益效果或者应用于待烧录芯片中的任一存储器烧录方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种存储器烧录方法、装置、电子设备、待烧录芯片以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种存储器烧录方法,应用于电子设备中,所述电子设备中包括预设芯片文件处理应用,其特征在于,包括:
获取待烧录数据对应的脚本文件,所述待烧录数据需向待烧录芯片的存储器中进行烧录;
利用预设芯片文件处理应用对所述脚本文件进行格式转换,得到待烧录数据文件;
利用预设加密算法生成第一私钥和第一公钥;
获取预设芯片文件处理应用中保存的根私钥,所述根私钥和根公钥形成密钥对,所述根公钥保存在待烧录芯片中;
根据所述根私钥对所述第一公钥进行签名,得到公钥证书;
根据所述第一私钥对所述待烧录数据文件进行签名,生成包括签名值的签名数据文件;
将所述签名数据文件和公钥证书烧录至待烧录芯片的缓存中,以使得待烧录芯片根据所述根公钥和公钥证书验证所述签名数据文件,得到待烧录数据,并将所述待烧录数据烧录至所述待烧录芯片的存储器中。
2.根据权利要求1所述的存储器烧录方法,其特征在于,在得到待烧录数据文件之后,还包括:
对所述待烧录数据文件进行加密处理,以得到加密数据文件;
所述根据所述第一私钥对所述待烧录数据文件进行签名的步骤,包括:根据所述第一私钥对所述加密数据文件进行签名。
3.根据权利要求2所述的存储器烧录方法,其特征在于,所述对所述待烧录数据文件进行加密处理,以得到加密数据文件的步骤,包括:
加载所述待烧录数据文件的数据流;
将所述数据流按照每组2N个字节进行分割,以得到多组数据流,其中,最后一组的数据流不足2N个字节,则补零,其中,N为正整数;
将每组数据流中的前一半字节和后一半字节进行异或处理,并将异或处理的结果放入前一半字节或者后一半字节中,以得到异或处理后的数据流;
将异或处理后的数据流所对应的文件作为加密数据文件。
4.根据权利要求3所述的存储器烧录方法,其特征在于,在得到异或处理后的数据流的步骤之后,还包括:
将异或处理之后得到的数据流中的每组数据流中循环左移或者右移预设位数,以得到移动后的数据流;
将所述移动后的数据流所对应的文件作为加密数据文件。
5.根据权利要求1所述的存储器烧录方法,其特征在于,在将所述签名数据文件和公钥证书烧录至待烧录芯片的缓存中之前,还包括:
将所述签名数据文件和所述公钥证书打包,生成打包文件;
所述将所述签名数据文件和公钥证书烧录至待烧录芯片的缓存中的步骤,包括:将所述打包文件烧录至待烧录芯片的缓存中。
6.一种存储器烧录方法,应用于待烧录芯片中,其特征在于,包括:
在待烧录芯片启动的过程中,从所述待烧录芯片的缓存中加载签名数据文件和公钥证书,所述签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,所述公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,所述第一私钥和所述第一公钥形成密钥对;
获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,所述根证书中包括根公钥,所述加密公钥数据是对根公钥进行第一加密计算得到的,所述根公钥和所述根私钥形成密钥对;
将所述根证书中的根公钥进行第一加密计算后得到第一加密数据;
当所述第一加密数据与所述加密公钥数据相同时,根据所述根证书中的根公钥来验证所述公钥证书;
若所述公钥证书通过验证,利用所述公钥证书中的第一公钥来验证所述签名数据文件,以得到待烧录数据文件;
将所述待烧录数据文件中的待烧录数据烧录至所述待烧录芯片的存储器中。
7.根据权利要求6所述的存储器烧录方法,其特征在于,所述利用所述公钥证书中的第一公钥来验证所述签名数据文件,以得到待烧录数据文件的步骤,包括:
利用所述公钥证书中的第一公钥来验证所述签名数据文件;
若所述签名数据文件验证通过,得到签名数据文件中的加密数据文件;
对所述加密数据文件进行解密处理,以得到待烧录数据文件。
8.根据权利要求7所述的存储器烧录方法,其特征在于,所述对所述加密数据文件进行解密处理,以得到待烧录数据文件的步骤,包括:
获取所述加密数据文件对应的数据流;
将所述数据流按照每组2N个字节进行分割,以得到多组数据流,其中,N为正整数;
将每组数据流中的前一半字节和后一半字节进行异或处理,并将异或处理的结果放入前一半字节或者后一半字节中;
检测最后一组数据流中的数据是否补充了零;
若是,去除最后一组数据流中补充的零;
将得到的数据流所对应的文件作为待烧录数据文件。
9.根据权利要求8所述的存储器烧录方法,其特征在于,在得到多组数据流之后,还包括:
将每组数据流循环右移或者左移预设位数;
接着执行将每组数据流中的前一半字节和后一半字节进行异或处理的步骤。
10.根据权利要求6所述的存储器烧录方法,其特征在于,所述从所述待烧录芯片的缓存中加载签名数据文件和公钥证书的步骤,包括:
从所述待烧录芯片的缓存中加载打包文件;
将所述打包文件进行解包,以得到签名数据文件和公钥证书。
11.一种存储器烧录装置,应用于电子设备中,所述电子设备中包括预设芯片文件处理应用,其特征在于,包括:
第一获取模块,用于获取待烧录数据对应的脚本文件,所述待烧录数据需向待烧录芯片的存储器中进行烧录;
转换模块,用于利用预设芯片文件处理应用对所述脚本文件进行格式转换,得到待烧录数据文件;
生成模块,用于利用预设加密算法生成第一私钥和第一公钥;
第二获取模块,用于获取预设芯片文件处理应用中保存的根私钥,所述根私钥和根公钥形成密钥对,所述根公钥保存在待烧录芯片中;
第一签名模块,用于根据所述根私钥对所述第一公钥进行签名,得到公钥证书;
第二签名模块,用于根据所述第一私钥对所述待烧录数据文件进行签名,生成包括签名值的签名数据文件;
第一烧录模块,用于将所述签名数据文件和公钥证书烧录至待烧录芯片的缓存中,以使得待烧录芯片根据所述根公钥和公钥证书验证所述签名数据文件,以得到待烧录数据,并将所述待烧录数据烧录至所述待烧录芯片的存储器中。
12.一种存储器烧录装置,应用于待烧录芯片中,其特征在于,包括:
加载模块,用于在待烧录芯片启动的过程中,从所述待烧录芯片的缓存中加载签名数据文件和公钥证书,所述签名数据文件是根据第一私钥对待烧录数据文件进行签名得到的,所述公钥证书是根据预设芯片文件处理应用中保存的根私钥对第一公钥进行签名后得到的,所述第一私钥和所述第一公钥形成密钥对;
第三获取模块,用于获取待烧录芯片的一次性可编程存储器中保存的加密公钥数据以及根证书,所述根证书中包括根公钥,所述加密公钥数据是对根公钥进行第一加密得到的,所述根公钥和所述根私钥形成密钥对;
公钥加密模块,用于将所述根证书中的根公钥进行第一加密后得到第一加密数据;
第一验证模块,用于当所述第一加密数据与所述加密公钥数据相同时,根据所述根证书中的根公钥来验证所述公钥证书;
第二验证模块,用于若所述公钥证书通过验证,利用所述公钥证书中的第一公钥来验证所述签名数据文件,以得到待烧录数据文件;
第二烧录模块,用于将所述待烧录数据文件中的待烧录数据烧录至所述待烧录芯片的存储器中。
13.一种待烧录芯片,其包括存储器和处理器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求6至10任一项所述的存储器烧录方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011574639.2A CN112612486B (zh) | 2020-12-28 | 2020-12-28 | 存储器烧录方法、装置和待烧录芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011574639.2A CN112612486B (zh) | 2020-12-28 | 2020-12-28 | 存储器烧录方法、装置和待烧录芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612486A CN112612486A (zh) | 2021-04-06 |
CN112612486B true CN112612486B (zh) | 2021-05-14 |
Family
ID=75248117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011574639.2A Active CN112612486B (zh) | 2020-12-28 | 2020-12-28 | 存储器烧录方法、装置和待烧录芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612486B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312065B (zh) * | 2021-06-06 | 2022-10-21 | 深圳市昂科技术有限公司 | 数据烧录方法、装置、终端及存储介质 |
WO2023222238A1 (en) * | 2022-05-20 | 2023-11-23 | Huawei Technologies Co., Ltd. | Apparatus and method for secure boot using authorized subkeys |
CN115632776B (zh) * | 2022-11-15 | 2023-03-17 | 北京智芯微电子科技有限公司 | 密钥烧录方法、装置、电子设备及可读存储介质 |
CN117272317B (zh) * | 2023-09-25 | 2024-02-23 | 中汽智联技术有限公司 | 一种系统安全启动方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583162A (zh) * | 2018-11-30 | 2019-04-05 | 上海芯钛信息科技有限公司 | 一种基于国密算法的身份识别方法及系统 |
CN109992288A (zh) * | 2019-04-12 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种固件更新方法、装置和计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279372B (zh) * | 2013-05-23 | 2017-07-28 | 青岛海信宽带多媒体技术有限公司 | 机顶盒软件升级方法及机顶盒 |
CN104572168B (zh) * | 2014-09-10 | 2018-06-05 | 中电科技(北京)有限公司 | 一种bios自更新保护系统及方法 |
US10333903B1 (en) * | 2015-06-16 | 2019-06-25 | Amazon Technologies, Inc. | Provisioning network keys to devices to allow them to provide their identity |
CN106560830A (zh) * | 2016-07-01 | 2017-04-12 | 哈尔滨安天科技股份有限公司 | 一种Linux嵌入式系统中的安全防护方法及系统 |
CN108347332A (zh) * | 2017-06-06 | 2018-07-31 | 清华大学 | 验证固件签名的方法及装置 |
US11444780B2 (en) * | 2019-05-21 | 2022-09-13 | Micron Technology, Inc. | Secure replaceable verification key architecture in a memory sub-system |
CN111984962A (zh) * | 2020-09-08 | 2020-11-24 | 英韧科技(上海)有限公司 | 固件安全验证方法及装置 |
-
2020
- 2020-12-28 CN CN202011574639.2A patent/CN112612486B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583162A (zh) * | 2018-11-30 | 2019-04-05 | 上海芯钛信息科技有限公司 | 一种基于国密算法的身份识别方法及系统 |
CN109992288A (zh) * | 2019-04-12 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种固件更新方法、装置和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112612486A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612486B (zh) | 存储器烧录方法、装置和待烧录芯片 | |
EP3458999B1 (en) | Self-contained cryptographic boot policy validation | |
US8423789B1 (en) | Key generation techniques | |
CN105144626B (zh) | 提供安全性的方法和设备 | |
US20150095652A1 (en) | Encryption and decryption processing method, apparatus, and device | |
CN105260668A (zh) | 一种文件加密方法及电子设备 | |
CN110149209B (zh) | 物联网设备及其提高数据传输安全性的方法和装置 | |
CN103427984A (zh) | 用于使用设备id和用户验证信息来生成安全密钥的装置 | |
KR20130140948A (ko) | 저장 장치의 식별자에 기반한 컨텐츠의 암복호화 장치 및 방법 | |
CN107315966B (zh) | 固态硬盘数据加密方法及系统 | |
CN111404682B (zh) | 一种Android环境密钥分段处理方法及装置 | |
CN111783078A (zh) | Android平台安全芯片控制系统 | |
CN112346759A (zh) | 一种固件升级方法、装置及计算机可读存储介质 | |
US11128455B2 (en) | Data encryption method and system using device authentication key | |
US10771266B2 (en) | Method for configuring a transponder, transponder and base station | |
CN109960935B (zh) | 确定tpm可信状态的方法、装置及存储介质 | |
CN112887077A (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
WO2012126483A1 (en) | Data protection using distributed security key | |
US20150200777A1 (en) | Data securing method, data securing system and data carrier | |
KR20210132721A (ko) | 네트워크에 액세스 시의 보안 통신 | |
CN116455572A (zh) | 数据加密方法、装置及设备 | |
CN111386513B (zh) | 数据处理的方法、装置和系统芯片 | |
CN109189450A (zh) | 一种服务器固件升级的方法及装置 | |
CN101841353B (zh) | 一种通过加密狗进行数据加密的方法及设备 | |
KR100952300B1 (ko) | 저장매체의 안전한 데이터 관리를 위한 단말 장치, 메모리및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |