新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 一种适用于RFID读写器的加密算法及其实现

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

作者:时间:2009-12-10来源:网络收藏

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

整个系统的安全机制分为3个部分:对Mifare 1卡的读取控制密码的;对存入Mifare 1卡中的数据进行的;动态地进行密码的变换。加解密的函数设为:
Data_new=BTEA(Key,n,Data) (1)
式中:Data_new为数据进行加解密运算后的值;Key为XXTEA的密钥;n是数据组元的个数且用以控制加解密运算,n>0表示进行,n0表示进行解密。在读卡器中,存放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||SNR4),取该结果的前6 byte为KeyA。有价值数据内容存在第Y个扇区内部,第Y个扇区的控制密码不固定,由第X个扇区的指定数据Data1经过XXTEA加密算法得来。具体过程如图3所示。系统的公钥Key_com是固定于阅读器内,虽然在公开信道上传递的信息中不包含此公钥的信息,但是还是有必要对其进行定期更新,才能确保安全性。
2)对存入Mifare 1卡中的数据进行的加解密:经过一次加密运算得到扇区Y的密码后,通过Authentication命令完成对卡的认证后,就可以读取存放于扇区Y的有价值数据。读取到的是已经经过XXTEA算法进行加密完的数据。所以,有必要对其进行解密,才能得到真正的数据。而数据写入的过程与之对应,需要先将要写入Y扇区的数据以Key3进行XXTEA加密运算,再将运算结果写人到扇区Y中。由XXTEA算法的对称密钥特性可知,密钥是与加密该数据的密钥相同,固定存放于读卡器的存储器之中。具体过程如图3所示。

3)动态地进行密码的变换:在每次读写操作完智能卡之后,进行智能卡扇区Y密钥的动态变换。将扇区X内的数据,用Key2进行再次的XXTEA算法加密,变化得到一个新的数据。该新的数据写入扇区X。而对此Data_new进行Key1的加密运算得到扇区Y的新密钥,在已经验证扇IXY的密钥的情况下,更改此密钥为Data_new)iS对应的密钥,以便下次再次使用。具体如图4所示。

3 RFID应用系统
系统的硬件电路由NXP的专用读写芯片MF RC500和STC单片机STC89C52以及外部的天线滤波和接收回路组成,如图5所示。MF RC500读写芯片完全兼容于ISO/IEC 14443协议,且与MCU的接口多样化,特别适合于嵌入式系统应用。



评论


相关推荐

技术专区

关闭