针对射频识别(RFJD)系统自身在认证和通信过程中存在的安全隐患问题,提出了一种低成本、高效、安全的RFID节点间身份认证与数据加密方案。该方案采用改进的椭圆曲线Diffie-Hellman( ECDH)算法与高级加密标准(AES)相结合的方式实现密钥分发、身份认证、通信加密功能,同时采用动态密钥算法增强了通信过程中的安全性。此外,该方案在不破坏安全强度的情况下缩减了运算规模,减少了系统资源开销。

一、加密算法介绍

1、椭圆曲线密码体制

椭圆曲线密码体制是一种近几年来逐步得到广泛应用的一种公钥密码体制,它基于1987年Koblitz构造的椭圆曲线上的离散对数问题(Elliptic Curves and Discrete LogarithmProblem,ECDLP),即:给定素数p和椭圆曲线E,对Q;kP,在已知P、Q的情况下求出小于p的正整数k。可以证明由k和p计算Q比较容易,而由Q和p计算后则比较困难。ECC密码体制可以提供最高比特强度,是一种高效可靠的密码体制。

2、高级数据加密标准

高级加密标准(Advanced Enclyption Staiidard,AES)是毒种固定128位区块长度的Rijndael加密算法,它是一种对称密钥分组迭代加密算法,其分组长度为128位,密钥长度可选为128位、192位、256位,对应算法转换轮数Nr分别为10轮、12轮、14轮。

AES的数据加密方式是通过将明文映射在一个4x4的字节矩阵上,再通过轮函数将明文矩阵与密钥经Nr+l轮迭代来实现加密。整个AES加密过程由4个过程组成:回合密钥加法变换、S盒变换、行移位变换、列混淆变换。重复执行以上4个步骤Nr轮,在最后一轮中,使用一个新的回合密钥加法变换替代列混淆变换,最终得到加密密文。而解密操作则基于加密运算的反向,该操作对收到的密文进行分组,并进行Nr轮的回合密钥加法变换、反列混淆变换、反行移位变换、反S盒变换,最后进行一轮回合密钥加法变换、反行移位变换、反S盒变换,得到明文数据。

二、方案设计

本方案使用椭圆曲线Difrie-Hellman( Elliptic Curve Diffie-HellInan,ECDH)算法进行密钥交换,并使用椭圆曲线数字签名算法(F,lliptic Curve Digital Signature Algorithm.ECDSA)对通信双方身份进行双向认证,最终通过AES算法使用交换后生成的密钥SK对发送的数据进行加密,其整个过程由五个阶段构成,即:起始阶段、密钥分发阶段、身份认证阶段、密钥交换阶段、消息加密及恢复阶段。

1、起始状态

该阶段目的是产生ECDSA和ECDI-I算法所使用的ECC域参数D:

1

其中:E为以素数为模的整数域GF(p)上的曲线(考虑到GF(p)在通用处理器上比二进制域CF( 2P)更为有效,故在本方案中采用整数域(p),p为一个定长的大素数)。根据美国国家标准与技术局所设定的最小密钥长度要求,p值长度应不小于160位。GX,GY为曲线E上基点G的X,y坐标。

1

ECC域参数D由控制台(控制台为单个会话区域的控制者)生成。对于每一个会话区域(该组包含若干阅读设备R。每个阅读设备下辖包含若干个标签设备的标签群G,并按照使用需求所归并)A,有使用同一组参数D,并根据A所属的阅读设备和标签设备各自的标识符在密钥服务器进行注册,硬件系统构成如图1所示。

1

2、密钥分发阶段

在密钥分发阶段,对于每—对在同一会话区域内的阅读设备冠。和其下属的标签群e。中的每一个标签设备,控制台需要生成用于ECDH交换的正整数P和用于标签和阅读器之间双向EC DSA身份认证的公、私钥。其中阅读设备和标签设备各自的认证私钥d,y为各自私有,阅读设备的公钥K为该阅读设备所下辖的标签群中所有标签设备所共有。标签设备的公钥K根据标签设备的标识符TID存于密钥服务器。一个阅读设备p及其下属标签群q。的密钥具体生成分发步骤如下:

1)控制台选择一个足够长度的随机数或,同时从密钥服务器中取出目标阅读设备R。所属的会话区域A的ECC域参数D,在D所描述的曲线En上计算:

1

2)控制台选择一个正整数P。作为目标标签设备0用于ECDH交换的ECDH参数,并选择一个足够长度的随机数,同时从密钥服务器中取出目标标签设备已所属的会话区域A的ECC域参数D,在D所描述的曲线ED上计算:

1

3)控制台将第1)一2)步生成的K、P。通过可靠信道分发给目标标签设备已,并将第1)~2)步生成的K、P。以目标标签设备的标识符TID。为查询键值存于密钥服务器。

重复步骤2到3,分别选择p。下属的标签群G中不同的目标标签设备已进行密钥分发,直到标签群Gf。中所有标签设备均已处理完毕,再将d,作为阅读设备认证私钥通过可靠信道分发给目标阅读设备R,密钥分发过程结束。密钥分发过程示意图如图2。

1

3、身份认证与密钥交换阶段

此阶段完成单对阅读设备与标签设备间相互的身份认证工作,并生成该对阅读设备与标签设备在当次会话中的通信密钥。

密钥交换过程中,使用了改进的ECDH密钥交换协议,在ECDH交换密钥生成式(5)中:

1

不使用基点G作为公开初始密钥,而使用各标签设备的ECDH参数p来代替作为公开初始密钥,并分别被存储于标签设备和密钥服务器中。对于每一个标签设备Z,都有一个特定的只作为其公开初始密钥。而机密密钥则由标签设备和阅读设备各自临时生成的在ECC域参数D所描述的ECC曲线En上的随机点墨,置来代替。这样在不可靠线路上只有临时密钥TK进行交换,并且也减小了密钥服务器查询时间和存储规模。

该阶段具体认证、交换步骤如下:

1)阅读设备向密钥数据库获取该会话区域的域参数D。

2)阅读设备尺。对目标标签设备L发起认证请求,将自身RID发送给t。

3)已生成当次会话标签设备标识随机数RNt和标签设备的ECDH初始交换密钥Xt,计算:

1

得到Tn的临时密钥,使用ECDSA签密算法通过自身私钥和域参数D描述的ECC曲线En计算:

1

得到签名S(r,j),其中TID表示标签设备标识符咒将Sige(r,s)和RN,、TKr发送给P。

4)R收到传来的Sig和R、jfK,使用q的TID向密钥服务器查询咒的ECDI-I参数P,认证公钥墨,使用K验证签名Sig(r,s)。如果验证失败,则拒绝对0的响应;如果验证成功,则R完成对L的身份验证oR。生成当次会话阅读设备标识随机数RNr和阅读设备的ECDH初始交换密钥,计算:

1

得到P临时密钥,并使用ECDSA签密算法通过自身私钥匆和域参数D描述的ECC曲线ED计算:

1

得到签名Si9r(r,s),将Sig,(r,s)、RNr发送给T。

使用T发来的临时密钥T和墨,通过Hash函数(一般使用MD5或SHAI算法,在有更高安全需求的情况下可以使用SHA-256等具有更高安全强度的Hash算法)计算基础密钥BK:

1

5)TN收到RN发来的Sig(r,s)、RNr、TKr。首先使用RN的公钥墨对签名Sig,(r,s)进行验证。如果验证失败,则拒绝对响应;如果验证成功,则,通过约定的Hash函数计算基础密钥BKL。

1

根据交换律可知,在同一条ECC曲线En上,有:

 

1

故有:

1

因而TN持有与RN相同的基础密钥BK,密钥交换完成,密钥交换示意图如图3。

1

4、消息加密及恢复阶段

该阶段对单对阅读设备与标签没备间的通信数据使用AES算法进行加密,AFJS加密算法有电子密码本(lectronicCode Book,. ECB)、密码块链接(Cryptogram Block Connect,CBC)弋输出反馈(Output Feed Back,OFB)、密文反馈(Ciphertext Feed Back,CFB)、计数器(Counter,CTR)五种加密模式,其中电子密码本(ECB)和密码分组(CBC)模式为最常用的两种AES加密模式一ECB模式由于其工作原理,导致其会将同样的明文块加密成同样的密文块,因此容易受到重放攻击的影响。而CBC模式每一个明文块均先与前一个密文块进行异或操作后再进行加密,因此每个密文块都依赖于之前所有明文块,从而具有较ECB模式更高的安全性。因此,本方案选用CBC模式对通信数据进行加解密操作,其具体步骤如下:

1)密钥交换完成的一对阅读设备冗小已在首次加密通信开始前先各自初始化一个计数器C(阅读设备计数器为Cr,标签设备计数器为Ct),并分别从各自的BK中相同偏移位置处取出定长(根据具体加密设置可选128位、192位、256位)的会话初始密钥SKo。

2)发送方将待发送的消息m添加到当次会话设备标识随机数RN;(若发送方为阅读设备,则为RNr,若发送方为标签设备,则为月M,该值在密钥交换过程中生成并相互交换)后,将生成的数据串M按AES块长度(128位:)分块,不满128位长度的块使用0填充。将得到的所有块按CBC模式使用约定的初始向量和会话密钥SK(首次加密通信时,SK。即为会话初始密钥sKa)进行加密,并将长度信息和密文发送至接收方,同时将自身计数器执行自增操作,自增步长为约定值M。

3)接收方收到密文,使用约定的初始向量和甄对密文进行解密,并根据长度提取出消息J和当次会话设备标识随机数RNi。比对RNr和在身份验证阶段交换而来的当次会话设备标识随机数RNr,如果匹配,则自身计数器执行自增操作,自增步长为约定值,单次加密通信回合完成;如果不匹配,则拒绝接收消息r,并根据安全要求选择合适的处理方式。

4)在单次加密通信回合完成后,通信双方各自使用约定的密码变换算法K,计算:

1

得到新的会话密钥skn。并重复步骤2)到步骤4),直到当次会话结束。

由密钥交换阶段产生的初始密钥SKo仅作为本次会话的会话初始密钥用于首次通信。在首次通信过程结束后,阅读设备和标签设备将使用约定的密码变换算法K对各自计数器值q和前次会话密钥SKrL-I进行计算,得到新会话密钥,使得当次会话每一个通信回合使用的会话密钥SKn都不相同,从而提高了通信安全性,其加密和变换过程如图4。

1

小知识之密钥交换

密钥交换,是一种用以获得认证密钥的协议。由internet工程任务组负责制定,RFC2409号文档给出了其具体规范。