当前位置:首页 >资讯 >RFID双向认证加密方案(二)


RFID双向认证加密方案设计。

本方案采用椭圆曲线Difrie-Helllman(Ellipticcurvediflinan、ECDH)算法进行密钥交换,并采用椭圆曲线数字签名算法(F、lipticcurvedigitalsigalgorithm、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和一个用于标签和阅读器之间双向ECDSA身份认证的公共和私钥。其中,阅读设备和标签设备各自的认证私钥D,y各自私有,阅读设备的公钥K由阅读设备所辖标签组中的所有标签设备共享。标签设备的公钥K根据标签设备的标识符TID存储在密钥服务器中。阅读设备P及其下属标签组q。密钥的具体生成分发步骤如下:

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

1

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

1

3)控制台生成第1)12步的K.P。K.P通过可靠的信道分发给目标标签设备,第1)~2)步生成。目标标签设备的标识符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)ECDH初始交换密钥XT已生成标签设备标识随机数RNT和标签设备,计算:

1

通过自己的私钥和域参数D描述的ECC曲线En计算,使用ECDSA签密算法:

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

ECC曲线ED计算采用ECDSA签名算法,通过自己的私钥匆忙和域参数D描述:

1

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

使用T发送的临时密钥T和墨水,通过Hash函数计算基本密钥BK(通常使用MD5或SHAI算法,如SHA-256,安全强度较高)

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加密算法包括电子密码本(lectroniccodeBook、.ECB)、密码块链接(CryptogramblockConect、CBC)益输出反馈(OutputfedBack、OFB)、密文反馈(CiphertextfedBack、CFB)、计数器(Counter、CTR)五种加密模式,其中电子密码本(ECB)和密码分组(CBC)模式是最常用的两种AES加密模式,一种ECB模式由于其工作原理,导致其将相同的明文块加密成相同的密文块,因此容易受到重放攻击的影响。CBC模式中的每个明文块在加密前都与前一个密文块不同或操作,因此每个密文块都依赖于以前所有的明文块,因此比ECB模式更安全。因此,本方案采用CBC模式对通信数据进行加解密操作,具体步骤如下:

1)在第一次加密通信开始前,完成密钥交换的一对阅读设备已经初始化了一个计数器C(阅读设备计数器为CR,标签设备计数器为CT),并从各自BK的相同偏移位置取出定长会话初始密钥SKO(根据具体加密设置,可选择128位、192位、256位)。

2)发送方将待发送的信息m添加到会话设备标识随机数RN;(如果发送方是阅读设备,则为RNR;如果发送方是标签设备,则为月M,在密钥交换过程中生成并相互交换),生成的数据串M按AES块长度(128位:)分块,长度小于128位的块用0填充。按照CBC模式使用约定的初始向量和会话密钥SK(第一次加密通信时,SK。即会话初始密钥SKA)加密,长度信息和密文发送给接收方,自增计数器自增,自增步长为约定值M。

3)接收方收到密文,使用约定的初始方向。