CN116781248A - 加密方法、装置及密钥管理系统 - Google Patents

加密方法、装置及密钥管理系统 Download PDF

Info

Publication number
CN116781248A
CN116781248A CN202210227377.5A CN202210227377A CN116781248A CN 116781248 A CN116781248 A CN 116781248A CN 202210227377 A CN202210227377 A CN 202210227377A CN 116781248 A CN116781248 A CN 116781248A
Authority
CN
China
Prior art keywords
key
computing node
encryption
computing
node
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
CN202210227377.5A
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies 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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202210227377.5A priority Critical patent/CN116781248A/zh
Publication of CN116781248A publication Critical patent/CN116781248A/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)
    • 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
    • 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
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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

Landscapes

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

Abstract

本申请提供加密方法、装置及密钥管理系统,其中,方法应用于第一计算节点,包括如下步骤:首先获取一个或多个密钥因子,然后使用加密密钥对明文数据进行加密得到密文数据,其中,加密密钥为基于一个或多个密钥因子和第一计算节点的标识得到,该标识为第一计算节点的标识或第一计算节点所在设备的标识或目标处理器的标识,最后将密文数据和第一计算节点的标识发送至第二计算节点。该方法能够解决站点(指计算设备集群)之间协商密钥占用站点较多计算资源,以及站点中专门部署的加密节点难以运维大量加密密钥的问题。

Description

加密方法、装置及密钥管理系统
技术领域
本申请涉及通信技术领域,尤其涉及一种加密方法、装置及密钥管理系统。
背景技术
随着计算机技术和互联网技术的迅速发展,信息安全成为人们重点关注的问题。站点之间在进行数据传输时,需要对数据进行加密,以保证数据安全。
目前,站点之间进行数据加密传输的具体过程为:如图1所示,第一站点100中专门部署的加密节点1和第二站点200中专门部署的加密节点2通过协商的方式得到各自的加密密钥,然后,若第一站点100中的任意一个计算节点需要给第二站点200中的某个计算节点发送数据,该数据需要加密节点1进行加密后,传输给加密节点2,由加密节点2进行解密后传输给接收数据的计算节点,如图1所示,计算节点A1将明文数据发送给加密节点1进行加密得到密文数据,加密节点1将密文数据传输给加密节点2,加密节点2对密文数据进行解密得到明文数据,再将明文数据发送给计算节点Bn。
但是,随着业务的发展,站点的数量越来越多,当存在t(t为非常大的自然数)个站点且t个站点需要彼此通信的时候,则每一个站点中专门部署的加密节点都需要与其他t-1个站点中专门部署的加密节点协商得到加密密钥,协商的过程会占用站点较多计算资源,而且,每一个站点中专门部署的加密节点最终会产生出个加密密钥,该加密节点难以运维大量的加密密钥。
发明内容
本申请提供一种加密方法、装置及密钥管理系统,可以解决站点之间协商密钥占用站点较多计算资源的问题,以及解决站点中专门部署的加密节点难以运维大量加密密钥的问题。
第一方面,提供一种加密方法,该方法应用于第一计算节点,包括如下步骤:首先获取一个或多个密钥因子,然后使用加密密钥对明文数据进行加密得到密文数据,其中,加密密钥为基于一个或多个密钥因子和第一计算节点的标识得到,该标识为第一计算节点的标识或第一计算节点所在设备的标识或目标处理器的标识,最后将密文数据和第一计算节点的标识发送至第二计算节点。
其中,第一计算节点可以为发送数据的站点包括的多个计算节点中的任意一个,也就是说,发送数据的站点包括的多个计算节点均可以获取一个或多个密钥因子,然后基于一个或多个密钥因子和自己的标识得到加密密钥,对明文数据进行加密得到密文数据。具体实现中,多个计算节点获取的一个或多个密钥因子可以相同,也可以不同,此处不作具体限定。
上述方案中,站点中的任意一个计算节点均可以获取一个或多个密钥因子,然后基于一个或多个密钥因子和自己的标识得到加密密钥,站点之间无需协商得到加密密钥,因而,该方案可以解决站点之间协商密钥占用站点较多计算资源的问题。此外,站点中的多个计算节点均可以作为加密节点使用,如此,可以使得一个站点与其他多个站点进行通信时,该站点可以通过不同的计算节点与其他多个站点通信,例如,站点A通过计算节点A1与站点B进行通信,站点A通过计算节点A2与站点C和站点D进行通信,每个计算节点仅需维护自己生成的少量加密密钥,如此,可以解决站点中专门部署的加密节点难以运维大量加密密钥的问题。
在一种可能的实现方式中,上述目标处理器用于执行加密操作,其中,第一计算节点包括目标处理器。
具体实现中,第一计算节点可包括一个或者多个处理器,在第一计算节点包括一个处理器时,目标处理器即为该处理器,在第一计算节点包括多个处理器时,目标处理器可以为多个处理器中用于执行加密操作的处理器,多个处理器中用于执行加密操作的处理器可以为一个或多个,即目标处理器可以包括一个或多个处理器,此处不作具体限定。
实施上述实现方式,若第一计算节点基于一个或多个密钥因子和目标处理器核的标识得到加密密钥,从而进行数据加密传输,可以使得即便站点包括的多个计算节点中的某个计算节点的加密密钥泄露,不会导致站点中的其他计算节点的加密密钥泄露,提升站点之间数据传输的安全性。
在一种可能的实现方式中,第一计算节点在获取一个或多个密钥因子时,还可以获取一个或多个密钥因子中每一密钥因子的版本号,此时,第一方面描述的方法还包括如下步骤:向第二计算节点发送用于生成上述加密密钥的一个或多个密钥因子中每一密钥因子的版本号。
实施上述实现方式,可以使得第二计算节点在接收到用于生成加密密钥的一个或多个密钥因子中每一密钥因子的版本号之后,基于一个或多个密钥因子中每一密钥因子的版本号获取一个或多个密钥因子,然后,基于一个或多个密钥因子和第一计算节点的标识得到解密密钥,从而实现对密文数据的解密。
在一种可能的实现方式中,第一计算节点获取的一个或多个密钥因子,可以为第一密钥管理服务节点发送的,也可以为包括第一密钥管理服务节点在内的多个密钥管理服务节点发送的。
举例来讲,假设第一计算节点需获取多个密钥因子,多个密钥因子包括第一密钥因子和第二密钥因子,则第一密钥因子可以为第一密钥管理服务节点向第一计算节点发送的,第二密钥因子可以为第二密钥管理服务节点向第一计算节点发送的。
可以理解,若第一计算节点获取的多个密钥因子为多个密钥管理服务节点发送,即便多个密钥管理服务节点中的某个密钥管理服务节点被劫持或者发生故障,无法向第一计算节点发送密钥因子,第一计算节点基于其他密钥管理服务节点发送的密钥因子也可以获取加密密钥,实现数据加密传输,如此,可以保证第一计算节点的通信稳定性,从而保证站点之间的通信稳定性。
第二方面,提供一种加密方法,该方法应用于第二计算节点,包括如下步骤:首先接收第一计算节点发送的密文数据和第一计算节点的标识,然后基于一个或多个密钥因子和第一计算节点的标识,得到解密密钥,最后利用解密密钥对密文数据解密出明文数据,其中,标识为第一计算节点的标识或第一计算节点所在设备的标识或目标处理器的标识。
其中,第二计算节点可以为接收数据的站点包括的多个计算节点中的任意一个,也就是说,接收数据的站点包括的多个计算节点均可以基于一个或多个密钥因子和第一计算节点的标识,得到解密密钥,对密文数据进行解密。
在一种可能的实现方式中,上述目标处理器用于执行加密操作,其中,第一计算节点包括目标处理器。
在一种可能的实现方式中,第二方面描述的方法还包括如下步骤:接收第一计算节点发送的用于生成加密密钥的一个或多个密钥因子中每一密钥因子的版本号,此时,第二计算节点具体可以通过如下方式实现基于一个或多个密钥因子和第一计算节点的标识,生成解密密钥:基于一个或多个密钥因子中每一密钥因子的版本号和第一计算节点的标识,生成解密密钥。
在一种可能的实现方式中,第二计算节点在基于一个或多个密钥因子和第一计算节点的标识,生成解密密钥之前,第二计算节点还可以接收一个或多个密钥管理服务节点发送的一个或多个密钥因子。
第三方面,提供一种加密装置,该装置包括用于执行第一方面或第一方面任一种可能实现方式中的加密方法的各个模块。
第四方面,提供一种加密装置,该装置包括用于执行第二方面或第二方面任一种可能实现方式中的加密方法的各个模块。
第五方面,提供一种密钥管理系统,该系统包括第一计算节点和第二计算节点,其中,第一计算节点,用于使用加密密钥对明文数据进行加密得到密文数据,将密文数据和第一计算节点的标识发送至第二计算节点,第二计算节点,用于根据一个或多个密钥因子和第一计算节点的标识,获得解密密钥,利用解密密钥对密文数据解密出明文数据。其中,加密密钥为基于一个或多个密钥因子和第一计算节点的标识得到,标识为第一计算节点的标识或第一计算节点所在设备的标识或目标处理器的标识。
在一种可能的实现方式中,第五方面描述的密钥管理系统还包括第一密钥管理服务节点,该节点用于将一个或多个密钥因子发送至第一计算节点。
在一种可能的实现方式中,第五方面描述的密钥管理系统还包括第一密钥管理服务节点和第二密钥管理服务节点,上述一个或多个密钥因子包括第一密钥因子和第二密钥因子,其中,第一密钥管理服务节点,用于将第一密钥因子发送至第一计算节点,第二密钥管理服务节点,用于将第二密钥因子发送至第一计算节点。
实施上述实现方式,可以使得即便多个密钥管理服务节点中的某个密钥管理服务节点被劫持或者发生故障,无法向第一计算节点和第二计算节点发送密钥因子,正常的密钥管理服务节点可以继续向第一计算节点和第二计算节点发送密钥因子,如此,能够保证本申请提供的密钥管理系统的稳定性。此外,还可以保证第一计算节点和第二计算节点的通信稳定性,进而保证站点之间的通信稳定性。
具体实现中,第五方面或第五方面任一种可能实现方式中的密钥管理系统为计算设备集群。
第六方面,提供一种计算节点,所述计算节点包括处理器和存储器;所述处理器用于执行所述存储器存储的指令,使得所述计算节点实现如上述第一方面或第二方面中的任意可能的实现方式提供的方法。
第七方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,当所述计算机可读指令在计算设备或计算设备集群上运行时,使得所述计算设备或计算设备集群执行如上述第一方面或第二方面中的任意可能的实现方式提供的方法。
第八方面,提供一种计算机程序产品,包括计算机可读指令,当所述计算机可读指令在计算设备或计算设备集群上运行时,使得所述计算设备或计算设备集群执行如上述第一方面或第二方面中的任意可能的实现方式提供的方法。
附图说明
图1是本申请涉及的一种密钥管理系统的结构示意图;
图2是本申请提供的一种密钥管理系统的结构示意图;
图3是本申请提供的一种加密方法的交互示意图;
图4是本申请提供的一种报文的示意图;
图5是本申请提供的一种应用于第一计算节点的加密装置的结构示意图;
图6是本申请提供的一种应用于第二计算节点的加密装置的结构示意图;
图7是本申请提供的一种计算节点的结构示意图。
具体实施方式
下面将结合附图,对本申请提供的技术方案进行描述。
首先简单介绍本申请实施例涉及的应用场景。
参见图1,图1为本申请涉及的密钥管理系统的结构示意图。如图1所示,本申请涉及的密钥管理系统包括第一站点100和第二站点200,其中,第一站点100可以与第二站点200通过网络进行通信,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
第一站点100和第二站点200可以是多个服务器构成的服务器集群,也可以是结合网络功能虚拟化(network functions virtualization,NFV)技术实现的虚拟机(virtualmachine,VM)集群,还可以是结合内核虚拟化技术实现的容器(docker)集群,此处不作具体限定。其中,所述虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
第一站点100可以包括多个计算节点,如图1所示计算节点A1至计算节点Am,第二站点200也可以包括多个计算节点,如图1所示计算节点B1至计算节点Bn,其中,计算节点可以是通用的物理服务器,例如,X86服务器或ARM服务器等,也可以是虚拟机,还可以是容器,本申请不作具体限定。
在一具体的实施方式中,计算节点可包括硬件资源、操作系统(operatingsystem,OS),硬件资源可以包括计算资源、存储资源以及网络资源,比如处理器、存储器、网卡、路由、数据库等等,还可以包括用户可能需要的其他硬件资源,本申请不作具体限定;操作系统可以是容器、虚拟机或物理机适用的操作系统,比如安卓(android)操作系统、windows操作系统、linux操作系统等等,本申请不作具体限定。需要说明的是,操作系统可以是官方完整的操作系统,也可以是为了适应服务器的运行方式对官方完整的操作系统的个别驱动模块进行修改后的操作系统,本申请不做具体限定。
应理解,图1所示的密钥管理系统仅仅是作为具体的示例,在实际应用中,密钥管理系统可以包括任意数量的站点,站点中可以包括任意数量的计算节点,本申请不作具体限定。
在图1所示的第一站点100与第二站点200进行通信时,考虑到数据安全,第一站点100和第二站点200需要对数据进行加密。
目前,第一站点100和第二站点200进行数据加密传输的具体过程为:第一站点100中专门部署的加密节点1和第二站点200中专门部署的加密节点2通过协商的方式得到各自的加密密钥,然后,第一站点100发送给第二站点200的数据均需要加密节点1进行加密后传输给加密节点2,由加密节点2进行解密;第二站点200发送给第一站点100的数据均需要加密节点2进行加密后传输给加密节点1,由加密节点1进行解密。
但是,随着业务的发展,多站点诉求越来越强烈,当存在t(t为非常大的自然数)个站点且t个站点需要彼此通信的时候,则每一个站点中专门部署的加密节点需要与其他t-1个站点中专门部署的加密节点协商得到加密密钥,协商的过程会占用站点较多计算资源,而且,每一个站点中专门部署的加密节点最终会产生出Ct 2个加密密钥,该加密节点难以运维大量的加密密钥。
而且,可以看出,上述加密方法中,流出一个站点的所有流量以及流进该站点的所有流量均由该站点内专门部署的加密节点进行加解密,该加密节点的加解密能力严重限制了站点的数据传输能力和站点的扩容能力。
为了解决上述问题,本申请提供了加密方法、装置以及密钥管理系统。
首先,请参见图2,图2为本申请提供的一种密钥管理系统的结构示意图。如图2所示,本申请提供的密钥管理系统包括:第一站点100、第二站点200和密钥管理服务节点300,其中,第一站点100、第二站点200以及密钥管理服务节点300之间可以通过网络进行通信,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
密钥管理服务节点300可以是提供密钥管理服务(key management service,KMS)的独立的服务器、虚拟机或者容器,也可以是提供KMS的服务器集群、虚拟机集群或者容器集群,此处不作具体限定。其中,KMS是一种安全、可靠、简单易用的密钥托管服务,可以帮助用户轻松创建和管理密钥,保护密钥的安全。
在本申请实施例中,密钥管理服务节点300,可以用于向第一站点100中的多个计算节点和第二站点200中的多个计算节点发送一个或多个密钥因子。
在第一站点100中的多个计算节点和第二站点200中的多个计算节点接收到密钥管理服务节点300发送的一个或多个密钥因子之后,若第一站点100或者第二站点200中的任意一个计算节点需要向对方中的某个计算节点发送数据,发送节点可以直接基于一个或多个密钥因子和自己的标识生成加密密钥,并使用加密密钥对明文数据进行加密得到密文数据,然后将密文数据和自己的标识发送给接收节点。接收节点在接收到密文和发送节点的标识后,可以直接基于一个或多个密钥因子和发送节点的标识生成解密密钥,然后使用解密密钥对密文数据进行解密得到明文数据。
可以看出,第一站点100和第二站点200之间无需协商得到加密密钥,可以解决站点之间协商密钥占用站点较多计算资源的问题。而且,第一站点100和第二站点200中的任意一个计算节点均可以作为加密节点对数据进行加密传输,可以解决站点中专门部署的加密节点难以运维大量加密密钥的问题,以及解决现有技术存在的站点的数据传输能力和扩容能力受限于专门设置的加密节点的加解密能力的问题,使得站点可以灵活设置加密节点的数量。
应理解,图1和图2所示的密钥管理系统仅仅是作为具体的示例,在实际应用中,密钥管理系统可以包括任意数目的站点、各个站点可以包括任意数目的计算节点和任意数目的密钥管理服务节点,此处不作具体限定。
为了便于更清楚地理解图2所示的密钥管理系统中第一站点100和第二站点200之间进行数据加密传输的过程,下面结合图3所示的本申请提供的一种加密方法的交互示意图,对该过程进行详细的介绍。
如图3所示,本申请提供的加密方法可以包括如下步骤:
S301:第一计算节点获取一个或多个密钥因子。
其中,第一计算节点可以为图2所示的第一站点100包括的多个计算节点中的任意一个,第一计算节点获取的一个或多个密钥因子,可以为第一密钥管理服务节点(如图1所示的密钥管理服务节点300)发送的。具体实现中,第一计算节点可以向第一密钥管理服务节点发送第一获取请求,请求获取一个或多个密钥因子。
S302:第一计算节点基于一个或多个密钥因子和第一计算节点的标识,得到加密密钥。
其中,第一计算节点的标识,为第一计算节点自身的标识或第一计算节点所在设备的标识或目标处理器的标识。具体地,由上文可知,第一计算节点可以是通用的物理服务器,也可以是虚拟机或者容器,以第一计算节点为通用的物理服务器为例,第一计算节点的标识可以为该物理服务器的标识,以第一计算节点为虚拟机或者容器为例,第一计算节点的标识可以为虚拟机或者容器的标识,还可以为第一计算节点所在的物理服务器的标识。
具体实现中,第一计算节点可包括一个或者多个处理器,在第一计算节点包括一个处理器时,目标处理器即为该处理器,在第一计算节点包括多个处理器时,目标处理器可以为多个处理器中用于执行加密操作的处理器,多个处理器中用于执行加密操作的处理器可以为一个或多个,即目标处理器可以包括一个或多个处理器,此处不作具体限定。
第一计算节点得到的加密密钥可以为对称密钥,也可以为非对称密钥,此处不作具体限定。其中,对称密钥,又叫专用密钥,即发送和接收数据的双方必须使用相同的密钥对数据进行加密和解密运算。非对称密钥,包括一对密钥:公钥和私钥,这两个密钥是不同的密钥,如果发送方使用公钥对数据进行加密,接收方只有用对应的私钥才能解密。
具体地,第一计算节点可以使用对称加密算法生成对称加密密钥,也可以使用非对称加密算法生成非对称加密密钥,其中,对称加密算法可以为高级加密标准(advancedencryption standard,AES)、三重数据加密算法(triple data encryption algorithm,3DES)、国家密码算法SM4等,非对称加密算法可以为RSA、误差校正码(error correctingcode,ECC)、国家密码算法SM2等,此处不作具体限定。
S303:第一计算节点使用加密密钥对明文数据进行加密,得到密文数据。
S304:第一计算节点向第二计算节点发送密文数据和第一计算节点的标识。
其中,第二计算节点可以为图2所示的第二站点200包括的多个计算节点中的任意一个,也就是说,接收数据的站点包括的多个计算节点均可以基于一个或多个密钥因子和第一计算节点的标识,得到解密密钥,对密文数据进行解密。
S305:第二计算节点获取一个或多个密钥因子。
其中,第二计算节点获取的一个或多个密钥因子,可以为第一密钥管理服务节点发送的。具体地,该一个或多个密钥因子可以为第一密钥管理服务节点向第一计算节点发送时,同步向第二计算节点发送的。
在一种可能的实施例中,在步骤S301中,第一计算节点在获取一个或多个密钥因子时,也可以获取一个或多个密钥因子中每一密钥因子的版本号,然后,在步骤S304中,第一计算节点在向第二计算节点发送密文数据和第一计算节点的标识时,可以将一个或多个密钥因子中每一密钥因子的版本号同步发送至第二计算节点。第二计算节点在接收到一个或多个密钥因子中每一密钥因子的版本号时,可以向第一密钥管理服务节点发送第二获取请求,第二获取请求包括一个或多个密钥因子中每一密钥因子的版本号,请求获取一个或多个密钥因子。
可选地,第二计算节点也可以预先存储有大量密钥因子的版本号和大量密钥因子的对应关系,上述大量密钥因子中包括第一计算节点用于生成加密密钥的一个或多个密钥因子,上述大量密钥因子和大量密钥因子的版本号可以为第一密钥管理服务节点向第二计算节点发送的。第二计算节点在接收到第一计算节点发送的密文数据、第一计算节点的标识和用于生成加密密钥的一个或多个密钥因子中每一密钥因子的版本号之后,第二计算节点可以基于一个或多个密钥因子中每一密钥因子的版本号,从预先存储的大量密钥因子中确定一个或多个密钥因子。
S306:第二计算节点基于一个或多个密钥因子和第一计算节点的标识,得到解密密钥。
具体地,第二计算节点可以使用第一计算节点获取加密密钥时所使用的算法,基于一个或多个密钥因子和第一计算节点的标识,生成解密密钥。例如,假设第一计算节点获取加密密钥时,使用的算法为RSA,那么,第二计算节点获取解密密钥时,使用的算法也为RSA。
S307:第二计算节点利用解密密钥对密文数据进行解密,得到明文数据。
在本申请具体的实施例中,第一密钥管理服务节点中可以设置有触发机制,用于触发向第一计算节点发送新的一个或多个密钥因子,该新的一个或多个密钥因子用于供第一计算节点获取新加密密钥,从而实现第一计算节点的加密密钥的更新。
触发机制可以为:第一密钥管理服务节点监测当前时间与其发送出一个或多个密钥因子的时间之间的时间差是否达到阈值,在监测到时间差达到阈值时,向第一计算节点发送新的一个或多个密钥因子,若时间差达到阈值,则继续监测。可选地,触发机制也可以为:第一密钥管理服务节点监测当前时间是否达到密钥因子更新时间,在监测到当前时间达到密钥因子更新时间时,向第一计算节点发送新的一个或多个密钥因子,若当前时间未达到密钥因子更新时间,则继续监测。具体实现中,阈值和密钥因子更新时间可以根据实际场景进行设置,如,阈值可以为2小时、5小时或者12小时等,密钥因子更新时间可以为0点、8点或者17点等,此处不作具体限定。应理解,上述触发机制仅仅是作为示例,不应视为具体限定。
可选地,第一计算节点中可以设置有触发机制,用于触发第一计算节点获取新的一个或多个密钥因子,如此,也可以实现第一计算节点的加密密钥的更新。
在第一计算节点的加密密钥更新后,当第一计算节点需要通信时,第一计算节点可以使用新加密密钥对接下来要发送的数据进行加密。如此,可以实现即便第一计算节点在某个周期内的加密密钥或者用于得到加密密钥的密钥因子泄露,也只影响第一计算节点在本周期内发送出的数据的安全性,不影响其他周期内发送出的数据的安全性。
需要说明的,上文是以图2所示的密钥管理系统包括一个密钥管理服务节点,即上文所述第一密钥管理服务节点,由该单个密钥管理服务节点向第一计算节点和第二计算节点发送一个或多个密钥因子为例进行描述的。
具体实现中,图2所示的密钥管理服系统可包括多个密钥管理服务节点,该多个密钥管理服务节点可以用于向第一计算节点和第二计算节点发送一个或多个密钥因子。举例来讲,假设多个密钥管理服务节点包括第一密钥管理服务节点和第二密钥管理服务节点,其中,第一密钥管理服务节点,用于向第一计算节点和第二计算节点发送第一密钥因子,第二密钥管理服务节点,用于向第一计算节点和第二计算节点发送第二密钥因子,则第一计算节点和第二计算节点获取的密钥因子包括第一密钥因子和第二密钥因子。
可以理解,在第一计算节点和第二计算节点获取的一个或多个密钥因子,为多个密钥管理服务节点发送时,即便多个密钥管理服务节点中的某个密钥管理服务节点被劫持或者发生故障,无法向第一计算节点和第二计算节点发送密钥因子,正常的密钥管理服务节点可以继续向第一计算节点和第二计算节点发送密钥因子,如此,能够保证图2所示的密钥管理系统的稳定性。此外,还可以保证第一计算节点和第二计算节点的通信稳定性,进而保证站点之间的通信稳定性。
在本申请具体的实施例中,若第二计算节点需要向第一计算节点发送数据,可以基于一个或多个密钥因子和第二计算节点的标识得到加密密钥,然后使用加密密钥对明文数据进行加密,得到密文数据,最后将密文数据和第二计算节点的标识发送给第一计算节点。第一计算节点在接收到密文数据和第二计算节点的标识后,可以基于一个或多个密钥因子和第二计算节点的标识得到解密密钥,并利用解密密钥对密文数据解密得到明文数据。具体的实现过程与图3所示实施例相类似,具体可以参考图3所示实施例中相关描述,为了说明书的简洁,此处不再展开赘述。
通过上述实施例,可以理解,若第一站点100需要向第二站点200发送大量数据,第一站点100可以将大量数据分成多个数据,然后利用第一站点100包括的多个计算节点向第二站点200发送多个数据,从而实现大量数据的发送。具体地,第一站点100可以通过多个计算节点获取一个或多个密钥因子,然后多个计算节点均可以基于一个或多个密钥因子和各自的标识得到加密密钥,最后使用加密密钥对自己负责的数据进行加密,得到密文数据后,将密文数据和自己的标识发送给第二站点200。具体实现中,多个计算节点的标识可以全部相同、也可以部分相同或者互不相同。多个计算节点获取的一个或多个密钥因子可以相同,也可以不同,此处不作具体限定。
可以理解,当多个计算节点获取的一个或多个密钥因子不同时,或者,多个计算节点获取的一个或多个密钥因子相同,但多个计算节点的标识互不相同时,多个计算节点基于一个或多个密钥因子和各自的标识生成的加密密钥也互不相同。如此,可以使得即便某个计算节点的加密密钥泄露,不会导致其他计算节点的加密密钥也泄露。
具体实现中,第一计算节点在向第二计算节点发送密文数据时,可以以报文的形式发送。具体地,可以基于封装安全载荷(encapsulate security payload,ESP)等协议对密文数据进行封装,得到报文。在封装得到报文时,可以将第一计算节点得到密文数据所使用的一个或多个密钥因子的版本号、第一计算节点的标识一并进行封装。
参见图4,图4为第一计算节点向第二计算节点发送的报文的结构示意图,如图4所示,报文中的有效载荷(playload)为密文数据,报文头包括第一计算节点的标识和用于生成加密密钥的一个或多个密钥因子的版本号。
具体实现中,第一密钥管理服务节点在向第一计算节点发送一个或多个密钥因子之前,可以通过身份认证技术认证第一计算节点的身份,若第一计算节点的身份认证通过,则向第一计算节点发送密钥因子,反之,则不发送一个或多个密钥因子。如此,可以防止第一计算节点被第三方节点劫持,而导致一个或多个密钥因子泄露给第三方节点,可以提升数据传输的安全性。同样地,第一密钥管理服务节点在向第二计算节点发送一个或多个密钥因子之前,也通过身份认证技术认证第二计算节点的身份。
可以看出,本申请提供的密钥管理系统和加密方法,当站点之间需要进行通信时,站点中的任意一个计算节点均可以获取一个或多个密钥因子,然后基于一个或多个密钥因子和自己的标识得到加密密钥,站点之间无需协商得到加密密钥,因而,该方案可以解决站点之间协商密钥占用站点较多计算资源的问题。此外,站点中的多个计算节点均可以作为加密节点使用,如此,可以使得一个站点与其他多个站点进行通信时,该站点可以通过不同的计算节点与其他多个站点通信,例如,第一站点100通过计算节点A1与第二站点200进行通信,第一站点100通过计算节点A2与第三站点和第四站点(图1以及图2均为示出)进行通信,每个计算节点仅需维护自己生成的少量加密密钥,如此,可以解决站点中专门部署的加密节点难以运维大量加密密钥的问题。
还可以看出,站点中的任意一个计算节点均可以作为加密节点,可以使得各个站点流出的所有流量由该站点中不同的计算节点进行加密,使得流进站点的所有流量由该站点中不同的计算节点进行解密,实现负载均衡,从而解决现有技术存在的站点的数据传输能力和扩容能力受限于专门设置的加密节点的加解密能力的问题,使得站点可以灵活设置加密节点的数量。
上文详细阐述了本申请提供的密钥管理系统和加密方法,基于相同的发明构思,接下来介绍本申请提供的加密装置。
本申请提供应用于上述第一计算节点的加密装置和应用于上述第二计算节点的加密装置。应理解,本申请提供的加密装置内部的单元模块可以有多种划分,各个模块可以是软件模块,也可以是硬件模块,也可以部分是软件模块部分是硬件模块,本申请不对其进行限制。
参见图5,图5是本申请示例性示出的一种应用于第一计算节点的加密装置500的结构示意图,该装置500包括:获取模块510、加密模块520和发送模块530。
获取模块510,用于获取一个或多个密钥因子。
加密模块520,用于使用加密密钥对明文数据进行加密得到密文数据,其中,加密密钥为基于一个或多个密钥因子和第一计算节点的标识得到,该标识为第一计算节点的标识或第一计算节点所在设备的标识或目标处理器的标识。
发送模块530,用于将密文数据和第一计算节点的标识发送至第二计算节点。
在一种可能的实现方式中,上述目标处理器用于执行加密操作,其中,第一计算节点包括目标处理器。
在一种可能的实现方式中,上述发送模块530还用于向第二计算节点发送用于生成上述加密密钥的一个或多个密钥因子中每一密钥因子的版本号。
在一种可能的实现方式中,获取模块510具体可以通过如下方式实现获取一个或多个密钥因子:接收一个或多个密钥管理服务节点发送的一个或多个密钥因子。
参见图6,图6是本申请示例性示出的一种应用于第二计算节点的加密装置600的结构示意图,该装置600包括:接收模块610、获取模块620、解密模块630。
接收模块610,用于接收第一计算节点发送的密文数据和第一计算节点的标识,该标识为第一计算节点的标识或第一计算节点所在设备的标识或所述目标处理器的标识。
获取模块620,用于基于一个或多个密钥因子和第一计算节点的标识,生成解密密钥。
解密模块630,用于利用解密密钥对密文数据解密出明文数据。
在一种可能的实现方式中,上述目标处理器用于执行加密操作,其中,第一计算节点包括目标处理器。
在一种可能的实现方式中,上述接收模块610还用于接收第一计算节点发送的用于生成加密密钥的一个或多个密钥因子中每一密钥因子的版本号,此时,获取模块620具体可以通过如下方式实现基于一个或多个密钥因子和第一计算节点的标识,生成解密密钥:基于一个或多个密钥因子中每一密钥因子的版本号和第一计算节点的标识,生成解密密钥。
在一种可能的实现方式中,在获取模块620基于一个或多个密钥因子和第一计算节点的标识,生成解密密钥之前,接收模块610还用于接收一个或多个密钥管理服务节点发送的一个或多个密钥因子。
具体地,上述加密装置500执行各种操作的具体实现,可参照上述加密方法实施例中由第一计算节点执行的步骤中的相关描述,上述加密装置600执行各种操作的具体实现,可参照上述加密方法实施例中由第二计算节点执行的步骤中的相关描述,为了说明书的简洁,这里不再赘述。
综上可知,本申请提供的加密装置(如图5所示的加密装置500以及如图6所示的加密装置600)可以使得站点中的任意一个计算节点均可以获取一个或多个密钥因子,然后基于一个或多个密钥因子和自己的标识得到加密密钥,站点之间无需协商得到加密密钥,因而,该方案可以解决站点之间协商密钥占用站点较多计算资源的问题。此外,站点中的多个计算节点均可以作为加密节点使用,如此,可以使得一个站点与其他多个站点进行通信时,该站点可以通过不同的计算节点与其他多个站点通信,每个计算节点仅需维护自己生成的少量加密密钥,从而解决站点中专门部署的加密节点难以运维大量加密密钥的问题。
还可以看出,本申请提供的加密装置还可以使得各个站点流出的所有流量由该站点中不同的计算节点进行加密,使得流进站点的所有流量由该站点中不同的计算节点进行解密,实现负载均衡,从而解决现有技术存在的站点的数据传输能力和扩容能力受限于专门设置的加密节点的加解密能力的问题,使得站点可以灵活设置加密节点的数量。
本申请还提供一种计算节点700,参见图7,图7是本申请提供的一种计算节点700的结构示意图。如图7所示,计算节点700包括:处理器710、存储器720和通信接口730,其中,处理器710、存储器720、通信接口730之间可以通过总线740相互连接。
处理器710可以读取存储器720中存储的程序代码(包括指令),执行存储器720中存储的程序代码,使得计算节点700执行图3所示加密方法中由第一计算节点或者第二计算节点执行的步骤,或者,使得计算节点700部署加密装置500或者加密装置600。
处理器710可以有多种具体实现形式,例如中央处理单元(central processingunit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logicdevice,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器710执行各种类型的数字存储指令,例如存储在存储器720中的软件或者固件程序,它能使计算节点700提供多种服务。
存储器720用于存储程序代码,并由处理器710来控制执行。程序代码可以包括一个或多个软件模块,这一个或多个软件模块可以为图5实施例中提供的软件模块,如获取模块510、加密模块520和发送模块530,或者,这一个或多个软件模块可以为图6实施例中提供的软件模块,如接收模块610、获取模块620和解密模块630,在图7中,以程序代码包括图5所示的多个软件模块为例。
存储器720可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器720也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器720还可以包括上述种类的组合。
通信接口730可以为有线接口(例如以太网接口、光纤接口、其他类型接口(例如,infiniBand接口))或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他计算节点或装置进行通信。通信接口730可以采用传输控制协议/网际协议(transmissioncontrol protocol/internet protocol,TCP/IP)之上的协议族,例如,远程函数调用(remote function call,RFC)协议、简单对象访问协议(simple object accessprotocol,SOAP)协议、简单网络管理协议(simple network management protocol,SNMP)协议、公共对象请求代理体系结构(common object request broker architecture,CORBA)协议以及分布式协议等等。
总线740可以是快捷外围部件互连标准(peripheral component interconnectexpress,PCIe)总线、扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线740可以分为地址总线、数据总线、控制总线等。总线740除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线740。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述计算节点700用于执行图3所示加密方法中由第一计算节点或者由第二计算节点执行的步骤,其具体实现过程详见上述方法实施例,这里不再赘述。
应当理解,计算节点700仅为本申请实施例提供的一个例子,并且,计算节点700可具有比图7示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
本申请还提供一种密钥管理系统,该密钥管理系统可以包括图5所示的加密装置500和图6所示的加密装置600。可选地,该密钥管理系统还可以包括上文所述密钥管理服务节点,如第一密钥管理服务节点、第二密钥管理服务节点,用于向第一计算节点和第二计算节点发送一个或多个密钥因子。具体实现中,上述密钥管理系统为计算设备集群。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,该指令被运行时可以实现上述实施例中记载的加密方法的部分或者全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质、或者半导体介质等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (16)

1.一种密钥管理方法,其特征在于,应用于第一计算节点,所述方法包括:
获取一个或多个密钥因子;
使用加密密钥对明文数据进行加密得到密文数据,其中,所述加密密钥基于所述一个或多个密钥因子和所述第一计算节点的标识得到,所述标识为所述第一计算节点的标识或第一计算节点所在设备的标识或所述目标处理器的标识;
将所述密文数据和所述第一计算节点的标识发送至第二计算节点。
2.根据权利要求1所述的方法,其特征在于,所述目标处理器用于执行加密操作,其中,所述第一计算节点包括所述目标处理器。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
向所述第二计算节点发送用于生成所述加密密钥的所述一个或多个密钥因子中每一密钥因子的版本号。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述获取一个或多个密钥因子,包括:
接收一个或多个密钥管理服务节点发送的所述一个或多个密钥因子。
5.一种密钥管理方法,其特征在于,应用于第二计算节点,所述方法包括:
接收第一计算节点发送的密文数据和所述第一计算节点的标识,其中,所述标识为所述第一计算节点的标识或第一计算节点所在设备的标识或所述目标处理器的标识;
基于一个或多个密钥因子和所述第一计算节点的标识,生成解密密钥;
利用所述解密密钥对所述密文数据解密出明文数据。
6.根据权利要求5所述的方法,其特征在于,所述目标处理器用于执行加密操作,其中,所述第一计算节点包括所述目标处理器。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
接收所述第一计算节点发送的用于生成加密密钥的所述一个或多个密钥因子中每一密钥因子的版本号;
所述基于一个或多个密钥因子和所述第一计算节点的标识,生成解密密钥,包括:
基于所述一个或多个密钥因子中每一密钥因子的版本号和所述第一计算节点的标识,生成所述解密密钥。
8.根据权利要求5至7中任一所述的方法,其特征在于,所述基于一个或多个密钥因子和所述第一计算节点的标识,生成解密密钥之前,所述方法还包括:
接收一个或多个密钥管理服务节点发送的所述一个或多个密钥因子。
9.一种密钥管理系统,所述系统包括:
第一计算节点,用于使用加密密钥对明文数据进行加密得到密文数据,将所述密文数据和所述第一计算节点的标识发送至第二计算节点,所述加密密钥基于一个或多个密钥因子和所述第一计算节点的标识得到,其中,所述标识为所述第一计算节点的标识或第一计算节点所在设备的标识或所述目标处理器的标识;
所述第二计算节点,用于根据所述一个或多个密钥因子和所述第一计算节点的标识,获得解密密钥,利用所述解密密钥对所述密文数据解密出所述明文数据。
10.根据权利要求9所述的方法,其特征在于,所述目标处理器用于执行加密操作,其中,所述第一计算节点包括所述目标处理器。
11.根据权利要求9或10所述的系统,其特征在于,所述系统还包括:
第一密钥管理服务节点,用于将所述一个或多个密钥因子发送至所述第一计算节点。
12.根据权利要求9或10所述的系统,其特征在于,所述系统还包括:
第一密钥管理服务节点,用于将第一密钥因子发送至所述第一计算节点;
第二密钥管理服务节点,用于将第二密钥因子发送至所述第一计算节点;
其中,所述一个或多个密钥因子包括所述第一密钥因子和所述第二密钥因子。
13.根据权利要求9至12中任一所述的系统,其特征在于,所述系统为计算设备集群。
14.一种计算节点,其特征在于,所述计算节点包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器中存储的指令,使得所述计算设备执行如权利要求1至4或5至8中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算设备或计算设备集群上运行时,使得所述计算设备或计算设备集群执行如权利要求1至4或5至8中任一项所述的方法。
16.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算设备或计算设备集群上运行时,使得所述计算设备或计算设备集群执行如权利要求1至4或5至8中任一项所述的方法。
CN202210227377.5A 2022-03-08 2022-03-08 加密方法、装置及密钥管理系统 Pending CN116781248A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210227377.5A CN116781248A (zh) 2022-03-08 2022-03-08 加密方法、装置及密钥管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210227377.5A CN116781248A (zh) 2022-03-08 2022-03-08 加密方法、装置及密钥管理系统

Publications (1)

Publication Number Publication Date
CN116781248A true CN116781248A (zh) 2023-09-19

Family

ID=87990149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210227377.5A Pending CN116781248A (zh) 2022-03-08 2022-03-08 加密方法、装置及密钥管理系统

Country Status (1)

Country Link
CN (1) CN116781248A (zh)

Similar Documents

Publication Publication Date Title
CN107534665B (zh) 利用ssl会话票证扩展的可扩缩中间网络设备
EP4258593A1 (en) Ota update method and apparatus
CN113329030A (zh) 区块链一体机及其密码加速卡、密钥管理方法和装置
US9106707B2 (en) DHCP communications configuration system
CN110620762A (zh) 基于rdma的数据传输方法、网卡、服务器及介质
CN110690962A (zh) 一种服务节点的应用方法与装置
US11606193B2 (en) Distributed session resumption
CN112822177A (zh) 数据传输方法、装置、设备和存储介质
CN108259157B (zh) 一种ike协商中身份认证的方法及网络设备
CN114142995B (zh) 面向区块链中继通信网络的密钥安全分发方法及装置
CN111884988A (zh) 数据的安全传输方法
CN117254976B (zh) 基于VPP的国标IPsec VPN实现方法、装置、系统及电子设备
CN108924157B (zh) 一种基于IPSec VPN的报文转发方法及装置
KR20210061801A (ko) Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템
US11418354B2 (en) Authentication method, device, and system
CN112929355A (zh) 一种光传送网的安全管理信息处理方法及装置
CN106487761B (zh) 一种消息传输方法和网络设备
CN117118628A (zh) 电力物联网轻量级身份认证方法、装置及电子设备
CN113206815A (zh) 用于加解密的方法、可编程交换机和计算机程序产品
CN114598724B (zh) 电力物联网的安全防护方法、装置、设备及存储介质
CN115834210A (zh) 一种量子安全网络数据的发送、接收方法及通信系统
CN116781248A (zh) 加密方法、装置及密钥管理系统
CN111404901A (zh) 信息验证方法及装置
US20240296254A1 (en) Method and system for fpga-based encrypted vpn
EP4418605A1 (en) Post-quantum encryption key distribution method and a device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication