CN110380854A - 针对多个系统的根密钥生成、隔离方法及根密钥模块 - Google Patents

针对多个系统的根密钥生成、隔离方法及根密钥模块 Download PDF

Info

Publication number
CN110380854A
CN110380854A CN201910738810.XA CN201910738810A CN110380854A CN 110380854 A CN110380854 A CN 110380854A CN 201910738810 A CN201910738810 A CN 201910738810A CN 110380854 A CN110380854 A CN 110380854A
Authority
CN
China
Prior art keywords
root key
key
data
root
mask
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.)
Pending
Application number
CN201910738810.XA
Other languages
English (en)
Inventor
朱华
沈晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Semidrive Technology Co Ltd
Original Assignee
Nanjing Semidrive Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Semidrive Technology Co Ltd filed Critical Nanjing Semidrive Technology Co Ltd
Priority to CN201910738810.XA priority Critical patent/CN110380854A/zh
Publication of CN110380854A publication Critical patent/CN110380854A/zh
Priority to PCT/CN2020/108570 priority patent/WO2021027827A1/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

一种针对多个系统的根密钥生成、隔离方法及根密钥模块。本发明首先将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据,而后对所述密钥源数据进行密钥生成运算,获得对应该系统的系统根密钥数据。如此所获得的对应各个系统的根密钥,由于其生成所基于的特征信息不同,而能够相互之间保持独立。应用本发明的虚拟化设计,能够为不同的系统产生不同的系统根密钥,有效地实现不同系统之间的安全密钥隔离。由于每个系统不需分别调取芯片根密钥进行加密,芯片根密钥的使用场景几乎被限制到仅仅生成系统根密钥时需要使用。由此,本发明能够减少芯片根密钥信息泄露的概率。

Description

针对多个系统的根密钥生成、隔离方法及根密钥模块
技术领域
本发明涉及片上系统(SoC)的数据安全领域,具体而言涉及一种根密钥的安全技术。
背景技术
虚拟化(英语:Virtualization)是一种资源管理技术,其将实体资源,如计算逻辑、接口、存储资源,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户能够以比原本的组态更好的方式来应用这些实体资源。这些资源的新虚拟部份不受现有资源的架设方式约束,也不受地域或物理组态所限制。这种虚拟化资源一般包含有对计算能力和资料存储的管理。
现在的越来越多的芯片可以实现虚拟化,实现虚拟化的好处是可以运行多个虚拟系统,这些虚拟系统拥有各自的计算资源和存储资源,且互不干扰。各虚拟系统所运行的软件也可以独立移植和开发,不需要考虑其他虚拟系统的存在。这样的具有虚拟系统运行能力的芯片系统,其所能够应用的场景和能够实现的功能更丰富,也更复杂。但是,这对于每个虚拟系统的运行和数据存储安全提出了更高需求。
根密钥是芯片系统安全的根本,必须进行严密的保护。一旦芯片系统的根密钥被获取,那么整个系统的安全性也将丧失。
对于SoC系统,根密钥往往是从内部非易失性的单次编程存储(OTP)或者具有电池供电的易失性存储空间(例如寄存器)上生成。而这些资源都是相当有限的。对于同一SoC系统上需要运行多个虚拟系统的情形,如果多个虚拟系统共享同一个根密钥,这不仅不利于各系统间数据的隔离与保护,还会必然的增加根密钥的使用场景和使用频率,增加了芯片根密钥信息熵泄露的概率。
发明内容
本发明针对现有技术的不足,提供一种针对多个系统的根密钥生成、隔离方法及根密钥模块,本发明通过密钥生成运算对每一个系统唯一对应的密钥元数据进行计算,为每一个系统单独生成一个系统根密钥数据,避免各系统对芯片根密钥的反复取用以保证数据安全。本发明具体采用如下技术方案。
首先,为实现上述目的,提出一种针对多个系统的根密钥生成方法,其步骤包括:将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据;对所述密钥源数据进行密钥生成运算,获得对应该系统的系统根密钥数据。
可选的,上述根密钥生成方法,其中,各系统所对应的特征信息包括:该系统的系统身份标识,其中,每一个系统的系统身份标识唯一对应该系统;或者,各系统所对应的特征信息包括:该系统的系统身份标识以及该系统的用户自定义数据的组合。
可选的,上述根密钥生成方法,其中,所述密钥生成运算包括:对称加密运算和消息摘要运算。
可选的,上述根密钥生成方法,其中,所述密钥生成运算还包括:对所述对称加密运算和/或消息摘要运算所获得的数据利用真随机数发生器进行掩码运算;掩码运算后所获得的所述系统根密钥数据包括:系统根密钥掩码,以及掩码后的系统根密钥。
可选的,上述根密钥生成方法,其中,步骤还包括:将每一个系统所对应的系统根密钥数据单独存储于对应该系统的存储容器中。
基于上述方法,本发明还提供一种针对多个系统的根密钥隔离方法,其根据上述任一的根密钥生成方法获得所述系统根密钥数据之后,任一系统需要使用根密钥时,均采用以下步骤:取用该系统所对应的存储容器,按照其中的系统根密钥数据进行加密或参与认证。
可选的,上述针对多个系统的根密钥隔离方法,其中,按照存储容器中的系统根密钥数据进行加密或参与认证的步骤包括:根据该系统根密钥数据中的系统根密钥掩码,对掩码后的系统根密钥进行掩码恢复计算,获得系统根密钥;根据该系统根密钥进行加密或参与认证。
同时,本发明还提供一种针对多个系统的根密钥模块,其包括:系统根密钥生成通道,用于将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据,对所述密钥源数据进行密钥生成运算,获得对应该系统的系统根密钥数据;存储容器,包括多个,分别与各系统对应,用于接收并存储所述系统根密钥生成通道输出的对应该系统的系统根密钥数据。
可选的,上述针对多个系统的根密钥模块,其中,每一个所述存储容器分别独立,仅为其所对应的系统提供系统根密钥数据以加密数据或者参与认证。
可选的,上述针对多个系统的根密钥模块,其中,所述多个系统包括同一系统级芯片中的多个虚拟系统;所述根密钥模块连接有单次编程存储或者具有电池供电的易失性存储空间以获取对应该系统级芯片的芯片根密钥。
有益效果
本发明将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据,基于该数据进行加密获得对应该系统的系统根密钥数据。如此所获得的对应各个系统的根密钥,由于其生成所基于的特征信息不同,而能够相互之间保持独立。应用本发明的虚拟化设计,能够为不同的系统产生不同的系统根密钥,有效的实现不同系统之间的安全密钥隔离。由于每个系统不需分别调取芯片根密钥进行加密,芯片根密钥的使用场景几乎被限制到仅仅生成系统根密钥时需要使用。由此,本发明能够减少芯片根密钥信息泄露的概率。
进一步,本发明中的密钥源数据,其包括有各系统独立自带且不重复的系统身份标识,还可增加用户自定义数据,数据之间的组合方式也无过多限制。因此,本发明能够有效保证各个系统之间无法破解对方密钥,保证系统之间的相互独立。
而且,本发明还可进一步对各系统根密钥进行掩码,保证每次调取的掩码后的系统根密钥都不相同。这样,可以进一步降低密钥被获取的可能型。本发明的系统中,为每个系统分别设置存储空间存储其密钥,系统之间相互无干扰。选择具有电池供电的易失性存储空间能够进一步在系统检测发生攻击后,迅速擦除其根密钥,避免信息旁路暴露问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明的根密钥模块的框图。
具体实施方式
为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本发明中所述的“和/或”的含义指的是各自单独存在或两者同时存在的情况均包括在内。
本发明中所述的“连接”的含义可以是部件之间的直接连接也可以是部件间通过其它部件的间接连接。
图1为根据本发明的一种用于虚拟化设计中或其他多系统架构中的根密钥生成、存储、使用和保护的完整方案,能够为各个系统分别提供不同的根密钥,通过相互独立且物理隔离的根密钥,更安全的提供对各个系统的保护。
其包括为每一个系统分别生成其对应的根密钥,以及为每一个系统提供基于其根密钥的隔离方案。
这里的系统,可以理解为虚拟化技术中,同一芯片上运行的不同操作系统,也可理解为一个运算装置或运算装置组合中独立运行的子系统。只要各系统之间需要保护其数据独立加密解密、无法由外界读取有效信息,均可使用本发明的技术实现。
参考图1,上述针对多个系统的根密钥生成方法,其步骤主要在于:
将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据;这一组合的过程,可以根据数据的结构和算法进行,比如数据较多且长度不规则的,可以直接选择简单组合,例如,顺序拼接,进而在后续步骤中用消息摘要算法进行计算,如果采用对称加密算法,则需要对数据进行分组后补全才可进行;
对所述密钥源数据进行密钥生成运算,获得对应该系统的系统根密钥数据。
这里生成各个系统根密钥采用两个源:系统所对应的特征信息与芯片根密钥。而系统所对应的特征信息又可根据需要选择为:该系统的系统身份标识和/或该系统的用户自定义数据。其中,每一个系统的系统身份标识唯一对应该系统,用户自定义字符可以是OEM厂商的名称或者软件的版本号或者系统软硬件参数(例如,内存大小,等)或者任意的数据。基于公开的对称加密算法和消息摘要算法作为生成各系统生成根密钥的密钥生成运算算法,该算法本身经过长期实践能够被确认为安全可靠。由于密钥生成运算过程中,即使仅有一个比特的源数据区别,两个密钥源数据分别加密所获得的密钥之间也能够保证相当的互异程度。因而本发明所提供的加密过程安全可靠。
上述过程中所采用的,所述系统的系统身份标识,其可包括系统自身唯一对应的ID,还可采用系统的参数,比如系统的CPU个数、内存大小,显示器大小,等作为系统的标识使用。系统自身信息或系统自定义的信息均可作为此处的系统身份标识使用。
对于密钥源数据:如果采用对称加密算法,则需要先将数据源分为密钥部分、加密其他参数部分,加密输入数据部分,对于各部分都可能需要用不同方法补齐到算法要求大小。例如,对于分组加密CBC模式,一种可行的方法是采用芯片根密钥作为加密密钥、系统标识作为初始向量,其他用户自定义数据作为加密输入数据,即可进行运算。
如何使用源数据排列组合输入到消息摘要算法或者对称加密算法的方式并不唯一。
生成根密钥的大小应该与所选算法输出大小相匹配:如果需要256bit根密钥,就需要进行两次AES加密运算,才能达到生成根密钥需求大小;而选择SHA-256算法时,SHA-256的结果可以直接用作生成根密钥。
以虚拟系统为例。虚拟化设计中需要为不同的系统产生不同的生成根密钥,以有效的实现不同系统之间安全密钥的隔离。这里的隔离,主要指不同系统的系统根密钥之间在物理存储上的隔离。即一个系统只能访问本系统的根密钥存储容器,看不到另一个系统的根密钥存储容器。如此能够避免系统之间密钥信息被获取。为减少芯片根密钥使用场景,采用本方法之后,只在系统根密钥生成时取用芯片根密钥,其他场景只需使用系统自身的根密钥,就能够有效减少信息泄露的概率。
这种应用场景下,为方便对系统根密钥的取用,各个系统所对应的根密钥的存储,可采用增加真随机数掩码的方式实现存储。由于真随机数的不可预测性,每次复位后存储在介质中的密钥和掩码都不同,这能够大大减小系统密钥被旁路攻击和侵入攻击破解的概率。
具体而言,上述系统根密钥所存储的介质可选择单次编程存储或者具有电池供电的易失性存储空间。每一个所述存储容器分别独立,仅为其所对应的系统提供系统根密钥数据以加密数据或者参与认证。对于易失性存储空间,当系统检测发生攻击后,可以迅速擦除所有系统生成根密钥和随机掩码存储值,避免其密钥被获取。
存储时,每一个系统所对应的系统根密钥数据单独存储于对应该系统的存储容器中。该系统根密钥数据包括:该系统根密钥掩码,以及掩码后的该系统根密钥。其中,一种方式下,对所述对称加密运算和/或消息摘要运算所获得的数据利用真随机数发生器所进行的掩码运算,可选择通过利用该随机数与密钥生成运算所获得的系统根密钥进行异或而实现。
由此,各个系统需要使用根密钥时,仅需取用该系统所对应的存储容器,按照其中的系统根密钥数据进行加密或参与认证即可,无需反复获取芯片根密钥。对于经过掩码的系统密钥,其进行加密或参与认证的步骤还需要增加“根据该系统根密钥数据中的系统根密钥掩码,对掩码后的系统根密钥进行掩码恢复计算,获得系统根密钥”这一步骤,才能够根据该系统根密钥进行加密或参与认证。
以某芯片虚拟化设计四个系统,每个系统分别分配一个CPU,并运行各自的程序为例。
假设该应用场景下:
系统1是一个客户ABC开发的Android系统,系统2是客户ABC开发的Linux,系统3是一个OEM厂商实时操作系统(RTOS),系统4是一个没有操作系统的固件程序(Firmware)。而为了说明方便每个系统对应的系统身份标识ID分别是1,2,3,4。每个系统分别给根密钥生成准备了各自的用户自定义数据。
密钥生成运算包括分组加密算法(具体采用AES),以及消息摘要算法(具体采用SHA-256)。
对于虚拟系统1
当系统1需要生成自己的根密钥时,首先准备用户自定义数据,然后选择SHA-2算法,将256bit的OTP根密钥,系统ID,用户数据的ASCII码按照自定义的方式拼接在一起后根据SHA-2的标准补齐,送入到HASH硬件计算模块,同时向真随机数模块申请256bit的随机数作为掩码;
当HASH SHA-2模块输出256bit结果后,用掩码将输出异或后存储到系统1的根密钥容器中,得到虚拟系统1的系统根密钥数据。
上述计算过程如下:
INPUT:
1)OTP256bit:
0x000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f
2)Virtualization System ID:01
3)User data:ABC Company present
41424320436f6d70616e792050726573656e74(ASCII)
3个输入组合后送入HASH SHA硬件数据:
0x000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f0141424320436f6d70616e792050726573656e74
Algorithm(算法):SHA-256
Output:
0x860949b78a8edf6b1d5488641e63b6a2a1468e194eda10d86c0563127b5306d5。
对于虚拟系统2
当系统2需要生成自己的根密钥时,首先准备用户自定义数据,然后选择继续采用SHA 256运算,系统ID,用户数据的ASCII码送入到SHA-2硬件计算模块,同时向真随机数模块取一个256bit的随机数作为掩码;
当SHA-2模块输出后用掩码将输出异或后存储到系统1的根密钥容器中,得到虚拟系统2的系统根密钥数据。
上述计算过程如下:
Input
1)OTP 256bit:
0x000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f
2)Virtualization System ID:02
3)User data:ABC Company present
0x41424320436f6d70616e792050726573656e74(ASCII)
3个输入组合后送入HASH SHA硬件数据:
0x000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f0241424320436f6d70616e792050726573656e74
Algorithm(算法):SHA-256
Output:
0xf45b6509b96ce898298d64d8f3997eaa5131fdc48d4749a7e3d5177f0b593ddb。
可以看到,系统1和系统2即便只有虚拟系统ID数不同,两者所生成的系统根密钥也完全不同,因而也不会泄露芯片OTP根密钥的信息。
对于虚拟系统3
当系统3需要生成自己的根密钥时,首先准备用户自定义数据,选择AES256bitCBC加密算法,这个时候对采用标准补齐方法将系统ID,用户数据的ASCII码生成一个256bit的数据块,采用系统ID作为初始化向量,用256bit的OTP根密钥,作为加密的密钥,同时向真随机数模块取一个256bit的随机数作为掩码,通过掩码对密钥进行运算得到所述系统4的根密钥数据。
上述计算过程如下:
Input
1)OTP 256bit(as key):
0x000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f
2)Virtualization System ID:03(as IV)
3)User data:OEM RTOSv20190001(as plain data padding using PKCS#7/RFC3369method)
0x 4f454d2052544f53763230313930303031(ASCII)
输入到AES的明文数据是:
0x4f454d2052544f537632303139303030
310b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
Algorithm(算法):AES-CBC
Output:
0x0c2ae0479abe8908f082dd91772e15ed68447807d0998784de956616f8e13691。
对于虚拟系统4
当系统4需要生成自己的根密钥时,首先准备用户自定义数据,然后选择AES256bit CBC加密,这个时候对采用标准补齐方法将系统ID,用户数据的ASCII码生成一个256bit的数据块,采用系统ID作为初始化向量,用256bit的OTP根密钥,作为加密的密钥。同时向真随机数模块取一个256bit的随机数作为掩码;
当AES硬件模块输出后用掩码将输出异或后存储到系统4的根密钥容器中,得到虚拟系统4的系统根密钥数据。
上述计算过程如下:
Input
1)OTP 256bit(as key):
0x000102030405060708090a0b0c0e0f101112131415161718191a1b1c1d1e1f
2)Virtualization System ID:04(as IV)
3)User data:OEM firmware v20190001(as plain data padding using PKCS#7/RFC3369method)
0x4f454d204669726d7761726520763230313930303031(ASCII)
输入到AES的明文数据是:
0x4f454d2052544f537632303139303030
310b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
Algorithm(算法):AES-CBC
Output:
0xe0d2ee00bce7c9c1ac12a4635f550661c05af0b16a937aaa8ec31a669a81e16b
比较四个系统的根密钥和随机掩码后的存储值,可以看到,系统3和系统4只是选取了不同的IV值,结果得到的根密钥结果大相径庭,由此验证本方法能够保证两个系统根密钥信息的独立无关性。
在实际的应用中,可以上述各系统之间还可进一步选择采用不同算法,不同模式以及不同输入组合的进行各个系统根密钥的生成。如此能够进一步扩大生成的密钥的区别,避免泄露或破解。
对上述各系统密钥的存储,可在每次上电后,在各个系统的根密钥生成后,分别向随机数发生器申请一个与根密钥长度相同的真随机数,将随机数和根密钥异或之后结果存储到寄存器中,将该随机数也存储在寄存器中。以这个寄存器作为根密钥容器,实现各系统之间密钥的隔离。
以上述系统为例,应用中,一次上电后4个系统生成的根密钥及其掩码分别是:
根密钥值
860949B78A8EDF6B1D5488641E63B6A2A1468E194EDA10D86C0563127B5306D5,
F45B6509B96CE898298D64D8F3997EAA5131FDC48D4749A7E3D5177F0B593DDB,
0C2AEE0479ABE8908F082DD91772E15ED68447807D0998784DE956616F8E13691,
E0D2EE00BCE7C9C1AC12A4635F550661C05AF0B16A937AAA8EC31A669A81E16B,
申请的随机数random number
790a 4c75b44f a538 3b67 9a8f 0ead 90d4 7b62e16e d583 7179 4f1f f11ff154 515b,
64ae bc97 162f 5ede 1309 000b 0592 6472 1795 0a19 2cb6 512070f8b320a1ee 615e,
409d 64a9 18ee 9292c05f 65c8b1b0c899 5dc8b89b 604c dff9b94d99c3 514b60c7,
819f df8a 3505 8a6f a48e edcb 3a4d 3781 3f29 418d 799b dbd4b23d e3155e16 33fe,
存储在密钥容器中的值:Container
ff03 05c2 3ec1 7a53 2633 12eb 10ce 2676da24 6f77 9b59 61a1 231a920d8a07 578e,
90f5d9ge af43b646 3a84 64d3f60b lad8 46a4f7dd a1f1 1887 932d a45f aab5c85,
4cb7 84ee 8250 1b9a 30dd b859c69e dd74 358c c09c b0d5 587d67d8ffd5a9aa 5656,
614d 318a 89e2 43ae 089c 49a8 6518 31e0ff73b13c 1308a17e 3cfef973c497d295,
而另一次上电后4个系统生成的根密钥及其掩码分别是:
随机掩码值:random number
e649 2398ff56f2dc 3aaa ad8f e874 065b 17a3 96eb 0038 8579 0cb00a126651 775d,
1283 41f9 17d1a487c366a502 41a0 7b1f aa46 5c14 496f 58a0 0fb7b979dbb553ea,
a09d bd1f 7a65 3470 1d68b6bf 14c1fc9f 3add 6ffc 3f28 65a0088811e8d9c3efcf,
796f 8e01 17ac 1d16 1d0d 35c5 2cf1 34c0 1196 5966 9abd 47a0cc9e e3d25663 69d4,
根密钥容器内容:Container
6040 6a2f 75d8 2db7 27fe 25eb f617b0f9b6e5 18f2 4ee2 95a1 60b569001d02 7188,
e6d8 24f0aebd 4clf eaeb c1da b239 05b5fb77a1d0c428 1107ec62ae06d0ec6e31,
acb7 5d58e0db bd78edea 6b2e 63ef e972 5299 17fb efb1e224d61d77fe2122d95e,
99bd 6001ab4b d4d7b11f 91a6 73a4 32a1d1cc a9d7f02e 3d0a 425d f9b4cce288bf,
可以看出每个系统的生成的根密钥完全不同,每次上点后存储的根密钥及其掩码也完全不同。由此可进一步保护密钥信息。
由此,本发明实现了针对多个系统的根密钥模块,其通过系统根密钥生成通道,将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据,对所述密钥源数据进行密钥生成运算,获得对应该系统的系统根密钥;在通过与系统对应的存储容器进行存储。能够将多个系统所共用的同一系统级芯片的芯片根密钥,形成相互间完全独立的系统根密钥,通过系统根密钥取代各系统对芯片根密钥的取用,而防止密钥泄露,提高系统安全性。
当任意一个虚拟系统需要使用根密钥加密数据或者参与认证的时候,只需要取用自己的根密钥存储及其掩码,并不需要使用OTP根密钥或其他片上系统芯片根密钥,也不需要其他虚拟系统的任何信息。将系统根密钥容器中的值和掩码一起送出后,在使用的时候再次异或后,就可以恢复除该系统生成根密钥值。
本方法使用对于非易事存储有限的芯片系统可以生成多个独立相互无关的虚拟系统根密钥(或者可以称为第二级根密钥),大大减少了OTP根密钥或者其他介质存储的芯片根密钥使用的概率。大大减少了根密钥使用几率,降低了OTP根密钥泄露的风险。
本方法生成密钥采用公开的算法,用户可以自由组合参数并加入自定义数据,保证安全性的同时,增加了系统的灵活性。对于生成根密钥的数量没有限制,无论有多少虚拟系统,都可以自定义的产生各自的虚拟系统生成根密钥。
本系统采用随机数掩码存储生成根密钥的方法,使得即便每次生成根密钥都一样,但每次存储的数据都不相同。当系统发生安全事件时,例如检测到非法软件或者非法物理侵入,密钥的存储可以通过电信号控制瞬时擦除。对于旁路攻击,因为每次上电生成的根密钥存储结果不同,可以抵御旁路攻击和物理侵入攻击。
本发明所生成根密钥的结果只有在需要使用的时候才会显露“真身”,所以能够最大限度保护信息的安全。
以上仅为本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些均属于本发明的保护范围。

Claims (10)

1.一种针对多个系统的根密钥生成方法,其特征在于,步骤包括:
将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据;
对所述密钥源数据进行密钥生成运算,获得对应该系统的系统根密钥数据。
2.如权利要求1所述的根密钥生成方法,其特征在于,各系统所对应的特征信息包括:该系统的系统身份标识,每一个系统的系统身份标识唯一对应该系统;
或者,各系统所对应的特征信息包括:该系统的系统身份标识以及该系统的用户自定义数据的组合。
3.如权利要求1所述的根密钥生成方法,其特征在于,所述密钥生成运算包括:对称加密运算和消息摘要运算。
4.如权利要求3所述的根密钥生成方法,其特征在于,所述密钥生成运算还包括:对所述对称加密运算和/或消息摘要运算所获得的数据利用真随机数发生器进行掩码运算;
掩码运算后所获得的所述系统根密钥数据包括:系统根密钥掩码,以及掩码后的系统根密钥。
5.如权利要求3所述的根密钥生成方法,其特征在于,步骤还包括:将每一个系统所对应的系统根密钥数据单独存储于对应该系统的存储容器中。
6.一种针对多个系统的根密钥隔离方法,其特征在于,根据权利要求1至3任一所述的根密钥生成方法获得所述系统根密钥数据之后,任一系统需要使用根密钥时,均采用以下步骤:
取用该系统所对应的存储容器,按照其中的系统根密钥数据进行加密或参与认证。
7.如权利要求6所述的针对多个系统的根密钥隔离方法,其特征在于,按照存储容器中的系统根密钥数据进行加密或参与认证的步骤包括:
根据该系统根密钥数据中的系统根密钥掩码,对掩码后的系统根密钥进行掩码恢复计算,获得系统根密钥;
根据该系统根密钥进行加密或参与认证。
8.一种针对多个系统的根密钥模块,其特征在于,包括:
系统根密钥生成通道,用于将需要生成密钥的系统所对应的特征信息与芯片根密钥组合为对应该系统的密钥源数据,对所述密钥源数据进行密钥生成运算,获得对应该系统的系统根密钥数据;
存储容器,包括多个,分别与各系统对应,用于接收并存储所述系统根密钥生成通道输出的对应该系统的系统根密钥数据。
9.如权利要求8所述的针对多个系统的根密钥模块,其特征在于,每一个所述存储容器分别独立,仅为其所对应的系统提供系统根密钥数据。
10.如权利要求8所述的针对多个系统的根密钥模块,其特征在于,所述多个系统包括同一系统级芯片中的多个虚拟系统;
所述根密钥模块连接有单次编程存储或者具有电池供电的易失性存储空间以获取对应该系统级芯片的芯片根密钥。
CN201910738810.XA 2019-08-12 2019-08-12 针对多个系统的根密钥生成、隔离方法及根密钥模块 Pending CN110380854A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910738810.XA CN110380854A (zh) 2019-08-12 2019-08-12 针对多个系统的根密钥生成、隔离方法及根密钥模块
PCT/CN2020/108570 WO2021027827A1 (zh) 2019-08-12 2020-08-12 生成和使用根密钥的方法,芯片及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910738810.XA CN110380854A (zh) 2019-08-12 2019-08-12 针对多个系统的根密钥生成、隔离方法及根密钥模块

Publications (1)

Publication Number Publication Date
CN110380854A true CN110380854A (zh) 2019-10-25

Family

ID=68258827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910738810.XA Pending CN110380854A (zh) 2019-08-12 2019-08-12 针对多个系统的根密钥生成、隔离方法及根密钥模块

Country Status (2)

Country Link
CN (1) CN110380854A (zh)
WO (1) WO2021027827A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130784A (zh) * 2019-12-25 2020-05-08 成都海光集成电路设计有限公司 一种密钥生成方法、装置、cpu芯片及服务器
CN112073194A (zh) * 2020-09-10 2020-12-11 四川长虹电器股份有限公司 一种抵抗密钥泄露的安全管理方法
WO2021027827A1 (zh) * 2019-08-12 2021-02-18 南京芯驰半导体科技有限公司 生成和使用根密钥的方法,芯片及电子设备
CN112398873A (zh) * 2020-12-03 2021-02-23 广东博智林机器人有限公司 信息加密与解密方法及装置
CN114745112A (zh) * 2022-04-15 2022-07-12 北京凝思软件股份有限公司 根密钥派生方法、装置、电子设备及存储介质
CN116011041A (zh) * 2022-12-07 2023-04-25 成都海光集成电路设计有限公司 密钥管理方法、数据保护方法、系统、芯片及计算机设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997955A (zh) * 2004-06-24 2007-07-11 英特尔公司 提供可信平台模块的安全虚拟化的方法和装置
CN101176100A (zh) * 2005-05-13 2008-05-07 英特尔公司 提供基于软件的安全协处理器的方法和装置
CN101576944A (zh) * 2008-11-20 2009-11-11 武汉大学 基于可信平台模块的计算机安全启动系统
CN102752635A (zh) * 2012-02-23 2012-10-24 中央电视台 一种可下载可替换条件接收系统
CN102752636A (zh) * 2012-02-23 2012-10-24 中央电视台 一种条件接收系统发送端的根密钥生成方法
CN105027136A (zh) * 2012-12-29 2015-11-04 英特尔公司 用于集成电路的安全密钥推导和密码逻辑
CN108959982A (zh) * 2018-07-06 2018-12-07 江苏北弓智能科技有限公司 一种基于硬件加密tf卡的移动终端文件加解密系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771448B2 (en) * 2012-08-10 2020-09-08 Cryptography Research, Inc. Secure feature and key management in integrated circuits
CN108133144A (zh) * 2017-12-22 2018-06-08 浪潮(北京)电子信息产业有限公司 一种虚拟磁盘文件保护方法、装置、设备及可读存储介质
CN109462474A (zh) * 2018-11-14 2019-03-12 郑州云海信息技术有限公司 一种Keystone中Fernet密钥的生成方法及相关装置
CN109858265B (zh) * 2018-11-22 2022-01-28 海光信息技术股份有限公司 一种加密方法、装置及相关设备
CN110380854A (zh) * 2019-08-12 2019-10-25 南京芯驰半导体科技有限公司 针对多个系统的根密钥生成、隔离方法及根密钥模块

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997955A (zh) * 2004-06-24 2007-07-11 英特尔公司 提供可信平台模块的安全虚拟化的方法和装置
CN101176100A (zh) * 2005-05-13 2008-05-07 英特尔公司 提供基于软件的安全协处理器的方法和装置
CN101576944A (zh) * 2008-11-20 2009-11-11 武汉大学 基于可信平台模块的计算机安全启动系统
CN102752635A (zh) * 2012-02-23 2012-10-24 中央电视台 一种可下载可替换条件接收系统
CN102752636A (zh) * 2012-02-23 2012-10-24 中央电视台 一种条件接收系统发送端的根密钥生成方法
CN105027136A (zh) * 2012-12-29 2015-11-04 英特尔公司 用于集成电路的安全密钥推导和密码逻辑
CN108959982A (zh) * 2018-07-06 2018-12-07 江苏北弓智能科技有限公司 一种基于硬件加密tf卡的移动终端文件加解密系统及方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021027827A1 (zh) * 2019-08-12 2021-02-18 南京芯驰半导体科技有限公司 生成和使用根密钥的方法,芯片及电子设备
CN111130784A (zh) * 2019-12-25 2020-05-08 成都海光集成电路设计有限公司 一种密钥生成方法、装置、cpu芯片及服务器
CN111130784B (zh) * 2019-12-25 2023-08-08 成都海光集成电路设计有限公司 一种密钥生成方法、装置、cpu芯片及服务器
CN112073194A (zh) * 2020-09-10 2020-12-11 四川长虹电器股份有限公司 一种抵抗密钥泄露的安全管理方法
CN112398873A (zh) * 2020-12-03 2021-02-23 广东博智林机器人有限公司 信息加密与解密方法及装置
CN114745112A (zh) * 2022-04-15 2022-07-12 北京凝思软件股份有限公司 根密钥派生方法、装置、电子设备及存储介质
CN116011041A (zh) * 2022-12-07 2023-04-25 成都海光集成电路设计有限公司 密钥管理方法、数据保护方法、系统、芯片及计算机设备

Also Published As

Publication number Publication date
WO2021027827A1 (zh) 2021-02-18

Similar Documents

Publication Publication Date Title
CN110380854A (zh) 针对多个系统的根密钥生成、隔离方法及根密钥模块
US10482291B2 (en) Secure field-programmable gate array (FPGA) architecture
Zhao et al. Providing root of trust for ARM TrustZone using on-chip SRAM
US11308241B2 (en) Security data generation based upon software unreadable registers
CN109756492B (zh) 基于sgx的云平台可信执行方法、装置、设备及介质
TW200822068A (en) Methods and apparatuses for securing firmware image distribution and obtaining firmware image from encrypted data
US9178881B2 (en) Proof of device genuineness
US11212082B2 (en) Ciphertext based quorum cryptosystem
US11683178B2 (en) System and method for measuring and reporting IoT boot integrity
CN108491215A (zh) 一种无人机固件保护系统
US20140140504A1 (en) System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
CN104866784A (zh) 一种基于bios加密的安全硬盘、数据加密及解密方法
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
WO2023240866A1 (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
US11783091B2 (en) Executing entity-specific cryptographic code in a cryptographic coprocessor
Trimberger et al. Authenticated encryption for FPGA bitstreams
CN110233729A (zh) 一种基于puf的加密固态盘密钥管理方法
CN110263547A (zh) 基于合约状态的修改次序实现动态加密的方法及装置
CN110457924A (zh) 存储数据保护方法及装置
US11496287B2 (en) Privacy preserving fully homomorphic encryption with circuit verification
US20210111901A1 (en) Executing entity-specific cryptographic code in a trusted execution environment
CN114124366A (zh) 一种可信芯片的密钥生成方法及相关设备
JP7385025B2 (ja) 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行
Module Pure Storage, Inc. Purity Encryption Module FIPS 140-2 Cryptographic Module Non-Proprietary Security Policy
Rodrigues et al. SmartFusion2 SoC as a security module for the IoT world

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191025