中国电子技术网

设为首页 网站地图 加入收藏

 
 

一种适用于RFID读写器的加密算法及其实现

关键词:

时间:2013-12-05 15:36:15      来源:dzsc

  随着电子信息技术的发展,非接触式智能卡(如RFID卡)已经在我们的生活中随处可见。与传统的接触式卡、磁卡相比,利用射频识别技术开发的非接触式智能卡,具有高度安全保密性和使用简单等特点,正逐渐取代传统的接触式IC卡,成为智能卡领域的新潮流。然而,由于RFID系统的数据交流处于开放的无线状态,外界容易对系统实施各种信息干扰及信息盗取。   鉴于RFID系统数据交流开放的安全性问题,

  随着电子信息技术的发展,非接触式智能卡(如RFID卡)已经在我们的生活中随处可见。与传统的接触式卡、磁卡相比,利用射频识别技术开发的非接触式智能卡,具有高度安全保密性和使用简单等特点,正逐渐取代传统的接触式IC卡,成为智能卡领域的新潮流。然而,由于RFID系统的数据交流处于开放的无线状态,外界容易对系统实施各种信息干扰及信息盗取。

  鉴于RFID系统数据交流开放的安全性问题,人们做了大量的研究工作,提出了很多安全机制设计方面的建议。在硬件物理实现方面,提出了如:Kill标签、法拉第电罩等方法;在软件系统实现方面,提出了一系列安全协议,如:Hash锁、随机Hash锁、Hash链以及改进的随机Hash锁等方法,而这些方法都是针对RFID标签芯片的制造而设计的,对已经大规模投入使用的智能卡而言,不具备实用性。目前在智能卡应用系统中,比较流行采用兼容ISO/IEC 14443协议的Mifare 1系列智能卡,其本身具有3次相互认证的安全协议,但其安全性仍有漏洞,有必要在它安全机制基础上,引入一种数据加密算法来进一步保障数据通信的安全性。TEA算法作为一种微型的加密算法,有着简单、快速、安全性能好等特点,在电子产品开发领域得到了广泛应用,例如PDA数据加密、嵌入式通信加密等领域,而TEA算法的广泛使用导致产生了针对该算法的攻击方法,所以有必要对TEA算法进行改进。

  为此,本文提出利用TEA算法的改进算法——xxTEA算法进行RFID读卡器与RFID智能卡之间密码数据的动态变换,来解决RFID系统应用中所面对的非法读取、窃听、伪装哄骗及重放等攻击。

  1 XXTEA加密算法原理

  在数据的加解密领域,算法分为对称密钥与非对称密钥2种。对称密钥与非对称密钥由于各自特点,所应用的领域不尽相同。对称密钥加密算法由于其速度快,一般用于整体数据的加密,而非对称密钥加密算法的安全性能佳,在数字签名领域得到广泛应用。

  TEA算法是由剑桥大学计算机实验室的Wheeler DJ和Needham RM于1994年提出,以加密解密速度快,实现简单著称。TEA算法每一次可以操作64 bit(8 byte),采用128 bit(16 byte)作为Key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。为解决TEA算法密钥表攻击的问题,TEA算法先后经历了几次改进,从XTEA到Block TEA,直至最新的XXTEAt。XTEA也称作TEAN,它使用与TEA相同的简单运算,但4个子密钥采取不正规的方式进行混合以阻止密钥表攻击。Block TEA算法可以对32位的任意整数倍长度的变量块进行加解密的操作,该算法将XTEA轮循函数依次应用于块中的每个字,并且将它附加于被应用字的邻字。XXTEA使用跟Block TEA相似的结构,但在处理块中每个字时利用了相邻字,且用拥有2个输入量的MX函数代替了XTEA轮循函数,这一改变对算法的实现速度影响不大,但提高了算法的抗攻击能力,使得对6轮加密次数的算法攻击所需的明文数量由234上升为280,基本排除了暴力攻击的可能性。本文描述的安全机制所采用的加密算法就是TEA算法中安全性能最佳的改进版本——XXTEA算法。

  XXTEA的加密轮次视数据长度而定,最少为6轮,最多为32轮,对应的每轮加密过程如图1所示。图1中,+表示求和,+表示异或,>>表示右移,<<表示左移。

  从图1中可知,XXTEA算法主要包括加法、移位和异或等运算,它的结构非常简单,只需要执行加法、异或和寄存的硬件即可,且软件实现的代码十分短小,具有可移植性,非常适合嵌入式系统应用。由于XXTEA算法的以上优点,它可以很好地应用于嵌入式RFID系统当中。

  2 RFID读写器安全机制

  整个RFID安全系统的整体框图如图2所示。本系统的设计思路是由上位PC机通过RS232接口控制MCU操作射频模块对Mifare 1智能卡进行操作,再将Mifare 1卡中的数据由MCU进行加解密运算,返回到主机的数据管理系统中。在此过程中,假设MCU与PC后台数据管理系统的数据通信是安全的,那么会被进行安全攻击的环节,就是智能卡与读写器之间的数据交换。

  Mifare 1智能卡的安全性能在最新的电子攻击面前变得日益单薄,且已被来自荷兰的黑客破译,考虑到硬件升级的成本过大,本系统在不对基于Mifare 1的RFID读卡器硬件系统进行变动的情况下,将XXTEA算法嵌入到RFID系统中,设置特定的安全机制,以保护RFID数据的安全性。

  整个系统的安全机制分为3个部分:对Mifare 1卡的读取控制密码的加密;对存入Mifare 1卡中的数据进行的加密;动态地进行密码的变换。加解密的函数设为:

  Data_new=BTEA(Key,n,Data)       (1)

  式中:Data_new为数据进行加解密运算后的值;Key为XXTEA算法的密钥;n是数据组元的个数且用以控制加解密运算,n>0表示进行加密,n<0表示进行解密。在读卡器中,存放4个Key,Key_com,Key1,Key2,Key3分别作为4次XXTEA加解密运算的密钥,其中Key_com,Key1,Key2,Key3为16 byte且是固定在阅读器的存储器之中。根据XXTEA算法的输入与输出数据的长度限制,以2个长整数组元为加解密运算的基本单位,规定控制扇区读写权限的密钥KeyA,KeyB为XXTEA加密结果的前6个字节。

  1)对Mifare 1卡的控制密码的加密:由Mifare 1卡特性决定,任意扇区X与扇区Y的控制密码是完全不相关的。由于Mifare 1卡的独一无二的序列号特性,在整个系统所能支持的智能卡系列中,可以规定第X个扇区的密码是与该智能卡的序列号相关的。序列号的得到不需要经历密码校验,而只要对智能卡的操作到达防冲突这一步骤,就可以得到。序列号SNR为4字节,而每次XXTEA加密的数组都为2个长整型的数组,可以规定x扇区的密码为2个SNR所构成的1个64 bit数组与公用密钥Key_com进行加密的结果。假设扇区X的密钥为KeyA,则KeyA为BTEA(Key_com,2,SNR

  • 分享到:

 

猜你喜欢

  • 主 题:汽车车身电子应用面临的挑战及解决方案
  • 公 司:NXP

  • 主 题:Infineon、MuRata和Arrow一站式物联网解决方案
  • 公 司:arrow&muRata&cypress&infineon

  • 主 题:针对储能系统的电池管理产品及系统设计
  • 公 司:ADI