CN101060530A - 可抵赖的互联网密钥交换协议 - Google Patents

可抵赖的互联网密钥交换协议 Download PDF

Info

Publication number
CN101060530A
CN101060530A CN 200710040999 CN200710040999A CN101060530A CN 101060530 A CN101060530 A CN 101060530A CN 200710040999 CN200710040999 CN 200710040999 CN 200710040999 A CN200710040999 A CN 200710040999A CN 101060530 A CN101060530 A CN 101060530A
Authority
CN
China
Prior art keywords
agreement
sid
mac
key
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200710040999
Other languages
English (en)
Inventor
赵运磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
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
Application filed by Individual filed Critical Individual
Priority to CN 200710040999 priority Critical patent/CN101060530A/zh
Publication of CN101060530A publication Critical patent/CN101060530A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于密码协议技术领域,具体为一种可抵赖的互联网密钥交换协议,可提供安全、高效且可抵赖的密钥交换服务,用于保护互联网上信息安全并兼顾用户隐私。协议实现方法为:将用户在协议每一次执行中的相关信息、用户关于自己私钥及其DH密钥成分的离散对数的证明等,用哈西函数H进行绑定,进而将H的输出作为消息认证码的密钥对用户的ID认证。用户发送的信息不涉及对方用户的ID及公钥。由用户ID及公钥参与计算的所有信息都可以由对方用户的DH密钥成分的离散对数计算出,而且用户在发送此类信息之前要求对方证明知道其DH密钥成分的离散对数。

Description

可抵赖的互联网密钥交换协议
技术领域
本发明属于密码协议,具体涉及一种可以抵赖的密钥交换协议,可用于互联网协议安全(Internet Protocol Security IPsec)标准中核心部分:互联网密钥交换(InternetKey-Exchange IKE)的替代(兼容)协议或下一代IKE标准的部分基础。提供安全,高效且可抵赖的密钥交换服务,可成为保护互联网上信息安全并兼顾用户隐私的核心密码协议。该协议亦可用于广义的密钥交换,不仅仅局限于用于互联网密钥交换。
背景技术
IKE国际标准已经经历了两代标准,当前标准(即:IKEv2)基于SIGMA密钥交换协议,使用电子签名加认证码(MAC)的方式提供信息的认证和密钥交换协议的安全。(IKEv2和SIGMA都是基于Diffie-Hellman密钥交换的。)但是,由于电子签名是不可抵赖的,因此IKEv2及SIGMA不能很好地保护用户的隐私。在很多应用中,比如互联网上的电子商务中,从隐私保护的角度,用户不希望他们的商务交易信息可以被追查到他们。另外,由于IKE运行在互联网的第三层(IP层)且IP层信息的传递主要使用用户的IP地址来进行,如果密钥交换协议对于用户的IP地址是不可抵赖的,那么,用户使用密钥交换协议所产生的会话密钥在网络高层(比如,应用层)的所有行为是可以追查到该用户的IP地址,因而不利于用户隐私的保护。
Stinson-Wu密钥交换协议需要用户事先知道彼此的身份信息,不能完全抵赖,且有多处安全漏洞。详细来说,Stinson-Wu协议运行如下(协议的初始化信息及用户的公钥同我们的协议):
第一轮(从A到B):{X=gx,H(gbx)}。
第二轮(从B到A):{Y=gy,H(gay×gxb)}。
第三轮(从A到B):{H(gya)}。
Stinson-Wu协议存在如下不足:
(1).用户需要在协议执行之前事先知道对方的身份信息(比如公钥)。但是,当协议在互联网IP层运行时,用户的身份可能事先并不能知道或确定,因为IP层信息的处理是通过用户的IP地址来进行的。
(2).Stinson-Wu协议不能做到完全的可抵赖。考虑如下情形:如果(X,gbx)或(X,H(gbx))由某个机构给予A,或是由A在网上收集或从Sinson-Wu协议的以前的历史执行中收集而来,那么在这些情形下,B不能否认(抵赖)第二轮信息的发送;类似地,如果(Y,gay)由某个机构给予B,或由B在网上收集而来,那么在此种情形下,A不能否认(抵赖)第三轮信息的发送。
(3).Stinson-Wu的模指数计算效率:除去信息的验证运算外,在Stinson-Wu协议中,每个用户需要作3个模指数运算:A计算gx,gbx及gya,B计算gy,gay×gxb
(4).Stinson-Wu协议存在若干安全漏洞:在Stinson-Wu协议中,用户发送的信息并没有与发送该信息的协议的执行(即:会话)进行绑定。另外,A的关于其DH密钥成分X的离散对数x的证明H(gbx)与关于其私钥的证明H(gya)是分开进行的,没有绑定。这使得Stinson-WU协议存在(甚至严重)的安全漏洞。一方面,Sinson-Wu协议不能抵抗反射(reflection)攻击;另一方面,Sinson-Wu协议不能有效抵抗“不知道密钥共享(unknownkey share UKS)”攻击:具体来讲,一个恶意敌手M可以向CA注册一个与用户A同样的公钥(注意,在Stinson-WU协议以及我们发明的协议中,公钥注册并不要求关于相应私钥的证明)。那么,使用UKS攻击,M可以冒充B将所有B发送的信息发送给A从而与A完成一次协议执行(会话),并使得A以为他与B完成了该会话;而同时M通过使用注册的与A的公钥相同的公钥并将A发送的信息发送给B,又与B完成一个会话使得这两个会话生成了相同的会话密钥。假设A为网上银行客户,B为网上银行服务器,那么所有A做出的关于金钱的交易请求都被银行认为是由M发出的。这显示此类UKS攻击在现实中可能导致危险的后果。
(5).在Stinson-Wu协议中,用户A发送的信息不仅需要自己的公钥参与计算,而且对方B的公钥亦要参与计算;同样地,用户B发送的信息既需要自己的公钥同时亦需要对方A的公钥参与计算。这违背IKE的隐私保护策略,即:一个用户发送的信息不应该包含对方用户的身份信息(比如公钥)。
发明内容
本发明的目的在于提供一种安全、高效且可抵赖的互联网密钥交换协议。
本发明提出的可抵赖的互联网密钥交换协议,可用于互联网协议安全(InternetProtocol Security IPsec)标准中核心部分:互联网密钥交换(Internet Key-Exchange IKE)的替代(兼容)协议或下一代IKE标准的部分基础。提供安全,高效且可抵赖的密钥交换服务,可成为保护互联网上信息安全并兼顾用户隐私的核心密码协议。该协议亦可用于广义的密钥交换,不仅仅局限于用于互联网密钥交换。发明协议具有如下特点:
(1).在密钥交换协议运行的初始,用户彼此可能不知道对方的身份(ID)及其公钥。这利于协议运行在互联网的IP层。注意:IP层信息的传递可能仅仅使用用户的IP地址来进行,而并不知道用户的真实ID信息及公钥。
(2).任何一个用户所发出的信息均不包含对方(peer)用户的ID及公钥信息,这便于协议运行在网络的IP层,对于保护对方用户的隐私而言是公平的。
(3).每一个用户均可有效地抵赖他曾经发出的信息。由用户ID及公钥参与计算的所有信息都可以由对方用户的DH密钥成分的离散对数计算出;而且用户在发送由自己ID及公钥参于计算的信息之前,要求对方先向其证明对方用户的确知道对方用户自己DH密钥成分的离散对数。这可以提供完全的可抵赖安全性,非常有利于用户隐私保护。比如:使用我们发明协议生成的密钥所进行的(可能在网络应用层的)通讯及电子交易都是可以抵赖的。
(4).通过把用户ID、公钥、协议会话信息(比如用户在协议每一次运行中的角色:初始者或响应者等),及关于自己私钥及DH密钥成分离散对数的证明用哈西函数进行绑定;进而将哈西函数的输出作为信息认证码MAC的密钥对用户的身份ID进行认证从而进一步绑定;我们发明的协议可以有效抵抗各种(甚至不可预期)的并发中间人攻击。特别地,运行我们发明协议所产生的密钥可用于建立安全且可抵赖的通信信道。
本发明的系统工作环境为:
(1).系统参数:(p,q,g,H),其中p和q为大素数,并且q能整除p-1,g是一个Z* p中阶(order)为q的元素,使得在Z* p中由g定义的子群上离散对数(discrete logarithmDL)及计算Diffie-Hellman(computational Diffie-Hellman CDH)问题是难的。所有的指数及乘法运算是模(mod)p运算,加法为模(mod)q运算。其中,Z* p指的是所有比p小并与p互素的正整数的集合,即Z* p={1,2,…,p-1};Zq={0,1,…,q-1}。定义函数f:Zq→Z* p,使得y=f(w)=gw mod p。w称为y的离散对数。我们要求给定随机计算出的y,没有多项式时间算法计算出y的离散对数w,这称为离散对数问题。计算Diffie-Hellman问题指的是:给定随机的gx与gy,没有多项式时间算法计算出gxy;一般而言,对于熟悉本领域的人而言,离散对数问题及计算Diffie-Hellman问题也可以定义在由椭圆曲线或双线性对(bilineartity)定义的群上;(p,q,g,H)既可以是全局或部分全局性的公共参数,亦可以由任意一对执行该协议的用户进行协商。
(2).协议基于Diffie-Hellman密钥交换协议。我们记X=gx为用户A的DH密钥成分(Diffie-Hellman key component),x为DH密钥成分X的离散对书;记Y=gy为B的DH密钥成分,y为DH密钥成分Y的离散对数。其中,x与y从Zq={0,1,…,q-1}中随机选取。
(3).每一个用户,比如具有身份(identity ID)“A”的用户A有一个公钥ga,其中a由A在Zq中随机选取。相应地,具有ID“B”的用户B的公钥记为gb,以此类推。
(4).有一个可信的证书权威机构(CA),颁发证书CERT,用于将用户的身份及其相应公钥,比如:(A,ga),进行可公开验证的绑定。一般而言,绑定用CA的电子签名实现。
(5).协议的每一次执行成为一个会话(session)。我们假定协议的每一次执行(即,每一次会话)有一个标示号(session-identifier):sid,用于标记并发运行的协议执行。sid的制定和协商可随协议的运行环境不同而有所变化:比如sid可以是协议运行两方发送的两个随机串的合并连接;在某些环境中sid可在协议运行过程中产生;在某些环境中当会话可由语境自动标示时sid亦可省略,例如在某些密钥交换应用中(gx,gy)可兼当会话标示号。
本发明协议的实现方法:将用户在协议每一次执行(会话)的相关信息(比如:sid、用户角色(协议初始者initiator或协议响应者responder)等),用户关于自己私钥及其DH密钥成分的离散对数(即:x或y)的证明,用哈西函数H进行绑定,进而将H的输出作为信息认证码(MAC)的密钥对用户的身份ID进行认证从而进一步绑定。每一个用户发送的信息不涉及对方用户的ID及对方用户的公钥。由用户ID及公钥参与计算的所有信息都可以由对方用户的DH密钥成分的离散对数(即x或y)计算出;而且用户在发送由自己ID及公钥参于计算的信息之前,要求对方先向其证明对方用户的确知道对方用户自己的DH密钥成分的离散对数(即:通过使用输入包含Yx或Xy的哈希函数的输出为MAC密钥的关于自己ID的MAC认证来进行证明)。这可以提供完全的可抵赖安全性。
本发明协议的具体实现步骤:根据IPsec标准中的两种模式:主要模式和进取模式,两个用户A和B之间的协议运行如下。在下述协议描述中,大括号内的值表示发送的信息;注意A的公钥是ga并具有CA颁发的证书CERTA,B的公钥是gb并具有CA颁发的证书CERTB;假设A为协议运行初始者,B为协议运行响应者;用户在协议每一次执行中的角色由DH密钥成分的顺序标示,即:(X,Y)标示协议的初始者,(Y,X)标示协议的相应者;协议的输出,即会话密钥K,由一个密钥导出函数KDF来定义K=KDF(H(gxy),·);·表示二元函数KDF中的一个变元;密钥导出函数KDF可随应用的不同而不同;
协议-1:在IKE主要模式下的运行:
第一轮,从A到B:{sid,X=gx(mod p)},其中x从Zq中随机选取;X称为A的DH密钥成分;收到A发送的信息后,B验证X为非1且阶为q的Z* p中的元素;验证不成功,B拒绝继续执行协议,否则,进入下一轮;
第二轮,从B到A: { sid , B , Y = g y , C ( B , y ) = MAC H ( sid , Y , X , X y ) ( B ) } , 即:将H(sid,Y,X,Xy)作为MAC的密钥对B的ID进行认证;具体来讲,H的输入是(sid,Y,X,Xy)的合并连接,用sid||Y||X||Xy来表示,下同;y从Zq中随机选取且Y称为B的DH密钥成分;收到B发送的信息后,A验证Y为非1且阶为q的Z* p中的元素,且利用x验证 C ( B , y ) = MAC H ( sid , Y , X , Y x ) ( B ) ; 验证不成功,A拒绝继续执行协议,否则,进入下一轮;
第三轮,从A到B: { sid , ( A , CERT A ) , C ( a , x ) = MAC H ( sid , X , Y , Y a , Y x ) ( A ) } , 即:将H(sid,X,Y,Ya,Yx)作为MAC的密钥对A的ID进行认证;收到A发送的信息后,B利用CERTA验证A的身份及其公钥ga为非1且阶q的Z* p中的元素,并利用y验证 C ( a , x ) = MAC H ( sid , X , Y , g ay , g xy ) ( A ) ; 验证不成功,B拒绝继续执行协议,否则,B利用KDF计算出相应的会话密钥K,并进入下一轮;
第四轮,从B到A: { sid , CERT B , C ( b , y ) = MAC H ( sid , Y , X , X b , X y ) ( B ) } , 即:将H(sid,Y,X,Xb,Xy)作为MAC的密钥对B的ID进行认证;收到B发送的信息后,A利用CERTB验证B的身份及其公钥gb为非1阶q的Z* p中的元素,且利用x验证 C ( b , y ) = MAC H ( sid , Y . X , g bx , g yx ) ( B ) ; 验证不成功,A中止该次协议的运行,否则,A利用KDF计算出相应的会话密钥K;
协议-2:在IKE进取模式下的运行:
第一轮,从A到B:{sid,X=gx},其中x从Zq中随机选取;收到A发送的信息后,B验证X为非1且阶为q的Z* p中的元素;验证不成功,B拒绝继续执行协议,否则,进入下一轮;
第二轮,从B到A: { sid , ( B , CERT B ) , Y = g y , C ( b , y ) = MAC H ( sid , Y , X , X b , X y ) ( B ) } , 其中y从Zq中随机选取;收到B发送的信息后,A验证B的身份,Y及公钥gb为非1且阶q的Z* p中的元素,并利用x验证 C ( b , y ) = MAC H ( sid , Y , X , g bx , g yx ) ( B ) ; 验证不成功,A拒绝继续执行协议,否则,A利用KDF计算出相应的会话密钥K,并进入下一轮;
第三轮,从A到B: { sid , ( A , CERT A ) , C ( a , x ) = MAC H ( sid , X , Y , Y a , Y x ) ( A ) } ; 收到A发送的信息后,B验证A的身份及其公钥ga为非1且阶q的Z* p中的元素,并利用y验证 C ( a , x ) = MAC H ( sid , X , Y , g ay , g xy ) ( A ) ; 验证不成功,B中止该次协议执行,否则,利用KDF计算出会话密钥K;
本发明中,协议-1和协议-2还可有如下变体:
(1).可将MAC输入中的用户ID同时放入生成该MAC密钥的H的输入中;
(2).对于不同的函数f,将(Xb,Xy)替换成f(Xb,Xy),以及将(Ya,Yx)替换成f(Ya,Yx);比如:f(c,d)=cd mod p,或f(c,d)=c×d mod p,其中c与d是Z* p中的元素;
(3).将H的输入中的部分与协议执行相关的公开信息,(sid,X,Y)和(sid,Y,X),同时分别放入由A和B计算和发送的MAC的输入之中;
(4).协议1和2与IKEv2或SIGMA协议兼容;具体来讲,MACH(sid,X,Y,Y(a+x mod q))(A)或MACH(sid,Y,X,X(b+y mod q))(B)替换为IKEv2或SIGMA中利用签名与MAC的认证方式;
(5).在将MAC的输入同时放入H的输入的前提下,将部分或全部MAC去掉,只用哈西函数进行绑定;
(6).在协议-1第三轮中可将CERTA放入MAC的输入中并在第四轮将CERTB放入MAC的输入中;在协议-2第二轮将CERTB放入MAC的输入中并在第三轮将CERTA放入MAC的输入中;
(7).在第一轮中A将其ID发送给B,在随后的MAC信息中,B将(B,A)作为哈西函数H的输入一部分,A将(A,B)作为哈西函数H的输入一部分;
本发明中,协议-1及协议-2中蕴含如下子协议:
协议-3:可抵赖消息认证:设A向B认证某个信息m,m可以是一个文件或是用户的身份ID,A的公钥是ga并具有证书CERTA,B不一定有公钥;在下述协议描述中,协议发送信息正确性的验证同协议1和2;
第一轮,从A到B:{sid,X=gx};
第二轮,从B到A: { sid , B , Y = g y , MAC H ( sid , B , Y , X , X y ) ( B ) } ;
第三轮(从A到B): { sid , ( A , CERT A ) , m , MAC H ( sid , A , X , Y , Y a ) ( m ) } ;
本发明中,可抵赖的消息认证协议-3可以应用于具有私钥知识证明的网上公钥注册系统:
协议-4:设用户B向可信公钥注册认证机构CA注册公钥PKB=gb,CA有一个签名公钥PKCA及相应私钥SKCA
第一轮,从Ca到B:{sid,X=gx};
第二轮,从B到CA: { sid , B , PK B = g b , C ( B , b ) = MAC H ( sid , B , CA , g b , X , X b ) ( B ) } ;
第三轮,从CA到B: { sid , CERT B = Sig SK CA ( B , PK B ) ,
C ( CA , x ) = MAC H ( sid , CA , B , X , g h , g bx ) ( CERT B ) } .
具体实施方式
假设,用户A的公钥是ga并具有证书CERTA,B的公钥是gb并具有证书CERTB。证书CERTA指的是CA给A的证明,其余同。提示:证书不一定必须与ID信息同时发送,可由具体的应用环境调整。我们假设A为协议运行初始者(initiator),B为协议运行响应者(responder)。用户在协议执行(会话)中的角色由DH密钥成分的顺序标示,即:(X,Y)标示协议的初始者,(Y,X)标示协议的相应者。协议的输出(即密钥)由一个密钥导出函数(key derivation function KDF)来定义K=KDF(H(gxy),·)。KDF是一个二元函数,H(gxy)作为一元,另一元可随应用的不同而不同,比如:另一元可以是一个数值亦可以是一个字符串,甚至是空值。KDF可随应用的不同而不同。若干例子为,KDF为一个伪随机函数(pseudorandom function PRF),K=PRF(H(gxy),0)或K=PRF(H(gxy),X||Y),其中X||Y表示X与Y的顺序连接,或KDF仅仅输出H(gxy)或H(sid,X,Y,A,B,gxy),等等。
在下述协议具体实施中,伪随机函数PRF及消息认证码MAC采用由IETF(InternetEngineering Task Force)所公布的第2104号互联网意见征求文档(Internet RFC 2104)中所描述的HMAC认证码。HMAC只需作两个哈西运算,并被证明既是消息认证码又是伪随机函数。在协议具体实施中,HMAC由SHA-1哈西函数来实现。在下述协议具体实施中,密钥导出函数为:HMAC(H(gxy),sid)。
根据IPsec标准中的两种模式:主要模式(main model)和进取模式(aggressivemodel),两个用户A和B之间的协议具体运行步骤如下:
协议-1在IKEv2主要模式下的具体实施方式:
当协议-1在IKEv2主要模式下具体实施时,会话标示符sid是由协议运行两方在协议-1运行之前发送的两个随机串的合并连接构成。因此,发明协议在IKEv2主要模式下的具体实施运行六轮。注意,目前的IKEv2标准在主要模式下亦运行六轮。
第一轮,从A到B:{RA},其中RA是一个32位随机0-1串。B验证RA的有效性(即:RA是一个32位0-1串)。
第二轮,从B到A:{RB},RB是与RA相同长度的随机0-1串。B将sid设为RA||RB(即RA与RB的合并连接);A收到RB后验证RB的有效性(即:RB是一个32位0-1串),并将sid设为RA||RB
第三轮,从A到B:{RA||RB,X=gx(mod p)},其中x从Zq中随机选取。X称为A的DH密钥成分。收到A发送的信息后,B验证sid的有效性(即:RA与RB的正确合并连接)、且X为非1且阶为q的Z* p中的元素。验证不成功,B拒绝继续执行协议,否则(即验证成功),进入下一轮。
第四轮,从B到A: { R A | | R B , B , Y = g y , C ( B , y ) = HM AC H ( R A | | R B , Y , X , X y ) ( B ) } (即:将H(RA||RB,Y,X,Xy)作为HMAC的密钥对B的ID进行认证,提供两重绑定)。y从Zq中随机选取且Y称为B的DH密钥成分。收到B发送的信息后,A验证sid(即:RA||RB)的有效性、Y为非1且阶为q的Z* p中的元素、且利用x验证 C ( B , y ) = HMAC H ( R A | | R B , Y , X , Y x ) ( B ) . 验证不成功,A拒绝继续执行协议,否则(即验证成功),进入下一轮。
第五轮,从A到B: { R A | | R B , ( A , CERT A ) , C ( a , x ) = HMAC H ( R A | | R B , X , Y , Y a , Y x ) ( A ) } (即:将H(RA||RB,X,Y,Ya,Yx)作为HMAC的密钥对A的ID进行认证)。收到A发送的信息后,B验证sid(即:RA||RB)的有效性、利用CERTA验证A的身份及其公钥ga为非1且阶q的Z* p中的元素、并利用y验证 C ( a , x ) = HMAC H ( R A | | R B , X , Y , g ay , g xy ) ( A ) . 验证不成功,B拒绝继续执行协议,否则(即验证成功),B计算出相应的会话密钥K=HMAC(H(gxy),RA||RB),并进入下一轮。
第六轮,从B到A: { R A | | R B , CERT B , C ( b , y ) = HMAC H ( R A | | R B , Y , X , X b , X y ) ( B ) } (即:将H(RA||RB,Y,X,Xb,Xy)作为HMAC的密钥对B的ID进行认证)。收到B发送的信息后,A验证sid(即:RA||RB)的有效性、利用CERTB验证B的身份及其公钥gb为非1阶q的Z* p中的元素、且利用x验证 C ( b , y ) = HMAC H ( R A | | R B , Y , X , g bx , g yx ) ( B ) . 验证不成功,A中止(abort)该次协议的运行,否则(即验证成功),A计算出相应的会话密钥K=HMAC(H(gxy),RA||RB)。
协议-2在IKE进取模式下的具体实施方式:
当协议-2在IKEv2主要模式下具体实施时,会话标示符sid是由协议运行两方在协议-2运行过程中发送的两个随机串的合并连接构成。因此,发明协议在IKEv2进取模式下的具体实施仍运行三轮。注意,目前的IKEv2标准在进取模式下亦运行三轮。
第一轮,从A到B:{RA,X=gx},其中x从Zq中随机选取,RA为32-位的随机0-1串。收到A发送的信息后,B验证RA的有效性(即:RA是一个32位0-1串)、且X为非1且阶为q的Z* p中的元素。验证不成功,B拒绝继续执行协议,否则(即验证成功),进入下一轮。
第二轮,从B到A: { R A | | R B , ( B , CERT B ) , Y = g y , C ( b , y ) = HMAC H ( R A | | R B , Y , X , X b , X y ) ( B ) } , 其中y从Zq中随机选取,RB为32-位的随机0-1串。B将sid设为RA||RB;收到B发送的信息后,A验证sid的有效性(即:sid的长度为64位且前32位为RA)、利用CERTB验证B的身份、Y及公钥gb为非1且阶q的Z* p中的元素、并利用x验证 C ( b , y ) = HMAC H ( R A | | R B , Y , X , g bx , g yx ) ( B ) . 验证不成功,A拒绝继续执行协议,否则(即验证成功),A计算出相应的会话密钥K=HMAC(H(gxy),RA||RB),并进入下一轮。
第三轮,从A到B: { R A | | R B , ( A , CERT A ) , C ( a , x ) = HMAC H ( R A | | R B , X , Y , Y a , Y x ) ( A ) } . 收到A发送的信息后,B验证sid(即:RA||RB)的有效性、利用CERTA验证A的身份及其公钥ga为非1且阶q的Z* p中的元素、并利用y验证 C ( a , x ) = HMAC H ( R A | | R B , X , Y , g ay , g xy ) ( A ) . 验证不成功,B中止该次协议执行,否则(即验证成功),计算出会话密钥K=HMAC(H(gxy),RA||RB)。
协议1和2变体的具体实施:
在应用中,可对协议1和2作如下一项或多项改造:
(1).可将MAC输入中的用户ID同时放入生成该MAC密钥的H的输入中。
(2).广义而言,对于不同的函数f,将(Xb,Xy)替换成f(Xb,Xy),以及将(Ya,Yx)替换成f(Ya,Yx);注意,协议1和2的实现使用的是一个特殊的函数:f(c,d)=(c,d)。特别地,我们可以使用函数:f(c,d)=cd mod p,或f(c,d)=c×d mod p,其中c与d是Z* p中的元素;此时,(gxb||gxy)将被替换成gxbgxy或gxb×gxy=X(b+y mod q),(gya||gyx)亦可作同样的替换。
(3).将H的输入中的部分与协议执行相关的公开信息,(sid,X,Y)和(sid,Y,X),同时分别放入由A和B计算和发送的MAC的输入之中;即:将(sid,X,Y)同时放入由A计算和发送的MAC的输入之中,将(sid,Y,X)同时放入由B计算和发送的MAC的输入之中。
(4).在现实应用中,上述协议可与IKEv2或SIGMA协议兼容。具体来讲,MACH(sid,X,Y,Y(a+x mod q))(A)或MACH(sid,Y,X,X(b+y mod q))(B)可替换为IKEv2或SIGMA中利用签名加MAC的认证方式。这种兼容方式主要用在用户不具有离散对数公钥,或仅有签名公钥的情形。
(5).在将MAC的输入同时放入H的输入的前提下,将部分或全部MAC去掉,只用哈西函数进行绑定;
(6).在协议-1第三轮中可将CERTA放入MAC的输入中并在第四轮将CERTB放入MAC的输入中;在协议-2第二轮将CERTB放入MAC的输入中并在第三轮将CERTA放入MAC的输入中;
(7).在第一轮中A将其ID(可附证书CERTA)发送给B,在随后的MAC信息中,B可将(B,A)作为哈西函数H的输入一部分,A可将(S,B)作为哈西函数H的输入一部分。该变体可用在用户对隐私保护要求不高的环境中。
在具体实施中,推荐和鼓励同时使用如下变体:变体(1)+变体(3)+变体(6);如果用户对隐私要求不高,同时使用变体(7)。
协议-3的具体实施:
设A向B认证某个信息m,m可以是一个文件或是用户的身份ID,A的公钥是ga并具有证书CERTA,B不一定有公钥;我们描述sid在协议-3运行过程中产生时的具体实施方式:
第一轮,从A到B:{RA,XC=gx},其中x从Zq中随机选取,RA为32-位的随机0-1串。收到A发送的信息后,B验证RA的有效性(即:RA是一个32位0-1串)、且X为非1且阶为q的Z* p中的元素。验证不成功,B拒绝继续执行协议,否则(即验证成功),进入下一轮。
第二轮,从B到A: { R A | | R B , B , Y = g y , C ( B , y ) = HMAC H ( R A | | R B , B , Y , X , X y ) ( B ) } , 其中y从Zq中随机选取,RB为32-位的随机0-1串。B将sid设为RA||RB;收到B发送的信息后,A验证sid的有效性(即:sid的长度为64位且前32位为RA)、验证Y为非1且阶q的Z* p中的元素、并利用x验证 C ( B , y ) = HMAC H ( R A | | R B , B , Y , X , Y x ) ( B ) . 验证不成功,A拒绝继续执行协议,否则(即验证成功),进入下一轮。
第三轮,从A到B: { sid , ( A , CER T A ) , m , C ( a , m ) = HMAC H ( R A | | R B , A , X , Y , Y a ) ( m ) } ; 收到A发送的信息后,B验证sid(即:RA||RB)的有效性、利用CERTA验证A的身份及其公钥ga为非1且阶q的Z* p中的元素、并利用y验证 C ( a , m ) = HMAC H ( R A | | R B , A , X , Y , g ay ) ( m ) . 验证不成功,B中止该次协议执行,否则(即验证成功),B认可m的确由A发送。
协议-4的具体实施:
设用户B向可信公钥注册认证机构CA注册公钥PKB=gb,CA有一个签名公钥PKCA及相应签名私钥SKCA
第一轮,从CA到B:{RA,X=gx},其中x从Zq中随机选取,RA为32-位的随机0-1串。收到A发送的信息后,B验证RA的有效性(即:RA是一个32位0-1串)、且X为非1且阶为q的Z* p中的元素。验证不成功,B拒绝继续执行协议,否则(即验证成功),进入下一轮。
第二轮,从B到CA: { R A | | R B , B , PK B = g b , C ( B , b ) MAC H ( R A | | R B , B , CA , g b , X , X b ) ( B ) } , 其中RB为32-位的随机0-1串。B将sid设为RA||RB;收到B发送的信息后,CA验证sid的有效性(即:sid的长度为64位且前32位为RA)、验证gb为非1且阶q的Z* p中的元素、并利用x验证 C ( B , b ) = HMAC H ( R A | | R B , B , CA , g b , X , g bx ) ( B ) . 验证不成功,CA拒绝继续执行协议,否则(即验证成功),进入下一轮。
第三轮,从CA到B: { sid , CERT B = Sig SK CA ( B , P K B ) C ( CA , x ) = MAC H ( R A | | R B , CA , B , X , g b , g bx ) ( CERT B ) } ; 收到A发送的信息后,B验证sid(即:RA||RB)的有效性、利用CA的签名公钥PKCA验证CERTB的有效性、并利用b验证 C ( CA , x ) = MAC H ( R A | | R B , CA , B , X , g b , g xb ) ( CERT B ) . 验证不成功,B中止该次协议执行,否则(即验证成功),B认可CERTB的有效性,即:CERTB的确由CA产生并发送。
在协议-4的具体实施中,X=gx可以作为CA公钥的一部分,从而减少计算及通讯复杂性;在某些情况下,第三轮中的 C ( CA , x ) = MAC H ( R A | | R B , CA , B , X , g b , g bx ) ( CERT B ) 亦可省略,以使协议运行更为高效;在具体实施中,关于协议-1与协议-2的变体亦可作用于协议-3与协议-4。

Claims (5)

1.一种可抵赖的互联网密钥交换协议,其特征在于:
系统工作环境为:
(1).系统参数:(p,q,g,H),其中p和q为大素数,并且q能整除p-1,g是一个Z* p中阶为q的元素,使得在Z* p中由g定义的子群上离散对数DL及计算Diffie-Hellman CDH问题是难的;所有的指数及乘法运算是mod p运算,加法为mod q运算;这里,Z* p={1,2,…,p-1};
(2).协议基于Diffie-Hellman密钥交换协议;记X=gx为用户A的DH密钥成分,x为DH密钥成分X的离散对数;记Y=gy为B的DH密钥成分,y为DH密钥成分Y的离散对数;
(3).具有身份ID“A”的用户A有一个公钥ga,其中a由A在Zq中随机选取;相应地,具有ID“B”的用户B的公钥记为gb,以此类推;这里,Zq={0,1,2,…,q-1};
(4).有一个可信的证书权威机构CA,颁发证书CERT,用于将用户的身份及其相应公钥,比如:(A,ga),进行可公开验证的绑定;绑定用CA的电子签名实现;
(5).假定协议的每一次执行有一个标示号:sid,用于标记并发运行的协议执行;sid的制定和协商可随协议的运行环境不同而有所变化;
协议实现方法为:将用户关于自己私钥及其DH密钥成分的离散对数的证明,用户在协议每一次执行的相关信息,包括:sid、用户角色、DH密钥成分等,用哈西函数H进行绑定,进而将H的输出作为信息认证码MAC的密钥对用户的身份ID进行认证从而进一步绑定;每一个用户发送的信息不涉及对方用户的ID及对方用户的公钥;由用户ID及公钥参与计算的所有信息都可由对方用户的DH密钥成分的离散对数计算出;而且用户在发送由自己ID及公钥参于计算的信息之前,要求对方先向其证明对方用户的确知道对方用户自己DH密钥成分的离散对数,即:通过使用输入包含Yx或Xy的哈希函数的输出为MAC密钥的关于自己ID的MAC认证来进行证明。
2.根据权利要求1所述的可抵赖的互联网密钥交换协议,其特征在于协议的实现步骤为:
在下述协议描述中,大括号内的值表示发送的信息;注意A的公钥是ga并具有CA颁发的证书CERTA,B的公钥是gb并具有CA颁发的证书CERTB;假设A为协议运行初始者,B为协议运行响应者;用户在协议每一次执行中的角色由DH密钥成分的顺序标示,即:(X,Y)标示协议的初始者,(Y,X)标示协议的相应者;协议的输出,即会话密钥K,由一个密钥导出函数KDF来定义K=KDF(H(gxy),·),  ·表示二元函数KDF中的一个变元;密钥导出函数KDF可随应用的不同而不同;
根据IPsec标准中的两种模式:主要模式和进取模式,两个用户A和B之间的协议运行如下:
协议-1:在IKE主要模式下的运行:
第一轮,从A到B:{sid,X=gx(mod p)},其中x从Zq中随机选取;X称为A的DH密钥成分;收到A发送的信息后,B验证X为非1且阶为q的Z* p中的元素;验证不成功,B拒绝继续执行协议,否则,进入下一轮;
第二轮,从B到A: { sid , B , Y = g Y , C ( B , y ) = MAC H ( sid , Y , X , X y ) ( B ) } , 即:将H(sid,Y,X,Xy)作为MAC的密钥对B的ID进行认证;y从Zq中随机选取且Y称为B的DH成分;收到B发送的信息后,A验证Y为非1且阶为q的Z* p中的元素,且利用x验证 C ( B , y ) = MAC H ( sid , Y , X , Y x ) ( B ) ; 验证不成功,A拒绝继续执行协议,否则,进入下一轮;
第三轮,从A到B: { sid , ( A , CERT A ) , C ( a , x ) = MAC H ( sid , X , Y , Y a , Y x ) ( A ) } , 即:将H(sid,X,Y,Ya,Yx)作为MAC的密钥对A的ID进行认证;收到A发送的信息后,B利用CERTA验证A的身份及其公钥ga为非1且阶q的Z* p中的元素,并利用y验证 C ( a , x ) = MAC H ( sid , X , Y , g ay , g xy ) ( A ) ; 验证不成功,B拒绝继续执行协议,否则,B利用KDF计算出相应的会话密钥K,并进入下一轮;
第四轮,从B到A: { sid , CERT B , C ( b , y ) = MAC H ( sid , Y , X , X b , X y ) ( B ) } , 即:将H(sid,Y,X,Xb,Xy)作为MAC的密钥对B的ID进行认证;收到B发送的信息后,A利用CERTB验证B的身份及其公钥gb为非1阶q的Z* p中的元素,且利用x验证 C ( b , y ) = MAC H ( sid , Y , X , g bx , g yx ) ( B ) ; 验证不成功,A中止该次协议的运行,否则,A利用KDF计算出相应的会话密钥K;
协议-2:在IKE进取模式下的运行:
第一轮,从A到B:{sid,X=gx),其中x从Zq中随机选取;收到A发送的信息后,B验证X为非1且阶为q的Z* p中的元素;验证不成功,B拒绝继续执行协议,否则,进入下一轮;
第二轮,从B到A: { sid , ( B , CERT B ) , Y = g Y , C ( b , y ) = MAC H ( sid , Y , X , X b , X v ) ( B ) } , 其中y从Zq中随机选取;收到B发送的信息后,A验证B的身份,Y及公钥gb为非1且阶q的Z* p中的元素,并利用x验证 C ( b , y ) = MAC H ( sid , Y , X , g bx , g yx ) ( B ) ; 验证不成功,A拒绝继续执行协议,否则,A利用KDF计算出相应的会话密钥K,并进入下一轮;
第三轮,从A到B: { sid , ( A , CERT A ) , C ( a , x ) = MAC H ( sid , X , Y , Y a , Y x ) ( A ) } ; 收到A发送的信息后,B验证A的身份及其公钥ga为非1且阶q的Z* p中的元素,并利用y验证 C ( a , x ) = MAC H ( sid , X , Y , g ay , g xy ) ( A ) ; 验证不成功,B中止该次协议执行,否则,利用KDF计算出会话密钥K。
3.根据权利要求2所述的可抵赖的互联网密钥交换协议,其特征在于协议-1及协议-2有如下的变体:
(1).可将MAC输入中的用户ID同时放入生成该MAC密钥的H的输入中;
(2).对于不同的函数f,将(Xb,Xy)替换成f(Xb,Xy),以及将(Ya,Yx)替换成f(Ya,Yx);
(3).将H的输入中的部分与协议执行相关的公开信息,(sid,X,Y)和(sid,Y,X),同时分别放入由A和B计算和发送的MAC的输入之中;
(4).协议1和2与IKEv2或SIGMA协议兼容;具体来讲, MAC H ( sid , X , Y , Y ( a + x mod q ) ) ( A ) MAC H ( sid , Y , X , X ( b + y mod q ) ) ( B ) 替换为IKEv2或SIGMA中利用签名与MAC的认证方式;
(5).在将MAC的输入同时放入H的输入的前提下,将部分或全部MAC去掉,只用哈西函数进行绑定;
(6).在协议-1第三轮中可将CERTA放入MAC的输入中并在第四轮将CERTB放入MAC的输入中;在协议-2第二轮将CERTB放入MAC的输入中并在第三轮将CERTA放入MAC的输入中;
(7).在第一轮中A将其ID发送给B,在随后的MAC信息中,B将(B,A)作为哈西函数H的输入一部分,A将(A,B)别作为哈西函数H的输入一部分。
4.根据权利要求2所述的可抵赖的互联网密钥交换协议,其特征在于在所述协议-1及协议-2中蕴含如下子协议:
协议-3:可抵赖消息认证:设A向B认证某个信息m,m可以是一个文件或是用户的身份ID,A的公钥是ga并具有证书CERTA,B不一定有公钥;在下述协议描述中,协议发送信息正确性的验证同协议1和2:
第一轮,从A到B:{sid,X=gx}:
第二轮,从B到A: { sid , B , Y = g Y , C ( B , y ) = MAC H ( sid , B , Y , X , X y ) ( B ) } ;
第三轮,从A到B: { sid , ( A , CERT A ) , Bm , C ( a , m ) = MAC H ( sid , A , X , Y , Y a ) ( m ) } ;
5.根据权利要求4所述的可抵赖的互联网密钥交换协议,其特征在于协议-3有如下应用:协议-4:具有私钥知识证明的网上公钥注册系统:设用户B向可信公钥注册认证机构CA注册公钥PKB=gb,CA有一个签名公钥PKCA及相应私钥SKCA
第一轮,从CA到B:{sid,X=gx};
第二轮,从B到CA: { sid , B , PK B = g b , C ( B , b ) = MAC H ( sid , B , CA , g b , X , X b ) ( B ) } ;
第三轮,从CA到B: { sid , CERT B = Sig SK CA ( B , PK B )
C ( CA , x ) = MAC H ( sid , CA , B , X , g b , g bx ) ( CERT B ) } .
CN 200710040999 2007-05-22 2007-05-22 可抵赖的互联网密钥交换协议 Pending CN101060530A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200710040999 CN101060530A (zh) 2007-05-22 2007-05-22 可抵赖的互联网密钥交换协议

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200710040999 CN101060530A (zh) 2007-05-22 2007-05-22 可抵赖的互联网密钥交换协议

Publications (1)

Publication Number Publication Date
CN101060530A true CN101060530A (zh) 2007-10-24

Family

ID=38866413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200710040999 Pending CN101060530A (zh) 2007-05-22 2007-05-22 可抵赖的互联网密钥交换协议

Country Status (1)

Country Link
CN (1) CN101060530A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009076811A1 (zh) * 2007-12-14 2009-06-25 Huawei Technologies Co., Ltd. 密钥协商方法、用于密钥协商的系统、客户端及服务器
CN101252577B (zh) * 2008-04-17 2010-08-04 电子科技大学 一种三方密钥协商产生方法
CN101645870B (zh) * 2008-08-07 2013-04-17 赵运磊 一类高效、公平的密钥交换方法
CN103563288A (zh) * 2011-05-25 2014-02-05 国际商业机器公司 基于口令的单轮密钥交换协议
CN106230802A (zh) * 2016-07-26 2016-12-14 中山大学 一种线上帐号登录的方法
CN106789524A (zh) * 2016-11-24 2017-05-31 中国电子科技集团公司第三十研究所 Vpn加密通道的高速解析与还原方法
CN109600225A (zh) * 2018-12-04 2019-04-09 北京海泰方圆科技股份有限公司 一种密钥交换方法、装置和存储介质
WO2021022406A1 (zh) * 2019-08-02 2021-02-11 华为技术有限公司 一种身份验证方法及装置
CN112585549A (zh) * 2020-02-29 2021-03-30 华为技术有限公司 一种故障诊断方法、装置及车辆
CN117155717A (zh) * 2023-11-01 2023-12-01 北京中宏立达科技发展有限公司 基于标识密码的认证方法、跨网跨域数据交换方法及系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009076811A1 (zh) * 2007-12-14 2009-06-25 Huawei Technologies Co., Ltd. 密钥协商方法、用于密钥协商的系统、客户端及服务器
CN101252577B (zh) * 2008-04-17 2010-08-04 电子科技大学 一种三方密钥协商产生方法
CN101645870B (zh) * 2008-08-07 2013-04-17 赵运磊 一类高效、公平的密钥交换方法
CN103563288A (zh) * 2011-05-25 2014-02-05 国际商业机器公司 基于口令的单轮密钥交换协议
CN103563288B (zh) * 2011-05-25 2017-03-22 国际商业机器公司 基于口令的单轮密钥交换协议
CN106230802B (zh) * 2016-07-26 2019-08-06 中山大学 一种线上帐号登录的方法
CN106230802A (zh) * 2016-07-26 2016-12-14 中山大学 一种线上帐号登录的方法
CN106789524A (zh) * 2016-11-24 2017-05-31 中国电子科技集团公司第三十研究所 Vpn加密通道的高速解析与还原方法
CN109600225A (zh) * 2018-12-04 2019-04-09 北京海泰方圆科技股份有限公司 一种密钥交换方法、装置和存储介质
WO2021022406A1 (zh) * 2019-08-02 2021-02-11 华为技术有限公司 一种身份验证方法及装置
CN112585549A (zh) * 2020-02-29 2021-03-30 华为技术有限公司 一种故障诊断方法、装置及车辆
CN117155717A (zh) * 2023-11-01 2023-12-01 北京中宏立达科技发展有限公司 基于标识密码的认证方法、跨网跨域数据交换方法及系统
CN117155717B (zh) * 2023-11-01 2024-01-05 北京中宏立达科技发展有限公司 基于标识密码的认证方法、跨网跨域数据交换方法及系统

Similar Documents

Publication Publication Date Title
CN101060530A (zh) 可抵赖的互联网密钥交换协议
CN102017510B (zh) 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构
CN1805341A (zh) 跨安全域的网络认证和密钥分配方法
CN103259662B (zh) 一种新的基于整数分解问题的代理签名及验证方法
CN105141425B (zh) 一种基于混沌映射的可保护身份的双向认证方法
KR100966071B1 (ko) 겹선형 사상을 이용한 다자간 키 공유 방법 및 그 시스템
CN1902853A (zh) 一种公开密钥的可验证生成的方法和设备
CN105959269A (zh) 一种基于身份的可认证动态群组密钥协商方法
CN103563288B (zh) 基于口令的单轮密钥交换协议
CN101051902A (zh) 一种代理签密方法及系统
CN108650097B (zh) 一种高效的聚合数字签名方法
CN107566128A (zh) 一种两方分布式sm9数字签名生成方法与系统
CN1889433A (zh) 基于隐式公钥证书的双方认证密钥协商方法及系统
CN103297241B (zh) 一种一次性公钥匿名签密的构造方法
CN103546567A (zh) 一种可信云计算环境中无证书跨域认证方法
CN101030859A (zh) 一种分布式网络的认证方法和系统
CN1350382A (zh) 基于pki的vpn密钥交换的实现方法
CN101626364A (zh) 一类可基于口令、抗秘密数据泄露的认证和密钥交换方法
CN101175076B (zh) 在线计算高效、可抵赖、不可锻造安全的密钥交换方法
CN106341232A (zh) 一种基于口令的匿名实体鉴别方法
CN101064610A (zh) 一种身份认证方法
CN103347018A (zh) 一种基于智能卡的多服务环境下远程身份认证方法
CN101282216B (zh) 带隐私保护的基于口令认证的三方密钥交换方法
CN109639439A (zh) 一种基于两方协同的ecdsa数字签名方法
CN101247394A (zh) 一种改进的密钥交换协议

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20071024