基于哈希函数的双向认证方法及系统转让专利

申请号 : CN200910168758.5

文献号 : CN101662366B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 庞辽军曹军铁满霞黄振海

申请人 : 西安西电捷通无线网络通信股份有限公司

摘要 :

本发明涉及一种基于哈希函数的双向认证方法及系统,该方法包括:1)由读写器READER发送认证激活分组给电子标签TAG;2)TAG构造并发送认证请求分组给READER;3)构造并发送密钥请求分组给电子标签应用系统数据库DB;4)向认证服务器AS发送证书鉴别请求分组;5)向DB发送证书鉴别响应分组;6)向READER发送密钥响应分组;7)向TAG发送认证响应分组;8)向READER发送认证确认分组。本发明提供了一种可实现数据库和读写器之间无需安全链接、并能进行双向认证、以及合理利用设备性能的基于哈希函数的双向认证方法及系统。

权利要求 :

1.一种基于哈希函数的双向认证方法,其特征在于:该方法包括以下步骤:

1)认证激活:由读写器READER发送认证激活分组给电子标签TAG,本分组内容为空,主要完成读写器READER对电子标签TAG提供能量;

2)认证请求:当电子标签TAG收到认证激活分组后,电子标签TAG构造并发送认证请求分组给读写器READER;

3)密钥请求:当读写器READER收到认证请求分组后,构造并发送密钥请求分组给电子标签应用系统数据库DB;

4)证书鉴别请求:当电子标签应用系统数据库DB收到密钥请求分组后向认证服务器AS发送证书鉴别请求分组;

5)证书鉴别响应:当认证服务器AS收到证书鉴别请求分组后向电子标签应用系统数据库DB发送证书鉴别响应分组;

6)密钥响应:当电子标签应用系统数据库DB收到证书鉴别响应分组后向读写器READER发送密钥响应分组;

7)认证响应:当读写器READER收到密钥响应分组后向电子标签TAG发送认证响应分组;

8)认证确认:当电子标签TAG收到认证响应分组后向读写器READER发送认证确认分组;

9)当读写器READER收到认证确认分组后,由读写器READER验证N4字段是否是自己选取的随机数;若不是,则丢弃该分组;若是,则判断本地重新计算MIC3字段与接收到的MIC3是否相等;若不相等,则丢弃该分组;若相等,则计算得到电子标签TAG的真实身份标识ID;

所述密钥请求和密钥响应分组成对出现,并且仅当读写器READER上没有密钥SK时使用这两个分组请求从电子标签应用系统数据库DB获取密钥SK;所述证书鉴别请求和证书鉴别响应分组成对出现,并且仅当电子标签应用系统数据库DB需要进行证书有效性验证时使用这两个分组;

其中:

N4字段:读写器READER选取的一次性随机数;

MIC3字段:读写器READER对本字段前所有字段计算的完整性校验。

2.根据权利要求1所述的基于哈希函数的双向认证方法,其特征在于:所述步骤2)中认证请求分组内容包括:PID字段、N1字段和MIC1字段,其中:

PID字段:电子标签TAG当前的伪身份标识;

N1字段:电子标签TAG选取的一次性随机数;

MIC1字段:电子标签TAG利用SK对本字段之前所有字段计算的消息完整性校验,其中SK是电子标签TAG存储的预共享密钥。

3.根据权利要求2所述的基于哈希函数的双向认证方法,其特征在于:所述步骤3)中密钥请求分组内容包括:PID字段、N1字段、MIC1字段、N2字段、CERT_R字段和CN2字段,其中:PID字段:其值与认证请求分组中的PID字段值相同;

N1字段:其值与认证请求分组中的N1字段值相同;

MIC1字段:其值与认证请求分组中的MIC1字段值相同;

N2字段:读写器READER选取的一次性随机数;

CERT_R字段:读写器READER的数字证书;

CN2字段:N2的密文,使用读写器READER的私钥对N2的加密,即CN2=ES(N2;读写器READER)。

4.根据权利要求3所述的基于哈希函数的双向认证方法,其特征在于:所述步骤4)中电子标签应用系统数据库DB收到密钥请求分组后,电子标签应用系统数据库DB利用PID对应的SK本地重新计算MIC1并与接收到的MIC1进行比较,如果不相等,进行错误处理并通知读写器READER;如果相等,利用读写器READER的公钥解密CN2得到N2,并与接收到的N2值进行比较,如果不相等,则丢弃该分组,如果相等,构造并发送证书鉴别请求分组给认证服务器AS,该证书鉴别请求分组的内容包括:N2字段、CERT_R字段、N3字段、CERT_D字段和SIG_D字段,其中:

N2字段:其值与密钥请求分组中的N2字段值相同;

CERT_R字段:其值与密钥请求分组中的CERT_R字段值相同;

N3字段:电子标签应用系统数据库DB选取的一次性随机数;

CERT_D字段:电子标签应用系统数据库DB的数字证书;

SIG_D字段:电子标签应用系统数据库DB对本字段前所有字段的签名。

5.根据权利要求4所述的基于哈希函数的双向认证方法,其特征在于:所述步骤5)中当认证服务器AS收到证书鉴别请求分组后,认证服务器AS验证电子标签应用系统数据库DB的签名是否正确;若不正确,则丢弃该分组;若正确,则验证CERT_D和CERT_R的有效性,并根据验证结果构造并发送证书鉴别响应分组给电子标签应用系统数据库DB;该证书鉴别响应分组的内容包括:N2字段、CERT_R字段、N3字段、CERT_D字段、RES_R字段、RES_D字段和SIG_A字段,其中:

N2字段:其值与证书鉴别请求分组中的N2字段值相同;

CERT_R字段:其值与证书鉴别请求分组中的CERT_R字段值相同;

N3字段:其值与证书鉴别请求分组中的N3字段值相同;

CERT_D字段:其值与证书鉴别请求分组中的CERT_D字段值相同;

RES_R字段:认证服务器AS对CERT_R的验证结果;

RES_D字段:认证服务器AS对CERT_D的验证结果;

SIG2_A字段:认证服务器AS对本字段前所有字段的签名。

6.根据权利要求5所述的基于哈希函数的双向认证方法,其特征在于:所述步骤6)中当电子标签应用系统数据库DB收到证书鉴别响应分组后,电子标签应用系统数据库DB验证N3是否是自己选取的随机数;若否,则丢弃该分组;若是,则验证认证服务器AS的签名是否有效;若无效,则丢弃该分组;若有效,则判断通过RES_R字段得到读写器READER证书是否合法;若证书不合法,则进行错误处理并通知读写器READER;若合法,则构造并发送密钥响应分组给读写器READER;该密钥响应分组的内容包括:N2字段、N3字段、CERT_D字段、RES_R字段、RES_D字段、SIG_A字段、CK字段、R字段和SIG_D字段,其中:

N2字段:其值与密钥请求分组中的N2字段值相同;

N3字段:其值与证书鉴别响应分组中的N3字段值相同;

CERT_D字段:其值与证书鉴别响应分组中的CERT_D字段值相同;

RES_R字段:其值与证书鉴别响应分组中的RES_R字段值相同;

RES_D字段:其值与证书鉴别响应分组中的RES_D字段值相同;

SIG_A字段:其值与证书鉴别响应分组中的SIG_A字段值相同;

CK字段:电子标签应用系统数据库DB发送给读写器READER的密钥密文,其计算方法为:首先利用SK导出三个密钥K1、K2和K3,然后,用读写器READER的公钥加密得到CK,即CK=EP(K1‖K2‖K3;读写器READER),其中‖是消息的链接操作;

R字段:电子标签应用系统数据库DB选取的一次性随机数,用于PID和SK的更新,更新方法为PID=H(PID;R),H(PID;R)是使用哈希函数H对PID和R求杂凑值;SK=H(SK;

R),H(SK;R)是使用哈希函数H对SK和R求杂凑值;

SIG_D字段:电子标签应用系统数据库DB对本字段前所有字段的签名。

7.根据权利要求6所述的基于哈希函数的双向认证方法,其特征在于:所述步骤7)中当读写器READER收到密钥响应分组后,由读写器READER验证N2是否是自己选取的随机数;若不是,则丢弃该分组;若是,则验证认证服务器AS的签名是否有效;若否,则丢弃该分组;若是,则判断根据RES_D字段得到电子标签应用系统数据库DB证书是否合法;若不合法,则丢弃该分组;若合法,则验证电子标签应用系统数据库DB的签名是否有效;若无效,则丢弃该分组;若有效,则利用私钥解密求得密钥K1、K2和K3;由读写器READER构造并发送认证响应分组给电子标签TAG,该认证响应分组的内容包括:N1字段、R字段、VABC字段、N4字段、MIC2字段,其中:

N1字段:其值与认证请求分组中的N1字段值相同;

R字段:其值与密钥响应分组中的R字段值相同;

VABC字段:读写器READER生成的用于验证电子标签TAG身份的信息,其中VABC的计算如下:首先VA=PID⊕K1⊕W1; VC=PID+K3+W2,令VABC=VA‖VB‖VC,这里W1和W2为读写器READER随机选取的秘密随机数,⊕是逐位异或运算;

是逐位或运算;+是模加法运算;

N4字段:读写器READER选取的一次性随机数;

MIC2字段:读写器READER对本字段前所有字段计算的完整性校验,即MIC2=H(N1;R;

VABC;N4;K1;K2;K3;W1;W2),其中H(N1;R;VABC;N4;K1;K2;K3;W1;W2)是使用哈希函数H对N1、R、VABC、N4、K1、K2、K3、W1及W2求杂凑值。

8.根据权利要求7所述的基于哈希函数的双向认证方法,其特征在于:所述步骤8)中当电子标签TAG收到认证响应分组后,电子标签TAG验证N1是否是自己选取的随机数;若不是,则丢弃该分组;若是,则利用SK导出密钥K1、K2、K3,根据VABC得到VA、VB和VC,重新计算得到W1和W2;然后本地重新计算MIC2与接收到的MIC2是否相等;若不相等,则丢弃该分组;若相等,构造并发送认证确认分组给读写器READER,同时,根据R更新PID和SK分别为PID=H(PID;R)和SK=H(SK;R);该认证确认分组的内容包括:N4字段、VD字段和MIC3字段,其中:

N4字段:其值与认证响应分组中的N1字段值相同;

VD字段:电子标签TAG生成的用于再次确认读写器READER身份的信息;其中VD的计算为=(PID+ID)⊕W1⊕W2;

MIC3字段:读写器READER对本字段前所有字段计算的完整性校验,即MIC=H(N4;VD;

K1;K2;K3;W1;W2)。

9.一种基于哈希函数的双向认证系统,其特征在于:所述系统包括:读写器READER、电子标签TAG、系统数据库DB以及认证服务器AS,所述读写器READER、电子标签TAG、系统数据库DB以及认证服务器AS具有以下操作的能力:

1)认证激活:由读写器READER发送认证激活分组给电子标签TAG,本分组内容为空,主要完成读写器READER对电子标签TAG提供能量;

2)认证请求:当电子标签TAG收到认证激活分组后,电子标签TAG构造并发送认证请求分组给读写器READER;

3)密钥请求:当读写器READER收到认证请求分组后,构造并发送密钥请求分组给电子标签应用系统数据库DB;

4)证书鉴别请求:当电子标签应用系统数据库DB收到密钥请求分组后向认证服务器AS发送证书鉴别请求分组;

5)证书鉴别响应:当认证服务器AS收到证书鉴别请求分组后向电子标签应用系统数据库DB发送证书鉴别响应分组;

6)密钥响应:当电子标签应用系统数据库DB收到证书鉴别响应分组后向读写器READER发送密钥响应分组;

7)认证响应:当读写器READER收到密钥响应分组后向电子标签TAG发送认证响应分组;

8)认证确认:当电子标签TAG收到认证响应分组后向读写器READER发送认证确认分组;

9)当读写器READER收到认证确认分组后,由读写器READER验证N4字段是否是自己选取的随机数;若不是,则丢弃该分组;若是,则判断本地重新计算MIC3字段与接收到的MIC3是否相等;若不相等,则丢弃该分组;若相等,则计算得到电子标签TAG的真实身份标识ID;

所述密钥请求和密钥响应分组成对出现,并且仅当读写器READER上没有密钥SK时使用这两个分组请求从电子标签应用系统数据库DB获取密钥SK;所述证书鉴别请求和证书鉴别响应分组成对出现,并且仅当电子标签应用系统数据库DB需要进行证书有效性验证时使用这两个分组;

其中:

N4字段:读写器READER选取的一次性随机数;

MIC3字段:读写器READER对本字段前所有字段计算的完整性校验。

说明书 :

基于哈希函数的双向认证方法及系统

技术领域

[0001] 本发明涉及一种在无线网络领域中应用的双向认证方法和系统,尤其涉及一种基于哈希函数的双向认证方法及系统。

背景技术

[0002] 对于无线网络来说,如无线局域网或无线城域网等,其安全问题远比有线以太网严重的多。射频识别标签(RFID)同样面临安全问题,在进行安全通信之前,必须有效地解决RFID中读写器和电子标签之间的安全认证及密钥协商问题。
[0003] 电子标签通常是一个低性能设备,处理能力较低;而读写器、数据库服务器等设备性能一般较高,其处理能力不受限制,能够满足如PC机上的各种运算和操作。因此,在设计电子标签应用系统时,电子标签的性能就会成为一个瓶颈,需要根据电子标签性能来确定所采用的设计方案。安全认证方案的设计也不例外。
[0004] 如果电子标签的设备性能较高,可以采用现有的无线网络的安全方案,如无线局域网IEEE802.11i、无线城域网IEEE802.16e等安全方案来实现电子标签与读写器之间的双向认证。如果电子标签性能较低,需要设计一些特殊的安全方案,在性能和安全性方面达到一个折中。
[0005] 目前所采用的一些方案需要读写器和服务器互相可信,一般情况下由于它们不在同一地理位置,因此在实际运用中所采用的该种技术方案是不可行的。
[0006] 基于公钥系统的认证方案尽管灵活、扩展性好,但是其所需要的公钥运算对低性能电子标签来说是不合适的。与公钥运算、对称加密相比较而言,哈希函数所涉及的运算主要是移位和位运算,性能较高,能够适合低性能设备,即使对于对称加密算法来说,其运算复杂性也能高一、两个数量级。

发明内容

[0007] 为了解决背景技术中存在的上述技术问题,本发明提供了一种可实现数据库和读写器之间无需安全链接、并能进行双向认证、以及合理利用设备性能的基于哈希函数的双向认证方法及系统。
[0008] 本发明的技术解决方案是:本发明提供了一种基于哈希函数的双向认证方法,其特殊之处在于:该方法包括以下步骤:
[0009] 1)认证激活:由读写器READER发送认证激活分组给电子标签TAG,本分组内容为空,主要完成读写器READER对电子标签TAG提供能量;
[0010] 2)认证请求:当电子标签TAG收到认证激活分组后,电子标签TAG构造并发送认证请求分组给读写器READER;
[0011] 3)密钥请求:当读写器READER收到认证请求分组后,构造并发送密钥请求分组给电子标签应用系统数据库DB;
[0012] 4)证书鉴别请求:当电子标签应用系统数据库DB收到密钥请求分组后向认证服务器AS发送证书鉴别请求分组;
[0013] 5)证书鉴别响应:当认证服务器AS收到证书鉴别请求分组后向电子标签应用系统数据库DB发送证书鉴别响应分组;
[0014] 6)密钥响应:当电子标签应用系统数据库DB收到证书鉴别响应分组后向读写器READER发送密钥响应分组;
[0015] 7)认证响应:当读写器READER收到密钥响应分组后向电子标签TAG发送认证响应分组;
[0016] 8)认证确认:当电子标签TAG收到认证响应分组后向读写器READER发送认证确认分组。
[0017] 上述步骤2)中认证请求分组内容包括:PID字段、N1字段和MIC1字段,[0018] 其中:
[0019] PID字段:电子标签TAG当前的伪身份标识;
[0020] N1字段:电子标签TAG选取的一次性随机数;
[0021] MIC1字段:电子标签TAG利用SK对本字段之前所有字段计算的消息完整性校验。
[0022] 上述步骤3)中密钥请求分组内容包括:PID字段、N1字段、MIC1字段、N2字段、CERT_R字段和CN2字段,
[0023] 其中:
[0024] PID字段:其值与认证请求分组中的PID字段值相同;
[0025] N1字段:其值与认证请求分组中的N1字段值相同;
[0026] MIC1字段:其值与认证请求分组中的MIC1字段值相同;
[0027] N2字段:读写器READER选取的一次性随机数;
[0028] CERT_R字段:读写器READER的数字证书;
[0029] CN2字段:N2的密文,使用读写器READER的私钥加密,即CN2=ES(N2;读写器READER)。
[0030] 上述步骤4)中电子标签应用系统数据库DB收到密钥请求分组后,电子标签应用系统数据库DB利用PID对应的SK本地重新计算MIC1并与接收到的MIC1进行比较,如果不相等,进行错误处理并通知读写器READER;如果相等,利用读写器READER的公钥解密CN2得到N2,并与接收到的N2值进行比较,如果不相等,则丢弃该分组,如果相等,构造并发送证书鉴别请求分组给认证服务器AS,该证书鉴别请求分组的内容包括:N2字段、CERT_R字段、N3字段、CERT_D字段和SIG_D字段,
[0031] 其中:
[0032] N2字段:其值与密钥请求分组中的N2字段值相同;
[0033] CERT_R字段:其值与密钥请求分组中的CERT_R字段值相同;
[0034] N3字段:电子标签应用系统数据库DB选取的一次性随机数;
[0035] CERT_D字段:电子标签应用系统数据库DB的数字证书;
[0036] SIG_D字段:电子标签应用系统数据库DB对本字段前所有字段的签名。
[0037] 上述步骤5)中当认证服务器AS收到证书鉴别请求分组后,认证服务器AS验证电子标签应用系统数据库DB的签名是否正确?若不正确,则丢弃该分组;若正确,则验证CERT_D和CERT_R的有效性,并根据验证结果构造并发送证书鉴别响应分组给电子标签应用系统数据库DB;该证书鉴别响应分组的内容包括:N2字段、CERT_R字段、N3字段、CERT_D字段、RES_R字段、RES_D字段和SIG_A字段,
[0038] 其中:
[0039] N2字段:其值与证书鉴别请求分组中的N2字段值相同;
[0040] CERT_R字段:其值与证书鉴别请求分组中的CERT_R字段值相同;
[0041] N3字段:其值与证书鉴别请求分组中的N3字段值相同;
[0042] CERT_D字段:其值与证书鉴别请求分组中的CERT_D字段值相同;
[0043] RES_R字段:认证服务器AS对CERT_R的验证结果;
[0044] RES_D字段:认证服务器AS对CERT_D的验证结果;
[0045] SIG_A字段:认证服务器AS对本字段前所有字段的签名。
[0046] 上述步骤6)中当电子标签应用系统数据库DB收到证书鉴别响应分组后,电子标签应用系统数据库DB验证N3是否是自己选取的随机数?若否,则丢弃该分组;若是,则验证认证服务器AS的签名是否有效?若无效,则丢弃该分组;若有效,则判断通过RES_R字段得到读写器READER证书是否合法?若证书不合法,则进行错误处理并通知读写器READER;若合法,则构造并发送密钥响应分组给读写器READER;该密钥响应分组的内容包括:N2字段、N3字段、CERT_D字段、RES_R字段、RES_D字段、SIG_A字段、CK字段、R字段和SIG_D字段,
[0047] 其中:
[0048] N2字段:其值与密钥请求分组中的N2字段值相同;
[0049] N3字段:其值与证书鉴别响应分组中的N3字段值相同;
[0050] CERT_D字段:其值与证书鉴别响应分组中的CERT_D字段值相同;
[0051] RES_R字段:其值与证书鉴别响应分组中的RES_R字段值相同;
[0052] RES_D字段:其值与证书鉴别响应分组中的RES_D字段值相同;
[0053] SIG_A字段:其值与证书鉴别响应分组中的SIG_A字段值相同;
[0054] CK字段:电子标签应用系统数据库DB发送给读写器READER的密钥密文,其计算方法为:首先利用SK导出三个密钥K1、K2和K3,然后,用读写器READER的公钥加密得到CK,即CK=EP(K1||K2||K3;读写器READER);
[0055] R字段:电子标签应用系统数据库DB选取的一次性随机数,用于PID和SK的更新,更新方法为PID=H(PID,R);SK=H(SK,R);
[0056] SIG_D字段:电子标签应用系统数据库DB对本字段前所有字段的签名。
[0057] 上述步骤7)中当读写器READER收到密钥响应分组后,由读写器READER验证N2是否是自己选取的随机数?若不是,则丢弃该分组;若是,则验证认证服务器AS的签名是否有效?若否,则丢弃该分组;若是,则判断根据RES_D字段得到电子标签应用系统数据库DB证书是否合法?若不合法,则丢弃该分组;若合法,则验证电子标签应用系统数据库DB的签名是否有效?若无效,则丢弃该分组;若有效,则利用私钥解密求得密钥K1、K2和K3;由读写器READER构造并发送认证响应分组给电子标签TAG,该认证响应分组的内容包括:
N1字段、R字段、VABC字段、N4字段、MIC2字段,
[0058] 其中:
[0059] N1字段:其值与认证请求分组中的N1字段值相同;
[0060] R字段:其值与密钥响应分组中的R字段值相同;
[0061] VABC字段:读写器READER生成的用于验证电子标签TAG身份的信息。其中VABC的计算如下:首先 VC=PID+K3+W2,令VABC=VA||VB||VC。这里W1和W2为读写器READER随机选取的秘密随机数;
[0062] N4字段:读写器READER选取的一次性随机数;
[0063] MIC2字段:读写器READER对本字段前所有字段计算的完整性校验,即MIC2=H(N1;R;VABC;N4;K1;K2;K3;W1;W2)。
[0064] 上述步骤8)中当电子标签TAG收到认证响应分组后,电子标签TAG验证N1是否是自己选取的随机数?若不是,则丢弃该分组;若是,则利用SK导出密钥K1、K2、K3,根据VABC得到VA、VB和VC,重新计算得到W1和W2;然后本地重新计算MIC2与接收到的MIC2是否相等?若不相等,则丢弃该分组;若相等,构造并发送认证确认分组给读写器READER,同时,根据R更新PID和SK分别为PID=H(PID,R)和SK=H(SK,R);该认证确认分组的内容包括:N4字段、VD字段和MIC3字段,
[0065] 其中:
[0066] N4字段:其值与认证响应分组中的N1字段值相同;
[0067] VD字段:电子标签TAG生成的用于再次确认读写器READER身份的信息。其中VD的计算为
[0068] MIC3字段:读写器READER对本字段前所有字段计算的完整性校验,即MIC=H(N4;VD;K1;K2;K3;W1;W2)。
[0069] 上述步骤8)中之后还包括步骤9)当读写器READER收到认证确认分组后,由读写器READER验证N4是否是自己选取的随机数?若不是,则丢弃该分组;若是,则判断本地重新计算MIC3并与接收到的MIC3是否相等?若不相等,则丢弃该分组;若相等,则计算得到电子标签TAG的真实身份标识ID。
[0070] 一种用于实现基于哈希函数的双向认证方法的认证系统,其特殊之处在于:所述系统包括:电子标签TAG、读写器READER、用于实现电子标签TAG和读写器READER基于哈希函数的双向认证的电子标签应用系统数据库DB以及认证服务器AS;所述电子标签TAG和读写器READER连接;所述电子标签应用系统数据库DB分别和认证服务器AS以及读写器READER连接。
[0071] 本发明的优点是:
[0072] 1、数据库和读写器之间无需安全链接。本发明所提供的电子标签和数据库之间的双向认证方法,主要是在无线通信网络之间进行,对于数据库和读写器之间无需安全链接。
[0073] 2、本发明可实现电子标签和数据库、以及数据库和读写器之间的双向认证。
[0074] 3、能够合理利用设备性能。本发明将复杂运算放在读写器和数据库执行,而电子标签的最复杂运算为哈希运算,能够合理利用设备性能。

附图说明

[0075] 图1为本发明认证方法的流程示意图。

具体实施方式

[0076] 参见图1,本发明提供了一种基于哈希函数的双向认证方法,该方法包括以下步骤:
[0077] 1)认证激活:该认证激活分组由读写器READER发送给电子标签TAG。本分组内容为空,主要完成读写器READER对电子标签TAG提供能量。
[0078] 收到认证激活分组后,电子标签TAG构造并发送认证请求分组给读写器READER。
[0079] 2)认证请求:该认证请求分组由电子标签TAG发送给读写器READER。认证请求分组内容包括:
[0080]PID N1 MIC1
[0081] 其中:
[0082] PID字段:电子标签TAG当前的伪身份标识;
[0083] N1字段:电子标签TAG选取的一次性随机数;
[0084] MIC1字段:电子标签TAG利用SK对本字段之前所有字段计算的消息完整性校验。
[0085] 收到认证请求分组后,读写器READER构造并发送密钥请求分组给电子标签应用系统数据库DB。
[0086] 3)密钥请求:该密钥请求分组由读写器READER发送给电子标签应用系统数据库DB。密钥请求分组内容包括:
[0087]PID N1 MIC1 N2 CERT_R CN2
[0088] 其中:
[0089] PID字段:其值与认证请求分组中的PID字段值相同;
[0090] N1字段:其值与认证请求分组中的N1字段值相同;
[0091] MIC1字段:其值与认证请求分组中的MIC1字段值相同;
[0092] N2字段:读写器READER选取的一次性随机数;
[0093] CERT_R字段:读写器READER的数字证书;
[0094] CN2字段:N2的密文,使用读写器READER的私钥加密,即CN2=ES(N2;READER)。
[0095] 收到密钥请求分组后,电子标签应用系统数据库DB利用PID对应的SK本地重新计算MIC1并与接收到的MIC1进行比较,如果不相等,进行错误处理并通知读写器READER;如果相等,则利用读写器READER的公钥解密CN2得到N2,并与接收到的N2值进行比较。如果不相等,则丢弃该分组,如果相等,则构造并发送证书鉴别请求分组给认证服务器AS。
[0096] 4)证书鉴别请求:该证书鉴别请求分组由电子标签应用系统数据库DB发送给认证服务器AS。证书鉴别请求分组内容包括:
[0097]N2 CERT_R N3 CERT_D SIG_D
[0098] 其中:
[0099] N2字段:其值与密钥请求分组中的N2字段值相同;
[0100] CERT_R字段:其值与密钥请求分组中的CERT_R字段值相同;
[0101] N3字段:电子标签应用系统数据库DB选取的一次性随机数;
[0102] CERT_D字段:电子标签应用系统数据库DB的数字证书;
[0103] SIG_D字段:电子标签应用系统数据库DB对本字段前所有字段的签名。
[0104] 收到证书鉴别请求分组后,认证服务器AS验证电子标签应用系统数据库DB的签名是否正确,如果不正确,则丢弃该分组;如果正确,则验证CERT_D和CERT_R的有效性,并根据验证结果构造并发送证书分组鉴别响应给电子标签应用系统数据库DB。
[0105] 5)证书鉴别响应:该证书鉴别响应分组由认证服务器AS发送给电子标签应用系统数据库DB。证书鉴别响应分组内容包括:
[0106]N2 CERT_R N3 CERT_D RES_R RES_D SIG_A
[0107] 其中:
[0108] N2字段:其值与证书鉴别请求分组中的N2字段值相同;
[0109] CERT_R字段:其值与证书鉴别请求分组中的CERT_R字段值相同;
[0110] N3字段:其值与证书鉴别请求分组中的N3字段值相同;
[0111] CERT_D字段:其值与证书鉴别请求分组中的CERT_D字段值相同;
[0112] RES_R字段:认证服务器AS对CERT_R的验证结果;
[0113] RES_D字段:认证服务器AS对CERT_D的验证结果;
[0114] SIG_A字段:认证服务器AS对本字段前所有字段的签名。
[0115] 收到证书鉴别响应分组后,电子标签应用系统数据库DB验证N3是否是自己选取的随机数,如果不是,则丢弃该分组,如果是,则验证认证服务器AS的签名是否有效。如果无效,则丢弃该分组;如果有效,则通过RES_R字段得到读写器READER证书的合法性。如果读写器READER证书不合法,则进行错误处理并通知读写器READER,如果读写器READER证书合法,则构造并发送密钥响应分组给读写器READER。
[0116] 6)密钥响应:该密钥响应分组由电子标签应用系统数据库DB发送给读写器READER。密钥响应分组内容包括:
[0117]N2 N3 CERT_D RES_R RES_D SIG_A CK R SIG_D
[0118] 其中:
[0119] N2字段:其值与密钥请求分组中的N2字段值相同;
[0120] N3字段:其值与证书鉴别响应分组中的N3字段值相同;
[0121] CERT_D字段:其值与证书鉴别响应分组中的CERT_D字段值相同;
[0122] RES_R字段:其值与证书鉴别响应分组中的RES_R字段值相同;
[0123] RES_D字段:其值与证书鉴别响应分组中的RES_D字段值相同;
[0124] SIG_A字段:其值与证书鉴别响应分组中的SIG_A字段值相同;
[0125] CK字段:电子标签应用系统数据库DB发送给读写器READER的密钥密文,其计算方法为:首先利用SK导出三个密钥K1、K2和K3,然后,用读写器READER的公钥加密得到CK,即CK=EP(K1||K2||K3;READER);
[0126] R字段:电子标签应用系统数据库DB选取的一次性随机数,用于PID和SK的更新。更新方法为PID=H(PID,R);SK=H(SK,R);
[0127] SIG_D字段:电子标签应用系统数据库DB对本字段前所有字段的签名。
[0128] 收到密钥响应分组后,读写器READER验证N2是否是自己选取的随机数,如果不是,则丢弃该分组,否则,验证认证服务器AS的签名是否有效。如果不是,则丢弃该分组,如果是,则根据RES_D字段得到电子标签应用系统数据库DB证书的合法性。如果不合法,则丢弃该分组,如果合法,则验证电子标签应用系统数据库DB的签名是否有效。如果无效,则丢弃该分组,如果有效,则利用私钥解密求得密钥K1、K2和K3。最后,构造并发送认证响应分组给电子标签TAG。
[0129] 7)认证响应:该认证响应分组由读写器READER发送给电子标签TAG。认证响应分组内容包括:
[0130]N1 R VABC N4 MIC2
[0131] 其中:
[0132] N1字段:其值与认证请求分组中的N1字段值相同;
[0133] R字段:其值与密钥响应分组中的R字段值相同;
[0134] VABC字段:读写器READER生成的用于验证电子标签TAG身份的信息。其中VABC的计算如下:首先 VC=PID+K3+W2,令VABC=VA||VB||VC。这里W1和W2为读写器READER随机选取的秘密随机数;
[0135] N4字段:读写器READER选取的一次性随机数;
[0136] MIC2字段:读写器READER对本字段前所有字段计算的完整性校验,即MIC2=H(N1;R;VABC;N4;K1;K2;K3;W1;W2)。
[0137] 收到认证响应分组后,电子标签TAG验证N1是否是自己选取的随机数,如果不是,则丢弃该分组,如果是,则利用SK导出密钥K1、K2、K3,根据VABC得到VA、VB和VC,重新计算得到W1和W2。然后,本地重新计算MIC2并与接收到的MIC2进行比较,如果不相等,则丢弃该分组,如果相等,则构造并发送认证确认分组给读写器READER,同时,根据R更新PID和SK分别为PID=H(PID,R)和SK=H(SK,R)。电子标签TAG完成对读写器READER的身份认证。
[0138] 8)认证确认:该认证确认分组由电子标签TAG发送给读写器READER。认证确认分组内容包括:
[0139]N4 VD MIC3
[0140] 其中:
[0141] N4字段:其值与认证响应分组中的N1字段值相同;
[0142] VD字段:电子标签TAG生成的用于再次确认读写器READER身份的信息。其中VD的计算为
[0143] MIC3字段:读写器READER对本字段前所有字段计算的完整性校验,即MIC=H(N4;VD;K1;K2;K3;W1;W2)。
[0144] 收到认证确认分组后,读写器READER验证N4是否是自己选取的随机数,如果不是,则丢弃该分组,如果是,则本地重新计算MIC3并与接收到的MIC3进行比较。如果不相等,则丢弃该分组,如果相等,则计算得到电子标签TAG的真实身份标识ID。读写器READER完成对电子标签TAG的身份认证。
[0145] 通过上述协议,电子标签TAG和读写器READER实现了双向认证,读写器READER获得电子标签TAG的真实身份标识ID;同时,电子标签TAG和电子标签应用系统数据库DB实现了对PID和SK的同步更新,用于下次认证;且在电子标签TAG和读写器READER之间共享了密钥K1、K2、K3、W1及W2,这些密钥可以被用来加密消息或进行消息完整性运算。
[0146] 另外,需要说明的是:密钥请求和密钥响应分组应成对出现,并且是可选的,仅当读写器READER上没有密钥SK时才会使用这两个分组请求从电子标签应用系统数据库DB获取密钥SK;同时,证书鉴别请求和证书鉴别响应分组应成对出现,并且是可选的,仅当电子标签应用系统数据库DB需要进行证书有效性验证时才会使用这两个分组。
[0147] 这里给出一个基于哈希函数的双向认证方案,假设电子标签、读写器及数据库之间事先没有任何安全关联,通过设计简单的操作实现电子标签和数据库之间的双向认证,其中电子标签端设备最复杂的运算是哈希运算。
[0148] 本发明在提供了一种基于哈希函数的双向认证方法的同时,还提供了一种用于实现该双向认证方法的认证系统,该系统包括:电子标签TAG、读写器READER、用于实现电子标签TAG和读写器READER基于哈希函数的双向认证的电子标签应用系统数据库DB以及认证服务器AS;电子标签TAG和读写器READER连接;电子标签应用系统数据库DB分别和认证服务器AS以及读写器READER连接。
[0149] 其中,电子标签TAG尤指无源电子标签;ID是电子标签TAG的身份标识;PID是电子标签TAG的伪身份标识;SK是电子标签TAG存储的预共享密钥,同时,数据对安全存储在DB上;CERT_R是读写器READER的数字证书;CERT_D是电子标签应用系统数据库DB的数字证书;CERT_A是认证服务器AS的数字证书;MIC是消息完整性校验;EP(m;X)是使用实体X的公钥对消息m加密;ES(m;X)是使用实体X的私钥对消息m加密;H(m1;
m2;……;m3)是使用哈希函数H对m1,m2,…,m3求杂凑值;SIG_D是电子标签应用系统数据库DB的签名;SIG_A是认证服务器AS的签名;RES_R是认证服务器AS对CERT_R的验证结果;RES_D是认证服务器AS对CERT_D的验证结果;是逐位异或运算;是逐位或运算;
+是模加法运算;||是消息的链接操作。
[0150] 本发明属电子标签系统中基于预共享密钥的认证方法(Shared-key basedRFID Authentication Protocol,SRAP)之一。