CN111886587A - 密钥管理系统中的不经意伪随机函数 - Google Patents

密钥管理系统中的不经意伪随机函数 Download PDF

Info

Publication number
CN111886587A
CN111886587A CN201980019212.5A CN201980019212A CN111886587A CN 111886587 A CN111886587 A CN 111886587A CN 201980019212 A CN201980019212 A CN 201980019212A CN 111886587 A CN111886587 A CN 111886587A
Authority
CN
China
Prior art keywords
key
blind
computing device
oprf
processing
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
Application number
CN201980019212.5A
Other languages
English (en)
Other versions
CN111886587B (zh
Inventor
J.雷施
H.M.克劳齐克
M.D.西博恩
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111886587A publication Critical patent/CN111886587A/zh
Application granted granted Critical
Publication of CN111886587B publication Critical patent/CN111886587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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
    • 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
    • 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
    • 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/0825Key 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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding

Landscapes

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

Abstract

一种计算设备包括被配置成与通信系统接口和通信的接口、存储操作指令的存储器、以及可操作地耦合到接口和存储器的处理电路,该处理电路被配置成执行操作指令以执行各种操作。计算设备根据不经意伪随机函数(OPRF)盲化操作基于盲化密钥来处理与密钥相关联的输入值,以生成盲值,并且将盲值传输到另一计算设备(例如,与密钥管理系统(KMS)服务相关联的计算设备)。计算设备然后接收基于使用OPRF秘密基于OPRF对盲值进行的处理的盲密钥。计算设备根据OPRF去盲操作基于盲化密钥来处理盲密钥,以生成密钥(例如,用于安全信息访问)。

Description

密钥管理系统中的不经意伪随机函数
技术领域
本发明涉及安全性、加密和密钥管理,并且更具体地,涉及根据基于与一个或多个密钥管理系统(Key Management System,KMS)相关的通信系统和通信的操作的安全性、加密和密钥管理。
背景技术
在某些现有技术通信系统中,不断增加的数据量被在线存储。其中的很多数据是关键的、加密的、安全的和/或私有的。例如,这些数据中的大部分是私有的,并且一些可能受机密性法律和法规的保护。数据中的一些被加密以保护数据免受恶意内部人员、外部攻击者和/或意外暴露需求。加密可以使用一个或多个加密密钥来操作。没有适当的(多个)加密密钥,被加密的数据不能被解密。因此,无论何时处理加密数据,密钥的可靠供应和管理是必要的。
另外,最近,某些信息被存储在由另一方操作和维护的一个或多个远程存储设备内。在某些现有技术实施方式中,该另一方服务提供商将有权并且能够看到其存储、管理并向其服务的客户端和/或用户提供的一个或多个加密密钥。在这种情况下,这种客户端和/或用户可能非常容易受到这种另一方服务提供商的任何不良意图、行为、缺乏信任等的影响以及对其非常敏感。
包括存储用于访问安全和加密信息的密钥的那些存储系统(例如,密钥管理系统(KMS))的这种现有技术存储系统包括许多问题。另外,在基于云的技术来实施这种存储系统的尝试中,问题可能变得更加严重。例如,这种现有技术存储系统的基于云的实施方式产生了附加的安全威胁。考虑一些示例,租户必须信任云提供商及其操作。必须信任云提供商将正确地管理系统。这包括相信云提供商将不会出现配置错误,将有效地执行安全保护备份,将具有对于租户数据的正确策略和适当控制等。此外,必须对以下各项有信心:云提供商将不具有可能损害敏感数据的恶意内部人员、将适当地审查雇员、将具有审核过程、以及不会向系统管理员授予过度的无限制权力。此外,必须确保云提供商将适当地隔离租户。这可以包括确保以下各项:云提供商将防止侧信道虚拟机(virtual machine,VM)间和容器间攻击、保护存储器、在使用之间擦除驱动器、以及防止网络嗅探。此外,必须对云提供商将防范攻击有信心,包括可能源自互联网上任何地方的那些攻击。必须对以下各项有信心:云提供商将保护网络(例如,包括所有云数据的入口点)、将监视漏洞、将经受得住分布式拒绝服务(Distributed Denial of Service,DDOS)、将应用补丁、以及将适当地使用和验证证书。
根据基于云的技术实施的现有技术存储系统需要对单个云提供商投放显著的信任和/或维护个人自己的KMS基础设施。缺乏安全性或对足够安全性的信任是阻止实施使用基于云的技术的这种现有技术存储系统的主要考虑因素中的一些。当存储正常数据(例如,非私有、秘密和/或高价值的数据)时存在这种担心,并且当处理安全数据、加密数据、加密密钥等时,这些担心变得更加严重。现有技术没有提供通过其可以充分解决诸如隐私、安全性、信任等的各种问题同时提供确信和可靠的用户服务以获得可接受的性能和用户体验的合适的解决方案。
发明内容
本发明的实施例公开了一种用于基于一个或多个不经意伪随机函数(ObliviousPseudorandom Function,OPRF)来实现一个或多个密钥管理系统(KMS)服务的计算机实施的方法、系统和计算机程序产品。在这种实施方式中,双方(例如,诸如与客户端和KMS服务相关联的计算设备)协同操作以对函数求值并最终向客户端提供密钥。第一方供应输入,第二方供应OPRF密钥(例如,OPRF秘密)。只有第一方接收(或能够学习)OPRF的输出,并且不能学习或看到OPRF密钥。输入值对于第二方是未知的,并且OPRF密钥对于第一方是未知的。而且,第二方不能学习或看到OPRF的输入或输出。而且,由第二方提供的密钥对于第二方是未知的。
相比之下,在现有技术的基于云的技术中,基于云的KMS服务的提供商操作,使得提供商将看到租户的密钥。在使用本文新颖的解决方案执行计算的过程中,第一方不了解关于第二方使用的OPRF秘密(例如,OPRF密钥)的任何信息。在某些可选操作中,OPRF秘密基于客户根密钥(Customer Root Key,CRK)。本文所呈现的包括支持密钥管理系统(KMS)的这种新颖的解决方案可以使用基于云的技术来实施,同时要求对云提供商的零信任,并且在租户场所中不需要任何KMS基础设施。
根据这种操作,由第一方根据不经意伪随机函数(OPRF)盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥(blinding key)来处理与密钥相关联的输入值,以生成盲值。然后,盲值被传输(例如,经由通信系统)到第二方(例如,与KMS服务相关联的另一计算设备)。盲密钥(blinded key)是(例如,由第二方)使用不经意伪随机函数(OPRF)秘密基于OPRF对盲值进行处理而生成的。然后,由第一方(例如,经由通信系统并且从与KMS服务相关联的第二方)接收盲密钥。根据不经意伪随机函数(OPRF)去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥来处理盲密钥,以生成与输入值相关联的密钥。如果在特定实施方式中需要,则基于所生成的密钥来访问安全信息(例如,经由通信系统)。在某些可选操作中,密钥可以是任何期望的类型,包括数据加密密钥(DataEncryption Key,DEK)或密钥加密密钥(Key Encryption Key,KEK)。
第一方和第二方之间的通信被保护并且不容易被窃听。而且,不需要特别使用诸如传输层安全(Transport Layer Security,TLS)的特殊安全通信协议来实施第一方和第二方之间的这种通信。
根据其他这种可选操作,如本文生成的密钥可以包括非对称密钥对中的公钥或私钥(例如,基于结构化密钥参数并且包括第一密钥和第二密钥的非对称密钥对,一些示例包括一个密钥是公钥,而另一密钥是非对称密钥的公钥-私钥对中的私钥)。在这种实施方式中,第二方可以确定结构化密钥参数和确定性函数,该确定性函数指定非对称密钥对中的第一密钥或第二密钥的生成。在一些实例中,从第一方向第二方提供这种结构化密钥参数和确定性函数。基于该信息,第一方处理盲密钥以生成非对称密钥对内的那些密钥中的一个,然后可以将该密钥与非对称密钥对中的密钥中的另一个一起使用,以访问基于非对称密钥对的这种安全信息。这种实施方式提供了这种非对称密钥对的密钥之一的安全存储和检索。
另外,根据其他这种可选操作,这种操作可包括基于非对称密钥的公钥-私钥对的公钥来处理非对称密钥的公钥-私钥对的私钥,以验证非对称密钥的公钥-私钥对的私钥的正确性。这可以用于确保存储在这种KMS服务内的密钥的完整性。
附图说明
图1A是示出了根据本发明各种实施例的支持密钥管理系统(KMS)的一个或多个通信系统的实施例的图;
图1B是示出根据本发明各种实施例的一个或多个通信系统的实施例的图;
图1C是示出根据本发明各种实施例的被配置成在一个或多个通信系统内操作的计算设备的实施例的图;
图1D是示出根据本发明各种实施例的无线通信系统的实施例的图;
图2A是示出根据本发明各种实施例的支持KMS的一个或多个通信系统的另一实施例的图;
图2B是示出根据本发明各种实施例的支持KMS的一个或多个通信系统的另一实施例的图;
图3A是示出根据本发明各种实施例的支持KMS的一个或多个通信系统的另一实施例的图;
图3B是示出根据本发明各种实施例的支持基于不经意伪随机函数(OPRF)的KMS的一个或多个通信系统的实施例的图;
图4A是示出根据本发明各种实施例的支持具有不经意性的密钥保护的一个或多个通信系统的实施例的图;
图4B是示出根据本发明各种实施例的支持硬件安全模块(Hardware SecurityModule,HSM)集成的一个或多个通信系统的实施例的图;
图4C是示出根据本发明各种实施例的可以根据KMS使用的密钥层级的实施例的图;
图5是示出根据本发明各种实施例的由一个或多个计算设备执行的方法的实施例的图;
图6是示出根据本发明各种实施例的由一个或多个计算设备执行的方法的另一实施例的图;
图7是示出根据本发明各种实施例的由一个或多个计算设备执行的方法的另一实施例的图;
图8是示出根据本发明各种实施例的由一个或多个计算设备执行的方法的另一实施例的图;
图9是示出根据本发明各种实施例的由一个或多个计算设备执行的方法的另一实施例的图;
图10描绘了根据本发明各种实施例的云计算环境;
图11描绘了根据本发明各种实施方式的抽象模型层;以及
图12描绘了根据本发明的各种实施例的计算设备的框图。
具体实施方式
根据本发明的实施例,新颖的密钥管理和密钥安全基于不经意性来操作,以提供诸如基于一个或多个密钥管理系统(KMS)来使用的密钥的安全性和保密性。这种新颖的密钥管理和密钥安全性还涉及根据不经意伪随机函数(OPRF)盲化操作(例如同态加密、一个或多个其他盲化操作等)和/或不经意伪随机函数(OPRF)处理来生成一个或多个密钥。在一些示例中,这包括执行OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)(以及OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)),并且基于客户端(例如,用户)操作和服务提供商(例如,KMS)操作来支持OPRF处理。各种实体以双方协同操作的方式彼此交互以对函数求值并最终向客户端提供密钥。根据这种OPRF处理,客户不能确定由服务提供商使用的OPRF秘密,并且服务提供商不能确定与客户相关联的输入和/或输出。此外,服务提供商不能看到并且不能确定它提供给一个或多个客户端的一个或多个密钥。而且,在如本文所呈现的这种新颖的解决方案的一个实例中,密钥在每次使用时重新生成。这可以用于卸载大量存储并且还用于将处理负载卸载到大量客户端。这提供了可缩放系统的可能实施方式,其消除了对如在现有技术系统中使用的集中式服务器或硬件安全模块(Hardware Security Module,HSM)的需要。
图1A是示出了根据本发明各种实施例的支持密钥管理系统(KMS)的一个或多个通信系统的实施例100的图。一个或多个计算设备(例如,计算设备110、计算设备112等)被配置成支持经由一个或多个其他计算设备和/或一个或多个网络段116的通信。在一个示例中,计算设备110经由一个或多个网络段116与计算设备112通信。例如,计算设备110与第一用户相关联,并且计算设备112与第二用户相关联。一个或多个网络段116可以根据诸如参考图10所描述的云计算环境50来实施,并且在一些示例和/或实施例中,一个或多个网络段116可以在其中包括一个或多个其他计算设备(例如,节点、路由器、网关、服务器、中继器、转码器等)。
计算设备110被配置成基于一个或多个密钥访问安全信息(例如,安全的、私有的、加密的数据、密钥等)。这些密钥的示例可以是各种类型,包括数据加密密钥(DEK)、密钥加密密钥(KEK)、打包数据加密密钥(WDEK)、主密钥加密密钥(M-KEK)、实例密钥加密密钥(I-KEK)、客户根密钥(CRK)和/或任何其他类型的密钥(包括与信息相关联并且用于对信息进行加密和/或解密的那些密钥)等中的一个或多个。
例如,一旦生成密钥,计算设备110就可以被配置成使用该密钥来访问存储在一个或多个网络段116内和/或存储在基于云的技术内的安全信息,该基于云的技术基于一个或多个网络段116或者经由一个或多个网络段116可访问。例如,计算设备110请求由云提供商存储的加密数据,接收由该云提供商存储的该加密数据,并且然后使用密钥来解密该加密数据。
通常,根据这种安全性、加密等,密钥被计算设备110用来访问安全信息(例如,数据、密钥等),该安全信息对于不具有密钥的其他人保持不可用。通常,密钥管理系统(KMS)可以被视为代表计算设备、用户和/或应用等管理、可靠地维护和控制对密钥的访问的系统。例如,考虑特定实例,如果KMS失败,则用于恢复利用由KMS管理的密钥加密的数据的任何尝试也将失败。安全和适当的访问控制强制和审核也是必要的。例如,如果错误的实体(例如,未授权的实体)从KMS获得密钥,则KMS已经向该方有效地公开了在该密钥下加密的所有数据、密钥等。
在操作和实施方式的示例中,计算设备110(例如,诸如与用户相关联的计算设备)被配置成支持经由一个或多个网络段116经由一个或多个通信系统(例如,互联网、内联网、专有网络、私有网络、公共网络等)与密钥管理系统(KMS)的通信。计算设备110被配置成根据不经意伪随机函数(OPRF)盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥来处理与密钥相关联的输入值,以生成盲值。这种输入值可以是任何期望值(例如,任意标识符、文件名、对象标识符(ID)等,任何这种元素的散列(hash),诸如任意标识符、文件名、对象名、ID等的散列)。
计算设备110还被配置成(例如,经由一个或多个网络段116)将盲值传输到与密钥管理系统(KMS)服务(被示出为KMS服务121)相关联的另一计算设备。计算设备110还被配置成(例如,经由一个或多个网络段116并且从KMS服务121)接收盲密钥。注意,盲密钥基于使用非经意伪随机函数(OPRF)秘密基于OPRF对盲值进行的处理。在一些示例中,KMS服务121被配置成使用OPRF秘密基于OPRF来处理盲值。计算设备110还被配置成根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥来处理盲密钥,以生成与输入值相关联的密钥。然后,计算设备110还被配置成基于该密钥(例如,经由一个或多个网络段116)访问安全信息。这种安全信息的示例可以包括私有的、秘密的和/或高价值的信息。这种数据的示例可以包括个人信息、健康数据、财务数据、战略计划、竞争信息、商业秘密、比特币钱包、客户列表中的任何一个或多个,和/或可以是私有的、秘密的和/或高价值的任何其他类型的数据。
在一些示例中,输入值对于KMS服务121是未知的,并且包括与密钥相关联的密钥标识符(密钥id)。而且,密钥对于KMS服务121是未知的,并且可以包括任何类型的密钥,包括上面提到的那些密钥,包括DEK或KEK。在一些具体示例中,OPRF秘密对于计算设备110是未知的,并且基于与计算设备110相关联的客户根密钥(CRK)。
图1B是示出根据本发明各种实施例的一个或多个通信系统的实施例102的图。一个或多个网络段116为至少两个计算设备110和112提供通信互连(例如,在某些示例中,这种计算设备可被实施并被操作为支持与其他计算设备的通信,并且这种计算设备在包括计算设备和通信设备功能和能力两者的这种情形中可替换地被称为通信设备)。一般而言,任何期望数量的通信设备被包括在一个或多个通信系统内(例如,如通信设备114所示)。
一个或多个网络段116内的各种通信链路可以使用各种通信介质中的任何一种来实施,包括被实施为无线、有线、光学、卫星、微波和/或其任何组合等通信链路的通信链路。通常,一个或多个网络段116可以被实施为支持无线通信系统、有线通信系统、非公开内联网系统、公开互联网系统、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、卫星通信系统、光纤通信系统和/或移动通信系统。而且,在一些实例中,不同类型的通信链路可以协同形成任何两个通信设备之间的连接路径。考虑一个可能的示例,设备110和112之间的通信路径可以包括有线通信链路的一些段和光学通信链路的其他段。还应注意,设备110-114可以是各种类型的设备,包括固定设备、移动设备、便携式设备等,并且可以支持用于包括数据、电话、电视、互联网、媒体、同步等的多个服务或服务流中的任何服务或服务流的通信。
在操作和实施方式的示例中,设备110包括通信接口,以支持与其他设备112和114中的一个或多个的通信。在示例中,计算设备110包括被配置成与通信网络(例如,一个或多个网络分段116)接口和通信的通信接口、存储操作指令的存储器、以及耦合到通信接口和存储器的处理器。处理器被配置成执行操作指令以执行各种功能、操作等。注意,计算设备110所支持的通信可以是双向的,可以是去往和来自一个或多个其他计算设备112-114的,或者是单向的(或主要是单向的),可以是来自一个或多个其他计算设备112-114的。
在一个示例中,计算设备110包括处理器,该处理器对信号进行生成、调制、编码等并经由计算设备110的通信接口传输该信号,并且还对经由计算设备110的通信接口接收的(例如,从诸如计算设备112、计算设备114等其他计算设备接收的)其他信号进行接收和处理、解调、解码等。
还要注意,通信接口120可以包括用于支持用户输入的接收和用户输出的输出的功能性(例如,经由触摸屏、键盘、音频和/或视频输入/输出端口等),以促进与计算设备110-1的一个或多个用户交互。这种功能性在一些示例中与通信接口120分离地实施,而在另一些示例中被集成在通信接口120中。
在操作的示例中,计算设备110被配置成根据OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥来处理与密钥相关联的输入值,以生成盲值。计算设备110还被配置成经由通信系统(诸如经由一个或多个网络段116)将盲值传输到与密钥管理系统(KMS)服务相关联的计算设备112和/或计算设备114。计算设备110还被配置成经由通信系统(诸如经由一个或多个网络段116)从与KMS服务相关联的计算设备112和/或计算设备114接收盲密钥。注意,盲密钥基于使用非故意伪随机函数(OPRF)秘密基于OPRF对盲值进行的处理。在一些示例中,计算设备112和/或计算设备114被配置成使用OPRF秘密基于OPRF来处理盲值。然后,计算设备110被配置成根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥来处理盲密钥,以生成与输入值相关联的密钥。在一些示例中,计算设备110被配置成使用密钥来访问安全信息(例如,经由通信系统,诸如经由一个或多个网络段116,基于本地可用的和/或存储的安全信息,和/或其组合等)。这种安全信息可以是数据、密钥等和/或存储在可经由通信系统(诸如经由一个或多个网络段116)访问的一个或多个其他计算设备内的其他信息。
图1C是示出根据本发明各种实施例的被配置成在一个或多个通信系统内操作的计算设备的实施例103的图。计算设备110-1包括通信接口120和处理电路130。通信接口120包括发送器122和接收器124的功能性,以支持与通信系统内的一个或多个其他设备的通信。计算设备110-1还可以包括存储器140,以存储包括由计算设备110-1生成的一个或多个信号的信息或经由一个或多个通信信道从其他设备(例如,计算设备112)接收的这种信息。例如,存储器140还可以包括并存储各种操作指令,以供处理电路130用于处理消息和/或其他接收到的信号以及生成包括本文描述的那些消息和/或信号(例如,图像和/或视频信号)的其他消息和/或其他信号。存储器140还可以存储包括可以由计算设备110-1生成的一种或多种类型的编码、一种或多种类型的符号映射、各种调制编码方案的级联等的信息,或者经由一个或多个通信信道从其他设备接收的这种信息。通信接口120支持去往和来自一个或多个其他设备(例如,计算设备112-1和/或其他计算设备)的通信。存储器140还可以存储包括根据本文描述的各个方面、实施例和/或示例及其等同物的一种或多种类型的视频和/或图像处理的信息。
通信接口120的操作可以由处理电路130引导,使得处理电路130经由通信接口120发送和接收信号(TX和RX)。一般而言,计算设备110-1能够支持与包括计算设备112-2的一个或多个通信系统内的一个或多个其他计算设备的通信。
计算设备110-1(例如,其可以是如参考图1B的计算设备110、112或114中的任何一个)经由通信介质与另一计算设备112-1(和/或任何数量的其他无线计算设备)通信。计算设备110-1包括通信接口120,以(例如,使用发送器122和接收器124)执行至少一个信号、符号、分组和/或帧等的发送和接收(注意,对分组或帧的一般引用可以互换地使用)。
一般而言,通信接口120被实施为执行模拟前端(analog front end,AFE)和/或物理层(physical layer,PHY)发送器、接收器和/或收发器的任何这种操作。这种操作的示例可包括各种操作中的任何一个或多个,包括频域与模拟或连续时域之间的转换(例如,诸如由数模转换器(digital to analog converter,DAC)和/或模数转换器(analog todigital converter,ADC)执行的操作)、包括缩放、滤波(例如,在数字或模拟域中)的增益调整、频率转换(例如,上变频和/或下变频至诸如计算设备110-1的组件中的一个或多个所操作的基带频率)、均衡、预均衡、度量生成、符号映射和/或解映射、自动增益控制(automatic gain control,AGC)操作、和/或可由计算设备内的AFE和/或PHY组件执行的任何其他操作。
在一些实施方式中,计算设备110-1还包括处理电路130和相关联的存储器140,以执行各种操作,包括解释被发送到计算设备112-1和/或从计算设备112-1和/或任何其他计算设备接收的至少一个信号、符号、分组和/或帧。计算设备110-1和112-1可以使用根据任何期望配置的至少一个集成电路或至少一个集成电路内的组件、模块等的组合来实施。此外,计算设备110和/或112可以各自包括用于无线地发送和/或接收至少一个分组或帧的一个或多个天线(例如,计算设备110-1可以包括m个天线,并且计算设备112-1可以包括n个天线,其中m和n是正整数)。
而且,在一些示例中,注意,处理电路130、通信接口120(包括其TX 122和/或RX124)和/或存储器140中的一个或多个可以在一个或多个“处理模块”、“处理电路”、”处理器”和/或“处理单元”或其等同物中实施。考虑一个示例,片上系统(system-on-a-chip,SOC)130a可以被实施为包括处理电路130、通信接口120(包括其TX 122和/或RX 124)和存储器140(例如,SOC 130a是其中包括多个组件的多功能、多模块集成电路)。考虑另一示例,处理存储器电路130b可以被实施为包括与处理电路130和存储器140两者类似的功能,而通信接口120是单独的电路(例如,处理存储器电路130b是执行处理电路和存储器的功能性并且耦合到通信接口120并且还与通信接口120交互的单个集成电路)。
甚至考虑另一示例,两个或更多个处理电路可以被实施为包括处理电路130、通信接口120(包括其TX 122和/或RX 124)和存储器140。在这种示例中,这种一个或多个“处理电路”(或一个或多个“处理器”)被配置成执行如本文所述的各种操作、功能、通信等。一般而言,计算设备110-1内所示的各种元件、组件等可以在任何数量的“处理模块”、“处理电路”、“处理器”和/或“处理单元”中实施(例如,1、2…,并且一般使用N个这种“处理模块”、“处理电路”、“处理器”和/或“处理单元”,其中N是大于或等于1的正整数)。
在一些示例中,计算设备110-1包括被配置成执行各种操作的处理电路130和通信接口120。在其他示例中,计算设备110-1包括被配置成执行各种操作的SOC 130a。甚至在其他示例中,计算设备110-1包括被配置成执行各种操作的处理存储器电路130b。通常,这种操作包括生成、发送等旨在用于一个或多个其他计算设备(例如,计算设备112-1)的信号,以及接收、处理等从一个或多个其他设备(例如,计算设备112-1)接收的其他信号。
在一些示例中,注意,耦合到处理电路130的通信接口120被配置成支持卫星通信系统、无线通信系统、有线通信系统、光纤通信系统和/或移动通信系统(和/或使用任何类型的通信介质或媒体实现的任何其他类型的通信系统)内的通信。由计算设备110-1生成和发送和/或接收和处理的任何信号可以经由这些类型的通信系统中的任何通信系统来通信传达。
注意,计算设备110-1可被实施为作为卫星通信设备、无线通信设备、有线通信设备、光纤通信设备或移动通信设备中的任何一个或多个来操作,并且可以在包括卫星通信系统、无线通信系统、有线通信系统、光纤通信系统或移动通信系统以及其他类型的通信系统的任何一个或多个通信系统内实施和/或操作。
在操作和实施方式的示例中,计算设备包括被配置成与通信网络接口和通信的通信接口120、存储操作指令的存储器140、以及耦合到通信接口和存储器的处理电路130。
处理电路130被配置成执行操作指令以执行各种功能、操作和处理(有时与通信接口120和/或存储器140协同)。在示例中,处理电路130被配置成根据OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥来处理与密钥相关联的输入值,以生成盲值。处理电路130然后被配置成经由通信接口120将盲值传输到与密钥管理系统(KMS)服务相关联的另一计算设备112-1。处理电路130被配置成经由通信接口120并且从与KMS服务相关联的计算设备112-1接收盲密钥。注意,盲密钥基于使用OPRF秘密基于OPRF对盲值进行的处理。在一些示例中,计算设备112-1被配置成使用OPRF秘密基于OPRF来处理盲值。处理电路130然后被配置成根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥处理盲密钥,以生成与输入值相关联的密钥。在一些示例中,计算设备110-1被配置成基于密钥来访问安全信息(例如,经由通信系统、基于本地可用的和/或存储的安全信息、和/或其组合等)。
图1D是示出根据本发明各种实施例的无线通信系统的实施例100的图。无线通信系统包括一个或多个基站和/或接入点150、无线通信设备160-166(例如,无线站(wirelessstation,STA))以及网络硬件组件156。无线通信设备160-166可以是膝上型计算机或平板计算机160、个人数字助理162、个人计算机164和/或蜂窝电话166(和/或任何其他类型的无线通信设备)。这种无线通信设备160-166的其他示例还可以或可替换地包括包含无线通信能力(和/或其他类型的通信功能,诸如有线通信功能、卫星通信功能、光纤通信功能等)的其他类型的设备。无线通信设备的示例可以包括无线智能电话、蜂窝电话、膝上型计算机、个人数字助理、平板电脑、个人计算机(PC)、工作站和/或视频游戏设备。
可以被实现为根据本文描述的各种示例、实施例、选项和/或它们的等同物等中的任一个操作的可能的设备的一些示例可以包括但不限于:家用电器、商用电器等,诸如冰箱、微波炉、加热器、加热系统、空调、照明控制系统和/或任何其他类型的电器等;诸如用于天然气服务、电气服务、水服务、互联网服务、有线和/或卫星电视服务和/或任何其他类型的计量目的等的仪表;可穿戴在用户或人身上的设备,包括手表、监视器,诸如监视活动水平、身体功能诸如心跳、呼吸、身体活动、身体运动或其缺乏等的那些监视器;医疗设备,包括静脉(IV)药物递送监测和/或控制设备、血液监测设备(例如,葡萄糖监测设备)和/或任何其他类型的医疗设备等;场所监控设备,诸如移动检测/监控设备、门关闭/微开检测/监控设备、安全/警报系统监控设备和/或任何其他类型的场所监控设备;多媒体设备,包括电视、计算机、音频回放设备、视频回放设备和/或任何其他类型的多媒体设备等;和/或通常包括无线通信能力、功能、电路等的任何其他类型的设备。一般而言,被实施为支持无线通信的任何设备可以实施为根据本文描述的各种示例、实施例、选项和/或其等效物等中的任何一个来操作。
一个或多个基站(BS)或接入点(AP)150经由局域网连接152可操作地耦合到网络硬件156。网络硬件156可以是路由器、交换机、网桥、调制解调器、系统控制器等,其为通信系统提供广域网连接154。一个或多个基站或接入点150中的每一个具有相关联的天线或天线阵列,以与其区域中的无线通信设备进行通信。通常,无线通信设备向特定基站或接入点150注册以从通信系统接收服务。对于直接连接(即,点对点通信),无线通信设备经由所分配的信道直接通信。
各种无线通信设备(wireless communication device,WDEV)160-166和一个或多个BS或AP 150中的任何一个可以包括处理电路和/或通信接口,以支持与无线通信设备160-166和一个或多个BS或AP150中的任何其他设备的通信。在操作的示例中,在设备之一(例如,WDEV 160-166和一个或多个BS或AP 150中的任何一个)内实施的处理电路和/或通信接口被配置成处理从设备中的另一个(例如,WDEV 160-166和一个或多个BS或AP 150中的任何其他一个)接收的至少一个信号和/或生成将被发送到该设备中的另一个的至少一个信号。
注意,对通信设备的一般引用,诸如对图1D中的无线通信设备(例如,WDEV)160-166和一个或多个BS或AP 150或者任何其他通信设备和/或无线通信设备的引用,在本文中可以可替换地使用术语“设备”(例如,当引用“无线通信设备”或“WDEV”时的“设备”)来进行。通常,这些对设备的一般引用或指定可以互换使用。
各种设备(WDEV160-166和一个或多个BS或AP 150)中的任何一个的处理电路和/或通信接口可以被配置成支持与各种设备(WDEV160-166和一个或多个BS或AP 150)中的另一个的通信。这种通信可以是设备间的单向或双向通信。而且,这种通信可以在一个时间在设备之间是单向的,而在另一个时间在那些设备之间是双向的。
在示例中,设备(例如,WDEV160-166和一个或多个BS或AP 150中的任何一个)包括通信接口和/或处理电路(以及可能的其他可能的电路、组件、元件等),以支持与(一个或多个)其他设备的通信,并且生成和处理用于这种通信的信号。通信接口和/或处理电路操作为执行各种操作和功能来实现这种通信(例如,通信接口和处理电路可以被配置成彼此结合地、协同地、彼此依赖地等执行某些操作,以及彼此分离地、独立地等执行其他操作)。在一些示例中,这种处理电路包括执行如本文所述的这种操作的所有能力、功能和/或电路等。在一些其他示例中,这种通信接口包括执行如本文所述的这种操作的所有能力、功能和/或电路等。甚至在其他示例中,这种处理电路和通信接口包括至少部分地彼此协同地执行如本文中描述的这种操作的所有能力、功能和/或电路等。
在实施方式和操作的示例中,无线通信设备(例如,WDEV160-166和一个或多个BS或AP150中的任何一个)包括处理电路,以支持与一个或多个其他无线通信设备(例如,WDEV160-166和一个或多个BS或AP 150中的任何其他)的通信。例如,这种处理电路被配置成执行处理操作以及通信接口相关功能。这种处理电路可以实施为单个集成电路、片上系统等。
在实施方式和操作的另一示例中,无线通信设备(例如,WDEV160-166和一个或多个BS或AP 150中的任何一个)包括处理电路、通信接口和存储器,其被配置成支持与一个或多个其他无线通信设备(例如,WDEV160-166和一个或多个BS或AP 150中的任何另一个)的通信。
在操作和实施方式的示例中,WDEV160被配置成根据OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥来处理与密钥相关联的输入值,以生成盲值。WDEV160然后被配置成将盲值传输到与密钥管理系统(KMS)服务相关联的另一计算设备(例如,WDEV164和/或经由网络硬件156的一些其他计算设备)。WDEV160被配置成从与KMS服务相关联的其他计算设备接收盲密钥。注意,盲密钥基于使用OPRF秘密基于OPRF对盲值进行的处理。在一些示例中,该计算设备被配置成使用OPRF秘密基于OPRF来处理盲值。然后,WDEV160被配置成根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥来处理盲密钥,以生成与输入值相关联的密钥。在一些示例中,WDEV160被配置成基于密钥(例如,经由通信系统、基于本地可用的和/或存储的安全信息、和/或其组合等)来访问安全信息。
根据密钥管理系统(KMS),并且特别地根据基于云的系统操作的KMS,可能存在这样的情况:当在云中存储正常数据时,并且特别地当涉及存储用于访问该数据的加密密钥时,担心、不确定性、信心的缺乏和/或信任的缺乏等被放大。例如,可以被加密的一些数据可以包括个人信息、健康数据、财务数据、战略计划、竞争信息、交易秘密、比特币钱包、客户列表和/或其他类型的数据中的任何一个或多个。当这种数据是私有的、秘密的或高价值的时,对其进行加密。这样,被加密数据的安全性直接与用于访问该数据的密钥的安全性相关,并且至少部分地取决于该安全性。
图2A是示出了根据本发明各种实施例的支持KMS的一个或多个通信系统的另一实施例201的图。该图示出了计算设备110,其被配置成与均在相同环境(例如,可以被实施为云计算环境、云提供商等的一个或多个网络段116)内实施的云存储服务210和云密钥管理系统(KMS)服务220交互。云存储服务210可包括各种类型的一个或多个安全信息210a(例如,密钥保护数据、打包密钥等和/或其他安全信息)。云KMS服务220可以包括一个或多个密钥220a,其可以由与一个或多个计算设备相关联的一个或多个用户中的一个用户使用,以访问各种类型的一个或多个安全信息210a。
在该实施方式中,当相同的云提供商用于云存储服务210和云KMS服务220两者时,恶意内部人员或腐败的云提供商可以访问租户数据。这样,为了确保数据的安全性,信任需求被最大化。例如,针对两种服务(例如,云存储服务210和云KMS服务220)使用相同提供商的客户需要他们对该提供商及其过程具有完全的信任度。
图2B是示出了根据本发明各种实施例的支持KMS的一个或多个通信系统的另一实施例202的图。该图示出了被配置成与在不同环境内分离实施的云存储服务210和云KMS服务220(例如,基于可以被实施为第一云计算环境、云提供商等的一个或多个网络分段116实施的云存储服务210,以及基于可以被实施为第二云计算环境、云提供商等的一个或多个网络分段116a实施的KMS服务220)交互的计算设备110。类似于如上所述,云存储服务210可以包括各种类型的一个或多个安全信息210a(例如,密钥保护数据、打包密钥等和/或其他安全信息),并且云KMS服务220可以包括一个或多个密钥220a,其可以由与一个或多个计算设备相关联的一个或多个用户使用以访问各种类型的一个或多个安全信息210a。
在该实施方式中,当两个分离且不同的云提供商分别用于云存储服务210和云KMS服务220时,整个系统可能具有更高的复杂度,并且可能存在不兼容的应用程序接口(Application Program Interface,API)。这样,可能出现某些互操作性问题和其他问题。例如,注意,虽然客户不一定需要完全信任任何一个特定的提供商,但是这种实施方式可能不幸地引入了许多互操作性问题。例如,用于在两个服务之间接口的API和库可能不兼容。而且,诸如“服务器侧加密”(Server Side Encryption,SSE)的功能在这样的实施方式中可能根本不工作。
图3A是示出了根据本发明各种实施例的支持KMS的一个或多个通信系统的另一实施例301的图。该图示出了被配置成与云存储服务310和可以在租户场所330处实施的内部KMS服务320a交互的计算设备110。例如,租户场所330可以位于与计算设备110远程的位置,并且可以经由可以被实施为云计算环境、云提供商等的一个或多个网络分段116来访问。类似于上面关于其他实施例和示例所描述的,云存储服务310可以包括各种类型的一个或多个安全信息310a(例如,密钥保护数据、打包密钥等和/或其他安全信息),并且内部KMS服务320可以包括一个或多个密钥320b,其可以由与一个或多个计算设备相关联的一个或多个用户使用以访问各种类型的一个或多个安全信息310a。
在该实施方式中,当租户使用云存储(例如,云存储服务310)与内部KMS服务320一起操作时,客户不必完全信任云提供商,但是这种实施方式可能需要大量的处理、专门技术和费用来管理个人自己的KMS。这种实施方式方式可能非常昂贵。
例如,该图示出了云的用户的实施方式,该云的用户可能对云提供商保护其一个或多个密钥的安全性几乎不信任。例如,这种用户可能信任云存储提供商存储加密数据,但用户不信任持有其一个或多个密钥的云提供商。在该实施方式中,虽然用户不必信任云提供商,但该实施方式可能由于各种原因而有问题,包括非常昂贵、需要稀有的专业知识、专用装备、需要(一个或多个)灾难恢复计划、能信任的员工以及严格的策略。若没有这些,在实践中,与云KMS相比,其很可能不太可靠或不太安全。
许多基于云的技术的KMS的这种实施方式由于各种原因而受到影响,包括要求在单个提供商中投入相当大的信任和/或要求维护个人自己的KMS基础设施。本公开解决了现有技术中的这些缺陷和问题,包括提供不需要对云提供商的任何信任并且在租户场所中也不需要KMS基础设施的KMS。如本文所提出的这种新颖的解决方案最小化了对KMS服务提供商的任何需求的信任。例如,一个或多个密钥从不离开客户场所,并且KMS服务提供商不会看到那些一个或多个密钥。而且,没有人能够在不向KMS提供商认证的情况下访问该一个或多个密钥。另外,如本文所提出的这种新颖的解决方案提供了量子后(post-quantum)安全性,因为即使随着执行几乎无限计算操作的量子能力的出现,如本文所提出的新颖的实施方式也不受可能以黑客攻击、侵入性过程等为目标的计算技术的这种进步的影响。例如,如本文所呈现的新颖的密钥访问协议方法不受具有无限计算资源的攻击者的影响,包括具有量子计算机的攻击者。
而且,在本文提出的这种新颖的解决方案中,密钥的安全性不依赖于进行通信的一个或多个通信信道的安全性。例如,一些现有技术方法基于传输层安全(TransportLayer Security,TLS)和/或其他手段来操作以实现安全通信。
另外,如本文所呈现的这样的新颖解决方案提供了持久的安全性,因为一个或多个密钥保持安全。例如,即使在KMS服务提供商被完全破坏的不幸事件中,所述一个或多个密钥也保持完全安全。注意,一些是方式可以被实施为需要不可预测的密钥标识符(id)(例如,使用“密钥id作为第二因素”)。本文所呈现的这种新颖的解决方案避免了在使用或暴露用户希望KMS服务提供商存储的一个或多个密钥方面对KMS服务提供商具有完全和彻底的信任的要求。用户仍然可以寻求确实提供高度可用/可靠系统的KMS服务提供商,但是对于信任KMS服务提供商来说,消除了在使用或暴露多个密钥之一的方面对该KMS服务提供商的完全信任。
在云KMS服务提供商的租户信任具有他的密钥的提供商的实施方式中,租户可以通过存储它们以供稍后检索或者解包它们来操作。在这两种情况下,云KMS服务提供商将看到租户的密钥。如本文所呈现的这种新颖的解决方案提供了云KMS服务提供商将永远看不到租户的密钥的手段。
图3B是示出根据本发明各种实施例的支持基于不经意伪随机函数(OPRF)的KMS的一个或多个通信系统的实施例302的图。OPRF使得租户能够从云KMS提供商获得密钥。不经意性的属性确保提供商在密码学上、数学上和可证明地不能看到或确定密钥。关于该图,注意,其中所描绘的“+”和“-”运算本身不是算术加法和减法。这些运算可以是素数幂模运算、或在椭圆曲线上的乘法、或一些其他运算。
考虑OPRF,OPRF允许双方对函数Y求值,如下:
Y=OPRF(K,X)
OPRF秘密K仅为“Bob”所知;Alice不能确定它。
输出Y和输入X仅为“Alice”所知;Bob也不能确定。
不经意的PRF使得能够实现理想的云KMS:
租户使用“X”作为“密钥id”以及“Y”作为密钥(DEK或KEK)
OPRF保证提供商完全不知道密钥
提供商持有OPRF秘密:“K”,作为“CRK”起作用
OPRF可以看作是针对盲值(例如,在同态加密的密文上)发生的密钥导出。注意,本文中关于使用同态加密执行的OPRF盲化操作(以及使用同态解密执行的OPRF去盲操作)描述了某些示例,通常,可以使用任何OPRF盲化/OPRF去盲操作,使得执行OPRF盲化/OPRF去盲操作的过程对客户端(例如,用户、诸如“Alice”而不是“Bob”的计算设备110)已知。这种OPRF盲化/OPRF去盲操作的一个示例包括同态加密/同态解密。然而,通常,任何函数可以被执行OPRF盲化/OPRF去盲操作使用,以生成与KMS服务(例如,服务器/KMS服务121(“Bob”))相关联的其他计算设备未知的盲值。例如,输入值的任何期望的函数或映射以生成未知的输入值(对于与诸如服务器/KMS服务121(“Bob”)的KMS服务相关联的其他计算设备是未知的)。然后,客户端(例如,用户、计算设备110)基于在该实例中执行的OPRF盲化确定如何执行适当的OPRF去盲。
关于使用同态加密执行的这种OPRF盲化操作,客户端(例如,用户、计算设备110)将同态一次性(one-time-pad)加密密钥应用于输入值。例如,客户端从它想要从中导出密钥的某个输入值开始。例如,该输入值可以是密钥id。然后,客户端利用一次性加密密钥(例如,同态一次性加密)对输入值进行加密。一次性加密密钥仅为该密钥恢复而随机生成,并且在之后被丢弃或可以被丢弃(例如,不保存以供将来使用)。
这是使用同态加密并且一次性来执行的OPRF盲化操作。因此,加密(或盲化)结果揭示了关于输入的零信息。然后,该密文(盲值)被传送到服务器/KMS服务121。服务器/KMS服务121使用OPRF密钥(例如,在一些示例中的客户根密钥(CRK),OPRF秘密)对该密文执行密钥导出函数,并将其返回给用户。
由于加密的同态属性,当客户端(例如,用户、计算设备110)对来自服务器/KMS服务121的结果解密时,发现其获得与服务器直接针对明文值执行其密钥导出函数所获得的值相同的值。这个结果被认为是密钥。所得密钥等于应用于输入的密钥导出函数(keyderivation function,KDF)(例如,用于生成密钥的确定性函数)。
注意,即使客户端已经选择了不同的随机盲化密钥,但是注意,将被生成的结果密钥也将是相同的。实际上,所有可能的盲值对于任何可能的输入值都是可能的。这就是为什么服务器和任何窃听者虽然看到有内容通过电线、网络段、云等到达服务器/KMS服务121却没有得到关于输入值或导出密钥的信息的原因。
注意,这种同态加密形式是一种非常有效和实用的特殊情况形式。还注意,硬件安全模块(Hardware Security Module,HSM)被引用为能够每秒执行数万次这种操作。CPU可以每秒执行几十万次以上这种操作。
而且,注意,密钥是从与“OPRF密钥”(例如,OPRF秘密)组合的“输入值”导出的。还注意,OPRF密钥的持有者、服务器/KMS服务121从不看到输入值,也从不看到结果密钥。这通过“盲化”过程来强制实施,其中输入和输出都以信息理论(量子安全)方式盲化,使得输入和输出对于KMS服务、黑客或NSA都产生关于密钥的零信息。以下步骤可以视为在客户端(例如,用户、计算设备110)和服务器/KMS服务121之间实现该过程和交换:
1.租户生成随机密钥:R
2.租户使用随机密钥对“密钥id”进行加密:ER{key-id})
3.租户将加密结果发送到云KMS提供商
4.云KMS提供商利用其自己的密钥来加密结果:P
5.云KMS提供商将结果返回给租户:EP{ER{key-id}
6.租户用他的随机密钥R对其解密以得到:EP{key-id})
在一些示例中,计算设备110(例如,诸如与用户相关联的客户端)被配置成根据同态加密基于盲化密钥来处理与密钥相关联的输入值,以生成盲值。计算设备被配置成经由通信系统将盲值传输到与密钥管理系统(KMS)服务相关联的另一计算设备(服务器/KMS服务121)。计算设备被配置成经由通信系统并且从与KMS服务相关联的其他计算设备(服务器/KMS服务121)接收盲密钥。盲密钥基于使用OPRF秘密基于OPRF对盲值进行的处理。例如,服务器/KMS服务121被配置成使用OPRF秘密基于OPRF对盲值进行处理。计算设备110然后被配置成根据同态解密基于盲化密钥来处理盲密钥,以生成与输入值相关联的密钥。在一些示例中,计算设备110还被配置成经由通信系统访问基于密钥的安全信息。
在操作和实施方式的示例中,一旦生成密钥,计算设备110就使用该密钥来访问存储在基于云的技术内的安全信息,该基于云的技术基于一个或多个网络段或经由一个或多个网络段可访问。例如,计算设备110请求由云提供商存储的加密数据,接收由该云提供商存储的该加密数据,并且然后使用密钥对该加密数据解密。
可以基于考虑伪随机函数(PRF)(例如,其不是不经意的)来进一步理解不经意的伪随机函数(OPRF)。伪随机函数(PRF)是取两个输入的函数:
1.PRF密钥“K”;和
2.任意消息“M”。
根据这两个输入,PRF返回“伪随机”输出。这是在统计上不能与随机输出区分的输出。而且,在不知道K的情况下,输出被预测是不可行的。这两个属性使得PRF非常适合于密钥导出,也就是说,从某一顶层“根”密钥创建子密钥。例如,可以从PRF计算出无限数量的子密钥如下:
sub-key_1=PRF(K,“1”),sub-key_2=PRF(K,“2”),sub-key_3=PRF(K,“3”),...,sub-key_n=PRF(K,“n”)
这可以简化密钥管理,因为在支持实际上无限数量的导出密钥的同时,只需要持久保存单个顶层或根密钥。
在密钥管理系统(KMS)中,KMS的用户可以与KMS交互,以获得加密密钥。KMS请求者(例如,计算设备、诸如与计算设备相关联的用户等)和KMS单元(例如,另一计算设备、KMS服务等)之间的操作的示例如下:
1.寻求访问密钥的请求者向KMS单元传送密钥访问请求(KAR),所述请求可以包括以下各项中的任何一个或多个:
a.请求者标识符;
b.根密钥标识符;
c.子密钥标识符;
d.认证信息(例如,诸如口令、令牌、对质询(challenge)的响应、签名、数字证书等凭证);和/或
e.对KMS单元的质询(例如,对于KMS单元,向请求者证明其身份或操作的正确性)。
2.KMS单元执行对请求的验证,包括以下各项中的任何一个或多个:
a.确保凭证对于请求者标识符是正确的;和/或
b.确保请求者被授权访问从给定根密钥标识符导出的密钥。
3.如果没有授权,则KMS单元返回错误响应,并且可以创建故障的审核日志或采取其他校正动作。如果请求被授权,则KMS单元前进到下一步骤。
4.KMS单元通过使用适当的根密钥(在请求中指示的根密钥,或者通过从诸如请求者标识符的其他信息中推断出根密钥)与子密钥标识符一起计算子密钥来处理访问请求。例如,当使用PRF导出子密钥时,KMS单元可以将该子密钥S计算为S=PRF(根密钥、子密钥标识符)。KMS单元可以创建成功访问请求的审核日志。然后进行下一步骤。
5.如果请求者向KMS单元提供了质询,则KMS单元产生对质询的响应(例如,问题,以及与该问题有利地比较的该问题的响应)
6.KMS单元向请求者返回响应,包括子密钥和质询(如果生成了一个质询的话)
7.请求者验证对质询的响应(如果提供的话),并且如果它有效,则继续使用子密钥(例如,执行加密或解密操作)。
以这种方式使用PRF的一个缺点是,KMS单元学习了返回到请求者的所有子密钥,因为KMS单元计算PRF并且看到函数的输入和输出。这使得KMS服务成为系统中所有请求者所使用的所有密钥的中心折衷点。
本文所呈现的这种新颖的解决方案提供了应用被称为不经意伪随机函数(OPRF)的函数。这可以使得请求者能够从KMS安全地访问密钥,而KMS不能观察所请求和返回的密钥和/或子密钥。
OPRF如下工作。它采用两个输入:
1.OPRF密钥“K”(例如,OPRF秘密)
2.任意消息“M”(例如,密钥ID、标签、用户提供的标识符等)
根据这两个输入,OPRF还返回伪随机输出。然而,与PRF不同,OPRF由两方(例如,请求者和KMS)计算。第一方供应输入“M”,同时第二方供应OPRF密钥“K”。只有第一方接收(或能够学习)OPRF的输出。在计算过程中,第一方不了解关于“K”的任何信息。存在OPRF的多种实施方式,包括基于非对称加密算法、RSA、盲签名、Diffie-Hellman取幂、椭圆曲线标量乘法、同态加密等实施方式。OPRF操作的一般原理是第一方在传送第二方之前将输入消息“M”模糊或“盲化”成对第二方无意义的形式。然后,第二方用某种函数对输入进行操作,该函数取盲输入“B”和OPRF密钥“K”,来产生“盲输出”,该盲输出不是最终输出,而是从第二方传送到第一方。第一方知道原始输入如何被模糊,然后可确定如何从盲输出中撤销该操作的影响,并恢复OPRF输出。因为盲化的逆转是由第一方完成的,所以第二方从不学习OPRF输出。
将OPRF的属性和上述KMS的设计结合起来,这两者可以合并以形成KMS,与现有技术中提供的安全属性相比,KMS具有优越的安全属性。这是通过用OPRF替换PRF,并且通过使请求者执行请求的一些附加预处理和响应的一些后处理来完成的。基于OPRF与KMS进行交互的工作流程可以如下:
1.请求者通过使用由KMS单元使用的用于OPRF的适当的盲函数,来模糊对密钥导出函数的输入之一,例如子密钥标识符。这产生盲输入“B”。在一些示例中,盲化密钥的大小与向其提供的输入的大小相同。例如,如果输入的长度是X位或字节,则盲密钥的长度是X位或字节(其中X是正整数)。
2.寻求访问密钥的请求者向KMS单元传送不经意密钥访问请求(Oblivious KeyAccess Request,OKAR),该请求可以包括以下各项中的任何一个或多个:
a.请求者标识符;
b.根密钥标识符(例如,引用特定OPRF密钥的附加信息,例如,特定OPRF秘密);
c.盲输入B(例如,B=盲化函数(子密钥标识符));
d.认证信息(例如,诸如口令、令牌、对质询的响应、签名、数字证书等凭证);和/或
e.对KMS单元的质询(对于KMS单元,证明其身份或操作的正确性)
3.KMS单元执行对请求的验证,包括以下各项中的任何一个或多个:
a.确保凭证对于请求者标识符是正确的;和/或
b.确保请求者被授权访问从给定根密钥标识符导出的密钥。
4.如果没有被授权,则KMS单元可以被配置成返回错误响应,并且可以创建故障的审核日志或采取其他校正动作。如果请求被授权,则KMS单元前进到下一步骤。
5.KMS单元通过使用适当的根密钥(在请求中指示的根密钥,或者通过从诸如请求者标识符的其他信息中推断出根密钥)连同盲输入一起计算盲子密钥,来处理访问请求。例如,当使用OPRF导出盲子密钥时,KMS单元可以将盲子密钥S计算为S=OPRF(根密钥,B)。KMS单元可以创建成功访问请求的审核日志。然后进行下一步骤。
6.如果请求者向KMS单元提供了质询,则KMS单元生成对质询的响应。
7.KMS单元向请求者返回响应,包括盲子密钥和质询(如果生成了质询的话)。
8.请求者验证对质询的响应(如果提供了质询的话),并且如果它有效,则继续使用适当的函数来解盲该子密钥,以便对盲子密钥去模糊,并且恢复OPRF输出。
9.请求者使用OPRF输出作为密钥或导出密钥,然后可以用该密钥执行加密或解密操作。
以这种方式,KMS单元不再看到密钥,并且如果KMS单元不能确定、预测或猜测原始的未被盲化的子密钥标识符,则它不能确定请求者接收的任何密钥。
图4A是示出根据本发明各种实施例的支持具有不经意性的密钥保护的一个或多个通信系统的实施例401的图。服务410(例如,云存储服务,诸如存储加密数据410a和数据加密密钥(DEK)标识符(ID)410b的云存储服务)和密钥保护实例410(例如,硬件安全模块(HSM)420b,诸如存储一个或多个密钥420a的硬件安全模块)。服务410盲化DEK ID以生成B(DEK_ID)。然后,服务410将getDEK请求(getDEK(CDK_ID,B(DEK_ID)))传输到密钥保护实例410。密钥保护实例410处理getDEK请求(getDEK(CDK_ID,B(DEK_ID)))并返回盲密钥B(DEK)。
在该实施方式中,不存在关于通过服务410(例如,云存储服务)和密钥保护实例410(例如,硬件安全模块(HSM))之间的交换而暴露的数据加密密钥(DEK)的信息。这种不经意实施的体系架构的安全性与其中各种组件和信号在传输期间容易被截取的现有技术方法不同,它对具有无限制计算能力的对手保持安全,因为没有有用信息通过交换被揭示。在该过程中没有信息容易被截取。
利用不经意性的后量子安全性,交换的消息不会向攻击者揭示任何信息。注意,即使在被实施时,给定由如本文描述的新颖的实现方式提供的安全性,传输层安全性(TLS)的机密性也变得多余。假设密钥id对攻击者是未知的,则被破坏的不经意密钥保护实例420将不会危及数据密钥。数据密钥(数据加密密钥(DEK))仅在恢复密钥的服务或用户的边界内存在且可用。服务侧的唯一变化是,系统将简单地存储DEK ID,而不是存储打包的DEK。
图4B是示出根据本发明各种实施例的支持硬件安全模块(HSM)集成的一个或多个通信系统的实施例402的图。支持根据OPRF使用的数学的已经实施的HSM可以容易地被配置成支持如本文所呈现的新颖的实施方式。例如,基于椭圆曲线运算(例如,EC Diffie-Hellman)的这种数学可用于支持如本文所述的这种OPRF。
例如,当OPRF的数学完全由现有HSM支持时,客户根密钥(CRK)可以一直保持在HSM内,并且将永远不会被暴露给主机的存储器。
参考该图,客户端430基于数据加密密钥(DEK)标识符(ID)(DEK_ID)来支持应用API DeriveKey运算,该DEK标识符(ID)经历盲化以生成盲数据加密密钥B(DEK)标识符,该盲加密密钥B(DEK)标识符经由服务410(例如,云存储服务)基于服务侧HTTP REST API经由密钥保护实例420(例如,HSM)来处理,如下:
Blinded(DEK)或B(DEK)=DeriveKey(CRK_ID,Blinded(DEK_ID))
该方法采用两个输入,即客户根密钥标识符CRK_ID和盲数据加密密钥标识符DEKID)。它返回盲数据加密密钥,即Blinded(DEK)或B(DEK)。
关于客户端侧SDK API,返回数据加密密钥(DEK)如下:
DEK=DeriveKey(CRK_ID,DEK_ID)
该方法采用CRK id和DEK id。软件开发工具包(SDK)代码在内部处理所有的盲化和去盲。它返回DEK。
在一些示例中,为了获得不经意性作为属性,在调用服务器的API之前可能需要一些客户端侧预处理,诸如随后是服务器的结果的一些后处理。例如,这可以被完成以执行盲化和去盲化。客户端-SDK将向最终用户隐藏所有这些,并呈现基本接口,基本接口采用CRK和DEK ID并返回对应的DEK。
另外,注意,也可以支持多租户,使得不同的租户供应对应于不同OPRF密钥(例如,不同OPRF秘密)的不同CRK_ID。
还注意,可以如下使用替代的、可选的和/或附加的REST(RESTful,(代表性状态转移))API:
(CRVK-Certificate)=GetRootVerificationKey(CRK_ID)
该方法采用CRK ID并返回对应于CRK的“客户根验证密钥”(CRVK)的证书。
证书用数字签名将CRKV绑定到CRK_ID
CRVK可用于证明返回的密钥被正确地计算
Blinded(DEK),Response=DeriveAndVerifyKey(CRK_ID,Blinded(DEK_ID),Challenge)
该方法采用三个输入,CRK ID、盲DEK ID和专门制作的“质询”。它使得客户端能够证明该盲密钥是正确计算的并且使用正确的CRK。这防止了MITM(“中间人”,例如中间设备等)攻击、服务器错误、缺陷和存储器损坏。通常,这种损坏将导致数据丢失,诸如基于使用坏密钥的加密。还注意,本文所呈现的这种新颖的解决方案可以允许客户端验证KMS提供了正确的密钥。
图4C是示出根据本发明各个实施例的可以根据KMS使用的密钥层级的实施例403的图。该图包括层级,该层级包括在顶部父级别的根密钥、然后是更低子级别的开发、销售和运营、然后是在低于开发的子级别的路线图和销售、在低于销售的子级别的客户和引导、以及在低于运营的子级别的雇员名单。所述层级中的每一相应更低层级基于由与一个或多个更上层级相关联的密钥加密的任何更低的层级。这实现了层级的商业案例,例如,“根密钥”加密“开发密钥”,“开发密钥”加密“路线图密钥”。又例如,“根密钥”加密“销售密钥”,“销售密钥”加密“引导密钥"。对父级别密钥的访问授权对更低级别子密钥的访问。注意,仅知道不直接在该谱系中的密钥不允许访问不在该谱系中的其他密钥。例如,“开发密钥”将不允许访问“雇员名单”。
注意,实施密钥的层级需要多个级别的打包。如果层级较深,则这可能潜在地引入性能和缩放的问题。对于层级中的每个深度级别,KMS可能需要从数据库导入另一密钥,并且执行另一HSM操作。注意,本文描述的关于服务和操作KMS的这种新颖的解决方案可以应用于并且适用于任何类型的密钥层级,包括其中仅包括一个级别或其中包括N个级别(其中N是大于或等于2的正整数)的系统。
图5是示出根据本发明各种实施例的由一个或多个计算设备执行的方法500的实施例的示图。方法500以步骤510开始,其中根据OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥来处理与密钥相关联的输入值,以生成盲值。方法500以步骤520继续,其中将盲值传输(例如,经由被配置成与通信系统接口和通信的计算设备的接口)到与密钥管理系统(KMS)服务相关联的另一计算设备。
然后,方法500以步骤530操作,其中接收(例如,经由接口和经由通信系统,以及从与KMS服务相关联的其他计算设备接收)盲密钥。注意,盲密钥基于使用非经意伪随机函数(OPRF)秘密基于OPRF对盲值进行的处理。然后,方法500以步骤540继续,其中根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥来处理盲密钥,以生成与输入值相关联的密钥。
在一些示例中,方法500以步骤550操作,其中基于密钥访问(例如,经由接口和经由通信系统、经由通信系统、基于本地可用和/或存储的安全信息和/或其组合等)安全信息。例如,安全信息可以包括受密钥保护的安全数据或被加密的另一密钥(例如,打包密钥)。
在一些示例中,输入值对于其他计算设备是未知的。此外,在某些特定示例中,输入值包括与密钥相关联的密钥标识符。此外,在一些示例中,密钥对于其他计算设备是未知的。另外,在某些特定示例中,密钥包括数据加密密钥(DEK)或密钥加密密钥(KEK)。注意,OPRF秘密对于计算设备是未知的,并且基于与计算设备相关联的客户根密钥(CRK)。
对于诸如这里所述的使用OPRF的解决方案,注意,伪随机函数和不经意伪随机函数的输出可以是不可控制的,并且表现为完全随机。在一些示例中,对于需要特定结构、格式或属性的密钥类型(例如,“结构化密钥”),这可能存在问题。例如,RSA(Rivest-Shamir-Adleman)密钥由一组彼此具有特定关系的数字构成。类似地,椭圆曲线密钥由与其相关联的曲线所定义的特定范围上的数字构成。不保证OPRF的输出产生与密钥的期望属性或所需结构相匹配的输出。为了支持具有定义的结构化密钥,基于OPRF的密钥管理系统可以扩展到支持如下所述的结构化密钥。
对于由基于OPRF的密钥管理系统管理的每个结构化密钥,密钥管理系统(KMS)将保持:
1.结构化密钥参数(密钥类型和算法(RSA、DH、ElGamal、椭圆曲线等)、密钥大小(256位、512位、1024位、2048位等)、模数、生成器、曲线参数中的一个或多个)
2.生成过程(用于从OPRF的输出、结构化密钥参数以及可选地加密参数(如果存在的话)产生结构化密钥的确定性算法)。
3.可选地:加密参数(可以包含秘密信息或在可以从OPRF输出产生的密钥下加密的参数)。
在从基于OPRF的KMS访问结构化密钥时,密钥管理系统将返回OPRF的盲输出(其是伪随机的)以及结构化密钥参数、生成过程和可选地加密的参数。密钥的请求者使用由KMS返回的值来产生结构化密钥,如下:
1.请求者获得OPRF的输出(例如,通过对从KMS返回的被盲化的OPRF输出进行去盲)
2.请求者根据以下各项确定完整的参数集:
a.结构化关键参数;和/或
b.当加密参数返回时,通过进一步从OPRF输出中导出密钥来解密加密参数以获得解密参数
3.使用完整的参数集以及OPRF输出,在返回的“生成过程”之后产生结构化密钥。
生成过程可以是非常直接的事情,诸如将OPRF输出扩展到特定长度(例如,使用掩码生成函数),然后特定于Diffie-Hellman或椭圆曲线参数的素数模取结果模,或者它可以是更复杂的事情,诸如使用OPRF输出来为伪随机数发生成器(pseudorandom numbergenerator,PRNG)播种种子,使用PRNG生成两个大素数,并且使用这两个大素数生成RSA模,然后根据RSA模和大素数生成RSA密钥对。然而,注意,像这样的过程可能是资源密集的,因为生成RSA密钥和其他结构化密钥可能是昂贵且耗时的。对于这些情况,利用加密参数可能更有效。例如,加密参数可以是从中可以导出RSA密钥的两个大素数,或者它甚至可以是结构化密钥本身。在这种情况下,生成过程可以指定如何从OPRF输出中导出对称加密密钥,然后使用该密钥来解密加密参数,并且从这些加密参数中产生结构化密钥。
图6是示出根据本发明各种实施例的由一个或多个计算设备执行的方法600的另一实施例的图。方法600以步骤610开始,其中根据OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥来处理与非对称密钥对的第一密钥或第二密钥相关联的输入值,以生成盲值。方法600以步骤620继续,其中将盲值传输(例如,经由被配置成与通信系统接口和通信的计算设备的接口)到与密钥管理系统(KMS)服务相关联的另一计算设备。
方法600以步骤630开始,其中接收(例如,经由通信系统并且从其他计算设备)与KMS服务相关联的盲密钥、结构化密钥参数和确定性函数,该确定性函数指定非对称密钥对中的第一密钥或第二密钥的生成。
方法600以步骤638继续,其中基于结构化密钥参数和确定性函数处理盲密钥以生成另一盲密钥,该确定性函数指定非对称密钥对中的第一密钥或第二密钥的生成。然后,方法600以步骤640操作,其中根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥来处理其他盲密钥,以生成与输入值相关联的非对称密钥对中的第一密钥或第二密钥。
在一些示例中,方法600然后以步骤650操作,其中基于密钥访问(例如,经由接口和经由通信系统、基于本地可用信息和/或其组合等)安全信息。例如,安全信息可以包括受密钥保护的安全数据或被加密的另一密钥(例如,打包密钥)。
图7是示出根据本发明各种实施例的由一个或多个计算设备执行的方法700的另一实施例的图。方法700以步骤710开始,其中根据OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于盲化密钥来处理与非对称密钥对中的第一密钥或第二密钥相关联的输入值,以生成盲值。方法700以步骤720继续,其中将盲值传输(例如,经由被配置成与通信系统接口和通信的计算设备的接口)到与密钥管理系统(KMS)服务相关联的另一计算设备。
方法700以步骤730开始,其中接收(例如,经由通信系统并且从其他计算设备)与KMS服务相关联的盲密钥、结构化密钥参数和确定性函数,该确定性函数指定非对称密钥对中的第一密钥或第二密钥的生成。
方法700以步骤732操作,其中处理盲密钥以生成另一密钥。方法700以步骤734操作,其中根据解密基于其他密钥来处理加密的结构化密钥参数,以生成结构化密钥参数。
方法700以步骤738继续,其中基于结构化密钥参数和确定性函数来处理盲密钥以生成另一盲密钥,该确定性函数指定非对称密钥对的第一密钥或第二密钥的生成。然后,方法700以步骤740操作,其中根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于盲化密钥来处理其他盲密钥,以生成与输入值相关联的非对称密钥对中的第一密钥或第二密钥。
在一些示例中,方法700然后以步骤750操作,其中基于密钥访问(例如,经由接口和经由通信系统、基于本地可用信息和/或其组合等)安全信息。例如,安全信息可以包括受密钥保护的安全数据或被加密的另一密钥(例如,打包密钥)。这可以涉及使用密钥处理安全信息。例如,可以基于密钥访问安全信息(例如,诸如安全信息被远程地存储在通信系统内的一个或多个其他设备中并且经由接口和经由通信系统来访问该安全信息)。可替换地,这可以涉及使用密钥来加密数据,和/或使用密钥对加密数据进行解密。通常,可以根据与安全信息相关的操作使用密钥来进行各种操作中的任何操作。
困扰所有密钥管理系统的共同问题是所提供密钥的完整性和真实性问题。也就是说,如果请求者从密钥管理系统获得密钥,则请求者可以如何确定获得的密钥确实是正确的密钥。这是一个关键问题,因为如果无效密钥被返回并被请求者使用,则它可能导致数据丢失。例如,如果请求者用无效密钥加密数据,并且如果将来请求者不能获得该无效密钥,则用该密钥加密的任何数据都可能是不可恢复的。
然而,许多OPRF函数的数学运算能够实现一种验证形式,该验证形式可以以高可信度向请求者断言OPRF的输出对于所提供的输入的真实性和正确性,并且然后相应地,从OPRF输出导出的任何密钥可以被假定为合法的和真实的。这可以防止由基于OPRF的KMS提供的密钥材料的意外和有目的损坏。
用于验证从基于OPRF的KMS恢复的密钥的特定方法取决于底层OPRF。例如:当使用RSA盲签名实施OPRF时,基于OPRF的KMS维护RSA私钥,其用于计算盲化的OPRF输出。如果请求者知道KMS服务所使用的私钥的对应公钥,则在给定输入和公钥的情况下,请求者可以通过对输出执行RSA签名验证操作来验证盲化的或去盲的OPRF输出。另一方面,如果OPRF使用Diffie-Hellman求幂或椭圆曲线点乘来实施OPRF,则请求者可以(在知道对应的Diffie-Hellman或椭圆曲线公钥“g^x mod P”的情况下,为给定的密钥恢复操作构造“质询”。仅以可忽略的概率,基于OPRF的KMS服务才可以计算出请求者将接受为有效的、该质询的有效“响应”。当响应被确定为有效时,请求者可以以高的可信度断定正确地计算了OPRF输出)。
请求者的用于恢复密钥并验证其正确性的过程如下:
1.请求者确定由基于OPRF的KMS使用的OPRF“私钥”的对应“公钥”。
2.请求者使用某种方法来验证公钥是正确的,该方法诸如以下中的任何一个或多个:
a.从验证的数字证书中提取它;
b.从信任源获得它;和/或
c.通过安全或认证的信道接收它。
d.在将私有OPRF密钥传送到KMS之前,生成公共OPRF密钥和私有OPRF密钥两者,并存储该公钥。
3.请求者构造并向KMS传送不经意密钥访问请求(OKAR)(如在“在密钥管理系统中使用不经意伪随机函数”中所描述的)
4.如果使用能够直接使用OPRF公钥验证OPRF输出的OPRF,则请求者转到以下步骤7。
5.如果使用要求要生成“质询”并将其传送到KMS的OPRF,则请求者生成质询,并且将其包括在初始请求中(步骤3),或者使用质询值而不是OPRF输入值来传送单独的OKAR。
6.请求者确定对质询的响应是否与从步骤3的响应中获得的OPRF输入和OPRF输出有利地比较。
7.如果验证表明OPRF输出是正确的,则OPRF输出用于导出密钥,并且该密钥可以由请求者使用,否则采取校正动作(步骤8中)。
8.如果验证过程表明OPRF输出是不正确的,则采取校正动作。这些包括以下至少一个:
a.丢弃OPRF输出任何恢复的或导出的密钥;
b.执行恢复的另一尝试(可能针对不同的KMS单元);和/或
c.识别KMS服务中的哪个组件或子组件发生故障或引入不正确的值的操作。
图8是示出根据本发明各种实施例的用于由一个或多个计算设备执行的方法800的另一实施例的示图。方法800开始以步骤810开始,其中根据OPRF盲化操作(例如,同态加密、一个或多个其他盲化操作等)基于另一盲化密钥来处理与非对称密钥的公钥-私钥对中的私钥相关联的另一输入值,以生成包括不经意密钥访问请求(OKAR)的另一盲值。方法800以步骤820继续,其中将包括OKAR的另一盲值传输(例如,经由通信系统)到与KMS服务相关联的另一计算设备。
方法800然后以步骤830操作,其中(例如,经由通信系统并且从与KMS服务相关联的其他计算设备)接收另一盲密钥,注意,该另一盲密钥基于使用OPRF秘密基于OPRF对另一盲值进行的处理。
然后,方法800以步骤840继续,其中根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于其他盲化密钥来处理其他盲密钥,以生成与另一输入值相关联的非对称密钥的公钥-私钥对中的私钥。然后,方法800以步骤850操作,其中基于非对称密钥的公钥-私钥对中的公钥来处理非对称密钥的公钥-私钥对中的私钥,以验证非对称密钥的公钥-私钥对中的私钥的正确性。
图9是示出根据本发明各种实施例的由一个或多个计算设备执行的方法900的另一实施例的图。方法900开始于步骤910,其中根据OPRF盲化操作(例如同态加密、一个或多个其他盲化操作等)基于第一其他盲化密钥处理与非对称密钥的公钥-私钥对中的私钥相关联的输入值,以生成包括第一不经意密钥访问请求(OKAR)的第一其他盲值。方法900以步骤912继续,其中根据OPRF盲化操作(例如,同态加密、一个或多个另一盲化操作等)基于第二其他盲化密钥来处理质询值,以生成包括第二OKAR的第二其他盲值。
方法900以步骤920继续,其中将包括第一OKAR的第一其他盲值和包括第二OKAR的第二其他盲值传输(例如,经由接口和经由通信系统)到与KMS服务相关联的其他计算设备。
然后,方法900以步骤930操作,其中(例如,经由通信系统并且从与KMS服务相关联的其他计算设备)接收第一其他盲密钥。注意,第一其他盲密钥基于使用OPRF秘密基于OPRF对第一其他盲值进行的处理。
方法900还以步骤932操作,其中(例如,经由通信系统并且从与KMS服务相关联的其他计算设备)接收第二其他盲密钥。注意,第二其他盲密钥基于使用OPRF秘密基于OPRF对第二其他盲值进行的处理。
方法900以步骤942继续,其中根据OPRF去盲操作(例如,同态解密、一个或多个其他去盲操作等)基于第二其他盲化密钥来处理第二其他盲密钥,以生成来自其他计算设备的与质询值相关联的响应。方法900以步骤944继续,其中确定来自其他计算设备的与质询值相关联的响应是否与质询有利地比较。
基于确定来自其他计算设备的与质询值相关联的响应与质询值有利地比较(步骤946),方法900以步骤946的分支继续,其中根据OPRF去盲操作(例如,同态解密、一个或多个另一去盲操作等)基于第一其他盲化密钥处理第一其他盲密钥,以生成与另一输入值相关联的非对称密钥的公钥-私钥对的私钥。
可替换地,基于确定来自其他计算设备的与质询值相关联的响应与质询值不利地比较(步骤946),方法900继续并分支进行到结束或继续。
可替换地,基于确定来自其他计算设备的与质询值相关联的响应与质询值不利地比较(步骤946),方法900通过执行一个或多个其他操作(例如,执行一个或多个校正动作)来继续并分支进行到步骤948。
图10描绘了根据本发明各种实施例的云计算环境1000。图10呈现了说明性云计算环境50。如图所示,云计算环境50包括由云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,所述本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图10中所示的计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实施方式不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实施。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储装置、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供商的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供商进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的瘦或胖客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在与位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在更高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供商和消费者两者提供透明性。
服务模型如下:
软件即服务(Software as a Service,SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用。应用可以通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础设施,可能的例外是有限的用户专用应用配置设置。
平台即服务(Platform as a Service,PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对所部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(Infrastructure as a Service,IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、所部署的应用的控制,以及可能具有对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有、共同体或公共)的组合,该云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点的网络的基础设施。
图11描绘了根据本发明各种实施例的抽象模型层1100。现在参考图11,示出了由云计算环境50(图10)提供的一组功能抽象层。应当预先理解,图11所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。在一些实施例中,一个或多个硬件组件可以通过利用图12的计算设备1201来实施。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储装置72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82提供了在云计算环境内利用资源时的成本跟踪,以及针对这些资源的消耗的帐单或发票开具。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(ServiceLevel Agreement,SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA来预期未来的需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育递送93;数据分析处理94;交易处理95;以及安全、加密和密钥管理相关的处理和操作96。
图12描绘了根据本发明各种实施例的计算设备的框图1200。图12描绘了根据本发明实施例的计算设备1201的组件的框图,其可以用于实施云计算节点10中的一些或全部、图10的计算设备54A-N中的一些或全部和/或实施本文描述的其他计算设备。应当理解,图12仅提供了对一种实施方式的说明,而不暗示对其中可实施的不同实施例的环境的任何限制。可以对所描绘的环境进行许多修改。
计算设备1201可以包括一个或多个处理器1202、一个或多个计算机可读RAM1204、一个或多个计算机可读ROM 1206、一个或多个计算机可读存储介质1208、设备驱动器1212、读/写驱动器或接口1214以及网络适配器或接口1216,所有这些都通过通信结构1218互连。通信结构1218可以用被设计成在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何体系结构来实施。
一个或多个操作系统1210和/或应用程序1211,诸如图11的网络应用服务器软件67和数据库软件68,存储在计算机可读存储介质1208中的一个或多个上,以便由处理器1202中的一个或多个通过相应的RAM 1204(通常包括高速缓冲存储器)中的一个或多个来执行。在所示实施例中,根据本发明的实施例,计算机可读存储介质1208中的每一个可以是内部硬盘驱动器的磁盘存储设备、CD-ROM、DVD、记忆棒、磁带、磁盘、光盘、半导体存储设备(诸如RAM、ROM、EPROM、闪存)、或可以存储计算机程序和数字信息的任何其他计算机可读存储介质。
计算设备1201还可以包括读/写驱动器或接口1214,以从一个或多个便携式计算机可读存储介质1226读取和向其写入。计算设备1201上的应用程序1211可被存储在便携式计算机可读存储介质1226中的一个或多个上,经由相应的读/写驱动器或接口1214读取并被加载到相应的计算机可读存储介质1208中。
计算设备1201还可以包括网络适配器或接口1216,诸如TCP/IP适配卡或无线通信适配器。计算设备54A-N上的应用程序1211可以从外部计算机或外部存储设备经由网络(例如,互联网、局域网或其他广域网或无线网络)和网络适配器或接口1216下载到计算设备。程序可以从网络适配器或接口1216加载到计算机可读存储介质1208中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和边缘服务器。
计算设备1201还可以包括显示屏1220、键盘或小键盘1222以及计算机鼠标或触摸板1224。设备驱动器1212与用于成像的显示屏1220、键盘或小键盘1222、计算机鼠标或触摸板1224、和/或用于字母数字字符键入和用户选择的压力感测的显示屏1220。设备驱动器1212、读/写驱动器或接口1214以及网络适配器或接口1216可以包括存储在计算机可读存储介质1208和/或ROM1206中的硬件和软件。
如本文所使用的,术语“基本上”和“近似地”为其对应的术语和/或项之间的相关性提供了行业接受的容差。这种工业上可接受的容差范围从小于百分之一到百分之五十,并且对应于但不限于组件值、集成电路工艺变化、温度变化、上升和下降时间和/或热噪声。项之间的这种相关性的范围从百分之几的差异到巨大的差异。如也可在本文使用的,术语“被配置成”、“可操作地耦合到”、“耦合到”、和/或“耦合”包括项之间的直接耦合和/或项之间经由中间项(例如,项包括但不限于组件、元件、电路和/或模块)的间接耦合,其中,例如间接耦合,中间项不修改信号的信息,但可以调整其电流水平、电压水平和/或功率水平。如本文中可以进一步使用的,推断的耦合(即,其中一个元件通过推断耦合到另一元件)包括以与“耦合到”相同的方式在两个项之间的直接和间接耦合。如本文甚至可以进一步使用的,术语“被配置成”、“可操作性为”、“耦合到”、和/或“可操作地耦合到”指示项包括电力连接、(多个)输入、(多个)输出等中的一个或多个,以在被激活时执行其一个或多个对应功能,并且还可以包括到一个或多个其他项的推断耦合。如这里可以进一步使用的,术语“相关联”包括单独项和/或嵌入在另一项中的一个项的直接和/或间接耦合。
如本文所使用的,术语“有利地比较”指示两个或多个项、信号等之间的比较提供了期望的关系。例如,当期望的关系是信号1具有比信号2更大的幅度时,当信号1的幅度大于信号2的幅度时或者当信号2的幅度小于信号1的幅度时,可以实现有利的比较。如本文所使用的,术语“不利地比较”指示两个或多个项、信号等之间的比较不能提供期望的关系。
如也可以在本文使用的,术语“处理模块”、“处理电路”、“处理器”和/或“处理单元”可以是单个处理设备或多个处理设备。这种处理设备可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑设备、状态机、逻辑电路、模拟电路、数字电路和/或基于电路的硬编码和/或操作指令来操纵信号(模拟和/或数字)的任何设备。处理模块、处理电路和/或处理单元可以是或还可以包括存储器和/或集成存储器元件,其可以是单个存储器设备、多个存储器设备和/或另一处理模块、处理电路和/或处理单元的嵌入式电路。这种存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓冲存储器和/或存储数字信息的任何设备。注意,如果处理模块、处理电路和/或处理单元包括多于一个处理设备,则处理设备可以是位于中央的(例如,经由有线和/或无线总线结构直接耦合在一起)或者可以是分布式的(例如,经由局域网和/或广域网的间接耦合的云计算)。进一步注意,如果处理模块、处理电路和/或处理单元经由状态机、模拟电路、数字电路和/或逻辑电路实施其功能中的一个或多个,则存储对应操作指令的存储器和/或存储器元件可以嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内或在其外部。更进一步注意,存储器元件可以存储与一个或多个附图中所示的步骤和/或功能中的至少一些对应的硬编码的和/或操作指令,并且处理模块、处理电路和/或处理单元执行这些硬编码的和/或操作指令。这种存储器设备或存储器元件可以包括在制造品中。
以上已经借助于示出了指定功能及其关系的性能的方法步骤描述了一个或多个实施例。为了便于描述,这些功能性构建块和方法步骤的边界和顺序在这里被任意地定义。只要适当地执行指定的功能和关系,就可以定义替代的边界和序列。因此,任何这样的替代边界或顺序都在权利要求的范围和精神内。此外,为了便于描述,这些功能性构建块的边界被任意地定义。只要适当地执行某些重要功能,就可以定义替代的边界。类似地,流程图的框在本文也可以被任意地定义,以说明某些重要的功能。
在所使用的程度上,流程图的块边界和序列可以以其他方式定义,并且仍然执行某些重要的功能。因此,功能构建块和流程图块以及序列的这种替代定义在权利要求的范围和精神内。本领域的普通技术人员还将认识到,功能构建块以及本文的其他说明性块、模块和组件可以如所示出的那样来实施,或者通过分立组件、专用集成电路、执行适当软件的处理器等或其任何组合来实施。
另外,流程图可以包括“开始”和/或“继续”指示。“开始”和“继续”指示反映了所呈现的步骤可以可选地并入其他例程中或者以其他方式与其他例程结合使用。在此上下文中,“开始”指示所呈现的第一步骤的开始,且在其之前可以有未明确示出的其他活动。此外,“继续”指示反映所呈现的步骤可以被执行多次和/或可以被未具体示出的其他活动所跟随。此外,尽管流程图指示了步骤的特定排序,但是只要保持因果原理,其他排序同样是可能的。
本文所使用一个或多个实施例用于说明一个或多个方面、一个或多个特征、一个或多个概念和/或一个或多个示例。装置、制品、机器和/或过程的物理实施例可以包括参考本文讨论的一个或多个实施例描述的一个或多个方面、特征、概念、示例等。此外,从图到图,实施例可以并入使用相同或不同的附图来标记的相同或相似命名的功能、步骤、模块等,并且因此,功能、步骤、模块等可以是相同或相似的功能、步骤、模块等或不同的功能、步骤、模块等。
除非特别声明相反的情况,到本文所呈现的任何附图的附图中的元件、来自所述元件和/或在所述元件之间的信号可以是模拟的或数字的、连续时间或离散时间的、以及单端的或差分的。例如,如果信号路径被示为单端路径,则它也表示差分信号路径。类似地,如果信号路径被示为差分路径,则其也表示单端信号路径。虽然本文描述了一个或多个特定架构,但是如本领域普通技术人员所认识到的,可以类似地实现使用未明确示出的一个或多个数据总线、元件之间的直接连接和/或其他元件之间的间接耦合的其他架构。
术语“模块”用于描述实施例中的一个或多个。模块经由诸如处理器或其他处理设备或其他硬件的设备来实施一个或多个功能,该设备可以包括存储操作指令的存储器或与存储操作指令的存储器相关联地操作。模块可以独立地和/或结合软件和/或固件来操作。同样如本文所使用的,模块可以包含一个或多个子模块,每个子模块可以是一个或多个模块。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
如本文中还可以使用的,计算机可读存储器包括一个或多个存储器元件。存储器元件可以是单独的存储器设备、多个存储器设备、或存储器设备内的一组存储器位置。这种存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓冲存储器和/或存储数字信息的任何设备。存储器设备可以是固态存储器、硬盘驱动器存储器、云存储器、拇指驱动器、服务器存储器、计算设备存储器和/或用于存储数字信息的其他物理介质的形式。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如互联网、局域网、广域网和/或无线网络下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(instruction-set-architecture,ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实施的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实施。
虽然本文已明确描述了一个或多个实施例的各种功能和特征的特定组合,但这些特征和功能的其他组合同样是可能的。本公开不受本文所公开的具体示例的限制,并且明确地并入了这些其他组合。

Claims (15)

1.一种计算设备,包括:
接口,被配置成与通信系统接口和通信;
存储器,存储操作指令;以及
处理电路,其可操作地耦合到所述接口和所述存储器,其中所述处理电路被配置成执行所述操作指令以:
根据不经意伪随机函数(OPRF)盲化操作基于盲化密钥来处理与密钥相关联的输入值,以生成盲值;
经由所述通信系统将所述盲值传输到与密钥管理系统(KMS)服务相关联的另一计算设备;
经由所述通信系统并且从与所述KMS服务相关联的所述另一计算设备接收盲密钥,其中所述盲密钥基于使用OPRF秘密基于OPRF对所述盲值进行的处理;
根据OPRF去盲操作基于所述盲化密钥处理所述盲密钥,以生成与所述输入值相关联的所述密钥;以及
基于所述密钥访问安全信息。
2.根据权利要求1所述的计算设备,其中:
所述输入值对于所述另一计算设备是未知的,并且包括与所述密钥相关联的密钥标识符;
所述密钥对于所述另一计算设备是未知的,并且包括数据加密密钥(DEK)或密钥加密密钥(KEK);以及
所述OPRF秘密对于所述计算设备是未知的,并且基于与所述计算设备相关联的客户根密钥(CRK)。
3.根据权利要求1或权利要求2所述的计算设备,其中所述密钥包括非对称密钥对中的第一密钥或第二密钥,并且其中所述处理电路还被配置成执行所述操作指令以:
经由所述通信系统并且从所述另一计算设备接收与所述KMS服务相关联的所述盲密钥、结构化密钥参数和确定性函数,所述确定性函数指定所述非对称密钥对中的所述第一密钥或所述第二密钥的生成;
基于所述结构化密钥参数和所述确定性函数来处理所述盲密钥,以生成另一盲密钥,所述确定性函数指定所述非对称密钥对中的所述第一密钥或所述第二密钥的生成;以及
根据所述OPRF去盲操作基于所述盲化密钥处理所述另一盲密钥,以生成与所述输入值相关联的所述非对称密钥对中的所述第一密钥或所述第二密钥。
4.根据权利要求1或权利要求2所述的计算设备,其中所述密钥包括非对称密钥对中的第一密钥或第二密钥,并且其中所述处理电路还被配置成执行所述操作指令以:
经由所述通信系统并且从所述另一计算设备接收与所述KMS服务相关联的所述盲密钥、加密的结构化密钥参数和确定性函数,所述确定性函数指定所述非对称密钥对中的所述第一密钥或所述第二密钥的生成;
处理所述盲密钥以生成另一密钥;
根据解密基于所述另一密钥处理所述加密的结构化密钥参数以生成结构化密钥参数;
基于所述结构化密钥参数和所述确定性函数来处理所述盲密钥,以生成另一盲密钥,所述确定性函数指定所述非对称密钥对中的所述第一密钥或所述第二密钥的生成;以及
根据所述OPRF去盲操作基于所述盲化密钥来处理所述另一盲密钥,以生成与所述输入值相关联的所述非对称密钥对中的所述第一密钥或所述第二密钥。
5.根据权利要求1或权利要求2所述的计算设备,其中所述处理电路还被配置成执行所述操作指令以:
根据所述OPRF盲化操作基于另一盲化密钥来处理与非对称密钥的公钥-私钥对中的私钥相关联的另一输入值,以生成包括不经意密钥访问请求(OKAR)的另一盲值;
经由所述通信系统将包括所述OKAR的所述另一盲值传输至与所述KMS服务相关联的所述另一计算设备;
经由所述通信系统并且从与所述KMS服务相关联的所述另一计算设备接收另一盲密钥,其中,所述另一盲密钥基于使用所述OPRF秘密基于所述OPRF对所述另一盲值进行的处理;
根据所述OPRF去盲操作基于所述另一盲化密钥来处理所述另一盲密钥,以生成与所述另一输入值相关联的所述非对称密钥的公钥-私钥对中的私钥;以及
基于所述非对称密钥的公钥-私钥对中的公钥来处理所述非对称密钥的公钥-私钥对中的私钥,以验证所述非对称密钥的公钥-私钥对中的私钥的正确性。
6.根据权利要求1所述的计算设备,其中,所述处理电路还被配置成执行所述操作指令以:
根据所述OPRF盲化操作基于第一其他盲化密钥来处理与非对称密钥的公钥-私钥对中的私钥相关联的另一输入值,以生成包括第一不经意密钥访问请求(OKAR)的第一其他盲值;
根据所述OPRF盲化操作基于第二其他盲化密钥来处理质询值以生成包括第二OKAR的第二其他盲值;
经由所述通信系统将包括所述第一OKAR的所述第一其他盲值和包括所述第二OKAR的所述第二其他盲值传输到与所述KMS服务相关联的所述另一计算设备;
经由所述通信系统并且从与所述KMS服务相关联的所述另一计算设备接收第一其他盲密钥,其中所述第一其他盲密钥基于使用所述OPRF秘密基于所述OPRF对所述第一其他盲值进行的处理;
经由所述通信系统并且从与所述KMS服务相关联的所述另一计算设备接收第二其他盲密钥,其中,所述第二其他盲密钥基于使用所述OPRF秘密基于所述OPRF对所述第二其他盲值进行的处理;
根据所述OPRF去盲操作基于所述第二其他盲化密钥来处理所述第二其他盲密钥,以生成来自所述另一计算设备的与所述质询值相关联的响应;
确定来自所述另一计算设备的与所述质询值相关联的响应是否与所述质询值有利地比较;以及
基于确定来自所述另一计算设备的与所述质询值相关联的响应与所述质询值有利地比较,根据所述OPRF去盲操作基于所述第一其他盲化密钥来处理所述第一其他盲密钥,以生成与所述另一输入值相关联的所述非对称密钥的公钥-私钥对中的私钥。
7.根据前述权利要求中任一项所述的计算设备,其中以下各项中的至少一个:
所述计算设备包括无线智能电话、蜂窝电话、膝上型计算机、个人数字助理、平板计算机、个人计算机(PC)、工作站或视频游戏设备;或
所述另一计算设备包括硬件安全模块(HSM)。
8.根据前述权利要求中任一项所述的计算设备,其中,所述通信系统包括无线通信系统、有线通信系统、非公共内联网系统、公共互联网系统、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、卫星通信系统、光纤通信系统或移动通信系统中的至少一个。
9.一种由计算设备执行的方法,所述方法包括:
根据不经意伪随机函数(OPRF)盲化操作基于盲化密钥来处理与密钥相关联的输入值,以生成盲值;
经由所述计算设备的接口将所述盲值传输到与密钥管理系统(KMS)服务相关联的另一计算设备,所述计算设备的接口被配置成与通信系统接口和通信;
经由所述接口并且经由所述通信系统并且从与所述KMS服务相关联的另一计算设备接收盲密钥,其中,所述盲密钥基于使用OPRF秘密基于OPRF对所述盲值进行的处理;
根据OPRF去盲操作基于所述盲化密钥来处理所述盲密钥,以生成与所述输入值相关联的所述密钥;以及
基于所述密钥访问安全信息。
10.根据权利要求9所述的方法,其中:
所述输入值对于所述另一计算设备是未知的,并且包括与所述密钥相关联的密钥标识符;
所述密钥对于所述另一计算设备是未知的,并且包括数据加密密钥(DEK)或密钥加密密钥(KEK);以及
所述OPRF秘密对于所述计算设备是未知的,并且基于与所述计算设备相关联的客户根密钥(CRK)。
11.根据权利要求9或权利要求10所述的方法,其中所述密钥包括非对称密钥对中的第一密钥或第二密钥,并且所述方法还包括:
经由所述接口并且经由所述通信系统并且从所述另一计算设备接收与所述KMS服务相关联的所述盲密钥、结构化密钥参数和确定性函数,所述确定性函数指定所述非对称密钥对中的所述第一密钥或所述第二密钥的生成;
基于所述结构化密钥参数和所述确定性函数来处理所述盲密钥,以生成另一盲密钥,所述确定性函数指定所述非对称密钥对中的第一密钥或第二密钥的生成;以及
根据所述OPRF去盲操作基于所述盲化密钥来处理所述另一盲密钥,以生成与所述输入值相关联的、所述非对称密钥对中的第一密钥或第二密钥。
12.根据权利要求9或权利要求10所述的方法,其中,所述密钥包括非对称密钥对中的第一密钥或第二密钥,并且所述方法还包括:
经由所述接口并且经由所述通信系统并且从所述另一计算设备接收与所述KMS服务相关联的所述盲密钥、加密的结构化密钥参数和确定性函数,所述确定性函数指定所述非对称密钥对中的第一密钥或第二密钥的生成;
处理所述盲密钥以生成另一密钥;
根据解密基于所述另一密钥来处理所述加密的结构化密钥参数,以生成结构化密钥参数;
基于所述结构化密钥参数和所述确定性函数来处理所述盲密钥,以生成另一盲密钥,所述确定性函数指定所述非对称密钥对中的第一密钥或第二密钥的生成;以及
根据所述OPRF去盲操作基于所述盲化密钥来处理所述另一盲密钥,以生成与所述输入值相关联的、所述非对称密钥对中的第一密钥或第二密钥。
13.根据权利要求9或权利要求10所述的方法,还包括:
根据所述OPRF盲化操作基于另一盲化密钥来处理与非对称密钥的公钥-私钥对中的私钥相关联的另一输入值,以生成包括不经意密钥访问请求(OKAR)的另一盲值;
经由所述接口并且经由所述通信系统将包括所述OKAR的所述另一盲值传输至与所述KMS服务相关联的所述另一计算设备;
经由所述接口并且经由所述通信系统并且从与所述KMS服务相关联的所述另一计算设备接收另一盲密钥,其中,所述另一个盲密钥基于使用所述OPRF秘密基于所述OPRF对所述另一盲值进行的处理;
根据所述OPRF去盲操作基于所述另一盲化密钥来处理所述另一盲密钥,以生成与所述另一输入值相关联的、非对称密钥的公钥-私钥对中的私钥;以及
基于所述非对称密钥的公钥-私钥对中的公钥来处理所述非对称密钥的公钥-私钥对中的私钥,以验证非对称密钥的公钥-私钥对中的私钥的正确性。
14.根据权利要求9所述的方法,还包括:
根据所述OPRF盲化操作基于第一其他盲化密钥来处理与非对称密钥的公钥-私钥对中的私钥相关联的另一输入值,以生成包括第一不经意密钥访问请求(OKAR)的第一其他盲值;
根据所述OPRF盲化操作基于第二其他盲化密钥来处理质询值,以生成包括第二OKAR的第二其他盲值;
经由所述接口并且经由所述通信系统,将包括所述第一OKAR的所述第一其他盲值和包括所述第二OKAR的所述第二其他盲值传输至与所述KMS服务相关联的所述另一计算设备;
经由所述接口并且经由所述通信系统并且从与所述KMS服务相关联的所述另一计算设备接收第一其他盲密钥,其中所述第一其他盲密钥基于使用所述OPRF秘密基于所述OPRF对所述第一其他盲值进行的处理;
经由所述接口并且经由所述通信系统并且从与所述KMS服务相关联的所述另一计算设备接收第二其他盲密钥,其中,所述第二其他盲密钥基于使用所述OPRF秘密基于所述OPRF对所述第二其他盲值进行的处理;
根据所述OPRF去盲操作基于所述第二其他盲化密钥来处理所述第二其他盲密钥,以生成来自所述另一计算设备的与所述质询值相关联的响应;
确定来自所述另一计算设备的与所述质询值相关联的所述响应是否与所述质询值有利地比较;以及
基于确定来自所述另一计算设备的与所述质询值相关联的所述响应与所述质询值有利地比较,根据所述OPRF去盲操作基于第一其他盲化密钥来处理第一其他盲密钥,以生成与所述另一输入值相关联的非对称密钥的公钥-私钥对中的私钥。
15.根据权利要求9所述的方法,其中以下各项中的至少一个:
所述计算设备包括无线智能电话、蜂窝电话、膝上型计算机、个人数字助理、平板计算机、个人计算机(PC)、工作站或视频游戏设备;
所述另一计算设备包括硬件安全模块(HSM);或
所述通信系统包括无线通信系统、有线通信系统、非公共内联网系统、公共互联网系统、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、卫星通信系统、光纤通信系统或移动通信系统中的至少一个。
CN201980019212.5A 2018-03-20 2019-02-26 密钥管理系统中的不经意伪随机函数 Active CN111886587B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/926,651 US10841080B2 (en) 2018-03-20 2018-03-20 Oblivious pseudorandom function in a key management system
US15/926,651 2018-03-20
PCT/IB2019/051525 WO2019180521A1 (en) 2018-03-20 2019-02-26 Oblivious pseudorandom function in a key management system

Publications (2)

Publication Number Publication Date
CN111886587A true CN111886587A (zh) 2020-11-03
CN111886587B CN111886587B (zh) 2024-05-14

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090175442A1 (en) * 2008-01-07 2009-07-09 Microsoft Corporation Digital Rights Management System Protecting Consumer Privacy
US20130205379A1 (en) * 2012-02-07 2013-08-08 Korea University Research And Business Foundation Authentication method between client and server, machine-readable storage medium, client and server
CN106664209A (zh) * 2014-08-26 2017-05-10 国际商业机器公司 基于密码的秘密加密密钥的生成和管理
CN106797311A (zh) * 2014-08-29 2017-05-31 维萨国际服务协会 用于安全密码生成的方法
US20170177899A1 (en) * 2015-12-17 2017-06-22 Agency For Science, Technology And Research Encrypted data deduplication in cloud storage
US20180025167A1 (en) * 2015-02-13 2018-01-25 Nec Europe Ltd. Method for storing a data file of a client on a storage entity

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090175442A1 (en) * 2008-01-07 2009-07-09 Microsoft Corporation Digital Rights Management System Protecting Consumer Privacy
US20130205379A1 (en) * 2012-02-07 2013-08-08 Korea University Research And Business Foundation Authentication method between client and server, machine-readable storage medium, client and server
CN106664209A (zh) * 2014-08-26 2017-05-10 国际商业机器公司 基于密码的秘密加密密钥的生成和管理
CN106797311A (zh) * 2014-08-29 2017-05-31 维萨国际服务协会 用于安全密码生成的方法
US20180025167A1 (en) * 2015-02-13 2018-01-25 Nec Europe Ltd. Method for storing a data file of a client on a storage entity
US20170177899A1 (en) * 2015-12-17 2017-06-22 Agency For Science, Technology And Research Encrypted data deduplication in cloud storage

Also Published As

Publication number Publication date
GB2585170B (en) 2021-07-21
JP7268948B2 (ja) 2023-05-08
GB2585170A (en) 2020-12-30
WO2019180521A1 (en) 2019-09-26
US20190296896A1 (en) 2019-09-26
GB202016232D0 (en) 2020-11-25
DE112019001441T5 (de) 2020-12-17
US10841080B2 (en) 2020-11-17
JP2021516901A (ja) 2021-07-08

Similar Documents

Publication Publication Date Title
US10924267B2 (en) Validating keys derived from an oblivious pseudorandom function
US11115206B2 (en) Assymetric structured key recovering using oblivious pseudorandom function
US10841080B2 (en) Oblivious pseudorandom function in a key management system
US10887293B2 (en) Key identifiers in an obliviousness pseudorandom function (OPRF)-based key management service (KMS)
Lohachab ECC based inter-device authentication and authorization scheme using MQTT for IoT networks
Chatterjee et al. A PUF-based secure communication protocol for IoT
US10841081B2 (en) Threshold oblivious pseudorandom function in a key management system
US10887088B2 (en) Virtualizing a key hierarchy using a partially-oblivious pseudorandom function (P-OPRF)
US10700859B2 (en) Efficient computation of a threshold partially-oblivious pseudorandom function
Li et al. Secure and efficient anonymous authentication scheme for three-tier mobile healthcare systems with wearable sensors
US11374975B2 (en) TLS integration of post quantum cryptographic algorithms
KR20230078706A (ko) 포스트 양자 암호화를 사용하는 인증서 기반 보안
Odelu et al. A secure anonymity preserving authentication scheme for roaming service in global mobility networks
Hasan et al. A Survey on Key Agreement and Authentication Protocol for Internet of Things Application
US9917694B1 (en) Key provisioning method and apparatus for authentication tokens
Das et al. A decentralized open web cryptographic standard
US11032708B2 (en) Securing public WLAN hotspot network access
Zeidler et al. AuthStore: Password-based authentication and encrypted data storage in untrusted environments
CN111886587B (zh) 密钥管理系统中的不经意伪随机函数
Banerjee et al. Anonymous fine-grained user access control scheme for Internet of Things architecture
Laing et al. Symbolon: Enabling Flexible Multi-device-based User Authentication
Li et al. A cloud based dual-root trust model for secure mobile online transactions
Ghanbarafjeh et al. Developing a secure architecture for internet of medical things using attribute-based encryption
Sousa et al. pTASC: trustable autonomous secure communications
Nagar et al. A secure mobile cloud storage environment using encryption algorithm‖

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