发明名称 一种改进的密钥交换协议
摘要 本发明属于密码协议技术领域,具体为一种改进的密钥交换协议。本发明协议基于发明人在专利申请200710047344.8中所给出的YYZ密钥计算公式K<SUB>A</SUB>=B<SUP>ea+cx</SUP>Y<SUP>da+fx</SUP>=A<SUP>eb+dy</SUP>X<SUP>cb+fy</SUP>=K<SUB>B</SUB>。本发明协议的关键之处为:利用对B<SUP>cx</SUP>Y<SUP>da+fx</SUP>及A<SUP>dy</SUP>X<SUP>cb+fy</SUP>进行t=(p-1)/q次幂运算从而保证Y<SUP>(da+fx)t</SUP>及X<SUP>(cb+fy)t</SUP>为Z<SUP>*</SUP><SUB>p</SUB>中阶为q的元素,并进而保证K<SUB>A</SUB>=B<SUP>ea+tcx</SUP>Y<SUP>(da+fx)t</SUP>=A<SUP>eb+tdy</SUP>X<SUP>(cb+fy)t</SUP>=K<SUB>B</SUB>为Z<SUP>*</SUP><SUB>p</SUB>中阶为q的元素。这可以省去原YYZ协议中对DH密钥成分X和Y的阶q检查,从而提高计算效率。另外,在本发明协议中,会话密钥和MAC-密钥不同:会话密钥K=H<SUB>K</SUB>(f,K<SUB>A</SUB>)=H<SUB>K</SUB>(f,K<SUB>B</SUB>),而MAC-密钥K<SUB>m</SUB>=H<SUB>K</SUB>(K<SUB>A</SUB>,f)=H<SUB>K</SUB>(K<SUB>B</SUB>,f)。
申请公布号 CN101247394A 申请公布日期 2008.08.20
申请号 CN200810032508.4 申请日期 2008.01.10
申请人 赵运磊;姚期智;储枫 发明人 赵运磊;姚期智;储枫
分类号 H04L29/06(2006.01);H04L9/32(2006.01);H04L9/30(2006.01) 主分类号 H04L29/06(2006.01)
代理机构 上海正旦专利代理有限公司 代理人 陆飞;盛志范
主权项 1.一种改进的密钥交换协议,其特征在于:系统工作环境为:(1).系统参数:(p,q,H,HK,MAC),其中p和q为大素数,并且q能整除p-1,g是一个Z* p中阶为q的元素,使得在Z* p中由g定义的子群上离散对数DL及计算Diffie-Hellman CDH问题是难的;MAC是一个消息认证码算法;所有的指数运算及不在指数上的乘法运算是mod p运算,加法及指数上的乘法为mod q运算;这里,Z* p={1,2,…,p-1};H是从{0,1}*→{0,1,2,…,(q-1)/2}的哈西函数,HK是从{0,1}*→{0,1}k的哈西函数,k是会话密钥的长度;对于字符串s1,…,sm,m>1,(s1,s2,…,sm)表示的是:将s1,…,sm用二进制0-1串来表示,然后将所有的0-1串顺序连接串联起来,最后将串联后得到的0-1串作为H的输入;(2).除非有特别说明,具有身份ID IA的用户“A”有一个公钥A=ga,其中a由用户“A”在Zq中随机选取;相应地,具有ID IB的用户“B”的公钥记为B=gb,以此类推;这里,Zq={0,1,2,…,q-1};(3).协议基于Diffie-Hellman密钥交换协议;记X=gx mod p为用户“A”的DH密钥成分,x为DH密钥成分X的离散对数,x由用户“A”从Zq={0,1,…,q-1}中随机选取;记Y=gy mod p为用户“B”的DH密钥成分,y为DH密钥成分Y的离散对数,y由用户“B”从Zq={0,1,…,q-1}中随机选取;(4).有一个可信的证书权威机构CA,颁发证书CERT,用于将用户的身份及其相应公钥进行可公开验证的绑定;绑定用CA的电子签名实现;绑定时CA验证公钥为Z* p中阶为q且非1的元素;用户“A”的证书记为CERTA;(5).假定协议的每一次执行有一个标示号:sid;sid是一个字符串,用于标记并发运行的协议执行;sid的制定和协商可随协议的运行环境不同而有所变化;一般而言,sid包含在协议运行之前用户交换的信息或交换信息的哈西值;(6).与协议执行相关的其它信息pub:除了sid,IA,A=ga,IB,B=gb,X=gx,Y=gy外,其它与协议执行相关的信息用pub来表示;pub是一个字符串,是用户的IP地址、公钥证书、其它需要认证的信息、时间戳的串联;协议实现方法为:用户“A”及“B”相互交换它们各自的DH密钥成分X=gx和Y=gy以及公钥证书;假设用户“A”为协议的发起者,用户“B”为协议的响应者;即:用户“A”在第一轮发送X;在收到X后用户“B”检查X为Z* p中的非1元素并在第二轮发送Y;收到Y后,用户“A”检查Y为Z* p中的非1元素;用户“A”计算KA=Bea+tcxY(da+fx)t,检查KA≠1并计算会话密钥K=HK(f,KA);用户“B”计算KB=Aeb+tdyX(cb+fy)t,检查KB≠1并计算会话密钥K=HK(f,KB);其中,t=(p-1)/q,c=H(X,IA,A,IB,B),d=H(IA,A,IB,B,Y),e=0或1,f=H(IA,A,IB,B,X,Y)或H(c,d)或H(c,d,e);函数c、d、e、f设置的关键之处为:c和e的输入不包含Y,d和e的输入不包含X;用户“A”事先离线计算X、c和Bea+tcx,用户“B”事先离线计算Y、d和Aeb+tdy,从而提高在线计算的效率;KA与KB计算的关键之处为:利用对BcxYda+fx及AdyXcb+fy进行t=(p-1)/q次幂运算从而保证Y(da+fx)t及X(cb+fy)t为Z* p中阶为q的元素,并进而保证KA和KB为Z* p中阶为q的元素;对BcxYda+fx及AdyXcb+fy进行t次幂运算的好处为可以省去对DH密钥成分X和Y的阶q检查,提高计算效率;为了进一步相互确认身份及会话密钥,用户“A”计算MAC-密钥Km=HK(KA,f),“B”计算Km=HK(KB,f);协议响应者“B”在第二轮发送MACKm(d),协议初始者“A”在另加的第三轮发送MACK(c)。
地址 201203上海市浦东张衡路825号复旦大学软件学院