CN110999203A - 使用成对隐式证书生成共享秘密 - Google Patents
使用成对隐式证书生成共享秘密 Download PDFInfo
- Publication number
- CN110999203A CN110999203A CN201880045496.0A CN201880045496A CN110999203A CN 110999203 A CN110999203 A CN 110999203A CN 201880045496 A CN201880045496 A CN 201880045496A CN 110999203 A CN110999203 A CN 110999203A
- Authority
- CN
- China
- Prior art keywords
- key
- entity
- certificate
- public
- private
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Abstract
通信的双方通过使用隐式证书建立公钥和私钥。每一方建立新的静态密钥对,并且确定所述新的静态密钥对与先前建立的密钥之间的差异。所述差异被交换并用于确定新的公共静态密钥。每一方从所述静态密钥对生成临时密钥对,并且从所述临时密钥和所述新的静态密钥的组合中导出共享秘密。
Description
相关申请的交叉引用
本申请要求2017年5月8日提交的标题为“GENERATION OF SHARED SECRETS USINGPAIRWISE IMPLICIT CERTIFICATES”的美国专利申请号15/589,798、2017年5月8日提交的标题为“IMPLICIT CERTIFICATES USING RING LEARNING WITH ERRORS”的美国专利申号15/589,783以及2017年5月8日提交的标题为“COMMUNICATION PROTOCOL USING IMPLICITCERTIFICATES”的美国专利申请号15/589,808的优先权,所述专利申请的公开内容全部以引用方式并入本文。
背景技术
现代计算系统可用于维护财务信息、医疗信息、个人信息和其他重要信息。在许多示例中,根据由管理员、数据所有者或其他负责实体建立的访问策略集合来控制对该重要信息的访问。控制访问的一种方式是通过使用数字证书和加密。数字证书允许一方在合理程度上确认另一实体的身份。加密允许使用加密密钥来保护数据,从而使无权访问对应解密密钥的实体无法访问数据。
许多密码技术依赖于容易创建但难以解决的非对称数学问题。技术的进步有可能解决甚至使曾经被认为难以解决的问题变得微不足道。因此,开发更强大的密码技术是一个持续存在的问题,这对维护我们的数据安全至关重要。
附图说明
将参考附图来描述各种技术,在附图中:
图1示出了可以实践各种实施方案的环境的说明性示例;
图2示出了过程的说明性示例,作为由两个实体和证书授权中心(“CA”)执行的结果,该过程使用隐式证书为每个实体生成密码密钥对;
图3示出了过程的说明性示例,作为由实体和证书授权中心执行的结果,该过程为实体生成密码密钥对和隐式证书;
图4示出了过程的说明性示例,作为由证书授权中心执行的结果,该过程使用环容错学习(“RLWE”)生成用于生成隐式证书的参数;
图5示出了过程的说明性示例,作为由实体执行的结果,该过程使用环容错学习生成对隐式证书的请求;
图6示出了过程的说明性示例,作为由证书授权中心执行的结果,该过程使用环容错学习生成隐式证书;
图7示出了过程的说明性示例,作为由实体执行的结果,该过程使用环容错学习从隐式证书中提取公钥;
图8示出了过程的说明性示例,作为由实体执行的结果,该过程使用环容错学习从隐式证书中提取私钥/公钥对;
图9示出了过程的说明性示例,作为由实体执行的结果,该过程使用显式签名来验证隐式证书;
图10示出了过程的说明性示例,作为由两个实体Alice(U)和Bob(V)执行的结果,该过程基于RLWE执行密钥交换;
图11示出了过程的说明性示例,作为由两个实体Alice(U)和Bob(V)执行的结果,该过程执行密钥交换;
图12示出了系统的说明性示例,其中隐式证书由装置制造商签发给装置,并且装置管理服务被提供有允许使用证书的公钥;
图13示出了过程的说明性示例,作为由装置制造商执行的结果,该过程向装置签发隐式证书;
图14示出了过程的说明性示例,作为由装置制造商和装置执行的结果,该过程生成供装置使用的隐式证书;
图15示出了过程的说明性示例,作为由装置管理服务、装置制造商和装置执行的结果,该过程生成用于在装置和装置管理服务之间建立认证通信的隐式证书;
图16示出了系统的说明性示例,其中隐式证书用于建立与web服务的认证的通信会话;
图17示出了过程的说明性示例,作为由装置执行的结果,该过程使用隐式证书与装置管理服务建立受保护的通信会话;
图18示出了根据一个实施方案的实现传输层安全(“TLS”)协议的网络堆栈的说明性示例;
图19示出了根据一个实施方案的过程的说明性示例,该过程在由客户端和服务器执行时使用TLS协议建立安全连接;
图20示出了根据一个实施方案的过程的说明性示例,该过程在由发送方和接收方执行时,使用TLS协议来传输应用数据;并且
图21示出了可实现各种实施方案的环境。
具体实施方式
本文档描述了生成和使用能够用于受保护通信的隐式证书的系统和方法。提供隐式证书用于环容错学习(“RLWE”)公钥,在一些示例中,这些公钥可以抵抗基于量子的计算攻击。描述了请求、生成、验证和使用隐式证书的各种方法。在一些示例中,系统提供隐式证书,该隐式证书允许在证书生成时在被标识的两个特定方之间进行通信。在另一个示例中,系统提供了可用于与各种不同方通信的证书。各种示例允许该系统用作签名方案、密钥交换协议或基于证书的系统,所述基于证书的系统使用多个共享CA计算在双方(U和V)之间建立受保护通信。在本文档中,出于讨论的目的,为各个实体分配了唯一的标识符。例如,标识符诸如‘U’或‘V’或‘CA’可以用作分别标识第一实体、第二实体和证书授权中心的简写。实体可以是消息交换的一方,诸如计算机系统、联网装置、计算机服务器或计算机实现的服务。
公钥密码术的一个重要部分是确定公钥的真实性。在一些示例中,通过签名机构或证书授权中心(“CA”)确保公钥的真实性。CA的作用是通过将实体的身份绑定到身份的公钥来确认公钥的真实性。在一些实现方式中,CA通过使用数字签名来实现这一点。完成此绑定的数据结构称为数字证书。在各种实现方式中,CA确认特定实体的身份,并且确认该特定实体拥有私钥,作为向该特定实体签发将身份绑定到对应公钥的证书的条件。
对于证书诸如X.509证书,通过验证证书中的CA签名确认实体U和关联的公钥之间的链接。在一些示例中,在公钥的密码使用期间获得实体U能够访问对应私钥的确认。在另一个示例中,证书签发协议使U向CA证明密钥的知识,作为签发相关联的证书的条件。因此,另一个用户V间接保证,如果证书有效,U可以访问密钥,因为证书签发时,CA明确地执行此检查。
隐式证书生成算法产生据称绑定到U的公钥(即据称由CA签发)。在使用对应的私钥后获得公钥绑定到U的确认。例如,作为执行涉及公钥的认证密钥协商方案的结果,可以获得公钥绑定到U的确认。因此,借助隐式证书,作为成功使用密钥的结果,将统一验证实体及其关联的公钥的绑定以及对私钥的验证访问。在各种实施方案中,与其他类型的显式数字证书相比,隐式证书更小并且使用更少的计算资源。例如,椭圆曲线Qu-Vanstone(ECQV)证书方案提供椭圆曲线上的点大小的证书,从而与传统x.509证书相比减少了所使用的网络带宽量。
使用椭圆曲线,可以使用隐式证书方案建立用于两个实体U和V之间通信的密码密钥集合。证书授权中心(“CA”)确认U的身份,并且签发将与U相关联的标识信息绑定到U拥有的公钥的证书。U生成密码密钥kU。U通过确定以下内容来请求隐式证书,其中G是基点生成器:
kU∈R[1..n-1]
RU:=kU·G
然后,U将请求(RU)和标识信息(U)发送到CA。CA使用提供的标识信息确认U的身份。如果CA确定U的身份与提供的标识信息匹配,则CA将处理请求并产生隐式证书,如下:
k∈R[1,...,n-1];PU=RU+kG
CertU:=Encode(PU,U,×)
e=Hn(CertU)
r:=ek+dCA(mod n)
然后,CA将证书(CertU)和r返回给U。U能够如下提取密钥对,其中dU是U的私钥,而QU是U的公钥:
e:=Hn(CertU)
dU:=ekU+r(mod n)
QU:=ePU+QCA
另一个实体V可以处理由CA产生的证书,以使用由CA提供的类似信息检索U的公钥PU。在一些示例中,实体V可以使用证书CertU、散列函数H()、标识U的信息(PU)和证书授权中心的公钥(QCA)来确定U的公共证书。一般来讲,这些参数可以从证书授权中心获得。可以在2013年1月24日Matthew Campagna的“SEC 4:Elliptic Curve Qu-Vanstone ImplicitCertificate Scheme(ECQV)”,The Standards for Efficient Cryptography Group中找到描述椭圆曲线隐式证书的其他信息,所述文献出于任何目的以引用方式并入本文。
一般来讲,将身份绑定到公钥的数字证书至少提供了两个方面的认证。第一证书是身份和相关联的公钥之间的可验证链接。第二证书是对实体能够访问相关联的密钥的可验证保证。隐式证书方案可以定义一个或多个操作,包括:
·ECQV设置操作,其中CA建立椭圆曲线域参数、散列函数、证书编码格式,并且通信各方选择随机数生成器。CA生成公钥/私钥对。各方接收到CA的公钥和域参数的可信副本。
·证书请求操作,其中U生成证书请求,并将该请求发送到CA。请求的密码组分是公钥,其使用与设置期间CA使用的密钥生成过程等效的过程生成。
·证书生成操作,其由CA在接收到来自实体U的证书请求后执行。CA使用U随证书请求提供的标识信息来确认U的身份,并且创建隐式证书。CA向U提供隐式证书。
·公钥提取操作,其由发送实体V执行以获取目的地实体U的公钥。证书授权中心为V提供针对U的隐式证书、与该证书相关联的域参数以及使用该信息的证书授权中心的公钥,公钥提取操作确定U的公钥,并且V可以使用该公钥来加密发送至U的消息。
·证书接收操作,其在从CA向实体U提供新的隐式证书时执行。U使用CA提供的信息确定隐式认证的公钥和私钥。在一些示例中,U确认密钥有效。
·证书验证操作,其由实体执行以使用在数字证书上形成显式签名的附加信息来验证隐式证书。使用显式签名特征允许实体V在密钥使用之前确认实体U和相关联的公钥之间的绑定。用附加信息增强的隐式证书形成显式签名,该显式签名可以在需要确保常规证书处理的上下文中使用。在一些示例中,隐式证书方案可以提供证书请求者拥有相关联的私钥的验证。
本文档描述了使用至少部分地基于环容错学习(“RLWE”)问题的密码方案的隐式证书的示例。关于环容错学习(“LWE”)和RLWE问题的附加信息可以在“On ideal latticesand learning with errors over rings”,V.Lyubashevsky、C.Peikert和O.Regev,Advances in Cryptology-Eurocrypt 2010,29th Annual International Conference onthe Theory and Applications of Cryptographic Techniques,Proceedings.(第6110卷,LNCS,第1-23页);(Lecture Notes in Computer Science(包括子系列Lecture Notesin Artificial Intelligence和Lecture Notes in Bioinformatics);第6110卷,LNCS)中找到,所述文献出于任何目的全文以引用方式并入本文。
在各种示例中,提供了使用理想点阵的隐式证书方案。环容错学习(“RLWE”)问题用于导出快速解决方案。请求者(U)向证书授权中心(CA)提供签发隐式证书的证书请求,请求者(U)将能够从该隐式证书中导出相关联的私钥/公钥对。证书用户(V)能够使用隐式证书和CA的公钥来导出U的公钥。证书签发过程被如下描述为U和CA之间的协议。作为密钥使用的结果,实体与相关联的公钥的绑定以及私钥的知识被一致地验证。
使用理想点阵,可以使用隐式证书方案建立用于两个实体U和V之间通信的密码密钥集合。证书授权中心(“CA”)确认U的身份,并且签发将与U相关联的标识信息绑定到U所拥有的公钥的证书。U通过确定以下内容请求隐式证书:
r←RQ,e3←χ
RU:=Ar+e3
A是建立的域多项式,并且RQ是整数环。在一些示例中,由证书授权中心CA将A和RQ两者提供给U。生成请求之后,U将请求(RU)和标识信息(U)发送到CA。CA使用提供的标识信息确认U的身份。如果CA确定U的身份与提供的标识信息匹配,则CA将处理请求并产生隐式证书,如下:
k←Rq,e4←χ
PU=RU+Ak–e4(PU是公共中间项)
CertU:=Encode(PU,U)
s:=c+H(CertU)k+e1
然后,CA将证书(CertU)和私有值(s)返回给U。U能够如下提取密钥对,其中dU是U的私钥,而QU是U的公钥:
dU:=s+H(CertU)r
QU:=C+H(CertU)PU
图1示出可以实践各种实施方案的环境的说明性示例。图100示出了其中隐式证书由多方生成和使用的系统。该系统包括第一计算机系统102(U)、第二计算机系统104(V)和证书授权中心106(CA)。在各种示例中,客户端计算机系统可以是计算机服务器、群集服务器、虚拟机、计算机实现的服务或能够与通信端点相关联的其他实体。在附加的示例中,客户端计算机系统可以包括用于执行本文描述的操作的密码处理器、硬件安全模块或专用集成电路(“ASIC”)。证书授权中心106可以是第一计算机系统102和第二计算机系统104信任的计算机服务器、服务器群集或服务。在一些示例中,证书授权中心106是由证书签发者操作的计算机服务器,该证书签发者被信任来验证请求隐式证书的其他实体的身份。图100示出了用于生成隐式证书并且为第一计算机系统102生成对应的公共/私有密码密钥对的过程。第二计算机系统104使用由证书授权中心106提供的信息获取与第一计算机系统102相关联的公钥。
通信各方和证书授权中心执行设置操作,由此其就用于生成证书的许多参数达成一致。参数在各方之间公开传送。作为设置操作的一部分,各方建立一个整数环Rq,以及Rq上的误差分布χ。在一些示例中,标识散列函数以供各方以后使用。证书授权中心106执行以下操作以生成私钥/公钥对(c,C)和域多项式A。
1.样本c←Rq和e1、e2←χ
2.生成A←Rq
3.计算C=Ac+Ae1+e2
在执行上述步骤之后,证书授权中心106将私钥/公钥对(c,C)和域多项式A提供给第一计算机系统102和第二计算机系统104。在一些实现方式中,参数集合是预先确定的,并且通过离线机制(诸如制造时的硬编码)分配给各方。
在设置操作完成后,第一计算机系统102通过从证书授权中心106请求证书开始该过程。生成请求RU,如下:
1.样本r←Rq和e3←χ
2.计算请求RU=Ar+e3
将所得请求RU连同标识第一计算机系统102(U)的信息一起发送到证书授权中心106。
证书授权中心106从第一计算机系统102接收请求RU和标识信息U。证书授权中心106检查标识信息,并且确认请求者的身份和标识信息U的准确性。如果标识信息与第一计算机系统102的身份匹配,证书授权中心106为第一计算机系统102生成隐式证书,如下:
1.样本k←Rq
2.计算PU=RU+Ak-e4
3.创建证书CertU=(PU,U)
4.计算s=c+H(CertU)k+e1
证书CertU连同s一起发送到第一计算机系统102,使得第一计算机系统102能够使用与证书授权中心106相关联的公钥来确定对应的私钥/公钥。证书授权中心将证书CertU发送到第二计算机系统104,第二计算机系统然后也能够使用证书授权中心的公钥来计算第一计算机系统102的公钥。第二计算机系统104能够推断出第一计算机系统102没有伪造证书,因为第二计算机系统104能够使用从证书授权中心106接收的信息而不是由第一计算机系统102直接提供的信息确定第一计算机系统的公钥。
在一个示例中,第二计算机系统104获取与第一计算机系统102相关联的证书,并且使用证书授权中心106的公钥,第二计算机系统104确定第一计算机系统102的公钥,如下:
QU=C+H(CertU)PU
=A(c+H(CertU)(r+k)+e1)+e2+H(CertU)(e3-e4)
=A(c+H(CertU)(r+k)+e1)+E,其中E=e2+H(CertU)(e3-e4)
值QU是第一计算机系统102的公钥。
在从证书授权中心106接收到证书CertU之后,第一计算机系统102使用证书授权中心的公钥来确定私钥/公钥对。
1.计算dU=s+H(CertU)r=c+H(CertU)(r+k)+e1
2.计算QU=C+H(CertU)PU=Adu+E
3.验证(QU-A×dU)=E等于一个小的误差项
计算的元组(dU,QU)是U的私钥/公钥对。
在一些实现方式中,证书用附加信息增强,所述附加信息在证书CertU上形成显式签名。可以通过计算H(CertU)(PU-RU)-(As-C)并验证结果的系数是小误差值来验证证书上的签名。如果证书无效,则多项式将具有分布在RQ上的系数。
在一些示例中,密钥生成方法创建公钥对,其中嵌入将实体绑定到证书和/或将两个实体之间的通信绑定到证书的隐式证书。通过将相关联的误差项乘以在整个协议中保持一致的质数p来增强密钥生成。获得的密钥具有以下形式:
dU=s+H(Cert)r=c+H(Cert)(r+k)+pe1
QU=A×dU+pe2+H(Cert)(pe3-pe4)
一方可以多种方式使用其密码密钥。在一些示例中,所述一方使用其私有密码密钥为消息生成数字签名。数字签名可以连同消息一起提供给另一方,并且另一方能够使用所述一方的公共密码密钥来验证签名。在另一个示例中,在第一计算机系统102和第二计算机系统104之间建立了受保护的通信信道108。通过通信信道108传输的信息被加密。为了发送消息,发送方使用其私有密码密钥对消息加密,且将所得的加密的消息发送给接收方。接收方使用发送方的公钥解密加密的消息以显示原始消息。
图2示出了过程的说明性示例,作为由两个实体和证书授权中心(“CA”)执行的结果,该过程使用隐式证书为每个实体生成密码密钥对。该过程示出了提供绑定到RLWE公钥的隐式证书的方法,所述隐式证书可用于在被标识为Alice和Bob的两个实体之间建立通信。在各种实现方式中,实体是计算机系统、服务、移动装置、蜂窝装置、联网传感器、网络家电或其他通信实体。在各种示例中,证书不促进所述两个实体以外的各方之间的通信。
泳道图200示出了一个过程,该过程开始于通信的双方和证书授权中心对值进行初始化。在框202处,被标识为Alice(U)的第一实体生成秘密值SiA(r)和公共值PiA(RU)。
1.r←Rq,e4←χ
2.RU:=Ar+e3
在框204处,证书授权中心生成秘密值SiCA(c)和公共值PiCA(C)。
1.CA(c,C=Ac+Ae1+e2)
在框206处,被称为Bob(V)的第二实体生成秘密值SiB(t)和公共值PiB。
1.t←Rq,e4←χ
2.RV:=At+e4
在框208处,Alice向证书授权中心提供Alice的公共值PiA和标识Alice IA的信息。标识Alice的信息可以是名称、标识符、地址、域名或与Alice相关联的其他信息。在框210处,Bob向证书授权中心提供Bob的公共值PiB和标识Bob IB的信息。标识Bob的信息可以是名称、标识符、地址、域名或与Bob相关联的其他信息。
在框212处,证书授权中心从Alice和Bob接收信息,并且验证标识信息。在一些示例中,证书授权中心分别向负责Alice和Bob的授权中心验证标识信息。如果证书授权中心无法验证由Alice或Bob提供的标识信息,则证书授权中心将不生成和签发证书。如果证书授权中心能够验证由Alice和Bob提供的标识信息,则过程前进到框214,并且证书授权中心开始生成证书的过程,该证书将允许Alice和Bob相互通信。在框214处,证书授权中心生成将在证书生成过程中使用的随机值(Rand或k)。
k←Rq
在框216处,证书授权中心生成临时值(Ptmp),该临时值是随机值(Rand)、Alice的标识信息IA和Bob的标识信息IB的函数。
P=RU+RV+Ak-e5
在框218处,证书授权中心使用临时值(Ptmp)、Alice的标识信息IA和Bob的标识信息IB生成证书(Cert)。
Cert:=Encode(P,U,V)
证书授权中心生成220特定贡献值(Stmp),该特定贡献值是证书授权中心的秘密值SiCA、证书(Cert)和随机数(Rand)的函数。
Stmp:=c+H(Cert)k+e1
证书、特定贡献值(Stmp)和随机数(Rand)被提供给Alice和Bob两者。
在框222处,Alice接收证书(Cert)、秘密值(Stmp)和证书授权中心的公共值PiCA,这允许Alice生成密钥和公钥对。在框224处,Alice从Alice的秘密值(SiA)、证书(Cert)和特定贡献值(Stmp)生成Alice的秘密秘钥(StA)。
dU:=s+H(Cert)r
在框226处,Alice从证书授权中心的公共值(SiCA)、证书(Cert)和Alice的公共值(PiA)生成Bob的公钥(PstB)。
QV:=C+H(Cert)P-RU
在框228处,Bob接收证书(Cert)、秘密值(Stmp)和证书授权中心的公共值PiCA,这允许Bob生成密钥和公钥对。在框230处,Bob从Bob的秘密值(SiB)、证书(Cert)和特定贡献值(Stmp)生成Bob的秘密秘钥(StB)。
dV:=s+H(Cert)t
在框232处,Bob从证书授权中心的公共值(SiCA)、证书(Cert)和Bob的公共值(PiB)生成Alice的公钥(PstA)。
QU:=C+H(Cert)P-RV
在一些示例中,两个实体Alice和Bob建立认证的密钥对,同时执行比单独为每个实体执行密钥签发过程所需的计算更少的计算。为了使实体Alice和Bob进行通信,Alice和Bob两者向CA发送请求,CA返回具有附加信息的唯一证书,Alice和Bob可以从所述附加信息确定他们的对应私钥和彼此的公钥。该证书不绑定到单个参与者,而是绑定到两个实体Alice和Bob之间的通信。通过以下Python代码说明用于生成绑定Alice和Bob之间的通信的隐式证书的过程的实现方式:
图3示出了过程的说明性示例,作为由名为Alice的实体和证书授权中心执行的结果,该过程为实体生成密码密钥对和隐式证书。该过程示出了一种提供绑定到RLWE公钥的隐式证书的方法,所述隐式证书可用于在实体与各种其他实体之间建立通信。在所示示例中,该实体被标识为Alice。在各种实现方式中,实体是计算机系统、服务、移动装置、蜂窝装置、联网传感器、网络家电或其他通信实体。
泳道图300示出了一个过程,该过程开始于通信的双方和证书授权中心对值进行初始化。在框302处,被标识为Alice的第一实体生成秘密值SiA和公共值PiA。在框304处,证书授权中心生成秘密值SiCA和公共值PiCA。在框306处,Alice向证书授权中心提供Alice的公共值PiA和标识Alice IA的信息。标识Alice的信息可以是名称、标识符、地址、域名或与Alice相关联的其他信息。
在框308处,证书授权中心从Alice接收信息并验证标识信息。在一些示例中,证书授权中心向负责Alice实体操作的授权中心验证标识信息。如果证书授权中心无法验证由Alice提供的标识信息,则证书授权中心将不生成和签发证书。如果证书授权中心能够验证由Alice提供的标识信息,则过程前进到框310,并且证书授权中心开始生成证书的过程,该证书将允许Alice和其他实体相互通信。在框310处,证书授权中心生成将在证书生成过程中使用的随机值(Rand)。在框312处,证书授权中心生成临时值(Ptmp),该临时值是随机值(Rand)和Alice的标识信息IA的函数。在框314处,证书授权中心使用临时值(Ptmp)和Alice的标识信息IA生成证书(Cert)。证书授权中心生成316特定贡献值(Stmp),该特定贡献值是证书授权中心的秘密值SiCA、证书(Cert)和随机数(Rand)的函数。证书、特定贡献值(Stmp)和随机数(Rand)被提供318给Alice。
在框320处,Alice接收证书(Cert)、秘密值(Stmp)和证书授权中心的公共值PiCA,这允许Alice生成密钥和公钥对。在框322处,Alice从Alice的秘密值(SiA)、证书(Cert)和特定贡献值(Stmp)生成Alice的秘密秘钥(StA)。其他实体可以通过从证书授权中心获取证书(Cert)、特定贡献值(Stmp)和公共值PiCA,然后从证书授权中心的公共值(SiCA)和证书(Cert)生成Alice的公钥(PstA),从而生成Alice的公钥。
执行上述过程的python代码示例如下所示:
#生成具有隐式证书的公钥对的函数
def RLWEQV_keyGen():
#域参数
(R_q,a,D)=RLWEQV_Setup()
#CA参数
(e1,c,C)=RLWEQV_CA_param(a,R_q,D)
#请求计算
(R,r)=RLWEQV_Request(a,R_q,D)#公开请求和秘密随机值
#CA计算
(H,P,s)=RLWEQV_CA_comp(a,R,e1,c,R_q,D)#证书和临时值的CA计算
#密钥对计算
(d,Q)=RLWEQV_key_comp(s,H,r,P,C,R_q)#认证的私钥和公钥对
return(d,Q,R_q,a,D)
图4示出了过程的说明性示例,作为由证书授权中心执行的结果,该过程使用环容错学习(“RLWE”)生成用于生成隐式证书的参数。流程图400示出了在框402处开始的过程,在所述框中证书授权中心建立整数环Rq和Rq上的高斯分布χ。在框404处,证书授权中心从整数环Rq生成CA的私有值c。取两个样本,它们在分布χ内产生两个误差项e1和e2。在框406处,证书授权中心从整数环Rq生成域多项式A。在框408处,证书授权中心使用两个误差项e1和e2、CA的私有值c和域多项式A生成证书授权中心的公共值。在框410处,与CA相关联的私有值和公共值(c,C)以及域多项式A被提供给证书授权中心。在一些实现方式中,证书授权中心本身确定域参数,并且在执行与框408相关联的操作之后拥有域参数。在其他实现方式中,受信任的第三方确定域参数,并且将域参数通过受信任的通信信道提供给证书授权中心。在又一个实现方式中,域参数由制造商确定并且被编程到在制造期间充当证书授权中心的装置中。
图4所示的过程可以使用以下用python编写的代码来实现。函数RLWEQV建立参数并生成公钥对(d;Q),并且验证公钥中产生的误差项是否适当小。
from sage.stats.distributions.discrete_gaussian_polynomial import
DiscreteGaussianDistributionPolynomialSampler
#为隐式证书方案创建域参数的函数
def RLWEQV_Setup():
#域参数
q=next_prime(2**32)
D=DiscreteGaussianDistributionPolynomialSampler(ZZ[’x’],1024,3.192)
K=IntegerModRing(q)
R_q=K[’x’].quotient(x^1024+1,’x’)
a=R_q.random_element()
return(R_q,a,D)
#确定CA的公钥/私钥对的函数
def RLWEQV_CA_param(a,R_q,D):
#CA参数
c=R_q.random_element()
e1=D()
e4=D()
C=R_q(a*c+a*e1+e4)
return(e1,c,C)
图5示出了过程的说明性示例,作为由实体执行的结果,该过程使用环容错学习生成对隐式证书的请求。流程图500示出了在框502处开始的过程,在所述框中实体获取域参数集合。在一些实现方式中,域参数由证书授权中心提供。域参数包括整数环Rq、域多项式A和分布χ。
在框504处,实体从整数环Rq确定秘密值r,并且确定符合分布χ的相关联的误差值e3。在框506处,实体基于多项式和误差值e3生成请求RU。在框508处,该实体获取标识信息U的集合。在一些实现方式中,标识信息是与实体相关联的名称、地址、标识符或网络地址。在框510处,实体通过将请求RU和标识信息U提供给证书授权中心提交请求。
可以使用以下在Python中实现的代码来实现证书请求的生成:
#创建要发送到CA的证书请求的函数
def RLWEQV_Request(a,R_q,D):
#请求计算
r=R_q.random_element()#秘密
e2=D()
R=R_q(a*r+e2)#请求发送至CA
return(R,r)
图6示出了过程的说明性示例,作为由证书授权中心执行的结果,该过程使用环容错学习生成隐式证书。流程图600示出了在框602处开始的过程,在所述框中证书授权中心从请求者获取证书请求RU和相关联的标识信息U。在框604处,证书授权中心获取域参数包括域多项式A、散列函数H和整数环Rq。在框606处,证书授权中心确认请求者的身份符合与请求RU一起提供的标识信息U。在一些实现方式中,证书授权中心通过联系对请求者具有授权的机构来确认请求者的身份。如果证书授权中心无法确认请求者的身份符合标识信息U,则证书授权中心将返回错误,并且不会为请求者生成证书。
如果证书授权中心能够确认请求者的身份符合标识信息U,则执行前进到框608,在所述框中证书授权中心从整数环Rq生成随机样本k,并且确定相关联的误差项e4。证书授权中心基于请求RU、随机样本k、域多项式A和误差项e4生成610公共中间值PU。在框612处,证书授权中心使用公共中间值PU和标识信息U为请求者生成证书CertU。在框614处,证书授权中心生成要提供给请求者的贡献值s。使用证书授权中心秘密值c、证书的散列H(CertU)、随机样本k和由于创建CA密钥对而生成的误差值e1来确定贡献值。在框616处,证书授权中心将证书CertU和贡献值s返回给请求者。
可以使用以下Python代码来实现为请求者生成隐式证书的过程:
#接收到请求后执行CA计算的函数
def RLWEQV_CA_comp(a,R,e1,c,R_q,D):
#CA计算
k=R_q.random_element()
e3=D()
P=R_q(R+a*k-e3)
H=R_q(DiscreteGaussianDistributionPolynomialSampler(ZZ[’x’],1024,3.192)())
#哑值用作证书的散列,对于正确性
#它是哑值并不重要,但其必须一直保持一致
s=R_q(c+H*k+e1)#s和P发送至Alice和Bob两者
return(H,P,s)
图7示出了过程的说明性示例,作为由实体执行的结果,该过程使用环容错学习从隐式证书中提取公钥。流程图700示出了在框702处开始的过程,在所述框中实体从证书授权中心获取另一实体U的证书CertU。实体从证书授权中心获取704各种域参数,这些域参数允许实体为实体U生成公钥。域参数包括证书授权中心的公钥C、在证书生成期间由CA生成的PU和散列函数H。在框706处,实体使用证书授权中心的公钥C、证书的散列H(CertU)以及在证书PU的生成期间由CA生成的值来确定实体U的公钥QU,如下:
在框708处,实体已经使用从CA获得的信息获得了实体U的公钥。可以使用以下Python代码提取公钥:
#从隐式证书中提取公钥的函数
def RLWEQV_key_extract(H,P,C,R_q):
#密钥计算
Q=R_q(C+H*P)#认证的公钥
return(Q)
图8示出了过程的说明性示例,作为由实体执行的结果,该过程使用环容错学习从隐式证书中提取私钥/公钥对。流程图800示出了在框802处开始的过程,在所述框中请求者U从证书授权中心接收隐式证书以及相关值s。在框804处,请求者获取CA的公钥C并标识散列函数H。请求者获取806用于生成请求RU的值r。在框808处,请求者通过以下方式使用获取的值确定私钥dU:确定
在一些示例中,在确定公钥/私钥对之后,请求者通过确认密钥对产生较小误差来验证数字证书的完整性。在框812处,请求者通过确定E=(QU-Ax dU)来确定误差。如果请求者确定误差大于阈值量,则密钥对和数字证书无效。如果请求者确定误差在阈值量之内,则密钥对和证书被确认为有效,并且执行前进到框814。在框814处,私钥/公钥对(du,QU)被确定为有效并且可以被请求者使用。
以下Python代码可用于实现上述过程,以从证书中提取公钥/私钥对:
#从隐式证书创建最终公钥对的函数
def RLWEQV_key_comp(s,H,r,P,C,R_q):
#最终密钥对计算
d=R_q(s+H*r)#认证的私钥
Q=R_q(C+H*P)#认证的公钥
return(d,Q)
图9示出了过程的说明性示例,作为由实体执行的结果,该过程使用显式签名来验证隐式证书。流程图900示出了在框902处开始的过程,在所述框中实体接收要验证的隐式证书。实体从证书授权中心获取证书CertU和相关值s。在框904处,实体获取公共值PU和请求RU。在框906处,实体从CA获取证书授权中心的公钥C。在框908处,实体通过计算H(CertU)(PU-RU)-(As-C)来检查证书的有效性。
在判定框910,实体确定所得系数是否小于阈值。如果所得系数不小于阈值,则执行前进到框912,并且实体确定证书CertU无效。如果所得系数小于阈值,则执行前进到框914,并且实体确定证书CertU有效。
图4至图8所示的隐式证书方案的实现方式可以使用以下Python代码来验证:
在框1018处,Alice具有静态密钥对(stU,STU)。在框1020处,Bob具有静态密钥对(stV,STV)。图10示出了过程的说明性示例,作为由两个实体Alice(U)和Bob(V)执行的结果,该过程基于RLWE执行密钥交换。流程图1000示出了建立一对临时密钥以用于在U和V之间建立通信信道的过程。在各种示例中,参与者U和V两者如上所述经由隐式证书获取静态公钥对。在框1002处,U获取隐式证书和对应的密钥dU和QV,其中dU是U的私钥,并且QV是V的公钥。在框1004处,V获取隐式证书和对应的密钥dV和QU,其中dV是V的私钥,并且QU是U的公钥。实体U和B交换秘密,并且因此秘密足够小,密钥交换是可靠的。在框1006处,U确定新的私钥stU。在框1008处,V确定新的私钥stV。在框1010和1012处,U和V分别基于以下项来确定Dif因子(fU和fV):其相应的私钥(dU和dV)和私钥量(stU和stV)。在框1014和1016处,U和V分别确定新的公钥STU和STV。通过以下确定STV:
通过以下确定STV:
使用先前交换的Dif因子(fU和fV),每个实体创建临时密钥对并交换公共部分。在框1022和1024处,U和V分别确定私有临时密钥(epU和epV)。在框1026和1028处,U和V分别确定对应的公共临时密钥(EPU和EPV)。在框1030处,U将其公共临时密钥EPU提供给V,并且在框1032处,V将其公共临时密钥EPV提供给U。在框1034和1036处,由U和V将最终共享密钥K确定为静态密钥和临时密钥对两者的组合。以下python代码提供了密钥交换方案的实现方式。
图11示出了过程的说明性示例,作为由两个实体Alice(U)和Bob(V)执行的结果,该过程执行密钥交换。泳道图1100示出了在框1102和1104处开始的过程,在所述框中实体U和V获取隐式证书和对应的密钥对。U拥有U的私钥dU和Q的公钥QV。图10中示出和描述的密钥交换方案使用密钥开关并交换消息以获得静态密钥。图11中的示例示出了使用较少计算同时保持正确的密钥交换方案。在CA的帮助下建立的(di,Qi)密钥对是静态密钥,并且(sti,STi)密钥是针对每个新会话从静态对中新计算的临时密钥对。在框1106处,U确定新的私钥stU。在框1108处,V确定新的私钥stV。在框1110和1112处,U和V分别基于以下项来确定Dif因子(fU和fV):其相应的私钥(dU和dV)和私钥量(stU和stV)。在框1114和1116处,U和V分别确定新的公钥STU和STV。通过以下确定STV:
通过以下确定STV:
在框1118和1120处,U和V分别建立临时密钥对(stU,STU)和(stV,STV)。在框1122和1124处,共享对称密钥K由U和V对组合静态密钥和临时密钥的输入使用上面在图10中使用的提取函数确定。下面的Python代码显示了图11所示过程的实现方式:
在诸如图10和图11所示的各种示例中,可以使用共享密钥在能够访问共享密钥的各方之间建立加密通信会话。消息由一方使用共享密钥加密,传输给另一方,并且使用另一方已知的匹配共享密钥解密。
图12示出了系统的说明性示例,其中隐式证书由装置制造商签发给装置,并且装置管理服务被提供有允许使用证书的公钥。系统图1200包括托管装置管理服务的装置管理服务器1202。装置管理服务器1202与由一个或多个装置制造商制造的装置通信。在一些示例中,装置管理服务器1202连接到计算机网络诸如互联网,并且与各种连接到互联网的装置通信以执行装置管理功能。连接到互联网的装置可以包括传感器装置、系统控制装置或计算装置。在一些实现方式中,连接到互联网的装置可以包括家用电器、家庭自动化外围装置或环境监测装置,并且装置管理服务器1202从连接到互联网的装置收集和/或存储数据。在另一实现方式中,连接到互联网的装置可以包括装置控制器、环境控制装置或其他开放装置,并且装置管理服务器1202向连接到互联网的装置提供命令。
装置制造商计算机系统1204充当证书授权中心,并且维护密钥存储库1206。在一些示例中,密钥存储库被维护在存储装置上的装置制造商计算机系统1204上。在另一个示例中,密钥库被维护在与装置制造商计算机系统1204分开的存储装置上。在各种实现方式中,密钥存储库被维护为链接列表、二叉树、有序阵列或关系数据库结构。可以使用装置制造商计算机系统1204可访问的密码密钥来加密密钥存储库。装置制造商计算机系统1204可以使用密钥存储库1206保留可以用于管理连接到互联网的装置的密码密钥。在各种示例中,密钥存储库1206保留与证书授权中心相关联的公钥和私钥、与连接到互联网的装置相关联的公钥和私钥、以及与装置管理服务器1202相关联的公钥和私钥中的一个或多个。
装置管理服务器1202维护信任存储库1208。信任存储库1208维护与装置管理服务器1202信任的实体相关联的公钥集合。在一些示例中,装置制造商计算机系统1204的公钥被存储在信任存储库1208中。信任存储库1208还可用于保留与其他证书授权中心相关联的公钥。
装置制造商管理网络家电1210诸如联网传感器、联网控制装置、联网家用电器或其他装置的初始化。网络家电1210维护证书存储库1212。证书存储库1212保留与网络家电1210相关联的数字证书和与网络家电1210相关联的私钥。
当制造商创建网络家电1210时,制造商可以通过与网络家电1210合作以生成数字证书和密码密钥对,或者代表网络家电生成数字证书来促进网络家电1210的初始化。在一些实现方式中,装置制造商计算机系统1204为网络家电1210生成数字证书,并且在制造时将数字证书提供给网络家电1210。网络家电1210将数字证书存储在证书存储库1212上。在另一实现方式中,装置制造商计算机系统1204使网络家电1210生成数字证书和密码密钥对。网络家电1210将未签名的证书发送到装置制造商计算机系统1204,并且装置制造商计算机系统1204用保留在密钥存储库1206中的证书授权中心的私钥对数字证书进行签名。网络家电1210将家电私钥和由证书授权中心签名的数字证书保留在证书存储库1212中。装置制造商计算机系统1204向装置管理服务器1202提供证书授权中心的公钥,该公钥使得装置管理服务器1202能够验证由网络家电提供的证书的真实性。
图13示出了过程的说明性示例,作为由装置制造商执行的结果,该过程向装置签发隐式证书。流程图1300示出了在框1302处开始的过程,在所述框中装置制造商计算机系统标识新装置。在一些示例中,新装置是由装置制造商构建的装置。在另一个示例中,该装置是由商家出售给最终用户的新装置。在框1304处,装置制造商计算机系统生成新装置的标识信息。标识信息可以包括名称、网络地址、标识符、序列号或新装置专用的其他信息中的一个或多个。在框1306处,装置制造商计算机系统为新装置生成新的私有值和公共值。
装置管理计算机系统充当证书授权中心,并且根据上述证书生成方法中的一个为新装置生成隐式证书。在框1308处,制造商计算机系统使用新装置的公共值和新装置的标识信息来为新装置生成隐式证书。隐式证书可用于建立与装置管理服务的认证的通信信道。在一些示例中,隐式证书可以用于建立与其中新装置的身份被认证的任何其他实体的通信信道。在另一个示例中,隐式证书可以用于建立与其中特定实体和新装置的身份被认证的特定实体的通信信道。
在框1310处,装置制造商计算机系统将新装置的标识信息、证书以及私有值提供给新装置。在一些示例中,信息经由在制造期间建立的通信通道提供给装置。在另一个示例中,通过将信息写入到存储器装置并将该存储器装置安装在新装置上来将该信息提供给该装置。在框1312处,装置制造商计算机系统向装置管理服务提供证书授权中心的公钥。在一些示例中,装置制造商计算机系统发布证书授权中心的公钥,以便各种装置管理服务可以使用提供给装置的隐式证书来建立认证的通信信道。装置管理服务可以是由装置制造商或另一实体操作的服务。
图14示出了过程的说明性示例,作为由装置制造商和装置执行的结果,该过程生成供装置使用的隐式证书。该过程示出了一种为装置提供绑定到RLWE公钥的隐式证书的方法,所述隐式证书可用于在装置与各种其他实体(诸如web服务)之间建立通信。在各种实现方式中,装置可以是计算机系统、服务、移动装置、蜂窝装置、联网传感器、网络家电、可穿戴装置或物联网(“IOT”)实体。泳道图1400示出了在框1402处开始的过程,在所述框中由装置制造商计算机系统对值进行初始化,该装置制造商计算机系统还充当证书授权中心。如果秘密值和公共值对于证书授权中心尚不可用,则装置制造商计算机系统将为证书授权中心生成秘密值和公共值,所述秘密值和公共值将用于为装置生成隐式证书。在框1404处,装置制造商计算机系统为装置生成标识信息。标识信息可以包括网络地址、装置名称、装置序列号或其他标识信息。制造商计算机系统将标识信息发送到装置。
在框1406处,装置接收标识信息。在框1406处,装置将标识信息存储到装置可访问的存储器中。在框1408处,装置生成秘密值SiA和公共值PiA。在框1402处,制造商生成秘密值SiCA和公共值PiCA。在框1410处,装置向制造商提供装置的公共值PiA和标识装置的信息IA。标识装置的信息可以是名称、标识符、地址、域名或与装置相关联的其他信息。在框1410处,装置将装置的公共值提供给制造商计算机系统。在框1412处,制造商计算机系统接收装置的公共值,并且在一些示例中,从装置接收附加标识信息。
在框1414处,制造商计算机系统开始生成证书的过程,该证书将允许装置与其他实体进行通信。在框1414处,制造商生成将在证书生成过程中使用的随机值(Rand)。在框1416处,制造商生成临时值(Ptmp),该临时值是随机值(Rand)和装置的标识信息IA的函数。在框1418处,制造商使用临时值(Ptmp)和装置的标识信息IA生成证书(Cert)。制造商生成1420特定贡献值(Stmp),该特定贡献值是制造商的秘密值SiCA、证书(Cert)和随机数(Rand)的函数。证书、特定贡献值(Stmp)和随机数(Rand)被提供1422给装置。
在框1424处,装置接收证书(Cert)、秘密值(Stmp)和制造商的公共值PiCA,这允许允许装置生成密钥和公钥对。在框1426处,装置从装置的秘密值(SiA)、证书(Cert)和特定贡献值(Stmp)生成装置的秘密秘钥(StA)。其他实体可以通过从制造商获取证书(Cert)、特定贡献值(Stmp)和公共值PiCA,然后从制造商的公共值(SiCA)和证书(Cert)生成装置的公钥(PstA),从而生成装置的公钥。
图15示出了过程的说明性示例,作为由装置管理服务、装置制造商和装置执行的结果,该过程生成用于在装置和装置管理服务之间建立认证通信的隐式证书。该过程示出了提供绑定到RLWE公钥的隐式证书的方法,所述隐式证书可用于在两个实体诸如装置管理服务和装置之间建立通信。
泳道图1500示出了一个过程,该过程开始于通信的双方和证书授权中心对值进行初始化。在框1502处,充当证书授权中心的制造商计算机系统生成秘密值SiCA(c)和公共值PiCA(C)。
CA(c,C=Ac+Ae1+e2)
在框1504处,制造商计算机系统生成该装置的标识信息,并且将该标识信息(IA)提供给装置。装置接收1506标识信息(IA),并且将该标识信息存储在装置可访问的存储器中。在框1508处,装置生成秘密值SiA(r)和公共值PiA(RU)。
r←Rq,e4←χ
RU:=Ar+e3
在框1510处,装置向制造商计算机系统提供公共值PiA。
在框1512处,管理服务生成秘密值SiB(t)和公共值PiB。
t←Rq,e4←χ
RV:=At+e4
在框1514处,管理服务向制造商计算机系统提供管理服务公共值PiB和标识管理服务的信息IB。
在框1516处,制造商计算机系统从装置和管理服务接收信息,并且验证每个实体的标识信息。在一些示例中,制造商计算机系统向另一个证书授权中心验证管理服务的标识信息。如果其他证书授权中心无法验证管理服务提供的标识信息,则制造商计算机系统将不会生成证书并将证书签发给任一方。如果制造商计算机系统能够验证标识信息,则过程前进到框1518,并且制造商计算机系统开始生成证书的过程,该证书将允许装置和管理服务通过认证的连接彼此通信。在框1518处,制造商计算机系统生成将在证书生成过程中使用的随机值(Rand或k)。
k←Rq
在框1520处,制造商计算机系统生成临时值(Ptmp),该临时值是随机值(Rand)、装置的标识信息IA和管理服务的标识信息IB的函数。
P=RU+RV+Ak-e5
在框1522处,制造商计算机系统使用临时值(Ptmp)、标识信息IA和标识信息IB生成证书(Cert)。
Cert:=Encode(P,U,V)
制造商计算机系统生成1524特定贡献值(Stmp),该特定贡献值是制造商计算机系统的秘密值SiCA、证书(Cert)和随机数(Rand)的函数。
Stmp:=c+H(Cert)k+e1
证书、特定贡献值(Stmp)和随机数(Rand)被提供给装置和管理服务两者。
在框1530处,装置接收证书(Cert)、秘密值(Stmp)和证书授权中心的公共值PiCA,这允许允许装置生成密钥和公钥对。在框1532处,装置从装置的秘密值(SiA)、证书(Cert)和特定贡献值(Stmp)生成秘密秘钥(StA)。
dU:=s+H(Cert)r
在各种实现方式中,装置从制造商计算机系统的公共值(SiCA)、证书(Cert)和装置公共值(PiA)生成管理服务的公钥(PstB)。
QV:=C+H(Cert)P-RU
在框1526处,管理服务接收证书(Cert)、秘密值(Stmp)和制造商计算装置的公共值PiCA,这允许允许管理服务生成密钥和公钥对。在框1528处,管理服务从管理服务的秘密值(SiB)、证书(Cert)和特定贡献值(Stmp)生成秘密秘钥(StB)。
dV:=s+H(Cert)t
管理服务可以从制造商计算机系统的的公共值(SiCA)、证书(Cert)和管理服务的公共值(PiB)生成装置的公钥(PstA)。
QU:=C+H(Cert)P-RV
所得到的隐式证书允许装置上的管理服务在彼此之间建立认证的通信会话。
图16示出了系统的说明性示例,其中隐式证书用于建立与web服务的认证的通信会话。系统图1600示出了经由受保护的网络连接1606与装置管理服务器1604通信的联网装置1602。联网装置1602维护证书存储库1608。证书存储库1608保持供联网装置1602使用的隐式证书和联网装置1602的私钥。联网装置1602可以是联网传感器、联网控制装置、联网工业控制器、可穿戴装置、家用电器或其他联网装置。
装置管理服务器1604托管web服务1610。Web服务1610是与联网装置1602进行通信的装置管理服务。在一些示例中,web服务1610从联网装置1602收集信息。在其他示例中,web服务1610向联网装置1602发送命令。在又一个示例中,联网装置1602通过受保护的网络连接1606将请求发送到web服务1610。在一个实现方式中,联网装置1602是家用电器,并且该家用电器向web服务1610发送请求更换消耗品的命令。例如,家用电器可以是打印机,并且消耗品可以是墨盒。在另一个示例中,家用电器可以是洗碗机,并且消耗品可以是洗涤剂。在又一个示例中,家用电器可以是炉子,并且消耗品可以是过滤器。
Web服务1610保留服务证书1612。在一些示例中,服务证书1612是签发给web服务1610的隐式证书。在另一个示例中,服务证书1612是与联网装置1602协作创建的隐式证书,并且允许web服务1610在联网装置1602和web服务1610之间建立认证的连接。装置管理服务器1604维护信任存储库1614。信任存储库1614保持与装置管理服务器1604信任的实体相关联的公钥。信任存储库1614保留与证书授权中心相关联的公钥,所述证书授权中心签发服务证书1612和与联网装置1602相关联的装置证书。在一些实现方式中,服务证书1612和装置证书是对联网装置1602和web服务1610之间的通信进行认证的匹配隐式证书,并且每个证书用证书授权中心的公钥进行认证。
在各种示例中,隐式证书允许联网装置1602和web服务1610使用共享秘密建立和认证受保护的通信会话。成功生成和使用共享秘密隐式地认证联网装置1602和web服务1610的身份。
图17示出了过程的说明性示例,作为由装置执行的结果,该过程使用隐式证书与装置管理服务建立受保护的通信会话。流程图1700示出了在框1702处开始的过程,在所述框中装置建立到装置管理服务的连接。可以经由有线连接或无线连接建立连接。在一些示例中,该连接是根据传输控制协议(“TCP”)建立的网络连接。在一些实现方式中,装置发起连接的建立,而在其他实现方式中,装置管理服务发起装置和装置管理服务之间的连接的建立。
装置和装置管理服务使用隐式证书建立连接。在框1704处,装置向装置管理服务提供隐式证书。在一些示例中,装置通过向装置管理服务提供标识符来向装置管理服务提供隐式证书,并且装置管理服务使用该标识符来检索隐式证书。在一些实现方式中,证书由装置管理服务提供给装置。在一些示例中,证书是与装置相关联的证书,该证书可以用于建立与任何其他实体的通信会话。在图3中示出了用于生成这种隐式证书的过程的示例。在另一个示例中,证书是绑定到装置管理服务和装置的证书(例如,如图2所示),并且该证书可用于仅在装置和装置管理服务之间建立通信会话。
使用证书,装置导出1706装置管理服务的公钥。在一些示例中,装置管理服务能够使用证书导出装置的公钥。在框1708处,装置和装置管理服务两者生成共享秘密。装置和装置管理服务交换中间值,并且中间值和证书用于生成不容易被第三方获取的共享秘密。在框1710处,装置和装置管理服务使用共享秘密来建立受保护的通信会话。在一些示例中,受保护的通信会话是传输层安全(“TLS”)会话,并且共享秘密用作用于生成会话密钥的主秘密。
图18示出了根据一个实施方案的实现TLS协议的网络堆栈的说明性示例。网络堆栈图1800示出了应用层1802、安全套接字层/传输层安全(“SSL/TLS”)协议层1804以及传输层1806。应用层1802包括多种应用协议,包括HTTP协议1808、FTP协议1810和Telnet协议1812。HTTP协议1808利用SSL/TLS协议创建HTTPS协议。FTP协议1810使用SSL/TLS协议创建FTPS协议。Telnet协议1812利用SSL/TLS协议实现Telnet-TLS协议。
SSL/TLS协议层1804包括握手协议1814、密码协议1816、警报协议1818和记录协议1820。握手协议1814用于协商安全连接。握手协议1814可用于建立与安全连接相关联的多个参数,诸如会话标识符、对等证书、压缩方法、密码规范和主秘密。密码协议1816用于传送与安全连接相关联的加密策略中的改变。警报协议1818用于传达与安全连接状态有关的消息。传达严重性为“严重”的警报消息导致安全连接终止。
记录协议1820从更高层接收数据,并且将数据分割成块,可选地压缩数据,应用消息认证码(“MAC”),并且加密和传输得到的数据。当通过网络接收数据时,接收到的数据被解密、使用MAC进行验证、解压缩(如有必要)、碎片整理并返回到更高层。应用数据消息可以由记录协议1820承载,并且被视为对记录协议1820的透明数据。
SSL/TLS协议层1804在实现TCP/IP协议1822的传输层1806的顶部上操作。TCP/IP协议1822提供可靠的面向连接的和数据报协议。UDP提供一种无连接传输服务,该服务在两个端点之间传输单个信息分组。该传输是不可靠的,因为接收方不会自动确认所传输分组的接收。TCP提供一种面向连接的传输服务,该服务在两个端点之间可靠地传输数据流。该传输是可靠的,并且由接收方确认数据流的接收。
RFC 768中介绍了有关用户数据报协议(“UDP”)的附加信息。RFC 793中介绍了有关TCP的附加信息。描述TLS协议(版本1.2)的附加信息包含在RFC 5246中,其以引用方式并入本文。
图19示出了根据一个实施方案的过程的说明性示例,该过程在由装置和装置管理服务执行时使用TLS协议建立受保护的连接。泳道图1900示出了在框1902处开始的TLS握手过程。在框1902处,装置向装置管理服务发送“客户端问候”消息。“客户端问候”消息包括密码套件列表。装置管理服务从装置接收1904“客户端问候”消息,并且至少部分地基于由装置提供的密码套件列表来确定相互支持的密码套件的可接受集合。所选择的密码套件可以基于隐式证书识别密钥生成算法,诸如图10和图11中所示的过程。在框1906处,装置管理服务向装置(包括确定的密码套件集合)发送“服务器问候”消息,从而允许装置和装置管理服务识别用于建立受保护连接的密钥交换算法。装置从装置管理服务接收1908“服务器问候”消息连同确定的密码套件集合。在一些示例中,装置管理服务将数字证书发送到装置,以便装置可以使用装置管理服务的提供的证书来验证装置管理服务的身份。
在一些实现方式中,装置向装置管理服务提供隐式数字证书。在一些示例中,证书绑定到装置和装置管理服务两者,并且在装置和装置管理服务两者都经过认证的情况下促进装置和装置管理服务之间的认证的通信。在另一个示例中,证书绑定到装置,并且在装置的身份被认证的情况下促进装置与任何其他实体之间的认证的通信。在框1910处,装置管理服务向装置发送对装置的数字证书的请求。在框1912处,装置通过向装置管理服务提供与装置相关联的隐式数字证书来响应于该请求。如果装置未提供请求的数字证书,则装置管理服务可以用握手失败警报来响应,并且中止建立连接。
在框1914处,装置管理服务向装置发送“服务器问候完成”消息。装置接收1916“服务器问候完成”消息,并且进行到框1918,在所述框中装置确定提供给装置管理服务的差异因子。作为响应,在框1920处,装置管理服务确定提供给装置的对应差异因子。装置和装置管理服务两者使用来自另一方的差异因子和隐式数字证书生成预主秘密,该预主秘密对于双方来说是已知的,但很难为第三方确定。在框1922处,装置使用预主秘密来生成主秘密和会话密钥。在框1924处,装置管理服务生成主秘密和会话密钥。在一些实现方式中,预主秘密被用作主秘密。装置通过向装置管理服务发送“更改密码规范”消息,然后发送“客户端完成”消息,从而发出信号1926表示装置将切换到安全密码。在框1928处,装置管理服务接收“更改密码规范”消息和“客户端完成”消息。在框1930处,装置管理服务以其自身的“更改密码规范”消息,然后“服务器完成”消息做出响应。在框1932处,装置接收“更改密码规范”和“服务器完成”消息。
一旦完成泳道图1900所示的过程,则已经在装置和装置管理服务之间协商了安全会话。装置和装置管理服务可以继续使用记录协议传输由协商的密码套件保护的应用数据。
图20示出了根据一个实施方案的过程的说明性示例,该过程在由装置和装置管理服务执行时使用TLS协议传输应用数据。泳道图2000示出了使用TLS记录协议将数据从发送方传输到接收方。在框2002处,发送方从应用接收数据。数据可以明文形式接收,并且可以具有任意长度。在框2004处,发送方将接收的应用数据分成214字节或更小的片段。可选地,在框2006处,发送方可以压缩片段。可以在RFC 3749中找到有关TLS压缩算法的附加信息。如果使用压缩,则将明文片段转换为压缩的数据片段。在框2008处,发送方将具有序列号的消息认证码(“MAC”)添加到每个片段,所述消息认证码帮助保护数据传输的完整性。发送方根据协商的密码规范加密2010结果。在框2012处,发送方将TLS记录标头附加到加密的片段。在框2014处,完成的片段被发送并被接收器2016接收。在各种示例中,可以不同顺序执行操作。例如,在一些实现方式中,发送方加密数据,然后将消息认证码添加到加密的数据。
当接收方接收到片段时,接收方使用协商的密码规范和会话密钥解密2018片段。使用消息认证码验证2020传输的完整性。如果接收到的片段被压缩,则接收器将压缩的片段解压缩2022以产生明文片段。片段被重组2024以重新创建原始传输数据,并且被递送到应用层中的应用。
图21示出用于实现根据各个实施方案的各方面的示例性环境2100的各方面。应理解,尽管为了说明的目的使用基于web的环境,但是在适当的情况下可以使用不同的环境来实施各种实施方案。环境包括电子客户端装置2102,所述电子客户端装置可以包括可操作来通过适当网络2104发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置的用户的任何适当装置。此类客户端装置的示例包括个人计算机、移动电话、手持式消息传送装置、膝上型计算机、平板电脑、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可以包括任何适当网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他此类网络和/或其组合。用于这种系统的部件可至少部分取决于选定的网络和/或环境的类型。用于通过这样的网络进行通信的许多协议和部件是公知的,将不在此进行详细讨论。经由网络的通信可以通过有线或无线连接以及其组合来实现。在此示例中,网络包括互联网和/或其他可公开寻址的通信网络,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器2106,但是对于其他网络来说,可以使用提供类似目的的备选装置,如对本领域的普通技术人员来说将显而易见的。
说明性环境包括至少一个应用服务器2108和数据存储库2110。应理解,可以存在可以被链接或以其他方式配置的多个应用服务器、层或其他元件、进程或部件,其可以交互以执行诸如从适当的数据存储库获得数据的任务。如本文所使用的服务器可以各种方式来实现,诸如硬件装置或虚拟计算机系统。在某些情况下,服务器可以指代正在计算机系统上执行的编程模块。如本文中所使用,除非另有说明或从上下文中清楚,否则术语“数据存储库”是指能够存储、访问并检索数据的任何装置或装置的组合,所述装置或装置的组合可以包括在任何标准、分布式、虚拟或群集环境中的数据服务器、数据库、数据存储装置以及数据存储介质的任何组合和任何数量的所述数据服务器、数据库、数据存储装置以及数据存储介质。应用服务器可以包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于根据需要与数据存储库集成以执行客户端装置的一个或多个应用的方面、处理应用的数据访问和业务逻辑中的一些或全部。应用服务器可以与数据存储库协作来提供访问控制服务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供给用户的其他内容,所述内容可由web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象表示法(JSON)和/或另一适当的客户端侧结构化语言的形式提供给用户。传送到客户端装置的内容可以由客户端装置处理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。在此示例中,对全部请求和响应的处理以及客户端装置2102与应用服务器2108之间的内容递送可由web服务器使用PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或另一种适当服务器侧结构化语言来处理。此外,除非另外从上下文中清楚,否则在本文中被描述为由单个装置执行的操作可以由可能形成分布式和/或虚拟系统的多个装置共同地执行。
数据存储库2110可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机制和介质。例如,所示数据存储库可以包括用于存储生产数据2112和用户信息2116的机制,所述生产数据和用户信息可以用于为生产侧提供内容。所示数据存储库还包括用于存储日志数据2114的机制,所述机制可以用于报告、分析或其他此类目的。应理解,可能存在可需要存储在数据存储库中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可以视情况存储在上文列出的机制中的任何机制中或存储在数据存储库2110中的附加机制中。数据存储库2110可以通过与其相关联的逻辑来操作,以便从应用服务器2108接收指令,并且响应于所述指令获得数据、更新数据或以其他方式处理数据。应用服务器2108可以响应于所接收指令而提供静态、动态数据或静态和动态数据的组合。动态数据诸如在web日志(博客)、购物应用程序、新闻服务以及其他此类应用程序中使用的数据可以由如本文所描述的服务器侧结构化语言生成或者可以由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例中,通过由用户操作的装置,用户可以提交针对某一类型的项目的搜索请求。在这种情况下,数据存储库可以访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得有关所述类型的项目的信息。接着可以将信息以诸如网页上的结果列表的形式返回给用户,用户能够通过客户端装置2102上的浏览器来查看所述网页。可以在专用浏览器页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下文,而是可以更普遍地适用于处理一般的请求,其中请求不一定是对内容的请求。
每个服务器通常都将包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时(即作为被执行的结果)允许服务器执行其预期的功能。
在一个实施方案中,环境为利用若干计算机系统和部件的分布式和/或虚拟计算环境,所述计算机系统和部件使用一个或多个计算机网络或直接连接,经由通信链路进行互连。然而,本领域普通技术人员应理解,此类系统可以在具有比图21所示的部件更少或更多的部件的系统中同样顺利地操作。因此,图21中的系统2100的描绘本质上应视为说明性的,并且不限于本公开的范围。
本发明的实施方案可以根据以下条款来描述:
1.一种计算机实现的方法,其包括:
在第一实体处获取与所述第一实体和第二实体之间的通信信道相关联的隐式证书;
从所述隐式证书中导出与所述第一实体相关联的第一私钥和与所述第二实体相关联的第二公钥;
至少部分地基于分布来获取第一私有静态密钥;
至少部分地基于第一私有静态密钥、与整数环相关联的域多项式、与所述第一实体相关联的所述第一私钥和第一公钥来确定第一差异;
向所述第二实体提供所述第一差异;
从所述第二实体获取第二差异,所述第二差异至少部分地基于与所述第二实体相关联的第二私有静态密钥、与所述整数环相关联的所述域多项式、与所述第二实体相关联的第二私钥以及与所述第二实体相关联的第二公钥;
从所述第二公钥和所述第二差异确定第二静态公钥;以及
至少部分地基于所述第二公共静态密钥和所述第一私有静态密钥来确定共享密钥。
2.如条款1所述的计算机实现的方法,其还包括:
确定所述整数环上的第一私有临时密钥;
至少部分地基于所述域多项式和第一私有临时密钥来确定第一公共临时密钥;
向所述第二实体提供所述第一公共临时密钥;
从所述第二实体获取第二公共临时密钥;以及
其中所述共享密钥至少部分地基于所述第二公共临时密钥和所述第一私有临时密钥。
3.如条款1或2所述的计算机实现的方法,其还包括:
建立从所述第一实体到所述第二实体的网络连接;
生成消息;
用所述共享密钥加密所述消息以产生加密的消息;
经由所述网络连接将所述加密的消息传输到所述第二实体;以及
其中所述第一实体和所述第二实体是计算机系统。
4.如条款2或3所述的计算机实现的方法,其还包括:
从整数环中选择样本;
至少部分地基于所述第二公共静态密钥和所述第一私有临时密钥的乘积与所述第二公共临时密钥和所述第一私有静态密钥的乘积之间的差来确定所述共享密钥;以及
从所述样本的系数提取共享位。
5.一种系统,其包括:
一个或多个处理器;以及
存储器,其存储计算机可执行指令,所述计算机可执行指令如果被执行,则致使所述一个或多个处理器:
从隐式证书中导出与第一实体相关联的第一私钥和与第二实体相关联的第二公钥;
获取第一私有静态密钥;
获取与所述第二实体相关联的值;
从所述第二公钥和所述值确定第二静态公钥;以及
至少部分地基于所述第一私有静态密钥和所述第二静态公钥确定共享密钥。
6.如条款5所述的系统,其中至少部分地基于概率分布随机地生成所述第一私有静态密钥。
7.如条款5或6所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器使用所述共享密钥来使用加密通信进行通信。
8.如条款5至7中任一项所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
至少部分地基于所述第一私钥确定与所述第一实体相关联的值;以及
将所述值提供给所述第二实体,以使所述第二实体能够导出所述共享密钥。
9.如条款8所述的系统,其中确定所述值还至少部分地基于与整数环相关联的域多项式。
10.如条款5至9中任一项所述的系统,其中:
至少部分地基于所述第一私有静态密钥和所述第二静态公钥确定所述共享密钥;以及
所述共享密钥至少部分地基于由所述第二实体生成的临时密钥来确定。
11.如条款5至10中任一项所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
确定第一私有临时密钥;
至少部分地基于所述第一私有临时密钥来确定第一公共临时密钥;以及
将所述第一公共临时密钥提供给所述第二实体,以使所述第二实体能够确定所述共享密钥。
12.如条款5至11中任一项所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
获取消息;
使用所述共享密钥为所述消息生成数字签名;以及
向所述第二实体提供所述消息和所述数字签名。
13.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令致使所述计算机系统至少:
从隐式证书中导出与第二实体相关联的第二公钥;
获取第一私有静态密钥;
获取与所述第二实体相关联的值;
从所述第二公钥和所述值确定第二静态公钥;
确定第一私有临时密钥;
从所述第二实体获取第二公共临时密钥;以及
至少部分地基于所述第二公共临时密钥、所述第二静态公钥、所述第一私有静态密钥和所述第一私有临时密钥来确定共享密钥。
14.如条款13所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
至少部分地基于所述第一私有静态密钥、与第一实体相关联的第一私钥和第一公钥确定第一差异;以及
向所述第二实体提供所述第一差异。
15.如条款14所述的非暂时性计算机可读存储介质,其中还至少部分地基于与整数环相关联的域多项式确定所述第一差异和所述值。
16.如条款13至15中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
使用所述共享密钥对消息进行加密,以产生加密的消息;以及
将所述加密的消息传输至所述第二实体。
17.如条款13至16中任一项所述的非暂时性计算机可读存储介质,其中至少部分地基于与所述第二实体相关联的第二私有静态密钥、与整数环相关联的域多项式、所述第二私钥和所述第二公钥生成所述值。
18.如条款13至17中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
至少部分地基于所述第一私有临时密钥来确定第一公共临时密钥;以及
向所述第二实体提供所述第一公共临时密钥。
19.如条款13至18中任一项所述的非暂时性计算机可读存储介质,其中所述第二公钥的成功使用验证了所述第二实体与所述第二公钥之间的密码绑定。
20.如条款13至19中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括这样的指令,作为由所述一个或多个处理器执行的结果,所述指令致使所述计算机系统通过使用所述共享密钥验证数字签名来验证所述隐式证书绑定到所述第二实体。
21.一种计算机实现的方法,其包括:
获取域参数集合,所述域参数包括整数环、散列函数和域多项式;
从请求实体获取证书请求和标识所述请求实体的信息,所述证书请求至少部分地基于来自所述整数环的第一样本,所述第一样本由所述请求实体选择;
从所述整数环获取第二样本;
至少部分地基于所述证书请求、所述第二样本和所述域多项式确定公共贡献值;
从所述公共贡献值和标识所述请求实体的所述信息生成证书;
至少部分地基于与证书授权中心相关联的公钥/私钥对的私钥、根据所述散列函数确定的所述证书的散列以及所述第二样本,生成与所述请求者相关联的请求者特定的贡献值;以及
向所述请求者传输所述证书。
22.如条款21所述的计算机实现的方法,其中:
所述证书请求至少部分地基于与所述第一样本相关联的第一误差项;
所述公共贡献值至少部分地基于与所述第二样本相关联的第二误差项;以及
与所述请求者相关联的所述请求者特定的贡献值至少部分地基于与所述私钥相关联的第三误差项。
23.如条款21或22所述的计算机实现的方法,其中:
所述请求者是客户端计算机系统;以及
所述证书授权中心是所述客户端计算机系统信任的计算机系统。
24.如条款21至23中任一项所述的计算机实现的方法,其还包括:
确定所述请求实体的所述身份与标识所述请求实体的信息匹配;以及
其中所述信息由所述请求实体随所述证书请求一起提供。
25.如条款21至24中任一项所述的计算机实现的方法,其中作为已经确定所述请求实体的所述身份有效的结果而生成所述证书。
26.一种系统,其包括:
一个或多个处理器;以及
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令如果被执行,则致使所述一个或多个处理器:
标识域参数集合,所述域参数指示整数环、散列函数和域多项式;
确定公共贡献值,所述公共贡献值至少部分地基于证书请求、从所述整数环中选择的样本以及所述域多项式;以及
至少从与请求者相关联的证书请求、从所述整数环选择的样本、所述域多项式以及与所述请求者相关联的标识符生成证书。
27.如条款26所述的系统,其中:
所述证书请求和所述标识符是从所述请求者获取的;以及
所述证书请求至少部分地基于由所述请求者从所述整数环选择的随机选择样本。
28.如条款27所述的系统,其中所述计算机可执行指令使所述一个或多个处理器进一步:
至少部分地基于与所述系统相关联的公钥/私钥对的私钥、根据所述散列函数确定的所述证书的散列以及所述样本,生成与所述请求者相关联的请求者特定的贡献值;以及
向所述请求者提供所述证书和所述请求者特定的贡献值。
29.如条款26至28中任一项所述的系统,其中:
所述请求者是在第一计算机系统上运行的服务;以及
所述系统是所述请求者信任的第二计算机系统。
30.如条款26至29中任一项所述的系统,其中所述计算机可执行指令使所述一个或多个处理器进一步:
使用所述标识符验证所述请求者的所述身份;以及
作为已验证所述请求者的所述身份的结果,生成所述证书。
31.如条款26至30中任一项所述的系统,其中所述计算机可执行指令使所述一个或多个处理器进一步:
确定所述请求者的所述身份与所述标识符不匹配;以及
作为确定所述请求者的所述身份与所述标识符不匹配的结果,通知与所述请求的所述标识符相关联的实体所述证书请求被拒绝。
32.如条款28所述的系统,其中所述计算机可执行指令使所述一个或多个处理器进一步:
所述公共贡献值至少部分地基于由第二请求者提供的第二证书请求;
至少部分地使用与所述第二请求者相关联的第二标识符生成所述证书;以及
其中所述证书绑定到所述请求者和所述第二请求者之间的通信。
33.如条款32所述的系统,其中:
所述第二证书请求至少部分地基于由所述第二请求者从所述整数环选择的第二随机选择样本;以及
所述计算机可执行指令使所述一个或多个处理器进一步向所述第二请求者提供所述证书、所述请求者特定的贡献值。
34.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令致使所述计算机系统至少:
获取域参数集合,所述域参数包括整数环、散列函数和域多项式;
从所述整数环中选择样本;
至少部分地基于所述域多项式和所述样本生成证书请求;
从证书授权中心获取证书、请求者特定的贡献值和公共贡献值,作为提供所述证书请求的交换;
至少部分地基于所述请求者特定的贡献值、根据所述散列函数的所述证书的散列以及所述样本来生成私钥;以及
使用所述私钥执行密码操作。
35.如条款34所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
从证书授权中心获取公共贡献值,作为提供所述证书请求的交换;以及
至少部分地基于所述证书授权中心的公钥、根据所述散列函数的所述证书的散列以及所述公共贡献值生成公钥。
36.如条款34或35所述的非暂时性计算机可读存储介质,其中所述证书至少部分地基于所述证书请求、由所述证书授权中心从所述整数环中选择的第二样本、所述域多项式和与所述计算机系统相关联的标识信息。
37.如条款34至36中任一项所述的非暂时性计算机可读存储介质,其中所述公共贡献值至少部分地基于所述证书请求、由所述证书授权中心从所述整数环中选择的第二个样本以及所述域多项式。
38.如条款37所述的非暂时性计算机可读存储介质,其中所述请求者特定的贡献值至少部分地基于与所述证书授权中心相关联的公钥/私钥对的私钥、根据所述散列函数确定的所述证书的散列以及所述第二样本。
39.如条款34至38中任一项所述的非暂时性计算机可读存储介质,其中:
所述证书至少部分地基于由另一个计算机系统提供的第二证书请求;
所述证书至少部分地基于与所述另一计算机系统相关联的标识信息;以及
所述证书支持所述请求者和所述另一个计算机系统之间的受保护通信。
40.如条款39所述的非暂时性计算机可读存储介质,其中所述证书不促进除所述请求者和所述另一个计算机系统之外的各方之间的通信。
41.一种计算机实现的方法,其包括:
生成标识能够与管理服务通信的装置的信息;
获取所述装置的装置特定的贡献值,所述装置特定的贡献值与所述装置的公共贡献值相关联;
至少部分地基于所述信息和所述装置特定的贡献值生成与所述装置相关联的隐式证书,所述隐式证书是使用环容错学习问题生成的;
至少部分地基于以下项生成证书授权中心贡献值:
证书授权中心公共值;
随机值;以及
隐式证书;
向所述装置提供所述隐式证书和所述证书授权中心贡献值;以及
使所述装置获取私钥,所述私钥至少部分地基于所述隐式证书和所述证书授权中心贡献值。
42.如条款41所述的计算机实现的方法,其还包括:
生成所述装置特定的贡献值和所述公共贡献值;以及
向所述装置提供所述装置特定的贡献值和所述公共贡献值。
43.如条款41或42所述的计算机实现的方法,其还包括:
生成标识所述装置的所述信息;以及
向所述装置提供所述信息。
44.如条款41至43中任一项所述的计算机实现的方法,其还包括:
向所述管理服务提供所述隐式证书和所述证书授权中心贡献值;以及
使所述管理服务获取与所述装置相关联的公钥。
45.一种系统,其包括:
一个或多个处理器;以及
存储器,其存储计算机可执行指令,所述计算机可执行指令如果被执行,则致使所述一个或多个处理器:
向证书授权中心计算机系统提供公共贡献值;
从证书授权中心计算机系统获取隐式证书和证书授权中心贡献值,所述隐式证书与装置相关联,所述隐式证书至少部分地基于所述公共贡献值,并且所述隐式证书使用环容错学习问题生成;
向所述装置提供第一差异值,所述第一差异值至少部分地基于与公共贡献值有关的秘密贡献值;
至少部分地基于所述隐式证书和由所述装置提供的第二差异值来生成共享秘密;以及
使用所述共享秘密与所述装置建立受密码保护的通信信道。
46.如条款45所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
从所述装置接收加密的消息,所述加密的消息使用至少部分地基于所述共享秘密的密钥进行加密;
解密所述加密的消息;以及
确定已验证所述装置的真实性。
47.如条款45或46所述的系统,其中:
所述受密码保护的通信信道是传输层安全连接;以及
所述系统与所述装置协商以选择密码套件,所述密码套件基于环容错学习隐式证书识别密钥交换算法。
48.如条款47所述的系统,其中:
所述系统确定至少部分地基于所述共享秘密的主秘密;以及
与所述传输层安全连接相关联的至少一个会话密钥至少部分地基于所述主密钥。
49.如条款48所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
确定第一私有临时密钥;
至少部分地基于所述第一私有临时密钥来确定第一公共临时密钥;以及
向所述装置提供所述第一公共临时密钥,以使所述装置能够确定所述共享秘密。
50.如条款48或49所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
从所述装置接收加密的数据;
使用从所述共享秘密导出的会话密钥解密所述加密的数据;以及
确定所述装置的所述身份是真实的。
51.如条款48至50中任一项所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
从实体接收加密的数据;
尝试使用从所述共享秘密导出的会话密钥解密所述加密的数据;
确定所述尝试不成功;以及
确定所述实体不是所述装置。
52.如条款45至51中任一项所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
接收与所述证书授权中心相关联的公钥;以及
存储所述公钥和信任存储库。
53.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令致使所述计算机系统至少:
向另一个计算机系统提供与所述计算机系统相关联的隐式证书,所述隐式证书使用环容错学习问题生成;
向所述另一个计算机系统提供第一差异值,所述第一差异值至少部分地基于与所述隐式证书相关联的私有静态密钥;
与所述另一个计算机系统建立共享秘密,所述共享秘密至少部分地基于所述隐式证书和由所述另一个计算机系统提供的第二差异值;以及
使用至少部分地基于所述共享秘密的会话密钥建立受密码保护的通信信道。
54.如条款53所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
向所述另一个计算机系统提供指示,指示所述计算机系统能够使用使用所述隐式证书的密钥交换算法生成所述共享秘密;以及
从所述另一个计算机系统接收指示,指示所述另一个计算机系统能够使用使用所述隐式证书的所述密钥交换算法生成所述共享秘密。
55.如条款53或54所述的非暂时性计算机可读存储介质,其中所述第一差异值和所述第二差异值至少部分地基于与整数环相关联的域多项式。
56.如条款53至55中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
用所述会话密钥加密数据以产生加密的数据;
使用至少部分地基于所述共享秘密的密码密钥生成消息认证码;以及
使用记录协议将所述加密的数据传输到所述另一个计算机系统。
57.如条款53至56中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
从所述另一个计算机系统接收加密的数据和对应于所述加密的数据的消息认证码,所述消息认证码是使用至少部分地基于所述共享秘密的密码密钥生成的;
确定所述消息认证码有效;以及
作为已经确定所述消息认证码有效的结果,确定所述另一个计算机系统被认证。
58.如条款53至57中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
从网络实体接收加密的数据和对应于所述加密的数据的消息认证码;
使用至少部分地基于所述共享秘密的密码密钥来确定所述消息认证码无效;以及
确定所述网络实体不是所述另一个计算机系统。
59.如条款53至58中任一项所述的非暂时性计算机可读存储介质,其中所述受密码保护的通信信道是传输层安全连接。
60.如条款53至59中任一项所述的非暂时性计算机可读存储介质,其中:
所述指令还包括这样的指令,作为由所述一个或多个处理器执行的结果,所述指令致使所述计算机系统至少部分地基于所述隐式证书和与证书授权中心相关联的公钥生成与所述另一个计算机系统相关联的公钥;以及
所述共享秘密至少部分地基于所述公钥。
61.一种计算机实现的方法,其包括:
从隐式证书中导出与第二实体相关联的第二公钥;
获取第一私有静态密钥;
获取与所述第二实体相关联的值;
从所述第二公钥和所述值确定第二静态公钥;
确定第一私有临时密钥;
从所述第二实体获取第二公共临时密钥;以及
至少部分地基于所述第二公共临时密钥、所述第二静态公钥、所述第一私有静态密钥和所述第一私有临时密钥来确定共享密钥。
62.如条款61所述的计算机实现的方法,其还包括:
至少部分地基于所述第一私有静态密钥、与第一实体相关联的第一私钥和第一公钥确定第一差异;以及
向所述第二实体提供所述第一差异。
63.如条款61或62中任一项所述的计算机实现方法,其中还至少部分地基于与整数环相关联的域多项式确定所述第一差异和所述值。
64.如条款61至63中任一项所述的计算机实现的方法,其还包括:
使用所述共享密钥对消息进行加密,以产生加密的消息;以及
将所述加密的消息传输至所述第二实体。
65.如条款61至64中任一项所述的计算机实现的方法,其中至少部分地基于与所述第二实体相关联的第二私有静态密钥、与整数环相关联的域多项式、所述第二私钥和所述第二公钥生成所述值。
66.如条款61至65中任一项所述的计算机实现的方法,其还包括:
至少部分地基于所述第一私有临时密钥来确定第一公共临时密钥;以及
向所述第二实体提供所述第一公共临时密钥。
67.如条款61至66中任一项所述的计算机实现的方法,其还包括通过使用所述共享密钥验证数字签名来验证所述隐式证书绑定到所述第二实体。
各种实施方案还可在各种操作环境中实施,所述操作环境在一些情况下可包括一个或多个用户计算机、计算装置或处理装置,其可用于操作多个应用中的任何应用。用户或客户端装置可以包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上型计算机或平板电脑,以及运行移动软件并且能够支持多种网络和消息传递协议的蜂窝式、无线和手持装置。这样的系统还可以包括多个工作站,所述多个工作站运行各种可商购的操作系统中的任何一种以及用于诸如开发和数据库管理之类的用途的其他已知应用。这些装置还可以包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统以及能够经由网络进行通信的其他装置。这些装置还可以包括虚拟装置,诸如虚拟机、管理程序和能够经由网络进行通信的其他虚拟装置。
本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购的协议中的任一种的通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、通用互联网文件系统(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公用交换电话网、红外网络、无线网、卫星网络以及其任何组合。在一些实施方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时被称为基于连接的协议)能够以有序流传输数据。面向连接的协议可以是可靠或不可靠的。例如,TCP协议是可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向分组的协议(诸如UDP)形成对比,所述面向分组的协议在没有保证排序的情况下传输分组。
在利用web服务器的实施方案中,web服务器可以运行各种服务器或中间层应用中的任一者,包括超文本传输协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器以及业务应用服务器。服务器还可以能够响应于来自用户装置的请求而执行程序或脚本,诸如,通过执行可以实施为用任何编程语言(诸如,C、C#或C++)或任何脚本语言(诸如,Ruby、PHP、Perl、Python或TCL)以及其组合编写的一个或多个脚本或程序的一个或多个web应用。服务器还可包括数据库服务器,包括但不限于可商购自以及的那些服务器以及开源服务器,例如MySQL、Postgres、SQLite、MongoDB,以及能够存储、检索以及访问结构化或非结构化数据的任何其他服务器。数据库服务器可以包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
环境可以包括各种数据存储库以及其他存储器和存储介质,如上文所论述。这些可驻留在各种各样位置,诸如在计算机的一个或多个本地(和/或驻留在计算机的一个或多个中)的存储介质上,或在网络上远离任何或所有计算机的存储介质上。在特定的实施方案集合中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行计算机、服务器或其他网络装置所特有的功能的任何必要文件可以在适当的情况下本地和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置都可包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这样的系统还可以包括一个或多个存储装置,诸如磁盘驱动器、光学存储装置以及固态存储装置诸如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移除介质装置、存储卡、闪存卡等。
此类装置还可以包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线的)、红外通信装置等)以及如上文所描述的工作存储器。计算机可读存储介质读取器可以与计算机可读存储介质连接或被配置为接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移除的存储装置,以及用于临时和/或更永久地含有、存储、传输和检索计算器可读信息的存储介质。系统和各种装置通常也将包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用程序或web浏览器。另外,也可以使用定制的硬件和/或特定元件可以用硬件、软件(包括可移植软件,例如小程序)或两者来实现。此外,可采用与其他计算装置诸如网络输入/输出装置的连接。
用于含有代码或代码部分的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移除和不可移除的介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、闪存存储器或其他存储器技术、只读光盘驱动器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储器、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所需信息且可由系统装置访问的任何其他介质。基于本文所提供的公开和教导,本领域普通技术人员应理解实施各个实施方案的其他方式和/或方法。
需注意,如果系统被配置为操作的逻辑取决于使用公共密码密钥验证数字签名的尝试是否成功,则系统被称为被配置为信任公共密码密钥。类似地,如果系统被配置为操作的逻辑取决于使用对称密码密钥验证数字签名的尝试是否成功,则系统被称为被配置为信任对称密码密钥。
在各种实施方案中,数据对象诸如数字证书可以是可密码验证的。在一个示例中,可密码验证的数据对象被创建为可被要向其提供数据对象的系统或与要向其提供数据对象的系统一起操作的另一系统密码验证。例如,数据对象可以被加密,以便可由将密码验证数据对象的系统解密,其中解密数据对象的能力用作数据对象的密码验证。作为另一示例,可以对数据对象进行数字签名(从而产生数据对象的数字签名),使得该数字签名可以被将密码验证数据对象的系统验证。在其他示例中,加密和数字签名两者用于密码可验证性和/或安全性。用于加密和/或数字签名数据对象的密钥可以根据各种实施方案而变化,并且在适用的情况下,相同的密钥不必用于加密和数字签名两者。在一些实施方案中,用于加密数据对象的密钥是公钥/私钥对的公钥,其中密钥对的私钥由要被提供数据对象的系统安全地维护,从而使得系统能够使用密钥对的私钥解密数据对象。使用公钥加密数据对象可以包括生成对称密钥,使用对称密钥加密数据对象,以及使用公钥加密对称密钥,其中加密的对称密钥被提供给具有加密的数据对象的系统,以使系统能够使用对应的私钥解密对称密钥,并且使用解密的对称密钥解密数据对象。此外,在一些实施方案中,使用对应于加密和/或数字签名数据对象的计算机系统(例如,用户装置)的公钥/私钥对中的私钥对数据对象进行数字签名。例如,可以向应用提供私钥,并且数据对象可以包括用于私钥的证书,以供系统用于验证数据对象的数字签名。其他变型包括其中在用户计算机和密码验证数据对象的系统之间共享对称密钥的变型可用于加密和/或数字签名数据对象。
在前述和以下描述中,描述了各种技术。出于解释的目的,将阐述特定的配置和细节,以便提供对实施所述技术的可能方式的透彻理解。然而,同样显而易见的是,下面所描述的技术可以在不具有特定细节的情况下以不同配置来实践。此外,可以省略或简化众所周知的特征,以避免模糊所描述的技术。
因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,显而易见的是,在不脱离如权利要求所述的本发明的更广泛精神和范围的情况下,可以进行各种修改和改变。
其他变型在本公开的精神内。因此,虽然所公开的技术易受各种修改和替代构造的影响,但是在附图中示出了其某些示出的实施方案,并且在上文已经详细描述。然而,应理解,不存在将本发明限于所公开的具体形式的意图,而是相反,本发明将覆盖落在如在随附权利要求中限定的本发明的精神和范围内的所有修改、替代结构和等效物。
除非本文另有说明或明确地与上下文矛盾,否则在描述所公开的实施方案的上下文中(特别是在所附权利要求的上下文中)对术语“一(a)”和“一(an)”和“所述”以及类似指称对象的使用应被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(即,意味着“包括但不限于”)。在未经修改且涉及物理连接的情况下,术语“连接”应被解释为部分或全部包含在内、附接到或接合在一起,即使存在某些介入。本文中值的范围的描述仅旨在用作单独地参考落在该范围内的每个单独值的速记方法,除非本文另有说明,并且将每个单独的值并入本说明书中,如同在本文中单独叙述一样。除非另有说明或与上下文矛盾,否则术语“集合”(例如,“项目集合”)或“子集”的使用应被解释为包括一个或多个构件的非空集合。此外,除非另有说明或与上下文矛盾,否则术语对应集合的“子集”未必表示对应集合的真子集,而是子集和对应集合可以相等。
除非另有具体陈述或另外明确地与上下文矛盾,否则连接语言,诸如形式“A、B、和C中的至少一个”或“A、B和C中的至少一个”之类的短语可以在一般使用的上下文中被理解为表示某一项目、项等可以是A或B或C,或者A和B和C的集合的任何非空子集。例如,在具有三个构件的集合的说明性示例中,连接短语“A、B和C中的至少一个”和“A、B和C中的至少一个”是指以下集合中的任一者:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接语言通常并不意图暗示某些实施方案需要A中的至少一个、B中的至少一个和C中的至少一个各自存在。另外,除非另有说明或与上下文矛盾,否则术语“多个”指示复数的状态(例如,“多个项目”指示许多个项目)。多个项目中的项目数量至少为两个,但是当如此明确地或通过上下文指示时可以更多。
除非本文另有说明或另外明确地与上下文矛盾,否则本文所述的过程的操作可以任何合适的顺序执行。本文中描述的过程(或其变型和/或其组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实施为在一个或多个处理器上共同地执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用),通过硬件来实施或其组合来实施。代码可以存储在计算机可读存储介质上,例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,所述非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时(即,作为被执行的结果)致使计算机系统执行本文描述的操作。该非暂时性计算机可读存储介质集合可以包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的单独的非暂时性存储介质的一个或多个可能并非包含所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。此外,在一些示例中,执行可执行指令,使得不同的指令由不同的处理器执行。作为说明性示例,非暂时性计算机可读存储介质可以存储指令。主CPU可执行所述指令中的一些且图形处理器单元可执行所述指令中的其他指令。通常,计算机系统的不同部件可以具有单独的处理器,并且不同的处理器可以执行指令的不同子集。
因此,在一些示例中,计算机系统被配置为实施单独地或共同地执行本文中描述的过程的操作的一个或多个服务。此类计算机系统可以例如被配置有能够执行操作的适用硬件和/或软件。此外,实施本公开的各种实施方案的计算机系统在一些示例中可以是单个装置,而在其他示例中,是包括多个装置的分布式计算机系统,所述多个装置不同地操作,使得分布式计算机系统执行本文中描述的操作,并且使得单个装置不能执行所有操作。
除非另有要求,否则对本文所提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,而非对本发明的范围构成限制。本说明书中的语言不应被解释为指示任何未要求保护的元素是实践本发明所必需的。
本文中描述了本公开的实施方案,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变化对于本领域的普通技术人员来说可变得显而易见。本发明人期望本领域技术人员适当地使用此类变化,并且发明人意图以与本文中的具体描述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的对所附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另有说明或另外明确地与上下文矛盾,否则本公开的范围涵盖其全部可能变化中的上述元素的任何组合。
在本文中引用的所有参考文献,包括公开案、专利申请案以及专利特此以引用方式并入本文中,如同每一参考文献个别地且具体地指示为以引用方式并入且全部在本文中阐述一样。
Claims (20)
1.一种计算机实现的方法,其包括:
在第一实体处获取与所述第一实体和第二实体之间的通信信道相关联的隐式证书;
从所述隐式证书中导出与所述第一实体相关联的第一私钥和与所述第二实体相关联的第二公钥;
至少部分地基于分布来获取第一私有静态密钥;
至少部分地基于所述第一私有静态密钥、与整数环相关联的域多项式、与所述第一实体相关联的所述第一私钥和第一公钥来确定第一差异;
向所述第二实体提供所述第一差异;
从所述第二实体获取第二差异,所述第二差异至少部分地基于与所述第二实体相关联的第二私有静态密钥、与所述整数环相关联的所述域多项式、与所述第二实体相关联的第二私钥以及与所述第二实体相关联的第二公钥;
从所述第二公钥和所述第二差异确定第二静态公钥;以及
至少部分地基于所述第二公共静态密钥和所述第一私有静态密钥来确定共享密钥。
2.如权利要求1所述的计算机实现的方法,其还包括:
确定所述整数环上的第一私有临时密钥;
至少部分地基于所述域多项式和第一私有临时密钥来确定第一公共临时密钥;
向所述第二实体提供所述第一公共临时密钥;
从所述第二实体获取第二公共临时密钥;以及
其中所述共享密钥至少部分地基于所述第二公共临时密钥和所述第一私有临时密钥。
3.如权利要求1所述的计算机实现的方法,其还包括:
建立从所述第一实体到所述第二实体的网络连接;
生成消息;
用所述共享密钥加密所述消息以产生加密的消息;
经由所述网络连接将所述加密的消息传输到所述第二实体;以及
其中所述第一实体和所述第二实体是计算机系统。
4.如权利要求2所述的计算机实现的方法,其还包括:
从整数环中选择样本;
至少部分地基于所述第二公共静态密钥和所述第一私有临时密钥的乘积与所述第二公共临时密钥和所述第一私有静态密钥的乘积之间的差来确定所述共享密钥;以及
从所述样本的系数提取共享位。
5.一种系统,其包括:
一个或多个处理器;以及
存储器,其存储计算机可执行指令,所述计算机可执行指令如果被执行,则致使所述一个或多个处理器:
从隐式证书中导出与第一实体相关联的第一私钥和与第二实体相关联的第二公钥;
获取第一私有静态密钥;
获取与所述第二实体相关联的值;
从所述第二公钥和所述值确定第二静态公钥;以及
至少部分地基于所述第一私有静态密钥和所述第二静态公钥确定共享密钥。
6.如权利要求5所述的系统,其中至少部分地基于概率分布随机地生成所述第一私有静态密钥。
7.如权利要求5所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器使用所述共享密钥来使用加密通信进行通信。
8.如权利要求5所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
至少部分地基于所述第一私钥确定与所述第一实体相关联的值;以及
将所述值提供给所述第二实体,以使所述第二实体能够导出所述共享密钥。
9.如权利要求8所述的系统,其中确定所述值还至少部分地基于与整数环相关联的域多项式。
10.如权利要求5所述的系统,其中:
至少部分地基于所述第一私有静态密钥和所述第二静态公钥确定所述共享密钥;以及
所述共享密钥至少部分地基于由所述第二实体生成的临时密钥来确定。
11.如权利要求5所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
确定第一私有临时密钥;
至少部分地基于所述第一私有临时密钥来确定第一公共临时密钥;以及
将所述第一公共临时密钥提供给所述第二实体,以使所述第二实体能够确定所述共享密钥。
12.如权利要求5所述的系统,其中所述指令还包括这样的指令,所述指令如果被执行,则致使所述一个或多个处理器:
获取消息;
使用所述共享密钥为所述消息生成数字签名;以及
向所述第二实体提供所述消息和所述数字签名。
13.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令致使所述计算机系统至少:
从隐式证书中导出与第二实体相关联的第二公钥;
获取第一私有静态密钥;
获取与所述第二实体相关联的值;
从所述第二公钥和所述值确定第二静态公钥;
确定第一私有临时密钥;
从所述第二实体获取第二公共临时密钥;以及
至少部分地基于所述第二公共临时密钥、所述第二静态公钥、所述第一私有静态密钥和所述第一私有临时密钥来确定共享密钥。
14.如权利要求13所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
至少部分地基于所述第一私有静态密钥、与第一实体相关联的第一私钥和第一公钥确定第一差异;以及
向所述第二实体提供所述第一差异。
15.如权利要求14所述的非暂时性计算机可读存储介质,其中还至少部分地基于与整数环相关联的域多项式确定所述第一差异和所述值。
16.如权利要求13所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
使用所述共享密钥对消息进行加密,以产生加密的消息;以及
将所述加密的消息传输至所述第二实体。
17.如权利要求13所述的非暂时性计算机可读存储介质,其中至少部分地基于与所述第二实体相关联的第二私有静态密钥、与整数环相关联的域多项式、所述第二私钥和所述第二公钥生成所述值。
18.如权利要求13所述的非暂时性计算机可读存储介质,其中所述指令还包括作为由所述一个或多个处理器执行的结果而致使所述计算机系统进行以下操作的指令:
至少部分地基于所述第一私有临时密钥来确定第一公共临时密钥;以及
向所述第二实体提供所述第一公共临时密钥。
19.如权利要求13所述的非暂时性计算机可读存储介质,其中所述第二公钥的成功使用验证了所述第二实体与所述第二公钥之间的密码绑定。
20.如权利要求13所述的非暂时性计算机可读存储介质,其中所述指令还包括这样的指令,作为由所述一个或多个处理器执行的结果,所述指令致使所述计算机系统通过使用所述共享密钥验证数字签名来验证所述隐式证书绑定到所述第二实体。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/589,783 US10798086B2 (en) | 2017-05-08 | 2017-05-08 | Implicit certificates using ring learning with errors |
US15/589,783 | 2017-05-08 | ||
US15/589,808 US10516543B2 (en) | 2017-05-08 | 2017-05-08 | Communication protocol using implicit certificates |
US15/589,798 | 2017-05-08 | ||
US15/589,808 | 2017-05-08 | ||
US15/589,798 US10511591B2 (en) | 2017-05-08 | 2017-05-08 | Generation of shared secrets using pairwise implicit certificates |
PCT/US2018/030527 WO2018208546A1 (en) | 2017-05-08 | 2018-05-01 | Generation of shared secrets using pairwise implicit certificates |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110999203A true CN110999203A (zh) | 2020-04-10 |
CN110999203B CN110999203B (zh) | 2021-09-07 |
Family
ID=62223261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880045496.0A Active CN110999203B (zh) | 2017-05-08 | 2018-05-01 | 用于生成共享密钥的方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110999203B (zh) |
WO (1) | WO2018208546A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698081A (zh) * | 2020-06-08 | 2020-09-22 | 中国科学院重庆绿色智能技术研究院 | 一种基于格的压缩分块ibe加密装置及方法 |
CN112003706A (zh) * | 2020-08-24 | 2020-11-27 | 北京字节跳动网络技术有限公司 | 一种签名的方法、装置、计算机设备及存储介质 |
CN114079564A (zh) * | 2020-08-11 | 2022-02-22 | 旭尔权(北京)科技有限公司 | 向两方协作式用户部件签发隐式数字证书的计算方法和系统 |
WO2022041473A1 (zh) * | 2020-08-31 | 2022-03-03 | Oppo广东移动通信有限公司 | 一种认证方法、电子设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543448A (zh) * | 2019-07-22 | 2019-12-06 | 深圳壹账通智能科技有限公司 | 数据同步方法、装置、设备及计算机可读存储介质 |
CN110830250B (zh) * | 2019-11-13 | 2021-10-01 | 中国科学技术大学 | 利用通用系数发现算法在非欧几里得环上实现秘密共享的方法 |
CN111010265B (zh) * | 2019-12-21 | 2023-04-18 | 上海中和软件有限公司 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145237A1 (en) * | 2002-01-31 | 2003-07-31 | International Business Machines Corp. | Multiple secure socket layer keyfiles for client login support |
CN1889433A (zh) * | 2006-07-20 | 2007-01-03 | 上海交通大学 | 基于隐式公钥证书的双方认证密钥协商方法及系统 |
CN101641905A (zh) * | 2006-11-15 | 2010-02-03 | 塞尔蒂卡姆公司 | 隐式证书验证 |
WO2012108875A1 (en) * | 2011-02-11 | 2012-08-16 | Certicom Corp. | Using a single certificate request to generate credentials with multiple ecqv certificates |
US20120221850A1 (en) * | 2011-02-28 | 2012-08-30 | Certicom Corp. | System and Method for Reducing Computations in an Implicit Certificate Scheme |
US20120233457A1 (en) * | 2011-03-08 | 2012-09-13 | Certicom Corp. | Issuing implicit certificates |
WO2015184991A1 (en) * | 2014-06-04 | 2015-12-10 | Jintai Ding | Improvements on cryptographic systems using pairing with errors |
US20160352525A1 (en) * | 2015-05-26 | 2016-12-01 | Infosec Global Inc. | Signature protocol |
CN106411528A (zh) * | 2016-10-17 | 2017-02-15 | 重庆邮电大学 | 一种基于隐式证书的轻量级认证密钥协商方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2495907A1 (en) * | 2011-02-28 | 2012-09-05 | Certicom Corp. | System and method for reducing computations in the derivation of a publick key corresponding to an implicit certificate |
US9065642B2 (en) * | 2012-03-07 | 2015-06-23 | Certicom Corp. | Intercepting key sessions |
-
2018
- 2018-05-01 CN CN201880045496.0A patent/CN110999203B/zh active Active
- 2018-05-01 WO PCT/US2018/030527 patent/WO2018208546A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145237A1 (en) * | 2002-01-31 | 2003-07-31 | International Business Machines Corp. | Multiple secure socket layer keyfiles for client login support |
CN1889433A (zh) * | 2006-07-20 | 2007-01-03 | 上海交通大学 | 基于隐式公钥证书的双方认证密钥协商方法及系统 |
CN101641905A (zh) * | 2006-11-15 | 2010-02-03 | 塞尔蒂卡姆公司 | 隐式证书验证 |
WO2012108875A1 (en) * | 2011-02-11 | 2012-08-16 | Certicom Corp. | Using a single certificate request to generate credentials with multiple ecqv certificates |
US20120221850A1 (en) * | 2011-02-28 | 2012-08-30 | Certicom Corp. | System and Method for Reducing Computations in an Implicit Certificate Scheme |
US20120233457A1 (en) * | 2011-03-08 | 2012-09-13 | Certicom Corp. | Issuing implicit certificates |
WO2015184991A1 (en) * | 2014-06-04 | 2015-12-10 | Jintai Ding | Improvements on cryptographic systems using pairing with errors |
US20160352525A1 (en) * | 2015-05-26 | 2016-12-01 | Infosec Global Inc. | Signature protocol |
CN106411528A (zh) * | 2016-10-17 | 2017-02-15 | 重庆邮电大学 | 一种基于隐式证书的轻量级认证密钥协商方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698081A (zh) * | 2020-06-08 | 2020-09-22 | 中国科学院重庆绿色智能技术研究院 | 一种基于格的压缩分块ibe加密装置及方法 |
CN111698081B (zh) * | 2020-06-08 | 2023-05-02 | 中国科学院重庆绿色智能技术研究院 | 一种基于格的压缩分块ibe加密装置及方法 |
CN114079564A (zh) * | 2020-08-11 | 2022-02-22 | 旭尔权(北京)科技有限公司 | 向两方协作式用户部件签发隐式数字证书的计算方法和系统 |
CN112003706A (zh) * | 2020-08-24 | 2020-11-27 | 北京字节跳动网络技术有限公司 | 一种签名的方法、装置、计算机设备及存储介质 |
CN112003706B (zh) * | 2020-08-24 | 2023-07-18 | 北京字节跳动网络技术有限公司 | 一种签名的方法、装置、计算机设备及存储介质 |
WO2022041473A1 (zh) * | 2020-08-31 | 2022-03-03 | Oppo广东移动通信有限公司 | 一种认证方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018208546A1 (en) | 2018-11-15 |
CN110999203B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10554636B2 (en) | Lightweight encrypted communication protocol | |
US11552946B2 (en) | Lightweight authentication protocol using device tokens | |
US10511591B2 (en) | Generation of shared secrets using pairwise implicit certificates | |
CN110999203B (zh) | 用于生成共享密钥的方法和系统 | |
US10516543B2 (en) | Communication protocol using implicit certificates | |
JP7215684B2 (ja) | 部分的に信頼できる第三者機関を通しての鍵交換 | |
US10375067B2 (en) | Mutual authentication with symmetric secrets and signatures | |
US10798086B2 (en) | Implicit certificates using ring learning with errors | |
US10250573B2 (en) | Leveraging transport-layer cryptographic material | |
US9621545B2 (en) | System and method for connecting client devices to a network | |
US10785261B2 (en) | Techniques for secure session reestablishment | |
US10412098B2 (en) | Signed envelope encryption | |
CN110326267B (zh) | 具有替代数字证书的网络安全系统、方法及存储介质 | |
US10693638B1 (en) | Protected cryptographic environment | |
WO2022021992A1 (zh) | 一种基于NB-IoT通信的数据传输方法、系统及介质 | |
US10055591B1 (en) | Secure protocol attack mitigation | |
US11190504B1 (en) | Certificate-based service authorization | |
US10951652B1 (en) | Communication session resumption | |
US9961055B1 (en) | Inaccessibility of data to server involved in secure communication | |
US10218682B1 (en) | Secure network protocol cryptographic processing | |
JP2008152737A (ja) | サービス提供サーバ、認証サーバ、および認証システム | |
CN114008976B (zh) | 用于双壳加密的混合密钥交换 | |
CN114008976A (zh) | 用于双壳加密的混合密钥交换 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |