CN116633618A - 秘钥加密和解密方法及存储、应用控制***、电子设备 - Google Patents

秘钥加密和解密方法及存储、应用控制***、电子设备 Download PDF

Info

Publication number
CN116633618A
CN116633618A CN202310591353.2A CN202310591353A CN116633618A CN 116633618 A CN116633618 A CN 116633618A CN 202310591353 A CN202310591353 A CN 202310591353A CN 116633618 A CN116633618 A CN 116633618A
Authority
CN
China
Prior art keywords
key
data
module
loading information
secret
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
CN202310591353.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.)
Guangdong Yijiahe Technology Co ltd
Original Assignee
Guangdong Yijiahe 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 Guangdong Yijiahe Technology Co ltd filed Critical Guangdong Yijiahe Technology Co ltd
Priority to CN202310591353.2A priority Critical patent/CN116633618A/zh
Publication of CN116633618A publication Critical patent/CN116633618A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及数据安全技术领域,公开了一种秘钥加密和解密方法及存储、应用控制***、电子设备,该秘钥加密方法,包括:设置通信握手秘钥;根据通信握手秘钥,生成秘钥数据流;创建秘钥加载信息;根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;将秘钥密文数据存储至秘钥的存储空间;该秘钥解密方法,包括:从秘钥的存储空间中读取秘钥密文数据;获取加密时的通信握手秘钥和秘钥加载信息;根据通信握手秘钥和秘钥加载信息,对秘钥密文数据解密,得到秘钥明文数据,本申请通过对网络通信的通信握手秘钥进行加密,再将加密之后的秘钥密文数据进行存储,能够降低通信秘钥被暴力破解的风险,从而提高网络通信的安全性。

Description

秘钥加密和解密方法及存储、应用控制***、电子设备
技术领域
本申请实施方式涉及数据安全技术领域,特别是涉及一种秘钥加密和解密方法及存储、应用控制***、电子设备。
背景技术
随着网络信息安全技术的不断进步,IPSec VPN技术在网络信息安全的应用越来广泛。IPsec VPN指采用IPSec协议来实现远程接入的一种VPN技术,IPSec VPN技术在因特网协议栈中的IP层提供安全业务,操作者能根据通信要求选择相应的安全协议,决定服务所使用的算法,IPSec VPN能提供相互身份验证的方法,保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径以及传输中的数据不被窃取和攻击。由于IPSec VPN通信技术具有很高的安全性,机密性,可靠性,在机器人控制领域,也得到广泛的应用。
IPSec VPN技术在通信方面具有较高的安全性,通信双方在通信之前的需要通过交换通信握手秘钥识别相互的身份,用于通信握手的秘钥往往以数据库或者文件的形式存储在硬盘中,或者存在外部带电可擦可编程只读存储器(EEPROM)、闪存(Flash)介质中,由于硬盘、闪存有较强的可读性,在安全等级要求较高的场合,这种秘钥的存储方式存在较大的风险。
发明内容
本申请实施例提供一种秘钥加密和解密方法及存储、应用控制***、电子设备,通过对网络通信的通信握手秘钥进行加密,再将加密之后的秘钥密文数据进行存储,能够降低通信握手秘钥被暴力破解的风险,从而提高网络通信的安全性。
本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种秘钥加密方法,该秘钥加密方法,包括:
设置通信握手秘钥;
根据通信握手秘钥,生成秘钥数据流;
创建秘钥加载信息;
根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;
将秘钥密文数据存储至秘钥的存储空间。
在一些实施例中,创建秘钥加载信息,包括:
启动授权会话创建访问权限;
创建主键对象,以根据主键对象生成种子秘钥;
根据种子秘钥,创建RSA秘钥,以产生公钥和私钥;
根据公钥和所述私钥,融合生成秘钥加载信息。
在一些实施例中,将秘钥密文数据存储至秘钥的存储空间,包括:
创建存储空间的访问权限;
设置秘钥存储的地址和存储空间,并对存储空间进行授权;
向存储空间写入秘钥密文数据,以对秘钥密文数据进行存储。
在一些实施例中,秘钥的存储空间包括非易失性存储空间。
第二方面,本申请实施例提供一种秘钥解密方法,该秘钥解密方法,包括:
从秘钥的存储空间中读取秘钥密文数据;
获取加密时的秘钥加载信息;
根据通信握手秘钥和秘钥加载信息,对秘钥密文数据解密,得到秘钥明文数据。
在一些实施例中,在从秘钥的存储空间中读取秘钥密文数据之前,方法还包括:
验证秘钥解密身份的合法性;
若验证秘钥解密身份合法,则获取加密时的秘钥加载信息;
若验证秘钥解密身份非法,则不对秘钥密文数据进行解密。
第三方面,本申请实施例提供一种秘钥存储***,该***包数据读取模块、加密模块、解密模块、存储模块;
加密模块用于设置通信握手秘钥;根据通信握手秘钥,生成秘钥数据流;创建秘钥加载信息;根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;
数据读取模块用于从秘钥的存储空间中读取秘钥密文数据;获取加密时的秘钥加载信息;
解密模块用于根据通信握手秘钥和秘钥加载信息,对秘钥密文数据解密,得到秘钥明文数据;
存储模块用于将秘钥密文数据存储至秘钥的存储空间。
在一些实施例中,数据读取模块还用于验证秘钥解密身份的合法性;若验证秘钥解密身份的合法性成功,则可获取加密时的秘钥加载信息;若验证秘钥解密身份的合法性失败,则无法对秘钥密文数据进行解密。
第四方面,本申请实施例提供一种应用控制***,应用于芯片,该***包括:
硬件加密层,包括:身份认证模块以及密码算法模块,身份认证模块用于对基本输入输出***、操作***的启动进行认证,密码算法模块用于对数据进行加密,身份认证模块和密码算法模块共同用于引导操作***启动时候的强制身份验证与识别;
***层,包括设备驱动,设备驱动用于驱动芯片;
应用层,该应用层包括:如第三方面的秘钥存储***。
第五方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;和
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面的秘钥加密方法以及如第二方面的秘钥解密方法。
第六方面,本申请实施例提供一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使电子设备执行如第一方面的秘钥加密方法以及如第二方面的秘钥解密方法。
本申请实施方式的有益效果是:区别于现有技术的情况,本申请实施方式提供一种秘钥加密方法,应用于秘钥存储***,该秘钥加密方法,包括:设置通信握手秘钥;根据通信握手秘钥,生成秘钥数据流;创建秘钥加载信息;根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;将秘钥密文数据存储至秘钥的存储空间,本申请通过对网络通信的通信握手秘钥进行加密,再将加密之后的秘钥密文数据进行存储,能够降低通信秘钥被暴力破解的风险,从而提高网络通信的安全性。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请实施例提供的一种应用控制***的结构示意图;
图2是本申请实施例提供的一种秘钥加密方法的流程示意图;
图3是图2中的步骤S203的细化流程示意图;
图4是图2中的步骤S205的细化流程示意图;
图5是本申请实施例提供的一种秘钥解密方法的流程示意图;
图6是本申请实施例提供的一种验证秘钥解密身份的合法性的示意图;
图7是本申请实施例提供的一种电子设备的结构示意图。
附图标号说明:
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,下面所描述的本申请各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本说明书中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本申请。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
下面结合说明书附图具体阐述本申请的技术方案:
请参阅图1,图1是本申请实施例提供的一种应用控制***的结构示意图;
如图1所示,应用控制***100应用于电子设备(TCM设备),电子设备(TCM设备)包括国产化的可信计算平台模块芯片(TCM芯片),国产化的可信计算平台模块(TCM)的英文全称为“Trusted Cryptography Module”,为可信计算平台提供密码运算功能,具有受保护的存储空间,其中,可信计算平台(trusted computing platform)概念由国家密码管理局提出,可信计算平台构建在计算***中,用于实现可信计算功能的支撑***。可信计算密码支撑平台(cryptographic support platform for trusted computing)是可信计算平台的重要组成部分,包括密码算法、密钥管理、证书管理、密码协议、密码服务等内容,为可信计算平台自身的完整性、身份可信性和数据安全性提供密码支持。
应用控制***100包括硬件加密层110、***层120以及应用层130。
硬件加密层110为TCM芯片,包括身份认证模块111和密码算法模块112,身份认证模块111用于对BIOS/UEFI的启动进行合法性认证管理,其中,UEFI全称为UnifiedExtensible Firmware Interface,即“统一的可扩展固件接口”,是一种详细描述全新类型接口的标准,是适用于电脑的标准固件接口,UEFI旨在提高软件互操作性和解决BIOS的局限性,该合法性认证管理包括在***启动阶段,基于BIOS校验可信操作***,具体的,由验证程序读取硬盘扇区中特定位置的操作***标志,判断是否为可信的操作***,若认证通过,则继续启动操作***;若认证失败,则BIOS停止启动操作***。身份认证模块111还用于对基本输入输出***(Basic Input Output System,BIOS)启动认证管理,密码算法模块112位于板载TCM芯片内,该密码算法模块用于对数据进行加密,身份认证模块和密码算法模块共同用于引导操作***启动时候的强制身份验证与识别。
在本申请实施例中,身份认证模块和密码算法模块的具体工作方法为:操作***启动后,BIOS加电后完成***自检和初始化,板载TCM芯片和安全硬盘分别与BIOS连接,身份认证模块对开机操作者进行强制身份认证,同时,基本输入输出设备(即键盘和鼠标)对操作者身份进行认证,基本输入输出设备对操作者身份验证通过后,操作者通过使用基本输入输出设备完成数据的输入,身份认证模块通过存储在BIOS闪存芯片的密钥数据对操作者输入的数据强制校验,从而验证操作者身份;当BIOS对操作者身份验证通过后,密码算法模块中的SM3算法引擎计算BIOS的哈希值,并将BIOS的哈希值存储于板载TCM芯片中的数据保密存储模块中并由板载TCM芯片中的完整性度量模块调用密码算法模块中的SM1算法将BIOS的哈希值的前128比特作为备份密钥进行SM1算法的加密备份,加密备份的数据存储于板载TCM芯片,由安全硬盘存储的密钥数据对操作者身份再次进行识别和校验,当操作者身份通过后对安全硬盘进行初始化和校验。
另外,硬件加密层还包括基于国密算法的安全认证串口终端,安全认证串口终端的CPU包括SMl算法引擎、SM2算法引擎、SM3算法引擎,以便完成向芯片、操作***提供算法支持的功能;安全认证串口终端的保密存储器用于身份认证信息和私钥的存储,同时也提供与身份认证模块交互信息的保密存储功能;安全认证串口终端的芯片操作***用于通过调用CPU的国密算法引擎完成外发数据的数字签名功能和对收到的数据进行私钥解密处理功能,同时,在串口终端上能够接入生物识别技术,包括但不限于指纹模块、面部设别模块。
***层120包括设备驱动121,设备驱动121为TCM设备驱动,用于驱动TCM芯片,***层120还包括协议栈层,国产化的可信计算平台模块(TCM)中,操作者不能直接操作芯片内部的寄存器,而是通过协议栈等软件实现对TCM的交互,TCM的协议栈层(IPSEC协议处理层)是一个安全传输协议,以保障网络传输过程的安全性,但实际其安全的保障来源还是其传输的数据是经过TCM进行加密后的数据。该协议栈层包括Tpm2_TSS,Tpm2_Tool,Tpm2_Abrmd。TSS(TCG Software Stack,TCG软件栈)又称为可信软件栈,是可信计算平台上TPM的支撑软件。TSS的主要作用是为操作***和应用软件提供使用TPM的接口。TSS的结构可分为内核层、***服务层和操作者程序层。Tpm_tool是TCM的应用工具,用于访问兼容***上的TPM2.0非易失性(NV)空间(索引值),它提供了枚举,创建,删除,查询和锁定NV索引以及读取和写入存储在其中的数据的功能。Tpm2_Abrmd是TCM2访问代理和资源管理器,是一个***守护程序,用于实现TCG的TPM2访问代理(TAB)和资源管理器(RM)规范。Tpm2_TSS,Tpm2_Tool,Tpm2_Abrmd三者提供了应用程序访问TCM的接口,同时进行对TCM的管理。
应用层130包括秘钥存储***131,其中,秘钥存储***131包括数据读取模块1311、加密模块1312、存储模块1313、解密模块1314。
数据读取模块1311分别与存储模块1313、解密模块1314通信连接,该数据读取模块1311用于向存储模块发送读取秘钥密文数据的请求,从秘钥的存储空间中读取秘钥密文数据,并将秘钥密文数据发送至解密模块;获取加密时的秘钥加载信息。
加密模块1312与存储模块1313通信连接,该加密模块1312用于设置通信握手秘钥;根据通信握手秘钥,生成秘钥数据流;创建秘钥加载信息;根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据,并将秘钥密文数据发送至存储模块。
存储模块1313与加密模块1312通信连接,该存储模块1313用于接收加密模块发送的秘钥密文数据,并将秘钥密文数据存储至秘钥的存储空间。
解密模块1314与数据读取模块1311通信连接,用于接收数据读取模块发送的秘钥密文数据;获取加密时的通信握手秘钥和秘钥加载信息;根据通信握手秘钥和秘钥加载信息,对秘钥密文数据解密,得到秘钥明文数据。
在本申请实施例中,加密模块1312具体用于:
启动授权会话创建访问权限;
创建主键对象,以根据主键对象生成种子秘钥;
根据种子秘钥,创建RSA秘钥,以产生公钥和私钥;
根据公钥和私钥,融合生成秘钥加载信息;
创建存储空间的访问权限;
设置秘钥存储的地址和存储空间,并对存储空间进行授权;
向存储空间写入秘钥密文数据,以对秘钥密文数据进行存储。
请参阅图2,图2是本申请实施例提供的一种秘钥加密方法的流程示意图;
其中,该秘钥加密方法,应用于秘钥存储***,具体的,该秘钥加密方法的执行主体为电子设备的一个或多个处理器。
如图2所示,该秘钥加密方法,包括:
在本申请实施例中,在对通信握手秘钥进行加密之前,计算机控制***上电启动,操作***启动之后通过TCM读取会话授权摘要,并验证基本输入输出***(BIOS)和操作***(OS)的合法性;若检查失败,则提示***报错,不能对通信握手秘钥进行加密操作;若检查通过,身份验证成功,这可以进入正常的***开机界面,提示***启动正常,则可进入步骤S201。
步骤S201:设置通信握手秘钥;
具体的,由操作者通过部署工具设置通信握手秘钥,该通信握手秘钥为基于IPSecVPN的通信握手秘钥,该部署工具出厂默认有秘钥设置的初始化密码,在第一次设置IPSecVPN握手秘钥时,需要修改默认的出厂密码,在设置秘钥之前先验证操作者的合法性,若校验不通过,部署工具提示报错,不允许登录进行秘钥设置;若用户身份校验通过,则进入秘钥设置的界面。
步骤S202:根据通信握手秘钥,生成秘钥数据流;
具体的,秘钥数据流是一串用以与明文数据流结合加密、解密的数据流,根据通信握手秘钥,生成秘钥数据流,其中,生成秘钥数据流的方式是通过随机或伪随机过程制造一串秘钥数据流。
步骤S203:创建秘钥加载信息;
在本申请实施例中,TPM(Trusted Platform Module,可信平台模块),指的是由可信赖计算组织(Trusted Computing Group,TCG)提出的TPM硬件安全芯片,以及以此构建起的可信计算体系标准,例如,TPM2.0规范。授权是TPM2.0规范中的核心概念,TPM所有的规范都在保证对各类资源的访问必须得到授权,授权用于控制对TPM实体的访问,为TPM提供安全保障,会话是TPM完成授权的载体和工具,通过设置会话的各种属性和状态来完成各种授权。可信平台模块TPM(Trusted Platform Module)是一种植于计算机内部为计算机提供可信根的芯片。该芯片的规格由可信计算组(Trusted Computing Group)来制定。在国内与之对应的是中国国内研究的TCM(trusted cryptography module,可信密码模块)。
请再参阅图3,图3是图2中的步骤S203的细化流程示意图;
如图3所示,步骤S203:创建秘钥加载信息,包括:
步骤S2031:启动授权会话创建访问权限;
具体的,利用可信平台模块(TPM)中的非易失性存储空间(NV空间)访问工具生成设置TCM访问权限认证的命令,以创建访问权限,该NV空间访问工具用于访问兼容***上的TPM2.0非易失性(NV)空间(索引值),而对任何TPM2.0堆栈的依赖性为零,该工具提供了枚举,创建,删除,查询和锁定NV索引以及读取和写入存储在其中的数据的功能,该工具包括Tpm_tool工具,该Tpm_tool工具为应用于TCM设备的工具。设置TCM访问权限认证的命令包括:tcm2_takeownership(O1,E1,L1),其中,ownership表示对TPM的操作权限的拥有者,参数O1表示Ownerpass,其意义是操作者对TPM设备进行操作时需要使用的密码,其中,TPM设备可以是任何带有TPM芯片的设备,参数E1表示endorsepass,其意义是使用TPM进行背书/签名的密码,参数L1表示Lockpass,其意义是对TPM进行锁定操作。当TCM访问权限认证成功之后,即可获得访问权限。
步骤S2032:创建主键对象,以根据主键对象生成种子秘钥;
具体的,利用可信平台模块(TPM)中的非易失性存储空间(NV空间)访问工具生成命令tpm2_createprimary,创建主键对象,使用创建的主键对象生成种子秘钥,其秘钥为RSA秘钥且哈希函数为SHA256,临时将种子秘钥对象保存在文件缓存文件中,例如,Tpm_tool工具生成种子秘钥的命令包括:tcm2_createprimary(He,K11,G0b,Cpotx.ctx,L1),其中,参数He表示背书秘钥(TPM_RH_ENDORSEMENT),参数K11表示认证密钥,其意义为操作主对象的密码,参数G0b表示生成的主密钥的算法类型,例如,采用SHA256算法,参数Cpotx.ctx表示保存种子秘钥对象的临时文件,参数L1表示对TPM进行锁定操作。
步骤S2033:根据种子秘钥,创建RSA秘钥,以产生公钥和私钥;
具体的,基于已生成的种子秘钥,创建RSA秘钥,即产生公钥和私钥,例如,利用Tpm_tool工具创建RSA秘钥的命令包括:tcm2_create(Cpotx.ctx,key.pub,key.priv),其中,创建的公钥和私钥均保存在秘钥存储***中,key.pub、key.priv是两个文本文件,key.pub用于保存公钥,key.priv用于保存私钥。
步骤S2034:根据公钥和私钥,融合生成秘钥加载信息;
具体的,利用tcm2_load命令结合步骤S2033生成的公钥和私钥,融合生成秘钥加载信息,例如,利用Tpm_tool工具生成秘钥加载信息的命令为:tcm2_load(key.pub,key.priv,RsaObj.ctx),其中,key.pub表示用于保存公钥的文本文件,key.priv表示用于保存私钥的文本文件,RsaObj.ctx表示秘钥加载信息,公钥与私钥融合之后的数据为RsaObj.ctx结构体中的数据。
步骤S204:根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;
具体的,利用rsaencrypt命令,根据秘钥数据流和秘钥加载信息,对明文数据进行加密,该明文数据指的是通信握手秘钥,得到秘钥密文数据,例如,对明文数据进行加密的命令为:Encrydm1=rsaencrypt(RsaObj.ctx,dm1),其中,RsaObj.ctx表示秘钥加载信息,dm1表示秘钥数据流,该加密命令使用的是RSA加密算法。
可以理解的是,RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数较为简单,而将它们的乘积进行因式分解较为困难,因此可以将乘积公开作为加密密钥;RSA加密:密文=明文EmodN密文=明文EmodN,该加密过程是对明文的E次方后除以N后求余数的过程。在已知公钥的前提下,利用Tpm_tool工具生成rsaencrypt命令使用公钥对明文数据进行加密。
步骤S205:将秘钥密文数据存储至秘钥的存储空间;
请再参阅图4,图4是图2中的步骤S205的细化流程示意图;
如图4所示,步骤S205:将秘钥密文数据存储至秘钥的存储空间,包括:
步骤S2051:创建存储空间的访问权限;
具体的,利用Tcm_tool工具生成的命令takeownership创建存储空间的访问权限。例如,创建存储空间的访问权限的命令为tcm2_takeownership(Ownerpass,Ekpass,Lockpass),其中,ownerpass表示操作者对TPM设备进行操作的密码,Ekpass表示使用TPM进行背书/签名的密码,lockpass表示对TPM进行锁定。
步骤S2052:设置秘钥存储的地址和存储空间,并对存储空间进行授权;
具体的,设定秘钥存储的地址和空间,同时给开辟的空间进行授权,以便操作者对TCM芯片内的这块区域进行操作,通过命令tcm2_takeownership(Ownerpass,Ekpass,Lockpass),获取对TPM的操作权限的拥有权,以对读写芯片内部的存储空间进行授权,其中,ownerpass是操作者对TPM设备进行操作的密码,Ekpass是使用TPM进行背书/签名的密码,lockpass是对TPM进行锁定。
步骤S2053:向存储空间写入秘钥密文数据,以对秘钥密文数据进行存储;
具体的,访问预设秘钥存储的地址,利用tcm2_nvwrite(Nv.data,ownerpass)命令向预设秘钥存储的地址对应的存储空间写入秘钥密文数据,以对秘钥密文数据进行存储,该存储空间指的是非易失性存储空间(NV空间),该非易失性存储空间包括但不限于闪存存储器(Flash Memory)、固态硬盘(Solid State Drive,SSD)、存储级内存(Storage ClassMemory,SCM)、快闪存储器(NOR Flash Memory)、随机存储器(Random Access Memory,RAM)、磁性随机存储器(Magnetic RAM,MRAM),其中,Nv.data表示向NV空间写入的数据,ownerpass表示操作者对TPM设备进行操作的密码。除了将秘钥密文数据写入非易失性存储空间之外,还需要将授权会话摘要存储在芯片内部的非易失性存储空间中,该授权会话摘要相当于验证签名,用于保障信息的不可否认性。
请再参阅图5,图5是本申请实施例提供的一种秘钥解密方法的流程示意图;
如图5所示,该秘钥解密方法,包括:
步骤S501:从秘钥的存储空间中读取秘钥密文数据;
具体的,从TCM芯片中的秘钥的存储空间读取秘钥密文数据是写秘钥密文数据的逆操作,利用tcm2_nvdefine(addstart,Length,ownerpass)命令,获取秘钥存储的地址和空间,同时进行授权,以便操作者对TCM芯片内的存储空间进行操作,其中,addstart表示秘钥密文数据存储的起始地址,Length表示读取数据的长度,ownerpass表示操作者对TPM设备进行操作的密码,利用tcm2_nvread(Nv.data,ownerpass)命令向预设秘钥存储的地址NV空间读取秘钥密文数据,其中,Nv.data表示NV空间中读取的数据,ownerpass表示操作者对TPM设备进行操作的密码。
步骤S502:获取加密时的秘钥加载信息;
具体的,秘钥加载信息在对秘钥数据加密之前已经创建,对秘钥密文数据解密时,采用直接调用的方式即可获取加密时的秘钥加载信息。
步骤S503:根据秘钥加载信息,对秘钥密文数据解密,得到秘钥明文数据;
具体的,根据秘钥加载信息,利用tpm2_rsadecrypt命令结合秘钥加载信息对密文数据流文件进行解密,例如,对密文数据流文件进行解密的命令为tpm2_rsadecrypt(RsaObj.ctx,Encrydm1,dm1),其中,RsaObj.ctx表示秘钥加载信息,Encrydm1表示秘钥密文数据,dm1表示明文数据流,通过该命令生成明文数据流文件data.decrypt,并输出明文数据流dm1,以得到秘钥明文数据。
请再参阅图6,图6是本申请实施例提供的一种验证秘钥解密身份的合法性的示意图;
如图6所示,验证秘钥解密身份的合法性,包括:
步骤S601:获取秘钥解密身份;
具体的,在对秘钥密文数据进行解密之前,需要验证秘钥解密身份的合法性,获取秘钥解密身份,该秘钥解密身份包括步骤S2033中生成的用于解密的私钥和用于加密的公钥。
步骤S602:判断秘钥解密身份是否合法;
具体的,判断秘钥解密身份是否合法,即判断用于解密的私钥和用于加密的公钥是否配对,若秘钥解密身份合法,则进入步骤S603;若秘钥解密身份非法,则进入步骤S604。
步骤S603:获取加密时的秘钥加载信息;
具体的,若秘钥解密身份合法,表示验证秘钥解密身份的合法性成功,则TCM读取加密时的秘钥加载信息,并解密该秘钥加载信息,然后结合秘钥加载信息对秘钥密文数据进行解密,生成秘钥明文数据流。
步骤S604:不对秘钥密文数据进行解密;
具体的,若秘钥解密身份非法,表示验证秘钥解密身份的合法性失败,则不对秘钥密文数据进行解密。
在本申请实施例中,通过提供一种秘钥加密方法和秘钥解密方法,该秘钥加密方法,包括:设置通信握手秘钥;根据通信握手秘钥,生成秘钥数据流;创建秘钥加载信息;根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;将秘钥密文数据存储至秘钥的存储空间,该秘钥解密方法,包括:从秘钥的存储空间中读取秘钥密文数据;获取加密时的通信握手秘钥和秘钥加载信息;根据通信握手秘钥和秘钥加载信息,对秘钥密文数据解密,得到秘钥明文数据,本申请通过对网络通信的通信握手秘钥进行加密,再将加密之后的秘钥密文数据进行存储,能够降低通信秘钥被暴力破解的风险,从而提高网络通信的安全性。
请再参阅图7,图7是本申请实施例提供的一种电子设备的结构示意图;
如图7所示,电子设备70,包括一个或多个处理器701以及存储器702。其中,图7中以一个处理器701为例。优选的,该电子设备为可信密码模块设备,即TCM设备。
处理器701和存储器702可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器701,用于提供计算和控制能力,以控制电子设备70执行相应任务,例如,控制电子设备70执行上述任一方法实施例中的秘钥加密方法和秘钥解密方法,其中,该秘钥加密方法包括:设置通信握手秘钥;根据通信握手秘钥,生成秘钥数据流;创建秘钥加载信息;根据秘钥数据流和秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;将秘钥密文数据存储至秘钥的存储空间。该秘钥解密方法包括:从秘钥的存储空间中读取秘钥密文数据;获取加密时的通信握手秘钥和秘钥加载信息;根据通信握手秘钥和所述秘钥加载信息,对秘钥密文数据解密,得到秘钥明文数据。
通过对网络通信的通信握手秘钥进行加密,再将加密之后的秘钥密文数据进行存储,能够降低通信秘钥被暴力破解的风险,从而提高网络通信的安全性。
处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、硬件芯片或者其任意组合;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。
存储器702作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本申请实施例中的秘钥加密方法和秘钥解密方法对应的程序指令/模块。处理器701通过运行存储在存储器702中的非暂态软件程序、指令以及模块,可以实现下述任一方法实施例中的秘钥加密方法和秘钥解密方法。具体地,存储器702可以包括易失性存储器(volatile memory,VM),例如随机存取存储器(random accessmemory,RAM);存储器702也可以包括非易失性存储器(non-volatile memory,NVM),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)或其他非暂态固态存储器件;存储器702还可以包括上述种类的存储器的组合。
存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至处理器701。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器702中,当被一个或者多个处理器701执行时,执行上述任意方法实施例中的秘钥加密方法和秘钥解密方法,例如,执行以上描述的图2所示的各个步骤;也可实现图1的各个模块或单元的功能。
在本申请实施例中,电子设备70还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,电子设备70还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的秘钥加密方法和秘钥解密方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CDROM)、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括一条或多条程序代码,该程序代码存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,以完成上述实施例中提供的秘钥加密方法和秘钥解密方法的方法步骤。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来程序代码相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上述的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种秘钥加密方法,应用于秘钥存储***,其特征在于,所述方法包括:
设置通信握手秘钥;
根据所述通信握手秘钥,生成秘钥数据流;
创建秘钥加载信息;
根据所述秘钥数据流和所述秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;
将所述秘钥密文数据存储至秘钥的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述创建秘钥加载信息,包括:
启动授权会话创建访问权限;
创建主键对象,以根据所述主键对象生成种子秘钥;
根据所述种子秘钥,创建RSA秘钥,以产生公钥和私钥;
根据所述公钥和所述私钥,融合生成秘钥加载信息。
3.根据权利要求1所述的方法,其特征在于,所述将所述秘钥密文数据存储至秘钥的存储空间,包括:
创建存储空间的访问权限;
设置秘钥存储的地址和存储空间,并对所述存储空间进行授权;
向所述存储空间写入所述秘钥密文数据,以对所述秘钥密文数据进行存储。
4.根据权利要求1所述的方法,其特征在于,所述秘钥的存储空间包括非易失性存储空间。
5.一种秘钥解密方法,应用于秘钥存储***,其特征在于,所述方法包括:
从秘钥的存储空间中读取秘钥密文数据;
获取加密时的秘钥加载信息;
根据所述秘钥加载信息,对所述秘钥密文数据解密,得到秘钥明文数据。
6.根据权利要求5所述的方法,其特征在于,在从秘钥的存储空间中读取秘钥密文数据之前,所述方法还包括:
验证秘钥解密身份的合法性;
若验证所述秘钥解密身份合法,则获取加密时的秘钥加载信息;
若验证所述秘钥解密身份非法,则不对所述秘钥密文数据进行解密。
7.一种秘钥存储***,其特征在于,所述***包括数据读取模块、加密模块、解密模块、存储模块;
所述加密模块用于设置通信握手秘钥;根据所述通信握手秘钥,生成秘钥数据流;创建秘钥加载信息;根据所述秘钥数据流和所述秘钥加载信息,对明文数据进行加密,得到秘钥密文数据;
所述数据读取模块用于从秘钥的存储空间中读取秘钥密文数据;获取加密时的秘钥加载信息;
所述解密模块用于根据所述秘钥加载信息,对所述秘钥密文数据解密,得到秘钥明文数据;
所述存储模块用于将所述秘钥密文数据存储至秘钥的存储空间。
8.根据权利要求7所述的***,其特征在于,所述数据读取模块还用于验证秘钥解密身份的合法性;若验证秘钥解密身份的合法性成功,则可获取加密时的秘钥加载信息;若验证秘钥解密身份的合法性失败,则无法对秘钥密文数据进行解密。
9.一种应用控制***,其特征在于,应用于芯片,所述***包括:
硬件加密层,包括:身份认证模块以及密码算法模块,所述身份认证模块用于对基本输入输出***、操作***的启动进行认证,所述密码算法模块用于对数据进行加密,所述身份认证模块和所述密码算法模块共同用于引导操作***启动时候的强制身份验证与识别;
***层,包括设备驱动,所述设备驱动用于驱动所述芯片;
应用层,所述应用层包括:如权利要求7或8所述的秘钥存储***。
10.一种电子设备,其特征在于,包括:
至少一个处理器;和
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-4任一项所述的秘钥加密方法或者权利要求5-6任一项所述的秘钥解密方法。
CN202310591353.2A 2023-05-23 2023-05-23 秘钥加密和解密方法及存储、应用控制***、电子设备 Pending CN116633618A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310591353.2A CN116633618A (zh) 2023-05-23 2023-05-23 秘钥加密和解密方法及存储、应用控制***、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310591353.2A CN116633618A (zh) 2023-05-23 2023-05-23 秘钥加密和解密方法及存储、应用控制***、电子设备

Publications (1)

Publication Number Publication Date
CN116633618A true CN116633618A (zh) 2023-08-22

Family

ID=87641265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310591353.2A Pending CN116633618A (zh) 2023-05-23 2023-05-23 秘钥加密和解密方法及存储、应用控制***、电子设备

Country Status (1)

Country Link
CN (1) CN116633618A (zh)

Similar Documents

Publication Publication Date Title
CN109075976B (zh) 取决于密钥认证的证书发布
US11036869B2 (en) Data security with a security module
CN113545006B (zh) 远程授权访问锁定的数据存储设备
EP2965254B1 (en) Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
EP2659373B1 (en) System and method for secure software update
England et al. A trusted open platform
WO2021073170A1 (zh) 数据提供和融合的方法及装置
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US8462955B2 (en) Key protectors based on online keys
CN102646077B (zh) 一种基于可信密码模块的全盘加密的方法
US9064129B2 (en) Managing data
US7526649B2 (en) Session key exchange
US10211977B1 (en) Secure management of information using a security module
US8019994B2 (en) Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
US8953805B2 (en) Authentication information generating system, authentication information generating method, client apparatus, and authentication information generating program for implementing the method
CN116490868A (zh) 用于可信执行环境中的安全快速机器学习推理的***和方法
CN102456111B (zh) 一种Linux操作***许可控制的方法及***
US9280687B2 (en) Pre-boot authentication using a cryptographic processor
US11368291B2 (en) Mutually authenticated adaptive management interfaces for interaction with sensitive infrastructure
KR101639714B1 (ko) 스마트 그리드 기기 인증 방법
US20160335453A1 (en) Managing Data
US11743055B2 (en) Storing data on target data processing devices
WO2023246509A1 (zh) 用于处理基因数据的方法、装置、设备和介质
Yu et al. A trusted remote attestation model based on trusted computing

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