CN114866228A - 一种实现软密码模块的方法、系统、存储介质及终端 - Google Patents
一种实现软密码模块的方法、系统、存储介质及终端 Download PDFInfo
- Publication number
- CN114866228A CN114866228A CN202210293415.7A CN202210293415A CN114866228A CN 114866228 A CN114866228 A CN 114866228A CN 202210293415 A CN202210293415 A CN 202210293415A CN 114866228 A CN114866228 A CN 114866228A
- Authority
- CN
- China
- Prior art keywords
- key
- random number
- unit
- soft
- entropy
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于密码技术领域,公开了一种实现软密码模块的方法、系统、存储介质及终端,所述实现软密码模块的方法包括:利用随机数生成单元进行熵源的管理和随机数生成;利用密钥管理单元生成密钥对、基于PIN码派生函数KDF生成KEK以及对工作密钥等CSP的安全存储以及PSP的MAC校验;利用SSL通信单元与安全服务平台建立SSL安全通道并从安全服务平台获取多种工作密钥;利用密服务单元提供密码数据加解密、MAC计算、签名验签和实体鉴别服务。针对软密码模块面临的2个核心问题,本发明提供的实现软密码模块的方法与SDK,尤其涉及随机数熵源的选择和随机数的产生,密钥安全存储和密码服务等。
Description
技术领域
本发明属于密码技术领域,尤其涉及一种实现软密码模块的方法、系统、存储介质及终端。
背景技术
目前,有关机关和部门站在安全战略的长远角度提出了推广国密算法与加强网络安全建设,并且在大力发展政务云。密码算法是保障信息安全的核心技术,特别是大数据时代,在保护计算机及政务云安全系统的需求下,密码应用的需求日益增强,数据需要密码的保护来防止非授权的访问。密码技术能够实现实体鉴别和不可抵赖等安全服务,但密码的安全性和可靠性直接取决于实现它们的安全密码模块。
在密码应用系统中,如何保护及使用敏感的密钥信息对整个密码应用系统的安全强度有着至关重要的影响。一般由两种方式来使用敏感的密钥信息:软件密码模块在主机内存中使用密钥;硬件密码模块,密钥存储及使用均在扩展板卡或其他嵌入式密码设备中进行,该嵌入式设备要嵌入到服务器中使用。
对于软件的密码模块,存在一些有待完善和不足的地方,软件密码模块缺乏硬件模块那样清晰的安全边界,软件密码模块运行在一个不受控、不可信的环境中,密钥保护措施存在不满足密码应用基本要求的风险。
随着政务云的普及,以及需要处理的业务数据量的飞跃式发展,依赖于硬件密码卡模块的密码计算不能满足数据处理的要求,一是成本不断提高,二是处理效率低。为此,需要能够在云操作系统内安全计算的软密码模块,软密码模块需要解决2个核心问题:
一是随机源和随机数问题。通常的随机数依赖硬件密码模块的随机数芯片产品真随机数,在软件环境中,如何选择熵源并进行伪随机处理,确保熵源的熵值满足要求,在此熵源下实现一种随机数生成方法,产生的随机数满足随机数检测要求;
二是密钥的存储问题。通常设备密钥或根密钥存储在安全存储芯片中,在开放的系统环境下,软密码模块中,如何生成密钥保护密钥KEK,不存储KEK的同时,密钥需要解密时能按期生成相同的KEY。
发明内容
针对现有技术需要解决的问题,本发明提供了一种实现软密码模块的方法、系统、存储介质及终端。
本发明是这样实现的,一种实现软密码模块的方法包括:随机数生成单元为SSL通信单元提供随机数支持,软密码模块从安全服务平台获取工作密钥,由密钥管理单元进行管理保护和存储工作,工作密钥用于密码服务单元,为应用或服务提供密码服务。
具体包括:随机数生成单元生成随机数并且提供给密钥管理单元、SSL通信单元以及密码服务单元使用;SSL通信单元使用随机数与安全服务平台建立SSL通信安全通道从安全服务平台获取工作密钥;
对获取的工作密钥由密钥管理单元进行管理保护和存储,以及利用获取的工作密钥用于密码服务单元,为应用或服务提供密码服务。
进一步,实现软密码模块的方法还包括:随机数生成单元生成随机数以及公私钥对,通过SSL通信单元,从安全服务平台获取工作密钥,密钥管理单元利用PIN码和盐值(随机数生成单元生成的随机数)分别派生出私钥保护密钥和HMAC密钥,前者用来加密工作密钥、私钥和随机数等关键安全参数(CSP),保证其机密性;后者用来对公钥、盐值和决定性随机比特发生器(DRNG)的阈值等公共安全参数(PSP)做MAC校验,保证其完整性;密码服务单元解密获取工作密钥为应用提供密码服务,随后对私钥保护密钥和HMAC密钥进行销毁。
进一步,实现软密码模块的方法还包括:初始化阶段,密钥管理员输入PIN码并导入软密码模块私钥和公钥证书以及安全服务公钥证书;随机数生成单元获取熵源,安全生成随机数;利用输入的PIN码派生函数KDF以及盐值(由随机数生成单元生成的随机数),派生出私钥保护密钥和HMAC密钥;SSL通信单元使用私钥和公钥证书、安全服务公钥证书以及随机数生成单元生成的随机数与安全服务平台建立SSL通道获取工作密钥,使用私钥保护密钥对工作密钥中的私钥和DRNG的敏感信息进行加密,并存储在CSP文件中;将工作密钥中的公钥、盐值和DRNG的阈值等信息存储在PSP文件中,并使用HMAC密钥对其生成MAC校验值,一同存储在PSP文件中。就绪阶段,密钥管理员输入PIN,PIN派生出的HMAC密钥对PSP文件进行MAC校验,如正确,则派生出私钥保护密钥对CSP文件进行解密,密码服务单元得到工作密钥,对应用提供密码服务;PIN码、私钥保护密钥和HMAC密钥立即进行销毁。
进一步,所述密钥管理单元包括:
1)输入管理员PIN数据,所述管理员PIN为8字节;
2)盐值S=SM3(密钥类别||随机部分);其中HMAC密钥的密钥类别为0x0001;私钥保护密钥类别为0x0002;随机部分为随机数生成单元生成的随机数;
3)迭代次数c=10000000;
4)派生密钥的长度dkLen=16字节;
5)依照《GM/T 0091基于口令的密钥派生规范》,使用HMAC-SM3函数作为PBKDF,;
6)计算:HMAC密钥=HMACSM3pin(S1,c,dkLen);
7)计算:私钥保护密钥=HMACSM3pin(S2,c,dkLen);
8)计算:CSP文件内容=SM4私钥保护密钥(随机数生成单元的CSP||密码服务单元的CSP||SSL通信单元的CSP),其中随机数生成单元的CSP包括随机数、熵源信息、DRNG的内部敏感信息等信息,密码服务单元的CSP包括工作密钥中的对称密钥、非对称密钥的私钥和密码模块的私钥等信息,SSL通信单元的CSP包括SSL通信所需的私钥等信息;
9)计算:PSP文件内容=HMACHMAC密钥(随机数生成单元的PSP||密码服务单元的PSP||SSL通信单元的PSP)||MAC校验值,其中随机数生成单元的PSP包括熵源的熵值、DRNG的阈值等信息,密码服务单元的PSP包括工作密钥中非对称密钥的公钥和密码模块的公钥等信息,SSL通信单元的PSP包括SSL通信所需的公钥证书等信息;
进一步,随机数生成单元进行熵源的管理和随机数生成包括:
(1)获取系统时间、CPU温度和CPU事件的中断时间作为初始熵源,系统随机数发生器生成的随机数作为备用熵源;
(2)获取熵源进行熵估计测试;
(3)获取熵源进行上电健康测试和连续健康测试,通过后,输入熵源进入熵池中,每输入一次熵源,进行一次循环移位寄存器方式的更新;
(4)从熵池中获取全部熵源,使用基于SM3杂凑算法的密钥扩展函数进行压缩作为决定性随机比特发生器DRNG的初始熵源,同时系统随机数也可作为DRNG初始熵源的一部分;
(5)个性化字符串和计数器作为初始熵源获取故障时的备选项,并将初始熵源输入到基于SM3的RNG中,得到随机数;
(6)基于SM3的RNG在输出随机数次数达到220次或者距离上一次输出随机数的时间超过600秒后,进行重播种操作,获取新熵源、更新熵池、备选计数器+1。
进一步,SSL通信单元包括:
密钥管理员导入为密码模块配置的私钥和公钥证书,SSL通信单元使用随机数生成单元生成的随机数,与安全服务平台进行SSL通信,获得工作密钥。
密码服务单元提供数据加解密、MAC计算、签名验签和实体鉴别服务包括:
1)调用随机数生成单元产生随机数,提供随机数服务;
2)提供数据或指令加解密与MAC计算、签名验签、实体身份鉴别、完整性以及完整性验证。
本发明的另一目的在于提供一种应实现软密码模块的系统包括随机数生成单元、密钥管理单元、SSL通信单元和密码服务单元;其中,随机数生成单元,用于进行熵源的管理和随机数生成;
密钥管理单元,通过PIN码派生出KEK,对CSP和PSP进行安全存储;
SSL通信单元,用于与安全服务平台建立SSL安全通道,从安全服务平台获取工作密钥;
密码服务单元,用于提供实体鉴别、数据加解密、签名验签和MAC计算服务。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
利用随机数生成单元进行熵源的管理和随机数生成;利用密钥管理单元生成密钥对、基于PIN码派生函数KDF生成KEK以及对工作密钥等CSP的安全存储以及PSP的MAC校验;利用SSL通信单元与安全服务平台建立SSL安全通道、从安全服务平台获取多种工作密钥;密码服务单元提供密码数据加解密、MAC计算、签名验签和实体鉴别服务。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述实现软密码模块的系统的功能。
本发明的另一目的在于提供一种所述的软密码模块实现软随机数生成和基于PIN码派生函数KDF生成CSP的加密密钥和PSP的MAC校验密钥在云服务、物联网终端以及工业互联网等领域信息安全中的应用。
结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
针对软密码模块面临的2个核心问题,本发明提供了一种实现软密码模块的方法与SDK,尤其涉及随机数熵源的选择和随机数的产生,密钥安全存储和密码服务等。
利用系统资源收集熵源,并对熵源进行熵评估以及健康测试,选择熵值满足要求的熵源产生符合随机数检测要求的随机数;
基于PIN码派生函数KDF生成密钥保护密钥和HMAC密钥,保证了密钥存储机密性和完整性要求。
第二,把技术方案看作一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
本发明软件密码模块所需的随机数和安全存储不依赖硬件,有效地解决了云服务、物联网终端以及工业互联网等领域密码应用所需的随机数的随机性,密钥等CSP的机密性、公钥等PSP的完整性。
第三,本发明的权利要求的创造性还体现在以下方面:
硬件密码模块(HSM)提供了安全芯片以及物理防护等硬件级安全和可信的密钥管理系统,一直以来都是对高价值密钥进行管理的安全设备。虽然HSM能提供必要的安全性,但是在生产环境中也带来了集成难、性能不高等问题。软密码模块在可信执行环境下(如与TPM、TrustZone或SGX结合应用),可保证安全等级一级,甚至安全二级的基础上,以SDK的方式,简单快速地集成在生产环境中,利用高性能CPU或GPU的计算性能,大大提高密钥管理的效率,所以软密码模块一定安全级别上可代替硬件密码模块。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的实现软密码模块的方法流程图;
图2是本发明实施例提供的实现软密码模块的系统结构框图;
图3是本发明实施例提供的实现软密码模块的系统原理图;
图4是本发明实施例提供的实现软密码模块的方法原理图;
图中:1、随机数生成单元;2、密钥管理单元;3、SSL通信单元;4、密码服务单元。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种实现软密码模块的方法、系统、介质、设备及终端,下面结合附图对本发明作详细的描述。
一、为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
实施例1
如图1所示,本发明实施例提供的实现软密码模块的方法包括以下步骤:
S101,利用随机数生成单元进行熵源的管理和随机数生成;
S102,利用密钥管理单元生成密钥对、基于PIN码派生函数KDF生成KEK以及对工作密钥等CSP的安全存储以及PSP的MAC校验;
S103,利用SSL通信单元与安全服务平台建立SSL通信安全通道并从安全服务平台获取多种工作密钥;
S104,利用密服务单元提供密码数据加解密、MAC计算、签名验签和实体鉴别服务。
实施例2
如图2所示,本发明提供的实现软密码模块的系统包括:
随机数生成单元1,用于进行熵源的管理和随机数生成;
密钥管理单元2,通过PIN码派生出KEK,对CSP和PSP进行安全存储;
SSL通信单元3,用于与安全服务平台建立SSL安全通道,从安全服务平台获取工作密钥;
密码服务单元4,用于提供实体鉴别、数据加解密、签名验签和MAC计算服务。
图3是本发明实施例提供的实现软密码模块的系统原理。
实施例3
本发明实施例提供的实现软密码模块的方法包括:随机数生成单元生成随机数以及公私钥对,通过SSL通信单元,从安全服务平台获取工作密钥,密钥管理单元利用PIN码和盐值(随机数生成单元生成的随机数)分别派生出私钥保护密钥和HMAC密钥,前者用来加密工作密钥、私钥和随机数等关键安全参数(CSP),保证其机密性;后者用来对公钥、盐值和决定性随机比特发生器(DRNG)的阈值等公共安全参数(PSP)做MAC校验,保证其完整性;密码服务单元解密获取工作密钥为应用提供密码服务,随后对私钥保护密钥和HMAC密钥进行销毁。
实施例4
如图4所示,本发明实施例提供的实现软密码模块的方法包括:初始化阶段,密钥管理员输入PIN码并导入软密码模块私钥和公钥证书以及安全服务公钥证书;随机数生成单元获取熵源,安全生成随机数;利用输入的PIN码派生函数KDF以及盐值(由随机数生成单元生成的随机数),派生出私钥保护密钥和HMAC密钥;SSL通信单元使用私钥和公钥证书、安全服务公钥证书以及随机数生成单元生成的随机数与安全服务平台建立SSL通道获取工作密钥,使用私钥保护密钥对工作密钥中的私钥和DRNG的敏感信息进行加密,并存储在CSP文件中;将工作密钥中的公钥、盐值和DRNG的阈值等信息存储在PSP文件中,并使用HMAC密钥对其生成MAC校验值,一同存储在PSP文件中。就绪阶段,密钥管理员输入PIN,PIN派生出的HMAC密钥对PSP文件进行MAC校验,如正确,则派生出私钥保护密钥对CSP文件进行解密,密码服务单元得到工作密钥,对应用提供密码服务;PIN码、私钥保护密钥和HMAC密钥立即进行销毁。
实施例5
在本发明优选实施例中,熵源的选择和软随机数产生的方法包括以下步骤:
1.获取系统时间、CPU温度和CPU事件的中断时间作为初始熵源,系统随机数发生器生成的随机数作为备用熵源。
2.获取熵源进行熵估计测试(根据NIST SP800-90B)。
3.获取熵源进行上电健康测试和连续健康测试,通过后,输入熵源进入熵池中,每输入一次熵源,进行一次循环移位寄存器方式的更新。
4.从熵池中获取全部熵源,使用一种基于SM3杂凑算法的密钥扩展函数进行压缩作为决定性随机比特发生器(DRNG)的初始熵源,同时系统随机数也可作为DRNG初始熵源的一部分。
5.个性化字符串和计数器作为初始熵源获取故障时的备选项。
6.把初始熵源输入到一种基于SM3的RNG中,得到随机数。
7.基于SM3的RNG在输出随机数次数达到220次或者距离上一次输出随机数的时间超过600秒后,进行重播种操作,即获取新熵源、更新熵池、备选计数器+1。
实施例6
本发明实施例提供的密钥管理单元包括:
1)输入管理员PIN数据,所述管理员PIN为8字节;
2)盐值S=SM3(密钥类别||随机部分);其中HMAC密钥的密钥类别为0x0001;私钥保护密钥类别为0x0002;随机部分为随机数生成单元生成的随机数;
3)迭代次数c=10000000;
4)派生密钥的长度dkLen=16字节;
5)依照《GM/T 0091基于口令的密钥派生规范》,使用HMAC-SM3函数作为PBKDF,;
6)计算:HMAC密钥=HMACSM3pin(S1,c,dkLen);
7)计算:私钥保护密钥=HMACSM3pin(S2,c,dkLen);
8)计算:CSP文件内容=SM4私钥保护密钥(随机数生成单元的CSP||密码服务单元的CSP||SSL通信单元的CSP),其中随机数生成单元的CSP包括随机数、熵源信息、DRNG的内部敏感信息等信息,密码服务单元的CSP包括工作密钥中的对称密钥、非对称密钥的私钥和密码模块的私钥等信息,SSL通信单元的CSP包括SSL通信所需的私钥等信息;
9)计算:PSP文件内容=HMACHMAC密钥(随机数生成单元的PSP||密码服务单元的PSP||SSL通信单元的PSP)||MAC校验值,其中随机数生成单元的PSP包括熵源的熵值、DRNG的阈值等信息,密码服务单元的PSP包括工作密钥中非对称密钥的公钥和密码模块的公钥等信息,SSL通信单元的PSP包括SSL通信所需的公钥证书等信息;
实施例7
本发明实施例提供的SSL通信单元包括:
密钥管理员导入为密码模块配置的私钥和公钥证书,SSL通信单元使用随机数生成单元生成的随机数,与安全服务平台进行SSL通信,获得工作密钥。
密码服务单元提供数据加解密、MAC计算、签名验签和实体鉴别服务包括:
1)调用随机数生成单元产生随机数,提供随机数服务;
2)提供数据或指令加解密与MAC计算、签名验签、实体身份鉴别、完整性以及完整性验证。
二、为了证明本发明上述的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
本发明实施例1~7提供的实现软密码模块的方法可在银行尾箱,智能印控机设备,智能充电桩,智能门禁等领域进行实际应用。
以智能印控机设备中的软密码模块为例。每次启动设备后,管理员输入PIN码对印控机设备进行认证和管理,PIN码派生出的密钥与软密码模块的产生随机数与文件管理中心进行SSL通信,接收相应文件,进而进行打印、扫描等操作。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种实现软密码模块的方法,其特征在于,所述实现软密码模块的方法包括:随机数生成单元生成随机数并且提供给密钥管理单元、SSL通信单元以及密码服务单元使用;SSL通信单元使用随机数与安全服务平台建立SSL通信安全通道从安全服务平台获取工作密钥;
对获取的工作密钥由密钥管理单元进行管理保护和存储,以及利用获取的工作密钥用于密码服务单元,为应用或服务提供密码服务。
2.如权利要求1所述的实现软密码模块的方法,其特征在于,所述实现软密码模块的方法具体包括以下步骤:随机数生成单元生成随机数以及公私钥对,通过SSL通信单元,从安全服务平台获取工作密钥,密钥管理单元利用PIN码和盐值分别派生出私钥保护密钥和HMAC密钥,私钥保护密钥用于加密工作密钥、私钥和随机数关键安全参数(CSP);HMAC密钥用于对公钥、盐值和决定性随机比特发生器(DRNG)的阈值公共安全参数(PSP)做MAC校验;密码服务单元解密获取工作密钥为应用提供密码服务,随后对私钥保护密钥和HMAC密钥进行销毁。
3.如权利要求1所述的实现软密码模块的方法,其特征在于,所述实现软密码模块的方法还包括以下步骤:
初始化阶段,密钥管理员输入PIN码并导入软密码模块私钥和公钥证书以及安全服务公钥证书;随机数生成单元获取熵源,安全生成随机数;利用输入的PIN码派生函数KDF以及盐值,派生出私钥保护密钥和HMAC密钥;SSL通信单元使用私钥和公钥证书、安全服务公钥证书以及随机数生成单元生成的随机数与安全服务平台建立SSL通道获取工作密钥,使用私钥保护密钥对工作密钥中的私钥和DRNG的敏感信息进行加密,并存储在CSP文件中;将工作密钥中的公钥、盐值和DRNG的阈值等信息存储在PSP文件中,并使用HMAC密钥对其生成MAC校验值,一同存储在PSP文件中;
就绪阶段,密钥管理员输入PIN,PIN派生出的HMAC密钥对PSP文件进行MAC校验,如正确,则派生出私钥保护密钥对CSP文件进行解密,密码服务单元得到工作密钥,对应用提供密码服务;PIN码、私钥保护密钥和HMAC密钥立即进行销毁。
4.如权利要求1所述的实现软密码模块的方法,其特征在于,随机数生成单元生成随机数包括:
(1)获取系统时间、CPU温度和CPU事件的中断时间作为初始熵源,系统随机数发生器生成的随机数作为备用熵源;
(2)获取熵源进行熵估计测试;
(3)获取熵源进行上电健康测试和连续健康测试,通过后,输入熵源进入熵池中,每输入一次熵源,进行一次循环移位寄存器方式的更新;
(4)从熵池中获取全部熵源,使用基于SM3杂凑算法的密钥扩展函数进行压缩作为决定性随机比特发生器DRNG的初始熵源,同时系统随机数也可作为DRNG初始熵源的一部分;
(5)个性化字符串和计数器作为初始熵源获取故障时的备选项,并将初始熵源输入到基于SM3的RNG中,得到随机数;
(6)基于SM3的RNG在输出随机数次数达到220次或者距离上一次输出随机数的时间超过600秒后,进行重播种操作,获取新熵源、更新熵池、备选计数器+1。
5.如权利要求1所述的实现软密码模块的方法,其特征在于,所述密钥管理单元包括:
1)输入管理员PIN数据,所述管理员PIN为8字节;
2)盐值S=SM3(密钥类别||随机部分);其中HMAC密钥的密钥类别为0x0001;私钥保护密钥类别为0x0002;随机部分为随机数生成单元生成的随机数;
3)迭代次数c=10000000;
4)派生密钥的长度dkLen=16字节;
5)依照《GM/T 0091基于口令的密钥派生规范》,使用HMAC-SM3函数作为PBKDF,;
6)计算:HMAC密钥=HMACSM3pin(S1,c,dkLen);
7)计算:私钥保护密钥=HMACSM3pin(S2,c,dkLen);
8)计算:CSP文件内容=SM4私钥保护密钥(随机数生成单元的CSP||密码服务单元的CSP||SSL通信单元的CSP),其中随机数生成单元的CSP包括随机数、熵源信息、DRNG的内部敏感信息等信息,密码服务单元的CSP包括工作密钥中的对称密钥、非对称密钥的私钥和密码模块的私钥信息,SSL通信单元的CSP包括SSL通信所需的私钥信息;
9)计算:PSP文件内容=HMACHMAC密钥(随机数生成单元的PSP||密码服务单元的PSP||SSL通信单元的PSP)||MAC校验值,其中随机数生成单元的PSP包括熵源的熵值、DRNG的阈值信息,密码服务单元的PSP包括工作密钥中非对称密钥的公钥和密码模块的公钥等信息,SSL通信单元的PSP包括SSL通信所需的公钥证书信息。
6.如权利要求1所述的实现软密码模块的方法,其特征在于,所述SSL通信单元包括:
密钥管理员导入为密码模块配置的私钥和公钥证书,SSL通信单元使用随机数生成单元生成的随机数,与安全服务平台进行SSL通信,获得工作密钥。
7.如权利要求1所述的实现软密码模块的方法,其特征在于,所述密码服务单元用于提供数据加解密、MAC计算、签名验签和实体鉴别服务,具体包括:
1)调用随机数生成单元产生随机数,提供随机数服务;
2)提供数据或指令加解密与MAC计算、签名验签、实体身份鉴别、完整性以及完整性验证。
8.一种实施权利要求1~7任意一项所述方法的实现软密码模块的系统,其特征在于,软密码模块的系统包括:随机数生成单元,用于进行熵源的管理和随机数生成;
密钥管理单元,通过PIN码派生出KEK,对CSP和PSP进行安全存储;
SSL通信单元,用于与安全服务平台建立SSL通信安全通道,从安全服务平台获取工作密钥;
密码服务单元,用于提供实体鉴别、数据加解密、签名验签和MAC计算服务。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
利用随机数生成单元进行熵源的管理和随机数生成;利用密钥管理单元生成密钥对、基于PIN码派生函数KDF生成KEK以及对工作密钥等CSP的安全存储以及PSP的MAC校验;利用SSL通信单元与安全服务平台建立SSL安全通道、从安全服务平台获取多种工作密钥;密码服务单元提供密码数据加解密、MAC计算、签名验签和实体鉴别服务。
10.一种信息数据处理终端,所述信息数据处理终端用于实现权利要求1~7任意一项所述实现软密码模块的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210293415.7A CN114866228A (zh) | 2022-03-24 | 2022-03-24 | 一种实现软密码模块的方法、系统、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210293415.7A CN114866228A (zh) | 2022-03-24 | 2022-03-24 | 一种实现软密码模块的方法、系统、存储介质及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114866228A true CN114866228A (zh) | 2022-08-05 |
Family
ID=82627599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210293415.7A Pending CN114866228A (zh) | 2022-03-24 | 2022-03-24 | 一种实现软密码模块的方法、系统、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114866228A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116488811A (zh) * | 2023-06-21 | 2023-07-25 | 豪符密码检测技术(成都)有限责任公司 | 一种密码边界的划分方法 |
-
2022
- 2022-03-24 CN CN202210293415.7A patent/CN114866228A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116488811A (zh) * | 2023-06-21 | 2023-07-25 | 豪符密码检测技术(成都)有限责任公司 | 一种密码边界的划分方法 |
CN116488811B (zh) * | 2023-06-21 | 2023-09-05 | 豪符密码检测技术(成都)有限责任公司 | 一种密码边界的划分方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345806B (zh) | 一种硬件加密卡和加密方法 | |
US10341091B2 (en) | Secure memory storage | |
US7318235B2 (en) | Attestation using both fixed token and portable token | |
CN106529308B (zh) | 一种数据加密方法、装置及移动终端 | |
US9774591B2 (en) | Password manipulation for secure account creation and verification through third-party servers | |
US20050283826A1 (en) | Systems and methods for performing secure communications between an authorized computing platform and a hardware component | |
CN104618096B (zh) | 保护密钥授权数据的方法、设备和tpm密钥管理中心 | |
US20040117318A1 (en) | Portable token controlling trusted environment launch | |
US10776522B1 (en) | Asymmetric protection of circuit designs | |
CN111008094B (zh) | 一种数据恢复方法、设备和系统 | |
KR20110035573A (ko) | 클라우드 컴퓨팅 환경에서 안전한 가상 머신 설치를 제공하는 방법 | |
US10635826B2 (en) | System and method for securing data in a storage medium | |
CN114942729A (zh) | 一种计算机系统的数据安全存储与读取方法 | |
CN114499859A (zh) | 密码验证方法、装置、设备及存储介质 | |
CN114866228A (zh) | 一种实现软密码模块的方法、系统、存储介质及终端 | |
CN114816549B (zh) | 一种保护bootloader及其环境变量的方法及系统 | |
CN115600215A (zh) | 系统启动方法、系统信息处理方法、装置、设备及其介质 | |
CN105357005A (zh) | 一种pci/pci-e接口的电力可信计算密码模块 | |
EP3891630B1 (en) | Method for end entity attestation | |
CN108242997A (zh) | 安全通信的方法与设备 | |
CN114491481B (zh) | 一种基于fpga的安全计算方法及装置 | |
YUAN et al. | Trusted integrity verification scheme of cloud data without bilinear pairings | |
EP3193274A1 (en) | Secure memory storage | |
CN115544583B (zh) | 一种服务器密码机的数据处理方法及装置 | |
CN114374519B (zh) | 一种数据传输的方法、系统及设备 |
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 |