CN110417726A - 一种密钥管理方法及相关设备 - Google Patents
一种密钥管理方法及相关设备 Download PDFInfo
- Publication number
- CN110417726A CN110417726A CN201910445155.9A CN201910445155A CN110417726A CN 110417726 A CN110417726 A CN 110417726A CN 201910445155 A CN201910445155 A CN 201910445155A CN 110417726 A CN110417726 A CN 110417726A
- Authority
- CN
- China
- Prior art keywords
- key
- client
- cipher text
- encrypted cipher
- elliptic curve
- 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.)
- Granted
Links
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/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)
- H04L9/0825—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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/045—Network 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 hybrid encryption, i.e. combination of symmetric and asymmetric encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3033—Public 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 details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
- G06Q2220/10—Usage protection of distributed data files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种密钥管理方法及相关设备,包括:客户端根据用户输入操作指令,选择一个随机数和一个密钥;根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的;根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文;向云服务器发送所述第一加密密文和所述数据密文。采用本申请实施例,可以提高云存储密钥的生成和存储效率,且保证了云存储数据的安全性。
Description
技术领域
本申请涉及安全技术领域,尤其涉及一种密钥管理方法及相关设备。
背景技术
密钥管理服务(Key Management Service,KMS)是一项云密钥托管服务,旨在创建和控制加密数据所需的加密密钥,并通过与其他云服务器集成,使得云服务器可以使用该加密密钥管理加密数据。在现有的KMS场景中,由于数据密钥和客户数据均由云服务器托管,64%的事件是由员工或承包商的疏忽导致的,而23%是由犯罪分子和内鬼的疏忽导致的。因此,在数据隐私保护方面,企业安全团队的内部威胁以及KMS的现有结构,会对客户数据的数据隐私造成很大的风险。另一方面,在现有的KMS结构中,对密钥采取层层包裹的形式,密钥的存储会占用大量的云存储空间,加重了云服务器的存储成本。
发明内容
本申请实施例提供一种密钥管理方法及相关设备。可以提高云存储密钥的生成和存储效率,且保证了云存储数据的安全性。
第一方面,本申请实施例提供了一种密钥管理方法,包括:
客户端根据用户输入操作指令,选择一个随机数和一个密钥;
所述客户端根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的;
所述客户端根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文;
所述客户端向云服务器发送所述第一加密密文和所述数据密文。
其中,所述客户端向云服务器发送所述第一加密密文和所述数据密文之后,还包括:
所述客户端向所述云服务器发送解密请求,所述解密请求用于指示所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
所述客户端接收所述硬件安全模块发送的所述第二加密密文、以及接收所述云服务器发送的所述数据密文;
所述客户端根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据。
其中,所述客户端根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据包括:
所述客户端根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文进行解密得到所述密钥;
所述客户端根据所述密钥和所述哈希函数,生成所述对称密钥序列;
所述客户端根据所述对称密钥序列,对所述数据密文进行解密得到所述云存储数据。
其中,所述随机数和所述密钥均小于n,所述n为所述椭圆曲线上的点的阶。
其中,所述硬件安全模块的私钥为所述硬件安全模块从1到n-1的区间选取的一个整数;所述客户端的私钥为所述客户端从1到n-1的区间选取的一个整数,所述n为所述椭圆曲线上的点的阶。
第二方面,本申请实施例提供了另一种密钥管理方法,包括:
云服务器接收客户端发送的第一加密密文和数据密文,所述第一加密密文为根据随机数、密钥、第一公钥和第二公钥生成的,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的,所述数据密文为根据对称密钥序列对云存储数据进行加密得到的,所述对称密钥序列为根据所述密钥和预选的哈希函数生成的;所述云服务器对所述第一加密密文和所述数据密文进行存储。
其中,所述云服务器接收客户端发送的第一加密密文和数据密文之后,还包括:
所述云服务器接收所述客户端发送的解密请求;
所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于指示所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
所述云服务器向所述客户端发送所述数据密文,所述数据密文用于所述客户端根据所述第二加密密文进行解密得到所述云存储数据。
第三方面,本申请实施例提供了一种客户端,包括:
选取模块,用于根据用户输入操作指令,选择一个随机数和一个密钥;
处理模块,用于根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的;
所述处理模块,还用于根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文;
发送模块,还用于向云服务器发送所述第一加密密文和所述数据密文。
其中,所述发送模块,还用于向所述云服务器发送解密请求,所述解密请求用于指示所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
所述客户端还包括:
所述接收模块,用于接收所述硬件安全模块发送的所述第二加密密文、以及接收所述云服务器发送的所述数据密文;
所述处理模块,还用于根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据。
其中,所述处理模块,还用于根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文进行解密得到所述密钥;根据所述密钥和所述哈希函数,生成所述对称密钥序列;根据所述对称密钥序列,对所述数据密文进行解密得到所述云存储数据。
其中,所述随机数和所述密钥均小于n,所述n为所述椭圆曲线上的点的阶。
其中,所述硬件安全模块的私钥为所述硬件安全模块从1到n-1的区间选取的一个整数;所述客户端的私钥为所述客户端从1到n-1的区间选取的一个整数,所述n为所述椭圆曲线上的点的阶。
第四方面,本申请实施例提供了一种云服务器,包括:
接收模块,用于接收客户端发送的第一加密密文和数据密文,所述第一加密密文为根据随机数、密钥、第一公钥和第二公钥生成的,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的,所述数据密文为根据对称密钥序列对云存储数据进行加密得到的,所述对称密钥序列为根据所述密钥和预选的哈希函数生成的。
其中,所述接收模块,还用于接收所述客户端发送的解密请求;
所述云服务器还包括:
发送模块,用于向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于指示所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
所述发送模块,还用于向所述客户端发送所述数据密文,所述数据密文用于所述客户端根据所述第二加密密文进行解密得到所述云存储数据。
第五方面,本申请实施例提供了另一种客户端,包括:处理器、存储器和通信总线,其中,通信总线用于实现处理器和存储器之间连接通信,处理器执行存储器中存储的程序用于实现上述第一方面提供的一种密钥管理方法中的步骤。
在一个可能的设计中,本申请提供的客户端可以包含用于执行上述方法设计中客户端的行为相对应的模块。模块可以是软件和/或是硬件。
第六方面,本申请实施例提供了另一种云服务器,包括:处理器、存储器和通信总线,其中,通信总线用于实现处理器和存储器之间连接通信,处理器执行存储器中存储的程序用于实现上述第二方面提供的一种密钥管理方法中的步骤。
在一个可能的设计中,本申请提供的云服务器可以包含用于执行上述方法设计中云服务器的行为相对应的模块。模块可以是软件和/或是硬件。
第七方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第八方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
实施本申请实施例,通过在客户端根据HSM的公钥和客户端的公钥共同生成加密密钥,云服务器无需在KMS中对数据加密密钥进行处理,也无需客户段对数据进行同时存储,进而降低了KMS的运算负载和云端的数据存储负载。对于HSM而言,由于本方案未采用层层包裹的密钥结构,大大降低了HSM对层级密钥进行生成、加密和解密的运算操作成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术方案提供的一种密钥管理方法的示意图;
图2是本申请实施例提供了一种密钥管理系统的架构示意图;
图3是本申请实施例提供的一种密钥管理方法的流程示意图;
图4是本申请实施例提供的一种加密密文和数据密文的存储格式的示意图;
图5是本申请实施例提供的另一种密钥管理方法的流程示意图;
图6是本申请实施例提供的一种存储负载对比的示意图;
图7是本申请实施例提供的一种客户端的结构示意图;
图8是本申请实施例提供的一种云服务器的结构示意图;
图9是本申请实施例提出的另一种客户端的结构示意图;
图10是本申请实施例提出的另一种云服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,以下对名词进行解释:
1、密钥管理服务(Key Management Service,KMS):一种安全、容易使用的密钥生成和管理类服务。最终目的为保护用户静态存储数据的安全性,即用户数据的保密性、完整性和可用性。通过在云服务器中部署密钥管理服务,用户可以安全便捷的使用、管理数据保护和数据加解密密钥,并专注于云服务器的静态数据加解密场景。
2、硬件安全模块(Hardware Security Module,HSM):用于保障和管理强认证系统所使用的数字密钥,并同时提供密码学相关操作的计算机硬件设备。并通过扩展卡和外部设备直接连接到电脑和网络服务器。由于HSM可以为应用程序提供保护加密密钥和配置加密、解密、身份认证和数码签名服务,所以云服务器的硬件安全模块可以为数据根密钥的存储提供保护;同时,HSM提供两种防篡改功能,即篡改留证和篡改抵抗功能。
3、哈希函数(Hash Function):又称散列函数,就是把任意长度的输入通过散列算法变换成固定长度的输出。基本性质:
(1)预映射(Pre-image),是指其的操作方向的单项性。给定哈希值h,无法找到所对应的信息m(h=hash(m));即只能从输入推导出输出,而不能从输出计算出输入。
(2)二阶预映射(Second pre-image),即无法找到一个输入使其输出结果等于一个已知的输出结果:给定输入m1,无法找到另一个输入m2,使得哈希值hash(m1)=hash(m2)。
(3)碰撞约束,无法不能同时找到两个不同的输入m1和m2,使其输出结果hash(m1)和hash(m2)完全一致hash(m1)=hash(m2)。
4、椭圆曲线加密算法(Elliptic Curve Cryptography,ECC):一种基于椭圆曲线数学的公开密钥加密算法。数学基础是利用椭圆曲线上的有理点构成阿贝尔加法群上椭圆离散对数的计算困难性,其主要优势是在某些情况下比其他的方法(例如RSA加密算法)使用更小的密钥,并提供相等或更高等级的安全。
5、对称加密(Symmetric Key Encryption,SKE):需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。其中高级加密标准(Advanced Encryption Standard,AES)是一种利用代换-置换网络的区块加密标准,并作为对称密钥加密中最流行的算法之一。
KMS的使用主要包括两种场景:(1)利用存储在KMS的主密钥,通过调用KMS的应用程序接口(Application Program Interface,API)进行加解密数据;(2)利用云服务器中的数据密钥对数据进行加解密,并利用KMS中的主密钥对数据密钥进行保护。在KMS中,主密钥受到硬件安全模块(Hardware Security Module,HSM)的保护,而且主密钥只可以在HSM中使用,以保障密钥的可用性、安全性和持久性。同时,KMS支持客户自行创建并将主密钥导入到HSM中。
如图1所示,图1是现有技术方案提供的一种密钥管理方法的示意图。数据密钥(Data Encryption Key,DEK)由数据加密密钥(HSM Backing Key,HBK)保护,数据加密密钥由区域密钥(Domain Key,DK)保护,且区域密钥由永久存储的HSM主密钥(Domain KeyEncryption Key,DKEK)保护,DKEK存储于HSM。如表1所示,表1是一种KMS密钥管理结构。DKEK为最外层加密密钥,DK为次外层加密密钥,HBK为内层加密密钥,DEK为最内层的加密密钥。DK、HBK和DEK均由HSM生成。
生成于 | 上层加密密钥 | 描述 | |
DK | HSM | DKEK | 永久存储于HSM |
HBK | HSM | DK | 存储于云存储 |
DEK | HSM | HBK | 一次一密 |
表1
对于现有的KMS密钥管理方案,存在如下技术问题:(1)鉴于现阶段客户对数据隐私保护的敏感程度,数据密钥和加密数据均由云服务器管理。即使云服务商严格控制和监督设备维护和管理人员,内部人员泄密和盗取数据的场景仍常有发生。为了获得客户的信任,云服务器应无法直接获得数据密钥。(2)由于加密后的数据密钥与加密后的数据同时存储与云存储服务器中,增加了云服务器的密钥管理和加密密钥的存储成本。(3)由于采用密钥间的层层包裹结构,也提高了HSM的密钥解密和密钥存储成本。由于HSM的计算和存储能力有限,增加了云服务器的设备投入成本。
如图2所示,图2是本申请实施例提供了一种密钥管理系统的架构示意图。本申请实施例中的密钥管理系统包括云服务器1、硬件安全模块2以及客户端3,其中,云服务器1是云计算服务的重要组成部分,是面向各类互联网用户提供综合业务能力的服务平台。服务平台整合了传统意义上的互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务,云服务器中的每个集群节点被部署在互联网的骨干数据中心,可独立提供计算、存储、在线备份、托管、带宽等互联网基础设施服务。硬件安全模块2为云服务器的硬件安全模块,硬件安全模块2可以用于保障和管理强认证系统所使用的数字密钥,并同时提供密码学相关操作的计算机硬件设备,并通过扩展卡和外部设备直接连接到电脑和网络服务器。由于硬件安全模块2可以为应用程序提供保护加密密钥和配置加密、解密、身份认证和数码签名服务,可以为数据根密钥的存储提供保护。同时,硬件安全模块2提供两种防篡改功能,即篡改留证和篡改抵抗功能。客户端3可以为用智能电话、便携式电脑、手持通信设备、手持计算设备、卫星无线电装置、全球定位系统、掌上电脑(personaldigital assistant,PDA)和/或用于在无线通信系统上通信的任意其它适合设备等等。云服务器1、硬件安全模块2以及客户端3之间可以建立网络连接,通过建立的网络连接进行通信。
本申请实施例可以应用到如下场景:云存储的数据隐私保护和云存储的密钥生成,在对密钥进行托管时,云服务商虽然严格控制和监督设备维护和管理人员,但是云服务器在内部人员泄露还是存在泄露秘钥的可能,在这种情况下,可能导致无法恢复出客户托管在云服务器的数据。因此,本申请实施例通过HSM的公钥和客户端的公钥对数据加密密钥进行保护,使得客户端的云存储数据只有在HSM和客户端的共同解密的情况下,才能解密。
如图3所示,图3是本申请实施例提供的一种密钥管理方法的流程示意图。本申请实施例中的步骤至少包括:
S301,客户端根据用户输入的操作指令,选择一个随机数和一个密钥。其中,所述随机数和所述密钥均小于n,所述n为所述椭圆曲线上的点的阶。
具体实现中,客户端可以接收用户输入的操作指令,从1到n-1的区间内选取任一个整数作为随机数,并从1到n-1的区间内选取一个整数作为密钥,所述n为椭圆曲线上的点的阶。例如,对于椭圆曲线E:y2=x3+ax+b,如果椭圆曲线上点P,存在最小的正整数n,使得数乘nP=O∞,则将n称为P的阶,若n不存在,P是无限阶的。其中,O∞为该椭圆曲线上的无穷远点。
可选的,在客户端选择一个随机数和一个密钥之前,硬件安全模块HSM可以对密钥管理系统进行初始化。具体的,可以根据用户输入的选择指令,从多个素数中选择一个素数q,然后从多个整数中选择两个满足小于q的非负整数a、b,使得4a3+27b2=0modq不成立。因此满足下列方程的所有点(x,y)和无穷远点O∞,构成一条椭圆曲线E:y2=x3+ax+b,其中x,y属于0到p-1之间的整数。然后对椭圆曲线进行离散化处理,例如y2=x3+ax+bmodq得到的全部解(x,y)∈Zq和一个无穷远点O∞。最后从全部解中选择一个点P作为椭圆曲线上的任意一点,且点P的阶为n。另外,HSM可以接收用户输入的选择指令,从多个哈希函数中选择一个哈希函数,使其满足条件H:{0,1}*->{0,1}1024。
然后,HSM可以根据用户输入的选择指令,从[1,n-1]中选取一个整数s1作为HSM的私钥,然后根据HSM的私钥和椭圆曲线上的点P,计算HSM的第一公钥,第一公钥S1=s1·P,可以表示为(S1,P)。客户端可以接收HSM发送的椭圆曲线上的点P和n(点P的阶),然后根据用户输入的选择指令,从[1,n-1]中选取一个整数s2作为客户端的私钥,然后根据客户端的私钥和椭圆曲线上的点P,计算客户端的第二公钥,第二公钥S2=s2·P,可以表示为(S2,P)。
S302,客户端根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的。
具体实现中,客户端可以利用椭圆曲线加密算法,根据HSM的第一公钥(S1,P)和客户端的第二公钥(S2,P)共同生成密钥K的加密密文Ek,即Ek=(r·P,(S1+S2)·r+k),其中,r为随机数,k为秘钥,S1为第一公钥,S2为第二公钥。由公式可知,加密密文Ek由硬件安全模块的第一公钥和客户端的第二公钥共同决定。r·P表示根据随机数r和椭圆曲线上的点P计算椭圆曲线上映射的点。其中,所述硬件安全模块的私钥为所述硬件安全模块从1到n-1的区间选取的一个整数;所述客户端的私钥为所述客户端从1到n-1的区间选取的一个整数,所述n为所述椭圆曲线上的点的阶。
S303,客户端根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文。
具体实现中,客户端可以调用加密API,并根据所述密钥和预选的哈希函数,生成的用于加密云存储数据对称密钥序列(H(1||k),H(2||k),……,H(m||k)),其中,k为密钥,H为哈希函数。并利用对称密钥算法,根据对称密钥序列(H(1||k),H(2||k),……,H(m||k))对云存储数据(m1,m2,……mk)进行加密得到数据密文(Enc(m1),……,Enc(mk))。
S304,客户端向云服务器发送所述第一加密密文和所述数据密文。云服务器对所述第一加密密文和所述数据密文进行存储。例如,如图4所示,图4是本申请实施例提供的一种第一加密密文和数据密文的存储格式的示意图。前一部分是第一加密密文,后一部分是数据密文。通过第一加密密文可以对数据密文进行解密。由于第一加密密文是根据硬件安全模块的第一公钥和客户端的第二公钥生成的,因此需要硬件安全模块和客户端对第一加密密文共同解密,才能得到密钥。
在本申请实施例中,通过在客户端根据HSM的公钥和客户端的公钥共同生成加密密钥,云服务器无需在KMS中对数据加密密钥进行处理,也无需客户段对数据进行同时存储,进而降低了KMS的运算负载和云端的数据存储负载。对于HSM而言,由于本方案未采用层层包裹的密钥结构,大大降低了HSM对层级密钥进行生成、加密和解密的运算操作成本。
如图5所示,图5是本申请实施例提供的另一种密钥管理方法的流程示意图。本申请实施例中的步骤至少包括:
S501,客户端根据用户输入的操作指令,选择一个随机数和一个密钥。其中,所述随机数和所述密钥均小于n,所述n为所述椭圆曲线上的点的阶。
具体实现中,客户端可以接收用户输入的操作指令,从1到n-1的区间内选取任一个整数作为随机数,并从1到n-1的区间内选取一个整数作为密钥,所述n为椭圆曲线上的点的阶。例如,对于椭圆曲线E:y2=x3+ax+b,如果椭圆曲线上点P,存在最小的正整数n,使得数乘nP=O∞,则将n称为P的阶,若n不存在,P是无限阶的。其中,O∞为该椭圆曲线上的无穷远点。
可选的,在客户端选择一个随机数和一个密钥之前,硬件安全模块HSM可以对密钥管理系统进行初始化。具体的,可以根据用户输入的选择指令,从多个素数中选择一个素数q,然后从多个整数中选择两个满足小于q的非负整数a、b,使得4a3+27b2=0modq不成立。因此满足下列方程的所有点(x,y)和无穷远点O∞,构成一条椭圆曲线E:y2=x3+ax+b,其中x,y属于0到p-1之间的整数。然后对椭圆曲线进行离散化处理,例如y2=x3+ax+bmodq得到的全部解(x,y)∈Zq和一个无穷远点O∞。最后从全部解中选择一个点P作为椭圆曲线上的任意一点,且点P的阶为n。另外,HSM可以接收用户输入的选择指令,从多个哈希函数中选择一个哈希函数,使其满足条件H:{0,1}*->{0,1}1024。
然后,HSM可以根据用户输入的选择指令,从[1,n-1]中选取一个整数s1作为HSM的私钥,然后根据HSM的私钥和椭圆曲线上的点P,计算HSM的第一公钥,第一公钥S1=s1·P,可以表示为(S1,P)。客户端可以接收HSM发送的椭圆曲线上的点P和n(点P的阶),然后根据用户输入的选择指令,从[1,n-1]中选取一个整数s2作为客户端的私钥,然后根据客户端的私钥和椭圆曲线上的点P,计算客户端的第二公钥,第二公钥S2=s2·P,可以表示为(S2,P)。
S502,客户端根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的。
具体实现中,客户端可以利用椭圆曲线加密算法,根据HSM的第一公钥(S1,P)和客户端的第二公钥(S2,P)共同生成密钥K的加密密文Ek,即Ek=(r·P,(S1+S2)·r+k),其中,r为随机数,k为秘钥,S1为第一公钥,S2为第二公钥。由公式可知,加密密文Ek由硬件安全模块的第一公钥和客户端的第二公钥共同决定。r·P表示根据随机数r和椭圆曲线上的点P计算椭圆曲线上映射的点。其中,所述硬件安全模块的私钥为所述硬件安全模块从1到n-1的区间选取的一个整数;所述客户端的私钥为所述客户端从1到n-1的区间选取的一个整数,所述n为所述椭圆曲线上的点的阶。
S503,客户端根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文。
具体实现中,客户端可以调用加密API,并根据所述密钥和预选的哈希函数,生成的用于加密云存储数据对称密钥序列(H(1||k),H(2||k),……,H(m||k)),其中,k为密钥,H为哈希函数。并利用对称密钥算法,根据对称密钥序列(H(1||k),H(2||k),……,H(m||k))对云存储数据(m1,m2,……mk)进行加密得到数据密文(Enc(m1),……,Enc(mk))。
S504,客户端向云服务器发送所述第一加密密文和所述数据密文。云服务器对所述第一加密密文和所述数据密文进行存储。例如,如图4所示,图4是本申请实施例提供的一种第一加密密文和数据密文的存储格式的示意图。前一部分是第一加密密文,后一部分是数据密文。通过第一加密密文可以对数据密文进行解密。由于第一加密密文是根据硬件安全模块的第一公钥和客户端的第二公钥生成的,因此需要硬件安全模块和客户端对第一加密密文共同解密,才能得到密钥。
S505,客户端向云服务器发送解密请求。
S506,云服务器向硬件安全模块发送所述第一加密密文和解密请求。
S507,硬件安全模块根据硬件安全模块的私钥、椭圆曲线上的点以及所述随机数进行解密得到第二加密密文。
具体实现中,硬件安全模块接收到解密请求之后,利用硬件安全模块的私钥计算出第二加密密文 由公式可知,第二加密密文仅由客户端的第二公钥决定。
可选的,硬件安全模块可以接收云服务器发送的数据密文(Enc(m1),……,Enc(mk)),并将数据密文(Enc(m1),……,Enc(mk))和第二加密密文发送至客户端。
S508,云服务器向客户端发送数据密文。可选的,S508可以在S506之后S507之前执行。
S509,硬件安全模块向客户端发送第二加密密文。
S510,客户端根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据。
具体实现中,客户端可以根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文r·P,S2·r+k进行解密得到密钥S2·r+k-s2·r·P=k;然后调用解密API,根据所述密钥k和所述哈希函数,生成所述对称密钥序列(H(1||k),H(2||k),……,H(m||k)),其中,k为密钥,H为哈希函数。最后根据所述对称密钥序列(H(1||k),H(2||k),……,H(m||k)),对所述数据密文(Enc(m1),……,Enc(mk))进行解密得到云存储数据(m1,m2,……mk)。
如图6所示,图6是本申请实施例提供的一种存储负载对比的示意图。本申请实施例采用AES的数据密文的长度为256bits,ECC的加密密文的长度为384bits。传统方案采用层层包裹结构,在存储条目相同的情况下,本方案的存储负载小于传统方案的负载,因此采用本申请实施例,可以大大提高云存储数据的存储效率。
在本申请实施例中,通过硬件安全模块根据硬件安全模块的私钥、椭圆曲线上的点以及所述随机数进行解密得到第二加密密文,然后客户端根据客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文进行解密得到密钥。因此只有在客户端和硬件安全模块共同提供密钥的场景下,才能对客户端存储在云服务器的加密密文进行解密,进而保证了云存储数据的隐私性和完整性。
如图7所示,图7是本申请实施例提供的一种客户端的结构示意图。本申请实施例中的客户端至少包括:
选取模块701,用于根据用户输入的操作指令,选择一个随机数和一个密钥。其中,所述随机数和所述密钥均小于n,所述n为所述椭圆曲线上的点的阶。
具体实现中,客户端可以接收用户输入的操作指令,从1到n-1的区间内选取任一个整数作为随机数,并从1到n-1的区间内选取一个整数作为密钥,所述n为椭圆曲线上的点的阶。例如,对于椭圆曲线E:y2=x3+ax+b,如果椭圆曲线上点P,存在最小的正整数n,使得数乘nP=O∞,则将n称为P的阶,若n不存在,P是无限阶的。其中,O∞为该椭圆曲线上的无穷远点。
可选的,在客户端选择一个随机数和一个密钥之前,硬件安全模块HSM可以对密钥管理系统进行初始化。具体的,可以根据用户输入的选择指令,从多个素数中选择一个素数q,然后从多个整数中选择两个满足小于q的非负整数a、b,使得4a3+27b2=0modq不成立。因此满足下列方程的所有点(x,y)和无穷远点O∞,构成一条椭圆曲线E:y2=x3+ax+b,其中x,y属于0到p-1之间的整数。然后对椭圆曲线进行离散化处理,例如y2=x3+ax+bmodq得到的全部解(x,y)∈Zq和一个无穷远点O∞。最后从全部解中选择一个点P作为椭圆曲线上的任意一点,且点P的阶为n。另外,HSM可以接收用户输入的选择指令,从多个哈希函数中选择一个哈希函数,使其满足条件H:{0,1}*->{0,1}1024。
然后,HSM可以根据用户输入的选择指令,从[1,n-1]中选取一个整数s1作为HSM的私钥,然后根据HSM的私钥和椭圆曲线上的点P,计算HSM的第一公钥,第一公钥S1=s1·P,表示为(S1,P)。客户端可以接收HSM发送的椭圆曲线上的点P和n(点P的阶),然后根据用户输入的选择指令,从[1,n-1]中选取一个整数s2作为客户端的私钥,然后根据客户端的私钥和椭圆曲线上的点P,计算客户端的第二公钥,第二公钥S2=s2·P,表示为(S2,P)。
处理模块702,用于根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的。
具体实现中,可以利用椭圆曲线加密算法,根据HSM的第一公钥(S1,P)和客户端的第二公钥(S2,P)共同生成密钥K的加密密文Ek,即Ek=(r·P,(S1+S2)·r+k),其中,r为随机数,k为秘钥,S1为第一公钥,S2为第二公钥。由公式可知,加密密文Ek由硬件安全模块的第一公钥和客户端的第二公钥共同决定。r·P表示根据随机数r和椭圆曲线上的点P计算椭圆曲线上映射的点。其中,所述硬件安全模块的私钥为所述硬件安全模块从1到n-1的区间选取的一个整数;所述客户端的私钥为所述客户端从1到n-1的区间选取的一个整数,所述n为所述椭圆曲线上的点的阶。
处理模块702,还用于根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文。
具体实现中,可以调用加密API,并根据所述密钥和预选的哈希函数,生成的用于加密云存储数据对称密钥序列(H(1||k),H(2||k),……,H(m||k)),其中,k为密钥,H为哈希函数。并利用对称密钥算法,根据对称密钥序列(H(1||k),H(2||k),……,H(m||k))对云存储数据(m1,m2,……mk)进行加密得到数据密文(Enc(m1),……,Enc(mk))。
发送模块703,还用于向云服务器发送所述第一加密密文和所述数据密文。云服务器对所述第一加密密文和所述数据密文进行存储。如图4所示,图4是本申请实施例提供的一种第一加密密文和数据密文的存储格式的示意图。前一部分是第一加密密文,后一部分是数据密文。通过第一加密密文可以对数据密文进行解密。由于第一加密密文是根据硬件安全模块的第一公钥和客户端的第二公钥生成的,因此需要硬件安全模块和客户端对第一加密密文共同解密,才能得到密钥。
可选的,发送模块703,还用于向所述云服务器发送解密请求,所述解密请求用于指示所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文。
可选的,所述客户端还包括:
接收模块704,用于接收所述硬件安全模块发送的所述第二加密密文、以及接收所述云服务器发送的所述数据密文。其中,硬件安全模块接收到解密请求之后,利用硬件安全模块的私钥计算出第二加密密文 由公式可知,第二加密密文Ek仅由客户端的第二公钥决定。
处理模块702,还用于根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据。
进一步的,处理模块702,还用于根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文进行解密得到所述密钥;根据所述密钥和所述哈希函数,生成所述对称密钥序列;根据所述对称密钥序列,对所述数据密文进行解密得到所述云存储数据。
具体实现中,客户端根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文r·P,S2·r+k进行解密得到密钥S2·r+k-s2·r·P=k;然后调用解密API,根据所述密钥k和所述哈希函数,生成所述对称密钥序列(H(1||k),H(2||k),……,H(m||k)),其中,k为密钥,H为哈希函数。;最后根据所述对称密钥序列,对所述数据密文(Enc(m1),……,Enc(mk))进行解密得到云存储数据(m1,m2,……mk)。
进一步的,本申请实施例中的客户端的具体实现方式可以参考上述实施例中客户端的操作步骤。
如图8所示,图8是本申请实施例提供的一种云服务器的结构示意图。本申请实施例中的云服务器至少包括:
接收模块801,用于接收客户端发送的第一加密密文和数据密文,所述第一加密密文为根据随机数、密钥、第一公钥和第二公钥生成的,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的,所述数据密文为根据对称密钥序列对云存储数据进行加密得到的,所述对称密钥序列为根据所述密钥和预选的哈希函数生成的。
可选的,接收模块801,用于接收所述客户端发送的解密请求;
发送模块802,用于向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于指示所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
发送模块802,用于向所述客户端发送所述数据密文,所述数据密文用于所述客户端根据所述第二加密密文进行解密得到所述云存储数据。
进一步的,本申请实施例中的云服务器的具体实现方式可以参考上述实施例中云服务器的操作步骤。
请继续参考图9,图9是本申请实施例提出的另一种客户端的结构示意图。如图9所示,该客户端可以包括:至少一个处理器901,至少一个通信接口902,至少一个存储器903和至少一个通信总线904。
其中,处理器901可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。通信总线904可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线904用于实现这些组件之间的连接通信。其中,本申请实施例中设备的通信接口902用于与其他节点设备进行信令或数据的通信。存储器903可以包括易失性存储器,例如非挥发性动态随机存取内存(nonvolatile random access memory,NVRAM)、相变化随机存取内存(phasechange RAM,PRAM)、磁阻式随机存取内存(magetoresistive RAM,MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、闪存器件,例如反或闪存(NORflash memory)或是反及闪存(NAND flash memory)、半导体器件,例如固态硬盘(solidstate disk,SSD)等。存储器903可选的还可以是至少一个位于远离前述处理器901的存储装置。存储器903中可选的还可以存储一组程序代码,且处理器901可选的还可以执行存储器903中所执行的程序。
根据用户输入的操作指令,选择一个随机数和一个密钥;
根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的;
根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文;
向云服务器发送所述第一加密密文和所述数据密文。
可选的,处理器901还可以用于执行如下操作步骤:
向所述云服务器发送解密请求,所述解密请求用于指示所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
接收所述硬件安全模块发送的所述第二加密密文、以及接收所述云服务器发送的所述数据密文;
根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据。
可选的,处理器901还可以用于执行如下操作步骤:
根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文进行解密得到所述密钥;
根据所述密钥和所述哈希函数,生成所述对称密钥序列;
根据所述对称密钥序列,对所述数据密文进行解密得到所述云存储数据。
其中,所述随机数和所述密钥均小于n,所述n为所述椭圆曲线上的点的阶。
其中,所述硬件安全模块的私钥为所述硬件安全模块从1到n-1的区间选取的一个整数;所述客户端的私钥为所述客户端从1到n-1的区间选取的一个整数,所述n为所述椭圆曲线上的点的阶。
进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中客户端的操作。
请继续参考图10,图10是本申请实施例提出的另一种云服务器的结构示意图。如图所示,该云服务器可以包括:至少一个处理器1001,至少一个通信接口1002,至少一个存储器1003和至少一个通信总线1004。
其中,处理器1001可以是前文提及的各种类型的处理器。通信总线1004可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线1004用于实现这些组件之间的连接通信。其中,本申请实施例中设备的通信接口1002用于与其他节点设备进行信令或数据的通信。存储器1003可以是前文提及的各种类型的存储器。存储器1003可选的还可以是至少一个位于远离前述处理器1001的存储装置。存储器1003中存储一组程序代码,且处理器1001执行存储器1003中所执行的程序。
接收客户端发送的第一加密密文和数据密文,所述第一加密密文为根据随机数、密钥、第一公钥和第二公钥生成的,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的,所述数据密文为根据对称密钥序列对云存储数据进行加密得到的,所述对称密钥序列为根据所述密钥和预选的哈希函数生成的;
对第一加密密文和数据密文进行存储。
可选的,处理器1001还可以用于执行如下操作步骤:
接收所述客户端发送的解密请求;
向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于指示所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
向所述客户端发送所述数据密文,所述数据密文用于所述客户端根据所述第二加密密文进行解密得到所述云存储数据。
进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中云服务器的操作。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种密钥管理方法,其特征在于,所述方法包括:
客户端根据用户输入操作指令,选择一个随机数和一个密钥;
所述客户端根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的;
所述客户端根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文;
所述客户端向云服务器发送所述第一加密密文和所述数据密文。
2.如权利要求1所述的方法,其特征在于,所述客户端向云服务器发送所述第一加密密文和所述数据密文之后,还包括:
所述客户端向所述云服务器发送解密请求,所述解密请求用于指示所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
所述客户端接收所述硬件安全模块发送的所述第二加密密文、以及接收所述云服务器发送的所述数据密文;
所述客户端根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据。
3.如权利要求2所述的方法,其特征在于,所述客户端根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据包括:
所述客户端根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文进行解密得到所述密钥;
所述客户端根据所述密钥和所述哈希函数,生成所述对称密钥序列;
所述客户端根据所述对称密钥序列,对所述数据密文进行解密得到所述云存储数据。
4.如权利要求1-3任一项所述的方法,其特征在于,所述随机数和所述密钥均小于n,所述n为所述椭圆曲线上的点的阶。
5.如权利要求1-3任一项所述的方法,其特征在于,所述硬件安全模块的私钥为所述硬件安全模块从1到n-1的区间选取的一个整数;所述客户端的私钥为所述客户端从1到n-1的区间选取的一个整数,所述n为所述椭圆曲线上的点的阶。
6.一种密钥管理方法,其特征在于,所述方法包括:
云服务器接收客户端发送的第一加密密文和数据密文,所述第一加密密文为根据随机数、密钥、第一公钥和第二公钥生成的,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的,所述数据密文为根据对称密钥序列对云存储数据进行加密得到的,所述对称密钥序列为根据所述密钥和预选的哈希函数生成的;
所述云服务器对所述第一加密密文和所述数据密文进行存储。
7.如权利要求6所述的方法,其特征在于,所述云服务器接收客户端发送的第一加密密文和数据密文之后,还包括:
所述云服务器接收所述客户端发送的解密请求;
所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于指示所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
所述云服务器向所述客户端发送所述数据密文,所述数据密文用于所述客户端根据所述第二加密密文进行解密得到所述云存储数据。
8.一种客户端,其特征在于,所述客户端包括:
选取模块,用于根据用户输入操作指令,选择一个随机数和一个密钥;
处理模块,用于根据所述随机数、所述密钥、第一公钥和第二公钥,生成所述密钥的第一加密密文,所述第一公钥为根据椭圆曲线上的点和硬件安全模块的私钥确定的,所述第二公钥为根据所述椭圆曲线上的点和所述客户端的私钥确定的;
所述处理模块,还用于根据所述密钥和预选的哈希函数,生成对称密钥序列,并根据所述对称密钥序列,对云存储数据进行加密得到数据密文;
发送模块,还用于向云服务器发送所述第一加密密文和所述数据密文。
9.如权利要求8所述的客户端,其特征在于,
所述发送模块,还用于向所述云服务器发送解密请求,所述解密请求用于指示所述云服务器向所述硬件安全模块发送所述第一加密密文,所述第一加密密文用于所述硬件安全模块根据所述硬件安全模块的私钥、所述椭圆曲线上的点以及所述随机数进行解密得到第二加密密文;
所述客户端还包括:
所述接收模块,用于接收所述硬件安全模块发送的所述第二加密密文、以及接收所述云服务器发送的所述数据密文;
所述处理模块,还用于根据所述第二加密密文,对所述数据密文进行解密得到所述云存储数据。
10.如权利要求9所述的客户端,其特征在于,
所述处理模块,还用于根据所述客户端的私钥、所述随机数以及所述椭圆曲线上的点,对所述第二加密密文进行解密得到所述密钥;根据所述密钥和所述哈希函数,生成所述对称密钥序列;根据所述对称密钥序列,对所述数据密文进行解密得到所述云存储数据。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445155.9A CN110417726B (zh) | 2019-05-27 | 2019-05-27 | 一种密钥管理方法及相关设备 |
EP20814904.7A EP3913850A4 (en) | 2019-05-27 | 2020-05-19 | KEY MANAGEMENT METHOD AND ASSOCIATED DEVICE |
JP2021532878A JP7137707B2 (ja) | 2019-05-27 | 2020-05-19 | キー管理方法、クライアントおよびプログラム |
PCT/CN2020/091002 WO2020238694A1 (zh) | 2019-05-27 | 2020-05-19 | 一种密钥管理方法及相关设备 |
US17/400,494 US11784801B2 (en) | 2019-05-27 | 2021-08-12 | Key management method and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445155.9A CN110417726B (zh) | 2019-05-27 | 2019-05-27 | 一种密钥管理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110417726A true CN110417726A (zh) | 2019-11-05 |
CN110417726B CN110417726B (zh) | 2021-08-24 |
Family
ID=68357780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910445155.9A Active CN110417726B (zh) | 2019-05-27 | 2019-05-27 | 一种密钥管理方法及相关设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11784801B2 (zh) |
EP (1) | EP3913850A4 (zh) |
JP (1) | JP7137707B2 (zh) |
CN (1) | CN110417726B (zh) |
WO (1) | WO2020238694A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510282A (zh) * | 2020-04-28 | 2020-08-07 | 刘佳 | 信息加密算法、装置与信息解密算法、装置以及通讯方法 |
WO2020238694A1 (zh) * | 2019-05-27 | 2020-12-03 | 腾讯科技(深圳)有限公司 | 一种密钥管理方法及相关设备 |
CN112084523A (zh) * | 2020-09-29 | 2020-12-15 | 深圳壹账通智能科技有限公司 | 文本加密方法及装置、终端设备、存储介质 |
CN113178023A (zh) * | 2021-04-25 | 2021-07-27 | 深圳市威斯登信息科技有限公司 | 一种自助的人-证-票核验的通道控制系统 |
CN113254985A (zh) * | 2021-07-15 | 2021-08-13 | 北京信安世纪科技股份有限公司 | 数据加密方法、数据处理方法、数据解密方法及电子设备 |
CN113765666A (zh) * | 2020-10-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 信息加密方法及装置 |
CN114095214A (zh) * | 2021-10-29 | 2022-02-25 | 上海热线信息网络有限公司 | 一种基于区块链nft技术的加、解密方法及装置、设备及介质 |
CN115150065A (zh) * | 2021-03-30 | 2022-10-04 | 维萨国际服务协会 | 用于数据安全的系统、方法和计算机程序产品 |
CN115499250A (zh) * | 2022-11-17 | 2022-12-20 | 北京搜狐新动力信息技术有限公司 | 一种数据加密方法及装置 |
CN116491096A (zh) * | 2020-07-16 | 2023-07-25 | 硕动力公司 | 使用密钥协定来保护数据 |
CN117010001A (zh) * | 2023-09-28 | 2023-11-07 | 之江实验室 | 数据安全服务方法、装置及云存储系统 |
CN118646602A (zh) * | 2024-08-14 | 2024-09-13 | 中南财经政法大学 | 用户外包数据的加密解密方法、云服务器、设备及介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11646871B2 (en) * | 2020-08-12 | 2023-05-09 | Intuit Inc. | System and method for multitenant key derivation |
US11601271B2 (en) * | 2020-12-02 | 2023-03-07 | Vmware, Inc. | Cloud-based removable drive encryption policy enforcement and recovery key management |
CN114760081A (zh) * | 2020-12-28 | 2022-07-15 | 富泰华工业(深圳)有限公司 | 档案加密与解密方法、装置及电子设备 |
CN114022964B (zh) * | 2021-09-24 | 2024-05-17 | 北京中交国通智能交通系统技术有限公司 | Etc应用秘钥更新方法、装置及系统 |
CN114258018B (zh) * | 2021-11-12 | 2024-04-09 | 中国南方电网有限责任公司 | 密钥管理方法、装置、计算机设备及存储介质 |
CN114401084B (zh) * | 2021-12-10 | 2023-12-29 | 北京理工大学 | 一种基于密文变换的第三方随机数传递方法 |
US20240214200A1 (en) * | 2022-12-21 | 2024-06-27 | SK Hynix NAND Product Solutions Corp. (dba Solidigm) | Methods for accelerating prime number generation in electronic devices |
CN116366283B (zh) * | 2023-02-07 | 2023-08-18 | 南京模砾半导体有限责任公司 | 一种基于对称加密的文件安全传输方法 |
CN116361344B (zh) * | 2023-04-03 | 2024-09-06 | 北京火山引擎科技有限公司 | 数据查询方法、装置、设备及介质 |
CN117155567B (zh) * | 2023-09-19 | 2024-05-31 | 江南信安(南京)科技有限公司 | 基于密码机资源池的多层密钥生成管理方法及装置 |
CN117294514B (zh) * | 2023-10-18 | 2024-08-13 | 天翼数字生活科技有限公司 | 一种数据传输加密与解密方法、装置、电子设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105210327A (zh) * | 2013-03-14 | 2015-12-30 | 亚马逊技术股份有限公司 | 提供设备即服务 |
CN107403109A (zh) * | 2017-08-09 | 2017-11-28 | 苏州中科安源信息技术有限公司 | 加密方法及加密系统 |
US20190132127A1 (en) * | 2017-11-01 | 2019-05-02 | International Business Machines Corporation | Postponing entropy depletion in key management systems with hardware security modules |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9407440B2 (en) | 2013-06-20 | 2016-08-02 | Amazon Technologies, Inc. | Multiple authority data security and access |
JP2015065615A (ja) | 2013-09-26 | 2015-04-09 | 株式会社日立ソリューションズ | データ暗号化装置、データ暗号化プログラム及びデータ暗号化方法 |
US9645794B2 (en) * | 2014-09-23 | 2017-05-09 | Texas Instruments Incorporated | Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography |
WO2016128070A1 (en) | 2015-02-13 | 2016-08-18 | Nec Europe Ltd. | Method for storing a data file of a client on a storage entity |
CN105119894B (zh) * | 2015-07-16 | 2018-05-25 | 上海慧银信息科技有限公司 | 基于硬件安全模块的通信系统及通信方法 |
US10637658B2 (en) * | 2017-01-25 | 2020-04-28 | Salesforce.Com, Inc. | Secure internal user authentication leveraging public key cryptography and key splitting |
GB201713499D0 (en) * | 2017-08-23 | 2017-10-04 | Nchain Holdings Ltd | Computer-implemented system and method |
US10958424B1 (en) * | 2017-11-02 | 2021-03-23 | Amazon Technologies, Inc. | Mechanism to allow third party to use a shared secret between two parties without revealing the secret |
CN110417726B (zh) * | 2019-05-27 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种密钥管理方法及相关设备 |
-
2019
- 2019-05-27 CN CN201910445155.9A patent/CN110417726B/zh active Active
-
2020
- 2020-05-19 JP JP2021532878A patent/JP7137707B2/ja active Active
- 2020-05-19 WO PCT/CN2020/091002 patent/WO2020238694A1/zh unknown
- 2020-05-19 EP EP20814904.7A patent/EP3913850A4/en active Pending
-
2021
- 2021-08-12 US US17/400,494 patent/US11784801B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105210327A (zh) * | 2013-03-14 | 2015-12-30 | 亚马逊技术股份有限公司 | 提供设备即服务 |
CN107403109A (zh) * | 2017-08-09 | 2017-11-28 | 苏州中科安源信息技术有限公司 | 加密方法及加密系统 |
US20190132127A1 (en) * | 2017-11-01 | 2019-05-02 | International Business Machines Corporation | Postponing entropy depletion in key management systems with hardware security modules |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020238694A1 (zh) * | 2019-05-27 | 2020-12-03 | 腾讯科技(深圳)有限公司 | 一种密钥管理方法及相关设备 |
US11784801B2 (en) | 2019-05-27 | 2023-10-10 | Tencent Technology (Shehnzhen) Company Limited | Key management method and related device |
CN111510282A (zh) * | 2020-04-28 | 2020-08-07 | 刘佳 | 信息加密算法、装置与信息解密算法、装置以及通讯方法 |
CN116491096A (zh) * | 2020-07-16 | 2023-07-25 | 硕动力公司 | 使用密钥协定来保护数据 |
CN112084523A (zh) * | 2020-09-29 | 2020-12-15 | 深圳壹账通智能科技有限公司 | 文本加密方法及装置、终端设备、存储介质 |
CN113765666A (zh) * | 2020-10-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 信息加密方法及装置 |
CN115150065A (zh) * | 2021-03-30 | 2022-10-04 | 维萨国际服务协会 | 用于数据安全的系统、方法和计算机程序产品 |
CN113178023A (zh) * | 2021-04-25 | 2021-07-27 | 深圳市威斯登信息科技有限公司 | 一种自助的人-证-票核验的通道控制系统 |
CN113254985A (zh) * | 2021-07-15 | 2021-08-13 | 北京信安世纪科技股份有限公司 | 数据加密方法、数据处理方法、数据解密方法及电子设备 |
CN113254985B (zh) * | 2021-07-15 | 2021-12-21 | 北京信安世纪科技股份有限公司 | 数据加密方法、数据处理方法、数据解密方法及电子设备 |
CN114095214A (zh) * | 2021-10-29 | 2022-02-25 | 上海热线信息网络有限公司 | 一种基于区块链nft技术的加、解密方法及装置、设备及介质 |
CN114095214B (zh) * | 2021-10-29 | 2023-12-12 | 上海热线信息网络有限公司 | 一种基于区块链nft技术的加、解密方法及装置、设备及介质 |
CN115499250A (zh) * | 2022-11-17 | 2022-12-20 | 北京搜狐新动力信息技术有限公司 | 一种数据加密方法及装置 |
CN117010001A (zh) * | 2023-09-28 | 2023-11-07 | 之江实验室 | 数据安全服务方法、装置及云存储系统 |
CN117010001B (zh) * | 2023-09-28 | 2024-03-01 | 之江实验室 | 数据安全服务方法、装置及云存储系统 |
CN118646602A (zh) * | 2024-08-14 | 2024-09-13 | 中南财经政法大学 | 用户外包数据的加密解密方法、云服务器、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110417726B (zh) | 2021-08-24 |
JP2022534461A (ja) | 2022-08-01 |
WO2020238694A1 (zh) | 2020-12-03 |
EP3913850A4 (en) | 2022-05-04 |
JP7137707B2 (ja) | 2022-09-14 |
EP3913850A1 (en) | 2021-11-24 |
US11784801B2 (en) | 2023-10-10 |
US20210377010A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417726A (zh) | 一种密钥管理方法及相关设备 | |
US9590807B2 (en) | Identity based public key cryptosystem | |
US10897456B2 (en) | Cryptography using multi-factor key system and finite state machine | |
US20120269340A1 (en) | Hierarchical encryption/decryption device and method thereof | |
CN113411345A (zh) | 一种安全会话的方法和装置 | |
Liang et al. | The hybrid encryption algorithm of lightweight data in cloud storage | |
JP6533553B2 (ja) | 暗号化/復号装置及びその電力解析保護方法 | |
KR20170122458A (ko) | 암호문의 크기가 감소되는 동형 암호화 방법 | |
JP2021144239A (ja) | 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法 | |
CN107204997A (zh) | 管理云存储数据的方法和装置 | |
Chi et al. | An Efficient Searchable Public‐Key Authenticated Encryption for Cloud‐Assisted Medical Internet of Things | |
US11431489B2 (en) | Encryption processing system and encryption processing method | |
WO2021098152A1 (zh) | 基于区块链的数据处理方法、装置及计算机设备 | |
Ukwuoma et al. | Post-quantum cryptography-driven security framework for cloud computing | |
WO2019198516A1 (ja) | 鍵配信システム、端末装置、鍵配信方法、及びプログラム | |
JP6270683B2 (ja) | 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置 | |
Krishnamoorthy et al. | Implementation and management of cloud security for industry 4. O-data using hybrid elliptical curve cryptography | |
CN110995749A (zh) | 区块链加密方法及装置、电子设备和存储介质 | |
Malgari et al. | A novel data security framework in distributed cloud computing | |
Tsai et al. | An ECC-based secure EMR transmission system with data leakage prevention scheme | |
CN115599959A (zh) | 数据共享方法、装置、设备及存储介质 | |
JP2019200382A (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム | |
CN111931202A (zh) | 用于分布式系统的加密存储方法、终端设备和存储介质 | |
Beyene et al. | Performance Analysis of Homomorphic Cryptosystem on Data Security in Cloud Computing | |
Kaur et al. | Survey of Security Algorithms in Cloud |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |