CN102017510B - 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构 - Google Patents

自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构 Download PDF

Info

Publication number
CN102017510B
CN102017510B CN2008801222327A CN200880122232A CN102017510B CN 102017510 B CN102017510 B CN 102017510B CN 2008801222327 A CN2008801222327 A CN 2008801222327A CN 200880122232 A CN200880122232 A CN 200880122232A CN 102017510 B CN102017510 B CN 102017510B
Authority
CN
China
Prior art keywords
party user
function
composition
mod
prime
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.)
Expired - Fee Related
Application number
CN2008801222327A
Other languages
English (en)
Other versions
CN102017510A (zh
Inventor
赵运磊
姚期智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhao Yunlei
Original Assignee
Individual
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
Priority claimed from CN2007100473448A external-priority patent/CN101175076B/zh
Priority claimed from CNA200810032507XA external-priority patent/CN101247224A/zh
Priority claimed from CNA2008100325084A external-priority patent/CN101247394A/zh
Priority claimed from CNA2008100327728A external-priority patent/CN101217549A/zh
Priority claimed from CN200810040311A external-priority patent/CN101626364A/zh
Priority claimed from CN 200810041475 external-priority patent/CN101645870B/zh
Priority to CN2008801222327A priority Critical patent/CN102017510B/zh
Application filed by Individual filed Critical Individual
Publication of CN102017510A publication Critical patent/CN102017510A/zh
Publication of CN102017510B publication Critical patent/CN102017510B/zh
Application granted granted Critical
Expired - Fee Related 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/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/0838Key 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/0841Key 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
    • 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/32Cryptographic 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/3218Cryptographic 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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Optical Communication System (AREA)

Abstract

一种一方(证明者)以联合地且不可锻造地向另一方(验证者)证明自己多个(固定或临时)的秘密Diffie-Hellman指数(记为DH-指数)知识的方法及结构。这些DH-指数知识是相应于证明者自己(固定和/或临时的)DH-成分并针对验证者的公开的(固定和/或临时的)DH-成分挑战。联合知识证明(jointproof-of-knowledge,JPOK)包含由多个DH-秘密相乘得到秘密,可以由每一方用自己的私有DH指数和双方公开DH成分生成并验证。为了保证JPOK的不可锻造性,本发明方法令所有相乘的DH-秘密各自独立,并使得会话标签提交至这些DH-秘密。为了保护用户的隐私以及/或者提高协议的效率,本发明方法要求相乘的这些DH-秘密进一步满足下列要求之一(除同时满足上面提到的独立性和提交性质外):(1)可抵赖性:所有需要相乘的DH-秘密都可以仅仅由双方的临时的秘密DH-指数和公开DH-成分计算出;(2)预计算性:涉及到一方固定DH-成分的DH秘密可以由对方离线预计算;(3)后置身份可计算性:涉及到一方临时DH-成分的DH-秘密可以由对方在不知道该方身份以及/或者固定DH-成分的情况下计算得到。由多个DH-秘密相乘所得到的秘密可以用来导出会话密钥,并在双方之间生成和验证认证值。双方可以并行或顺阶地使用发明方法,并在发明方法的不同运行中交换运行角色。发明方法可以用以相互身份认证、密钥确认、以及在各种环境中实现更为高级的密码协议。

Description

自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构
背景知识
技术领域
本发明涉及知识证明(POK),属于密码技术领域。知识证明能够让证明者向验证者证明自己知道多个对应于(固定的和/或临时的)公开的DH-成分的秘密的DH-指数,但并不向验证者泄露这些秘密。发明的POK方法的目的是实现并发不可锻造性、健壮的抗保密泄露性,隐私保护和在线的效率。通过将固定的DH成分视为公钥,并且(运行发明方法的)各方通过运行发明方法证明各自的秘密DH-知识知识,发明方法导出认证的Diffie-Hellman密钥交换方法。
背景技术
Diffie-Hellman密钥交换协议(DHKE)101,如图1所示,是公共密钥密码学(PKC)的根基,同时还是密码学理论和实践的双重重要支柱。一般来说,密钥交换在现代密码学中扮演了核心的角色,这是由于它在公开密钥密码学和私有密钥密码学(SKC)中起的桥梁作用。具体来说,PKC用起来方便,但是效率不高;SKC效率很高,但是不方便使用。在通常的密码产品的应用中,PKC主要用于在用户间产生和分享密钥,而SKC则是在密钥产生后进行运用。在密码应用产品的开发过程中特别重要的是,DHKE是确保网络安全的密钥工业标准的基础。另外一个DHKE重要的原因是它支持基于椭圆曲线密码学的应用。
尽管DHKE协议在概念上看起来简单,但是要设计一个正确且安全的协议实际上却是极度的易错,非常微妙(在本发明所在的技术领域有的被发现有安全缺陷的DHKE协议)。造成这一现象的原因在于系统的高度复杂性,以及和DHKE协议的定义和设计/分析有关的数量庞大的微妙问题。仅仅通过快速检查或者凭借简单的感觉不能分辨一个协议安全与否。因此,我们非常需要提出一个合理的框架/模型,来理解合理的设计选择,用公式表达简单自然的合理的DHKE,允许并指导新的应用,以及提供对DHKE设计和分析的全新理解(还有消除现有协议的不足)。具体来说,为一个复杂的系统提出这样一个合理的框架/模型应该是研究中的一个最重要,也是最困难的一个部分。
在本发明所在的技术领域一系列的用于证明DHKE安全性的模型和框架已经提出。然而不幸的是,由于DHKE的高度的系统复杂性和微妙的特性,所有为我们所知的框架和模型都会在某些必要的安全特性上不能满足DHKE的安全性要求。并且,一些模型和框架本身太过复杂,可能会导致证明太过复杂冗长,并且很可能会导致错误(并且可能会将真实的安全保证作出错误的理解或者表述)。
最近,发明人为DHKE协议引入了一种新的框架,被称为Yao-Yao-Zhao(YYZ)框架。为了表述的简洁,我们在这里简单地回顾一下YYZ框架。首先有两方参与者
Figure GSB00000807124100021
Figure GSB00000807124100022
Figure GSB00000807124100023
其中我们假设是会话的初始者,而
Figure GSB00000807124100025
是会话的响应者。令G′为一个以N为阶的有限阿贝尔群,G为以q为阶的G′的子群,g为G的一个生成元,其中q是一个大素数(一般的,|q|=160),并且计算Diffie-Hellman(CDH)假设对于G成立。发明人使用乘法的符号来表示G′中的操作。将G′的单位元记为1G,将辅助因子记为
Figure GSB00000807124100026
Figure GSB00000807124100027
之间运行的协议记为协议
Figure GSB00000807124100029
的临时DH成分和临时DH指数记为X=gx和x,将的临时DH成分和临时DH指数记为Y=gy和y,其中x和y从中
Figure GSB000008071241000212
独立地随机地选择。
为了区分同一个用户并发运行的多个(本地)会话,每一个诚实的用户都会通过其身份和其在会话中传送的DH-成分来标识和区分每一个本地的会话,比如
Figure GSB000008071241000213
同时,每一个本地会话都会用一个标签进行标识,该标签以会话初始者在先会话响应者在后的顺阶将各(可能得到的)用户的身份和其贡献的(不管是静态的公钥还是临时的)DH-成分串联起来,比如对于一个完成了的(成功结束的)原始的DH协议,
Figure GSB000008071241000214
(对于一般的多方用户情形,标签将以一种各方都同意的顺阶,将各方的身份和贡献的DH-成分串联起来。)对于未完成的或者被废弃的会话,标签将由能得到的部分文本决定。注意标签中
Figure GSB000008071241000215
中的某一方(但不会是全部双方)可能实际上由其它人(敌手)控制或扮演。
对于一个在诚实用户上完成的,标签
Figure GSB000008071241000217
的本地会话(相应地,
Figure GSB000008071241000219
),我们将其称为测试会话。我们将测试会话的匹配会话定义为
Figure GSB000008071241000220
(相应地,),即在任意诚实用户
Figure GSB00000807124100032
上运行的本地对话
Figure GSB00000807124100033
(如果该本地对话确实存在)。一旦会话结束,诚实用户总是会将在会话中生成的临时私有状态删除,仅仅保留输出的会话密钥;会话也可能过期,在过期的会话中,会话密钥也会被删除。
在多项式个协议
Figure GSB00000807124100034
的执行实例(会话)异步并发的情况下(比如在Internet的环境下),所有的通讯信道都被认为是不能鉴别用户的,并且是在一个概率多项式时间(PPT)并发中间人(CMIM)攻击者Д的控制之下的。并且,Д能够得到任意的辅助输入,这些辅助输入可以是Д从网络上搜集/窃听到的执行情况,这些执行情况可以是Д之前通过任意协议(可能不同的协议)同
Figure GSB00000807124100035
Figure GSB00000807124100036
交互得到的会话。并发中间人Д能做任何自己想做的事情。除了按自己的意愿安排消息交换,Д还可以通过四种攻击方式得到任何诚实用户的秘密信息:(1)未完成会话泄露的临时私有状态,即Д通过未完成会话得到诚实用户生成的临时私有状态;(2)完成和未过期的会话泄露会话密钥;(3)诚实用户泄露固定密钥;(4)用户被控制,即Д完全控制一个堕落的用户。一个诚实用户如果直到会话结束都没有受到(1)、(4)类攻击,那么我们称在其上运行的会话为“内部未暴露”。
在所述的针对DHKE协议的的YYZ框架中,发明人定义了DHKE协议的一个新的安全的定义:基于标签的健壮不可锻造性(tag-based robust non-malleability,TBRNM)。在YYZ框架中定义的TBRNM的主要哲学思想,是依靠最小的秘密,得到最健壮的安全保证。TBRNM本质上是说,一个诚实用户,如果成功地完成了一个具有唯一标签的内部未暴露会话(记为测试会话),那么可以保证:它的交互对象(不管是诚实还是恶意的)一定知道自己的DH-指数和私钥(对应于交互对象在会话中声称的DH-成分和公钥)。即使攻击者知道任何诚实用户的固定私钥,任何会话的临时私有状态信息(只要不是该测试会话或该测试会话的匹配会话),以及任何完成且未过期会话的会话密钥时,该保证仍然成立。
为了平衡安全性和隐私性,YYZ框架提出了两种层次的TBRNM安全性:(1)标签绑定TBRNM,该安全性只有测试会话内部未暴露时成立。标签绑定TBRNM主要的适用情况是,用户在协议运行之前就知道(并且能确定)交互对象的身份和公钥。(2)隐私保护TBRNM,该安全性只有当测试会话和其匹配会话都内部未暴露时成立。隐私保护TBRNM主要适用于后置身份协议(即一方只有在协议运行中,甚至是协议的最后一轮才知道其交换对象的身份)。
发明人认为,TBRNM安全性,以及与不同标签会话的密钥独立性结合在一起,蕴含了DHKE协议所期望的必要的安全性质。并且,基于标签的健壮不可锻造性的目标应正是一个完善而健壮的DHKE协议的基本原则。
发明人在所述YYZ框架中重新研究并分析了DHKE协议。发明人观察并阐释了本研究领域尚没有论述的一些基本的事项。这些事项涉及到使用共享的DH-秘密作为构建模块(特别是与其它DH秘密相乘)来构建更先进和复杂的密码学对象的复杂性和微妙性。
在众多的基于公钥认证的DHKE协议中,图2,201,203所示的MQV协议(由Menezes等于Second Workshop on Selected Areas in Cryptography SAC′95,pages 22-32,November 1995中提出)和HMQV协议(由Krawczyk于Advancesin Cryptology-Proceedings of CRYPTO 2005,pages 546-566,August 2005中提出)是最成功,并且可能是效率最高的基于公钥认证的DHKE协议之一。为了表述简洁,我们称MQV与HMQV协议为(H)MQV协议族。令
Figure GSB00000807124100041
的公钥为A=ga,私钥为a,对应
Figure GSB00000807124100042
的公钥和私钥分别为B=gb和b。令HK为输出为k位的哈希函数,其中k为安全参数。(H)MQV协议族会在图2(201,202,203)中重新提到。(H)MQV被广泛地作为标准使用。特别要提到,美国国家安全局称(H)MQV为“保护美国政府信息”,包括“机密或关键的国家信息”的下一代密钥交换机制。
尽管(H)MQV的发展史充满争议,但是在经过在Canetti Krawczyk框架进行安全性分析和讨论后,人们普遍认为(H)MQV的最新版本足够健壮,没有其它的安全弱点。特别是考虑到(H)MQV几乎最佳的效率,(H)MQV被认为在安全性和协议效率综合方面达到了最佳的成果。
发明人在所述的YYZ框架下重新研究了(H)MQV协议,发现(H)MQV在一般情况下不能实现基于标签的健壮不可锻造性。这是通过具体的攻击来展示。也即是,通过锻造从其它诚实用户得到的信息,一个攻击者能够成功地与一个诚实用户完成(H)MQV的一个会话,但是实际上,该攻击者并不知道自己发送的信息相应地私钥和临时DH指数。这是由于(H)MQV中,用来证明每个用户私钥和临时DH指数知识的工具存在弱点和漏洞。发明人还提出了针对这些弱点的修正方案。
除了安全缺陷,发明人还发现了(H)MQV协议更多的不足:(1)(H)MQV不支持预计算会话密钥的一部分来提高在线效率;(2)(H)MQV不支持共享会话密钥的后置身份计算;(3)(H)MQV不支持共享会话密钥的并行计算和临时DH成分的显式子群测试;(4)(H)MQV不能保证可抵赖性(一个非常有用的保护用户隐私的性质)。
尽管看起来取得了很大的成功,上述的弱点和不足暴露了(H)MQV协议族的设计理念和构建工具不如普遍预期的那样完善和健壮。这也让发明人更加关注如何才能在新的基本设计原理和新的基本构造工具下,设计出可认证的密钥交换协议,在协议的安全,隐私和效率等方面取得最好地平衡。
发明概述
有鉴于上述情况,加上为了取得依据YYZ框架的基于标签的健壮不可锻造性(TBRNM),以及可抵赖性和后置身份隐私性和最佳的在线效率,本项发明的一个堪称典范的特征是:为用户提供了一个新的高度实用的方法和结构,来不可锻造地证明它的联合的DH-知识,其被命名为自封闭的联合知识证明(self-sealed join proof-of-knowledge,SSJPOK)。SSJPOK对于基于DH的密码学应用(特别是身份认证和密钥交换)具有基础性的意义并有着广泛的应用。
本项发明另外一个堪称典范的特征是它阐明了其发明的SSJPOK的应用。作为SSJPOK的核心应用,发明人开发了一族DHKE协议,称之为YYZ协议族。这些协议实质上在完整的TBRNM安全性、可抵赖性和后置身份隐私性、协议高效性和系统设置的简洁性上取得了最佳的整合,同时仍然保持了良好的概念简洁和清晰性。伴随着SSJPOK和YYZ协议各种各样的实现和变体,SSJPOK的其它应用包括针对各种特定环境下的密钥交换协议,比如群组的,无线的,无证书的,分布式客户端/服务端的,等等。这些新的观察,和对SSJPOK和YYZ所基于的设计原理的阐述和说明,都具有其独立的价值,为微妙的DHKE领域提供新的洞察并指导DHKE的未来发展。
本发明还有一个典型的特征是将上述DHKE的方法和结构拓展到基于口令和客户端/服务端的情形,提供一个健壮的抵抗服务器所保持的口令数据库内容恶意泄露的基于口令的认证的DHKE协议。
因此,本发明另一个典型的特征是提供一个用以提高认证DHKE协议的安全性、隐私性和效率的结构和方法,使得安全性以及所基于的设计原理的可靠性和健壮性可以在SSJPOK的概念框架下得以仔细地和可证明地论述和证明。
附图简述
前述内容以及其它的目标、方面和优点可以通过参照于附图的本发明优先的具体实施方式得以更好地理解。对于附图,下面是简单的说明:
图1描述了基本的(无身份认证)Diffie-Hellman协议101和由发明人开发的标签绑定自封闭的DH协议(TBSS-DH)102的比较100;
图2描述了对于MQV协议201和202,HMQV协议201和203,YYZ-MQV协议204和205(改进了MQV和HMQV协议,由发明人以SSJPOK为构造工具开发而成),以及YYZ协议206和207的比较200。图2中列出来的实例都是没有显式密钥确认的2-轮协议;
图3描述了YYZ在客户端/服务端模式下的典型实现300,使得客户端
Figure GSB00000807124100061
有可抵赖性,可进行后置身份计算和预计算,还可以抵抗针对服务端的服务抵赖攻击,并且双方都有交互的密钥确认;
图4描述了SSJPOK方法和结构的一个典型实现400,其中验证者仅贡献一个临时DH成分而证明者贡献一个临时DH成分和一个固定DH成分;
图5描述了一个SSJPOK方法和结构进一步拓展和一般化的典型实现500,其中验证者和证明者都贡献多个DH成分;
图6描述了使用SSJPOK的一个YYZ DHKE协议的典型实现600;
图7描述了作为在单轮密钥交换具体实现的一个HMQV的改进版本700;
图8描述了作为单轮密钥交换的YYZ的典型实现800;
图9描述了一个基于口令,用于客户端/服务端模式下的DHKE协议的典型实现900;
图10描述了一个相互密钥确认的用于服务端/客户端环境下的2轮DHKE协议的典型实现1000,它用到了图9中所描述的基于口令的DHKE协议和一个公钥密码方案;
图11列出了一个包含本发明的典型的硬件/消息处理系统1100;
图12列出了一个本发明方法的信号承载媒介1200(比如存储媒介),用于存储依据本发明方法的程阶的步骤;
图13为TBSS 1301,SSJPOK 1302,还有YYZ 1303给出了一个图例1300,(通过引用了一位中国古代哲人的格言)进行了哲学上的说明。
具体实施方式的详细描述
下面我们参照附图,即图1-13,其中包含的是本发明的方法和结构的典型实现。
预备知识和符号说明
作为群和符号的预备说明,这里讨论的所有协议和操作都是假设一个有限群G′上的一个循环子群G,其中G′的阶是N,G的阶是q,g是G的生成元,其中q是一个大素数(一般|q|=160,|q|表示q的比特位长度,具体来说
Figure GSB00000807124100071
表示q以2为底的指数)。发明人用乘法的符号表示此处的群的操作(即为了表示的简便起见,假设群为乘法群),但是这种表示方法可以同等地应用于加法群上(此时,群的操作用加法表示),比如椭圆曲线(其为一类典型的加法群)或者其它任何的代数群或者特殊的群,有限域,复合模等等。所有指数的操作都是假设模q,而群的操作假设模N。为了简单起见,我们假设参数G,q,g都是和通常的实际情况一样,是固定的,而且参与各方事先就知道。或者,用户可以在证书中包含这些值,或者在协议运行前交换并对这些参数达成一致。发明人用大写字母(比如A,B)表示群G中的DH-成分(特别是用户的公钥),而相应地小写字母(比如a,b)表示Zq中相应地DH-指数,其中Zq表示整数集{0,1,,q-1}。定义1G为群G′的单位元。发明人用“尖号”(比如
Figure GSB00000807124100072
)表示逻辑的或者“区分性的”协议各方的身份,比如名字,邮件地址和/或网络地址(IP),角色等等。在某些情况下,这些身份可能会增加和伴随一个数字证书。设CDH假设在G中成立,也就是说给定两个元素X=gx和Y=gy,其中x和y都是随机地从Zq中选择,那么没有一个有效的概率多项式时间(PPT)算法,可以有不可忽略的概率计算出gxy(这概率是取自随机算法所使用的随机硬币和选择x和y所用的随机硬币)。gxy的值被称为X和Y(共享的)DH-秘密。{·,···,·}表示消息/值的集合。
本发明使用三个哈希函数h,HK,H,在安全分析中它们可以是相同的且可被抽象成理想随机圣谕。哈希函数可以用来将一串字符串转换为一个数字或者固定长度的字符串等等。哈希函数在密码学中的基本作用是提供一个“单向的”或者说“不可逆的”转换方式,也就是说不能根据函数值得到原来的数据,也不能创建一个数据块,使之与给定的哈希值匹配。哈希函数可能只是简单的“混合”函数,也可能是类似于取值完全随机的转换。后一类哈希函数被称为“强密码学哈希函数”,在密码分析中常常模型为随机函数(或者随机圣谕)。若干哈希函数被广泛用作强密码哈希。比如,MD5接受一个任意大小的块作为输入,产生一个128位的哈希值;另一个例子是NIST(National Institute ofStandards and Technology,美国国家标准与技术研究所)的安全哈希算法(Secure Hash Alrorithm,SHA)。这个算法可以得到一个160位的哈希值。为了表述简洁,发明人用同一个符号表示相同算法但参数个数不同的哈希函数。在实际中,哈希函数的参数是连结在一起的,被编码在同一个字符串中,然后将这个字符串作为输入,最后得到哈希函数的输出。并且,在某些应用中,哈希函数的输出只有一部分会被用到。在很多情况里,哈希函数的参数的顺阶并不重要,是可以互换的。
对原始Diffie-Hellman协议的重新审查
发明人对Diffie-Hellman协议(参见图1)及其重要的拓展和应用进行了重新的审查,观察并阐述了一些在此前本领域没有(至少没有明显地)指出的基本的事项。这些事项包括参与者之间的公平,和使用共享DH-秘密作为构造模块(特别是与多个其它DH-秘密相乘)来构造更先进和复杂的密码学对象的微妙性。
参照(在图1中刻画的)原始DH-协议,公平的意思是指
Figure GSB00000807124100081
Figure GSB00000807124100082
共享的DH秘密,即gxy的值,应该对以X为底来说是随机的(以对抗可能恶意的
Figure GSB00000807124100083
),同时对以Y为底来说是随机的(以对抗可能恶意的
Figure GSB00000807124100084
)。特别的,对于相互的公平,
Figure GSB00000807124100085
(相应地,
Figure GSB00000807124100086
)希望得到保证y(相应地,x)是随机地从中
Figure GSB00000807124100087
选择,其中
Figure GSB00000807124100091
是整数集{1,2,,q-1}。明显地,原始的DH-协议不能到达这一公平的目标。而且,原始DH-协议中,协议响应者(看上去)比协议初始者能更多地影响DH-秘密的结果。
在很多应用中,共享的DH-秘密接下来作为构造模块(特别是与其它DH-秘密相乘)来构造更先进和复杂的密码学对象(比如群Diffle-Hellman密钥交换等等)。之前本领域并不清楚到底什么必要条件可以保证DH-秘密的这样模块化的应用是安全的。
发明人在此观察到,直觉上保证不可锻造地模块化使用共享DH-秘密的条件是:不管任何恶意的
Figure GSB00000807124100092
和/或者
Figure GSB00000807124100093
怎么做,也不管与DH-秘密进行组合的(先进而复杂的密码学对象)其它的成分是什么,具有不同标签的(成功完成的)会话的DH-秘密输出应该是随机独立地(即:在G/1G上独立随机的分布),其中G/1G表示G中除了单位元1G外所有元素的集合。发明人将这个性质命名为标签绑定自封闭(TBSS)。
标签绑定自封闭(TBSS)DHKE的定义:定义U为G/1G上的均匀分布,定义ZTag为任意由会话标签Tag所确定的成功结束的会话的共享DH-秘密的分布,定义|TAG|为所有可能的成功完成并具有不同标签的会话的数量。如果对于一个DHKE协议,如果对于所有的具有不同标签的成功完成的会话,{ZTag}的分布与(U)|TAG|是一致的,那么这个协议被称为是标签绑定自封闭的。注意TBSS的定义中,没有要求每一个会话都有随机DH-成分贡献。
为了给原始DH-协议增加标签绑定自封闭性质,我们定义DH-秘密为Yxh(Tag)=gxyh(Tag)=Xyh(Tag),其中
Figure GSB00000807124100094
并且h:{0,1}*→Zq *是一个哈希函数。该协议变体称为标签绑定自封闭Diffie-Hellman(TBSS-DH),在图1(102)中描述,并且在图13(1301)中有一副图例进行阐明。TBSS性质可以很容易在随机圣谕模式下得到验证(通过假设h是一个真正的随机函数)。用户双方相互的公平是很容易验证的。具体来说,不管DH-成分x和y如何选择,
Figure GSB00000807124100095
Figure GSB00000807124100096
都是在随机圣谕模式下
Figure GSB00000807124100097
都中的随机值。但是发明人要提醒的是,DH和TBSS-DH都不能提供相互的身份认证。(注意如果用户身份没有参与共享DH-秘密的计算,身份认证和密钥导出函数(KDF)都应该依赖于用户身份。)
发明人表明:缺少标签绑定自封闭性质能够引起DH-协议至关重要的安全问题。发明认分别在Burmester-Desmedt协议(BD协议)和(H)MQV协议的基础上阐述了这一问题,其中BD协议是原始DH协议在群环境下的拓展,而(H)MQV协议是目前最成功和广泛标准化的DHKE协议之一。
对Burmester-Desmedt群Diffie-Hellman协议的重新审视
假设
Figure GSB00000807124100101
n>2为一个用户群,其中的用户想共享一个密钥。BD协议(由Burmester等在Advances in Cryptology-Proceedings of EUROCRYPT’94,pages 279-290,May 1994提出)工作如下:每个
Figure GSB00000807124100102
1≤i≤n,计算并发布其中xi随机地从中选取;之后,每一个计算并发布
Figure GSB00000807124100106
(其中索引下标取自一个循环);最后计算共享DH-秘密 k i = ( X i - 1 ) nx i · Z i n - 1 · Z i + 1 n - 2 · · · Z i - 2 = g ( x 1 x 2 + x 2 . x 3 + . . . + x n . x 1 ) . 注意一个成功结束的BD协议会话的标签是 ( U ^ 1 , U ^ 2 , . . . , U ^ n , X 1 , X 2 , · · · , X n ) .
发明人阐述了当n=3的时候,对BD-协议的一个攻击方法,也即勾结
Figure GSB000008071241001011
攻击诚实的
Figure GSB000008071241001012
(这个攻击很容易拓展为当n>3时的一般情况,即一些恶意的攻击者勾结在一起攻击诚实用户)。
Figure GSB000008071241001013
设X2
Figure GSB000008071241001014
则不管诚实的
Figure GSB000008071241001015
挑选的DH指数x3是什么,共享DH秘密都是注意到由于x1是由
Figure GSB000008071241001017
恶意生成的,因此共享的DH-秘密可能是G中的任意值,也就没有随机性和独立性的保证了。更严重的是,如果勾结的
Figure GSB000008071241001020
在不同的会话中使用相同的X1那么这些不同会话的共享DH秘密——不管用户
Figure GSB000008071241001022
(实际上任何用户都是一样)怎么努力——都是相同的,始终是
Figure GSB000008071241001023
这一攻击方式清楚地表明了由于BD协议不是标签绑定自封闭的,没有TBSS性质,会导致DHKE协议重大(甚至严重)的安全问题。发明人要特别指出的是,TBSS和DHKE的公平问题,以及上述攻击,还尚未在本领域中被阐述和处理。还要指出的是,即使是由Katz等提出的BD-协议通用组合版(UniversallyComposable,UC)仍然不能阻止上述攻击(具体而言,TBSS和公平问题以及上述攻击都没有被群DHKE的UC框架所刻画)。
发明人基于TBSS-DH协议的精神给出了BD-协议的一个变体,称为(共同)可贡献BD(简记为记cBD)(参见图1,102)。cBD协议工作如下:每个用户
Figure GSB00000807124100111
1≤i≤n,计算并发布
Figure GSB00000807124100112
其中xi随机从
Figure GSB00000807124100113
中选择;之后
Figure GSB00000807124100114
计算并发布 Z i = X i + 1 x i h ( U ^ i , X i , X i + 1 ) / X i - 1 x i h ( U ^ i - 1 , X i - 1 , X i ) ; 最后
Figure GSB00000807124100116
如下计算出DH-秘密 K i = ( X i - 1 ) nx i h ( U ^ i - 1 , X i - 1 , X i ) · Z i n - 1 · Z i + 1 n - 2 · · · Z i - 2 ( = g x 1 x 2 h ( U ^ 1 , X 1 , X 2 ) + x 2 x 3 h ( U ^ 2 , X 2 , X 3 ) + · · · + x n x 1 h ( U ^ n , X n , X 1 ) ) .
可以很容易地检查我们的cBD协议在随机圣谕模式下是能满足下列性质的:(1)对任意i,1≤i≤n,只要用户
Figure GSB00000807124100118
是诚实的,就可以保证共享的DH-秘密Ki是随机的(即在G/1G上随机分布)。理由是,对每一个j,0≤j≤n-1,
Figure GSB00000807124100119
本质上是自封闭的,所以是随机的,并且只要
Figure GSB000008071241001110
它都是独立于其它乘法成分
Figure GSB000008071241001111
的。(2)对于具有不同会话标签的不同(成功完成的)会话,其所共享的DH-秘密是独立的。cBD协议可以用Katz和Yung(于Advances in Cryptology-Proceedings of CRYPTO’03,pages 110-125,August 2003)提出的通用方法转换为可验证的群KE,也可以用Abdalla等(在Proceedings ofInternational Conference on Theory and Practice in Public-Key Cryptography PKC’06,pages427-442,2006)提出的方法转换为基于口令的群KE。
对(H)MQV的重新研究
发明人在最近(由发明人所)提出的针对DHKE协议的的YYZ框架下重新研究了(H)MQV,并发现了(H)MQV在一般意义上不能得到基于标签的健壮不可锻造性。
这是通过具体的攻击来展示的,而这些攻击的部分原因正是由于(H)MQV的共享DH-秘密缺少标签绑定自封闭。
第一个攻击:假设恶意的
Figure GSB000008071241001112
将X∈G作为辅助输入,其中X是G中的任意值,并且
Figure GSB000008071241001113
不知道X的离散对数(即DH指数),那么
Figure GSB000008071241001114
做如下操作:
(1)
Figure GSB000008071241001115
计算d,其中攻击MQV时d=2l+(X mod 2l),攻击HMQV时
Figure GSB000008071241001116
然后,
Figure GSB000008071241001117
选择任意的值z∈q,计算然后向证书机构(CA)注册A作为公钥。
(2)
Figure GSB000008071241001119
发起一个同
Figure GSB000008071241001120
进行的会话,发送(在其辅助输入中出现的)X给
Figure GSB000008071241001121
注意
Figure GSB000008071241001122
不知道X的离散对数。
(3)在接收到发送的Y后,
Figure GSB000008071241001124
计算
Figure GSB000008071241001125
和会话密钥
Figure GSB000008071241001126
其中MQV中e=2l+(Y mod 2l),HMQV中
Figure GSB000008071241001127
诚实的
Figure GSB000008071241001128
计算
Figure GSB000008071241001129
和会话密钥
Figure GSB00000807124100121
注意到 K B ^ = ( XA d ) y + eb = ( X · ( ( X - 1 ) d - 1 · ( g z ) d - 1 ) d ) y + eb = ( X · ( g ( - x · d - 1 ) + ( z · d - 1 ) ) d ) y + eb = ( X · ( g ( - x + z ) · d - 1 ) d ) y + eb = ( X · g - x + z ) y + eb = ( g z ) y + eb = ( g y + eb ) z = ( YB e ) z = K A ^ . 这说明了攻击是有效的。同时应该注意到共享DH-秘密
Figure GSB00000807124100124
不是标签绑定自封闭的,比如,考虑z=0的情况。
第二种攻击:在接收到未被控制的诚实用户发送的X后(实际上,由于X通常是预计算的,所以很可能是在协议开始之前X就已经泄漏了出去),恶意的用户
Figure GSB00000807124100126
计算d=2l+(X mod 2l),并且注册
Figure GSB00000807124100127
为其公钥。然后,
Figure GSB00000807124100128
在第二轮发送Y=X给注意在MQV中,此时d=e并且由于Y=X,y=x。还要注意B相应地私钥是b=-xd-1+z。此时,
Figure GSB000008071241001210
计算 K B ^ ( = K A ^ ) = ( XA d ) y + eb = ( XA d ) x + d ( - xd - 1 + z ) = ( XA d ) dz . 同样的,
Figure GSB000008071241001212
实际上既不知道b,又不知道y=x。
对于上述两种攻击,恶意的用户都能在既不知道固定私钥,又不知道临时DH-指数的情况下成功地地完成会话。上述攻击也可以稍做修改(事实上是很简单的修改)来攻击图7所示的1轮HMQV变体。因为在上述攻击中会话的标签是不同的并且在诚实用户端是内部未暴露的(实际上,攻击者没有用到任何的临时私有数据),这说明在一般意义上(H)MQV在YYZ框架下没有健壮的不可锻造安全性。注意:由于攻击者的确计算出了共享的DH-秘密(也即会话密钥),3轮(H)MQV变体所要求的MAC身份认证亦不能阻止这些攻击。另外,明确地将用户的身份作为密钥导出函数的输入亦不能阻止上述攻击。发明人需要提醒的一点是,即便在某些场景下上述攻击的危害可能还不是特别明显,有一点很关键:假设一个用户知晓刚刚和自己完成一次会话的另外一方人既不知道其(对应于另外一方发送的DH-成分的)DH指数,也不知其(对应于另外一方所发送的DH-公钥的)私钥,那么该用户怎么能相信自己的安全是得到很好的保障的呢(特别是对那些参与重要任务的用户而言)?在公钥注册时显式要求对私钥进行知识证明/持有证明(POK/POP)可以防止第一类攻击。若每个用户都在协议运行之前知道并保证其它参与用户公钥的合法性,第二类攻击也可以防止。但是这样的补救措施会使得系统复杂化,限制协议的使用。并且身份后置计算(也即只在协议运行过程中才能得获悉其它参与用户的身份和公钥)是很值得称道的保护用户隐私的手段。发明人认为如果一个DHKE协议自身就能保证必要的(DHKE协议所期望的)安全性质,能够自身尽可能的健壮而不用求助于超越协议本身的对于系统环境的额外要求(或者对系统环境的额外要求尽可能少),才是最为可取的。发明人指出在HMQV中,密钥注册时POP/POK是被明确放弃了的,并且在很多(H)MQV实际应用中没有强制要求。这是因为通常认为(H)MQV应能保证相互的身份认证,而且POP/POK亦不能阻止Kaliski(在ACM Transactions on Information and System Security,4(3):275-288,2001所展示的)未知密钥共享(UKS)攻击。
补救方法:发明人基于针对共享DH-秘密增加标签自封闭性质的精神,在此给出了以下不需要POP/POK或者预先知道其它参与者身份和公钥的改进方法。具体而言,对于2轮和3轮的(H)MQV变体,设(1)
Figure GSB00000807124100131
e = h ( B ^ , B , Y ) , 或者(2) d = h ( X , B ^ , A ) e = h ( Y , A ^ , B ) , 或者(3) d = h ( A ^ , A , B ^ , B , X , Y ) 和e=h(d),等。对于1轮的(H)MQV变体,设
Figure GSB00000807124100136
其它成分保持不变与(H)MQV保持一样。
发明人认为第一种方案更好。在此,发明人做了进一步的修改。特别地,定义 K A ^ = ( Y e B ) xd + a , K B ^ = ( X d A ) ye + b , 其中 d = h ( A ^ , A , X ) , e = h ( B ^ , B , Y ) . 会话密钥仍然是
Figure GSB00000807124100139
我们把该协议称为YYZ-MQV,其在图2(204,205)中刻画。(如果关于私钥的POP/POK在密钥注册时被显式地被要求,以及/或者每个用户都拥有对方公钥的证书,公钥输入可以在d和e的输入中去除。)在实际中,最好每个用户的公钥证书本身都包括了该用户的身份和公钥的哈希值,并且这些值被认证机构CA验证和确认。在这种情况下,d,e的输入中的
Figure GSB000008071241001310
Figure GSB000008071241001311
可以被它们在证书中的哈希值来代替。
发明人注意到所有上述的(针对MQV/HMQV的)攻击对于YYZ-MQV均是失效的。YYZ-MQV还具有以下的优点:
(1)YYZ-MQV是标签绑定自封闭的。
(2)不管恶意的
Figure GSB000008071241001312
(相应地,
Figure GSB000008071241001313
)怎么做,(x,da)(相应地,(y,eb))的值在随机圣谕模式下是独立的。
(3)x+da的值(相应的,y+eb)可以由
Figure GSB000008071241001314
(相应的,
Figure GSB000008071241001315
)在不知道其协议参与者另外一方信息的情况下就进行预计算。而且,Bx+da的值(相应地,Ay+eb)也可以由
Figure GSB00000807124100141
(相应地,
Figure GSB00000807124100142
)离线预计算。
实际上,YYZ-MQV的根本的设计理念完全不同于(H)MQV,我们将在接下来的段落里进行进一步的论述。
自封闭联合知识证明
安全DHKE协议的核心思想是:当一个用户成功完成一次内部未暴露的会话(记为测试会话)时,该用户应该能得到如下保证:和它进行交互的另外一个用户的确知道(对应于另外一方用户所声称的公钥和所发送的DH-成分)固定私钥和临时DH-指数。由于DHKE协议是并发运行在在异步攻击的环境(比如互联网)中,因此上述这一“保证”应该在面对任何有效的并发中间人的攻击下仍然成立,即使中间人可以控制所有通讯频道,能够知道除测试会话以外任何会话的临时私有值,并具有任意的辅助输入。假设用户的公钥是基于离散对数(discrete logarithmic,DL),发明人发明了一种新的,高度实用的方法来证明这样的联合DH-知识。下面将给出详细的说明和讨论。
假设用户
Figure GSB00000807124100143
(相应地,
Figure GSB00000807124100144
)的公钥是A=ga(相应地,
Figure GSB00000807124100145
),私钥是a(相应地,b),其中私钥是从
Figure GSB00000807124100146
中独立随机地挑选的。假设公钥基础设施(public-keyinfrastructure,PKI)在密钥注册的时候不需要针对注册公钥所相应地私钥的知识证明(POK)或者持有证明(POP),但认证机构(CA)仍然会检查注册公钥是否为子群的(非单位元)成员(也即保证注册的公钥在中G/1G中)。这里G/1G表示G中除了单位元1G外所有元素的集合。
起点是(由姚等在Cryptology ePrint Archive No.2007/191提出,可由http://eprint.iacr.org/2007/191得到的)如下的联合知识证明方法:为了证明对私钥和DH-指数的知识(比如,相对于用户
Figure GSB00000807124100147
的公钥B和临时DH成分Y=gy),
Figure GSB00000807124100148
先发送X=gx
Figure GSB00000807124100149
响应并发还{Y=gy,JPOK(b,y)=HK(Xb,Xy)}。其中JPOK(b,y)表示对一个随机挑战X,针对私钥b和DH指数y的联合知识证明。
除了计算DH-成分Y,以及交互对象DH成分X的测试子群外(减少子群测试复杂度的方法将在后文中论述),还需要进行大约1.2次幂运算(注意并行计算Xb和Xy时实际的幂运算量大概是1.2次)。除了其它运算,
Figure GSB000008071241001411
还需要进行2次左右的幂运算(Bx,Yx)来验证HK(Xb,Xy)的结果的正确性。为了减少计算的复杂度,一项很自然的尝试就是:将HK(Xb,Xy)的值替换为HK(Xb+y)。这样修改后,
Figure GSB00000807124100151
只需要进行1次幂运算HK(Xb+y),而
Figure GSB00000807124100152
只需要1.5次幂运算(注意
Figure GSB00000807124100153
在计算Xb+y=BxYx时一共是1.5次)。
但是,这样修改之后会使得原本健壮的认证方法产生根本性的错误。考虑一下这样的攻击:攻击者Д可以设Y=B-1gz,其中z为任意的z∈Zq:这样就可以Д伪装成
Figure GSB00000807124100154
注意这种情况下y=-b+z,所以Д可以很容易的计算出JPOK(b,y)=HK(Xb+y)=HK(Xz),而它实际上不知道b和y。也就是说,Д可以通过恶意地关联y和b的值,将B和Y锻造为Xy+b,而不用真正地知道y和b的值。注意对恶意的y和b可以是G/1G中的任意值,因此它们能够恶意相关联。
从上述观察可知,另一个自然的补救方法是将b和y用随机值遮盖起来。这样,知识证明为JPOK(b,y)=HK(Xdb+ey),其中d和e是随机值。这个想法也被证明是错的。以
Figure GSB00000807124100156
Figure GSB00000807124100157
为例,在恶意的
Figure GSB00000807124100158
接收到X后,可以生成并发送Y=B-d/e,这样JPOK(b,y)=HK(Xdb+eg)=HK(1G)。我们注意到,基本的公钥基础设施(PKI)不要求在密钥注册的时候进行POK/POP,恶意的
Figure GSB00000807124100159
就不用知道b和y的值。上面的攻击也说明了将b和y遮盖不能保证JPOK的不可锻造性。同时要注意,不管恶意的
Figure GSB000008071241001510
怎么做,(在随机圣谕模式下)db和ey都是在Zq *上随机的,问题的关键在于它们不能保证是相互独立的。
为了保证db和ey的独立性,一个方法是:将(B,0)的值放在d的输入里,将(Y,1)放在e的输入里。通过这种方式并将h视为一个随机圣谕,那么不管攻击者怎么构造B和Y,B和b都会独立于d=h(B,0)(由随机圣谕假设h,这是一个独立的随机值),而Y和y也会独立于e=h(Y,1)。同时,d和e都是独立的(即便B=Y)。也就是说,不管可能的恶意的
Figure GSB000008071241001511
采取什么策略,db和ey的值都是独立的(在随机圣谕模式下,这些值都是在Zq *上均匀分布的)。如果我们仅仅考虑诚实的知识验证者
Figure GSB000008071241001512
对抗恶意的知识证明者
Figure GSB000008071241001513
那么这个方案似乎可行的。但是这个方法仍然不能满足我们的目的,具体而言,就是不能不可锻造地模块化使用Xdb+ey作为构造工具来构建更高层的密码学对象。比如,为了进一步加强诚实知识验证者的安全性并提供相互的身份认证,我们考虑下面一种模块化使用Xdb+ey的情况:定义共享DH秘密为AcyXdb+ey=BdxYca+ex,其中c=h(Y),d=h(B),e=h(Y),并要求
Figure GSB00000807124100161
发送HK(1,AcyXdb+ey)同时
Figure GSB00000807124100162
发送HK(0,BdxYca+gx)来进行相互的认证和身份认证。很明显,这加强了诚实用户对抗可能的恶意的
Figure GSB00000807124100164
的安全性,也提供了看起来合理的相互认证和身份认证。但是这种对于相互认证和身份认证的直觉还是错的。具体来说,考虑下列的攻击:(1)密钥受损伪装(Key Compromise Imprsonate,KCI)攻击:如果固定私钥b泄漏给了恶意的攻击者
Figure GSB00000807124100165
Figure GSB00000807124100166
可以设X=A-1,然后计算出BdxYca+ex=Bdx=Xdb,但实际上它不知道a和x。(2)如果
Figure GSB00000807124100167
可以根据计划对象的DH-成分来设置自己的公钥(比如在身份后置模式下),
Figure GSB00000807124100168
可以设X=Y和
Figure GSB00000807124100169
然后计算出BdxYca+ex=1G。同样的,
Figure GSB000008071241001610
还是不知道a和x。我们注意到上述攻击的根本原因是JPOK(b,y)=Xdb+ey缺少针对d=h(B)和e=h(Y)的标签绑定自封闭性质。比如,从两个不同的标签
Figure GSB000008071241001612
产生的Xdb+ey和X′db+ey,其中X′≠X但是相关连(比如X′=X2),很明显不是独立的。这再一次表明:在用共享DH-秘密(在这里是JPOK)作为模块化构造模块实现更为高层的密码学系统时,缺少TBSS可能为恶意攻击者留下潜在的后门。
所有上述的阐述和讨论可以提炼为,(依据针对DHKE协议设计的YYZ框架)为了让联合知识证明JPOK(b,y)=Xdb+ey取得基于标签的健壮不可锻造性,JPOK(b,y)必须保证:
1.无论恶意的知识证明者
Figure GSB000008071241001613
做什么(指构造B和Y),(对于任何的非单位元的DH-成分B和Y),db和ey都应该在上相互独立。这里,独立表示db和ey的分布在理想化的随机圣谕模式中在
Figure GSB000008071241001615
上是独立的(实际上是均匀的)。还有一个更强的要求是:不管恶意的
Figure GSB000008071241001617
(在生成X,B和Y上)怎么做,(对于任何的非单位元的DH-成分X或Y,B),dbx和eyx都应该在
Figure GSB000008071241001618
上相互独立。这里,独立表示在理想化的随机圣谕模式中在
Figure GSB000008071241001619
上的独立分布。
(在某些特定的场景或应用中,比如,每个用户在协议运行前都拥有一份交互对象的经过验证的公钥证书,并且/或者密钥注册时有显式的POK/POP,那么上述针对独立性的要求可以放松一些,只需要对任意的(非单位元)临时DH-成分成立,即无论恶意的用户如何生成临时DH-成分。)
2.所共享的DH-秘密,也即Xdb+ey,是标签绑定自封闭的。或者,d和e至少要承诺(固定)
Figure GSB000008071241001620
在发送Xdb+ey时部分知道的会话标签(比如,当
Figure GSB000008071241001621
在后置身份模式下运行时)。
在这里,承诺指的是:给定d和e,(可能是部分的)会话标签(由
Figure GSB00000807124100171
在发送点Xdb+ey已知)被确定,并且没有有效的(概率多项式时间)算法能输出不同的会话标签,使得双方都满意相对于相同的给定d和e的某一预定的多项式时间可计算的关系。更为正式地来说,承诺协议使得一方可以将自己绑定于一些值,使得一旦给定承诺协议的运行记录,那么被承诺的值将确定下来,并且没有有效的(概率多项式时间)算法可以以不可忽略的概率(可能在在一定的密码学假设下)将承诺协议的运行记录褪承诺为(与该运行记录原承诺值不同的)其它值。
(在某些场景或应用中,比如,用户经过认证的公钥的拷贝在协议运行之前被对方获得,并且/或者在密钥注册的时候有显式地要求POP/POK,那么用户的公钥不一定承诺固定至d和e。如果用户的身份没有由d和e承诺固定,那么应该将用户身份放入认证的输入以及/或者密钥导出函数的输入中。在实际中,我们建议每个用户的公钥证书中都包含用户身份和公钥的哈希值,并且这些哈希值由d和e承诺固定。)
3.为了便于在线计算效率,我们可以加上额外的要求:Bxd的值可以由
Figure GSB00000807124100172
离线预计算。
基于前述的观察,发明人在此提出两个优先的联合知识证明解决方法。
(1)自封闭的联合知识证明(SSJPOK)。SSJPOK(b,y)=Xdb+ey,其中
Figure GSB00000807124100173
并且e=h(X,Y)。注意在这里d和e在随机圣谕模型下均为随机独立的。标签绑定自封闭的性质可以在随机圣谕模式下很容易地得到验证。图13(1302)中刻画了一个有趣的SSJPOK的图例阐释。如果验证者
Figure GSB00000807124100174
在发送Xdb+ey之前不能展示出自己的身份(比如,为了保证自己身份的隐私),可以将d的值设为
Figure GSB00000807124100175
(2)简单SSJPOK(sSSJPOK)。sSSJPOK(b,y)=Xdb+ey,其中d=1,
Figure GSB00000807124100176
注意,尽管d和e并非都是随机的,但它们在随机圣谕模型下的确都是独立的。标签绑定自封闭的性质在随机圣谕模式下也是能平凡地得到满足。
SSJPOK(b,y)实际上是两个自封闭的POK的乘积:Xbd用于证明对固定私钥b的知识,其中
Figure GSB00000807124100177
Xey用于证明对临时DH指数y的知识,其中e=h(X,Y)。但是由d和e的设计机制,对Xb=Bx(相应地,Xy)的攻击尝试(不管是由恶意的
Figure GSB00000807124100181
Figure GSB00000807124100182
作出的)本质上被封闭于(也即局部化于)Xb(相应地,Xy)是封闭的,并被隔离(即,独立于)对其它SSPOK Xey=Yex(相应地,Xdb)的攻击尝试的。正因为如此,我们将之命名为自封闭联合知识证明。具体来说,不管可能的恶意者
Figure GSB00000807124100183
怎么做,知识证明者必须计算两个独立的关于新的随机挑战X的DH-秘密Xdb和Xey。在对抗有任意辅助输入的CMIM攻击的新挑战指数知识假设(KEA)假设下,其在发明人的相关工作阐述,这明确地蕴含了
Figure GSB00000807124100185
的确“知道”b和y。
当然,还有其它的SSJPOK候选。但是上面明确提出的两个方法有着以下有利的性质,使得它们更有价值和更值得期待:
1)SSJPOK的后置身份,离线和模块化可计算性。SSJPOK允许知识验证者
Figure GSB00000807124100186
采用后置身份模式来保护自己的隐私。特别的,如果e的输入不包括
Figure GSB00000807124100187
的身份和公钥,
Figure GSB00000807124100188
可以先发送X而不用展示自己的身份信息。这时,
Figure GSB00000807124100189
可以先计算Xey,并只在接收到
Figure GSB000008071241001810
的身份和公钥后再计算Xdb。并且还要提到的是,不把Y放入d的输入中使得
Figure GSB000008071241001811
可以在协议开始之前预计算Bdx=(Xdb)。
2)sSSJPOK的高效和最少的随机圣谕使用。sSSJPOK的可取是因为它计算时的更高效以及使用随机圣谕也更少。
拓展:SSJPOK的拓展版本,记为一般性的SSJPOK(gSSJPOK),在图5中展示。在gSSJPOK的描述中,Y0和B0表示空值;Bj,1≤j≤m1,是
Figure GSB000008071241001812
的公钥(也即固定DH-成分)。F是一个预先决定的多项式时间可计算的函数,可能是恒等函数。
Figure GSB000008071241001813
Figure GSB000008071241001814
是两个确定的多项式时间可计算(也许是恒等的)函数(分别由
Figure GSB000008071241001815
Figure GSB000008071241001816
计算),其中
Figure GSB000008071241001817
的输出是
Figure GSB000008071241001818
的一个子集(相应地,
Figure GSB000008071241001819
的输出是G/1G的子集),满足 g f A ^ ( x 1 , · · · , x n ) = f B ^ ( X 1 , · · · , X n ) . 特别的,若 f A ^ ( x 1 , · · · , x n ) = { x 1 , · · · , x n } , f B ^ ( X 1 , · · · , X n ) = { X 1 , · · · , X n } , { X 1 , . . . , X n } z = { Z 1 z , . . . , Z n z } , 其中 z = b 1 d 1 + · · · + b m 1 d m 1 + y 1 e 1 + · · · + y m 2 e m 2 . “独立”和“会话标签承诺”的解释是对SSJPOK情形的直接拓展。
注意图2(204)所刻画的YYZ-MQV协议实际上是gSSJPOK的一个实例,而MQV和HMQV则不是。
还要提出的是:发明人建议,鉴于本文所发明的SSJPOK(还包括sSSJPOK和gSSJPOK)可以作为联合并不可锻造地证明DH-知识的范式,它们是基于DH的密码学应用的基础(特别是对认证和密钥交换的应用来说),有着广泛的应用前景。特别地,它们可以应用于任意的使用先签名后使用信息认证码的认证机制,还可以应用于需要多个DH-秘密相乘的应用中。SSJPOK的一个核心的应用是如下所述的YYZ协议族,YYZ协议族在本质上在安全性,隐私性和协议的效率之间取得最佳平衡。
YYZ协议族
YYZ协议将SSJPOK作为关键的构造工具,其一般性结构在图6中展示。在对一般性的YYZ协议的描述中,定义{m1,m2,…}为不同于DH-成分并在协议运行中交换(或与协议运行相关)的信息。Xi’s(相应地,Yj’s)为用户
Figure GSB00000807124100191
(相应地,
Figure GSB00000807124100192
)贡献的(固定和/或临时的)DH-成分。KDF是一个密钥导出函数,其它公式函数的含义和图5中描述的gSSJPOK的函数类似。
为了让协议在安全性,隐私性和效率(包括概念的清晰简洁,计算的对称性,便于部署,等)上取得最佳的平衡,发明人研究了该认证DHKE一般性结构的各种各样的实例。
注意:相对于随机挑战X的SSJPOK(b,y)只能向用户
Figure GSB00000807124100193
保证用户
Figure GSB00000807124100194
的确知道b和y。定义SSJPOK(a,x)为由
Figure GSB00000807124100195
给出的相对于随机挑战Y的关于a和x的联合知识证明。为了得到安全的DHKE协议(特别地,具有相互的身份认证和密钥确认的协议),一个很自然的方法是将由姚等提出的可抵赖互联网密钥交换(IKE)(Cryptology ePrint Archive No.2007/191)的联合知识证明机制,也即(Xb,Xy)(相应地,(Yb,Ya)),替换为SSJPOK(b,y)(相应地,SSJPOK(a,x))。会话密钥仍然是从gxy导出。尽管这样可以得到一个健壮而安全的DHKE协议,但是这样的DHKE协议相比于现有的姚等提出的可抵赖IKE协议,没有任何优势。
注意到,因为Xdb+ey=BdxYex,SSJPOK(b,y)的值Xdb+ey实际上可以用来展示关于x的知识。现在的关键洞察是:为了让
Figure GSB00000807124100196
额外证明私钥a的知识,将自封闭的群合知识证明Xdb+ey=BdbYex乘上另外一个自封闭的知识证明Yca其中 c = h ( B ^ , A ^ , A , Y ) . 这样得到 σ A ^ = B dx Y ca + ex = ( B dx Y ex ) · Y ca = ( X db + ey ) · Y ca = ( X db + ey ) · A cy = A cy X bd + ey = σ B ^ , 其中
Figure GSB00000807124100199
计算
Figure GSB000008071241001910
Figure GSB000008071241001911
计算
Figure GSB000008071241001912
c = h ( B ^ , A ^ , A , Y ) , d = h ( A ^ , B ^ , B , X ) , e=h(X,Y),所确定的标签为
Figure GSB00000807124100201
还要注意的是:c(相应地,d)的输入中的
Figure GSB00000807124100202
的身份(相应地,
Figure GSB00000807124100203
的身份)对于保证共享DH-秘密的标签绑定自封闭的来说是多余的,因此可以(在c和d的输入中)除去。所有的观察可以提炼为刻画在图2(206,207)中并在图13(1303)中图例阐释的YYZ协议。所基于的公钥基础设施PKI没有要求在密钥注册的时候针对对私钥的POP或者POK,但是认证机构CA会检查注册公钥是否为(非单位元的)子群成员(也即保证注册的公钥在G/1G中)。并且,在YYZ协议族中,哈希函数HK,h可以相同。
可能暴露给攻击者的临时私有值:在协议运行中,可能暴露给攻击者的由诚实用户
Figure GSB00000807124100205
(相应地,
Figure GSB00000807124100206
)生成的临时私有值为:如果
Figure GSB00000807124100207
(相应地,)没有预计算Acy(相应地,Bdx),那么只有y(相应地,x);如果进行了预计算,那么是(y,Acy)(相应地,(x,Bdx))。其它的临时私有值在使用以后都会被立即删除。另外,除了会话成功结束后的会话密钥外,所有诚实用户生成的临时私有值都在会话结束(不管是完成还是中止的)后被删除。对于过期的会话,其会话密钥也被删除。
嵌入式(隐式)子群测试
检查DH-成分,比如X,是否在G中的基本技术是验证Xq=1G。这需要进行1次模指数运算。但是如果辅因子t=N/q很小,比如其中p=2q+1或者G是有限域上椭圆曲线的子群(这时候辅因子是一个小常量,甚至为1),X的子群测试可实质上归结为(1)检查X∈G′;(2)Xt≠1G。一般来说,X∈G′和Xt≠1G保证了X不在G′的一个(小的)子群中,该小子群以t的一个因数为阶(但这不能完全保证X∈G,比如,考虑X=-gx)。这引出了下面的YYZ协议变体(这技术还可以适用于SSJPOK的实例和YYZ一般性结构的其它实例):
K A ^ = B dxt Y cat + ext K B ^ = B cyt Y dbt + eyt , 会话密钥 K = H K ( K A ^ ) = H K ( K B ^ ) , 其中
Figure GSB000008071241002013
Figure GSB000008071241002014
e=h(X,Y)。子群测试如下进行:每个用户验证其交互对象的DH-成分是否在中G′;对于
Figure GSB000008071241002015
(相应地,
Figure GSB000008071241002016
)来说,如果Bdxt和Ycat+ext(相应地,Acyt和Xdbt+eyt)是分开计算的,
Figure GSB000008071241002017
(相应地,
Figure GSB000008071241002018
)检查Ycatext≠1G(相应地,Xdbt+eyt≠1G)
如果不是分开计算的,那么
Figure GSB000008071241002019
(相应地,
Figure GSB000008071241002020
)验证
Figure GSB000008071241002021
(相应地,
Figure GSB000008071241002022
)。注意,正如基于MQV的椭圆曲线上所做的一样,检查
Figure GSB00000807124100211
Figure GSB00000807124100212
不能完全保证Xt≠1G
Figure GSB00000807124100213
(即:不能完全排除DH-成分属于小子群的可能性),但它仍然在椭圆曲线的环境下提供了合理的保证。
发明人要指出的是,如果将诚实用户在协议运行中生成的临时私有值保护好,忽略交互对象DH-成分的子群测试的危害是不足为惧,甚至可以忽略的。比如,即使攻击者通过针对诚实用户
Figure GSB00000807124100214
执行一个小子群攻击(通过设X属于一个小子群)而知道了db+ey的部分信息,但在不知道临时值y的情况下它仍然不能导出出b。还要指出的是,攻击者实际上不能导出出db+ey的完整值,因为DH-指数y在每个会话中是独立而随机的。
为了表述的简洁和一致,在申请文件的剩余部分中,对带有内嵌式子群测试的发明协议的实现(比如,对基于椭圆曲线的实现),都假设t=N/q;如果每个用户能保证其交互对象的DH-成分为(非单位元)子群成员,则t=1。
YYZ变体
发明人研究了图2中描述的的YYZ协议的一些很有用的协议变体,这些变体都具有本身的特色和价值。
简单YYZ(sYYZ): K A ^ = B dxt Y cat + ext , K B ^ = A cyt X dbt + eyt , 会话密钥 K = H K ( K A ^ ) = H K ( K B ^ ) , 其中c=d=1, e = h ( A ^ , A , B ^ , B , X , Y ) .
健壮YYZ(rYYZ): K A ^ = B fa + dxt Y cat + ext , K B ^ = A fb + cyt X dbt + eyt , 会话密钥 K = H K ( K A ^ ) = H K ( K B ^ ) , 其中 c = h ( A ^ , A , B ^ , B , Y ) , d = h ( B ^ , B , A ^ , A , X ) ,
Figure GSB000008071241002114
如果要求完整的可抵赖性则f=0而如果只是要求群可抵赖性则f=1。实际上,函数e可以设为h(c,d)或者h(c,X)或者h=(d,Y)。关键的一点在于要将X和Y都放入e的输入中即可。特别的,如果f=0,e仍然可以设为h=(X,Y)。但是如果f=1并且e=h(X,Y),就会存在下面的弱点:用户设Y=A-1,B=Xet,那么实际上
Figure GSB000008071241002116
实际上等于的AcytXdbt
一轮YYZ(记为:orYYZ):用户
Figure GSB000008071241002117
发送X=gx
Figure GSB000008071241002118
通常来说,
Figure GSB000008071241002119
是客户端而
Figure GSB000008071241002120
是服务端。令
Figure GSB000008071241002121
Figure GSB000008071241002122
其中
Figure GSB000008071241002123
会话密钥为
Figure GSB000008071241002124
对于orYYZ来说,我们建议将输出的长度h设小一点,比如|q|/2(其中|q|表示q的比特长度),这样可以使得在某些应用场景下计算时的运算量较少(比如在不方便预计算Ab的时候)。这项技术也可以应用于简单SSJPOK。
注意,对于orYYZ来说,
Figure GSB00000807124100221
的计算复杂度总共是2次指数运算,且
Figure GSB00000807124100222
的所有运算都可以离线进行。为了提高的在线运算效率,用户可以先离线预计算Ab(并将之存储在对应于
Figure GSB00000807124100225
的数据库条目里),然后只需要在线计算Xeb和Xq(针对显式要求的子群测试),这样总共需要大概1.2次指数运算(建议显式地检查X为子群成员)。若应用内嵌式子群测试中,
Figure GSB00000807124100226
应该显式地检查X∈G′和Xebt≠1G(仅仅检查对于防止小子群攻击不充分)。注意如果的固定私钥b有泄露的危险,一轮YYZ则会遭受KCI攻击,同时一轮YYZ亦缺少完美前向保密(PFS)性质。但是,相比于一轮HMQV(于图7中描述),orYYZ不会受到未知密钥共享(UKS)攻击,并且有着更好的在线计算效率。
关于密钥导出和相互认证:为了得到看起来更为健壮的安全性,在YYZ协议的密钥导出中建议将(c,d)放入HK的输入中;在rYYZ,sYYZ和orYYZ协议的密钥导出中,将e放入HK的输入中(该技术也可在YYZ协议各种应用中的密钥导出中加以应用)。
为了在YYZ协议族中加入相互认证,除了会话密钥K外,还需一个消息认证码的密钥Km在协议运行中使用(但是其在协议运行结束后会被删除)。有很多现成的密钥导出函数可供选择,来生成会话密钥和消息认证码密钥(为了表述简洁,下面只详细列出
Figure GSB00000807124100229
的密钥导出):(1)
Figure GSB000008071241002210
其中i是计数器,该计数器递增直到哈希的输出的联结比(K,Km)的长度更长为止;(2)对YYZ协议,
Figure GSB000008071241002211
K = H K ( K A ^ , c , d ) ; 对rYYZ,sYYZ和orYYZ, K m = H K ( e , K A ^ ) , K = H K ( K A ^ , e ) ; (3)
Figure GSB000008071241002215
Figure GSB000008071241002216
(4)用于导出会话密钥和消息认证码密钥的哈希函数是不同的,等等。同样的,对于所有可能的密钥导出方法,(c,d)或e的值可以作为输入放在密钥导出函数的输入中。一般来说,KDF可以用一个伪随机函数(PRF)来实现。
对于YYZ,rYYZ,sYYZ的相互认证,
Figure GSB000008071241002217
在第二轮发送
Figure GSB000008071241002218
在额外的第三轮发送对于一轮YYZ的相互认证,可以在第一轮额外地发送
Figure GSB000008071241002222
Figure GSB000008071241002223
在下面一轮发还
Figure GSB000008071241002224
在实际应用中,消息认证码(MAC)函数通常以HMAC或者伪随机函数实现。在随机圣谕模式或者实际中,MAC函数可以简单地由密码学哈希函数代替。同时,MAC函数的输入值里的0和1也可以用任意的不同的值代替。
关于将公钥和身份放入c,d和/或e的输入中:在YYZ中将公钥A(相应地,B)放入c(相应地,d)的输入中,以及在sYYZ中将(A,B)放入e的输入中的根本原理是保证SSJPOK的不可锻造性。在后置身份和/或没有要求POK/POP的密钥注册情形下,这对YYZ协议族的应用和部署而言是很必要的。但是,为了简化协议的部署,如果密钥注册时要求POP/POK,并且/或者每个用户在协议运行之前就了解并确定交互对象公钥的合法性,那么,可以移除c,d,e输入中的公钥。
在YYZ中将用户身份
Figure GSB00000807124100231
(相应地,
Figure GSB00000807124100232
)放入c(相应地,d)的输入中,以及在sYYZ中将
Figure GSB00000807124100233
放入e的输入中,对于取得标签绑定健壮不可锻造性(比如,抵抗UKS之类的攻击)起到了实质性的作用。如果有人喜欢在某些变体中将用户身份从c,d,e输入中移除,我们强烈建议将用户身份放入密钥导出函数KDF的输入中,并在密钥注册时显式要求POP/POK。
在实践中,我们建议每个用户的公钥证书中包括用户身份和公钥的哈希值,这些值可以被认证机构验证认可。这样,c,d,e输入中
Figure GSB00000807124100234
Figure GSB00000807124100235
的值可以直接用证书中包含的它们的哈希值来代替。
关于DH-成分的重复使用:在某些情形下,比如,为了提高在线效率或者为了抵抗抵赖服务攻击(Denial-of-Service,DoS)用户可能希望在一段合理的(较短的)时间内,在多个会话中重用相同的DH-成分。为了便于这样的DH-成分重用,同时为了加强协议的安全性,一个方法是将
Figure GSB00000807124100236
(相应地,)放入c的输入中,同时/或者
Figure GSB00000807124100238
将放入e的输入中,其中
Figure GSB00000807124100239
(相应地,
Figure GSB000008071241002310
)是由(相应地,
Figure GSB000008071241002312
)生成并发送的随机临时值。随机临时值
Figure GSB000008071241002313
(相应地,
Figure GSB000008071241002314
)可以在发送DH-成分X(相应地,Y)的同时或之前发送。这是一个小手段,可以保证即使每个用户都在多个会话中重用自己的DH-成分,会话密钥仍然是独立而随机的。
客户端隐私保护和服务端DOS抵抗的YYZ
发明人为分布式客户端-服务端模式给出了一种YYZ变体,称为客户端-服务端YYZ(csYYZ)。csYYZ的基本结构在图3中刻画。csYYZ协议变体也可以视作为图6中刻画的一般性YYZ结构的实现的一个很好的实例阐释。
下面详细描述csYYZ协议的细节。
第一轮:客户端(记为
Figure GSB00000807124100241
)发送X=gx给服务端(记为
Figure GSB00000807124100242
)。
在接收到X后,如果进行显式子群测试,那么若
Figure GSB00000807124100244
Figure GSB00000807124100245
中止会话。如果
Figure GSB00000807124100246
进行的是内嵌式子群测试,那么
Figure GSB00000807124100247
先验证X∈G′(如果验证失败则中止会话),然后计算Xdbt+eyt,其中e=h(X,Y),Y=gy
Figure GSB00000807124100249
的DH-成分。
Figure GSB000008071241002410
验证Xdbt+eyt≠1G(如果验证失败则中止会话)。接着,
Figure GSB000008071241002411
计算
Figure GSB000008071241002412
将Xdbt+eyt从临时私有状态中删除(但是私有地保留
Figure GSB000008071241002413
和y),然后进入第二轮。
第二轮:
Figure GSB000008071241002414
发送
Figure GSB000008071241002415
其中
Figure GSB000008071241002418
的公钥证书。
Figure GSB000008071241002419
首先验证Y∈G′(如果失败则中止会话),然后验证
Figure GSB000008071241002420
的合法性,同样的,若验证失败则中止会话。接下来,
Figure GSB000008071241002421
做下面的事情之一:
1)
Figure GSB000008071241002422
并行地计算Yext和Ycat(如果要显式的子群测试,还要并行地计算Yq)。这些并行计算大约需要1.2次指数运算。接下来,
Figure GSB000008071241002423
检查Yext≠1G或Ycat≠1G(或者,如果是显式的子群测试那么检查Yq≠1G)。如果以上检查有一项是失败的,那么中止会话。接着计算
Figure GSB000008071241002425
其中Bdxt可以由
Figure GSB000008071241002426
在协议运行之前离线预计算。下一步,
Figure GSB000008071241002427
验证
Figure GSB000008071241002428
的合法性,若验证失败后同样会中止会话。最后,
Figure GSB000008071241002429
计算MAC-密钥
Figure GSB000008071241002430
以及会话密钥
2)
Figure GSB000008071241002432
计算BdxtYext(大约需要1.5次指数运算),检查BdxtYext≠1G(在使用内嵌式子群测试情况下)如果失败则中止会话。
Figure GSB000008071241002433
再计算
Figure GSB000008071241002434
验证t′B的合法性,若验证失败则中止会话。然后
Figure GSB000008071241002435
计算Ycat(若显式子群测试需并行计算Yq),其中
Figure GSB000008071241002436
再验证Yact≠1G(在内嵌式子群测试情况下),同样,若验证失败则中止会话。最后,
Figure GSB000008071241002437
计算MAC-密钥
Figure GSB000008071241002438
和会话密钥 K = H K ( K A ^ ′ , Y act , 1 ) .
Figure GSB000008071241002440
计算 T = MAC K m ( 0 ) t A ′ = MAC K A ^ ′ ( Cert A ^ , T ) t A ′ = MAC K A ^ ′ ( A ^ , T ) , 其中
Figure GSB000008071241002444
的证书。秘密地保留会话密钥,删除其它所有协议运行过程中生成的临时私有值,进入第三轮。
发明人需要强调的是,协议运行过程中由生成的可能暴露给攻击者的临时私有值是:如果预计算Bdxt则是(x,Bdxt),或者没有预计算Bdxt的话则是x。其它临时私有值都会在使用后立即删除。注意:除了会话密钥外,其它所有由
Figure GSB00000807124100251
协议运行中生成的临时私有值都会在会话结束后(不管是正常结束还是中止的)删除,而过期会话的会话密钥同样也会被删除。
第三轮:
Figure GSB00000807124100252
发送
Figure GSB00000807124100253
Figure GSB00000807124100254
(就完成了所有会话内容)。
Figure GSB00000807124100256
在接收到第三轮信息后,首先使用
Figure GSB00000807124100257
验证t′A的合法性,验证失败则中止会话。然后,验证的
Figure GSB00000807124100259
合法性,失败同样中止会话。
Figure GSB000008071241002510
再计算Ayct,MAC-密钥
Figure GSB000008071241002511
和会话密钥
Figure GSB000008071241002512
Figure GSB000008071241002513
利用MAC-密钥验证T的合法性,失败后中止会话。
Figure GSB000008071241002514
秘密保留会话密钥,删除其它所有在协议运行中生成的临时私有值,完成整个会话。我们要强调的是,
Figure GSB000008071241002515
在协议运行中生成的可能暴露给攻击者的临时私有值是
Figure GSB000008071241002516
其它的临时私有值在使用后都会立刻删除。除了会话密钥外,其它所有由
Figure GSB000008071241002517
在协议运行中生成的临时私有值都会在会话结束后(不管是正常结束还是中止的)删除,而过期会话的会话密钥同样也会被删除。
csYYZ协议有着下列的良好性质,使得csYYZ协议本身极具吸引力,有着自己独特的价值:
1)保护了客户端的隐私:后置身份和零知识。只有在服务端向客户端严明身份后,客户端才会将自己的身份告诉服务端,并向服务端验证自己的身份(也即客户端用后置身份的方式运作)。对于可能的恶意服务器,即使它有任意辅助输入(包括协议运行前服务器可以收集到的所有信息),交互运行的协议的记录都是零知识的。零知识的性质基于下列观察:(1)协议运行的内容可以仅由DH-指数(x,y)生成,而不需要用到固定私钥a或b;(2)在客户端第三轮发送身份认证信息之前,服务端已经在第二轮使用SSJPOK作为基本构造工具,通过t′B证明了自己对y的知识了。
2)服务端可以抵抗抵赖服务攻击(DoS),并具有合理的可抵赖性。服务端可以只进行一次在线指数运算来检测和抵抗可能的DoS攻击。注意在面对DoS攻击的时候,Y可以预计算并在多个会话中重用;同样注意
Figure GSB000008071241002521
只在验证的t′A合法性后,计算Acy并验证
Figure GSB000008071241002522
的合法性(这样不需要进行额外的指数运算)。
Figure GSB000008071241002523
的合理的可抵赖性基于下述观察:协议运行的内容可以仅仅由DH-指数(x,y)生成,而不需要用到固定私钥a或b。
3)接近最佳的(在线)效率:一共进行3次指数运算。
Figure GSB00000807124100262
如果计算
Figure GSB00000807124100263
那么需要3.5次指数运算,或者如果并行计算Yext和Ycat则仅需要3.2次指数运算。由于Bdxt和DH-成分的计算可以离线先进行,csYYZ的在线效率是:进行1.2次指数运算和
Figure GSB00000807124100265
进行2次指数运算。同时,注意如果在协议运行前就知道
Figure GSB00000807124100267
的身份,
Figure GSB00000807124100268
的在线效率仅仅是1次指数运算(因为在这种情况下Acyt也可以由离线预计算)。
关于csYYZ的另外一个(很自然的)实现:为了更好地与其它YYZ协议变体兼容,csYYZ的另一个自然的实现是从与YYZ(图2所示)相同的共享DH-秘密中导出MAC密钥和会话密钥。比如,可以将MA-C密钥和会话密钥分别设为 K m = H K ( K A ^ , 0 ) = H K ( K B ^ , 0 ) K = H K ( K A ^ , 1 ) = H K ( K B ^ , 1 ) , 其中 K A ^ = B xtd Y atc + xte
Figure GSB000008071241002613
与YYZ中相同(图2,206,207所示)。
尽管有兼容性上的优点,但csYYZ的这个实现方式有着下列的不足之处:(1)它的效率更低,具体来说,每个用户需要进行一次额外的乘法来计算MAC-密钥和会话密钥;(2)服务器
Figure GSB000008071241002614
可能需要更小心谨慎地管理自己的临时私有状态,否则这些状态一旦暴露可能会损坏TBRNM安全性(依据YYZ框架)。这一微妙的问题将在下面提到。
注意对于这个csYYZ的自然的实现,
Figure GSB000008071241002615
在协议运行中需要保存的但可能暴露给攻击者的临时私有值为(y,Xbtd+yte)。发明人通过一个具体的攻击实例,来说明一旦(y,Xbtd+yte)暴露,可能会损坏TBRNM安全性。为了表述的简洁,以下的攻击描述中,都假设t=1。具体来说,假设有一个CMIM攻击者Д,以
Figure GSB000008071241002616
的名义,以响应者的身份与在一个会话中进行交互(此会话记为测试会话),同时并发地以
Figure GSB000008071241002618
的名义,以协议初始者的身份与在另外一个会话中进行交互(此会话记为第二会话)。Д在测试会话中,从
Figure GSB000008071241002620
接收到X后,将X发送给
Figure GSB000008071241002621
如果
Figure GSB000008071241002622
在第二会话中的临时私有值
Figure GSB000008071241002623
暴露给了Д,Д可以算出
Figure GSB000008071241002624
其中
Figure GSB000008071241002625
e2=h(X,Y)。此时,攻击者Д可以有一下两个攻击策略:
(1)Д设
Figure GSB000008071241002626
(这样
Figure GSB000008071241002627
的公钥同样是B),在测试会话的第二轮生成Y′=gy′并发送给
Figure GSB000008071241002628
(注意Д知道DH-指数y′)。然后,Д可以用Xb和y′算出测试会话的会话密钥,而不用知道固定密钥b。
(2)Д将B作为自己的DH-成分,在测试会话的第二轮中将之发送(但是诚实地生成的公钥),并进一步假设Д也知道
Figure GSB00000807124100272
的固定密钥a,那么Д可以顺利完成测试会话而不必知道DH-指数b。
需要注意的是,在上述两种情况下,测试会话仍然是内部未暴露的,而内部暴露的第二会话不是测试会话的匹配会话(因为Y′≠Y,同时Y≠B),因此上述的攻击没有破坏TBRNM的定义。这些攻击能成功的原因是:临时私有值y和
Figure GSB00000807124100273
同时泄漏可以提供一个CDH的解决数据库,比如Xb,给攻击者。
更多的YYZ变体
发明人给出并阐述一系列看起来(也许)较弱的协议变体,这些变体进一步强化了YYZ协议的优点、仔细的设计和良好的设计理念。
一个变体: K A ^ = B fa + dx Y ca + ex , K B ^ = B fb + cy Y db + ey , 其中 c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e=h(X,Y),f=1。这一变体有着下列的弱点:(1)如果Ab和Ba的值进行预计算,那么此协议可能失去TBRNM安全性。具体来说,假设一个并发中间人(CMIM)攻击者Д以的名义作为响应者与
Figure GSB00000807124100279
进行交互(此会话记为测试会话),同时并发地以
Figure GSB000008071241002710
的名义作为初始者与
Figure GSB000008071241002711
进行交互(此会话称为第二会话)。Д在测试会话中,从
Figure GSB000008071241002712
接收到X后,在第二会话中将X注册为的公钥。如果临时私有值y和Xb+cy(在第二会话中由
Figure GSB000008071241002713
预计算)同时暴露给Д,Д就可以算出Xb=Xb+cy/Xcy,其中
Figure GSB000008071241002714
此时,进一步假设Д还知道
Figure GSB000008071241002715
的固定密钥a,那么即使不知道密钥b,Д也可以在第二会话中成功假扮用户
Figure GSB000008071241002716
(也即
Figure GSB000008071241002717
)。需要注意的是,测试会话仍然是内部未暴露的,而内部暴露的第二会话不是测试会话的匹配会话,因此上述的攻击没有破坏TBRNM的定义。有趣的是,尽管这个变体看起来能比原始的YYZ提供更强的安全性,实际上它不但削弱了安全性,还使得协议复杂化,降低了效率。发明人指出上述攻击成功的原因是:临时私有值y和Xb+cy同时泄漏可以提供一个CDH的解决数据库,比如Xb,给攻击者。在密钥注册的时候,显式要求POK/POP可以防止这类攻击。(2)这一变体的另外一个弱点是:如果设Y=A,B=(YcXe)-1,那么
Figure GSB000008071241002719
可以防止这一弱点,但是要以牺牲预计算和模块化计算的优点为代价(具体来说,用户必须在计算f之前明确它们的角色是初始者还是响应者)。
另一个变体: K A ^ = B dxt Y cat , K B ^ = A cyt X dbt , 其中 c = h ( A ^ , A , Y ) , d = h ( B ^ , B , Y ) , (当然,只要c和d的输入将标签全部包括即可,比如c=1,或者
Figure GSB00000807124100286
Figure GSB00000807124100287
此变体的弱点是:(1)如果两个固定密钥a和b同时泄漏,以往会话的会话密钥可以推导出来。这样就失去了完美的前向安全性(perfect forward security,PFS);(2)如果
Figure GSB00000807124100288
设B=A,那么
Figure GSB00000807124100289
如果固定密钥a泄漏,攻击者可以算出
Figure GSB000008071241002810
而不用知道DH指数y或x。
还有一个变体: K A ^ = B a + x Y a + ex , K B ^ = A b + y X b + ey , 其中 e = h ( A ^ , A , B ^ , B , X , Y ) . 这一变体有以下的弱点:(1)如果用户
Figure GSB000008071241002814
设Y=B-1,那么
Figure GSB000008071241002815
(2)如果用户设Y=(BX)-1(i.e.,y=-b-x),并且B=A,那么
Figure GSB000008071241002816
对上述弱点有一个补救方法:设 K A ^ = B fa + x Y a + ex K B ^ = A fb + y X b + ey , 其中 e = h ( A ^ , A , B ^ , B , X , Y ) 但是,这一补救方法会牺牲YYZ在线计算的效率。
另外一个变体: K A ^ = B dxt Y cat + ext K B ^ = A cyt X dbt + eyt , 其中
Figure GSB000008071241002824
Figure GSB000008071241002825
e=(X,Y)。此变体有一下的弱点:如果
Figure GSB000008071241002826
设B=Y-e/d(也即b=-y(e/d)),那么
Figure GSB000008071241002827
如果a泄漏,
Figure GSB000008071241002828
可以在不知y或b的情况下完成会话。尽管这一弱点可以通过设来补救,但是会损害YYZ的模块化计算和后置身份计算性。同样的,我们只要设
Figure GSB000008071241002830
就可以通过牺牲YYZ的模块化计算和后置身份计算性,使得其健壮性看起来(没有经过论证地)更强。
另外一个变体: K A ^ = B dxt Y cat + ext K B ^ = A cyt X dbt + eyt , 其中
Figure GSB000008071241002833
Figure GSB000008071241002834
e=h(X,Y)或
Figure GSB000008071241002835
YYZ的这个变体中,用户的公钥A(相应地,B)没有放在c(相应地,d)的输入中。此变体的弱点是:(1)如果
Figure GSB000008071241002836
设Y=X且B=A-c/d(也即b=-ac/d),那么
Figure GSB000008071241002837
这一弱点可以通过公钥注册时要求POP/POK来补救;(2)如果
Figure GSB000008071241002838
Figure GSB000008071241002839
那么 K B ^ = A cyt X dbt + eyt = A cyt X t + eyt ; (3)如果
Figure GSB000008071241002841
设Y=X且
Figure GSB000008071241002842
(也即b=d-1-a(c/d)),那么
Figure GSB000008071241002843
更进一步如果e=h(X,Y)(或其它独立于B的值),那么
Figure GSB000008071241002844
可以设Y=X且
Figure GSB000008071241002845
此时
Figure GSB000008071241002846
第二和第三项弱点不能通过密钥注册时的POP/POK来补救,但是如果用户在自己发送DH-成分之前就确定交互对象的公钥B是固定的,那么还是可以补救的。但是这样做会限制某些场景下的部署和应用(比如在为了保护用户隐私的后置身份模式下)。发明人需要强调的是,在rYYZ和sYYZ中,如果c,d,e的输入中没有公钥,那么也会有类似的弱点。
还有:
Figure GSB00000807124100291
Figure GSB00000807124100292
其中c=h(Y),d=h(X),e=h(X,Y)。在此变体中,用户的身份和公钥
Figure GSB00000807124100293
(相应地,
Figure GSB00000807124100294
)都不在c(相应地,d)的输入中。除了上面提到的弱点,此变体还有下面更多的弱点(在rYYZ和sYYZ中,如果c,d,e的输入中没有用户身份,也会有类似的弱点):(1)未知密钥共享(UKS)攻击:在此变体中,会话密钥不再附着于会话标签。考虑如下一个中间人攻击者,它在面前假扮成
Figure GSB00000807124100296
但使用公钥B,而在
Figure GSB00000807124100297
面前则假扮为
Figure GSB00000807124100298
但使用公钥A。这样,攻击者可以使得两次会话的密钥相同。这样弱点可以通过将用户身份放入密钥推导方程得到补救,或者在密钥注册的时候要求POP/POK。(2)密钥泄露的弱点。假设临时私有值Xdbt+eyt(由
Figure GSB00000807124100299
生成并保存,类似于在csYYZ中当在后置身份模式下工作时)和的私钥a暴露给了攻击者,那么攻击者能够以
Figure GSB000008071241002912
的名义与
Figure GSB000008071241002913
顺利地完成会话,而不必知道b或者y。这一弱点会削弱标签绑定健壮不可锻造性,具体来说,会使得安全性从标签绑定TBRNM降低到隐私保护TBRNM。这一弱点可以通过要求
Figure GSB000008071241002914
不对Xdbt+eyt预计算来补救,但是可能会限制协议的部署和应用。
一些其它的有用的变体:(1)YYZ中的函数e设为
Figure GSB000008071241002915
Figure GSB000008071241002916
这样会失去YYZ的模块化计算和身份后置的性质;(2)rYYZ中函数e设为H(X,Y),并且/或者,设c为且设d为
Figure GSB000008071241002918
这可能会削弱rYYZ的强TBRNM安全性,特别是会削弱原协议对临时私有秘密泄漏的强抵抗性。
通用YYZ:令每个pubi,1≤i≤4为与DH密钥交换协议相关的,但除DH成分(X,Y)之外的,其它信息的一个(可能为空的)子集。这些信息一般包括:用户身份信息,公钥,会话标识,随机数,用户的网络地址等等。然后,所有上述的变体版本以及YYZ,rYYZ,sYYZ都是下面这个通用的协议结构的(仔细设计的)实例,这个通用结构就称为通用YYZ。(当然,通用YYZ的一些实现可能在安全性方面比较弱,甚至不安全):
K A ^ = B fa + dxt Y cat + ext K B ^ = A fb + cyt X dbt + eyt , 会话密钥为 K = H K ( K A ^ ) = H K ( K B ^ ) , 其中c=h(pub1,Y)或c=1,d=h(pub2,X)或d=1,e=h(pub3,X,Y)或e=0。f=0则有全部的可抵赖性,f=1或f=h(pub4)或f=h(X,Y,pub4)则有群可抵赖性。建议c的输入包括
Figure GSB00000807124100301
d的输入包括
Figure GSB00000807124100302
当c=d=1时,e不能为0且e的输入应当包括
Figure GSB00000807124100303
如果证书验证时不对注册公钥进行子群测试,那么fa和fb应该乘上t。
YYZ有利的性质和特点
发明人将YYZ协议(图2,206,207)与(H)MQV协议族(图2,201,202,203)进行比较,突出YYZ协议的如下有利的特点和性质。
实质上最优的(在线)效率:YYZ的计算复杂度在本质上与(H)MQV相同:除去DH-成分的计算和子群测试,每个用户需要进行大约1.5次的指数运算。注意计算(相应地,
Figure GSB00000807124100305
一共需要相当于1.5次指数运算。YYZ一个关键的优点就是它实质上的最优的在线计算效率。具体来说,可以预计算X和Bdbx,而可以预计算Y和Acyt。这样,除去DH-成分的子群测试,每个用户只需要在线进行一次指数运算,而子群测试也可以内嵌进行而不必进行指数运算。注意(H)MQV的在线复杂度是至少1.5次指数运算(除子群测试外)。
并行性,模块化和身份后置的可计算性:
Figure GSB00000807124100308
所计算的Bdxt,Ycat+ext和显式子群测试Yq,和相应地
Figure GSB00000807124100309
的Acyt,Xdbt+eyt和Xq,可以以一种并行地,模块化地,后置身份的方式进行计算,这会简化YYZ协议在不同场景下的部署和应用。
具体来说,并行计算Ycat+ext和Yq(相应地,Xdbt+eyt和Xq)需要1.2次指数运算;计算
Figure GSB000008071241003010
(相应地,
Figure GSB000008071241003011
)需要1.5次。更重要的是,注意到Ycat+ext(相应地,Xdbt+eyt)可以在知道交互对象的身份和公钥之前就进行计算。这一后置身份可计算性对于保护用户隐私是很重要的。并行、模块化和身份后置可计算性的优点可以很好地在上面提到的应用于分布式客户端/服务器条件下的(对客户的零知识和后置身份计算)隐私保护和(对服务器)抗DoS攻击的csYYZ协议变体上得到很好的体现。发明人要强调的是(H)MQV协议族没有这些优点,特别是后置身份可计算性。
可抵赖性:YYZ的会话密钥可以直接从DH-指数x和y中计算得到(而不用涉及到用户的固定私钥a或b)。具体来说,
Figure GSB000008071241003012
这使得协议的用户拥有非常好的可抵赖性来保护自己的隐私。而且,对于3轮的YYZ来说,初始者
Figure GSB000008071241003013
在遭遇有任意辅助输入的并发攻击者
Figure GSB000008071241003014
时仍拥有完美的可抵赖性。具体来说,在随机圣谕RO模式下基于和SSJPOK相关的新鲜挑战联合知识知识假设(JKEA),3轮YYZ协议(在并发攻击者
Figure GSB00000807124100311
和诚实用户
Figure GSB00000807124100312
实例之间的)并发运行的记录可以有效地被一个(运行作为一个子程序)模拟者模拟出来。发明人提醒注意(H)MQV不具有这样的可抵赖性隐私保护的优点。
健壮的安全性:首先,YYZ协议和(H)MQV在设计时,使用了不同的基本工具:YYZ使用的是此前介绍和论证的自封闭联合知识证明(SSJPOK),而发明人认为SSJPOK具有着基础性的和独立性的价值并有广泛的应用。而(H)MQV的设计是基于指数挑战相应(exponential challenge-response,XCR)签名,MQV则是基于隐性签名。其次,YYZ和(H)MQV在设计时使用了本质上不同的设计指导原理。YYZ在设计时是为了在针对DHKE的YYZ框架下取得基于标签的健壮不可锻造性(TBRNM),设计的哲学思想是实现尽可健壮的安全性而同时依赖于尽可能少的秘密。具体来说,一旦一方完成了(有着唯一标签的)会话,那么它就一定具有如下保证:只要该会话没有内部暴露,那么它的交互对象(不管是诚实的还是恶意的)就一定知道相应地DH-指数和私钥(对应于交互对象所发送和声称的DH-成分和公钥)。需要注意的是,正如我们前面在对(H)MQV的重新审查中所展示的那样,一般的(H)MQV不能取得如此健壮的安全保证。(H)MQV是在Canetti-Krawczyk框架下依据会话密钥的安全性(SK-security)进行分析的,而这样分析得到的安全性会比在YYZ框架下TBRNM的安全性弱。据此,发明人确认YYZ的构造工具和设计原理较之(H)MQV更为可靠和稳固,特别是考虑到(H)MQV的进化史之后。
最小的(初始)设置及易于部署应用:YYZ在密钥注册的时候不要求POP/POK,而POK/POP在MQV中通常都会用到(注意,如在前面针对(H)MQV的重新审查中所展示的那样,没有POK/POP的(H)MQV一般会失去失去TBRNM安全性)。YYZ可以在CDH或者DDH假设成立的一般群上运行(而MQV不能)。而预计算、并行模块化及后置身份可计算性同样大大简化了YYZ的部署和应用,使之可以在不同的场景下在安全性、隐私性和效率等方面取得平衡。最后,注意YYZ协议和(H)MQV协议族相比有着完美的兼容性(具体来说,它们有相同的安全参数)。
其它值得注意的优点:YYZ的设计原理具有概念的简单和清晰性,协议的结构简单,且计算是对称的。
YYZ协议族的安全性评注
发明人在此简要地论述(三轮的)YYZ协议在
Figure GSB00000807124100321
为诚实用户
Figure GSB00000807124100322
为恶意攻击者的测试会话中的TBRNM安全性。
为了顺利地完成测试会话,不管
Figure GSB00000807124100323
采取何种策略,它都必须计算出3个独立的DH-秘密:Acy,Xdb和Xey。由于A是独立于(也即不能恶意地使之关联于)Xdb和Xey,为了顺利地完成测试会话,必须对新随机挑战X计算出两个独立的DH-秘密Xdb和Xey。由于随机挑战X是全新的,因此
Figure GSB00000807124100325
所拥有的任意辅助输入(包括它从互联网上收集/偷窃到在运行YYZ协议之前的任意其它不同协议的执行情况)不会帮助其计算出Xdb和Xey。另外一方面,针对YYZ并发运行(并发是YYZ框架允许的)的CMIM攻击也不会让恶意的
Figure GSB00000807124100326
得到任何CDH求解帮助机制。具体来说,除了仅从相应的临时DH-指数导出的信息外,暴露的临时私有值不能给攻击者提供任何额外的有用信息和优势,因此也不会提供CDH求解帮助机制。基于对抗具有任意辅助输入的新鲜挑战指数知识假设(KEA),这意味着为了成功完成测试会话恶意的
Figure GSB00000807124100327
不得不同时“知道”b和y。从这个意义上,(YYZ安全性所基于的)SSJPOK看作是一个新的假设,称之为“对抗有任意辅助输入CMIM的“新鲜挑战联合指数知识假设(JKEA)”。发明人相信SSJPOK有着自己独特的和基础性的价值,并且可以在很多其它(基于DH的)应用中找到应用。
但是,我们应该意识到所有一轮和两轮隐式认证DHKE协议所固有的安全局限性。比如对两轮隐式认证DHKE来说,其欠缺完美前向安全性(perfectforward security,PFS);对一轮隐式认证DHKE来说,其有密钥受损假冒(key-compromise impersonate)弱点。即使是三轮的YYZ(也包括HMQV),也有一些固有的局限。比如,只要恶意的协议初始者在接收到第二轮信息后立即中止协议,那么协议的响应者就不能公平地享受可抵赖性;再比如,三轮YYZ和(H)MQV都会受到最后一条信息去除(cutting-last-message)攻击,等等。发明人需要强调的是,协议响应者不能公平地享受可抵赖性和最后一条信息的传送缺少保证是YYZ和(H)MQV在协议结构上固有的缺陷,并不会损害TBRNM的定义(此性质是相对于具有唯一标签、成功完成且内部未暴露会话成立,而不用考虑可抵赖性方面的隐私保护)。这些缺陷能够容易地补救,但是却需要付出性能上的代价。
关于sYYZ的安全性:sYYZ是以简单SSJPOK来设计的,使用最少的随机圣谕。但是,由于以下的事实,发明人没有声称sYYZ的基于标签的健壮不可锻造性:在
Figure GSB00000807124100331
Figure GSB00000807124100332
中Ay=Ya和Xb=Bx的值不是独立的,因此可能被恶意的关联在一起。
考虑如下sYYZ的弱点:如果
Figure GSB00000807124100333
设Y=X-1且B=A(相应地,Y=X,B=A-1),那么
Figure GSB00000807124100334
(相应地,
Figure GSB00000807124100335
)。如果DH-指数x泄漏了(从中可以推导出y),
Figure GSB00000807124100336
可以在不知道b(为a或-a)的情况下完成会话。但是,这一弱点不会破坏基于标签不可锻造性,因为此时临时DH-x已经泄露给攻击者了(也即会话是内部暴露的)。这表明了,假设x没有暴露,这一弱点在CDH假设下没有任何危害。具体来说,假设x没有暴露,sYYZ在上述攻击下的安全性可以化归为:给出一个随机生成的x=gx,计算出Xx的难度。可以证明这一问题的难度等价于传统的CDH假设。发明人认为sYYZ仍然是安全的,但是发明人没有尝试声称其TBRNM安全性。
关于rYYZ的安全性:的确,当f=0的时候,rYYZ在牺牲后置身份和模块化可计算性的优势为代价后可以提供和YYZ协议同样的安全性。但是当f=1的时候,情况就会变得相当微妙了。发明人指出当f=1时,预计算Ab或者Ba会使rYYZ失去TBRNM安全性。
具体来说,假设一个CMIM攻击者Д在一个会话(我们称此会话为测试会话)中以
Figure GSB00000807124100337
的名义作为响应者同
Figure GSB00000807124100338
交互,同时并发地在另外一个会话(我们称之为第二会话)中作为初始者以
Figure GSB00000807124100339
的名义与
Figure GSB000008071241003310
交互。在第一个会话中从
Figure GSB000008071241003311
接收到X后,Д将X注册为第二会话中
Figure GSB000008071241003312
的公钥。如果临时私有值y和Xb+cyt(由在第二会话中预计算)同时暴露给Д,那么Д可以计算出Xb=(Xb+cyt/Xcyt),其中这时,进一步假设Д还可以得到
Figure GSB000008071241003315
的固定密钥a,那么Д可以在测试会话中,成功地假扮为用户
Figure GSB000008071241003316
(也即
Figure GSB000008071241003317
)而不必知道私钥b(为了达到该目的,在测试会话中,
Figure GSB000008071241003318
会如实地生成其DH-成分)。就是说,在这种情况下,Д计算 K M ^ 1 = K B ^ = A b + cyt X dbt + eyt = B a A cyt ( X b ) dt X eyt 时使用到了(a,y,Xb)的知识,但是却不知道b。
注意测试会话是内部未暴露的且有唯一的标签,因此上述的攻击没有违反TBRNM的定义。有意思的是,尽管在f=1时,rYYZ看起来会提供比原始YYZ更强的安全性,但实际上rYYZ非但会削弱安全性,还会使得协议复杂化,降低协议效率。发明人指出这类攻击包含的深层次原因是:临时值y和Xb+cyt同时泄漏可以提供一个CDH解决帮助机制——比如Xb——给攻击者。这样攻击可以通过密钥注册时显示要求POK/POP来防止。发明人指出,对于f=1和预计算Afb+cy和/或Bfa+dx的rYYZ来说,POP/POK或者对临时私有值的特别关注都只是为了对抗可以同时得到的固定私钥和
Figure GSB00000807124100342
的临时私有值的攻击者。如果这两个值没有同时暴露,上述攻击就会失败。(H)MQV中情况也是一样,如果DH指数与
Figure GSB00000807124100343
Figure GSB00000807124100344
的值暴露了,那么攻击者也可以得到诚实用户
Figure GSB00000807124100345
Figure GSB00000807124100346
的固定私钥。
SSJPOK在安全外壳(Secure Shell,SSH)上的应用
安全外壳(SSH)是基于公钥的认证协议组件,可以使得用户可以利用一个客户端机器,通过不安全的网络,登录进入一个远程服务器,在远程主机上安全地执行命令,将文件从主机上移动到其它机器上。该协议是现行的工业标准,广泛应用于使用UNIX和Linux操作系统的服务器,以及任意操作系统的客户端上。
SSH协议组件包括三个协议:(1)SSH传输层(SSH/TL)协议(由Ylonen于INTERNET-DRAFT,draft-ietf-architecture-13.txt,2002提出),这提供一个从服务端到客户端的单方身份认证的安全信道;(2)SSH用户身份认证(SSH/UA)协议,这提供一个从客户端到服务端的单方身份认证的安全信道;(3)SSH连接协议,这运行在由前面两个协议建立的安全交互信道上。
现有SSH/TL协议(由Ylonen于2002年提出)的核心认证协议是:
Figure GSB00000807124100347
(客户端)发送X=gx给服务端
Figure GSB00000807124100348
服务端
Figure GSB00000807124100349
(公钥为B)送还{sid,B,Y=gy,SigB(H(sid,B,X,Y,Xy))},其中sid为会话标识(通常有两个交换的随机数串联而来),SigB(H(sid,B,X,Y,Xy))表示对信息H(sid,B,X,Y,Xy)的签名,H为密码学哈希方程(比如SHA-1)。会话密钥由gxy推导得到。
假设签名由数字签名标准(Digital Signature Standard,DSS)生成——这是实践中的常见情况——那么用户
Figure GSB00000807124100351
(客户端)方面的计算复杂度大概是3.5次指数运算,而用户
Figure GSB00000807124100352
(服务端)大概是3次。注意,除去DH-成分X和Y,用户不能预计算或者离线验证签名或者会话密钥,因此
Figure GSB00000807124100353
的在线计算复杂度为大约2.5次指数运算和
Figure GSB00000807124100354
的在线计算复杂度为大约2次。就通讯效率来说,除去其它必要的传输,DSS签名(即:SigB(H(sid,B,X,Y,Xy)))的长度为2|q|。
发明人指出SSJPOK和本专利中提到的sSSJPOK都可以直接应用于SSH/TL中。具体来说,令 K B ^ = X dbt + eyt = B dxt Y ext = K A ^ , 其中 d = h ( B ^ , B , X ) 且e=h(sid,X,Y),或者d=1且
Figure GSB00000807124100357
注意,为了保护其隐私性,客户端可能不在第一轮表露自己的身份,因此d和e的输入中没有
Figure GSB00000807124100359
(当然,如果
Figure GSB000008071241003510
在第一轮中表露了身份,那么可以将之放入d和e的输入中)。令(k1,k2)为由
Figure GSB000008071241003511
导出的密钥对(或者如果sid不在e的输入中,从
Figure GSB000008071241003512
导出得到)。那么,上述SSH/TL的第二轮信息由
Figure GSB000008071241003513
代替,会话密钥定义为k1
对于基于SSJPOK的SSH/TL协议的计算复杂度,如果用户
Figure GSB000008071241003514
显式检查Xq=1G(即:进行显式的子群测试)那么
Figure GSB000008071241003515
的计算复杂度大约是2.2次指数运算,或者,在进行嵌入式子群测试情况下为2次指数运算(此时建议
Figure GSB000008071241003516
保护好自己的临时DH-指数y)。由于Y可以离线预计算,
Figure GSB000008071241003517
的在线效率为显式子群测试情况下的1.2次指数运算或嵌入式子群测试情况下的1次指数运算。对
Figure GSB000008071241003518
来说,计算复杂度总共为大约2.5次指数运算,但是在线效率为1次指数运算(具体来说,X和Bdxt可以离线预计算)。相比于基于DSS的SSH/TL协议,这显著地提高了(在线)计算效率。特别的,基于SSJPOK的SSH/TL的计算效率实质上是最佳的。进一步注意到,
Figure GSB000008071241003519
的长度为|q|,也比基于DSS的SSH/TL的通讯复杂度更好。
无证书YYZ(Certificateless YYZ,clYYZ)
Figure GSB000008071241003520
:G1×G1→G是可采纳的双线性对映射,其中G1是一个以q为阶,由元素P生成的循环加法群(或者,乘法群),并且假设离散指数问题假设(DLP)在G1和G上同时成立(也即,当给定一个元素xP或者gx,其中x是从
Figure GSB000008071241003521
中随机选取,那么没有概率多项式时间算法可以有不可忽略的概率计算出x,其中概率取自算法所使用的随机硬币和生成x所用到的随机硬币)。这里的可采纳的双线性对满足以下三个性质:
1)双线性:如果P,Q∈G1并且x,那么
Figure GSB00000807124100362
2)非退化性:存在一个P∈G1使得
Figure GSB00000807124100363
3)可计算性:如果P,Q∈G1,可以在多项式时间内计算出
Figure GSB00000807124100364
令H1:{0,1}*→G1为一个哈希函数,可信私钥生成器(Private Key Generator,PKG)的公钥为:PKPKG=sP,其中s随机地从中选取。用户
Figure GSB00000807124100366
的公钥是(A,QA),私钥为(a,sQA),其中
Figure GSB00000807124100367
或者
Figure GSB00000807124100368
并且sQA由PKG生成并用一种安全的方法发送给
Figure GSB00000807124100369
用户的公钥和私钥分别为(B,QB)和(b,sQB),其中
Figure GSB000008071241003611
Figure GSB000008071241003612
sQB由PKG生成并安全地发送给
Figure GSB000008071241003613
Figure GSB000008071241003614
计算会话密钥
Figure GSB000008071241003615
Figure GSB000008071241003616
计算会话密钥 K = H K ( K B ^ , e ^ ( sQ B , Q A ) . 注意 e ^ ( s Q A , Q B ) = e ^ ( s Q B , Q A ) = e ^ ( Q A , Q B ) s .
Figure GSB000008071241003619
Figure GSB000008071241003620
可以根据安全性,隐私性和效率的平衡以及用户的选择,从YYZ,rYYZ和sYYZ三种版本中任选一种计算得到。
在线高效签名加密
给定一个基于DH的公钥加密(PKE)机制,比如广泛使用的DHIES算法(由Abdalla等发表于CT-RSA’01,Lecture Notes in Computer Science 2020,pages 143-158,2001)和PSEC算法(由Fujisaki等发表于Advances in Cryptology-Proceedings ofCRYPTO’99,Lecture Notes in Computer Science 1666,pages 537-554,1999)。如果接收者的公钥为B,发送者
Figure GSB000008071241003622
发送X(作为密文的一部分)来和
Figure GSB000008071241003623
生成并共享DH-密钥Bx(通常Bx,连同X,被用来导出对称加密的密钥和MAC-密钥)。单轮YYZ(orYYZ)的一项应用就是用orYYZ中的
Figure GSB000008071241003624
替换基于DH的PKE算法中的DH-密钥Bx,从而得到一种在线高效签名算法。
基于口令的TLS/SSL
安全套接字层(Secure Sockets Layer,SSL)协议(由Freier等发表于INTERNET-DRAFT,draft-freier-ssl-version3-02.txt,1996)是一项重要并且广泛使用的认证协议,主要用于万维网(WWW)。SSL发展为网络安全事实上的标准,并且进一步发展为传输层安全(Transport Layer Security,TLS)(由Dierks等提出于Request for Comments(RFC)2246,Internet Engineering Task Force(IETF),January1999),而TLS正是由工业标准化机构互联网工程任务组(Internet Engineering TaskForce,IETF)开发的互联网的网络安全标准。TLS/SSL协议运行在应用层协议之下,比如超文本传输协议(Hyper-text Transfer Protocol,HTTP),轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP),互联网消息访问协议(Internet Messaging Access Protocol,IMAP)等等,但在TCP/IP层之上。当传输层的通讯是安全的(由TLS/SSL保证),那么同样的,所有应用层协议的通讯都是安全的。
TLS/SSL的典型应用,比如互联网上的电子银行和电子商务,是分布式的客户端-服务端环境。在这样的条件下,每个客户
Figure GSB00000807124100371
(客户不一定有公钥)会预先在拥有公钥的服务端
Figure GSB00000807124100372
处注册口令
Figure GSB00000807124100373
其中D为低熵字典。服务端维护一个数据库,每个注册用户都在其中有一个条目,保存该用户身份和口令信息。
在客户端-服务端环境中TLS/SSL典型应用的核心认证机制是:假设rA和rB分别为
Figure GSB00000807124100374
Figure GSB00000807124100375
在协议运行前发送的两个随机数。在第一轮,发送
Figure GSB00000807124100377
Figure GSB00000807124100378
其中PKE是
Figure GSB00000807124100379
支持的公钥加密方法,r是随机字符串而H是哈希函数(比如SHA-1)。第二轮中,
Figure GSB000008071241003710
解密得到r,发还
Figure GSB000008071241003712
认证自己。会话密钥设为r。为了向
Figure GSB000008071241003714
认证自己,发还
Figure GSB000008071241003716
Figure GSB000008071241003717
其中E是用r作为密钥的对称密钥加密算法。
假设服务端
Figure GSB000008071241003718
具有DL公钥B=gb,比如,当服务端使用广泛应用的DHIES或者PSEC PKE算法。发明人给出了一些组合优化方法,使得基于口令的TLS/SSL更高效也更安全。组合优化的核心是一个基于口令的(明文感知的)公钥加密方法,而这个方法本身又是以客户端-服务端环境下基于口令的DHKE为基础的。
客户端-服务端环境下基于口令的DHKE:为了表述简洁,在这里发明人仅仅描述到的内嵌式子群测试的实现方法(向显式子群测试实现方法的拓展是直截了当的)。当
Figure GSB000008071241003719
Figure GSB000008071241003720
注册口令
Figure GSB000008071241003721
的时候,
Figure GSB000008071241003722
计算Btbw和/或B-tbw,并在数据库中对应于
Figure GSB000008071241003723
的条目中存储
Figure GSB000008071241003724
和Btbw和/或B-tbw,其中t是辅因子(cofactore),
Figure GSB000008071241003725
或直接w=pwA,hl定义为哈希函数h输出长度l的前缀(通常l很小,比如
Figure GSB00000807124100381
的长度)。注意即使服务端预计算并存储的Btbw和/或B-tbw暴露了,也不会泄露客户的口令
Figure GSB00000807124100382
具体来说,通过B=gb计算Bb的难度等价于标准CDH问题。因此,在CDH假设下,通过公钥B计算出Bb,再得到w(同时可以得到
Figure GSB00000807124100383
)的可能性被排除了。
Figure GSB00000807124100384
发送
Figure GSB00000807124100385
Figure GSB00000807124100386
注意X′实际上是基于DH的对w的值的完美隐藏的保证。这隐含可以将w设为简单的口令,但是设
Figure GSB00000807124100387
可以简化密钥推导以及交互(密钥确认)认证。(一般来说,如果l很小,比如等于口令长度时,发明人还是建议将用户身份放入密钥推导和验证方程中以得到额外的安全保证;但是如果l很大,w又已经记住了用户的身份,那么可以将它们从密钥推导和验证的方程中移除。)共享的DH秘密如下计算:
Figure GSB00000807124100388
计算
Figure GSB00000807124100389
注意所以
Figure GSB000008071241003810
的计算都可以离线进行,计算X′=gxBw实际上需要1次指数运算(因为w很小);在接收到
Figure GSB000008071241003811
的信息后,
Figure GSB000008071241003812
从自己的数据库中检索Btbw和/或B-tbw,验证,计算X′tb并验证X′tb≠Bbwt(否则
Figure GSB000008071241003813
中止会话),最后设DH秘密为注意
Figure GSB000008071241003815
在线计算量是1次指数运算。很容易验证
Figure GSB000008071241003816
共享密钥可以从此推导。
基于口令(明文感知)PKE:给定一个基于DH的公钥加密(PKE)算法,比如广泛使用的DHIES算法和PSEC算法等等。如果解密者
Figure GSB000008071241003817
的公钥是B=gb,加密者
Figure GSB000008071241003818
发送X(作为密文的一部分)来与
Figure GSB000008071241003819
生成并共享DH-密钥Bx=Xb。通常,会用(X,Bx)来导出在PKE算法中实际使用的秘密,即为KDF(X,Bx)。发明人给出了一个办法,(利用上述基于口令的DHKE)可以将这一基于DH的PKE方法转化为基于口令(明文感知)的PKE方法:
1)DH-成分X改为X′=gxBw
2)共享DH-秘密Bx=Xb替换为
Figure GSB000008071241003820
(计算方法如上文)。原来密钥推导函数KDF输入中的(X,Bx=Xb)替换为(X′,Bxt=X′btB-bwt)。
3)假设原来的基于DH的PKE(比如DHIES和PSEC)对信息的m密文由
Figure GSB000008071241003821
Figure GSB000008071241003822
组成,那么增加明文感知方法是将
Figure GSB000008071241003823
替换为
Figure GSB000008071241003824
上述修改后的PKE方法我们称之为PWPKE。发明人指出上述的修改不会减弱原PKE的安全性。
现在,发明人提出改进的基于口令的TLS/SSL,其又会用到前面发展的基于口令的DHKE和PKE方法。在第一轮,发送
Figure GSB00000807124100392
Figure GSB00000807124100393
其中r是由
Figure GSB00000807124100394
随机选取的并将作为会话密钥。这里,随机数(rA,rB)可以放进PWPKE(r)密文所包含的MAC的输入中。具体来说,可以将
Figure GSB00000807124100395
改为第二轮中,
Figure GSB00000807124100397
解密出r,并发送
Figure GSB00000807124100398
会话密钥仍然设为r。
下面是一个基于广泛应用的DHIES的详细的实现实例(基于PSEC的实现实例也可以很容易地推导)。在第一轮中,
Figure GSB000008071241003910
发送 { A ^ , X ′ = g x B w , C = E k 1 ( r ) , MA C H K ( k 2 , r ) ( C , A ^ , r B , r A ) } 其中(k1,k2)←KDF(X′,Btx)。在从
Figure GSB000008071241003913
接收到消息后,
Figure GSB000008071241003914
如下工作:从自己的数据库中检索(Btbw,B-tbw),验证X′∈G′,计算X′tb并验证X′tb≠Bbwt(若验证不通过
Figure GSB000008071241003916
则中止会话),计算
Figure GSB000008071241003917
并导出密钥
Figure GSB000008071241003918
然后,
Figure GSB000008071241003919
解密C得到r,检查的合法性(不合法则
Figure GSB000008071241003921
中止会话)。如果所有上述的检查验证都通过了,
Figure GSB000008071241003922
在第二轮计算并发还
Figure GSB000008071241003923
Figure GSB000008071241003924
发明人指出,改进后的基于口令TLS/SSL保留了原基于口令TLS/SSL的所有的安全性质(不言自明,TLS/SSL协议自身并没有完备的安全性,比如还存在PFS和KCI方面的弱点)。改进后的TLS/SSL有着以下显著的优点,使得它在实际应用中更受到青睐(特别是针对TLS/SSL的主要应用:基于互联网的电子银行和电子商务是):
1)客户的口令在服务端得到了良好的保护,即使服务端的数据库泄露也是如此。
2)排除了离线攻击的可能,即使会话密钥暴露也是如此。具体来说,第一轮信息完美地隐藏了而第二轮信息是独立于
Figure GSB000008071241003926
的,这就排除了任何潜在的离线攻击的可能。并且,即使会话密钥r泄露,离线攻击也不可能成功。注意,在原基于口令TLS/SSL中,一旦会话密钥r泄露,口令就可以由Er(pw)推导得到。发明人强调,由于会话密钥可能在服务端和客户端之间持续使用数小时,我们更应该考虑到它会泄露给攻击者的情况(相比于其它临时私有值,比如临时DH-指数x等仅持续使用数秒的值)。
3)更好的(通讯)效率。具体来说,交互轮数复杂度从3次减少到了2次,并且原TLS/SSL第一轮中发送的
Figure GSB00000807124100401
的值也已经移除。计算复杂度和原TLS/SSL相当。
针对IEEE 802.11的无线群Diffie-Hellman密钥交换
Bresson等提出了一项非常高效的群密钥交换协议,称为BCEP协议(Journalof Computer Communications,vol.27(127),1730-1737,2004),适用于一组小功率移动设备(客户端)
Figure GSB00000807124100402
与无线网关(服务端或者基站)
Figure GSB00000807124100403
交互的情况。BCEP协议的目标是实现可以支持有线等效隐私协议(Wired EquivalentPrivacy,WEP)的密钥交换机制,而WEP是IEEE 802.11标准的一部分。在BCEP协议中,服务端
Figure GSB00000807124100404
的公钥为B=gb,每个客户端
Figure GSB00000807124100405
1≤i≤n的公钥分别为
Figure GSB00000807124100406
其中ai是由
Figure GSB00000807124100407
随机从中选取。BCEP协议的核心密钥交换构建模块是:每个
Figure GSB00000807124100409
生成
Figure GSB000008071241004010
计算
Figure GSB000008071241004011
使用自己的签名密钥ai对Ki进行签名生成签名σi,最后将(Ki,σi)发送给
Figure GSB000008071241004012
本发明中提出的一轮YYZ(orYYZ)协议可以直接在此应用,显著地提高BCEP协议的效率。具体来说,其方法是将(Ki,σi)替换为
Figure GSB000008071241004013
(其它BCEP的成分不变),其中
Figure GSB000008071241004014
(前面讨论过的各种YYZ变体中使用的不同ei亦可在这儿应用)。较之使用标准的基于DSS的BCEP协议,使用基于orYYZ的协议实现在具有如下优势,这些优势对于在苛刻无线无线环境(包含低功率的移动设备和集中的基站)下部署和应用的群KE至关重要:
1)每个
Figure GSB000008071241004015
的计算复杂度从3次指数运算降到了2次。注意
Figure GSB000008071241004016
的所有计算都可以离线进行。
2)如果忽略对DH成分的子群测试,
Figure GSB000008071241004017
的总计算复杂度可以从n×2.5次指数运算降到n×1.5次。但是如果预计算并存储
Figure GSB000008071241004019
1≤i≤n,
Figure GSB000008071241004020
的在线效率可以从n×2.5次降低至n次。注意在BCEP协议中,
Figure GSB000008071241004021
不能预计算Ki,也不能预验证签名σi,因此对于每组(Ki,σi),1≤i≤n需要花费2.5次指数运算。
3)由于没有使用签名,通信复杂度从n×(|p|+2|q |)降至了n×|p|。注意每组(Ki,σi)的长度是|p|+2|q |。
假设(先不管这个假设是否合理)服务端的固定私钥b暴露了,我们记得orYYZ本身有KCI弱点。但是,如果
Figure GSB00000807124100411
的私钥b真的暴露了,所有BCEP协议的群会话密钥都已经暴露。发明人指出,相比于原BCEP协议,基于orYYZ的实现在本质上不会为安全性带来负面影响,反而在严苛的无线环境下会在效率上提供显著的优势(或者说,能够在安全性和效率之间取得了更好的平衡)。
另外一项改进BCEP协议的方法是运行本发明中提出的(用于改进的基于口令的TLS/SSL),适用于客户端/服务端环境下的,基于口令的DHKE来产生共享DH-密钥Ki。在这种情况下,客户端没有公钥,而是在服务端注册自己的口令(即使服务端的数据库泄漏,口令也会得到很好的保护)。这种方法有下列额外的优点:
(1)服务端的计算复杂度进一步降低,总计仅n次指数运算。
(2)服务端和客户端都可以更容易地维护和管理口令(而不是公钥)。并且,即使服务端的数据库泄露,客户的口令仍然可以得到良好的保护。
(3)基于YYZ的KCI弱点同样被排除了。
虽然依据各种推荐的实施方式对发明方法进行了描述,但是对于熟悉本领域的人而言,本发明可以在下附的权利要求的精神指导和框架下进行修改和实践。
并且,应当指出,申请人的权利要求旨在包括所有权利研究原理和基础的等价物,即便在将来的司法诉讼中做出相应修正。
基于上述发明方法的描述,我们接下来提出创新的并想要得到保护的权利要求:

Claims (67)

1.一类用于通过设备或网络连接的两方用户之间的知识证明和密钥交换方法,所述方法包括:
{ X 1 = B 1 ( g ) f 1 ( x 1 ) , . . . , X n = B n ( g ) f n ( x n ) , m 1 } , n≥1为身份是的第一方用户在多项式时间内的公共成分贡献,其中x1,...,xn
Figure FDA00002621263200013
选的私有值,即:x1,...,xn为用户
Figure FDA00002621263200014
所选择生成并对其它用户保密的数值且x1,...,xn的具体数值只有用户
Figure FDA00002621263200015
知道,g是一个以N为阶的有限阿贝尔群G′的一个以q为阶的子群G的生成元,每个
Figure FDA00002621263200016
1≤i≤n,构成一个单向指数函数,每个Bi(g),1≤i≤n,构成一个确定的至少有一个参数g的函数,每个fi(xi),1≤i≤n构成一个确定的有至少一个参数xi的函数,m1包含由用户
Figure FDA00002621263200017
发送的与所发明方法的一个会话相关的其它任意公共信息;这儿,所发明方法在两方用户之间的一次运行称为一个会话;上述公共成分贡献X1,...,Xn,m1中,有些是在多个会话中都使用的固定的值,另外一些则是只是在每个会话中使用的临时的值;上述的X1,...,Xn称为第一方用户
Figure FDA00002621263200018
的DH-成分,x1,...,xn称为第一方用户的DH-指数;
{ Y 1 = B 1 ′ ( g ) f 1 ′ ( y 1 ) , . . . , Y m = B m ′ ( g ) f n ′ ( y n ) , m 2 } , m≥1为身份是
Figure FDA000026212632000111
的第二方用户在多项式时间内的公共成分贡献,其中y1,...,ym
Figure FDA000026212632000112
选的私有值,即:y1,...,ym为用户
Figure FDA000026212632000113
所选择生成并对其它用户保密的数值且y1,...,ym的具体数值只有用户
Figure FDA000026212632000114
知道,g是一个以N为阶的有限阿贝尔群G′的一个以q为阶的子群G的生成元,每个1≤j≤m,构成一个单向指数函数,每个Bj′(g),1≤j≤m,构成一个确定的至少有一个参数g的函数,每个fj′(yj),1≤j≤m构成一个确定的有至少一个参数yj的函数,m2包含由用户
Figure FDA000026212632000116
发送的与所发明方法的一个会话相关的其它任意公共信息;上述公共成分贡献Y1,...,Ym,m2中,有些是在多个会话中都使用的固定值,另外一些则是只是在每个会话中使用的临时的值;上述的Y1,...,Ym称为第二方用户
Figure FDA000026212632000117
的DH-成分,y1,...,ym称为第二方用户
Figure FDA000026212632000118
的DH-指数;
第二方用户
Figure FDA000026212632000119
得到{X1,...,Xn,m1}后,计算 K B ^ = F B ^ ( K B ^ ( 1 ) , . . . , K B ^ ( 1 ) , m 1 , m 2 ) , 其中..., K B ^ ( 1 ) = f B ^ ( 1 ) ( X 1 ) f ‾ 1 ′ ( y 1 ) c 1 ( 1 ) + . . . + f ‾ m ′ ( y m ) c m ( 1 ) , K B ^ ( n ) = f B ^ ( n ) ( X 1 ) f ‾ 1 ′ ( y 1 ) c 1 ( 1 ) + . . . + f ‾ m ′ ( y m ) c m ( n ) , 每个 f B ^ ( i ) ( X i ) , 1≤i≤n构成一个确定的,至少有一个参数Xi的函数,每个
Figure FDA000026212632000124
1≤j≤m构成一个确定的,至少有一个参数yj的函数,
Figure FDA000026212632000125
构成一个确定的,至少有n个参数
Figure FDA000026212632000126
的函数;
第一方用户
Figure FDA00002621263200021
得到{Y1,...,Ym,m2}后,计算 K A ^ = F A ^ ( K A ^ ( 1 ) , . . . , K A ^ ( n ) , m 1 , m 2 ) , 其中..., K A ^ ( 1 ) = f A ^ ( 1 ) ( Y 1 ) f ‾ 1 ( x 1 ) c 1 ( 1 ) . . . f A ^ ( m ) ( Y m ) f ‾ 1 ( x 1 ) c m ( 1 ) , K A ^ ( n ) = f A ^ ( 1 ) ( Y 1 ) f ‾ n ( x n ) c 1 ( n ) . . . f A ^ ( m ) ( Y m ) f ‾ n ( x n ) c m ( n ) , 每个
Figure FDA00002621263200025
1≤j≤m构成一个确定的,至少有一个参数Yj的函数,每个
Figure FDA00002621263200026
1≤i≤n构成一个确定的,至少有一个参数xi的函数,构成一个确定的,至少有n个参数 K A ^ ( 1 ) , . . . , K A ^ ( n ) 的函数;
其中的每个
Figure FDA00002621263200029
1≤i≤n,1≤j≤m构成一个确定的函数,并且非零的1≤i≤n,1≤j≤m满足:
(i)独立要求:对于任意的i,1≤i≤n,当m≥2时,所述
Figure FDA000026212632000211
独立于第二方用户任意的临时DH-成分;
(ii)承诺要求:所述非零的
Figure FDA000026212632000213
1≤i≤n,1≤j≤m,对第一方用户和第二方用户双方的临时DH-成分进行提交;
(iii)可以预计算和/或可以后置身份计算和/或可抵赖性:对于固定DH-成分Xi,1≤i≤n,
Figure FDA000026212632000214
的值可以由
Figure FDA000026212632000215
离线预计算,并且/或者对于临时DH-成分Xi,1≤i≤n,
Figure FDA000026212632000216
的值可以由
Figure FDA000026212632000217
在不知道
Figure FDA000026212632000218
身份和所述固定DH-成分的情况下离线预计算;对于固定的DH-成分Yj,1≤j≤m,
Figure FDA000026212632000219
的值可以由
Figure FDA000026212632000220
离线预计算,并且/或者对于临时DH-成分Yj,1≤j≤m,
Figure FDA000026212632000221
的值可以由
Figure FDA000026212632000222
在不知道
Figure FDA000026212632000223
固定DH-成分和身份的情况下离线预计算;并且/或者上述
Figure FDA000026212632000224
Figure FDA000026212632000225
的值,可以仅仅由第一方用户和第二方用户双方的所述临时DH-指数和固定的和临时的公开的DH-成分计算出来;
所述第一方用户
Figure FDA000026212632000226
和第二方用户
Figure FDA000026212632000227
的公共成分贡献都可以通过多轮交互进行交换。
2.如权利要求1所述的方法,其中,非零
Figure FDA000026212632000228
1≤i≤n,1≤j≤m不仅对双方的临时DH-成分进行提交,而且进一步对至少其中一方的身份和/或固定的DH-成分进行提交。
3.如权利要求1所述的方法,其中,非零1≤i≤n,1≤j≤m,满足:对于任意的i,1≤i≤n,当m≥2时,
Figure FDA000026212632000230
独立于任意临时DH-成分和第二方用户
Figure FDA000026212632000231
的任意固定DH-成分。
4.如权利要求1所述的方法,其中,非零
Figure FDA000026212632000232
1≤i≤n,1≤j≤m,满足:对于任意的i,1≤i≤n,当m≥2时, f ‾ i ( x i ) f ‾ 1 ′ ( y 1 ) c 1 ( i ) , . . . , f ‾ i ( x i ) f ‾ m ′ ( y m ) c m ( i ) 独立于任意第一方用户
Figure FDA00002621263200031
或者第二方用户
Figure FDA00002621263200032
的临时DH-成分。
5.如权利要求1所述的方法,其中,非零
Figure FDA00002621263200033
1≤i≤n,1≤j≤m,满足:对于任意的i,1≤i≤n,当m≥2时, f ‾ i ( x i ) f ‾ 1 ′ ( y 1 ) c 1 ( i ) , . . . , f ‾ i ( x i ) f ‾ m ′ ( y m ) c m ( i ) 独立于任意第一方用户
Figure FDA00002621263200035
或者第二方用户的临时DH-成分和固定DH-成分。
6.如权利要求1所述的方法,其中,非零
Figure FDA00002621263200037
1≤i≤n,1≤j≤m,满足:对于任意的j,1≤j≤m,当n≥2时,
Figure FDA00002621263200038
独立于任意第一方用户的临时DH-成分。
7.如权利要求1所述的方法,其中,非零
Figure FDA000026212632000310
1≤i≤n,1≤j≤m,它满足:对于任意的j,1≤j≤m,当n≥2时,
Figure FDA000026212632000311
独立于任意第一方用户
Figure FDA000026212632000312
的临时DH-成分和固定DH-成分。
8.如权利要求1所述的方法,其中,非零
Figure FDA000026212632000313
1≤i≤n,1≤j≤m,满足:对于任意的j,1≤j≤m,当n≥2时, f ‾ j ′ ( y j ) f ‾ 1 ( y 1 ) c j ( 1 ) , . . . , f ‾ j ′ ( y j ) f ‾ n ( y n ) c j ( n ) 独立于任意第一方用户或者第二方用户
Figure FDA000026212632000316
的临时DH-成分。
9.如权利要求1所述的方法,其中,非零
Figure FDA000026212632000317
1≤i≤n,1≤j≤m,满足:对于任意的j,1≤j≤m,当n≥2时, f ‾ j ′ ( y j ) f ‾ 1 ( y 1 ) c j ( 1 ) , . . . , f ‾ j ′ ( y j ) f ‾ n ( y n ) c j ( n ) 独立于任意第一方用户
Figure FDA000026212632000319
或者第二方用户
Figure FDA000026212632000320
的临时DH-成分和固定DH-成分。
10.如权利要求1所述的方法,其中,使用
Figure FDA000026212632000321
导出双方之间的共享密钥;第一方用户
Figure FDA000026212632000323
计算
Figure FDA000026212632000324
得到该密钥,其中构成一个预先决定的、至少有一个参数
Figure FDA000026212632000326
的数学函数;第二方用户
Figure FDA000026212632000327
计算得到该密钥,其中
Figure FDA000026212632000329
包含一个预先决定的、至少有一个参数
Figure FDA000026212632000330
的数学函数。
11.如权利要求10所述的方法,其中,
Figure FDA000026212632000331
Figure FDA000026212632000332
构成一个密码函数,这个密码函数可以是一个密码学哈希函数、或者密码学伪随机函数、或者加密函数、或者单向函数。
12.如权利要求10所述的方法,其中,导出的密钥包括一对密钥:一个MAC密钥Km和一个会话密钥K。
13.如权利要求1所述的方法,其中,第二方用户
Figure FDA000026212632000333
使用
Figure FDA000026212632000334
生成并发送认证值给第一方用户
Figure FDA000026212632000335
并且/或者,第一方用户使用生成并发送认证值给第二方用户
14.如权利要求13所述的方法,其中,如果
Figure FDA000026212632000339
通过一种预先决定好的方法相关于那么第一方用户
Figure FDA00002621263200042
将第二方用户
Figure FDA00002621263200043
的认证值视为合法;并且/或者,如果
Figure FDA00002621263200044
通过一种预先决定好的方法相关于
Figure FDA00002621263200045
那么第二方用户
Figure FDA00002621263200046
将第一方用户
Figure FDA00002621263200047
的认证值视为合法。
15.如权利要求14所述的方法,其中,如果第一方用户
Figure FDA00002621263200048
确定
Figure FDA00002621263200049
等于
Figure FDA000026212632000410
那么将第二方用户的认证值视为合法的;如果第二方用户
Figure FDA000026212632000412
确定等于
Figure FDA000026212632000414
那么将第一方用户
Figure FDA000026212632000415
的认证值视为合法的。
16.如权利要求15所述的方法,其中,第二方用户
Figure FDA000026212632000416
的认证值中可以包含
Figure FDA000026212632000417
其中MAC是预先决定的以Km为密钥的消息验证码函数,
Figure FDA000026212632000418
中包含第二方用户
Figure FDA000026212632000419
需要被验证的信息;第一方用户的认证值中可以包含
Figure FDA000026212632000421
其中中包含第一方用户
Figure FDA000026212632000423
需要被验证的信息,并且
Figure FDA000026212632000424
17.如权利要求2所述的方法,其中,如果第一方用户向可信第三方证明自己拥有或者知道对应于其固定DH-成分的DH-指数,并且/或者,第二方用户在会话建立之前已经拥有了第一方固定DH-成分经过认证的拷贝,那么第一方用户的固定DH-成分可不由非零1≤i≤n,1≤j≤m来提交;同样,如果第二方用户向可信第三方证明自己拥有或者知道对应于其固定DH-成分的DH-指数,并且/或者,第一方用户在会话建立之前已经拥有了第二方用户固定DH-成分经过认证的拷贝,那么第二方用户的固定DH-成分可不由非零
Figure FDA000026212632000426
1≤i≤n,1≤j≤m来提交。
18.如权利要求10所述的方法,其中,如果第一方用户的身份是
Figure FDA000026212632000427
Figure FDA000026212632000428
中的一个参数,那么第一方用户的身份不由非零1≤i≤n,1≤j≤m进行提交;如果第二方用户的身份是
Figure FDA000026212632000430
Figure FDA000026212632000431
中的一个参数,那么第二方用户的身份不由非零1≤i≤n,1≤j≤m进行提交。
19.如权利要求18所述的方法,其中,每个Bi(g),1≤i≤n,fi,1≤i≤n,Bj′(g),1≤j≤m,fj′,1≤j≤m,
Figure FDA000026212632000433
1≤i≤n,
Figure FDA000026212632000434
1≤j≤m和
Figure FDA000026212632000435
1≤j≤m,
Figure FDA000026212632000436
1≤i≤n都构成一个恒等函数,并且其中的q是素数。
20.如权利要求19所述的方法,其中,令n=2,X1=A=ga,X2=X=gx,其中A为参与方
Figure FDA000026212632000437
的固定DH-成分,并且是公钥,a是它的固定DH-指数,并且是私钥,X是它的临时DH-成分,而x是它的临时DH-指数;m=2,Y1=B=gb,Y2=Y=gy,其中B为参与方
Figure FDA000026212632000438
的固定DH-成分,并且是公钥,b是它的固定DH-指数,并且是私钥,Y是它的临时DH-成分,而y是它的临时DH-指数;上述的a,x,b,y都是整数并且1≤a,x,b,y≤q-1。
21.如权利要求19所述的方法,其中,m1和m2中至少有一个包含第一方用户
Figure FDA00002621263200051
或者第二方用户
Figure FDA00002621263200052
的身份。
22.如权利要求20所述的方法,其中,令
Figure FDA00002621263200053
K B ^ ( 2 ) = X ( bc 1 ( 2 ) + yc 2 ( 2 ) ) mod q , K A ^ ( 1 ) = B ac 1 ( 1 ) mod q Y ac 2 ( 1 ) mod q mod N K A ^ ( 2 ) = B xc 1 ( 2 ) mod q Y xc 2 ( 2 ) mod q mod N , c 1 ( 1 ) = t 1 f , c 2 ( 1 ) = t 2 c , c 1 ( 2 ) = t 3 d , c 2 ( 2 ) = t 4 e , 其中上述的ti=1或者ti=N/q,1≤i≤4,上述的c,d,e,f中每个都构成一个预先决定的数学函数,该函数的参数包含 { A ^ , A , X , m 1 , B ^ , B , Y , m 2 } 的一个子集。
23.如权利要求22所述的方法,其中,令 K B ^ = K B ^ ( 1 ) K B ^ ( 2 ) = A ( bc 1 ( 1 ) + yc 2 ( 1 ) ) mod q X ( bc 1 ( 2 ) + yc 2 ( 2 ) ) mod q mod N , 并且 K A ^ = K A ^ ( 1 ) K A ^ ( 2 ) = B ( ac 1 ( 1 ) + xc 1 ( 2 ) ) mod q Y ( ac 2 ( 1 ) + xc 2 ( 2 ) ) mod q mod N .
24.如权利要求23所述的方法,其中,令c=h(Y,pub1)或c=1,d=h(X,pub2)或d=1,e=h(X,Y,pub3)或e=0,f=0或f=1或f=h(pub4),其中上述h构成可被建模成可能理想化的密码模型中的随机函数的一个预先决定的函数,或者一个密码学哈希函数,密码学伪随机函数,密码学提交函数,加密函数或者单向函数之一;上述pubi,1≤i≤4,包含的一个子集的信息,并且如果c=d=1,那么e≠1。
25.如权利要求24所述的方法,其中,令pub1包括的身份信息并且/或者pub2包括
Figure FDA000026212632000516
的身份信息,并且/或者pub3包括
Figure FDA000026212632000517
双方的身份信息。
26.如权利要求22所述的方法,其中
如果参与方都检查确认对方的临时DH-成分和固定DH-成分为子群G的元素,那么t1=t2=t3=t4=1;
如果一方不对另一方的临时DH-成分进行显式的子群测试,而是
Figure FDA000026212632000518
检查并确认Y是在G′中并且不是G′的一个以N/q的一个因数为阶的子群中的元素,而检查并确认X是在G′中并且不是G′的一个以N/q的一个因数为阶的子群中的元素,那么此时t2=t3=t4=N/q;如果对对方的固定DH-成分进行子群测试,则t1=1;如果不对对方的固定DH-成分进行显式的子群测试,而是
Figure FDA000026212632000520
检查并确认B是在G′中并且不是G′的一个以N/q的一个因数为阶的子群中的元素,而
Figure FDA000026212632000521
检查并确认A是在G′中并且不是G′的一个以N/q的一个因数为阶的子群中的元素,那么此时t1=N/q。
27.如权利要求26所述的方法,其中,“
Figure FDA00002621263200061
检查并确认Y不是G′的一个以N/q的一个因数为阶的子群中的元素”,通过以下的不等式之一验证: Y ( ac 2 ( 1 ) + xc 2 ( 2 ) ) mod q ≠ 1 G , Y ac 2 ( 1 ) mod q ≠ 1 G , Y xc 2 ( 2 ) mod q ≠ 1 G , K A ^ ≠ 1 G , 其中1G为群G′的单位元;
上述“
Figure FDA00002621263200066
检查并确认X不是G′的一个以N/q的一个因数为阶的子群中的元素”,通过以下的不等式之一验证: X ( bc 1 ( 2 ) + yc 2 ( 2 ) ) mod q ≠ 1 G , X bc 1 ( 2 ) mod q ≠ 1 G , X yc 2 ( 2 ) mod q ≠ 1 G , K B ^ ≠ 1 G ;
上述“
Figure FDA000026212632000611
检查并确认B不是G′的一个以N/q的一个因数为阶的子群中的元素”,通过以下的不等式之一验证: B ( ac 1 ( 1 ) + xc 1 ( 2 ) ) mod q ≠ 1 G , B ac 1 ( 1 ) mod q ≠ 1 G , B yc 1 ( 2 ) mod q ≠ 1 G , K A ^ ≠ 1 G ;
上述“
Figure FDA000026212632000616
检查并确认A不是G′的一个以N/q的一个因数为阶的子群中的元素”,通过以下的不等式之一验证: A ( bc 1 ( 1 ) + yc 2 ( 1 ) ) mod q ≠ 1 G , A bc 1 ( 1 ) mod q ≠ 1 G , A yc 2 ( 1 ) mod q ≠ 1 G , K B ^ ≠ 1 G .
28.如权利要求24所述的方法,其中,
Figure FDA000026212632000621
e=h(X,Y),f=0。
29.如权利要求24所述的方法,其中,c,d,e,f的实现还可以包括:
(i) c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e=h(X,Y)或 e = h ( A ^ , A , B ^ , B , X , Y ) e = h ( A ^ , B ^ , X , Y ) , f=1或 f = h ( A ^ , A , B ^ , B ) ; 或者
(ii)c=1,d=1, e = h ( A ^ , A , B ^ , B , X , Y ) , f=0;或者
(iii) c = h ( A ^ , A , B ^ , B , Y ) , d = h ( B ^ , B , A ^ , A , X ) , e = h ( A ^ , A , B ^ , B , X , Y ) 或e=h(c,d)或e=h(c,X)或e=h(d,Y)或e=h(X,Y),f=0或f=1或
Figure FDA000026212632000632
或者
(iv) c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e = h ( A ^ , A , B ^ , B , X , Y ) 或e=h(c,d)或e=h(c,X)或e=h(d,Y),f=0或f=1或或者
(v) c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e=0,f=0;或者
(vi)c=1, d = h ( A ^ , A , B ^ , B , X , Y ) , e=0,f=0;或者
(vii) c = h ( A ^ , A , B ^ , B , Y ) , d = h ( A ^ , A , B ^ , B , X ) , e=0,f=0;或者
(viii)c=1,d=1, e = h ( A ^ , A , B ^ , B , X , Y ) , f=1或 f = h ( A ^ , A , B ^ , B ) f = h ( X , Y , A ^ , A , B ^ , B ) 或f=0;或者
(ix) c = h ( B ^ , B , Y ) , d = h ( A ^ , A , X ) , e=h(X,Y)或 e = h ( A ^ , A , B ^ , B , X , Y ) 或e=h(c,d)或e=h(c,X)或e=h(d,Y),f=0或f=1或
Figure FDA00002621263200074
或者
(x) c = h ( A ^ , Y ) , d = h ( B ^ , X ) , e=h(X,Y)或 e = h ( A ^ , A , B ^ , B , X , Y ) 或e=h(c,d)或e=h(c,X)或e=h(d,Y),f=0或f=1或
Figure FDA00002621263200078
或者
(xi)c=h(Y),d=h(X),e=h(X,Y)或
Figure FDA00002621263200079
或e=h(c,d)或e=h(c,X)或e=h(d,Y),f=0或f=1或
Figure FDA000026212632000710
30.如权利要求23所述的方法,其中,c,d,e,f的实现还可以包括:
(i) c = h ( B ^ , B , Y ) , d = h ( A ^ , A , X ) , e = h ( A ^ , A , X ) h ( B ^ , B , Y ) , f=1;或者
(ii) c = h ( A ^ , A , X ) , d = h ( B ^ , B , Y ) , e=1, f = h ( A ^ , A , X ) h ( B ^ , B , Y ) .
31.如权利要求23所述的方法,其中,c,d,e,f的实现还可以包括:
(i) c = h ( B ^ , A , X ) , d = h ( A ^ , B , Y ) , e=1, f = h ( B ^ , A , x ) h ( A ^ , B , Y ) ; 或者
(ii) c = h ( A ^ , A , B ^ , B , X , Y ) , d = h ( c ) = h ( h ( A ^ , A , B ^ , B , X , Y ) ) , e=1,f=cd。
32.如权利要求22所述的方法,其中,第一方用户
Figure FDA000026212632000722
拥有一份由可信第三方发布的证书
Figure FDA000026212632000723
用以将第一方用户的身份和公钥进行绑定验证,该证书包括一个提交
Figure FDA000026212632000724
的值
Figure FDA000026212632000725
在函数c,d,e,f中的参数
Figure FDA000026212632000726
Figure FDA000026212632000727
替代;并且/或者第二方用户拥有一份由可信第三方发布的证书用以将第二方用户的身份和公钥进行绑定验证,该证书包括一个提交的值
Figure FDA000026212632000731
在函数c,d,e,f中的参数
Figure FDA000026212632000732
Figure FDA000026212632000733
替代。
33.如权利要求32所述的方法,其中,令
Figure FDA000026212632000735
H构成一个密码学函数,可以是一个密码学哈希函数,一个密码学伪随机函数,一个密码学承诺函数,一个加密函数或者一个单向函数之一。
34.如权利要求22所述的方法,其中,如果可信第三方要求第一方用户证明自己拥有或知道其对应于公钥的私钥,并且/或者第二方用户在协议开始之前就已经拥有第一方用户一份经过认证的公钥拷贝,那么此时第一方用户的公钥可以从函数c,d,e,f的参数中移除;类似地,如果可信第三方要求第二方用户证明自己拥有或知道其对应于公钥的私钥,并且/或者第一方用户在协议开始之前就已经拥有第二方用户一份经过认证的公钥拷贝,那么此时第二方用户的公钥可以从函数c,d,e,f的参数中移除;
如果第一方用户的身份是
Figure FDA000026212632000736
Figure FDA000026212632000737
的参数,那么第一方用户的身份可以从函数c,d,e,f的参数中移除;和/或,如果第二方用户的身份是
Figure FDA00002621263200082
的参数,那么第二方用户的身份可以从函数c,d,e,f的参数中移除。
35.如权利要求19所述的方法,其中,令n=1,X1=X=gx,其中X是参与方
Figure FDA00002621263200083
的临时DH-成分,x是
Figure FDA00002621263200084
的临时DH-指数;m=2,Y1=B=gb,Y2=Y=gy,其中B是参与方
Figure FDA00002621263200085
的公钥,b是
Figure FDA00002621263200086
的私钥,Y是参与方
Figure FDA00002621263200087
的临时DH-成分,y是
Figure FDA00002621263200088
的临时DH-指数,上述的x,b,y都是整数并且1≤x,b,y≤q-1; K B ^ = K B ^ ( 1 ) = X ( bc 1 ( 1 ) + yc 2 1 ) mod q mod N , K A ^ = K A ^ ( 1 ) K A ^ ( 2 ) = B xc 1 ( 1 ) mod q Y xc 2 ( 1 ) mod q mod N , 其中 c 1 ( 1 ) = t 1 f ,
Figure FDA000026212632000812
f,c的任意一个构成一个预先决定的函数,该函数有以
Figure FDA000026212632000813
的一个子集作为参数;如果验证X是G中一个成员,那么t1=t2=1,否则t1=t2=N/q,并且
Figure FDA000026212632000815
验证X是G′中一个成员,同时X不是G′的一个以N/q的一因子为阶的子集中的成员。
36.如权利要求35所述的方法,其中,“
Figure FDA000026212632000816
验证X不是G′的一个以N/q的一因子为阶的子集中的成员”通过验证
Figure FDA000026212632000817
来实现。
37.如权利要求35所述的方法,其中,f,c的实现包括:
(i) f = h ( B ^ , B , X , aux 1 ) , c=h(X,Y,aux2);或者
(ii)f=1, c = h ( X , B ^ , B , X , aux 3 ) ;
上述的auxi,1≤i≤3,包含一个空信息,或身份
Figure FDA000026212632000820
或除外与会话相关的信息。
38.如权利要求19所述的方法,其中,令n=2,X1=A=ga,X2=X=gx,其中A是参与方
Figure FDA000026212632000822
的固定DH-成分和公钥,a是参与方
Figure FDA000026212632000823
的固定DH-指数和私钥,X是参与方
Figure FDA000026212632000824
的临时DH-成分,x是
Figure FDA000026212632000825
的临时DH-指数;m=1,Y1=B=gb,其中B是参与方
Figure FDA000026212632000826
的固定DH-成分和公钥,b是
Figure FDA000026212632000827
的固定DH-指数和私钥;上述的a,x,b都是整数并且1≤a,x,b≤q-1; K B ^ = K B ^ ( 1 ) K B ^ ( 2 ) = A bc 1 ( 1 ) mod q X bc 1 ( 2 ) mod q mod N , K A ^ = K A ^ ( 1 ) K A ^ ( 2 ) = B ( ac 1 ( 1 ) + xc 1 ( 2 ) ) mod q , 其中 K B ^ ( 1 ) = A bc 1 ( 1 ) mod q , K B ^ ( 2 ) = X bc 1 ( 2 ) mod q , K A ^ ( 1 ) = B ac 1 ( 1 ) mod q mod N , K A ^ ( 2 ) = B xc 1 ( 2 ) mod q mod N ; c 1 ( 1 ) = t 1 f , c 1 ( 2 ) = t 3 d , 任意的f,d之一构成一个预先决定的函数,该函数以
Figure FDA000026212632000836
的一个子集作为参数;t1=1或t1=N/q;t3=1或t3=N/q。
39.如权利要求38所述的方法,其中,如果每方都验证和确认对方的固定和临时DH-成分是否为子群G的成员,那么t1=t3=1;否则t1=t3=N/q,并且至少
Figure FDA00002621263200091
要验证X∈G′和
40.如权利要求38所述的方法,其中,令f=1或f=h(aux′1),
Figure FDA00002621263200093
其中有aux′1包含除临时DH-成分X外的非空消息,h的输出长度为|q|/2,其中|q|表示q的比特长度。
41.如权利要求38所述的方法,其中,
Figure FDA00002621263200094
d=1。
42.如权利要求38所述的方法,其中,给定一个
Figure FDA00002621263200095
支持的公钥加密体系,其中密文包含由
Figure FDA00002621263200096
生成并发送的X=gx,其中1≤x≤q-1,并且该公钥加密体系的
Figure FDA00002621263200097
Figure FDA00002621263200098
共享密钥通过
Figure FDA00002621263200099
计算
Figure FDA000026212632000910
Figure FDA000026212632000911
计算
Figure FDA000026212632000912
来导出,令
Figure FDA000026212632000913
用所述替换
Figure FDA000026212632000916
用所述替换
Figure FDA000026212632000918
来生成
Figure FDA000026212632000919
Figure FDA000026212632000920
的共享密钥。
43.如权利要求42所述的方法,其中,
Figure FDA000026212632000921
F B ^ ′ ( b , X ) = X b mod N .
44.如权利要求19所述的方法,其中,n=1,X1=X=gx,其中X是
Figure FDA000026212632000923
的临时DH-成分而x是其临时DH-指数;m=1,Y1=Y=gy,其中Y是
Figure FDA000026212632000924
的临时DH-成分而y是其临时DH-指数;上述的x,y都是整数并且1≤x,y≤q-1;那么有 K B ^ = X yc 1 ( 1 ) mod q mod N , K A ^ = Y xc 1 ( 1 ) mod q mod N , 其中 c 1 ( 1 ) = t 1 f , t1=1或t1=N/q,e=h(X,Y,aux″′),aux″′包括除临时DH-成分外所有消息的一个子集。
45.如权利要求44所述的方法,其中,aux″′包括参与双方的身份
Figure FDA000026212632000928
46.如权利要求1所述的方法,其中,m1包括一个由第一方用户
Figure FDA000026212632000929
生成的随机数
Figure FDA000026212632000930
并且/或者m2包括一个由第二方用户生成的随机数
Figure FDA000026212632000932
那么,对于i,j:1≤i≤n,1≤j≤m,如果
Figure FDA000026212632000933
的一个临时DH-成分是非零
Figure FDA000026212632000934
的参数,那么
Figure FDA000026212632000935
也是该非零
Figure FDA000026212632000936
的参数,并且可以在有限的时间内,在多个会话中使用相同的临时DH-成分;并且/或者,对于i,j:1≤i≤n,1≤j≤m,如果
Figure FDA000026212632000938
的一个临时DH-成分是非零
Figure FDA000026212632000939
的参数,那么
Figure FDA000026212632000940
也是
Figure FDA000026212632000941
的参数,并且
Figure FDA000026212632000942
可以在有限的时间内,在多个会话中使用相同的临时DH-成分。
47.如权利要求1到11中任意一条所述的方法,其中,n=2,m=2,每个Bi(g),1≤i≤n,fi,1≤i≤n,Bj′(g),1≤j≤m,f′j,1≤j≤m,
Figure FDA000026212632000943
1≤i≤n,
Figure FDA000026212632000944
1≤j≤m和
Figure FDA000026212632000945
1≤j≤m,
Figure FDA000026212632000946
1≤i≤n均构成一个恒等函数,并且其中的q是素数;
令X1=A=ga,X2=X=gx,其中A是参与方
Figure FDA000026212632000947
的一个固定DH-成分和公钥,a是其固定DH-指数和私钥,X是参与方
Figure FDA00002621263200101
的一个临时DH-成分,x是其临时DH-指数;
令Y1=B=gb,Y2=Y=gy,其中B是参与方
Figure FDA00002621263200102
的一个固定DH-成分和公钥,b是其固定DH-指数和私钥,Y是参与方的一个临时DH-成分,y是其临时DH-指数;上述的a,x,b,y都是整数并且1≤a,x,b,y≤q-1;
K B ^ ( 1 ) = A ( bc 1 ( 1 ) + yc 2 ( 1 ) ) mod q K B ^ ( 2 ) = X ( bc 1 ( 2 ) + yc 2 ( 2 ) ) mod q , K A ^ ( 1 ) = B ac 1 ( 1 ) mod q Y ac 2 ( 1 ) mod q mod N K A ^ ( 2 ) = B xc 1 ( 2 ) mod q Y xc 2 ( 2 ) mod q mod N , c 1 ( 1 ) = t 1 f , c 2 ( 1 ) = t 2 c , c 1 ( 2 ) = t 3 d , c 2 ( 2 ) = t 4 e , 其中ti=1或ti=N/q,1≤i≤4,而且上述c,d,e,f中每个都构成一个预先决定好的以 { A ^ , A , X , m 1 , B ^ , B , Y , m 2 } 的一个子集作为参数的数学函数;
其中第一方用户
Figure FDA000026212632001013
的公钥A和临时DH-成分X是分别发送给
Figure FDA000026212632001014
的;
Figure FDA000026212632001015
首先将X发送给
Figure FDA000026212632001016
然后只在接收到
Figure FDA000026212632001017
后才将自己的公钥A发送给
Figure FDA000026212632001018
身份
Figure FDA000026212632001019
和/或公钥A不作为函数d和e的参数。
48.如权利要求47所述的方法,其中,第二方用户
Figure FDA000026212632001020
使用
Figure FDA000026212632001021
生成一个认证值并将
Figure FDA000026212632001023
连同临时DH-成分Y一起发送给第一方用户
Figure FDA000026212632001024
在接收到
Figure FDA000026212632001025
Figure FDA000026212632001026
之后,第一方用户
Figure FDA000026212632001027
如果能通过一个事先预定好的方法验证确认
Figure FDA000026212632001028
的值相关于
Figure FDA000026212632001029
那么将认证值
Figure FDA000026212632001030
视为合法的;如果认证值
Figure FDA000026212632001031
被认为是合法的,第一方用户
Figure FDA000026212632001032
将自己的公钥和身份信息告知给
Figure FDA000026212632001033
第二方用户
Figure FDA000026212632001034
计算
Figure FDA000026212632001035
并由
Figure FDA000026212632001036
导出私钥;第一方用户计算
Figure FDA000026212632001038
并由导出私钥;并且/或者,第一方用户
Figure FDA000026212632001040
使用
Figure FDA000026212632001041
生成认证值
Figure FDA000026212632001042
并将该认证值发送给
Figure FDA000026212632001043
如果第二方用户
Figure FDA000026212632001044
可以用一种事先预定好的方法验证确认
Figure FDA000026212632001045
相关于
Figure FDA000026212632001046
那么将该认证值视为合法的。
49.如权利要求48所述的方法,其中,第一方用户
Figure FDA000026212632001048
使用
Figure FDA000026212632001049
生成认证值
Figure FDA000026212632001050
并将该认证值发送给
Figure FDA000026212632001051
如果第二方用户
Figure FDA000026212632001052
可以用一种事先预定好的方法验证确认
Figure FDA000026212632001053
相关于那么将该认证值
Figure FDA000026212632001055
视为合法的。
50.如权利要求48所述的方法,其中,令认证值
Figure FDA000026212632001056
包括
Figure FDA000026212632001057
其中
Figure FDA000026212632001058
构成一个预先决定好的密钥导出函数,其可以是一个密码学哈希函数,密码学伪随机函数,加密函数或者单向函数之一,并且至少有一个参数
Figure FDA000026212632001059
Figure FDA000026212632001060
包含需要被第二方用户
Figure FDA000026212632001061
验证的消息。
51.如权利要求50所述的方法,其中,令认证值
Figure FDA000026212632001062
包含
Figure FDA000026212632001063
其中构成一个预先决定好的密钥导出函数,其是一个密码学哈希函数,密码学伪随机函数,加密函数或者单向函数之一,并且至少有一个参数
Figure FDA00002621263200112
包含需要被第一方用户
Figure FDA00002621263200113
验证的消息,并且
Figure FDA00002621263200114
52.如权利要求51所述的方法,其中,令上述的
Figure FDA00002621263200115
包含第一方用户
Figure FDA00002621263200116
的身份和公钥以及
Figure FDA00002621263200117
53.如权利要求50所述的方法,其中,
Figure FDA00002621263200118
包含
Figure FDA00002621263200119
其中
Figure FDA000026212632001110
包含需要被第一方用户
Figure FDA000026212632001111
验证的消息,并且
Figure FDA000026212632001112
54.如权利要求47所述的方法,其中,
Figure FDA000026212632001113
Figure FDA000026212632001114
的实现包括:
(i) K B ^ = H K ( K B ^ ( 1 ) , H ( K B ^ ( 2 ) ) ) , K A ^ = H K ( K A ^ ( 1 ) , H ( K A ^ ( 2 ) ) ) , 其中HK构成一个预先决定好的密钥导出函数,其可以是一个密码学哈希函数,密码学伪随机函数,加密函数或者单向函数之一;或者
(ii) K B ^ = K B ^ ( 1 ) K B ^ ( 2 ) , K A ^ = K A ^ ( 1 ) K A ^ ( 2 ) .
55.如权利要求54所述的方法,其中,c,d,e,f的实现包括:
(i) c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e=h(X,Y),f=0;或者
(ii) c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e=h(X,Y),f=1或 f = h ( A ^ , A , B ^ , B ) ; 或者
(iii) c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e=1, f = h ( A ^ , A , X ) h ( B ^ , B , Y ) ; 或者
(iv) c = h ( A ^ , A , Y ) , d = h ( B ^ , B , X ) , e=0,f=0;或者
(v)
Figure FDA000026212632001129
Figure FDA000026212632001130
e=h(X,Y)或e=h(c,d)或e=h(c,X)或e=h(d,Y),f=0或f=1或 f = h ( A ^ , A , B ^ , B ) ; 或者
(vi)c=h(Y),d=h(X),e=h(X,Y)或e=h(c,d)或e=h(c,X)或e=h(d,Y),f=0或f=1或 f = h ( A ^ , A , B ^ , B ) .
56.一个建立验证密钥的方法,其中交互的双方都有多项式时间计算能力,其中一方称之为第一方用户,身份为另一方称为第二方用户,身份为
Figure FDA000026212632001134
双方通过一个设备或网络进行连接交互,并且共享一个秘密pw;
其中,第二方用户
Figure FDA000026212632001135
拥有一个固定DH-成分B=F′(g)f′(b)做为公钥,固定DH-指数b∈Zq作为私钥,第一方用户贡献一个值
Figure FDA000026212632001137
其中g为G的一个生成元,G以q为阶且是G′的一个子群,G′是一个阶为N的有限阿贝尔群;上述F1,F′的每一个均构成一个预先决定好的函数,该函数至少包含一个参数g;F2构成一个预先决定好的函数,该函数至少包含一个参数B;f′构成一个预先决定好的函数,该函数至少包含一个参数b;f1构成一个预先决定好的函数,该函数至少包含一个参数x;f2构成一个预先决定好的函数,该函数至少包含一个参数pw;aux″包括一个除pw外的消息的子集;
该方法包括:
第二方用户
Figure FDA00002621263200121
预计算并预存储 F 2 ( B ) - tf ′ ( b ) f 2 ( pw , aux ′ ′ ) 和/或 F 2 ( B ) tf ′ ( b ) f 2 ( pw , aux ′ ′ ) , 其中t=1或t=N/q;
第一方用户
Figure FDA00002621263200124
得到B;
第一方用户
Figure FDA00002621263200125
计算
Figure FDA00002621263200126
其中
Figure FDA00002621263200127
构成一个预先决定好的函数,该函数至少包含两个参数f1(x),B;
第二方用户
Figure FDA00002621263200128
得到X′;
第二方用户
Figure FDA00002621263200129
找回预计算并存储的 F 2 ( B ) - tf ′ ( b ) f 2 ( pw , aux ′ ′ ) 和/或 F 2 ( B ) tf ′ ( b ) f 2 ( pw , aux ′ ′ ) ;
第二方用户
Figure FDA000026212632001212
计算 K B ^ = F ‾ B ^ ( f 1 ( b ) , X ′ , F 2 ( B ) - tf ′ ( b ) f 2 ( pw , aux ′ ′ ) ) , 其中
Figure FDA000026212632001214
构成一个预先决定好的函数,该函数至少包含三个参数 f 1 ( b ) , X ′ , F 2 ( B ) - tf ′ ( b ) f 2 ( pw , aux ′ ′ ) ;
第二方用户
Figure FDA000026212632001216
使用
Figure FDA000026212632001217
导出双方之间的共享秘密,生成自己的认证值并验证对方的认证值;
第一方用户使用
Figure FDA000026212632001218
导出双方之间的共享秘密,生成自己的认证值并验证对方的认证值。
57.如权利要求56所述的方法,其中,F1,F′,F2,f1,f′的每一个均构成一个恒等函数,x,b为1≤x,b≤q-1的整数,
Figure FDA000026212632001219
K B ^ = F ‾ B ^ ( f 1 ( b ) , X ′ , F 2 ( B ) - tf ′ ( b ) f 2 ( pw , aux ′ ′ ) ) = ( X ′ ) tb B - tbf 2 ( pw , aux ′ ′ ) , t=1或t=N/q。
58.如权利要求57所述的方法,其中,f2(pw,aux″)的实现包括:
(i)f2(pw,aux″)=pw;或者
(ii) f 2 ( pw , aux ′ ′ ) = h ( pw , A ^ , B ^ ) , 其中aux″包含双方的身份 { A ^ , B ^ } , f 2 ( pw , aux ′ ′ ) = h ( pw , A ^ , B ^ , B ) , f 2 ( pw , aux ′ ′ ) = h ( pw , A ^ ) .
59.如权利要求57所述的方法,其中,如果第二方用户
Figure FDA000026212632001225
检查并确认X′∈G,那么t=1;否则t=N/q,并且第二方用户检查并验证X′是G′的一个元素且gx不在G′的一个以N/q为阶的子群中。
60.如权利要求59所述的方法,其中,“第二方用户
Figure FDA000026212632001226
检查gx不在G′的一个以N/q为阶的子集中”通过检查以下不等式之一来实现:
Figure FDA000026212632001227
K B ^ ≠ 1 G .
61.如权利要求57-58任意一条所述的方法,其中,给定一个第二方用户
Figure FDA00002621263200131
支持的公钥加密体系,其中由所述第一方用户
Figure FDA00002621263200132
生成和发送的密文包含X=gx,1≤x≤q-1,并且该公钥加密体系中第一方用户
Figure FDA00002621263200133
和第二方用户
Figure FDA00002621263200134
共享的密钥分别由
Figure FDA00002621263200135
通过计算
Figure FDA00002621263200136
通过计算
Figure FDA00002621263200138
来导出,那么使用
Figure FDA000026212632001310
来替代
Figure FDA000026212632001311
用X′替代X,
Figure FDA000026212632001312
使用
Figure FDA000026212632001313
来替代
Figure FDA000026212632001314
从而得到一个修改过的公钥加密体系。
62.如权利要求61所述的方法,其中,
Figure FDA000026212632001315
F B ^ ′ ( b , X ) = X b mod N .
63.如权利要求61所述的方法,如果消息m的密文包括
Figure FDA000026212632001317
Figure FDA000026212632001318
其中E为一个以k1作为私钥的私钥加密体系,(k1,k2)由
Figure FDA000026212632001319
通过
Figure FDA000026212632001321
通过导出,那么可以将
Figure FDA000026212632001323
改变为
Figure FDA000026212632001324
从而得到一个修改过的公钥加密体系,其中Hk是一个预先决定好的密钥导出函数,其是一个密码学哈希函数,一个密码学伪随机函数,一个密码学保证函数,一个加密函数或者一个单向函数之一,而
Figure FDA000026212632001325
包含除C外的其它消息的一个子集并将由第一方用户
Figure FDA000026212632001326
认证。
64.如权利要求61所述的方法,其中,令第一方用户
Figure FDA000026212632001327
使用上述修改过的公钥加密体系加密一个随机值K,并将得到密文发送给第二方用户
Figure FDA000026212632001328
65.如权利要求64所述的方法,其中,上述的K可以被第一方用户和第二方用户使用来导出会话密钥以及生成并验证相互的认证值。
66.如权利要求63所述的方法,其中,令第一方用户
Figure FDA000026212632001329
使用上述修改过的公钥加密体系加密一个随机值K,并将得到密文发送给第二方用户
Figure FDA000026212632001330
67.如权利要求66所述的方法,其中,上述的K可以被第一方用户和第二方用户使用来导出会话密钥以及生成并验证相互的认证值。
CN2008801222327A 2007-10-23 2008-10-23 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构 Expired - Fee Related CN102017510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008801222327A CN102017510B (zh) 2007-10-23 2008-10-23 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
CN200710047344.8 2007-10-23
CN2007100473448A CN101175076B (zh) 2007-10-23 2007-10-23 在线计算高效、可抵赖、不可锻造安全的密钥交换方法
CNA2008100325084A CN101247394A (zh) 2008-01-10 2008-01-10 一种改进的密钥交换协议
CNA200810032507XA CN101247224A (zh) 2008-01-10 2008-01-10 公钥承诺的并发不可锻造安全的mqv密钥交换协议
CN200810032507.X 2008-01-10
CN200810032508.4 2008-01-10
CNA2008100327728A CN101217549A (zh) 2008-01-17 2008-01-17 高效、不可锻造、不需数字签名的ssh运输层认证协议
CN200810032772.8 2008-01-17
CN200810040311.5 2008-07-08
CN200810040311A CN101626364A (zh) 2008-07-08 2008-07-08 一类可基于口令、抗秘密数据泄露的认证和密钥交换方法
CN 200810041475 CN101645870B (zh) 2008-08-07 2008-08-07 一类高效、公平的密钥交换方法
CN200810041475.X 2008-08-07
PCT/CN2008/072794 WO2009056048A1 (en) 2007-10-23 2008-10-23 Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols
CN2008801222327A CN102017510B (zh) 2007-10-23 2008-10-23 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构

Publications (2)

Publication Number Publication Date
CN102017510A CN102017510A (zh) 2011-04-13
CN102017510B true CN102017510B (zh) 2013-06-12

Family

ID=40590556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801222327A Expired - Fee Related CN102017510B (zh) 2007-10-23 2008-10-23 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构

Country Status (4)

Country Link
US (1) US8464060B2 (zh)
CN (1) CN102017510B (zh)
HK (1) HK1156750A1 (zh)
WO (1) WO2009056048A1 (zh)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510561B2 (en) * 2010-02-26 2013-08-13 Research In Motion Limited Methods and devices for computing a shared encryption key
US8990564B2 (en) 2010-07-08 2015-03-24 Certicom Corp. System and method for performing device authentication using key agreement
US8775794B2 (en) * 2010-11-15 2014-07-08 Jpmorgan Chase Bank, N.A. System and method for end to end encryption
US8661240B2 (en) * 2011-04-29 2014-02-25 International Business Machines Corporation Joint encryption of data
US9219604B2 (en) * 2011-05-09 2015-12-22 Cleversafe, Inc. Generating an encrypted message for storage
US8681986B2 (en) 2011-05-25 2014-03-25 International Business Machines Corporation Single-round password-based key exchange protocols
US8843737B2 (en) * 2011-07-24 2014-09-23 Telefonaktiebolaget L M Ericsson (Publ) Enhanced approach for transmission control protocol authentication option (TCP-AO) with key management protocols (KMPS)
US9497171B2 (en) 2011-12-15 2016-11-15 Intel Corporation Method, device, and system for securely sharing media content from a source device
CN104170312B (zh) * 2011-12-15 2018-05-22 英特尔公司 用于使用硬件安全引擎通过网络进行安全通信的方法和设备
US9825952B2 (en) * 2011-12-30 2017-11-21 Intel Corporation Secure machine to machine communication
WO2013116916A1 (en) * 2012-02-09 2013-08-15 Irdeto Canada Corporation System and method for generating and protecting cryptographic keys
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
KR101363290B1 (ko) 2012-08-30 2014-02-18 고려대학교 산학협력단 단말간 경량화된 인증된 키 공유방법
CN103414569B (zh) * 2013-08-21 2016-08-10 王威鉴 一种建立抗攻击的公钥密码的方法
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
FR3018378A1 (fr) * 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
US9485091B2 (en) 2014-05-01 2016-11-01 International Business Machines Corporation Dual-party session key derivation
US9380044B2 (en) * 2014-09-10 2016-06-28 Cisco Technology, Inc. Supporting differentiated secure communications among heterogeneous electronic devices
US10326590B2 (en) * 2014-11-11 2019-06-18 Intel Corporation Technologies for trusted device on-boarding
US9635021B2 (en) * 2014-12-18 2017-04-25 Intel Corporation Trusted ephemeral identifier to create a group for a service and/or to provide the service
CN105187205B (zh) * 2015-08-05 2018-05-15 北京航空航天大学 无证书的基于层次身份基的认证密钥协商方法和协商系统
US9584493B1 (en) 2015-12-18 2017-02-28 Wickr Inc. Decentralized authoritative messaging
US11153087B1 (en) 2015-12-29 2021-10-19 Amazon Technologies, Inc. Hub-based token generation and endpoint selection for secure channel establishment
US10411886B1 (en) 2015-12-29 2019-09-10 Amazon Technologies, Inc. Authenticating secure channel establishment messages based on shared-secret
US10097525B2 (en) * 2016-03-08 2018-10-09 Qualcomm Incorporated System, apparatus and method for generating dynamic IPV6 addresses for secure authentication
US10129026B2 (en) * 2016-05-03 2018-11-13 Certicom Corp. Method and system for cheon resistant static diffie-hellman security
KR20220088507A (ko) * 2016-05-04 2022-06-27 실비오 미칼리 분산 거래 전파 및 검증 시스템
US10630682B1 (en) 2016-11-23 2020-04-21 Amazon Technologies, Inc. Lightweight authentication protocol using device tokens
US10129223B1 (en) * 2016-11-23 2018-11-13 Amazon Technologies, Inc. Lightweight encrypted communication protocol
US10237063B2 (en) * 2016-12-13 2019-03-19 Nxp B.V. Distributed cryptographic key insertion and key delivery
SG10201701044SA (en) * 2017-02-09 2018-09-27 Huawei Int Pte Ltd System and method for computing private keys for self certified identity based signature schemes
US10355859B2 (en) 2017-03-27 2019-07-16 Certicom Corp. Method and system for selecting a secure prime for finite field diffie-hellman
CN107241321B (zh) * 2017-05-26 2018-03-16 陕西科技大学 一种个人医疗信息隐私保护方法
CN107204846B (zh) * 2017-05-31 2020-11-27 北京中金国信科技有限公司 数字签名生成方法、系统及节点模块
JP6896940B2 (ja) * 2017-06-14 2021-06-30 タレス ディアイエス フランス エスアー 第1のアプリケーションと第2のアプリケーションとの間の対称型相互認証方法
EP3651141B1 (en) * 2017-07-05 2021-12-08 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing device, secure computing method, program, and recording medium
CN107547199B (zh) * 2017-09-07 2019-12-20 华南师范大学 网上竞标系统完善前向安全可否认密钥交换协议实现方法
US10567165B2 (en) * 2017-09-21 2020-02-18 Huawei Technologies Co., Ltd. Secure key transmission protocol without certificates or pre-shared symmetrical keys
US20200304314A1 (en) * 2017-09-28 2020-09-24 Algorand Inc. Message-credentialed blockchains
US20190318118A1 (en) * 2018-04-16 2019-10-17 International Business Machines Corporation Secure encrypted document retrieval
US10708071B1 (en) 2018-07-12 2020-07-07 Protocol Labs, Inc. Consensus protocols in distributed computing systems
US11245528B1 (en) 2018-11-19 2022-02-08 Protocol Labs, Inc. Protocols for decentralized networks
US11570001B1 (en) 2018-07-12 2023-01-31 Protocol Labs, Inc. Protocols for decentralized networks
CN108847938A (zh) * 2018-09-29 2018-11-20 郑州云海信息技术有限公司 一种连接建立方法及装置
CN109743172B (zh) * 2018-12-06 2021-10-15 国网山东省电力公司电力科学研究院 基于联盟区块链v2g网络跨域认证方法、信息数据处理终端
CN109831312B (zh) * 2019-03-28 2022-04-19 深圳大学 可连接环签名方法、装置、设备以及存储介质
CN110149214B (zh) * 2019-06-06 2021-09-14 中国铁道科学研究院集团有限公司 无证书聚合签名的lte-r网络群组认证密钥协商方法
CN111447064B (zh) * 2020-03-06 2021-08-06 电子科技大学 一种适用于无证书加密的密码逆向防火墙方法
US11849043B2 (en) * 2020-11-13 2023-12-19 Sony Group Corporation Zero-knowledge authentication based on device information
CN113259094B (zh) * 2021-04-21 2022-03-25 山东大学 一种通用的层级签名加密系统与构建方法
CN113660083B (zh) * 2021-08-12 2023-08-04 云南电网有限责任公司信息中心 一种基于共有知识的对称密钥生成方法
CN114285546B (zh) * 2021-11-24 2023-12-12 淮阴工学院 一种可用于车载自组网络中的异构签密通信方法
EP4207684A1 (en) 2022-01-03 2023-07-05 Thales Dis France SAS Method for managing a remote server

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1761186A (zh) * 2005-11-11 2006-04-19 南京邮电大学 一种网络密钥分配方法
CN1806411A (zh) * 2003-04-11 2006-07-19 英特尔公司 交互式零知识证明协议

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0146437B1 (ko) * 1995-05-26 1998-09-15 조백제 인증교환 방법, 복원형 전자서명 방법, 부가형 전자서명 방법, 키교환 방법, 복원형 다중전자서명 방법, 부가형 다중전자서명 방법 및 블라인드 전자서명 방법
US5953420A (en) * 1996-10-25 1999-09-14 International Business Machines Corporation Method and apparatus for establishing an authenticated shared secret value between a pair of users
AU2004324546B2 (en) * 2004-10-29 2009-12-24 Thomson Licensing Secure authenticated channel
US7545932B2 (en) * 2004-10-29 2009-06-09 Thomson Licensing Secure authenticated channel
CN101175076B (zh) * 2007-10-23 2012-01-11 赵运磊 在线计算高效、可抵赖、不可锻造安全的密钥交换方法
CN101217549A (zh) * 2008-01-17 2008-07-09 赵运磊 高效、不可锻造、不需数字签名的ssh运输层认证协议
CN101247224A (zh) * 2008-01-10 2008-08-20 赵运磊 公钥承诺的并发不可锻造安全的mqv密钥交换协议
CN101247394A (zh) * 2008-01-10 2008-08-20 赵运磊 一种改进的密钥交换协议

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1806411A (zh) * 2003-04-11 2006-07-19 英特尔公司 交互式零知识证明协议
CN1761186A (zh) * 2005-11-11 2006-04-19 南京邮电大学 一种网络密钥分配方法

Also Published As

Publication number Publication date
HK1156750A1 (en) 2012-06-15
US8464060B2 (en) 2013-06-11
US20100205443A1 (en) 2010-08-12
WO2009056048A1 (en) 2009-05-07
CN102017510A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
CN102017510B (zh) 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构
EP1847062B1 (en) Challenge-response signatures and secure diffie-hellman protocols
Chang et al. A communication-efficient three-party password authenticated key exchange protocol
CN103563288B (zh) 基于口令的单轮密钥交换协议
CN105959269A (zh) 一种基于身份的可认证动态群组密钥协商方法
CN107342859A (zh) 一种匿名认证方法及其应用
CN101626364A (zh) 一类可基于口令、抗秘密数据泄露的认证和密钥交换方法
Saha et al. Consortium blockchain‐enabled access control mechanism in edge computing based generic Internet of Things environment
CN104301108A (zh) 一种从基于身份环境到无证书环境的签密方法
CN101175076B (zh) 在线计算高效、可抵赖、不可锻造安全的密钥交换方法
CN101977380A (zh) 一种无线Mesh网络认证方法
MacKenzie et al. Threshold password-authenticated key exchange
Zhang et al. Unbalancing pairing-free identity-based authenticated key exchange protocols for disaster scenarios
Abusukhon et al. An authenticated, secure, and mutable multiple‐session‐keys protocol based on elliptic curve cryptography and text‐to‐image encryption algorithm
CN101116281A (zh) 询问-应答签名和安全迪菲-海尔曼协议
Ruan et al. Provably leakage-resilient password-based authenticated key exchange in the standard model
Farash et al. A provably secure and efficient two‐party password‐based explicit authenticated key exchange protocol resistance to password guessing attacks
Chhikara et al. Construction of elliptic curve cryptography‐based authentication protocol for internet of things
Nkurunziza et al. ECAAP‐SG: Efficient certificateless anonymous authentication protocol for SG
Xia et al. Breaking and repairing the certificateless key agreement protocol from ASIAN 2006
Wang et al. Simulatable and secure certificate‐based threshold signature without pairings
CN101645870B (zh) 一类高效、公平的密钥交换方法
Cheng et al. Cryptanalysis and improvement of a certificateless encryption scheme in the standard model
Shao et al. Certificate‐based verifiably encrypted RSA signatures
Shao Certificate-based fair exchange protocol of signatures from pairings

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: YAO QIZHI

Free format text: FORMER OWNER: DING SUFEN

Effective date: 20111229

C41 Transfer of patent application or patent right or utility model
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Zhao Yunlei

Inventor after: Yao Qizhi

Inventor before: Zhao Yunlei

Inventor before: Ding Sufen

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHAO YUNLEI DING SUFEN TO: ZHAO YUNLEI YAO QIZHI

Free format text: CORRECT: ADDRESS; FROM: 200433 YANGPU, SHANGHAI TO: 100000 HAIDIAN, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20111229

Address after: 100000 theoretical computer science research center, Tsinghua University, Beijing, China

Applicant after: Yao Qizhi

Address before: 200433, No. 95, Lane 44, Su Jie Road, Yangpu District, Shanghai, China

Applicant before: Ding Sufen

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1156750

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: ZHAO YUNLEI

Free format text: FORMER OWNER: YAO QIZHI

Effective date: 20130305

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100000 HAIDIAN, BEIJING CITY TO: 200000 YANGPU, SHANGHAI

TA01 Transfer of patent application right

Effective date of registration: 20130305

Address after: 200000 No. 95, Lane 44, Su Jie Road, Shanghai, Yangpu District

Applicant after: Zhao Yunlei

Address before: 100000 theoretical computer science research center, Tsinghua University, Beijing

Applicant before: Yao Qizhi

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1156750

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130612

Termination date: 20171023

CF01 Termination of patent right due to non-payment of annual fee