CN113874857A - 用于最优信息理论安全的加密密钥管理的方法和设备 - Google Patents

用于最优信息理论安全的加密密钥管理的方法和设备 Download PDF

Info

Publication number
CN113874857A
CN113874857A CN202080038919.3A CN202080038919A CN113874857A CN 113874857 A CN113874857 A CN 113874857A CN 202080038919 A CN202080038919 A CN 202080038919A CN 113874857 A CN113874857 A CN 113874857A
Authority
CN
China
Prior art keywords
key
seed
encryption
file
bits
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
CN202080038919.3A
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.)
Baizhuo Information Technology Co ltd
Bicdroid Inc
Original Assignee
Baizhuo Information Technology Co ltd
Bicdroid Inc
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 Baizhuo Information Technology Co ltd, Bicdroid Inc filed Critical Baizhuo Information Technology Co ltd
Publication of CN113874857A publication Critical patent/CN113874857A/zh
Pending legal-status Critical Current

Links

Images

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)
    • H04L9/0822Key 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 key encryption key
    • 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/0435Network 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 symmetric encryption, i.e. same key used 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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

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

用于最优信息理论安全的加密密钥管理的方法和设备
相关申请的交叉引用
本专利申请要求2019年5月27日提交的美国临时专利申请62/853,081的优先权,其全部内容通过引用并入本文。
领域
本发明的实施方案总体涉及数据保护和加密,更具体地说,涉及用于生成和管理加密密钥的方法和计算机程序产品。
序言
以下不是承认下面讨论的任何内容都是先有技术的一部分,也不是所属技术领域的专业人员常识的一部分。
随着人们越来越依赖于计算和互联网技术,数据安全变得比以往更加重要。随着互联网连接的普及,广泛访问和分发数据变得相对容易。为了享受云计算的好处,人们和公司将数据上传到云服务器,这通常包括私有或机密数据,或用户可能需要保护的任何数据,这增加了私有和重要数据在未受保护的情况下被不必要地暴露的机会。
云存储可能有许多相关的安全漏洞,例如,云计算的安全威胁可能包括数据泄露、数据丢失、恶意内部人员和共享技术问题。减轻数据安全问题的一种方法是通过加密,例如,文件可以在保存和存储、上传和/或传输之前进行加密。没有相应的解密密钥,拿到加密的文件就没有意义了。
密钥管理(加密和解密密钥的管理)在密码***中起着根本性的作用。适合的密钥管理是保证密码技术安全的基础,以提供保密性、身份验证、数据源身份验证、数据完整性和数字签名(参见,例如,A.J.Menezes,P.C.van Oorschot,and S.A.Vanstone,Handbookof Applied Cryptography.CRC Press,1996)。一个安全的密钥管理过程应当提供技术和流程,以支持在授权方之间建立和维护密钥材料和密钥的机密性。
公共云上的数据需要长时间存储,大量合法用户也会频繁访问存储的数据。为了保护机密性,数据可以在上传到云之前进行加密,例如,类似高级加密标准(AES)(参见,例如,Advanced Encryption Standard(AES).Federal Information Processing Standards(FIPS)Publication 197,United States National Institute of Standards andTechnology(NIST),2001)的安全对称密码可用来对数据进行加密和解密。由于数据存储的长期性和访问的频繁性,每个文件最好使用自己的随机密钥来加密,这会为防止各种攻击(如密文攻击和已知/选择的明文攻击)提供更高的安全性(参见,例如,A.J.Menezes,P.C.van Oorschot,and S.A.Vanstone,Handbook of Applied Cryptography.CRC Press,1996)。
但是,随着加密文件数量的增加,随机密钥列表也相应增加。由于存储在云中的加密文件通常需要支持合法用户在将来任何时间的访问,需要安全地维护密钥和密钥材料,以确保数据的安全性和可访问性,特别是不能删除任何密钥和密钥材料。同样,这些加密文件通常需要由不同的合法用户通过不同的设备访问。然而,随机密钥列表可能会增长到包含数百万或数亿个密钥,因此,安全地生成、分发和维护这样的随机密钥列表变得越来越困难。这个问题可以松散地称为密钥管理问题。与传统的安全通信加密应用相比,云数据安全让密钥管理问题更具挑战性。
发明内容
以下提供的介绍,是为读者介绍接下来的更详细的讨论,引入的目的不是限制或定义任何所要求保护的或尚未要求保护的发明。一项或多项发明可存在于本文档任何部分披露的元素或过程步骤的任何组合或子组合中,包括其权利要求和图表。
本披露提供了可用于管理多个加密密钥的方法、设备和计算机程序产品。大数量的随机加密/解密密钥可以安全地生成、分发和维护,同时管理相对较少数量的共享秘密比特(称为密钥库种子)。可以定义一个密钥管理过程,以在密钥库种子和多个加密密钥之间提供一个密钥映射。密钥库种子定义了一个种子比特集合,这是在设备之间可以共享的秘密比特。可以定义密钥映射,以从种子比特集合和与加密密钥对应的密钥值中容易地确定每个加密密钥。密钥管理过程可以被定义来提供特定级别的数据安全性。使用在此描述的密钥管理过程,可以通过管理单个密钥库种子来管理大数量的加密密钥,从而简化密钥管理过程,同时又保持高水平的数据安全性。
按照这一广泛的方面,提供了一种使用至少一个计算设备管理多个加密密钥的方法,每个计算设备都有一个处理器和一个非瞬时性存储器,该方法包括将密钥库种子存储在至少一个计算设备中的某特定计算设备的非瞬时性存储器中,用所述密钥库种子生成所述多个加密密钥中的每一个加密密钥,其中,所述密钥库种子定义了具有多个种子比特的种子比特集合,所述种子比特集合中的多个种子比特是独立同分布的,其中每个加密密钥由多个密钥比特定义,所述加密密钥具有指定的密钥长度,所述指定密钥长度对于每个加密密钥都是相同的,指定的密钥长度定义了多个密钥比特中的密钥比特的数量,其中所述种子比特集合具有所述比特集合长度,而所述种子比特集合长度指定了所述种子比特集合中的种子比特的数量,所述种子比特集合长度至少是指定密钥长度的两倍;通过特定计算设备的处理器确定一个密钥管理过程,该过程定义了所述种子比特集合和所述多个加密密钥之间的一个密钥映射,其中特定计算设备的处理器可使用所述密钥管理过程,通过所述密钥映射,从所述种子比特集合和与加密密钥对应的密钥材料值中生成所述多个加密密钥中的每个加密密钥;存储与所述密钥管理过程相对应的密钥管理指令到特定计算设备存储器中,其中所述密钥管理指令可由特定计算设备的处理器执行,通过下列方式生成所述多个加密密钥中的任何特定的加密密钥:将所述种子比特集合分割成多个种子比特分区,其中所述多个种子比特分区中的种子比特分区数量,由基于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率所确定的分区值来定义,其中分区值是一个整数且至少等于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率;从与指定加密密钥对应的密钥材料值中确定一个密钥值;使用多个种子比特分区和密钥值确定一个密钥序列,其中所述密钥序列包括多个密钥序列比特集合,每个密钥序列比特集合对应一个种子比特分区;从所述密钥序列中确定一个加密密钥,其中所述加密密钥可由至少一个处理器使用,以执行加密一个明文文件和解密一个密文文件中的至少一项。
在某些示例中,密钥序列可以通过将每个种子比特分区乘以密钥值的相应指数来确定,每个密钥序列比特集合可能对应于一个种子比特分区与所述密钥值的不同指数的乘积。
在某些示例中,加密密钥可由密钥序列中的多个密钥序列比特集合按位相加来确定。
在某些示例中,每个种子比特分区的分区长度可能等于指定的密钥长度,从而每个种子比特分区中的种子比特的数量等于密钥比特的数量。
在某些示例中,所述密钥管理过程可能指定密钥值被定义为密钥材料值。
在某些示例中,所述密钥管理过程可能指定从所述密钥序列中确定加密密钥,包括:从所述密钥序列中确定一个密钥序列输出,其中所述密钥序列输出是由所述密钥序列中所述多个密钥序列比特集合按位相加而确定;将所述密钥序列输出输入到一个对称加密密码中以确定加密密钥,其中通过配置对称加密密码并使用所述密钥序列输出生成密文密钥序列;并将加密密钥确定为所述密文密钥序列。
在某些示例中,所述密钥管理过程可能指定,所述密钥值按下面方法确定:将所述密钥材料值输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥材料值生成密文密钥材料;并将所述密钥值确定为所述密文密钥材料值。
在某些示例中,该方法可能包括识别要加密的文件;通过随机选择特定密钥材料值生成一个文件加密密钥;使用所述密钥管理过程从特定密钥材料值中确定特定密钥值;使用所述密钥管理过程从所述多个种子比特分区和所述特定密钥值中确定一个特定密钥序列;使用所述密钥管理过程从所述特定的密钥序列中确定所述文件加密密钥;通过下列方式生成加密文件:将加密密码应用到所述文件以生成密文文件,其中所述加密密码使用密码密钥生成所述密文文件,并且当所述加密密码应用于所述文件时,文件加密密钥被用作所述加密密码的密码密钥;从所述密文文件生成所述加密文件。
在某些示例中,所述加密文件可能包括所述密文文件和与所述特定密钥材料值对应的文件密钥材料。
在某些示例中,该方法可能包括识别要解密的给定加密文件;确定与所述给定加密文件对应的给定密钥材料值;使用所述密钥管理过程,从所述给定的密钥材料值中确定给定的密钥值;使用所述密钥管理过程,从所述多个种子比特分区和所述给定的密钥值中确定给定的密钥序列;使用所述密钥管理过程从所述给定密钥序列生成文件解密密钥;通过将解密密码应用于所述给定加密文件生成明文文件来生成解密文件,其中所述解密密码使用解密密码密钥生成所述明文文件,并且当所述解密密码应用于所述给定加密文件时,所述文件解密密钥被用作所述解密密码的解密密码密钥。
在某些示例中,确定与所述给定加密文件对应的所述给定密钥材料值可能包括从所述加密文件中提取所述给定密钥材料值。
在某些示例中,所述种子比特集合长度可能至少是所述指定的密钥长度的三倍,并且所述种子比特集合长度可能是所述指定密钥长度的整数倍。
在某些示例中,所述密钥库种子定义了初始种子比特的初始集合,其中所述初始种子比特的初始集合具有小于所述种子比特集合长度,并且所述种子比特集合通过将零附加到所述初始种子比特的初始集合中来定义,使得所述初始种子比特的初始集合与附加零的的组合长度等于所述种子比特集合的长度。
在某些示例中,该方法可能包括将所述密钥管理指令和所述密钥库种子安全地传输到多个不同的计算设备,其中所述密钥管理指令和所述密钥库种子使得每个不同的计算设备能够生成所述多个加密密钥中的每个加密密钥。
按照这一广泛的方面,还提供了用于管理多个加密密钥的计算机程序产品,计算机程序产品包含存储有计算机可执行指令的计算机可读介质,所述指令用于配置计算设备的处理器以执行下列事项:将密钥库种子存储在所述计算设备的非瞬时性存储器中,所述密钥库种子可用来生成所述多个加密密钥中的每个加密密钥,其中所述密钥库种子定义了一个具有多个种子比特的种子比特集合,所述种子比特集合中的多个种子比特是独立同分布的,其中每个加密密钥由多个密钥比特定义,加密密钥具有指定的密钥长度,所述指定的密钥长度对于每个加密密钥都是相同的,指定的密钥长度定义了所述多个密钥比特中的密钥比特的数量,其中所述种子比特集合有种子比特集合长度,所述种子比特集合长度指定所述种子比特集合中的种子比特的数量,所述种子比特集合长度至少为所述指定密钥长度的两倍;确定一个密钥管理过程,该过程定义了所述种子比特集合和所述多个加密密钥之间的一个密钥映射,其中,所述密钥管理过程被所述处理器用来从所述种子比特集合中生成所述多个加密密钥中的每个加密密钥,其生成方式是通过使用所述密钥映射,以及与所述加密密钥对应的密钥材料值;把与所述密钥管理过程相对应的密钥管理指令存储在特定计算设备存储器中,其中所述密钥管理指令可由特定计算设备的处理器执行,通过下列方式生成所述多个加密密钥中的任何特定的加密密钥:将所述种子比特集合分割成多个种子比特分区,其中所述多个种子比特分区中的种子比特分区数量,由基于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率所确定的分区值来定义,其中分区值是一个整数且至少等于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率;从与所述特定加密密钥对应的密钥材料值中确定一个密钥值;使用所述多个种子比特分区和密钥值,确定一个密钥序列,其中所述密钥序列包括多个密钥序列比特集合,每个密钥序列比特集合对应一个种子比特分区;从所述密钥序列中确定一个加密密钥,其中所述加密密钥可被所述处理器用来执行加密一个明文文件和解密一个密文文件中的至少一项。
在某些示例中,所述密钥管理指令可以被定义来配置所述处理器,以通过将每个种子比特分区乘以所述密钥值的相应指数来确定所述密钥序列,其中每个密钥序列比特集合对应于一个种子比特分区与所述密钥值的不同指数的乘积。
在某些示例中,所述密钥管理指令可以被定义来配置所述处理器,根据所述密钥序列中所述多个密钥序列比特集合按位相加来确定所述加密密钥。
在某些示例中,所述密钥管理指令可以被定义来配置所述处理器,以定义每个种子比特分区,其中每个种子比特分区具有等于所述指定密钥长度的分区长度,使得每个种子比特分区中的种子比特的数量等于密钥比特的数量。
在某些示例中,所述密钥管理过程可能指定密钥值被定义为所述密钥材料值。
在某些示例中,所述密钥管理指令可以被定义来配置所述处理器,按照下列方式从所述密钥序列中确定所述加密密钥:从所述密钥序列中确定一个密钥序列输出,其中所述密钥序列输出是由所述密钥序列中所述多个密钥序列比特集合按位相加来确定;通过下列方式确定所述加密密钥:将所述密钥序列输出输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥序列输出生成密文密钥序列;将所述加密密钥确定为密文密钥序列。
在某些示例中,所述密钥管理指令被定义为配置所述处理器,按照下列方式确定所述密钥值:将所述密钥材料值输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥材料值来生成密文密钥材料值;将所述密钥值确定为所述密文密钥材料值。
在某些示例中,计算机程序产品可能进一步包含配置所述处理器识别要加密的文件的指令;所述密钥管理指令被定义为配置所述处理器,通过随机选择一个特定的密钥材料值来生成文件加密密钥;使用所述密钥管理过程从所述特定密钥材料值中确定一个特定密钥值;使用所述密钥管理过程,从多个种子比特分区和所述特定密钥值中确定一个特定的密钥序列;使用所述密钥管理过程,从所述特定密钥序列中确定所述文件加密密钥;由下列方式生成加密文件:将加密密码应用到所述文件以生成密文文件,其中所述加密密码使用密码密钥生成所述密文文件,并且当所述加密密码应用于所述文件时,所述文件加密密钥被用作所述加密密码的密码密钥;从所述密文文件生成所述加密文件。
在某些示例中,所述加密文件可能包括,所述密文文件和与所述特定的密钥材料值对应的文件密钥材料。
在某些示例中,计算机程序产品可能进一步包括配置所述处理器识别要解密的给定加密文件的指令;所述密钥管理指令可以被定义为配置所述处理器,以确定与所述给定加密文件对应的给定密钥材料值;使用所述密钥管理过程,从所述给定密钥材料值中确定一个给定的密钥值;使用所述密钥管理过程,用所述多个种子比特分区和所述给定密钥值确定给定密钥序列;使用所述密钥管理过程,从所述给定密钥序列生成文件解密密钥;通过将解密密码应用于所述给定的加密文件生成明文文件来生成解密文件,其中所述解密密码使用解密密码密钥生成所述明文文件,并且当所述解密密码应用于所述给定加密文件时,所述文件解密密钥被用作所述解密密码的解密密码密钥。
在计算机程序产品的某些示例中,确定与所述给定加密文件对应的所述给定密钥材料值可能包括从所述加密文件中提取所述给定的密钥材料值。
在计算机程序产品的某些示例中,所述种子比特集合长度可能至少是所述指定的密钥长度的三倍,并且所述种子比特集合长度可能是所述指定的密钥长度的整数倍。
在计算机程序产品的某些示例中,所述密钥库种子可以定义一个初始种子比特的初始集合,其中所述初始种子比特的初始集合具有小于所述种子比特集合长度的初始集合长度,并且所述种子比特集合通过将零附加到所述初始种子比特的初始集合来定义,使得所述初始种子比特的初始集合与附加零的的组合长度等于所述种子比特集合长度。
在某些示例中,计算机程序产品可能进一步包括配置所述处理器将所述密钥管理指令和所述密钥库种子安全地传输到多个不同的计算设备的指令,其中所述密钥管理指令和所述密钥库种子使得每个不同的计算设备能够生成所述多个加密密钥中的每个加密密钥。
按照这一广泛的方面,还提供了一个设备来管理多个加密密钥,该设备包括:一个处理器;以及一个非瞬时性设备存储器,其上存有配置所述处理器执行下列事项的指令:将密钥库种子存储在所述非瞬时性设备存储器中,所述密钥库种子可用来生成所述多个加密密钥中的每个加密密钥,其中所述密钥库种子定义一个具有多个种子比特的种子比特集合,所述种子比特集合中的多个种子比特是独立同分布的,其中每个加密密钥由多个密钥比特定义,加密密钥具有指定的密钥长度,所述指定的密钥长度对于每个加密密钥都是相同的,所述指定的密钥长度定义了所述多个密钥比特中的密钥比特的数量,其中所述种子比特集合有其种子比特集合长度,所述种子比特集合长度指定所述种子比特集合中的种子比特的数量,所述种子比特集合长度至少为所述指定的密钥长度的两倍;确定一个密钥管理过程,该过程定义了在所述种子比特集合和所述多个加密密钥之间的一个密钥映射,其中所述密钥管理过程可被所述处理器用来从所述种子比特集合中生成所述多个加密密钥中的每个加密密钥,其生成方式是通过使用所述密钥映射,以及与所述加密密钥对应的密钥材料值;把与所述密钥管理过程对应的密钥管理指令存储在所述非瞬时性设备存储器中,其中所述密钥管理指令可由处理器执行,通过下列方式生成所述多个加密密钥中的任何特定的加密密钥:将所述种子比特集合分割成多个种子比特分区,其中所述多个种子比特分区中的种子比特分区数量,由基于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率所确定的分区值来定义,其中分区值是一个整数且至少等于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率;从与所述特定的加密密钥对应的密钥材料值中确定一个密钥值;使用所述多个种子比特分区和密钥值,确定一个密钥序列,其中所述密钥序列包括多个密钥序列比特集合,每个密钥序列比特集合对应于一个种子比特分区;从所述密钥序列中确定一个加密密钥,其中所述加密密钥可被所述处理器用来执行加密一个明文文件和解密一个密文文件中的至少一项。
在某些示例中,存储在所述非瞬时性设备内存中的所述密钥管理指令被定义为配置所述处理器,以通过将每个种子比特分区乘以所述密钥值的相应指数来确定所述密钥序列,其中每个密钥序列比特集合对应于一个种子比特分区与所述密钥值的不同指数的乘积。
在某些示例中,存储在所述非瞬时性设备内存中的所述密钥管理指令被定义为配置所述处理器,以根据所述密钥序列中所述多个密钥序列比特集合的按位相加来确定所述加密密钥。
在某些示例中,存储在所述非瞬时性设备内存中的所述密钥管理指令被定义为配置所述处理器,以定义每个种子比特分区,其中每个种子比特分区具有等于所述指定的密钥长度的分区长度,使得每个种子比特分区中的种子比特的数量等于密钥比特的数量。
在某些示例中,所述密钥管理过程可能指定所述密钥值被定义为所述密钥材料值。
在某些示例中,存储在所述非瞬时性设备内存中的所述密钥管理指令被定义为配置所述处理器,按照下列方式从所述密钥序列中确定所述加密密钥:从所述密钥序列中确定一个密钥序列输出,其中所述密钥序列输出是由所述密钥序列中所述多个密钥序列比特集合的按位相加来确定;通过下列方式确定所述加密密钥:将所述密钥序列输出输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥序列输出生成密文密钥序列;将所述加密密钥确定为所述密文密钥序列。
在某些示例中,存储在所述非瞬时性设备内存中所述密钥管理指令被定义为配置所述处理器,按照下列方式确定密钥值:将所述密钥材料值输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥材料值生成密文密钥材料值;并将所述密钥值确定为所述密文密钥材料值。
在某些示例中,存储在所述非瞬时性设备存储器中的指令被定义为配置所述处理器识别要加密的文件;存储在所述非瞬时性设备存储器中的所述密钥管理指令被定义为配置所述处理器,通过随机选择一个特定的密钥材料值来生成文件加密密钥;使用所述密钥管理过程,从所述特定的密钥材料值中确定一个特定的密钥值;使用所述密钥管理过程,从所述多个种子比特分区和所述特定密钥值中确定一个特定的密钥序列;使用所述密钥管理过程,从所述特定的密钥序列中确定所述文件加密密钥;并通过下列方式生成加密文件:将加密密码应用到所述文件,以生成密文文件,其中所述加密密码使用密码密钥生成所述密文文件,并且当所述加密密码应用于所述文件时,所述文件加密密钥被用作所述加密密码的密码密钥;从所述密文文件生成所述加密文件。
在某些示例中,所述加密文件可能包括所述密文文件和与所述特定的密钥材料值对应的文件密钥材料。
在某些示例中,存储在所述非瞬时性设备存储器中的所述指令被定义为配置所述处理器识别给定的要解密的加密文件;存储在所述非瞬时性设备存储器中的所述密钥管理指令被定义为配置所述处理器,以确定与所述给定加密文件对应的给定的密钥材料值;使用所述密钥管理过程,从所述给定的密钥材料值中确定一个给定的密钥值;使用所述密钥管理过程,用所述多个种子比特分区和所述给定的密钥值来确定一个给定的密钥序列;使用所述密钥管理过程,从所述给定的密钥序列生成文件解密密钥;通过将解密密码应用于所述给定加密文件生成明文文件来生成解密文件,其中所述解密密码使用解密密码密钥生成明文文件,并且当所述解密密码应用于所述给定加密文件时,所述文件解密密钥被用作所述解密密码的解密密码密钥。
在管理所述多个加密密钥的设备的一些示例中,确定与所述给定加密文件对应的所述给定密钥材料值包括,从所述加密文件中提取所述给定密钥材料值。
在管理多个加密密钥的设备的某些示例中,所述种子比特集合长度可能至少是所述指定的密钥长度的三倍,并且所述种子比特集合长度可能是所述指定密钥长度的整数倍。
在管理多个加密密钥的设备的一些示例中,所述密钥库种子定义了初始种子比特的初始集合,其中所述初始种子比特的初始集合具有小于所述种子比特集合长度的初始集合长度,并且所述种子比特集合通过将零附加到所述初始种子比特的初始集合来定义,使得所述初始种子比特的初始集合与附加的零的组合长度等于所述种子比特集合长度。
在某些示例中,存储在所述非瞬时性设备存储器中的所述指令被定义为来配置所述处理器将所述密钥管理指令和所述密钥库种子安全地传输到多个不同的计算设备,其中所述密钥管理指令和所述密钥库种子使得每个不同的计算设备能够生成所述多个加密密钥中每个加密密钥。
本领域的技术人员会理解,在此披露的设备、方法或计算机程序产品可能包含任何一个或多个功能,并且这些功能可用于任何特定的组合或子组合。
以下将更详细地描述各种实施方案的这些和其他方面和特征。
附图说明
在此包含的附图用于说明当前所述的***、方法和设备的各种示例,无意以任何方式限制所述内容的范围。
图1是一个框图,说明一个示例计算机***,根据一个实施方案,该***可用于为一台或多台计算设备提供加密密钥生成和管理。
图2是一个框图,说明一个示例计算设备,根据一个实施方案,该设备可与图1示例***一起使用。
图3是一张流程图,根据一个实施方案,说明一个密钥管理过程示例。
实施方案示例描述
提供所述附图的目的是说明,而不是限制本文所描述的实施方案的各种示例的方面和特征。为了说明的简单和清楚,附图中示出的元件不一定按比例绘制。为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。要理解的是,为了说明的简单和清楚,在认为合适的地方,附图的参考数字或许会在附图中重复,以指示对应或类似的元件或步骤。
此外,还列出了许多具体细节,以便全面了解在此描述的实施方案。然而,需要理解的是,即使没有这些具体细节,本领域的技术人员也可能会实践这里描述的实施方案。在其他情况下,没有详细描述已知的方法、过程和组件,以免混淆在此描述的实施方案。此外,不应将描述视为限制在此描述的实施方案的范围。
下面介绍各种***或方法,以提供所要求保护的主题的实施方案的示例。下面描述的实施方案不限制任何所要求保护的主题,并且任何要求保护的主题可以涵盖与下面描述所不同的方法或***。所要求保护的主题不限于具有下文所描述的任何一个***或方法的所有特征的***或方法,也不限于下面描述的多个或全部所述装置或方法共有的特征。有可能下面描述的***或方法不是在任何要求保护的主题中陈述的实施方案。在下面描述的***或方法中公开的,但在本文件中没有要求的任何主题可以是另一个保护工具的主题,例如持续的专利申请,并且通过在本文件中披露任何此类主题,本申请人,发明人或所有者并不打算放弃,否认或向公众奉献它们。
"一个实施方案"、"实施方案"、"多个实施方案"、"这个实施方案"、"这些实施方案"、"一个或多个实施方案"、"一些实施方案"和"一实施方案"等术语表示"本发明的一个或多个(但不是全部)实施方案",除非另有明确说明。
应当指出,在此使用的"实质性"、"大致"和"大约"等程度术语意味着修改后的术语的合理偏差,因而最终结果不会发生显著变化。如果这种偏差不能否定修改后的术语的含义,这些程度术语也可以被解释为包括修改后的术语的偏差。
此外,任何按终点列举的数字范围包括该范围内的所有整数字和分数(例如,1到5包括1、1.5、2、2.75、3、3.90、4和5)。还需要理解的是,所有整字和分数都假定可由"大致"一词修改,这意味着如果最终结果没有显著变化,则引用的数字可有一定数量的变化。
在此描述的***和方法的实施方案示例可由硬件或软件的组合来实现。在某些情况下,实现在此描述的实施方案示例,至少部分通过使用一个或多个计算机程序,在包含至少一个处理单元的一个或多个可编程设备上执行,以及使用数据存储元件(包括挥发性存储器、非瞬时性存储器、存储元件或其任何组合)。这些设备可能还至少有一个输入设备(例如按钮键盘、鼠标、触摸屏等),以及至少一个输出设备(如显示屏、打印机、无线电设备等),具体取决于设备的性质。
还应注意,可能有些元素用于实现在此描述的至少部分实施方案,这些实施方案可能通过以高级计算机编程语言(如面向对象的编程)编写的软件来实现。因此,程序代码可以用C、C++或任何其他合适的编程语言编写,并且可能包含模块或类,这是那些面向对象编程的人员所熟知的。此外,通过软件实现的一些元素也可能根据需要用汇编语言、机器语言或固件书写。无论哪种情况,程序语言可以是编译执行或解释执行的语言。
至少一些软件程序可以存储在存储介质(例如计算机可读介质,例如但不限于,ROM、磁盘、光盘)或一般或特殊用途可编程设备可读的设备上。软件程序代码在可编程设备上读取时,可配置可编程设备以新的、特定的和预先定义的方式运行,以便执行在此描述的至少一种方法。
此外,至少与本处所述实施方案的***和方法相关的一些程序可能能够在计算机程序产品中分发,该产品包括一种计算机可读介质,其中包含在一个或多个处理器上可用的的计算机指令。该介质可以以各种形式提供,包括非瞬时性形式,例如但不限于,一个或多个磁盘、光盘、磁带、芯片以及磁性和电子存储器。
计算机程序是一组可由计算机(即处理器)执行的指令组。进程是程序的实例,即计算机存储器中程序的副本,该程序已准备好由计算机的中央处理单元(CPU)执行。在随后的讨论中,将提及计算机***的处理器和计算机***处理器执行的操作。应当理解,此类引用包括一个或多个处理单元,以及使用一个或多个处理单元执行操作,例如一个或多个CPU中的一个或多个处理内核。
在计算机或计算机***中,数据文件用于存储信息。当信息以可直接可读/可理解的方式存储(即未混淆或以其他方式编码以防止直接理解信息)时,数据文件可称为明文(例如明文文件)。在某些情况下,可能会修改数据文件(即加密),以防止未经授权访问该数据文件中存储的明文信息。
加密是一个使用秘密(加密密钥)将信息(即明文)转换为一种混淆的格式(可称为密文)的过程。以加密形式存储信息的文件可称为密文文件。解密是加密的逆向过程,使用秘密(例如加密密钥或不同的解密密键,具体取决于使用的加密方法)将密文转换为明文。
本文所述实施方案通常与多个加密/解密密钥的管理相关。特别是,在此描述的实施方案涉及多个加密密钥的管理,这些密钥可用于安全对称加密密码。在此描述的实施方案可能提供***、方法、设备和计算机程序产品,使大数量的加密密钥能够安全地生成、分发和维护,同时仅管理数量有限的秘密比特。在此描述的实施方案易于数据的长期存储,同时又维持高水平的数据安全性。
在此描述的实施方案可为对称加密密码提供加密密钥管理。对称密码可以配置为接收明文数据文件,并使用加密密钥生成相应的密文文件。对称密码还可用于接收密文文件,并使用相同的加密密钥生成相应的明文数据文件(此操作中的加密密钥可称为解密密钥)。
在此描述的实施方案可以配置为管理多个加密密钥。这些加密密钥在此可称为密钥库和/或一组密钥和/或一组随机密钥。密钥库在此可用符号Ψ表示,单个密钥用符号k表示(也称为加密密钥和/或解密密钥)。
加密密码可以被定义使用具有指定密钥长度的加密密钥来操作。指定的密钥长度(在此处也称为密钥长度和/或密钥比特的数量)在此用符号l表示,多个加密密钥中的每一个密钥可以定义为具有相同的指定密钥长度。
在密钥库(即多个加密密钥)中,可以根据密钥索引值和/或密钥材料值来辨识单个加密密钥。例如,在此密钥材料值也可以称为密钥库中特定密钥的索引。密钥材料值可用于确定可用于生成相应加密密钥的密钥导出值或密钥值。在某些情况下,密钥材料值甚至可能是密钥值本身。密钥材料值在此由符号w表示。给定第i个文件,其特定密钥材料值在此由Xi表示。密钥库的所有密钥索引的集合(也称为密钥库的密钥材料值集合)由符号Ω表示。
多个加密密钥可以包括大数量的加密密钥,多个加密密钥中加密密钥数用符号Λ表示。多个加密密钥合中的加密密钥数(和符号Λ)在此可称为密钥库的大小和/或密钥库中的密钥数和/或密钥库的密钥索引值数和/或独立密钥材料值的数量。
在此描述的实施方案可以通过管理密钥库种子的方式来便于多个加密密钥的管理,而密钥库种子定义了一个秘密比特集合,秘密比特在此可称为种子比特集合。种子比特集合中的多个种子比特是独立同分布(IID)的(即均匀随机分布),种子比特集合可用于生成多个加密密钥中的每个密钥(换句话说,密钥库种子可用于生成密钥库中的每个密钥),密钥库种子在此由符号K表示。
密钥库种子的大小可能比多个加密密钥合中的加密密钥数要小得多,也就是说,种子比特集合的大小(即种子比特集合中的种子比特的数量)可能小于密钥库的大小(即密钥库中的密钥数)。密钥库种子的大小在此用符号L表示。密钥库种子的大小也可以称为共享的秘密比特的数量和/或密钥库种子的比特的数量和/或种子比特集合的种子比特的数量。
可以确定一个密钥管理过程来管理多个加密密钥,密钥管理过程可以定义一个函数和/或一个操作序列来生成多个加密密钥,密钥管理过程在此由符号G表示。
密钥管理过程可以指定在种子比特集合和多个加密密钥之间的一个密钥映射。密钥映射可用于从种子比特集合生成多个加密密钥中的任何(即每个)加密密钥。对于多个加密密钥中的一个特定加密密钥,密钥映射可以指定如何使用与该加密密钥对应的密钥材料值从种子比特集合中生成这个特定的加密密钥。通过使用密钥管理过程和种子比特集合,可以以简洁的方式安全地管理和分发大数量的加密密钥。
在此描述的实施方案提供了加密密钥管理过程,其中,对于任何密钥材料值,相应的加密密钥具有一组随机且均匀分布的密钥比特,因此,分发随机选择的密钥材料值对相应加密密钥的信息泄露是零。
在此描述的实施方案提供了加密密钥管理过程,其中对于任何一对不同的密钥材料值,相应的一对加密密钥之间的差值是随机和均匀分布的。
在此描述的实施方案提供了加密密钥管理过程,其中从密钥库种子到对应密钥库的转换保持了相同数量的秘密信息。
在此描述的实施方案提供了加密密钥管理过程,其中,对于任何一对不同的密钥材料值,知道第一个密钥材料值相应的加密密钥不会显著减少第二个密钥材料值相应的加密密钥的不确定性。
在此所述实施方案还提供了密钥管理过程示例,可以被定义来防止重构攻击。
现在参照图1,其中显示了一个***100的示例,根据一例实施方案,该***可用于生成和管理加密密钥。在一些实施方案中,***100构成安全***的一部分,该***可实现对各种授权计算设备105A-105N上的数据文件进行自动加密和解密。
***100内的设备105可根据指定的密钥管理过程来配置运行。密钥管理过程可使每个设备105使用存储的密钥库种子生成加密密钥。密钥库种子可由每个设备105作为一组秘密比特来存储。例如,在每个设备105上,密钥库种子可以以加密方式存储。加密密钥可用于对称加密密码对数据文件进行加密和解密,这让设备105能够创建、访问和共享加密的数据文件,以及/或存储和访问存储在远程存储设备115上的加密数据文件,同时阻止非授权设备120访问明文数据。
一般来说,计算设备105包括处理器、挥发性和非瞬时性存储器、至少一个网络接口以及输入/输出设备。计算设备105可能包括服务器计算机、台式计算机、笔记本电脑、平板电脑、PDA、智能手机或其他可编程计算机。计算设备105也可能包含任何能够进行数据通信连接的设备或"智能"设备,如温控仪、空气质量传感器、工业设备等。随着越来越多的设备通过物联网联网,计算设备包括越来越多的各样设备。计算设备105的示例将参照图2做进一步详细描述。
计算设备105可能包括与网络110的连接,例如有线或无线连接到互联网。网络110可由一种或多个计算机网络技术构建,如IEEE 802.3(以太网)、IEEE 802.11和类似技术。
通过网络110,计算设备105可连接到远程存储设备115,如云服务器。远程存储设备115可能包括一台或多台服务器计算机,这些计算机使用互联网等网络连接到计算设备105。远程存储设备115通常包括处理器、挥发性和非瞬时性存储器以及至少一个网络接口,并且能为授权计算设备105提供数据存储服务。存储在远程存储设备115上的数据可以通过使用网络110让计算设备105访问。
现有密钥管理技术先例包括PGP类的解决方案(参阅P.Zimmermann.PGP SourceCode and Internals.MIT Press,1995),其中密钥与加密文件一起以密文形式分发(即密钥用接收方的公钥加密),以及密钥导出类的解决方案,其中密钥从一个秘密值(如主密钥、口令等)和一个随机值中导出(参阅M.Bezzi,et al.Data privacy,in J.Camenisch,editor,Privacy and Identity Management for Life,Springer,2011)。在前一种情况下,虽然不同文件的密钥在理论上可以独立,但从信息理论角度看,以公钥加密形式分发密钥披露了有关它们的所有信息(因为攻击者也可以访问公钥)。在后一种情况下,为不同文件导出的密钥可能具有很强的相关性,每个导出密钥也可能与相应的随机值相关,于是披露随机值也就披露了有关密钥的信息。为了提高数据安全性,这些缺限迫使用户采用一个生存期更短的私钥和用于生成加密密钥的秘密值。因此,这些技术并不特别适合需要长期数据保护的大规模密钥管理和/或应用。
此处描述的实施方案可为密钥生成和管理提供***和方法,从信息理论角度解决一些密钥管理问题。此处描述的实施方案中,可以定义***和方法,以便在合法当事方(如授权设备105)之间操作有L个随机比特的共享秘密K。此处描述的***和方法可以定义为在对手(例如未授权设备120)可以观察到除共享密件K之外与每个合法接收者(如授权设备105)相同的信息下进行操作(共享密件对对手是未知的)。此处描述的***和方法可以定义为使用底层安全对称密码(例如AES)下进行操作,其中安全对称密码使用密钥长度为l的密钥。
此处描述的密钥生成和管理的***和方法可以定义使用安全对称密码安全地(从信息理论角度)生成、分发和维护Λ个(Λ是一个很大的数)密钥长度为l的随机加密密钥的过程。此处描述的实施方案可以配置为在用户能够管理共享秘密比特K中相对较小的一个比特的数量L的实际限制下操作,其中共享密比特的数量远远低于随机加密密钥的数量(例如L<<Λ≤2l)。
定义与共享秘密比特相对应的密钥索引集合Ω,其基数等于随机加密密钥数Λ。密钥索引集合Ω的元素可以作为多个加密密钥的加密密钥的密钥索引(也称为密钥材料值)。确定一个密钥管理过程G,该过程定义了共享秘密比特(即种子比特集合)和多个加密密钥之间的一个映射(例如G:{0,1}L×Ω→{0,1}l)。定义一个密钥管理过程,以便针对密钥索引集合中的每一个密钥索引值(即每个ω∈Ω),可以简单地从种子比特集合K和密钥索引值ω中计算出相应的加密密钥(即k(ω)=G(K,ω))。因此,通过分发密钥索引值ω,就隐式地分发了相应的加密密钥k(ω),从而,维护一组巨大的密钥Ψ={k(ω):ω∈Ω}可简化为维护共享秘密K。
此处描述的***和方法可以在不对对手的计算资源做任何假设的情况下进行定义。此处描述的实施方案可以配置为提供密钥管理过程,使用此处称为信息理论β-安全的密钥管理概念,旨在解决与安全生成、分发和维护大数量且在不断增长的随机密钥列表相关的挑战。本申请还提供了一个密钥管理框架,在该框架中,可以设计、分析和比较信息理论β-安全的密钥管理过程。
在此所述的实施方案中,信息理论β-安全性可用于衡量密钥管理过程G的安全性,此处描述的密钥管理过程G可定义为信息理论β-安全的。如本处所用,一个密钥管理过程可被视为信息理论β-安全的,如果:
·对于任何密钥索引值ω∈Ω,相应加密密钥k(ω)中的密钥比特是随机的并且在{0,1}l上均匀分布。因此,分发一个随机选择的密钥索引值ω对相应密钥k(ω)的信息泄露是零;
·对于任何不同的密钥索引值对ω12∈Ω,相应的加密密钥对差值(即k(ω1)和k(ω2)之间的差)是随机的并且在{0,1}l上均匀分布;
·从密钥库种子到密钥库的变换(即变换K→Ψ)保持相同的秘密信息总量;
·对于任何独立的密钥索引值
Figure BDA0003374258840000221
知道与第一个密钥索引值对应的第一个加密密钥
Figure BDA0003374258840000222
不会显著减少与第二个密钥索引值对应的第二个加密密钥k(Xn+1)的不确定性。换句话说,给定第二个密钥索引值和第一个加密密钥下的第二个加密密钥的条件香农熵最多比只给定第二个密钥索引值下的第二个加密密钥的条件香农熵多出一个最小值βn,即,
Figure BDA0003374258840000223
Figure BDA0003374258840000224
其中H(X|Y)是给定Y下的X的条件香农熵,对于小n,βn接近1。
此处描述的实施方案可以定义信息理论β-安全的方法,提高抵御攻击的强度。这里描述一个密钥管理过程的特定示例(此处称为G*),一个实际可行的信息理论β-安全的密钥管理,此外还介绍了可防止重构攻击的密钥管理过程的不同实例。
如图3所示,可以配置此处定义的密钥管理过程200(即G)生成多个加密密钥,其中包括大数量Λ个随机密钥。每个加密密钥都有指定的密钥长度l。多个密密钥一起构成了称为密钥库的集合Ψ。共享秘密K(也称为密钥库种子)可以提供给任何授权用户。共享秘密可以定义一个种子比特集合,其中包括指定数量L的种子比特。密钥材料索引Ω可定义为密钥索引集合或密钥材料集合,集合基数等于多个加密密钥中的密钥数Λ。种子比特的数量可以远小于多个加密密钥中的密钥数Λ(即L<<Λ≤2l)。密钥材料集合Ω中的每一个密钥材料值可用作对应加密密钥的密钥材料,每个密钥材料值都用
Figure BDA0003374258840000231
位比特表示。
给定任何密钥材料值ω∈Ω,使用密钥管理过程G可以从共享秘密K(即种子比特集合)生成对应的(随机)加密密钥k(ω),表示为k(ω)=G(K,ω)。相应地,由密钥管理过程G从密钥库种子K生成的密钥库可被定义为
Ψ={k(ω):ω∈Ω}
其中密钥材料值ω也可称为密钥索引值。
当一个未加密文件(例如明文文件)在204加密时,可以从密钥材料集合Ω中选择一个密钥材料值ω,然后,由密钥管理过程G定义的密钥映射可用于从种子比特集合K和密钥材料值在202a生成相应的加密密钥k(ω),此操作等同于从密钥库Ψ中随机选择一个加密密钥k(ω),然后,生成的k(ω)可用作加密密钥,通过底层对称密码在204加密文件(即生成密文数据)。
密钥材料值(或密钥索引值)ω可同密文一起包含在加密文件中。密钥材料值ω和密文一起定义了加密文件,例如,密钥材料值可以***到密文的头部。在206接收到加密文件后,合法接收方(例如授权设备105)可以根据已收到的加密文件确定密钥材料值。授权设备105可以在202b使用密钥映射从种子比特集合K和密钥材料值ω中提取密钥k(ω),然后,导出的密钥k(ω)可用来在206解密密文。一般来说,如本文所述,"文件"一词可以理解为表示"消息"、"明文"或更一般地表示一段信息/数据,除非另有指定(例如,当一个文件被指定是加密的或密文)。
现在参照图2,其中显示了一个计算设备105X的示例,可用于根据一个实施方案生成和管理加密密钥。一般来说,计算设备105X阐明了与***100的授权用户相关的计算设备105更多的细节。示例计算设备105X的细节通常可以扩展到图1中显示的其他计算设备105。计算设备105的例子可能包括可编程的通用计算机、音频/视频编码和播放设备、机顶电视盒、电视广播设备和移动设备等。
计算设备105X通常包括处理器104、存储器106、显示设备108、数据库116和通信接口112。数据库116虽然显示为单独的元件,但可以理解为存储在存储器106中。
处理器104是计算机处理器,如通用微处理器。在其他情况下,处理器104可以是可编程门阵列、专用集成电路、微控制器或其他合适的计算机处理器。
处理器104通过计算机数据总线连接到存储器106。存储器106可能包括挥发性存储器和非瞬时性存储设备。非瞬时性存储器存储由计算机可执行指令组成的计算机程序,这些程序可能会加载到挥发性存储器中,以便根据需要由处理器104执行。本领域技术人员会理解,这里提到计算设备105执行一项功能或以特定方式操作意味着处理器104正在执行存储在存储器106中的指令(例如软件程序),并可能通过一个或多个接口传输或接收输入和输出。存储器106还可以在执行计算机可执行指令的过程中存储处理器104中的数据输入或输出。如上所述,存储器106也可以存储数据库116。
处理器104也与显示设备108相连接,可根据各种计算机程序的需要输出信息和数据,特别是,显示器108可以显示图形用户界面(GUI)。在某些情况下,显示设备108可能会从计算设备105中省略掉,例如计算设备105是传感器或其他配置为自主操作的智能设备。计算设备105可以运行操作***,如微软Windows、GNU/Linux或其他合适的操作***。
在某些示例实施方案中,数据库116是一个关系数据库。在其他实施方案中,数据库116可能是非关系数据库,例如键值数据库、NoSQL数据库等。
通信接口112是一个或多个数据网络接口,如IEEE 802.3或IEEE 802.11接口,用于网络通信。
处理器104可根据存储在存储器106中的应用程序中提供的指令来操作。如本处所用,术语"软件应用程序"或"应用程序"是指计算机可执行的指令,特别是存储在非瞬时性介质(如非瞬时性存储器)中的计算机可执行指令,由计算机处理器执行。计算机处理器在执行指令时,可能会接收输入并将输出传输到其连接的各种输入或输出设备。
计算设备105X可能存储了称为加密应用程序114的软件应用程序,虽然单独显示,加密应用程序114也可理解为存储在存储设备106中。
每个计算设备105(或至少每个授权计算设备)可能安装了加密应用程序114。安装在每台设备105上的加密应用程序114可负责设备105上的加密和解密操作。可以配置加密应用程序114以确定用于生成和管理加密密钥的一个密钥管理过程。
例如,可以根据确定的密钥管理过程配置加密应用程序114以生成加密/解密密钥。可以定义加密应用程序114以保护生成的密钥。加密应用程序114还可以在每个设备105上存储一个或多个密钥库种子和/或生成一个或多个密钥库种子,这些密钥库种子可以存储在每个设备105上。按照所述密钥管理过程,加密应用程序114可以使用密钥库种子生成一个或多个加密/解密密钥。
加密应用程序114可用于生成密钥库种子,像下面要详细描述一样,密钥库种子按密钥管理过程被用来导出密钥。例如,105号设备上使用的密钥库种子可以与其他授权设备105共享和/或同步,如美国专利第9,619,667号(题为"METHODS,SYSTEMS AND COMPUTERPROGRAM PRODUCT FOR PROVIDING ENCRYPTION ON A PLURALITY OF DEVICES")所述。在不同设备105之间同步密钥库种子可以使不同的设备能够以安全的方式在设备105之间以密文通信,同时仍方便加密和密文文件的解密。可配置加密应用程序114以便安全地将密钥库种子传输到多个不同的计算设备105。还可配置加密应用程序114以便安全地将密钥管理指令传输到多个不同的计算设备105。密钥管理指令和密钥库种子可使每个不同的计算设备105生成多个加密密钥中的每个加密密钥。
在某些情况下,用户可能希望将加密文件/密文从第一台设备105A移动到第二台设备105B和/或远程存储设备115上。用户可以使用云服务、电信网络或其他文件传输机制(如USB或Firewire键)将一个或多个加密文件/密文从第一台设备105A传输到第二台设备105B,一旦第二个设备105B收到加密文件,可能需要在第二个设备105B上解密这些文件。
为了允许在第一个设备105A上由加密应用程序114加密的加密文件/密文能够在第二个设备105B上由加密应用程序114解密,加密应用程序114在第一个设备105A和第二个设备105B上使用的密钥库种子需要手动或自动同步。因此,第二台设备105B上的加密应用程序114可以使用与所接收的文件一起传输的密钥库种子和密钥信息(如密钥材料值),按照确定的密钥管理过程确定为解密所接收文件所需的加密密钥。此外,由于密钥信息和加密密钥之间的交互信息量是零,因而密钥信息和加密密钥在统计上是独立的,因此数据在传输时从防破解的角度上说是安全的,即可以阻止攻击者仅从传输的密文和密钥信息中确定加密密钥。
在某些情况下,可以配置加密应用程序114从密钥库种子生成一个很大数量的加密密钥,即加密密钥库。但是,如上所述,由计算设备105生成和存储一个很大数量的加密密钥可能是不可取的或笨拙的(例如,设备105存储容量有限),因此,设备105可以只存储密钥库种子,然后根据需要使用钥匙管理过程从密钥库种子中导出加密密钥。
加密密钥和/或密钥库种子可以以加密格式存储在非瞬时性存储设备106中,加密密钥和/或密钥库种子可以由用户定义的验证码来保护。在某些实施方案中,只有用户才知道验证码,可根据验证码生成本地的身份验证信息并存储在设备105上。身份验证信息可用于对试图访问或修改加密文件的用户进行身份验证。在某些情况下,验证码可能无法从任何存储的身份验证信息中确定。有关使用验证码安全存储加密密钥和密钥库种子的更多详细信息,请参见美国专利第9,619,667号,标题为“METHODS,SYSTEMS AND COMPUTERPROGRAM PRODUCT FOR PROVIDING ENCRYPTION ON A PLURALITY OF DEVICES”。
此处描述的示例***管理的数据存储在非瞬时性存储器中时,无论在授权设备105或其他设备(如远程存储设备115)上,都可能始终保持加密状态。在某些示例中,可以配置加密应用程序114以根据需要生成加密/解密密钥,例如,加密应用程序114不在设备105的非瞬时性存储器中存储任何加密密钥。在这种情况下,加密密钥可以暂时存储在设备105的瞬时性存储器中,然后在加密和/或解密过程完成后废弃。
图3说明了加密应用程序114可能使用的一个密钥管理过程200示例,图3中所示的密钥管理过程200可能是上面简要描述的密钥管理过程G的一个示例。
在密钥管理过程G中,用符号Xi来表示为加密第i个文件而选择的随机密钥材料值。密钥材料值集
Figure BDA0003374258840000271
可定义为一系列独立同分布(IID)的随机密钥材料变量,每个单独的密钥材料值Xi均匀分布在密钥材料值集合Ω上。
随着加密文件数量的增加,单独加密所有这些文件所需的随机密钥列表是k(X1),k(X2),…,k(Xn),其中n表示加密的文件总数。使用密钥管理过程G,对每个加密密钥k(Xi),1≤i≤n,可以通过分发其对应的密钥材料值或密钥索引值Xi而进行隐式分发。
可以定义密钥管理过程G使每个密钥材料值Xi和对应的加密密钥k(Xi)在统计上是独立的,从而每个密钥材料值Xi和对应的加密密钥k(Xi)之间的交互信息量I(Xi;k(Xi))为零,因此,密钥材料值Xi对实际密钥k(Xi)的信息泄露是零。
此外,可以定义密钥管理过程G,以便要求每个加密密钥的密钥比特在{0,1}l上均匀分布,所有加密密钥的密钥比特都必须与多个加密密钥中所有其他加密密钥的密钥比特有显著不同,意外地泄露一个或多个加密密钥不会为非授权用户提供攻击其他加密密钥的优势。这些属性可以定义为下面要进一步描述的提供信息理论β-安全的密钥管理过程需满足的要求。
使用本处描述的密钥管理过程G使每个加密密钥k(Xi)能够根据密钥库种子K定义的种子比特集合和与密钥材料值/密钥索引值Xi对应的密钥导出值(也称为密钥值)计算出来,相应地,设备105实际上不需要存储密钥库Ψ(即无需存储多个加密密钥中所有加密密钥),因此,使用此处描述的信息理论β-安全的密钥管理过程G,使得可以通过管理单个密钥库种子K的种子比特集合来实现管理大量且不断增长的随机密钥列表,这样大大减少或减轻了密钥管理为长期数据保护而带来的挑战。
给定每个加密密钥的密钥长度l,种子比特集合的指定种子比特的数量L≥2l,以及多个加密密钥中的加密密钥数Λ(满足L<<Λ≤2l),可以定义许多不同的信息理论β-安全的密钥管理过程的实施方案。下面详细介绍了可以提供最优信息理论β-安全的密钥管理过程示例。
定义密钥库种子熵值f为指定的种子比特的数量与指定的密钥长度之间的比率的下限(即
Figure BDA0003374258840000291
),可以证明,信息理论β-安全的密钥管理过程G是最优的,当且仅当对密钥材料值集合Ω中任何不同的密钥材料值ω12,…,ωff+1,相应的多个加密密钥合k(ω1),k(ω2),…,k(ωf)是独立同分布(IID),并且相应的多个加密密钥合k(ω1),k(ω2),…,k(ωf+1)的联合熵等于密钥库种子长度L。此处描述了一个最优的信息理论β-安全的特定示例G*,并进一步描述了可以进一步防止重构攻击的示例过程变体。
自从香农关于完美保密工作以来(参见C.Shannon,“Communication theory ofsecrecy systems,”Bell System Technical Journal,28(4):656–715,1949),信息理论方法主要应用于在各种往往不切实际的假设下确保通信安全(参见U.Maurer,“Conditionally-perfect secrecy and a provably-secure randomised cipher,”Journal of Cryptology,5(1):53-66,1992;U.Maurer,“Secret key agreement bypublic discussion from common information,”IEEE Trans.Inform.Theory,39(3):733–742,1993;R.Ahlswede and I.Csiszàr,“Common randomness in informationtheory and cryptography–Part I:secret sharing,”IEEE Trans.Inform.Theory,39(4):1121–1132,1993;A.D.Wyner,“The wire-tap channel,”Bell Syst.Tech.J.,54(8):1355–1387,1975;C.Fragouli,V.M.Prabhakaran,L.Czap,and S.N.Diggavi,“Wirelessnetwork security:building on erasures,”Proceedings of the IEEE,103(10):1826–1840,2015;及其参考文献)。香农已经表明,只有当密码密钥的熵大于或等于明文的熵时,完美保密才可以实现的,这意味着一次性密码本的完美保密(参见C.Shannon,“Communication theory of secrecy systems,”Bell System Technical Journal,28(4):656–715,1949)。当把对手限制在某些类型的攻击中,已经表明,如果设计得当,随机密码可以使用比明文短得多的密钥以高概率实现完美保密(参见U.Maurer,“Conditionally-perfect secrecy and a provably-secure randomised cipher,”Journal ofCryptology,5(1):53-66,1992)。然而,随机密码意味着存在很长的可公开访问的随机比特串,这比明文比特串要长得多。假设发送方和接收方各自观察到不同但相关的信源,已从信息理论并重点在确定密钥容量的角度对秘密共享进行了研究(参见U.Maurer,“Secret keyagreement by public discussion from common information,”IEEETrans.Inform.Theory,39(3):733–742,1993;and R.Ahlswede and I.Csiszàr,“Commonrandomness in information theory and cryptography–Part I:secret sharing,”IEEETrans.Inform.Theory,39(4):1121–1132,1993)。另一方面,在窃听通道模型中(参见A.D.Wyner,“The wire-tap channel,”Bell Syst.Tech.J.,54(8):1355–1387,1975),对手被假定通过不同的渠道观察到不同于合法接收方的信息,这些模型的重点往往是确定保密容量。无线网络安全的一些近期方法也做了类似的假设(参见C.Fragouli,V.M.Prabhakaran,L.Czap,and S.N.Diggavi,“Wireless network security:building onerasures,”Proceedings of the IEEE,103(10):1826–1840,2015),但是,所有这些方法都不能应对即使这些密钥安全地分发给了合法方(例如授权设备105)后,维护大数量随机密钥保密性带来的挑战。
相比之下,本处描述的实施方案提供了使用信息理论方法应对密钥管理挑战的***和方法,特别是,此处描述的实施方案可以配置为在用户或设备只能处理有限数量的秘密(即有限数量的秘密比特)的情况下操作,与理论应用相比,这当然是实际应用中的情况,而理论应用可能允许无限大的秘密。因此,此处描述的实施方案可以配置为解决在实际应用中安全生成、分发和维护不断增长的随机密钥列表的方法。发明者以前曾描述过一些信息理论上安全的密钥管理过程的例子(参见E.-H.Yang and X.-W.Wu,“Information-Theoretically Secure Key Generation and Management,”in Proc.of the 2017IEEEInternational Symposium on Information Theory(ISIT2017),Aachen,Germany,June25-30,2017,pp.1529-1533;and E.-H.Yang,“Methods and computer program productsfor encryption key generation and management,”US Patent No 9,703,979,July 11,2017)。
在下面的描述中,第2节对信息理论β-安全的密钥管理概念作了正式定义,定义了如何确定一个最优信息理论β-安全的密钥管理过程,并确立了关于信息理论β-安全的密钥管理的一些一般边界。第3节描述了最优信息理论β-安全的密钥管理过程的示例,并详细地解释了一个特定的最优信息理论β-安全的密钥管理过程G*。第4节描述了G*的示例变体,以及可用于保护密钥库种子免受所谓重构攻击的安全对称密码。
第2节–信息理论β-安全的密钥管理
如上所述,此处描述的实施方案可以定义为使用密钥长度为l的加密密钥来操作,每个加密密钥由多个密钥比特定义。加密密钥具有指定的密钥长度l,每个加密密钥的密钥长度是相同的。指定的密钥长度为每个加密密钥定义了密钥比特中的密钥比特的数量。
此处描述的实施方案可以使用定义种子比特集合的密钥库种子。种子比特集合可以用种子比特集合长度L定义,该长度指定了种子比特集合中的种子比特的数量。种子比特集合长度可以被定义为至少是指定的密钥长度的两倍(即L≥2l)。此处描述的实施方案可以配置为使用多个加密密钥中的加密密钥(Λ个密钥),Λ比种子比特集合长度大得多但不超过2的l(l为密钥长度)次方(即L<<Λ≤2l)。
如上所述,密钥索引集合Ω可定义为由若干密钥材料值组成的集合,其数量等于加密密钥数量Λ,每个密钥材料值代表或对应了一个密钥索引值或密钥导出值/密钥值。
K是一个共享的秘密(或密钥库种子),可存储在一个或多个计算设备105的非瞬时性存储器106中(例如通过加密应用程序114)。密钥库种子用来生成多个加密密钥中的每个加密密钥。密钥库种子定义一个有很多种子比特的种子比特集合,例如有L个随机比特的种子比特集合。密钥库种子K定义种子比特集合为一个种子比特序列:
K=K(0)K(1)…K(L-1)
其中种子比特集合中的种子比特K(i),i=0,1,…,L-1在{0,1}上是独立同分布的,每个种子比特是0或1的概率相等,即
Pr{K(i)=0}=Pr{K(i)=1}=1/2
相应地,种子比特集合中的种子比特将在此被描述为均匀随机的。
定义1
参照图3,可以配置计算设备105以确定密钥管理过程G(例如使用加密应用程序114)。密钥管理过程可以定义种子比特集合和多个加密密钥之间的一个密钥映射(即{0,1}L×Ω到{0,1}l)。
计算设备105的处理器104可使用密钥管理过程生成多个加密密钥中的每个加密密钥。密钥管理过程可以指定如何使用密钥映射和与加密密钥对应的密钥材料值从种子比特集合中生成每个加密密钥。
密钥管理过程G可以以不同方式用于密钥管理。密钥管理过程可用于在多个加密密钥中生成每个加密密钥。密钥管理过程可以指定如何使用密钥映射和与加密密钥对应的密钥材料值从种子比特集合中生成每个加密密钥。
例如,密钥管理过程可用于为一个或多个明文文件提供加密,如204所示。加密应用程序114可以识别要加密的明文文件,然后,加密应用程序114可以为识别的文件生成加密密钥,如202a所示。
加密应用程序114可以随机选择一个密钥材料值,然后,加密应用程序114可以使用密钥管理过程G从特定的密钥材料值中确定一个密钥值。密钥值可用于从设备105存储的种子比特中生成加密密钥。例如,密钥值可以是密钥材料值本身和/或从密钥材料值中导出或确定的另一个值。
例如,当文件要加密时,可以从密钥材料值集合Ω中随机选择一个密钥材料值ω,然后,从选定的密钥材料值生成相应的密钥,例如,按ω索引的密钥可以生成为k(ω)=G(K,ω)。
加密应用程序114可用于通过对已识别的文件应用加密密码生成密文文件来生成加密文件。加密密码可以是一个对称密码,定义为使用密码密钥来生成密文文件。生成的加密密钥k(ω)可用作密码密钥。当加密密码应用于文件时,通过其底层对称密码从明文文件生成密文文件,然后,可以使用密文文件生成加密文件,例如,加密文件可能包括密文文件和与用来生成加密密钥k(ω)的特定密钥材料值相对应的文件密钥材料(密钥信息)。
作为另一个例子,密钥管理过程可用于向多个设备提供密钥分发。加密密钥k(ω)可以使用相应的密钥材料值而隐式地分发给所有合法方(授权设备105)。密钥材料值(例如密钥索引ω)可包含在密文文件中一起形成加密文件,例如,密钥材料值可以***到密文的头部,与密钥材料值对应的文件密钥材料和密文文件一起构成加密文件。
密钥管理过程也可用于提供解密,如206所示。加密应用程序114可以识别要解密的加密文件。加密文件可以来自不同地方,例如存储在设备105上,从另一个设备105上接收和/或存储在远程存储设备115上。
加密应用程序114可以确定与加密文件对应的密钥材料值。在某些情况下,可以从加密文件中提取密钥材料值,例如,加密文件是由密钥材料值同密文文件一起形成的。
使用密钥管理过程,可以用密钥材料值确定密钥值,例如,密钥值可以是密钥材料值和/或从密钥材料值中导出或确定的值。
加密应用程序114可根据密钥值和存储在设备105上的种子比特集合在202b确定解密密钥。加密应用程序114可以使用与密钥材料值ω对应的密钥值从密钥库种子K中提取或导出密钥k(ω),然后,密钥k(ω)可用于解密加密文件的密文。
可以配置加密应用程序114通过在加密文件上应用解密密码来生成解密文件以得到明文文件。解密密码可以使用与用于加密文件相同的对称密密码进行操作,解密密码可以使用解密密码密钥以生成明文文件。当解密密码应用于加密文件时,加密应用程序可以使用密钥k(ω)作为解密密码的密钥。
作为另一个例子,密钥管理过程可用于提供加密密钥的维护,可使用的随机密钥列表被定义为密钥库Ψ:
Ψ={k(ω)=G(K,ω):ω∈Ω}.
密钥库定义了一个有多个加密密钥的一组加密密钥。维护这个庞大的密钥列表的保密性可以简化为维持单一的密钥库种子K的保密性(即维持种子比特集合的保密性)。
如上所述,在此处描述的实施方案中,密钥索引集合Ω的基数Λ为不超过2的l次方(即21,l为指定密钥长度)。由于每个密钥都有指定的密钥长度l,给定密钥库种子K,不同密钥的最大数量可以定义为不超过2l。此外,每个密钥材料值都可以用至少是加密密钥数量对数的密钥比特长度来定义(即需要
Figure BDA0003374258840000341
比特才能表示Ω中的每个元素ω∈Ω)。
在本处描述的实施方案中,密钥材料值ω可分发给合法方(即授权设备105),相应地,一个不必要的大密钥索引集合基数Λ将增加由此产生的传输开销。以底层对称密码AES256为例,根据特定的应用,密钥索引集合大小Λ的典型值(即多个加密密钥中的加密密钥数)可以定义为253到2256,而种子比特集合的大小L可以小到212,也就是说,种子比特集合的大小可能大大小于从该种子比特集合能够生成的加密密钥数(例如,在某些示例中至少为241倍)。
用Xi表示为加密第i个文件选择的特定密钥材料值ω∈Ω,如上所述,多个密钥材料值是独立同分布的,因而
Figure BDA0003374258840000351
是独立同分布的。过程评估值
Figure BDA0003374258840000352
可以定义为一系列非递增的数字,满足0≤βn≤1,n=1,2,…和
Figure BDA0003374258840000353
对于小的n值,βn可以定义为接近1。要使本处描述的密钥管理过程实施方案(符合定义1的密钥管理过程)既实用又安全,每个密钥k(ω)都需要简单地根据密钥库种子K和对应的密钥材料值ω计算出来,G需要是信息理论β-安全的,如下面所定义。
定义2
在本处描述的实施方案中,当以下四个特性满足时,一个密钥管理过程G是信息理论β-安全的:
定义2的特性1:对于每个密钥材料值,与此对应的加密密钥中密钥比特是随机并且均匀分布的,换句话说,对于任何ω∈Ω,k(ω)是随机的并且在{0,1}l上均匀分布,相应地,随机选择的密钥材料值与相应的加密密钥之间的交互信息量是零。
定义2的特性2:对于任何一对不同的密钥材料值,对应的加密密钥对中的密钥比特的按位减是随机并且均匀分布的,换句话说,对于任何两个不同的ω12∈Ω,
Figure BDA0003374258840000354
是随机的并且在{0,1}l上均匀分布,其中表示按位的二进制减法。
定义2的特性3:密钥库种子的香农熵等于多个加密密钥的香农熵,换句话说,变换K→Ψ保持秘密信息的总量不变,即
H(Ψ)=H(K)=L
其中H(X)代表随机变量或矢量X的香农熵。
定义2的特性4:给定第二个加密密钥和相应的第二个密钥材料值,第一个加密密钥的条件香农熵不低于指定的密钥长度l乘以过程评估值(即βn×l),其中第一个加密密钥对应第一个密钥材料值,第二个加密密钥对应任何其他密钥材料值,换句话说,对于任何n和任何不同的正整数i1,i2,…,in,in+1
Figure BDA0003374258840000361
其中H(X|Y)代表给定随机变量Y下随机变量X的条件香农熵。
特性1意味着密钥库Ψ中每个密钥k(ω)都是强密钥,并且每个加密密钥k(Xi)与对应的密钥材料值Xi之间的交互信息量I(k(Xi);Xi)是零,因此,在密钥库种子未知的情况下,分发密钥材料值Xi不会披露密钥k(Xi)本身的任何信息。特性2意味着,当加密文件的数量远远低于加密密钥的总数Λ时(实际应用中可以定义一个极大的Λ来保证),用于加密数据文件的所有加密密钥都非常不同的概率极大,特别是,对于任何i≠j,
Pr{k(Xi)=k(Xj)}
=Pr{k(Xi)=k(Xj),Xi=Xj}+Pr{k(Xi)=k(Xj),Xi≠Xj}
=1/Λ+(1-1/Λ)2-l (1)
这基本上意味着无碰撞性密钥。
根据特性3和强大数规律,由此可知
Figure BDA0003374258840000362
这反过来又意味着,随着加密文件数量的增加,秘密信息总量分布在所有已使用的密钥上,不会产生任何浪费。
特性4意味着披露(意外或其他)一个或多个已用的密钥不会显著减少其他密钥的不确定性。综合所有这些因素,一个βn接近1的小n的信息理论β-安全的G为密钥管理提供了理想的解决方案,尤其是长期数据保护。
以下定理定义了βn,l,L,和Λ的一些边界
定理1
对于此处描述的信息理论β-安全的密钥管理过程G,每个过程评估值最多为(1-1/Λ)n,即
βn≤(1-1/Λ)n (3)
并且所有过程评估值的总和最多等于种子比特集合长度与指定密钥长度之间的比率,即
Figure BDA0003374258840000371
其中β0=1。
根据本教义,可以开发许多不同的信息理论β-安全的密钥管理过程。给定两个信息理论β-安全的密钥管理过程G1和G2(可能不同的β),最好能够比较两个过程并能确定G1是否优于G2,反之亦然。为此,可以从对手的角度来考虑评估(即非授权用户/设备120试图访问加密数据)。如果对手只是想攻击单个加密文件或其对应的密钥,则从特性1可以看出,所有信息理论β-安全的密钥管理过程都是相同的,为对手提供了相同的难度级别。但是,当对手攻击多个加密文件或密钥时,难度级别可能会有所不同。例如,无论对手想要攻击多少个加密文件,如果第一个密钥管理过程G1给对手提供的难度级别始终不比第二个密钥管理过程G2的难度级别低,那么可以说第一个密钥管理过程G1优于第二个密钥管理过程G2(即从对手的角度来看,攻击用第一个密钥管理过程G1加密的文件总是至少是与攻击用第二个密钥管理过程G2加密的文件同样困难),相应地,可以根据定义3定义最优的密钥管理过程。
定义3
对于任何其他信息理论β-安全的密钥管理过程G及可能不同的β,给定相同的密钥材料值,如果使用密钥管理过程G*生成的任何加密密钥的熵等于或大于使用过程G生成的加密密钥的熵,G*则可以定义为最优密钥管理过程。换句话说,G*可以定义为最优,如果对于任何其他信息理论β-安全的密钥管理过程G及可能不同的β
Figure BDA0003374258840000381
对任何n和任何不同的正整数i1,i2,…,in都成立,其中
Figure BDA0003374258840000382
在下面的第3节中,将描述最优密钥管理过程的实施方案示例。如下所示,最优密钥管理过程可以定义为在受限方程(3)和(4)下最大化βn,以满足尽可能多的连续整数n,从n=1开始。
第3节–最优密钥管理过程示例的构建和特性
如上所述,密钥库种子熵值f可定义为指定数量的种子比特的数量与指定密钥长度之间的比率的下限,密钥库种子熵值可定义为至少为2(即
Figure BDA0003374258840000383
)。
可根据种子比特集合中种子比特的数量与密钥比特的数量的比率确定一个分区值f+,分区值可以定义为至少等于种子比特集合中种子比特的数量与密钥比特的数量的比率的一个整数值,例如,分区值可以定义为指定的种子比特的数量与指定的密钥长度之间的比率的上限(即
Figure BDA0003374258840000384
)。
为了生成多个加密密钥中的任何加密密钥,可用分区值将种子比特集合分割成多个种子比特分区,种子比特分区的数量由分区值定义。可以配置加密应用程序114来确定与特定加密密钥对应的密钥值(即密钥材料值或由此产生的其他导出值)。使用种子比特分区和密钥值来确定一个密钥序列,密钥序列可以包括多个密钥序列比特集合,每个密钥序列比特集合对应一个种子比特分区,然后,加密应用程序114可以由密钥序列确定加密密钥。
在某些示例中,种子比特集合长度可以定义为至少是指定密钥长度的三倍。为便于密钥生成,种子比特集合长度可定义为指定密钥长度的整数倍。
例如,每当分区值仅比密钥库种子熵值大1的时候(即f+=f+1),种子比特集合可以通过扩展密钥库种子指定的种子比特初始集来定义,即,用密钥库种子定义一个初始种子比特的初始集合,初始种子比特的初始集合长度可小于密钥管理过程定义的种子比特集合长度。种子比特集合可通过附加比特(例如附加零)到初始种子比特的初始集合来定义,使得初始种子比特的初始集合与附加零的组合长度等于种子比特集合长度。例如,种子比特集合长度可以指定为指定密钥长度和分区值的整数倍,零可以附加到初始种子比特的初始集K的末端,以便总长度为f+l。
可以使用分区值f+把种子比特集合(例如可能经过扩展的K)分割成多个种子比特分区,例如,种子比特集合可以分割成多个种子比特分区,分区数等于分区值f+,每个种子比特分区的分区长度等于指定的密钥长度l,从而,每个种子比特分区中的种子比特的数量等于密钥比特的数量,这样可以简化从多个种子比特分区生成指定密钥长度的加密密钥。
例如,多个种子比特分区可能包括i=0,1,…,f+-1个分区,用ai表示第i个种子比特分区,特别地,每个种子比特分区可以定义为包括种子比特集合中的一段,例如,a0=(K(0),K(1),…,K(l-1)),a1=(K(l),K(l+1),…,K(2l-1))
例如,使用密钥管理过程,可以从多个种子比特分区和密钥值中确定一个密钥序列,这个密钥序列可用于使用密钥管理过程定义的操作来生成与给定密钥值对应的加密密钥,生成的密钥可用于执行各种加密和/或解密操作,比如加密明文文件和/或解密密文文件。
可为密钥管理过程定义一个有限域,有限域包含数量为2的指定密钥长度次方的多个元素(例如GF(2l))。有限域可以定义为包含数量等于或大于多个加密密钥中加密密钥数的多个元素。
密钥乘数根ξ可定义为l次二元本原多项式的根,有限域GF(2l)的每个元素α都可以用一个比特序列唯一地表示,例如,α=α01ξ+…+αl-1ξl-1
有限域中的单个元素α可以用二元向量(α01,…,αl-1)表示。有限域GF(2l)中的每个元素都可以表示为l维二元向量。上面定义的种子比特分区(例如随机向量
Figure BDA0003374258840000402
)可以使用它们在GF(2l)中对应的随机元素来标识。
为密钥管理过程将密钥索引集合定义为有限域的一个子集(例如
Figure BDA0003374258840000401
密钥材料集中的每个密钥材料值都对应于有限域中的一个元素。
通过将种子比特分区乘以根据与确定的密钥材料值对应的密钥值确定的值,一个密钥管理过程示例可以定义一个从密钥库种子到多个加密密钥的一个密钥映射,例如,密钥序列可以通过将每个种子比特分区乘以对应密钥值的指数来确定。密钥序列可以包括多个密钥序列比特集合,其中每个密钥序列比特集合对应于一个种子比特分区与一个密钥值的不同指数的乘积。
然后,可以使用多个密钥序列比特集合来确定加密密钥,例如,加密密钥可以用密钥序列中多个密钥序列比特集合的按位相加来确定。
一个密钥管理过程示例G*可以在种子比特集合和多个加密密钥之间定义一个密钥映射G*:{0,1}L×Ω→{0,1}l,该密钥映射可以指定每个加密密钥能够从种子比特集合和相应的密钥材料值使用线性运算来生成,例如,该密钥映射可以指定每个加密密钥能根据下面公式使用相应的密钥材料值从种子比特集合生成,对所有密钥索引ω∈Ω
Figure BDA0003374258840000411
方程(6)定义的密钥映射中的加法和乘法可以在相应的有限域GF(2l)中执行,在某些情况下,密钥管理过程可以指定与加密密钥对应的密钥材料值可直接用作上面G*示例中的密钥索引,或者用密钥材料值导出密钥索引。
本示例密钥管理过程的结果可以由定理2和3来说明。
定理2
根据方程(6)来定义密钥映射的密钥管理过程G*是信息理论β-安全的,其中
Figure BDA0003374258840000412
在n>f情况下
Figure BDA0003374258840000413
并且
Figure BDA0003374258840000414
以下定理意味着(6)中定义的密钥管理过程示例G*也是最优的。
定理3
假定G:{0,1}L×Ω→{0,1}l为一个信息理论β-安全的密钥管理过程,其中
Figure BDA0003374258840000421
以下描述是等价的:
(1)G是最优的。
(2)对于密钥索引集合Ω中任何不同的密钥索引值ω12,…,ωf+1,对应的密钥k(ωi),i=1,2,…,f是独立同分布的,每个密钥在{0,1}l上均匀分布,并且k(ωi),i=1,2,…,f的香农熵等于种子比特集合长度,即:
Figure BDA0003374258840000422
(3)对n=1,…,f-1,
Figure BDA0003374258840000423
Figure BDA0003374258840000424
定理3意味着,对于任何最优的密钥管理过程G,一旦披露了与分区值f+对应的若干密钥的不同密钥索引值,就可以在理论上确定密钥库种子K。但是,实际上,用户只能处理和管理数量有限的秘密信息。因此,从秘密信息的保密性来衡量,本处所述的***和方法可配置为密钥管理中使用有限数量的秘密信息了提供最优方式。如果披露的信息量等于秘密信息的原始量,则不留下任何秘密。此外,由于披露密钥索引值ω并不披露对应密钥k(ω)的任何信息,对手仍必须攻击底层对称密码或其实现(包括其相应的加密引擎和/或存储器),以确定密钥k(ω)。对于最优密钥管理过程G,即使对手成功确定了一个密钥f-1次,这也不会在攻击其他密钥时提供任何优势。因此,配备了最佳密钥管理过程G的对称密码可以被认为比只有单个随机密钥的对称密码至少强f倍。
第4节–防种子重构的方式
在上面的描述中,描述了最优信息理论β-安全的密钥管理过程G*的实施方案,密钥管理过程G*实施方案示例利用线性运算从多个种子比特分区中生成加密密钥,如公式(6)所示。从信息理论的角度来看,密钥生成是线性还是非线性运算并不重要。但是,从计算的角度来看,线性密钥生成可能容易受到重构攻击。如果攻击者设法通过对实际加密引擎或其他方式的存储器攻击获取多个密钥,则攻击者可以通过求解用对应密钥索引作为GF(2l)中系数的线性方程***来"重构"密钥库种子K。
下面描述的密钥管理过程示例可以通过使用非线性运算从种子比特集合生成加密密钥来防止重构攻击。下面描述的密钥管理过程示例作为G*的变型来实现。下面讨论的G*变型示例可以通过将线性密钥生成方法(如(6)中定义的线性方法)与底层安全对称密码(或其他对称加密密码)相结合来实现,以保护密钥库种子K免受重构攻击。
4.1变型1示例
让E表示加密密码,例如,E可能对应于底层安全对称密码(如AES算法),用于使用此处描述的加密密钥来加密明文文件,或者,E可能与用于加密数据文件的不同对称加密密码相对应。
一般来说,密钥长度为l加密密码E可以配置为用给定长度为l的明文作为输入,生成长度为l的密文。将加密密码E与上面描述的线性密钥管理过程G*相结合就可以定义一个非线性密钥管理过程
Figure BDA0003374258840000431
密钥管理过程
Figure BDA0003374258840000432
可以定义一个密钥映射
Figure BDA0003374258840000433
其中规定,从密钥序列中确定加密密钥首先需要从多个种子比特分区中确定密钥序列输出,例如,密钥序列输出可以通过在密钥序列中用多个密钥序列比特集合的按位相加来确定。
密钥映射可以指定每个加密密钥从种子比特集合和对应的密钥材料值中用非线性运算生成,例如,密钥映射可以指定使用加密密码E从密钥序列输出中确定加密密钥,例如,密钥序列输出可以作为对称加密密码的输入。对称加密密码可以配置为使用密钥序列输出生成密文密钥序列。然后,加密密钥可以由对称加密密码来定义为密文密钥序列输出。
密钥映射
Figure BDA0003374258840000441
的示例可表示为:
Figure BDA0003374258840000442
对于所有密钥索引值ω∈Ω都成立。
密钥管理过程
Figure BDA0003374258840000443
(例如(8)中的运算)是高度非线性的,用在密钥管理过程
Figure BDA0003374258840000444
中的加密密钥可视为l比特的额外共享密钥。因此,信息发送方和接收方的共享的秘密(如授权设备105)包括种子比特长度为L的密钥库种子K和加密密码E在(8)中使用的指定密钥长度为l的加密密钥。通过额外的l比特的秘密,可以证明非线性密钥管理过程
Figure BDA0003374258840000445
至少与定义3意义上的线性密钥管理过程G*一样安全。
此外,非线性密钥管理过程
Figure BDA0003374258840000446
可安全抵御重构攻击。在非线性密钥管理过程
Figure BDA0003374258840000447
中,给定密钥索引值ω和对应的密钥k(ω),从用于生成密钥的密钥库种子中确定多个种子比特分区
Figure BDA0003374258840000448
的难度相当于破解底层安全对称密码的难度。
4.2变型2示例
将加密密码E与上面描述的线性密钥管理过程G*以不同的方式组合在一起,可以定义非线性密钥管理过程的另一个示例
Figure BDA0003374258840000449
非线性密钥管理过程
Figure BDA00033742588400004410
可指定给定加密密钥的密钥值是通过将相应的密钥材料值(例如密钥索引)输入到对称加密密码来确定。对称加密密码可以配置为使用密钥材料值来生成密文密钥材料值,然后,密钥值可以被定义为密文密钥材料值。
作为例子,密钥管理过程
Figure BDA0003374258840000451
可以将密钥映射定义为
Figure BDA0003374258840000452
对所有密钥索引ω∈Ω都成立。
同样,通过额外的l比特的秘密,可以证明非线性密钥管理过程
Figure BDA0003374258840000453
至少与定义3意义上的线性密钥管理过程G*一样安全。此外,非线性密钥管理过程
Figure BDA0003374258840000454
也能安全抵御重构攻击。
针对密钥长度l的底层安全对称密码,本申请从信息理论角度,在只能管理相对较小数量L的共享秘密比特K的实际条件下,描述了用于安全地生成、分发和维护大数量Λ的随机加密密钥过程的几个示例,其中L<<Λ≤2l。此披露定义了此处称为信息理论β-安全的密钥管理的概念,以及一个可以定义、分析和比较信息理论β-安全的密钥管理过程的框架。也描述了从防对手攻击强度意义上的最优过程。该申请还提供了具体的最优信息理论β-安全的过程(例如G*)的示例,包括配置为提供安全抵御重构攻击的非线性密钥管理过程。
要理解的是,根据当前申请用于密钥生成、分发和维护的加密密钥管理过程可在若干计算设备中实现,包括服务器、配套编程的通用计算机、音频/视频编码和播放设备、机顶电视盒、电视广播设备和移动设备。加密密钥管理方案可以通过包含配置处理器以执行此处所述功能的指令的软件和/或硬件的方式实现。软件指令可以存储在任何合适的非瞬时计算机可读存储器上,包括CD、RAM、ROM、闪存等。
需要理解的是,此处描述的加密密钥管理过程以及实现所述方法/过程的模块、例行程序、过程、线程或其他软件组件可以使用标准计算机程序技术和语言实现。目前的申请不限于特定的处理器、计算机语言、计算机编程惯例、数据结构及其他实现细节。本领域的技术人员会认识到,所描述的方法/过程可以作为存储在挥发性或非瞬时性存储器中的计算机可执行代码的一部分,或作为专用集成电路(ASIC)的一部分来实现。
对于本领域的技术人员来说,可能对所述方法进行某些调整和修改,上述讨论的密钥管理过程的实施方案应被视为阐述性,而不是限制性的。
虽然上述描述描述了实施方案示例的特征,要理解的是,所述实施方案的某些特征和/或功能在不偏离所述实施方案的本意和操作原则的情况下容易受到修改。例如,通过所表示的实施方案或示例描述的各种特征可以有选择地相互组合。在其他情况下,没有详细描述熟知的方法、过程和组件,以免混淆实施方案的描述。因此,上述内容意在说明所要求保护的概念而非限制。本领域的技术人员会理解,可以不偏离本权利要求定义的发明范围而进行其他变形和修改。权利要求的范围不应受优先的实施方案和示例的限制,而应给予与整个描述相一致的最广泛的解释。

Claims (42)

1.一种使用至少一台计算设备管理多个加密密钥的方法,每台计算设备具有处理器和非瞬时性设备存储器,该方法包括:
a)将密钥库种子存储在所述至少一台计算设备中的特定计算设备的非瞬时性存储器中,所述密钥库种子可用来生成多个加密密钥中的每个加密密钥,其中所述密钥库种子定义了一个具有多个种子比特的种子比特集合,所述种子比特集合中的多个种子比特是独立同分布的,其中每个加密密钥由多个密钥比特定义,加密密钥具有指定的密钥长度,所述指定的密钥长度对于每个加密密钥都是相同的,所述指定的密钥长度定义了所述多个密钥比特中的密钥比特的数量,其中所述种子比特集合有其种子比特集合长度,所述种子比特集合长度指定所述种子比特集合中的种子比特的数量,所述种子比特集合长度至少为所述指定的密钥长度的两倍;
b)通过所述特定计算设备的处理器确定一个密钥管理过程,该过程定义了在所述种子比特集合和所述多个加密密钥之间的一个密钥映射,其中所述密钥管理过程可被所述特定计算设备的处理器用来从所述种子比特集合中生成所述多个加密密钥中的每一个加密密钥,其生成方式是通过使用所述密钥映射,以及与所述加密密钥对应的密钥材料值;以及
c)把与所述密钥管理过程相对应的密钥管理指令存储在所述特定计算设备的非瞬时性存储器中,其中所述所述密钥管理指令可由所述特定计算设备的处理器执行,通过下列方式生成所述多个加密密钥中任何特定的加密密钥:
i)将所述种子比特集合分割成多个种子比特分区,其中所述多个种子比特分区中的种子比特分区数量,由基于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率确定的分区值来定义,其中分区值是一个整数且至少等于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率;
ii)从与所述特定的加密密钥对应的密钥材料值中确定一个密钥值;
iii)使用所述多个种子比特分区和密钥值,确定一个密钥序列,其中所述密钥序列包括多个密钥序列比特集合,每个密钥序列比特集合对应一个种子比特分区;以及
iv)从所述密钥序列中确定一个加密密钥,其中所述加密密钥可被所述处理器用来执行加密一个明文文件和解密一个密文文件中的至少一项。
2.权利要求1所述的方法,其中所述密钥序列通过将每个种子比特分区乘以所述密钥值的相应指数来确定,并且每个密钥序列比特集合对应于一个种子比特分区与所述密钥值的不同指数的乘积。
3.权利要求1和2所述的任一方法,其中所述加密密钥是根据所述密钥序列中所述多个密钥序列比特集合的按位相加来确定的。
4.权利要求1至3所述的任一方法,其中每个种子比特分区具有等于所述指定的密钥长度的分区长度,使得每个种子比特分区中的种子比特的数量等于密钥比特的数量。
5.权利要求1至4所述的任一方法,其中所述密钥管理过程指定所述密钥值被定义为所述密钥材料值。
6.权利要求1至5所述的任一方法,其中所述密钥管理过程指定,从所述密钥序列中确定所述加密密钥包括:
a)从所述密钥序列中确定一个密钥序列输出,其中所述密钥序列输出是由所述密钥序列中所述多个密钥序列比特集合的按位相加来确定;以及
b)通过下列方式确定所述加密密钥:
i)将所述密钥序列输出输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥序列输出生成密文密钥序列;
ii)将所述加密密钥确定为所述密文密钥序列。
7.权利要求1至6所述的任一方法,其中所述密钥管理过程指定,所述密钥值按下面方法确定:
a)将所述密钥材料值输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥材料值生成密文密钥材料值;
b)将所述密钥值确定为所述密文密钥材料值。
8.权利要求1至7所述的任一方法,进一步包括:
a)识别要加密的文件;
b)由下列方式生成文件加密密钥:
i)随机选择一个特定的密钥材料值;
ii)使用所述密钥管理过程,从所述特定的密钥材料值确定一个特定的密钥值;
iii)使用所述密钥管理过程,从所述多个种子比特分区和所述特定的密钥值中确定一个特定的密钥序列;
iv)使用所述密钥管理过程,从所述特定的密钥序列中确定所述文件加密密钥;
c)由下列方式生成加密文件:
i)将加密密码应用到所述文件,以生成密文文件,其中所述加密密码使用密码密钥生成所述密文文件,并且当所述加密密码应用于所述文件时,所述文件加密密钥被用作所述加密密码的密码密钥;
ii)从所述密文文件生成所述加密文件。
9.权利要求8所述的方法,其中所述加密文件包括,所述密文文件和与所述特定密钥材料值对应的文件密钥材料。
10.权利要求1至9所述的任一方法,进一步包括:
a)识别要解密的给定加密文件;
b)确定与所述给定加密文件对应的给定密钥材料值;
c)使用所述密钥管理过程,从所述给定密钥材料值中确定给定密钥值;
d)使用所述密钥管理过程,用所述多个种子比特分区和所述给定密钥值确定给定密钥序列;
e)使用所述密钥管理过程,从所述给定密钥序列生成文件解密密钥;
f)通过将解密密码应用于所述给定加密文件生成明文文件来生成解密文件,其中所述解密密码使用解密密码密钥生成所述明文文件,并且当所述解密密码应用于所述给定加密文件时,所述文件解密密钥被用作所述解密密码的解密密码密钥。
11.权利要求10所述的方法,其中确定与所述给定加密文件对应的所述给定密钥材料值包括,从所述加密文件中提取所述给定密钥材料值。
12.权利要求1至11所述的任一方法,其中所述种子比特集合长度至少是所述指定的密钥长度的三倍,并且所述种子比特集合长度是所述指定的密钥长度的整数倍。
13.权利要求12所述的方法,其中所述密钥库种子定义了初始种子比特的初始集合,其中所述初始种子比特的初始集合具有小于所述种子比特集合长度的初始集合长度,并且所述种子比特集合通过将零附加到所述初始种子比特的初始集合来定义,使得所述初始种子比特的初始集合与附加的零的组合长度等于所述种子比特集合长度。
14.权利要求1至13所述的任一方法,进一步包括将所述密钥管理指令和所述密钥库种子安全地传输到多个不同的计算设备,其中所述密钥管理指令和所述密钥库种子使每个不同的计算设备能够生成所述多个加密密钥中的每个加密密钥。
15.一种用于管理多个加密密钥的计算机程序产品,该计算机程序产品包括存有计算机可执行指令的计算机可读介质,所述指令用于配置计算设备的处理器,以:
a)将密钥库种子存储在所述计算设备的非瞬时性存储器中,所述密钥库种子可用来生成所述多个加密密钥中的每个加密密钥,其中所述密钥库种子定义了一个具有多个种子比特的种子比特集合,所述种子比特集合中的多个种子比特是独立同分布的,其中每个加密密钥由多个密钥比特定义,加密密钥具有指定的密钥长度,所述指定的密钥长度对于每个加密密钥都是相同的,所述指定的密钥长度定义了所述多个密钥比特中的密钥比特的数量,其中所述种子比特集合有其种子比特集合长度,所述种子比特集合长度指定所述种子比特集合中的种子比特的数量,所述种子比特集合长度至少为所述指定的密钥长度的两倍;
b)确定一个密钥管理过程,该过程定义了在所述种子比特集合和所述多个加密密钥之间的一个密钥映射,其中所述密钥管理过程可被所述处理器用来从所述种子比特集合中生成所述多个加密密钥中的每一个加密密钥,其生成方式是通过使用所述密钥映射,以及与所述加密密钥对应的密钥材料值;以及
c)把与所述密钥管理过程对应的密钥管理指令存储在所述非瞬时性存储器中,其中所述密钥管理指令可由所述处理器执行,通过下列方式生成所述多个加密密钥中任何特定的加密密钥:
i)将所述种子比特集合分割成多个种子比特分区,其中所述多个种子比特分区中的种子比特分区数量,由基于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率所确定的分区值来定义,其中分区值是一个整数且至少等于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率;
ii)从与所述特定的加密密钥对应的密钥材料值中确定一个密钥值;
iii)使用所述多个种子比特分区和密钥值,确定一个密钥序列,其中所述密钥序列包括多个密钥序列比特集合,每个密钥序列比特集合对应一个种子比特分区;以及
iv)从所述密钥序列中确定一个加密密钥,其中所述加密密钥可被所述处理器用来执行加密一个明文文件和解密一个密文文件中的至少一项。
16.权利要求15所述的计算机程序产品,其中所述密钥管理指令被定义为配置所述处理器,以通过将每个种子比特分区乘以所述密钥值的相应指数来确定所述密钥序列,其中每个密钥序列比特集合对应于一个种子比特分区与所述密钥值的不同指数的乘积。
17.权利要求15和16所述的任一计算机程序产品,其中所述密钥管理指令被定义为配置所述处理器,以根据所述密钥序列中所述多个密钥序列比特集合的按位相加来确定所述加密密钥。
18.权利要求15至17所述的任一计算机程序产品,其中所述密钥管理指令被定义为配置所述处理器,以定义每个种子比特分区,其中每个种子比特分区具有等于所述指定的密钥长度的分区长度,使得每个种子比特分区中的种子比特的数量等于密钥比特的数量。
19.权利要求15至18所述的任一计算机程序产品,其中所述密钥管理过程指定所述密钥值被定义为所述密钥材料值。
20.权利要求15至19所述的任一计算机程序产品,其中所述密钥管理指令被定义为配置所述处理器,按照下列方式从所述密钥序列中确定所述加密密钥:
a)从所述密钥序列中确定一个密钥序列输出,其中所述密钥序列输出是由所述密钥序列中所述多个密钥序列比特集合的按位相加来确定;以及
b)通过下列方式确定所述加密密钥:
i)将所述密钥序列输出输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥序列输出生成密文密钥序列;
ii)将所述加密密钥确定为所述密文密钥序列。
21.权利要求15至20所述的任一计算机程序产品,其中所述密钥管理指令被定义为配置所述处理器,按下列方式确定所述密钥值:
a)将所述密钥材料值输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥材料值生成密文的密钥材料值;
b)将所述密钥值确定为所述密文密钥材料值。
22.权利要求15至21所述的任一计算机程序产品,进一步包括配置所述处理器识别要加密的文件的指令:
a)其中所述密钥管理指令被定义为配置所述处理器,按下列方式生成文件加密密钥:
i)随机选择一个特定的密钥材料值;
ii)使用所述密钥管理过程,从所述特定的密钥材料值确定一个特定的密钥值;
iii)使用所述密钥管理过程,从所述多个种子比特分区和所述特定的密钥值中确定一个特定的密钥序列;以及
iv)使用所述密钥管理过程,从所述特定的密钥序列中确定所述文件加密密钥;
a)由下列方式生成加密文件:
i)将加密密码应用到所述文件,以生成密文文件,其中所述加密密码使用密码密钥生成所述密文文件,并且当所述加密密码应用于所述文件时,所述文件加密密钥被用作所述加密密码的密码密钥;以及
ii)从所述密文文件生成所述加密文件。
23.权利要求22所述的计算机程序产品,其中所述加密文件包括,所述密文文件和与所述特定的密钥材料值对应的文件密钥材料。
24.权利要求15至23所述的任一计算机程序产品,进一步包括配置所述处理器识别要解密的给定加密文件的指令:
a)其中所述密钥管理指令被定义为配置所述处理器,以
i)确定与所述给定加密文件对应的给定密钥材料值;
使用所述密钥管理过程,从所述给定密钥材料值中确定给定密钥值;
ii)使用所述密钥管理过程,用所述多个种子比特分区和所述给定密钥值确定给定密钥序列;
iii)使用所述密钥管理过程,从所述给定密钥序列生成文件解密密钥;以及
iv)通过将解密密码应用于所述给定加密文件生成明文文件来生成解密文件,其中所述解密密码使用解密密码密钥生成所述明文文件,并且当所述解密密码应用于所述给定加密文件时,所述文件解密密钥被用作所述解密密码的解密密码密钥。
25.权利要求24所述的计算机程序产品,其中确定与所述给定加密文件对应的所述给定密钥材料值包括,从所述加密文件中提取所述给定密钥材料值。
26.权利要求15至25所述的任一计算机程序产品,其中所述种子比特集合长度至少是所述指定的密钥长度的三倍,并且所述种子比特集合长度是所述指定的密钥长度的整数倍。
27.权利要求26所述的计算机程序产品,其中所述密钥库种子定义了初始种子比特的初始集合,其中所述初始种子比特的初始集合具有小于所述种子比特集合长度的初始集合长度,并且所述种子比特集合通过将零附加到所述初始种子比特的初始集合来定义,使得所述初始种子比特的初始集合与附加的零的组合长度等于所述种子比特集合长度。
28.权利要求15至27所述的任一计算机程序产品,进一步包括配置所述处理器将所述密钥管理指令和所述密钥库种子安全地传输到多个不同的计算设备的指令,其中所述密钥管理指令和所述密钥库种子使每个不同的计算设备能够生成所述多个加密密钥中的每个加密密钥。
29.一种用于管理多个加密密钥的设备,所述设备包括:
a)一个处理器;以及
b)一个非瞬时性设备存储器,其上存有配置所述处理器执行下列事项的指令:
i)将密钥库种子存储在所述非瞬时性设备存储器中,所述密钥库种子可用来生成所述多个加密密钥中的每个加密密钥,其中所述密钥库种子定义了一个具有多个种子比特的种子比特集合,所述种子比特集中的多个种子比特是独立同分布的,其中每个加密密钥由多个密钥比特定义,加密密钥具有指定的密钥长度,所述指定的密钥长度对于每个加密密钥都是相同的,所述指定的密钥长度定义了所述多个密钥比特中的密钥比特的数量,其中所述种子比特集合有其种子比特集合长度,所述种子比特集合长度指定所述种子比特集合中的种子比特的数量,所述种子比特集合长度至少为所述指定的密钥长度的两倍;
ii)确定一个密钥管理过程,该过程定义了在所述种子比特集合和所述多个加密密钥之间的一个密钥映射,其中所述密钥管理过程可被所述处理器用来从所述种子比特集合中生成所述多个加密密钥中的每一个加密密钥,其生成方式是通过使用所述密钥映射,以及与所述加密密钥对应的密钥材料值;以及
iii)把与所述密钥管理过程相对应的密钥管理指令存储在所述非瞬时性设备存储器中,其中所述密钥管理指令可由所述处理器执行,通过下列方式生成所述多个加密密钥中任何特定的加密密钥:
将所述种子比特集合分割成多个种子比特分区,其中所述多个种子比特分区中的种子比特分区数量,由基于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率确定的分区值来定义,其中分区值是一个整数且至少等于所述种子比特集合中种子比特的数量与密钥比特的数量之间的比率;
从与所述特定的加密密钥对应的密钥材料值中确定一个密钥值;
使用所述多个种子比特分区和密钥值,确定一个密钥序列,其中所述密钥序列包括多个密钥序列比特集合,每个密钥序列比特集合对应一个种子比特分区;以及
从所述密钥序列中确定一个加密密钥,其中所述加密密钥可被所述处理器用来执行加密一个明文文件和解密一个密文文件中的至少一项。
30.权利要求29所述的设备,其中所述密钥管理指令被定义为配置所述处理器,以通过将每个种子比特分区乘以所述密钥值的相应指数来确定所述密钥序列,其中每个密钥序列比特集合对应于一个种子比特分区与所述密钥值的不同指数的乘积。
31.权利要求29和30所述的任一设备,其中所述密钥管理指令被定义为配置所述处理器,以根据所述密钥序列中所述多个密钥序列比特集合的按位相加来确定所述加密密钥。
32.权利要求29至31所述的任一设备,其中所述密钥管理指令被定义为配置所述处理器,以定义每个种子比特分区,其中每个种子比特分区具有等于所述指定的密钥长度的分区长度,使得每个种子比特分区中的种子比特的数量等于密钥比特的数量。
33.权利要求29至32所述的任一设备,其中所述密钥管理过程指定所述密钥值被定义为所述密钥材料值。
34.权利要求29至33所述的任一设备,其中所述密钥管理指令被定义为配置所述处理器,按照下列方式从所述密钥序列中确定所述加密密钥:
a)从所述密钥序列中确定一个密钥序列输出,其中所述密钥序列输出是由所述密钥序列中所述多个密钥序列比特集合的按位相加来确定;以及
b)通过下列方式确定所述加密密钥:
i)将所述密钥序列输出输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥序列输出生成密文密钥序列;
ii)将所述加密密钥确定为所述密文密钥序列。
35.权利要求29至34所述的任一设备,其中所述密钥管理指令被定义为配置所述处理器,按下列方式确定所述密钥值:
a)将所述密钥材料值输入到一个对称加密密码,其中所述对称加密密码被配置为使用所述密钥材料值生成密文的密钥材料值;
b)将所述密钥值确定为所述密文密钥材料值。
36.权利要求29至35所述的任一设备,其中
a)所述指令被定义为配置所述处理器识别要加密的文件;
b)所述密钥管理指令被定义为配置所述处理器,按照下列方式生成文件加密密钥:
i)随机选择一个特定的密钥材料值;
ii)使用所述密钥管理过程,从所述特定的密钥材料值确定一个特定的密钥值;
iii)使用所述密钥管理过程,从所述多个种子比特分区和所述特定的密钥值中确定一个特定的密钥序列;以及
iv)使用所述密钥管理过程,从所述特定的密钥序列中确定所述文件加密密钥;
c)由下列方式生成加密文件:
i)将加密密码应用到所述文件,以生成密文文件,其中所述加密密码使用密码密钥生成所述密文文件,并且当所述加密密码应用于所述文件时,所述文件加密密钥被用作所述加密密码的密码密钥;以及
ii)从所述密文文件生成所述加密文件。
37.权利要求36所述的设备,其中所述加密文件包括,所述密文文件和与所述特定的密钥材料值对应的文件密钥材料。
38.权利要求29至37所述的任一设备,其中
a)所述指令被定义为配置所述处理器识别要解密的给定加密文件;
b)所述密钥管理指令被定义为配置所述处理器,以
i)确定与所述给定加密文件对应的给定密钥材料值;
ii)使用所述密钥管理过程,从所述给定密钥材料值中确定给定密钥值;
iii)使用所述密钥管理过程,用所述多个种子比特分区和所述给定密钥值确定给定密钥序列;
iv)使用所述密钥管理过程,从所述给定密钥序列生成文件解密密钥;以及
v)通过将解密密码应用于所述给定加密文件生成明文文件来生成解密文件,其中所述解密密码使用解密密码密钥生成所述明文文件,并且当所述解密密码应用于所述给定加密文件时,所述文件解密密钥被用作所述解密密码的解密密码密钥。
39.权利要求38所述的设备,其中确定与所述给定加密文件对应的所述给定密钥材料值包括,从所述加密文件中提取所述给定密钥材料值。
40.权利要求29至39所述的任一设备,其中所述种子比特集合长度至少是所述指定的密钥长度的三倍,并且所述种子比特集合长度是所述指定的密钥长度的整数倍。
41.权利要求40所述的设备,其中所述密钥库种子定义了初始种子比特的初始集合,其中所述初始种子比特的初始集合具有小于所述种子比特集合长度的初始集合长度,并且所述种子比特集合通过将零附加到所述初始种子比特的初始集合来定义,使得所述初始种子比特的初始集合与附加的零的组合长度等于所述种子比特集合长度。
42.权利要求29至41所述的任一设备,其中所述指令被定义为配置所述处理器将所述密钥管理指令和所述密钥库种子安全地传输到多个不同的计算设备,其中所述密钥管理指令和所述密钥库种子使每个不同的计算设备能够生成所述多个加密密钥中的每个加密密钥。
CN202080038919.3A 2019-05-27 2020-05-21 用于最优信息理论安全的加密密钥管理的方法和设备 Pending CN113874857A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962853081P 2019-05-27 2019-05-27
US62/853,081 2019-05-27
PCT/CA2020/050679 WO2020237349A1 (en) 2019-05-27 2020-05-21 Methods and devices for optimal information-theoretically secure encryption key management

Publications (1)

Publication Number Publication Date
CN113874857A true CN113874857A (zh) 2021-12-31

Family

ID=73551476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080038919.3A Pending CN113874857A (zh) 2019-05-27 2020-05-21 用于最优信息理论安全的加密密钥管理的方法和设备

Country Status (4)

Country Link
US (1) US11533167B2 (zh)
EP (1) EP3977320A4 (zh)
CN (1) CN113874857A (zh)
WO (1) WO2020237349A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884716B (zh) * 2022-04-28 2024-02-27 世融能量科技有限公司 加密解密方法、装置及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2293684A1 (en) * 1997-03-10 1998-10-15 Paul N. Alito Secure deterministic encryption key generator system and method
EP1075108A1 (en) * 1999-07-23 2001-02-07 BRITISH TELECOMMUNICATIONS public limited company Cryptographic data distribution
JP2007511178A (ja) * 2003-11-05 2007-04-26 ノースウエスタン ユニバーシティ 光増幅を行う波長分割多重通信ネットワークを介した、コヒーレント状態に基づく量子暗号
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
MX2016000292A (es) * 2013-07-12 2016-04-13 Koninkl Philips Nv Sistema para compartir una clave criptografica.
US9619667B2 (en) 2014-06-13 2017-04-11 BicDroid Inc. Methods, systems and computer program product for providing encryption on a plurality of devices
US9703979B1 (en) * 2014-06-13 2017-07-11 BicDroid Inc. Methods and computer program products for encryption key generation and management
AU2015308608B2 (en) 2014-08-29 2019-07-04 Visa International Service Association Methods for secure cryptogram generation
US11216592B2 (en) * 2018-08-02 2022-01-04 Qualcomm Incorporated Dynamic cryptographic key expansion

Also Published As

Publication number Publication date
EP3977320A1 (en) 2022-04-06
WO2020237349A1 (en) 2020-12-03
US20200382290A1 (en) 2020-12-03
EP3977320A4 (en) 2023-06-28
US11533167B2 (en) 2022-12-20

Similar Documents

Publication Publication Date Title
CN107925577B (zh) 用于加密密钥生成和管理的方法以及计算机可读介质
US10938792B2 (en) Layered encryption for end to end communication
US9703979B1 (en) Methods and computer program products for encryption key generation and management
US9158931B2 (en) Block encryption method and block decryption method having integrity verification
CN105406969B (zh) 数据加密装置及方法
CN109067517B (zh) 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
Prajapati et al. Comparative analysis of DES, AES, RSA encryption algorithms
Abdel-Kader et al. Efficient two-stage cryptography scheme for secure distributed data storage in cloud computing.
CN114095170A (zh) 数据处理方法、装置、***及计算机可读存储介质
Sharma et al. Analysis of AES Encryption with ECC
Ajmal et al. Cloud computing platform: Performance analysis of prominent cryptographic algorithms
CN113874857A (zh) 用于最优信息理论安全的加密密钥管理的方法和设备
Mateescu et al. A hybrid approach of system security for small and medium enterprises: Combining different cryptography techniques
Thapar et al. A study of data threats and the role of cryptography algorithms
WO2018054144A1 (zh) 对称密钥动态生成方法、装置、设备及***
Vennela et al. Performance analysis of cryptographic algorithms for cloud security
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
Rahim et al. Security Enhancement with USB Flash Disk as Key using AES Algorithm
KR101026647B1 (ko) 통신 보안 시스템 및 그 방법과 이에 적용되는 키 유도 암호알고리즘
Ahuja et al. Dual layer secured password manager using Blowfish and LSB
Charru et al. Improved Cryptography Algorithm to Enhanced Data Security
CA2988628C (en) Methods and computer program products for encryption key generation and management
Al-Attab et al. Hybrid data encryption technique for data security in cloud computing
Saini et al. Cryptographic hybrid model-an advancement in cloud computing security: a survey
WO2018011825A1 (en) Encryption and decryption of messages

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