CN1832397B - 电子设备接口间基于公钥证书的认证密钥协商和更新方法 - Google Patents

电子设备接口间基于公钥证书的认证密钥协商和更新方法 Download PDF

Info

Publication number
CN1832397B
CN1832397B CN2005101243425A CN200510124342A CN1832397B CN 1832397 B CN1832397 B CN 1832397B CN 2005101243425 A CN2005101243425 A CN 2005101243425A CN 200510124342 A CN200510124342 A CN 200510124342A CN 1832397 B CN1832397 B CN 1832397B
Authority
CN
China
Prior art keywords
key
source
authentication
certificate
des
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
CN2005101243425A
Other languages
English (en)
Other versions
CN1832397A (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN2005101243425A priority Critical patent/CN1832397B/zh
Publication of CN1832397A publication Critical patent/CN1832397A/zh
Application granted granted Critical
Publication of CN1832397B publication Critical patent/CN1832397B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种电子设备接口间基于公钥的认证密钥协商和更新方法。参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向或者双向认证方式来完成认证和密钥协商或更新。其中的单向认证方式或者双向认证方式通过使用Diffie-Hellman密钥交换技术来生成共享秘密;通过HMAC密钥杂凑函数保证所生成的共享秘密的一致性和协议消息的完整性;在完全认证的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过使用持有共享密钥这一事实来确认设备的合法性。利用本发明的方法,可以使数字内容在两个合法的消费电子设备之间传播,并且能够使数字内容得到有效的保护。

Description

电子设备接口间基于公钥证书的认证密钥协商和更新方法
技术领域
本发明涉及保密或安全通信的密钥交换方法,尤其涉及一种基于公钥证书的认证密钥协商方法和对认证密钥的更新方法。
背景技术
影音娱乐内容的数字化使得家庭用户可以无失真地观看、存储和传播数字内容。拷贝的次数不影响数字内容的质量,互联网技术和点对点技术又使得数字内容的广泛传播成为可能。这种无失真拷贝特性和广泛传播的便利性对于数字影音娱乐内容的版权所有者是一种威胁。
为了保护版权所有者的利益,用于解码、存储、显示数字影音内容的消费电子设备应该本身具有版权保护的功能,即能够根据数字影音内容的版权保护信息来执行对应的操作,即这些设备会有一个模块专门处理版权保护信息,这个模块根据版权保护信息来执行操作,比如说版权信息显示某个电影不能被拷贝,那么在设备接收到拷贝请求后,这个设备就会拒绝这个请求,这样的设备统称为合法设备。家庭用户中的消费电子设备不一定都是合法设备,为了保证数字影音内容只在合法设备间传输,需要在内容传输之前通过认证密钥协商协议对设备的合法性进行认证,生成共享密钥。这样,使得影音内容在合法设备之间传输,从而得到保护。
数字影音内容在接口间传输时,很容易被非法设备截获。如果截获的数字影音内容是可以被直接识别的,那么这些内容同样威胁到版权所有者的利益。为了防止这一点,通常使用加密技术,在接口间传输加密后的数据,这些数据即使在截获以后,也很难识别出原来的影音内容。现代加密技术的安全性几乎完全依赖于密钥的安全,用于加密的密钥通常由认证过程产生的认证密钥获得,而用于具体保护影音内容的加密算法的安全性取决于这些算法的密钥的安全性。
合法设备之间的连接需要符合一定的接口规范。常见的接口有HDMI、DVI接口,IEEE1394接口,POD-Host接口等。其中HDMI和DVI是连接显示终端和数字内容源的接口技术。IEEE1394是一种高速的串行总线接口技术,广泛用于影音内容传输。POD-Host接口是用于有线网络的一种辅助接口,解码后的有线网络数字内容通过该接口传输到主机设备中,主机设备包括机顶盒或数字电视等。
针对上述三种接口,国外已经相应制定了HDCP(宽带数字内容保护),DTCP(数字传输内容保护),PODCP(POD拷贝保护)规范或标准。HDCP用于保护HDMI和DVI接口传输的数字内容。DTCP用于保护IEEE1394,USB等串行接口传输的数字内容。PODCP用于保护POD接口的内容传输。
HDCP***的认证和密钥交换分为三个阶段。第一个阶段由源设备(内容发送设备)通过检验目的设备(内容接收设备)生成的共享秘密来认证目的设备。第二个阶段用于源设备收集和检查目的设备的拓扑信息。第三个阶段用于链路状态检查和密钥更新。该***使用了一种简单的基于身份的方法,被证实不安全。攻击者只需要大约40台装有HDCP***的设备,就可以得到一些***参数,进而在没有授权的情况下可以任意制造非法设备。这些非法设备不能被合法设备检验出来。
DTCP***的认证和密钥交换有两个级别,完全认证和受限认证。受限认证是一种安全级别较低的认证方式,不允许用于“永远不许拷贝”的数字内容。在技术上,这种认证方式和HDCP***类似,只是增加了一个可选的证书验证过程,因而对HDCP***的攻击,对于DTCP***同样适用。只是因为DTCP***安全参数的不同,攻击所需要的设备数量不同。完全认证被认为是一种安全级别较高的认证方式,适用于各种数字内容。在技术上,完全认证是基于公钥证书基础设施的一种认证方式,使用了签名技术和Diffie-Hellman密钥(DH密钥)交换技术。DTCP***中宣称签名技术和密钥交换技术的结合可以抵抗“中间人攻击”的威胁。然而我们分析表明,DTCP协议并不能完全抵抗“中间人攻击”。典型的攻击方法包括反射攻击,Lowe攻击,Wiener攻击等。这些攻击都可以使完全认证的认证性失效。Lowe攻击可以导致发送者失配或者接收者失配。其中发送者失配是指接收设备认为数字内容来自于设备A,而其实来自于设备B;接收者失配是指发送设备以为数字内容发送给了设备A,而其实是给了设备B。接收者失配会威胁到***的完整性,发送者失配则会威胁到DTCP在身份信息重要的一些领域的应用。
PODCP***的认证和密钥交换也是基于公钥证书基础设施,完成POD对主机的认证。其认证和密钥交换主要由两个部分组成,分别是重新认证和认证。重新认证是在POD和主机存储有共享秘密的情况下,确认共享秘密的一致性。在技术上PODCP只是规定主机将共享秘密的一小部分作为认证密钥发送给POD,POD确认该认证密钥。这种方式显然过于简单,不能抵抗最简单的重放攻击,因而并没有达到认证性。其安全性仅来自于非法设备通过认证后不能解密数字内容。POD和主机的认证意在完成POD对主机的认证,并建立共享的秘密。其安全性来自于对证书和消息签名的验证。然而该认证协议的消息可以重放,这使得某台合法主机临时DH密钥的泄漏会导致非法设备利用该泄漏的密钥和该主机发送的签名消息冒充该合法主机,接收数字影音内容。另外,PODCP认证协议包括POD给主机的一些认证信息,这些信息无助于POD对主机的认证。
由上述可知,现有技术中已公布的接口保护规范中的认证和认证密钥协商协议并不完善,还存在着诸多问题。另外,当一台消费电子设备具有多个接口时,需要实现多个认证模块,浪费***资源。
发明内容
本发明的目的在于提供一种适用于电子设备接口间基于公钥证书的认证密钥协商和更新的方法。
为实现上述目的,本发明提供一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;所述单向认证和双向认证方式分别包括完全认证和重新认证;在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;其中,双向完全认证方式是在作为通信双方的源设备和目的设备具有证书列表的情况下,确认被认证方确实具有其发送证书的私钥,从而确定被认证方的身份;在确认被认证方身份的同时,通信双方通过交换的随机数生成一个通信双方独享的共享秘钥,并能确认该共享秘钥的一致性和秘密性。
上述方法中,在源设备和目的设备之间采用双向完全认证进行认证和密钥协商时,该认证方式通过以下步骤在椭圆曲线(Fq,E,G,n)上实现,其中Fq是特征为q的有限域,E是Fq上的椭圆曲线,G为E上的基点,n为G的阶:源设备计算随机数1<x<n,计算标量乘xG,发送源设备证书列表和该标量乘:Cert_Source_list||xG;目的设备验证源设备证书是否被吊销,验证源设备证书列表中证书各个域的内容;计算随机数1<y<n,计算标量乘yG,使用HMAC密钥杂凑函数Hash,以xyG低位的|q|比特[xyG]lsb|q|为密钥对源设备的证书唯一标志ID_Source进行杂凑,使用目的设备的私钥对该杂凑值使用签名算法E_S进行签名,发送以下内容给源设备:Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)};其中,Cert_Des_list是目的设备证书列表,yG是标量乘,[xyG]lsb|q|为xyG低位的|q|比特,ID_Source为源设备的证书唯一标志,Hash()表示使用HMAC进行杂凑生成杂凑值,E_S{}表示使用签名算法进行签名,且签名中需用到目的设备的私钥;源设备验证目的设备证书是否被吊销,验证目的设备证书列表中证书各个域的内容,计算共享秘钥xyG,计算杂凑值Hash([xyG]lsb|q|,ID_Source),验证接收的目的设备签名;使用HMAC密钥杂凑函数Hash,以xyG高位的|q|比特[xyG]msb|q|为密钥对目的设备的证书唯一标志ID_Des进行杂凑,使用源设备的私钥对该杂凑值使用签名算法E_S进行签名,确认目的设备证书没有被吊销,发送以下内容给目的设备:E_S{Hash([xyG]msb|q|,ID_Des)};之后,源设备使用HMAC密钥杂凑函数Hash以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,存储数据对<K_M,ID_Des>;d)目的设备计算杂凑值Hash([xyG]msb|q|,ID_Des),验证接收的源设备签名;确认源设备证书没有被吊销,使用HMAC密钥杂凑函数Hash,以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,存储数据对<K_M,ID_Source>。
一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;单向认证和双向认证方式分别包括完全认证和重新认证,在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;其中,双向重新认证方式是在作为通信双方的源设备和目的设备具有共享密钥K_M的情况下,确认双方确实拥有相同的共享密钥,核实通信双方的身份;同时,双方通过交换的随机数和共享秘钥生成新的共享密钥,完成密钥更新。
上述方法中,在源设备和目的设备之间使用双向重新认证方式进行认证和密钥更新时,具有以下步骤:a)源设备读取源设备证书中的证书唯一标志ID_Source,计算随机数Rand_Source,发送源设备的证书唯一标志和该随机数:ID_Source||Rand_Source;b)目的设备验证接收的ID_Source和本地存储的ID_Source是否一致;若一致,则读取目的设备证书中的证书唯一标志ID_Des,计算随机数Rand_Des,使用HMAC密钥杂凑函数Hash,以共享密钥K_M的高|K_M|/2位比特为密钥对ID_Source||Rand_Source||ID_Des||Rand_Des进行杂凑,获得杂凑值Des_HashValue,发送目的设备的证书唯一标志、随机数和杂凑值:ID_Des||Rand_Des||Des_HashValue;c)源设备验证接收的ID_Des和本地存储的ID_Des是否一致,若一致,则验证接收的杂凑值Des_HashValue;使用HMAC密钥杂凑函数Hash,以共享密钥K_M的低|K_M|/2位比特为密钥,对ID_Des||Rand_Des进行杂凑,获得杂凑值Source_HashValue值,发送该杂凑值给目的设备;之后使用Hash以当前共享密钥K_M为密钥,对Rand_Des||Rand_Source进行杂凑,获得新的共享密钥:K_M=Hash(K_M,Rand_Des||Rand_Source);d)目的设备验证接收的杂凑值Source_HashValue,验证通过则使用Hash,以当前共享密钥K_M为密钥,对Rand_Des||Rand_Source进行杂凑,获得新的共享密钥:K_M=Hash(K_M,Rand_Des||Rand_Source)。
一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;所述的单向认证和双向认证方式分别包括完全认证和重新认证,在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;其中,单向完全认证方式是在被认证方具有证书列表的情况下,确认被认证方确实具有其发送证书的私钥,从而确定被认证方的身份;在确认被认证方身份的同时,通信双方通过交换的随机数生成双方独享的共享秘钥,并能由认证方确认该共享密钥的一致性。
上述方法中,在源设备和目的设备之间使用单向完全认证方式进行认证和密钥协商时,通过以下步骤在椭圆曲线(Fq,E,G,n)上实现,其中Fq是特征为q的有限域,E是Fq上的椭圆曲线,G为E上的基点,n为G的阶:a)源设备计算随机数1<x<n,计算标量乘xG,发送源设备的证书唯一标志和标量乘:ID_Source||xG;b)目的设备计算随机数1<y<n,计算标量乘yG,计算共享秘钥xyG,使用HMAC密钥杂凑函数Hash,以xyG低位的|q|比特[xyG]lsb|q|为密钥,对源设备的证书唯一标志ID_Source进行杂凑,使用目的设备的私钥对该杂凑值使用签名算法E_S签名,发送以下内容给源设备:Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)};其中,Cert_Des_list是目的设备证书列表,yG是标量乘,[xyG]lsb|q|为xyG低位的|q|比特,ID_Source为源设备的证书唯一标志,Hash()表示使用HMAC进行杂凑生成杂凑值,E_S{}表示使用签名算法进行签名,且签名中需用到目的设备的私钥;使用Hash函数以xyG为密钥对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,存储数据对<K_M,ID_Source>;其中xG是标量乘,ID_Des是目的设备的证书唯一标志;c)源设备验证目的设备证书是否被吊销,验证目的设备证书列表中证书各个域的内容,计算共享秘钥xyG,验证接收的目的设备签名的正确性;使用HMAC密钥杂凑函数Hash,以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,确认目的设备证书没有被吊销,存储数据对<K_M,ID_Des>。
一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;所述的单向认证和双向认证方式分别包括完全认证和重新认证,在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;其中,单向重新认证方式是在作为通信双方的源设备和目的设备具有共享密钥K_M的情况下,由认证方确认被认证方确实拥有与认证方相同的共享秘钥;在确认共享秘钥的一致性之后,通信双方通过认证方所发送的随机数来更新双方的共享密钥,完成密钥更新;被认证方身份的确认通过认证方身份与共享密钥的绑定完成。
上述方法中,在源设备和目的设备之间采用单向重新认证方式进行认证和密钥更新时,具有以下步骤:a)源设备计算随机数Rand_Source,发送源设备的证书唯一标志和该随机数:ID_Source||Rand_Source;b)目的设备验证接收的ID_Source和本地存储的ID_Source是否一致;若一致,使用HMC密钥杂凑函数Hash以共享密钥K_M的低|K_M|/2位比特为密钥,对ID_Source||Rand_Source进行杂凑,获得杂凑值Uni_Des_HashValue值,发送目的设备的证书唯一标志ID_Des和杂凑值:ID_Des||Uni_Des_HashValue;使用Hash,以K_M为密钥,对Rand_Source进行杂凑,获得新的共享密钥K_M;c)源设备验证接收的ID_Des和本地存储的ID_Des是否一致,若一致,则验证杂凑值Uni_Des_HashValue;使用HMAC密钥杂凑函数Hash以K_M为密钥,对Rand_Source进行杂凑,获得新的共享密钥K_M。
利用本发明的方法,可以使数字内容在两个合法的消费电子设备之间传播,并且能够使数字内容得到有效的保护。
附图说明
图1表示根据本发明的双向完全认证消息交换流程图;
图2表示根据本发明的双向重新认证消息交换流程图;
图3表示根据本发明的单向完全认证消息交换流程图;
图4表示根据本发明的单向重新认证消息交换流程图。
具体实施方式
当数字内容在两个消费电子设备之间传播时,为了保证数字内容是在两个合法的消费电子设备之间传播,并且能够使被传播的数字内容得到有效的保护而不易被拦截或窃取,两个消费电子设备各接口需要根据其各自的配置选择适当的认证密钥协商方式进行身份认证和密钥协商。
在本发明中,所述的认证密钥协商方式包括单向认证方式和双向认证方式。所述单向认证方式包括单向完全认证方式以及单向重新认证方式;所述双向认证方式包括双向完全认证方式以及双向重新认证方式。
这里,将参与认证密钥协商方式运行的两个设备分别称为源设备和目的设备。源设备和目的设备根据双方接口的配置选择执行一种认证方式:
1)接口类型为POD或者HDMI,DVI,执行单向认证密钥协商和密钥更新。
2)接口类型为IEEE1394,USB,源设备和目的设备均支持双向认证,则执行双向认证密钥协商和更新。
3)接口类型为IEEE1394,USB,目的设备仅支持单向认证,源设备配置的策略中允许执行单向认证,则执行单向认证密钥协商和更新。
4)其它接口类型,根据源设备的配置策略,支持的认证方案,目的设备支持的认证方案决定执行的认证方案类型。
一般情形下,源设备在选择执行单向或双向认证方式后,如果本地没有存储以前的共享密钥,则执行单向或双向完全认证方式;如果本地存储着以前的共享密钥,则执行单向或双向重新认证方式。
在本发明所提及的四种认证密钥协商方式中使用如下内容:
1)参与认证密钥协商方式运行的源设备和目的设备分别在本地存储证书列表Cert_Source_list和Cert_Des_list,这些证书列表中所包含的证书的数量由应用环境的信任模型决定。Cert_Source_list至少包括源设备证书Cert_Source,Cert_Des_list则至少包括目的设备证书Cert_Des。所使用的设备证书的证书格式可以遵照CCITT X.509规定的格式或者某种通用于多个接口的证书格式,至少要包含“证书持有者唯一标志”,“公钥信息”,“证书签发者标志”,“证书签名算法信息”,“证书签名”等内容。认证密钥协商方式中将使用的证书信息包括源设备证书的“证书持有者标志”ID_Source和目的设备证书的“证书持有者唯一标志”ID_Des,其它与证书相关的操作以文字形式叙述。
2)认证密钥协商方式需要关于椭圆曲线的一组参数,设为(Fq,E,G,n),其中Fq为特征为q的有限域,E是Fq上的椭圆曲线,G为E上的基点,n为G的阶。
3)认证密钥协商方式中的签名算法E_S{}表示使用设备的唯一私钥来对{}中的内容签名。签名算法可以是任何一种具体算法,只要该算法满足适应性选择消息攻击安全。该方式中的HMAC密钥杂凑函数Hash(key,content)表示使用密钥key来计算content的杂凑值。同样Hash可以是任何一种具体算法,只要该算法具有混合变换、抗碰撞攻击、抗原像攻击这样三个性质属性。
4)认证密钥协商方式中使用符号|x|来表示数据x的长度,即该数据转化为二进制表示时所使用的二进制符号的数目,例如|2192|=192;使用符号[x]lsby来表示取数据x从最低位(0比特位)到y-1比特位的y比特数据;使用符号[x]msby来表示取数据x从y比特位到最高位的(|x|-y)比特数据。
本发明的电子设备接口间基于公钥证书的认证密钥协商和更新方法通过使用Diffie-Hellman密钥交换技术来生成共享秘密;通过HMAC算法保证所生成的共享秘密的一致性和消息的完整性;在完全认证的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过使用持有共享密钥这一事实来确认设备的合法性。这里,假设椭圆曲线上判定性Diffie-Hellman问题是困难问题,假设所用的签名算法在适应性选择消息攻击下是安全的,假设所用的HMAC算法具有混合变换、抗碰撞攻击、抗原像攻击这样三个性质。在上述假定条件下,可以证明本发明的认证密钥协商和更新方法在秘密性和认证性方面是安全的。
源设备和目的设备根据其接口的配置确定一种认证密钥协商方式后,则按照该选定的认证密钥协商方式的内容进行身份认证和密钥交换。
下面分别描述本发明的四种认证密钥协商方式。源设备选择执行双向认证方式后,如果本地没有存储以前的共享密钥,则执行双向完全认证方式。
(一)双向完全认证
当源设备和目的设备之间采用双向完全认证方式时,通过以下步骤在椭圆曲线(Fq,E,G,n)上实现,其中Fq为特征为q的有限域,E是Fq上的椭圆曲线,G为E上的基点,n为G的阶。
如图1所示,双向完全认证方式包括如下步骤:
1.源设备主程序调用双向完全认证子程序来发送双向完全认证第一条消息。该子程序读取源设备证书列表Cert_Source_list,计算随机数1<x<n,计算标量乘xG,发送消息,即源设备证书列表和标量乘xG:
Cert_Source_list||xG
在实际应用中,上述消息需要封装之后再发送。对该消息单元的封装应指明该消息所属的认证类型(双向完全认证0x01),如果源设备和目的设备之间可以存在多个会话同时运行,则封装信息还包括会话序列号。
2.目的设备主程序把双向完全认证第一条消息转交给该设备的双向完全认证子程序处理。该协议子程序要完成以下操作:
a)通过目的设备的证书有效性查询资源来验证源设备证书Cert_Source是否被吊销。如果目的设备不存在证书有效性查询资源,则发送通知消息给源设备指示目的设备能力不足,终止执行该双向完全方式。
在实际应用中,各接口为该通知消息分配特定的序列号(例如0x01表示不存在证书有效性查询的资源),并按照各接口通知消息的形式封装并发送该序列号,封装的信息应该足以表明出现错误的会话序列,例如包括特定会话的部分DH公钥信息,或者包括特定会话的会话序列号,或者源设备和目的设备之间不存在多重会话。
b)鉴于证书有效性验证有可能耗时较长,因此该子程序需要与证书有效性验证并行执行以下操作:
i.验证源设备证书列表中证书各个域的信息,具体验证内容由证书***的规范决定。验证失败则向源设备发送通知消息,报告证书验证失败,终止执行该方式。
ii.计算随机数y,计算标量乘yG,计算共享秘密xyG,使用HMAC密钥杂凑函数Hash,计算Hash([xyG]lsb|q|,ID_Source),使用目的设备的私钥对所计算的杂凑值使用签名算法E_S{}签名,读取目的设备证书列表Cert_Des_list,发送消息给源设备:
Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)}
在实际应用中,封装上述消息,然后再发送。封装该协议消息时要明确消息所属的会话序列和认证类型。
3.源设备主程序负责把双向完全认证第二条消息转交给该设备的完全双向认证子程序来处理,把目的设备发送的通知消息转交给通知消息处理子程序执行。
源设备的通知消息处理子程序对于目的设备发送的“不存在有效性查询资源”,“证书验证失败”这样两类通知消息,终止这些通知消息所指明的会话,收回***资源。
双向完全认证子程序完成以下操作:
a)通过源设备的证书有效性查询资源来验证目的设备证书Cert_Des是否被吊销。如果源设备不存在证书有效性查询资源,则发送通知消息给目的设备指示源设备能力不足,终止执行该双向完全认证方式。
在实际应用中,各接口需要为该通知消息分配特定的序列号(例如0x01表示不存在证书有效性查询的资源),并按照各接口通知消息的形式封装并发送该序列号,要求封装时能够指明出现错误的会话序列。
b)鉴于证书有效性验证有可能耗时较长,因此该协议子程序需要与证书有效性验证并行执行以下操作:
i.验证目的设备证书列表中证书各个域的信息,具体验证内容由各接口证书***的规范决定。验证失败则向目的设备发送通知消息,报告证书验证失败,终止执行双向完全认证。
ii.计算共享秘密xyG,使用HMAC密钥杂凑函数Hash,计算Hash([xyG]lsb|q|,ID_Source),验证接收消息中签名的有效性,如果验证没有通过则发送通知消息给目的设备报错,终止执行双向完全认证。
在实际应用中,各接口应该为该通知消息分配特定的序列号(例如0x02表示证书验证失败),并按照各接口通知消息的形式封装并发送该序列号,同样要求封装时能够指明出现错误的会话序列。
iii.使用Hash函数,以[xyG]msb|q|为密钥,对目的设备的证书唯一标志ID_Des进行杂凑,使用源设备的私钥对该杂凑值使用签名算法E_S{}签名:
E_S{Hash([xyG]msb|q|,ID_Des)};
在实际应用中,对上述签名进行封装,封装时要明确消息的会话序列和认证类型。
iv.源设备使用Hash函数,以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M:
K_M=Hash(xyG,ID_Source||xG||ID_Des||yG);
V.检查在步骤a)中证书有效性查询的结果,如果目的设备的证书是有效的,则存储数据对<K_M,ID_Des>,发送步骤iii中生成的签名消息给目的设备,否则发送通知消息,终止协议执行。
在实际应用中,各接口应该为该通知消息分配特定的序列号(例如0x04表示证书已经被吊销),并按照各接口通知消息的形式封装并发送该序列号,要求封装时能够指明出现错误的会话序列。
4.目的设备主程序负责把双向完全认证第三条消息的消息单元转交给该设备的双向完全认证协议子程序来处理接收的消息,把接收的通知消息转交给目的设备的通知消息处理子程序执行。
目的设备的通知消息处理子程序对于源设备发送的“不存在有效性查询资源”,“证书验证失败”,“签名消息验证失败”,“证书已经被吊销”这样几类通知消息,终止这些通知消息所指明的会话,收回***资源。
目的设备双向完全认证子程序完成以下操作:
a)使用HMAC密钥杂凑函数Hash,计算Hash([xyG]msb|q|,ID_Des),读取Cert_Source中公钥,验证接收消息中签名,验证无效则发送通知消息给源设备报错,终止执行双向完全认证。
在实际应用中,各接口为该通知消息分配特定的序列号(例如0x03表示协议签名消息验证失败),并按照各接口通知消息的形式封装并发送该序列号,封装时指明出现错误的会话序列。
b)检查步骤2的a)中Cert_Source有效性查询的结果,如果查询结果表明源设备证书已经被吊销,则发送通知消息给源功能设备报错,终止执行双向完全认证。
在实际应用中,各接口为该通知消息分配特定的序列号(例如0x04表示证书已经被吊销),并按照各接口通知消息的形式封装并发送该序列号,封装时能够指明出现错误的会话序列。
c)使用Hash函数计算主密钥K_M如下:
K_M=Hash(xyG,ID_Source||xG||ID_Des||yG);
d)存储<K_M,ID_Source>。
5.源设备在接收到目的设备的通知消息后,清除存储的数据对<K_M,ID_Des>。
(二)双向重新认证
源设备选择执行双向认证后,如果本地存储着以前的共享密钥,则执行双向重新认证方式。如图2所示,该协议具体步骤如下:
1.源设备主程序调用双向重新认证子程序来发送双向完全认证第一条消息。该协议子程序读取源设备证书中的持有者唯一标志ID_Source,计算不少于64比特的随机数Rand_Source,发送消息:
ID_Source||Rand_Source
在实际应用中,上述消息需要封装,对该消息单元的封装要能够指明该消息所属的认证类型,如果源设备和目的设备之间可以存在多个会话同时运行,则封装信息还包括会话序列号。
2.目的设备主程序负责把双向重新认证第一条消息转交给该设备的双向重新认证子程序处理。该协议子程序要完成以下操作:
a)比较所接收的ID_Source与本地存储的<K_M,ID_Source>中的ID_Source是否相同,如果不同,则清除<K_M,ID_Source>,然后向源设备发送通知消息,终止此次双向重新认证方式的执行,请求执行双向完全认证。
在实际应用中,各接口应该为该通知消息分配特定的序列号(例如0x05表示重新认证证书持有者标志不匹配),并按照各接口通知消息的形式封装并发送该序列号,要求封装时能够指明出现错误的会话序列。
b)如果所接收的ID_Source与本地存储的<K_M,ID_Source>中的ID_Source相同,则读取目的设备证书中的证书持有者标志ID_Des,计算不少于64比特随机数Rand_Des,使用HMAC密钥杂凑函数Hash,以共享密钥K_M的高|K_M|/2位比特,对ID_Source||Rand_Source||ID_Des||Rand_Des进行杂凑,获得Des_HashValue值,计算杂凑值Des_HashValue:
Hash([K_M]msb|K_M|/2,ID_Source||Rand_Source||ID_Des||Rand_Des)
d)发送消息:
ID_Des||Rand_Des||Des_HashValue。
在实际应用中,需要对消息封装,封装时要明确消息所属的会话序列和认证类型。
3.源设备主程序负责把双向重新认证第二条消息的消息单元转交给该设备的双向重新认证子程序来处理接收的消息,把目的设备发送的通知消息转交给通知消息处理子程序执行。
源设备的通知消息处理子程序对于目的设备发送的“重新认证证书持有者标志不匹配”这样的通知消息,终止这些通知消息所指明的会话,收回***资源,清除<K_M,ID_Des>,然后与该目的设备执行双向完全认证。
源设备采用的双向重新认证方式具有以下步骤:
a)比较所接收的ID_Des和本地存储的<K_M,ID_Des>中的ID_Des是否相同,如果不同,则清除本地存储的<K_M,ID_Des>,发送“重新认证证书持有者不匹配”通知消息给目的设备,终止此次会话,回收***资源,清除<K_M,ID_Des>,然后与该目的设备执行双向完全认证。
b)如果所接收的ID_Des和本地存储的<K_M,ID_Des>中的ID_Des相同,则使用HMAC密钥杂凑函数Hash计算以下杂凑值Local_Des_HashValue:
Hash([K_M]msb|K_M|/2,ID_Source||Rand_Source||ID_Des||Rand_Des)
c)比较接收的HashValue与计算的Local_Des_HashValue是否相同,不同则清除本地存储的<K_M,ID_Des>,发送“重新认证杂凑值不匹配”通知消息给目的设备,终止此次会话,回收***资源,清除<K_M,ID_Des>,然后与该目的设备执行双向完全认证。
d)使用Hash函数,以共享密钥K_M的低|K_M|/2位比特为密钥,对ID_Des||Rand_Des进行杂凑,计算并发送杂凑值Source_HashValue给目的设备:
Hash([K_M]lsb|K_M|/2||ID_Des||Rand_Des)
在实际应用中,需要封装之后发送杂凑值Source_HashValue给目的设备。这时协议消息单元仅包含该杂凑值。封装时要明确消息所属的会话序列和认证类型。
e)计算新的K_M,更新<K_M,ID_Des>中的K_M。新的K_M计算如下:
K_M=Hash(K_M,Rand_Des||Rand_Source)
4.目的设备主程序负责把双向重新认证第三条消息转交给该设备的双向重新认证协议子程序来处理接收的消息,把接收的通知消息转交给目的设备的通知消息处理子程序执行。
目的设备的通知消息处理子程序对于源设备发送的“重新认证证书持有者标志不匹配”,“重新认证杂凑值不匹配”这样两类通知消息,终止这些通知消息所指明的会话,收回***资源,清除<K_M,ID_Source>。
目的设备双向重新认证协议子程序完成以下操作:
a)用HMAC密钥杂凑函数Hash计算杂凑值Local_Source_HashValue:
Hash([K_M]lsb|K_M|/2||ID_Des||Rand_Des)
b)比较接收的Source_HashValue与计算的Local_Source_HashValue是否相同,不同则发送“重新认证杂凑值不匹配”通知消息给源设备,终止此次会话,回收***资源,清除<K_M,ID_Source>。
c)计算新的K_M,更新<K_M,ID_Source>中的K_M,设置认证状态。新的K_M计算如下:
K_M=Hash(K_M,Rand_Des||Rand_Source)。
5.源设备在接收到目的设备的通知消息后,清除数据对<K_M,ID_Des>,执行双向完全认证协议。
(三)单向完全认证
源设备选择执行单向认证后,如果本地没有存储以前的认证密钥,则执行单向完全认证协议。如图3所示,该协议具体步骤如下:
1.在决定执行单向完全认证后,源设备主程序调用单向完全认证协议子程序来发送单向完全认证第一条消息。该协议子程序读取源设备证书中的证书持有者标志ID_Source,计算随机数x,计算标量乘xG,并发送协议消息:
ID_Source||xG
在实际应用中,上述消息需要封装发送,对该协议消息单元的封装要能够指明该消息所属的认证类型,如果源设备和目的设备之间可以存在多个同时运行的会话,则封装信息还应包括会话序列号。
2.目的设备主程序负责把单向完全认证第一条协议消息转交给该设备的单向完全认证子程序处理。该协议子程序要完成以下操作:
a)计算随机数y,计算yG,计算共享秘密xyG,使用HMAC密钥杂凑函数Hash,计算Hash([xyG]lsb|q|,ID_Source),对计算的杂凑值签名,读取目的设备证书列表,发送协议消息:
Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)}
在实际应用中,上述消息需要封装发送。封装时要明确消息所属的会话序列和认证类型。
b)使用Hash函数,以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,计算主密钥K_M作为双方的共享密钥,存储<K_M,ID_Source>。K_M计算如下:
K_M=Hash(xyG,ID_Source||xG||ID_Des||yG)
3.源设备主程序负责把单向完全认证第二条协议消息转交给该设备的单向完全认证协议子程序来处理接收的协议消息。该协议子程序完成以下操作:
a)通过源设备的证书有效性查询资源验证接收的证书是否被吊销。如果源设备不存在证书有效性查询资源,则发送“不存在证书有效性查询的资源”通知消息给目的设备指示源设备能力不足,终止执行单向认证。
在实际应用中,封装上述步骤a)中产生的通知消息时要能够指明出现错误的会话序列。
b)鉴于证书有效性验证有可能耗时较长,因此该协议子程序需要与证书有效性验证并行执行以下操作:
i.验证目的设备证书列表中证书各个域的信息,具体验证内容由各接口证书***的规范决定。验证失败则向目的设备发送“证书验证失败”通知消息,终止协议执行。
在实际应用中,封装上述步骤b)第i项中产生的通知消息时要能够指明出现错误的会话序列。
ii.计算共享秘密xyG,使用HMAC密钥杂凑函数Hash计算Hash([xyG]lsb|q|,ID_Source),读取Cert_Des的公钥验证接收消息中签名的有效性,如果验证没有通过则发送“协议签名消息验证失败”通知消息给目的设备报错,终止协议执行。
在实际应用中,封装上述步骤b)第ii项中产生的通知消息时要能够指明出现错误的会话序列。
iii.使用Hash,以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,计算主密钥K_M作为双方的共享密钥:
K_M=Hash(xyG,ID_Source||xG||ID_Des||yG)。
iv.检查在步骤a)中有效性查询结果,如果证书有效则存储<K_M,ID_Des>,否则发送通知消息,指示“证书已经被吊销”,结束程序执行。
在实际应用中,封装上述步骤b)第iv项中产生的通知消息时要能够指明出现错误的会话序列。
4.目的设备主程序负责把接收的通知消息转交给通知消息处理子程序执行。
目的设备的通知消息处理子程序对于源设备发送的“不存在有效性查询资源”,“证书验证失败”,“签名消息验证失败”,“证书已经被吊销”这样几类通知消息,终止这些通知消息所指明的会话,收回***资源。
(四)单向重新认证
源设备选择执行单向认证后,如果本地存储着以前的认证密钥,则执行单向重新认证方式。如图4所示,该协议具体步骤如下:
1.源设备主程序调用单向重新认证子程序来发送单向完全认证第一条消息。该子程序读取源设备证书中的持有者唯一标志ID_Source,计算不少于64比特随机数Rand_Source,发送消息:
ID_Source||Rand_Source
在实际应用中,上述消息需要封装,对该消息单元的封装要能够指明该消息所属的认证类型,如果源设备和目的设备之间可以存在多个会话同时运行,则封装信息还应包括会话序列号。
2.目的设备主程序负责把单向重新认证第一条消息转交给该设备的单向重新认证子程序处理。该协议子程序要完成以下操作:
a)比较所接收的ID_Source与本地存储的<K_M,ID_Source>中的ID_Source是否相同,如果不同,则清除<K_M,ID_Source>,然后向源设备发送“证书持有者标志不匹配”通知消息,终止此次单向重新认证的执行。
在实际应用中,封装上述步骤a)中通知消息时要能够指明出现错误的会话序列。
b)如果所接收的ID_Source与本地存储的<K_M,ID_Source>中的ID_Source相同,则使用HMAC密钥杂凑函数Hash,以共享密钥K_M的低|K_M|/2位比特,对ID_Source||Rand_Source进行杂凑,计算以下杂凑值Uni_Des_HashValue:
Hash([K_M]lsb|K_M|/2,ID_Source||Rand_Source)
c)读取目的设备证书中的证书持有者标志ID_Des,发送消息:
ID_Des||Uni_Des_HashValue
在实际应用中,上述消息需要封装。封装时要明确消息所属的会话序列和认证类型。
d)计算新的K_M,更新<K_M,ID_Source>中的K_M。新的K_M计算如下:
K_M=Hash(K_M,Rand_Source)
3.源设备主程序负责把单向重新认证第二条消息转交给该设备的单向重新认证子程序来处理接收的消息,把目的设备发送的通知消息转交给通知消息处理子程序执行。
源设备的通知消息处理子程序对于目的设备发送的“重新认证证书持有者标志不匹配”这样的通知消息,终止这些通知消息所指明的会话,收回***资源,清除数据对<K_M,ID_Des>,然后与该目的设备执行单向完全认证。
源设备单向重新认证子程序执行以下步骤:
a)比较所接收的ID_Des和本地存储的数据对<K_M,ID_Des>中的ID_Des是否相同,如果不同则清除本地存储的<K_M,ID_Des>,发送“重新认证证书持有者不匹配”通知消息给目的设备,终止此次会话,回收***资源,清除<K_M,ID_Des>,然后与该目的设备执行单向完全认证。
b)如果所接收的ID_Des和本地存储的<K_M,ID_Des>中的ID_Des相同,则使用HMAC密钥杂凑函数Hash计算以下杂凑值Uni_Local_Des_HashValue:
Hash([K_M]lsb|K_M|/2,ID_Source||Rand_Source)
c)比较接收的Uni_Des_HashValue与计算的Uni_Local_Des_HashValue是否相同,如果不同则清除本地存储的<K_M,ID_Des>,发送“重新认证杂凑值不匹配”通知消息给目的设备,终止此次会话,回收***资源,清除<K_M,ID_Des>,然后与该目的设备执行单向完全认证。
d)计算新的K_M,更新<K_M,ID_Des>中的K_M,设置认证状态。新的K_M计算如下:
K_M=Hash(K_M,Rand_Source)
4.目的设备主程序负责把接收的通知消息转交给目的设备的通知消息处理子程序执行。
目的设备的通知消息处理子程序可以对于源设备发送的“重新认证证书持有者标志不匹配”,“重新认证杂凑值不匹配”这样两类通知消息,终止这些通知消息所指明的会话,收回***资源,清除<K_M,ID_Source>。
本发明与现有技术相比具有的有益效果是:本发明综合考虑消费电子的多种接口,提供了基于公钥的一种认证和密钥协商方案。该方案在基本算法具有安全保障时,具有可证明的认证特性和认证密钥的秘密性及一致性。该方案同时优化了消息交换次数和计算代价,具有较高的效率。
本发明的上述认证密钥协商方式可以以协议的形式来实现,应用于参与认证密钥协商的源设备和目的设备中。
下面描述本发明的上述认证密钥协商协议的具体应用。
假设源设备A和目的设备B进行认证密钥协商和更新。设备A本地存储证书列表:设备证书Cert_A,设备A的签发机构证书Cert_A_Adm,签发Cert_A_Adm的机构的证书Cert_Root。设备B本地存储证书列表:设备证书Cert_B,设备B的签发机构证书Cert_B_Adm,签发Cert_B_Adm的机构的证书Cert_Root。设备A和设备B商定了一组算法和公开参数,包括签名算法ECCDSA,HMAC算法HMAC-SHA(key,content),椭圆曲线公开参数(Fq,E,G,n),|q|=192,|K_M|=256,椭圆曲线标量乘计算表示为xG,yG等。
设备A和设备B的DVI,HDMI或者POD-Host等接口在传输数据之前,会执行单向认证密钥协商和更新。设备A如果检测不到本地存储有共享密钥,则执行单向完全认证。设备A计算随机数1<x<n,发送设备A唯一标志ID_A和xG给设备B;设备B按照单向完全认证规定的步骤操作,发送Cert_B,Cert_B_Adm,yG和签名的杂凑值ECCDSA{HMAC-SHA([xyG]lsb192,ID_A)}给设备A,并按照规定计算认证密钥K_M;设备A检测接收的消息,完成对设备B的认证,认证成功则计算K_M,设置认证状态,否则发送通知消息给设备B报错。
设备A和设备B在DVI,HDMI,POD-Host等接口在执行单向认证密钥协商和更新时如果发现本地存储有共享密钥,则执行单向重新认证。设备A计算64比特随机数Rand_A,发送设备A唯一标志ID_A和Rand_A给设备B;设备B使用储存的密钥K_M计算ID_A||Rand_A的HMAC杂凑值,并发送设备B唯一标志ID_B和杂凑值给设备A;设备A验证杂凑值的正确性,从而确认设备B是否拥有相同的共享密钥,如果有则更新该密钥。
设备A和设备B在IEEE1394,USB等可能支持双向认证密钥协商和更新的接口间传输数据时,由设备B向设备A提交设备B的认证能力,设备A优先选择执行双向认证密钥协商和更新。如果设备A本地没有存储共享密钥或者目的设备的认证能力中显示目的设备没有存储共享密钥,则执行双向完全认证。设备A给设备B发送Cert_A,Cert_A_Adm和计算的xG;设备B按照双向完全认证的步骤给设备A发送Cert_B,Cert_B_Adm,yG和签名消息,签名的内容是使用xyG的部分信息作密钥对ID_Source进行HMAC-SHA运算得到的杂凑值;设备A验证接收的消息,完成对设备B的认证,发送签名消息给设备B,同时设置认证状态,计算和存储共享密钥。设备B检验接收的签名消息,结合第一步接收的消息,完成对设备A的认证,设置认证状态,计算和存储共享密钥。
设备A和设备B在选择执行双向认证密钥协商和更新后,如果目的设备存储有共享密钥,同时源设备也存储有共享密钥,则执行双向重新认证。设备A给设备B发送设备A唯一标志ID_A和Rand_A;目的设备发送ID_Des,Rand_Des和一个杂凑值,该杂凑值使用HMAC-SHA计算,密钥是本地存储的K_M的部分信息,杂凑的内容包括了设备A的标志和随机数,设备B的标志和随机数。设备A通过验证杂凑值来确认设备B和设备A具有相同的共享密钥,然后设备A按照规定计算并发送新的杂凑值给设备B,并设置认证状态,更新和存储共享密钥。设备B通过验证杂凑值来确认设备A和设备B拥有相同的共享密钥,然后设备B设置认证状态,更新共享密钥。

Claims (8)

1.一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,其特征在于,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;
所述单向认证和双向认证方式分别包括完全认证和重新认证;在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;
其中,
双向完全认证方式是在作为通信双方的源设备和目的设备具有证书列表的情况下,确认被认证方确实具有其发送证书的私钥,从而确定被认证方的身份;在确认被认证方身份的同时,通信双方通过交换的随机数生成一个通信双方独享的共享秘钥,并能确认该共享秘钥的一致性和秘密性。
2.如权利要求1所述的方法,在源设备和目的设备之间采用双向完全认证进行认证和密钥协商时,该认证方式通过以下步骤在椭圆曲线(Fq,E,G,n)上实现,其中Fq是特征为q的有限域,E是Fq上的椭圆曲线,G为E上的基点,n为G的阶:
a)源设备计算随机数1<x<n,计算标量乘xG,发送源设备证书列表和该标量乘:Cert_Source_list||xG;
b)目的设备验证源设备证书是否被吊销,验证源设备证书列表中证书各个域的内容;计算随机数1<y<n,计算标量乘yG,使用HMAC密钥杂凑函数Hash,以xyG低位的|q|比特[xyG]lsb|q|为密钥对源设备的证书唯一标志ID_Source进行杂凑,使用目的设备的私钥对该杂凑值使用签名算法E_S进行签名,发送以下内容给源设备:
Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)};其中,Cert_Des_list是目的设备证书列表,yG是标量乘,[xyG]lsb|q|为xyG低位的|q|比特,ID_Source为源设备的证书唯一标志,Hash()表示使用HMAC进行杂凑生成杂凑值,E_S{}表示使用签名算法进行签名,且签名中需用到目的设备的私钥;
c)源设备验证目的设备证书是否被吊销,验证目的设备证书列表中证书各个域的内容,计算共享秘钥xyG,计算杂凑值Hash([xyG]lsb|q|,ID_Source),验证接收的目的设备签名;使用HMAC密钥杂凑函数Hash,以xyG高位的|q|比特[xyG]msb|q|为密钥对目的设备的证书唯一标志ID_Des进行杂凑,使用源设备的私钥对该杂凑值使用签名算法E_S进行签名,确认目的设备证书没有被吊销,发送以下内容给目的设备:
E_S{Hash([xyG]msb|q|,ID_Des)}
之后,源设备使用HMAC密钥杂凑函数Hash以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,存储数据对<K_M,ID_Des>;
d)目的设备计算杂凑值Hash([xyG]msb|q|,ID_Des),验证接收的源设备签名;确认源设备证书没有被吊销,使用HMAC密钥杂凑函数Hash,以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,存储数据对<K_M,ID_Source>。
3.一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,其特征在于,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;
单向认证和双向认证方式分别包括完全认证和重新认证,在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;
其中,
双向重新认证方式是在作为通信双方的源设备和目的设备具有共享密钥K_M的情况下,确认双方确实拥有相同的共享密钥,核实通信双方的身份;同时,双方通过交换的随机数和共享秘钥生成新的共享密钥,完成密钥更新。
4.如上述权利要求3所述的方法,在源设备和目的设备之间使用双向重新认证方式进行认证和密钥更新时,具有以下步骤:
a)源设备读取源设备证书中的证书唯一标志ID_Source,计算随机数Rand_Source,发送源设备的证书唯一标志和该随机数:
ID_Source||Rand_Source;
b)目的设备验证接收的ID_Source和本地存储的ID_Source是否一致;若一致,则读取目的设备证书中的证书唯一标志ID_Des,计算随机数Rand_Des,使用HMAC密钥杂凑函数Hash,以共享密钥K_M的高|K_M|/2位比特为密钥对ID_Source||Rand_Source||ID_Des||Rand_Des进行杂凑,获得杂凑值Des_HashValue,发送目的设备的证书唯一标志、随机数和杂凑值:
ID_Des||Rand_Des||Des_HashValue;
c)源设备验证接收的ID_Des和本地存储的ID_Des是否一致,若一致,则验证接收的杂凑值Des_HashValue;使用HMAC密钥杂凑函数Hash,以共享密钥K_M的低|K_M|/2位比特为密钥,对ID_Des||Rand_Des进行杂凑,获得杂凑值Source_HashValue值,发送该杂凑值给目的设备;之后使用Hash以当前共享密钥K_M为密钥,对Rand_Des||Rand_Source进行杂凑,获得新的共享密钥:
K_M=Hash(K_M,Rand_Des||Rand_Source);
d)目的设备验证接收的杂凑值Source_HashValue,验证通过则使用Hash,以当前共享密钥K_M为密钥,对Rand_Des||Rand_Source进行杂凑,获得新的共享密钥:
K_M=Hash(K_M,Rand_Des||Rand_Source)。
5.一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,其特征在于,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;
所述的单向认证和双向认证方式分别包括完全认证和重新认证,在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;其中,
单向完全认证方式是在被认证方具有证书列表的情况下,确认被认证方确实具有其发送证书的私钥,从而确定被认证方的身份;在确认被认证方身份的同时,通信双方通过交换的随机数生成双方独享的共享秘钥,并能由认证方确认该共享密钥的一致性。
6.如权利要求5所述的方法,在源设备和目的设备之间使用单向完全认证方式进行认证和密钥协商时,通过以下步骤在椭圆曲线(Fq,E,G,n)上实现,其中Fq是特征为q的有限域,E是Fq上的椭圆曲线,G为E上的基点,n为G的阶:
a)源设备计算随机数1<x<n,计算标量乘xG,发送源设备的证书唯一标志和标量乘:
ID_Source||xG;
b)目的设备计算随机数1<y<n,计算标量乘yG,计算共享秘钥xyG,使用HMAC密钥杂凑函数Hash,以xyG低位的|q|比特[xyG]lsb|q|为密钥,对源设备的证书唯一标志ID_Source进行杂凑,使用目的设备的私钥对该杂凑值使用签名算法E_S签名,发送以下内容给源设备:
Cert_Des_list||yG||E_S{Hash([xyG]lsb|q|,ID_Source)};其中,Cert_Des_list是目的设备证书列表,yG是标量乘,[xyG]lsb|q|为xyG低位的|q|比特,ID_Source为源设备的证书唯一标志,Hash()表示使用HMAC进行杂凑生成杂凑值,E_S{}表示使用签名算法进行签名,且签名中需用到目的设备的私钥;
使用Hash函数以xyG为密钥对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,存储数据对<K_M,ID_Source>;其中xG是标量乘,ID_Des是目的设备的证书唯一标志;
c)源设备验证目的设备证书是否被吊销,验证目的设备证书列表中证书各个域的内容,计算共享秘钥xyG,验证接收的目的设备签名的正确性;使用HMAC密钥杂凑函数Hash,以xyG为密钥,对ID_Source||xG||ID_Des||yG进行杂凑,其结果作为双方的共享密钥K_M,确认目的设备证书没有被吊销,存储数据对<K_M,ID_Des>。
7.一种用于电子设备接口间基于公钥的认证密钥协商和更新方法,其特征在于,参与认证密钥协商的源设备和目的设备根据各自接口的配置信息,选择单向认证方式或者双向认证方式,通过使用Diffie-Hellman密钥交换技术生成共享秘钥;通过HMAC密钥杂凑函数保证所生成的共享秘钥的一致性和消息的完整性;
所述的单向认证和双向认证方式分别包括完全认证和重新认证,在完全认证的情况下,在源设备和目的设备不具有共享密钥K_M的情况下,通过使用签名技术来保证证书的发送者确实持有与证书中公钥相对应的私钥,从而确定设备的合法性;在重新认证的情况下,通过通信双方持有共享密钥这一事实来确认设备的合法性;其中,
单向重新认证方式是在作为通信双方的源设备和目的设备具有共享密钥K_M的情况下,由认证方确认被认证方确实拥有与认证方相同的共享秘钥;在确认共享秘钥的一致性之后,通信双方通过认证方所发送的随机数来更新双方的共享密钥,完成密钥更新;被认证方身份的确认通过认证方身份与共享密钥的绑定完成。
8.如上述权利要求7所述的方法,在源设备和目的设备之间采用单向重新认证方式进行认证和密钥更新时,具有以下步骤:
a)源设备计算随机数Rand_Source,发送源设备的证书唯一标志和该随机数:
ID_Source||Rand_Source;
b)目的设备验证接收的ID_Source和本地存储的ID_Source是否一致;若一致,使用HMAC密钥杂凑函数Hash以共享密钥K_M的低|K_M|/2位比特为密钥,对ID_Source||Rand_Source进行杂凑,获得杂凑值Uni_Des_HashValue值,发送目的设备的证书唯一标志ID_Des和杂凑值:
ID_Des||Uni_Des_HashValue;
使用Hash,以K_M为密钥,对Rand_Source进行杂凑,获得新的共享密钥K_M;
c)源设备验证接收的ID_Des和本地存储的ID_Des是否一致,若一致,则验证杂凑值Uni_Des_HashValue;使用HMAC密钥杂凑函数Hash以K_M为密钥,对Rand_Source进行杂凑,获得新的共享密钥K_M。
CN2005101243425A 2005-11-28 2005-11-28 电子设备接口间基于公钥证书的认证密钥协商和更新方法 Expired - Fee Related CN1832397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2005101243425A CN1832397B (zh) 2005-11-28 2005-11-28 电子设备接口间基于公钥证书的认证密钥协商和更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2005101243425A CN1832397B (zh) 2005-11-28 2005-11-28 电子设备接口间基于公钥证书的认证密钥协商和更新方法

Publications (2)

Publication Number Publication Date
CN1832397A CN1832397A (zh) 2006-09-13
CN1832397B true CN1832397B (zh) 2010-09-29

Family

ID=36994422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101243425A Expired - Fee Related CN1832397B (zh) 2005-11-28 2005-11-28 电子设备接口间基于公钥证书的认证密钥协商和更新方法

Country Status (1)

Country Link
CN (1) CN1832397B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739660A (zh) * 2012-06-16 2012-10-17 华南师范大学 一种单点登录***的密钥交换方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833068B (zh) * 2011-06-15 2017-05-17 中兴通讯股份有限公司 一种终端与智能卡双向认证的方法、协议及智能卡
CN102904714B (zh) * 2011-07-25 2016-03-30 深圳市金溢科技股份有限公司 用于密钥加密通信***中的加密密钥交换方法
CN102983971B (zh) * 2012-10-10 2015-07-15 中国科学技术大学苏州研究院 网络环境中进行用户身份认证的无证书签名方法
CN105684344B (zh) 2013-10-28 2019-06-11 华为终端有限公司 一种密钥配置方法和装置
KR20150064647A (ko) * 2013-12-03 2015-06-11 삼성전자주식회사 컨텐츠 보안 방법 및 컨텐츠 보안 기능을 제공하는 단말기
CN105227309B (zh) * 2014-06-17 2019-01-08 上海崴澜网络科技有限公司 用于物联网终端与云端通讯的加密方法
FR3024808B1 (fr) * 2014-08-05 2016-07-29 Inside Secure Procede de cryptographie sur courbe elliptique comprenant une detection d’erreur
CN105812136A (zh) * 2014-12-30 2016-07-27 北京握奇智能科技有限公司 一种更新方法及***、安全认证设备
CN106603182A (zh) * 2015-10-16 2017-04-26 北京邮电大学 一种面向空间环境的安全的时间同步方法
US10505744B2 (en) * 2017-06-29 2019-12-10 Intel Corporation Technologies for robust computation of elliptic curve digital signatures
EP3709566B1 (en) * 2017-11-10 2023-08-23 Nippon Telegraph And Telephone Corporation Key exchange device, key exchange system, key exchange method, and key exchange program
US10797868B2 (en) * 2018-05-31 2020-10-06 Irdeto B.V. Shared secret establishment
CN109040149A (zh) * 2018-11-02 2018-12-18 美的集团股份有限公司 密钥协商方法、云服务器、设备、存储介质以及***
CN109687957A (zh) * 2018-12-26 2019-04-26 无锡泛太科技有限公司 一种基于椭圆双曲线的公钥加密机制的rfid认证方法
JP7451738B2 (ja) * 2020-02-29 2024-03-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 鍵更新方法および関連装置
CN112260987B (zh) * 2020-09-10 2021-12-21 西安电子科技大学 一种数字内容保护***中双向安全认证方法及***
CN112738038B (zh) * 2020-12-17 2024-05-28 北京握奇智能科技有限公司 一种基于非对称口令认证的密钥协商的方法和装置
CN112632475B (zh) * 2020-12-30 2024-03-29 郑州轻工业大学 一种基于国密和图片隐写的图片版权保护***及保护方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1449153A (zh) * 2003-04-23 2003-10-15 浙江大学 一种基于公钥证书的密钥交换方法
CN1667999A (zh) * 2005-01-18 2005-09-14 中国电子科技集团公司第三十研究所 一种移动自组网络中移动节点间的保密通信方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1449153A (zh) * 2003-04-23 2003-10-15 浙江大学 一种基于公钥证书的密钥交换方法
CN1667999A (zh) * 2005-01-18 2005-09-14 中国电子科技集团公司第三十研究所 一种移动自组网络中移动节点间的保密通信方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
同上.
安之廷.Web服务加密与签名技术研究.大连理工大学硕士学位论文.2003,第12,13页. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102739660A (zh) * 2012-06-16 2012-10-17 华南师范大学 一种单点登录***的密钥交换方法

Also Published As

Publication number Publication date
CN1832397A (zh) 2006-09-13

Similar Documents

Publication Publication Date Title
CN1832397B (zh) 电子设备接口间基于公钥证书的认证密钥协商和更新方法
CN109559122B (zh) 区块链数据传输方法及区块链数据传输***
US10003604B2 (en) Authenticated communication between security devices
CA2359673C (en) Self-generation of certificates using a secure microprocessor in a device for transferring digital information
US6839841B1 (en) Self-generation of certificates using secure microprocessor in a device for transferring digital information
US5949877A (en) Content protection for transmission systems
EP0651533B1 (en) Method and apparatus for privacy and authentication in a mobile wireless network
CN101431415B (zh) 一种双向认证的方法
US8527764B2 (en) Method and system for secure communication
US8806206B2 (en) Cooperation method and system of hardware secure units, and application device
JP2008527833A (ja) 認証方法、暗号化方法、復号方法、暗号システム及び記録媒体
CN101610150B (zh) 第三方数字签名方法和数据传输***
CN101378320B (zh) 一种认证方法和认证***
CN111181723B (zh) 物联网设备间离线安全认证的方法和装置
JP2020532928A (ja) デジタル署名方法、装置及びシステム
CN111030814A (zh) 秘钥协商方法及装置
CN111934884B (zh) 一种证书管理方法及装置
CN105610773A (zh) 一种电能表远程抄表的通讯加密方法
CN114726546B (zh) 数字身份认证方法、装置、设备和存储介质
CN111539496A (zh) 车辆信息二维码生成方法、二维码车牌、认证方法及***
CN111224784A (zh) 一种基于硬件可信根的角色分离的分布式认证授权方法
JP4976633B2 (ja) データの安全な伝送のための方法および装置
WO2022135391A1 (zh) 身份鉴别方法、装置、存储介质、程序、及程序产品
CN101141278B (zh) 数据传输***、数据发送方法、数据处理方法及相应装置
CN111490874A (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
ASS Succession or assignment of patent right

Owner name: SICHUAN CHANGHONG ELECTRIC CO., LTD.

Free format text: FORMER OWNER: BEIJING POWER DIGITAL TECHLABS CO., LTD.

Effective date: 20100609

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

Free format text: CORRECT: ADDRESS; FROM: 100016 ROOM AE26-28, 2/F, BUILDING 51, NO.14, JIUXIANQIAO ROAD, CHAOYANG DISTRICT, BEIJING TO: 621000 NO.35, MIANXING EAST ROAD, MIANYANG CITY HIGH-TECH ZONE, SICHUAN PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20100609

Address after: 621000 Mianyang province high tech Zone, East Hing Road, No. 35 cotton

Applicant after: Sichuan Changhong Electrical Appliance Co., Ltd.

Address before: 100016, room two, building 51, building 14, Jiuxianqiao Road, Chaoyang District, Beijing,

Applicant before: Beijing Puaode Ditial Technology Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20201128

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