当前位置: 首页 » 技术 » 智能卡 » 正文

动态密钥在Mifare射频IC卡识别系统中的应用

2017-10-26   来源:中国一卡通网   作者:谢高生 易灵芝 王根平   点击:7
摘要:RFID射频识别技术的应用给人们提供了一种严格高效的管理方式,大大提高了工作效率及服务质量,但同时也存在一些相关的安全问题,制约了RFID技术的应用及推广;针对Mifarc射频IC卡识别系统中的应用扇区密钥长度有限、密钥规定单一等缺点,提出了基于TEA加密算法的动态密钥设计方案,引入随机数,利用TEA算法加密明文数据包,并在8位单片机PIC16F873A 上进行应用实现;试验和实践证明该方案高效安全可行大大提升了Mifare射频IC卡识别系统的安全性能,有广泛的应用价值。

  0 引言

  射频识别(Radio Frequency Identification, 以下简称rfid)技术是利用无线射频方式进行非接触双向通信并交换数据,以达到识别目的。与传统的条码或磁条识别技术相比,RFID技术具有非接触、精度高、作用距离远、可动态识别多个数据及应用环境适用性较好等优点,在自动化众多领域中得到了很好的应用与发展。 

  Mifare射频IC卡在硬件本身上具有比较强的安全机制,但射频IC卡应用系统的开放性使它更容易越广泛,由于在最初的RFID应用设计和开发过程中,没有考虑安全问题,导致安全问题日益凸显,已经成为制约RFID应用的重要因素。基于此,针对RFID系统中射频IC卡密钥的使用单一、过于简单等受到攻击,人们可以轻易地对卡进行细致分析研究, 因此安全问题就称为IC卡应用中的一个重要问题。随着大规模集成电路技术的进步以及生产规模的不断扩大,RFID产品的成本不断降低,其应用也越来越暴露出本身缺点。本文结合TEA加密算法,引入动态密钥方案,使得射频IC卡操作一次,其应用扇区密钥实时更新一次,从而大大增强了RFID系统的安全性能。

  1 Mifare射频IC卡中的密钥使用及权限设置

  射频IC卡分为16个扇区,每区有4块(块0~块3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址块0)用于存放芯片商、卡商相关代码,块1、块2位数据块。其他扇区的块0、块1、块2为数据块,用于存贮用户数据;各个扇区的块3为各扇区控制块,用于存放密钥A、存取控制条件设置、密钥B。各区控制块结构相同,如表1所示。

  表1 各扇区控制块3结构 


  2.2 TEA解密

  利用128位密钥对64位的密文数据进行解密得到64位的明文数据,过程如下:

  (1)初始化:

  64位的明文数据分为两部分x和Y,每部分都为32位;Delta Ox9E3779B9;SumDelta< 5;128位的密钥分为4个部分:a、b、c、d,每部分都为32位。

  (2)对密文数据进行32次循环迭代计算: 

  (3)合并解密结果:
  r(0)←x
  r(1)←y

  在TEA算法中:<<为向左移位;>>为向右移位;⊕为异或逻辑运算。TEA算法迭代次数为32轮,实际上,TEA加密算法的迭代次数是可以改变的,32轮迭代很充分,16轮就足够。

  TEA加密算法实现相当简单, 速度比DES算法(Data Encryption Standard,简称DES,一种数据加密标准的对称分组密码算法)要快3倍,加密密钥128位,加密强度远远高于DES算法。另外,TEA也没有DES那样的转换矩阵,占用存储空间较少,而且可以采用DES模式运行,是一种很有前途的低成本加密算法。

  3 动态密钥

  Mifare射频IC卡在实际应用中多使用“一卡一密”的方案,也就是一张卡片每个应用扇区固定一个密钥。Desfire MF3D40型号的卡也是采用这个方案,使用卡片唯一的序列号对系统主密钥进行分散,得到不同的密钥,然后写入卡中作为卡片的主密钥。尽管可以为系统提供一定的安全保护,但随着现代计算机技术的迅速发展,攻击者的力量也越来越强,尤其是在用户卡的密钥长度不够的情况下,用户卡受到攻击是很容易的。因此,本文提出动态密钥的方案,结合TEA加密技术,提高系统安全性能。

  3.1 基本原理 
   
  动态密钥的基本思想是在保持系统主密钥不变的情况下,每读一次用户卡就使用本次通信中产生的数据 动态改写用户卡密钥一次,以此来确保用户卡的密钥不断更新,从而不被破解。数据A可以为当前通信时间、操作机具体标识或者随机数的组合。

  3.2 设计与实现

  基于TEA加密算法的动态密钥在Mifare射频IC卡识别系统的具体设计与实现过程如下:本设计选用随机数作为数据 (6字节),系统主密钥为UK(6字节),用户卡密钥SK(6字节),射频卡序列号SN(4字节),通过下列计算过程得到动态密钥SK’。 


  式(5)中:奇偶填充是指分别计算序列号SN的奇数值(1的个数)和偶数值(0的个数),然后将这两个字节的值填充至序列号的后面作为低位,使得SN为6个字节。在本次交易中产生的随机数A (明文数据)经TEA加密存人事先协议好的射频IC卡共享扇区,下次操作时,经TEA解密提取A,然后就可以计算出用户卡的密钥,其过程如下: 

      式(6)中,同样的方法将明文随机数 A 用奇偶填充至8个字再TEA加密成密文A进行存储。 

  动态密钥的流程框图如图1所示。 

  4 试验结果

  本试验选用Microchip公司的一款中档型8位闪存单片机PIC16F873A,外部晶振频率11.0592MHz, 在MPLAB IDE开发环境下,采用C语言编程进行试验测试。下面给出一组试验结果:

  系统主密钥UK:0x43d63c72a59e(6Byte)
  卡序列号SN:0xaa03230c(4Byte)
  随机数A:0x3f862b3d75 1 8(6Byte)
  奇偶填充序列号得SN, :0xaa03230c0bl5
  计算得到动态密钥SK :0xe9d5 lf7eae8b
  奇偶填充随机数 得到明文随机数包:0x3f862b3d75181917 

  TEA加密密钥(分a,b,c,d四部分):

  a=0x56c7f235;b=0xa2l6589c;
  c=0xb4386ae5;d=0xbc675a17. 
  经TEA加密随机数A得到密文随机数包: 
  0x9d968a5e0f79e787经过TEA解密算法,可以成功还原随机数A。试验证明:加解密速度可达21.3kb/s,本设计的随机数A加解密只费时约375μs。这样的速度对系统运行影响很少,加上TEA算法的高可靠性,确保了系统的实时性和通信安全。

  5 结束语

  RFID射频识别系统正赢得越来越广泛的应用,在一定程度上安全敏感应用的渗透必然离不开系统安全性设计的要求。本文从射频识别系统的安全性需求出发,提出了基于TEA加密算法的动态密钥设计方案,并对其进行了试验仿真具体实现,另外我们已经将该方案成功地应用于停车场管理系统中的车用RFID系统中,经过试验和实践都证明其具有很好的实时性,大大提升了射频识别系统的安全性能。

  (文/湘潭大学信息工程学院,深圳职业技术学院,谢高生 易灵芝 王根平)

编辑  来源:中国一卡通网  
 
 
[ 投稿邮箱:26454645@qq.com]  [ 技术搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]
声明:中国自动识别网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请网友及读者仅作参考,并请自行核实。凡本网注明"来源:中国自动识别网"的作品,版权均属于中国自动识别网网站,转载请必须注明中国自动识别网,并附上网址 http://www.cnaidc.com。违反者本网将追究相关法律责任。如涉及作品内容、版权等问题,请在作品发表之日起两周内与本网联系,否则视为放弃相关权利。
 

 
推荐图文
推荐技术
点击排行
 
  文明转播  行业协会  备案信息  安全网站