CN117278212A - 密钥生成方法、装置、系统、电子设备及可读存储介质 - Google Patents

密钥生成方法、装置、系统、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117278212A
CN117278212A CN202311336646.2A CN202311336646A CN117278212A CN 117278212 A CN117278212 A CN 117278212A CN 202311336646 A CN202311336646 A CN 202311336646A CN 117278212 A CN117278212 A CN 117278212A
Authority
CN
China
Prior art keywords
key
data
session
array
module
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
CN202311336646.2A
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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics 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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN202311336646.2A priority Critical patent/CN117278212A/zh
Publication of CN117278212A publication Critical patent/CN117278212A/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/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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]

Landscapes

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

Abstract

本申请公开了一种密钥生成方法、装置、系统、电子设备及可读存储介质,应用于信息安全技术领域。其中,方法包括将物理不可克隆函数产生的根密钥输入至密钥派生函数,以生成会话密钥,并将所述会话密钥存储至密钥阵列中,该根密钥与输入至物理不可克隆函数的用户信息对应;按照预设数据读取规则从密钥阵列中读取会话密钥的相应数据,得到用户的密钥数据,密钥数据包括第一密钥数据和第二密钥数据。将第一密钥数据和第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。本申请可以解决相关技术密钥不安全以及加密处理时间太长的问题,能够满足高速安全应用环境的密钥需求,适用于实时更新密钥的安全系统。

Description

密钥生成方法、装置、系统、电子设备及可读存储介质
技术领域
本申请涉及信息安全技术领域,特别是涉及一种密钥生成方法、装置、系统、电子设备及可读存储介质。
背景技术
随着信息化和数字化社会的发展,用户对信息安全的要求也越来越高。信息在传输和存储过程中,数据的机密性、完整性和可用性均是用户考虑的重要因素,为了保证数据的机密性,不被非授权用户窃取,通常使用加密算法来保护敏感数据。
数据加密的基本过程为利用加密算法,如非对称密码算法,对原来为明文的文件或数据进行加密处理,使其成为不可读的一段代码也即密文,只能在输入相应的密钥之后才能被用户获取。密钥安全决定着整个数据加密的安全性能,IC(Integrated circuit,集成电路设计)设计中,密钥通过晶圆测试、终测(FT)等注入至芯片中,相关技术通常将密钥存储至芯片的非易失性存储器,攻击者极易破解存储的密钥,数据安全性无法得到保证。此外,加密算法的密钥需常更新,相关技术的加密算法会占用大量资源,运算周期较长。这些因素导致相关技术中的密码运算方法难以满足高速安全应用环境的密钥需求。
发明内容
本申请提供了一种密钥生成方法、装置、系统、电子设备及可读存储介质,可以满足高速安全应用环境的密钥需求,能够适用于实时更新密钥的安全系统中。
为解决上述技术问题,本申请提供以下技术方案:
本申请一方面提供了一种密钥生成方法,包括:
将物理不可克隆函数产生的根密钥输入至密钥派生函数,以生成会话密钥,并将所述会话密钥存储至密钥阵列中,所述根密钥与输入至所述物理不可克隆函数的用户信息对应;
掩码按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;
将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
示例性的,所述生成会话密钥,包括:
将所述密钥派生函数的输出数据作为随机数模块的熵源;
运行所述随机数模块,以将所述随机数模块中后处理模块输出的密钥流作为会话密钥。
示例性的,所述生成会话密钥,包括:
将所述密钥派生函数输出的密钥或密钥流作为会话密钥。
示例性的,所述按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据,包括:
沿起始地址从所述密钥阵列的目标地址逐个读取密钥数据,作为分组加密算法的第一组密钥中的第一密钥数据;
将所述目标地址打乱或者按照预设方向进行循环移位后获得新目标地址以及新起始地址,并沿所述新起始地址从新目标地址逐个读取密钥数据,作为所述分组加密算法的第二组密钥中的第一密钥数据;
将所述新目标地址作为目标地址,继续将所述目标地址打乱或者按照所述预设方向进行循环移位后进行密钥数据读取,直至得到所述分组加密算法的最后一组密钥中的第一密钥数据。
示例性的,所述按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据,包括:
从所述密钥阵列中读取所述会话密钥部分位数的数据,作为第二密钥数据。
示例性的,所述得到用户的密钥数据之后,还包括:
对所述密钥阵列中的所述会话密钥进行数据覆盖。
本申请另一方面提供了一种密钥生成装置,包括:
密钥生成存储模块,用于将物理不可克隆函数产生的根密钥输入至密钥派生函数,以生成会话密钥,并将所述会话密钥存储至密钥阵列中,所述根密钥与输入至所述物理不可克隆函数的用户信息对应;
数据读取模块,用于按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;
密码运算模块,用于掩码将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
本申请再一方面提供了一种密钥生成系统,包括:
物理不可克隆函数,用于根据输入的用户信息产生对应根密钥;
密钥派生函数,用于将所述根密钥作为输入,以生成会话密钥;
密钥阵列,用于存储所述会话密钥,并在会话密钥的相应数据经过预设数据读取规则读取得到用户的密钥数据后,将所述会话密钥进行数据覆盖;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;
密钥运算模块,用于将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
本申请还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述密钥生成方法的步骤。
本申请最后还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述密钥生成方法的步骤。
本申请提供的技术方案的优点在于,利用物理不可克隆函数产生加密运算的根密钥,无需保存用户的密钥,只需要已有的用户信息即可获得密钥,可以减缓密钥存储压力;基于物理不可克隆函数的唯一性,可保证密钥在注入过程中的安全性,提高加密算法的整体安全性能。利用密钥派生函数可产生1个或多个安全可靠的会话密钥,不仅可进一步保证根密钥的随机性及安全性,而且占用资源少,运算周期短。将产生的会话密钥存储至密钥阵列,能够增强算法的抗侧信道攻击能力,使攻击者难以攻击,保证高速加密环境中的密钥需求,从而可满足高速安全应用环境的密钥需求,可提高系统的吞吐量,适用于需要实时更新密钥的安全系统中。
此外,本申请还针对密钥生成方法提供了相应的实现装置、系统、电子设备及可读存储介质,进一步使得所述方法更具有实用性,所述装置、系统、电子设备及可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚的说明本申请或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种密钥生成方法的流程示意图;
图2为本申请提供的一个示例性应用场景的框架示意图;
图3为本申请提供的密钥生成装置的一种具体实施方式结构框架示意图;
图4为本申请提供的电子设备的一种具体实施方式结构图;
图5为本申请提供的密钥生成系统的一种具体实施方式结构框架示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及二者的任何变形,意图在于覆盖不排他的包含。术语“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。下面详细的说明本申请的各种非限制性实施方式。为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本申请同样可以实施。在另外一些实例中,对于所属领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
首先参见图1,图1为本申请提供的一种密钥生成方法的流程示意图,本申请可包括以下内容:
S101:将物理不可克隆函数产生的根密钥输入至密钥派生函数,以生成会话密钥,并将会话密钥存储至密钥阵列中。
在本步骤中,PUF(physical unclonable function,物理不可克隆函数)为依赖芯片特征的硬件函数实现电路,作为芯片的数字指纹,是半导体设备(如微处理器)的唯一身份。
PUF具有唯一性和随机性,通过提取芯片制造过程中必然引入的工艺参数偏差,实现激励信号与响应信号唯一对应的函数功能,能够增强芯片抵抗逆向的能力。
利用PUF产生根密钥,基于PUF自身具备的随机性及不可克隆性,可从密钥传入源头保证密钥的安全性。基于PUF自身具备的唯一性,系统中仅需存储用户信息,例如用户的ID信息(身份标识信息),也即利用PUF产生根密钥与输入至物理不可克隆函数的用户信息相唯一的对应关系,这样通过PUF的激励-响应对即可得到相应的根密钥以及用户密钥,密钥无需存储,使用后即删除,无需导入导出。
而参考现有技术,若将密钥存储至OTP(一次性可编程)中,攻击者可使用各种手段攻击或复制存储的密钥值,如采用逆向工程技术,进而破解存储在OTP中的密钥。
若将根密钥存储至EFUSE(一次性可编程存储器)中,EFUSE的编程位可以在显微镜下看到,较容易破解其内部存储的密钥。而且外部导入和密钥存储均需要增加较大的密钥管理工作量。
因此,本方案相比从外部导入,再存储至OTP(One Time Programmable,一次性可编程)或EFUSE(一次性可编程存储器的方式来说,不仅能够增加根密钥的安全性,还可以减少密钥管理和存储压力。
此外,本步骤可以采用任何一种PUF产生用于密码算法的根密钥,例如可为SRAM(static random access memory,静态随机存取存储器)PUF、RO(Ring Oscillator,震荡环)PUF,本申请对此不作任何限定。
考虑到加密算法的密钥需常更新,如非对称密码算法SM2/RSA,运算复杂,占用资源较多,且运算周期较长,影响加密效率,较难满足高速应用环境。
基于此,本步骤还将PUF与KDF(Key Derivation Functions,密钥派生函数)结合产生安全可靠的密钥,占用资源少,运算周期短。其中,KDF接受一个密码(或其他弱密钥材料)作为输入,本申请利用PUF产生用于加密运算的根密钥信息,可以确保密钥的随机性和不可预测性,防止攻击者通过暴力破解密钥。根据实际应用场景确定KDF生成一个还是多个安全密钥材料作为会话密钥。
本步骤可以采用任何一种KDF,如HMAC_SM3(Hash Message AuthenticationCode,散列消息鉴别码)、HMAC_SHA(Secure Hash Algorithm,安全哈希算法)1、HMAC_SHA256、HKDF(基于哈希函数的密钥派生函数),这均不影响本申请的实现。
举例来说,KDF可采用HMAC_SM3算法,基于HMAC_SM3算法的单向性、不可逆推性及校验性,可验证密钥在传输过程中是否存在故障注入及抵抗长度扩展攻击,进一步提高密钥的安全性。
其中,KA(Key Array,密钥阵列)用于存储KDF产生的会话密钥,其内的密钥被读取后密钥阵列会立即进行数据覆盖,例如在密钥被读取后密钥阵列可以立即被全0或全F数据覆盖,直到下次的密钥更新才会有新的数值,可以保证高速加密环境中的密钥需求,有效提升密钥的安全性能。
S102:按照预设数据读取规则从密钥阵列中读取会话密钥的相应数据,得到用户的密钥数据。
其中,预设数据读取规则为基于密钥阵列各地址存储数据量及加密算法所需密钥位数确定,也即根据加密算法的需要,密钥数据为会话密钥的部分数据或不同位数的数据叠加。
本实施例的密钥数据包括第一密钥数据和第二密钥数据,第一密钥数据、第二密钥数据均为按照一定规则也即预设数据读取规则读取的会话密钥的数据所得。
S103:将第一密钥数据和第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
其中,KA内的会话密钥经读取为密钥数据后,可以作为加密运算的加密密钥及其掩码,利用掩码可以掩藏加密算法的中间值信息,使攻击者难以破解其密钥信息,有利于进一步增强加密算法的抗侧信道攻击能力。
本申请可以利用任何一种加密算法进行密码运算处理,密码运算处理包括密钥生成和/或信息认证。
在本申请提供的技术方案中,利用物理不可克隆函数产生加密运算的根密钥,无需保存用户的密钥,只需要已有的用户信息即可获得密钥,可以减缓密钥存储压力;基于物理不可克隆函数的唯一性,可保证密钥在注入过程中的安全性,提高加密算法的整体安全性能。利用密钥派生函数可产生1个或多个安全可靠的会话密钥,不仅可进一步保证根密钥的随机性及安全性,而且占用资源少,运算周期短。将产生的会话密钥存储至密钥阵列,能够增强算法的抗侧信道攻击能力,使攻击者难以攻击,保证高速加密环境中的密钥需求,从而可满足高速安全应用环境的密钥需求,可提高系统的吞吐量,适用于需要实时更新密钥的安全系统中。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
基于上述实施例,本申请还提供了会话密钥的两种生成方式,可包括下述内容:
作为一种示例性的实施方式,将PUF产生的根密钥输入至KDF中,将密钥派生函数输出的密钥或密钥流直接作为会话密钥,也即会话密钥为KDF直接生成的安全密钥材料。
作为另一种与上述实施方式并列的示例性实施方式,随机数模块包括熵源和后处理模块,其两者均决定了随机数的随机性及均匀性。可以将密钥派生函数的输出数据作为随机数模块的熵源;运行该随机数模块,从而将随机数模块中后处理模块输出的密钥流作为会话密钥。
在本实施例中,KDF作为随机数模块的熵源信息,利用PUF自身随机物理噪声及其不可预测性,保证随机数模块的熵源随机且安全。经过随机数模块的后处理模块如aes/sm4、hash/sm3算法产生用于加密运算的会话密钥,可进一步提高加密效率。
若数据通信过程中存在故障注入,使得密钥更新操作受到误判,采用后处理模块的hash/sm3算法可验证通信双方的密钥是否一致,若不一致,则放弃本次密钥更新的结果,从而可进一步提高密钥的安全性,提升整个系统的安全性能。
由上可知,本实施例的KDF的输出可分别作为随机数模块和KA的输入,用户可根据实际需求灵活选择相应的生成方式,有利于提升实用性和灵活性。
基于上述实施例,KDF产生的会话密钥存储至KA中,确保后续实现密码运算的功能模块发送运算请求,可为其提供密钥数值进行加密运算。
为了进一步提升会话密钥的安全性,在上述实施例得到用户的密钥数据之后,还可对密钥阵列中的会话密钥进行数据覆盖。也即加密运算从KA模块中读取密钥进行运算,则KA中存储密钥的原位置可被全0或全F覆盖存储,直到下一次KDF或随机数模块产生的会话密钥替换KA中的全0或全F数据,完成密钥的安全更新,以防止密钥在KA中被破解。
例如KA的每个地址存储32bit的数据,KDF产生的会话密钥为256bit,也即KA存储会话密钥需要使用8个地址。
若后续密码运算所采用的是分组加密算法,如SM4_GCM、AES_gcm,需要向分组加密算法的每组加密模块均输出一组256bit的密钥数据,相应的,这就需要预先设置寻址规则,以便从KA中读取相应的密钥数据。
本申请还提供了一种示例性的寻址方式,可包括下述内容:
沿起始地址从所述密钥阵列的目标地址逐个读取(预设位数的)密钥数据,作为分组加密算法的第一组密钥中的第一密钥数据;将目标地址打乱或者按照预设方向进行循环移位后获得新目标地址以及新起始地址,并沿新起始地址从新目标地址逐个读取(预设位数的)密钥数据,作为分组加密算法的第二组密钥中的第一密钥数据;将新目标地址作为目标地址,继续将目标地址打乱或者按照预设方向进行循环移位后进行密钥数据读取,直至得到分组加密算法的最后一组密钥中的第一密钥数据。
在本实施例中,目标地址可为KA存储会话密钥的第一个地址,也可为存储会话密钥的这8个地址中的任意一个地址。预设方向为地址移位操作的方向,可以向左移位,也可向右移位,所属领域技术人员可基于目标地址来确定,目标地址中的第一个地址即是起始地址。
在按照预设方向对目标地址进行循环移位时,可以预先设置一预设移位值,预设移位值为下一次读取地址数据相比上一次读取地址数据之间所移动的位数,预设位数为当前加密算法所需要的密钥数据的位数,以SM4_GCM为例,预设位数可为256bit。
本实施例通过对KA的地址进行移位操作,按照上述规则为每个加密模块找到对应在KA中存储的密钥数据,然后读取并输入至相应的加密模块中,从而可为多组加密模块提供密钥数据。
以加密算法为SM4_GCM为例,KA为SM4_GCM的多个SM4加密模块提供密钥信息,由于其KA每个地址存储32bit的数据,多个SM4加密模块的密钥可由KA地址移位操作来选取。当然,也可以通过打乱操作进行地址和密钥数据的读取。
对于第一个SM4加密模块,可选取目标地址{0x0000、0x0002、0x0004、0x0006、0x0008、0x000a、0x000c、0x000e}的地址数据作为其密钥信息。
第二个SM4加密模块可经过循环左移4bits选取目标地址{0x0002、0x0004、0x0006、0x0008、0x000a、0x000c、0x000e、0x0000}的地址数据的数据作为其密钥信息。
第三个SM4加密模块即是在第二个SM4加密模块的基础上循环左移4bits,在第一个SM4加密模块对应的目标地址的基础上循环左移8bits的数据,可选取目标地址{0x0004、0x0006、0x0008、0x000a、0x000c、0x000e、0x0000、0x0002}的地址数据经过作为其密钥信息。
此外,在从密钥阵列中读取得到密钥数据时,还可以将密钥阵列中的会话密钥打乱后形成多组新的密钥数据,也即预设数据读取规则还可为会话密钥打乱形成用户密钥数据的方式。
当然,所属领域技术人员也可根据实际情况选择其他寻址方式,这均不影响本申请的实现。
由上可知,本实施例通过将KA地址进行移位或打乱操作,可为分组加密算法提供所需密钥数据,操作简单,易于实现。
示例性的,第二密钥数据作为掩码,用于掩藏加密算法的中间值信息,本实施例可从密钥阵列中读取会话密钥部分位数的数据,将读取这些位数的数据作为第二密钥数据。示例性的,部分位数的数据可为会话密钥的高位数据。
举例来说,会话密钥数据为256bit数据,则从KA中读取会话密钥数据的高128bit数据作为第二密钥数据。
以加密算法为SM4_GCM算法、会话密钥数据为256bit数据举例来说,可从密钥阵列中读取256bit密钥数据,分别作为SM4_GCM算法的自增模块的输入信号和SM4加密模块的密钥信息;从密钥阵列读取会话密钥数据的高128bit密钥数据,作为SM4加密模块的掩码。
本实施例采用SM4_GCM进行密码运算,SM4_GCM将认证与加密融为一个模块,可减少通常认证和加密两个操作之间的延迟,提升运算性能。自增模块根据输入的256bit密钥数据生成子密钥生成,SM4加密模块也即sm4_enc轮流使用子密钥进行非线性迭代运算。
为了进一步提高系统安全性,本实施例还从密钥阵列读取128bit密钥数据作为SM4加密模块的掩码,掩藏加密算法的中间值信息,使攻击者难以破解其密钥信息,增强加密算法的抗侧信道攻击能力。
考虑到用户在不同应用场景下所需求的密码运算需求不同,如在网络通信场景中,需要同时进行加密处理和信息认证处理;而对于系统内部数据来说,只需要进行加密处理即可。为了进一步提高本申请的实用性,本申请还针对不同应用场景设置不同的安全等级,可包括下述内容:
当接收到安全等级配置指令,获取当前安全等级;基于当前安全等级匹配相应的目标运行模式,并按照目标运行模式进行相应的密码运算处理。
在本实施例中,安全等级与运行模式相对应,均为预先设置好的,安全等级例如可为一级、二级、三级,运行模式为密码运算方式,不同安全等级对应不同的运行模式。
为了便于描述,本实施例将当前用户选定的安全等级定义为当前安全等级,与当前安全等级对应的运行模式定义为目标运行模式。用户可根据不同应用场景灵活配置所需的密码运算方式,实用性更强。
作为上述实施例的一种可选的实施方式,本申请所采用的用于实现密码运算的方法为认证加密算法,如SM4_GCM算法,按照目标运行模式进行相应的密码运算处理的过程可包括:
若目标运行模式为加密模式,则进行加密运算;
若目标运行模式为认证模式,则进行认证处理;
若目标运行模式为加密认证模式,则并行进行加密运行和认证处理。
本实施例可选择的密码运算对应的运行模式包括:仅加密模式,仅认证模式,加密认证模式。针对不同的应用场景及安全需求,分别选择这三种运行模式,增强灵活配置性。认证加密算法,如SM4_GCM模式的密码算法,将加密运算和认证运算合二为一,不需要满足两者之间的时序要求,而且加密认证模式相对于加密运算完成后继续进行认证的工作方式,可以并行运算,可以有效提高密码运算效率,提高系统的吞吐量。
此外,为了使所属领域技术人员更加清楚明白本申请的技术方案,本申请还提供了一个示例性的实施例,请参阅图2,可包括下述内容:
密钥生成系统包括PUF、KDF、随机数模块、KA、SM4_GCM和模式调控模块,模式调控模块可集成在系统的处理器中,也可作为一功能模块设置在KA模块和SM4_GCM模块之间。
其中,PUF产生根密钥,KDF基于根密钥输出密钥或密钥流,可将输出的密钥或密钥流直接作为会话密钥存储至KA,也可作为随机数模块的熵源,通过随机数模块的后处理模块产生会话密钥,然后在存储至KA中。KA用于存储会话密钥,以满足高速加密环境。SM4_GCM用于实现密码运算,SM4_GCM包括多个模块,每个模块均包括自增模块、sm4_enc和GMAC,其中,自增模块用于子密钥生成,sm4_enc用于轮流使用子密钥进行非线性迭代运算,为加密计算模块;GMAC用于使用子密钥和字段的乘法运算生成认证标签,可以实现消息认证功能,用于检测消息是否被篡改。
模式调控模块用于根据不同的应用场景及安全需求选择加密算法的运行模式为仅加密模式,仅认证模式还是加密认证模式,增强灵活配置性。当为加密认证模式时,SM4_GCM对加密和认证并行运算,提高运算速率,减少加密和认证间的延时。
其中,KDF为HMAC_SM3算法,其将PUF产生的根密钥作为HMAC_SM3的密钥,经由HMAC_SM3模块,产生位宽为256bit的杂凑值。
此外,基于SM3算法的单向散列性,该密钥派生函数可验证信息传输过程中是否有被篡改。
SM3算法特性为:相同的消息获得的杂凑数值一致,而HMAC_SM3相较于SM3算法具备两个输入端:密钥和消息,相同的消息改变其密钥信息,其杂凑值也会相应发生变化,可以抵抗长度扩展攻击。
由上可知,本实施例能够满足高速安全应用环境的密钥需求,适用于实时更新密钥的安全系统。
本申请还针对密钥生成方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。
下面对本申请提供的密钥生成装置进行介绍,该装置用以实现本申请提供的密钥生成方法,在本实施例中,密钥生成装置可以包括或被分割成一个或多个程序模块,该一个或多个程序模块被存储在存储介质中,并由一个或多个处理器所执行,已完成实施例一公开的密钥生成方法。
本申请所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述密钥生成装置在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能,下文描述的密钥生成装置与上文描述的密钥生成方法可相互对应参照。
基于功能模块的角度,参见图3,图3为本申请提供的密钥生成装置在一种具体实施方式下的结构图,该装置可包括:
密钥生成存储模块301,用于将物理不可克隆函数产生的根密钥输入至密钥派生函数,以生成会话密钥,并将会话密钥存储至密钥阵列中,根密钥与输入至物理不可克隆函数的用户信息对应。
数据读取模块302,用于按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;
密码运算模块303,用于掩码将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
可选的,在本实施例的一些实施方式中,上述密钥生成存储模块301还可用于:将密钥派生函数的输出数据作为随机数模块的熵源;运行随机数模块,以将随机数模块中后处理模块输出的密钥流作为会话密钥。
作为与上述实施例并列的另一种实施方式,上述密钥生成存储模块301还可用于:将密钥派生函数输出的密钥或密钥流作为会话密钥。
可选的,在本实施例的另一些实施方式中,上述数据读取模块302还可用于:
沿起始地址从密钥阵列的目标地址逐个读取密钥数据,作为分组加密算法的第一组密钥中的第一密钥数据;将目标地址打乱或者按照预设方向进行循环移位后获得新目标地址以及新起始地址,并沿新起始地址从新目标地址逐个读取密钥数据,作为分组加密算法的第二组密钥中的第一密钥数据;将新目标地址作为目标地址,继续将目标地址打乱或者按照预设方向进行循环移位后进行密钥数据读取,直至得到分组加密算法的最后一组密钥中的第一密钥数据。
示例性的,在本实施例的一些实施方式中,上述数据读取模块302还可用于:从所述密钥阵列中读取会话密钥部分位数的数据,作为第二密钥数据。
示例性的,在本实施例的一些实施方式中,上述数据读取模块302还可包括数据覆盖单元,该数据覆盖单元用于对密钥阵列中的会话密钥进行数据覆盖。
示例性的,在本实施例的另一些实施方式中,上述密码运算模块303还可用于:当接收到安全等级配置指令,获取当前安全等级;基于当前安全等级匹配相应的目标运行模式,并按照目标运行模式进行相应的密码运算处理。
作为上述实施例的一种可选的实施方式,上述密码运算模块303还可进一步用于:若目标运行模式为加密模式,则进行加密运算;若目标运行模式为认证模式,则进行认证处理;若目标运行模式为加密认证模式,则并行进行加密运行和认证处理。
本申请所述密钥生成装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例能够满足高速安全应用环境的密钥需求,适用于实时更新密钥的安全系统。
上文中提到的密钥生成装置是从功能模块的角度描述,进一步的,本申请还提供一种电子设备,是从硬件角度描述。图4为本申请实施例提供的电子设备在一种实施方式下的结构示意图。如图4所示,该电子设备包括存储器40,用于存储计算机程序;处理器41,用于执行计算机程序时实现如上述任一实施例提到的密钥生成方法的步骤。
其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器,处理器41还可为控制器、微控制器、微处理器或其他数据处理芯片等。
处理器41可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。
处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
在一些实施例中,处理器41可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器40在一些实施例中可以是电子设备的内部存储单元,例如服务器的硬盘。
存储器40在另一些实施例中也可以是电子设备的外部存储设备,例如服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器40还可以既包括电子设备的内部存储单元也包括外部存储设备。
存储器40不仅可以用于存储安装于电子设备的应用软件及各类数据,例如:执行密钥生成方法过程中的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的密钥生成方法的相关步骤。
另外,存储器40所存储的资源还可以包括操作系统402和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作系统402可以包括Windows、Unix、Linux等。数据403可以包括但不限于密钥生成结果对应的数据等。
在一些实施例中,上述电子设备还可包括有显示屏42、输入输出接口43、通信接口44或者称为网络接口、电源45以及通信总线46。其中,显示屏42、输入输出接口43比如键盘(Keyboard)属于用户接口,可选的用户接口还可以包括标准的有线接口、无线接口等。
可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。通信接口44可选的可以包括有线接口和/或无线接口,如WI-FI接口、蓝牙接口等,通常用于在电子设备与其他电子设备之间建立通信连接。
通信总线46可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,
图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域技术人员可以理解,图4中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件,例如还可包括实现各类功能的传感器47。
本申请所述电子设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例能够满足高速安全应用环境的密钥需求,适用于实时更新密钥的安全系统。
可以理解的是,如果上述实施例中的密钥生成方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、多媒体卡、卡型存储器(例如SD或DX存储器等)、磁性存储器、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本申请还提供了一种可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时如上任意一实施例所述密钥生成方法的步骤。
最后,本申请还提供了一种密钥生成系统,如图5所示,该系统可包括物理不可克隆函数51、密钥派生函数52、密钥阵列53及密钥运算模块54;
其中,所述物理不可克隆函数51用于根据输入的用户信息产生对应根密钥;所述密钥派生函数用于将所述根密钥作为输入,以生成会话密钥;所述密钥阵列53,用于存储所述会话密钥,并在会话密钥的相应数据经过预设数据读取规则读取得到用户的密钥数据后,将所述会话密钥进行数据覆盖;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;密钥运算模块54,用于将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
示例性的,上述系统还可包括随机数模块,随机数模块可用于基于密钥派生函数的输出数据作为熵源;运行该随机数模块,以将随机数模块中后处理模块输出的密钥流作为会话密钥。
在本实施例中,物理不可克隆函数51产生根密钥,密钥派生函数52基于根密钥输出密钥或密钥流,可将输出的密钥或密钥流直接作为会话密钥存储至密钥阵列53,也可作为随机数模块的熵源,通过随机数模块的后处理模块产生会话密钥,然后在存储至密钥阵列53中。密钥阵列53用于存储会话密钥,以满足高速加密环境。
本实施例中的物理不可克隆函数51、密钥派生函数52、密钥阵列53及密钥运算模块54的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本实施例能够满足高速安全应用环境的密钥需求,适用于实时更新密钥的安全系统。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的硬件包括装置及电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的一种密钥生成方法、装置、系统、电子设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种密钥生成方法,其特征在于,包括:
将物理不可克隆函数产生的根密钥输入至密钥派生函数,以生成会话密钥,并将所述会话密钥存储至密钥阵列中,所述根密钥与输入至所述物理不可克隆函数的用户信息对应;
按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;
将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
2.根据权利要求1所述的密钥生成方法,其特征在于,所述生成会话密钥,包括:
将所述密钥派生函数的输出数据作为随机数模块的熵源;
运行所述随机数模块,以将所述随机数模块中后处理模块输出的密钥流作为会话密钥。
3.根据权利要求1所述的密钥生成方法,其特征在于,所述生成会话密钥,包括:
将所述密钥派生函数输出的密钥或密钥流作为会话密钥。
4.根据权利要求1所述的密钥生成方法,其特征在于,所述按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据,包括:
沿起始地址从所述密钥阵列的目标地址逐个读取密钥数据,作为分组加密算法的第一组密钥中的第一密钥数据;
将所述目标地址打乱或者按照预设方向进行循环移位后获得新目标地址以及新起始地址,并沿所述新起始地址从新目标地址逐个读取密钥数据,作为所述分组加密算法的第二组密钥中的第一密钥数据;
将所述新目标地址作为目标地址,继续将所述目标地址打乱或者按照所述预设方向进行循环移位后进行密钥数据读取,直至得到所述分组加密算法的最后一组密钥中的第一密钥数据。
5.根据权利要求1所述的密钥生成方法,其特征在于,所述按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据,包括:
从所述密钥阵列中读取所述会话密钥部分位数的数据,作为第二密钥数据。
6.根据权利要求1至5任一项所述的密钥生成方法,其特征在于,所述得到用户的密钥数据之后,还包括:
对所述密钥阵列中的所述会话密钥进行数据覆盖。
7.一种密钥生成装置,其特征在于,包括:
密钥生成存储模块,用于将物理不可克隆函数产生的根密钥输入至密钥派生函数,以生成会话密钥,并将所述会话密钥存储至密钥阵列中,所述根密钥与输入至所述物理不可克隆函数的用户信息对应;
数据读取模块,用于按照预设数据读取规则从所述密钥阵列中读取所述会话密钥的相应数据,得到用户的密钥数据;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;
密码运算模块,用于掩码将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
8.一种密钥生成系统,其特征在于,包括:
物理不可克隆函数,用于根据输入的用户信息产生对应根密钥;
密钥派生函数,用于将所述根密钥作为输入,以生成会话密钥;
密钥阵列,用于存储所述会话密钥,并在会话密钥的相应数据经过预设数据读取规则读取得到用户的密钥数据后,将所述会话密钥进行数据覆盖;其中,所述预设数据读取规则基于所述密钥阵列各地址存储数据量及加密算法所需密钥位数确定;所述密钥数据包括第一密钥数据和第二密钥数据;
密钥运算模块,用于将所述第一密钥数据和所述第二密钥数据对应作为加密密钥和掩码,进行密码运算处理。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至6任一项所述密钥生成方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述密钥生成方法的步骤。
CN202311336646.2A 2023-10-16 2023-10-16 密钥生成方法、装置、系统、电子设备及可读存储介质 Pending CN117278212A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311336646.2A CN117278212A (zh) 2023-10-16 2023-10-16 密钥生成方法、装置、系统、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311336646.2A CN117278212A (zh) 2023-10-16 2023-10-16 密钥生成方法、装置、系统、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN117278212A true CN117278212A (zh) 2023-12-22

Family

ID=89202516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311336646.2A Pending CN117278212A (zh) 2023-10-16 2023-10-16 密钥生成方法、装置、系统、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117278212A (zh)

Similar Documents

Publication Publication Date Title
US11184164B2 (en) Secure crypto system attributes
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
US9553722B2 (en) Generating a key based on a combination of keys
CN110401615B (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
US8171306B2 (en) Universal secure token for obfuscation and tamper resistance
EP2711859B1 (en) Secured computing system with asynchronous authentication
US11308241B2 (en) Security data generation based upon software unreadable registers
US10313128B2 (en) Address-dependent key generator by XOR tree
CN108494740A (zh) 令牌生成和校验方法、智能终端及服务器
US10146701B2 (en) Address-dependent key generation with a substitution-permutation network
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN109347858A (zh) 密码保护方法、身份验证方法、装置、设备及存储介质
EP2996277A1 (en) Securing a crytographic device against implementation attacks
CN103914662A (zh) 一种基于分区的文件加密系统的访问控制方法和装置
CN106100823B (zh) 保护密码装置
CN114499859A (zh) 密码验证方法、装置、设备及存储介质
CN107278357B (zh) 密码系统和方法
JP6246516B2 (ja) 情報処理システム
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
CN117278212A (zh) 密钥生成方法、装置、系统、电子设备及可读存储介质
JP2015015542A (ja) 情報処理システム
KR101677138B1 (ko) 오프라인 토큰의 안전성을 보장할 수 있는 온라인/오프라인 전자서명 방법
CN113508380A (zh) 用于终端实体认证的方法
US20240020383A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
Jain Enhancing security in Tokenization using NGE for storage as a service

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