对无线IC卡传输数据实行3DES加密

  作者:常国权 戴国强 时间:2015-09-07来源:电子产品世界

编者按:为了保护无线IC卡传输数据的安全性,防止非法的破解和复制,在较低配置的单片机系统中采用3DES加密算法。当使用STC单片机工作在22.1184MHz的典型条件下,3DES算法加密、解密的平均速度约为308.7bit/s,满足实际应用的要求。

  在STC单片机内部的EEPROM中需要存储两种密码,一种是读取M1卡时需要验证的物理密码,另一种是3DES算法用到的加密、解密的逻辑密码,M1卡的物理密码一般是12个字节,3DES算法的逻辑密码是16个字节。当需要往M1卡中写入数据时,单片机把事先存储在STC15单片机的EEPROM中16字节逻辑密钥读取到password[16]数组中,然后把要写入M1卡中的数据按照8个字节一组进行3DES算法加密,当达到16个字节后写入用户指定的扇区块中,如果加密数据不够8个字节,按照约定进行补零以满足3DES算法要求。当单片机控制射频芯片验证物理密码并读取到M1卡中的数据后,按照8个字节一组进行3DES算法解密,并把解密后的明文数据返回给用户。如果不知道3DES算法的16位逻辑密钥,即使非法读取到了M1卡中的数据也无法得到其明文,从而达到了防止数据被破解的目的。

  如果得到了卡中的密文,尽管无法得到其明文,但是攻击者可以对卡进行完全复制,包括复制第0扇区第0块的卡序列号等信息(如UID卡即可修改其0扇区第0块的内容),为了防止攻击者对M1卡中的数据进行复制到另一张M1卡中,需要在STC单片机的EEPROM或者外部存储器中建立一个存储卡序列号和时间戳的系统表,卡序列号和时间戳各占4个字节。每当单片机系统对卡进行一次操作之后,就要在卡中和系统表中都写入新的时间戳,当两张完全一样的复制卡先后被系统读取到之后,由于系统在先被读取的复制卡中写入了新的时间戳信息,从而把另一张复制卡标识为非法卡,也就是说,无论攻击者复制了多少张完全相同的卡,只有最先被系统读取到那一张能正常使用,从而,防止了卡被复制。时间戳是STC单片机从DS1302中读取出来的年、月、日、时、分、秒之后经过相应的移位操作而合成的一个四字节无符号变量。时间戳的合成方法如图4所示。系统处理总体流程图如图5所示。

  根据图4所示,时间戳的合成算法可以用以下语句来实现:

  ts = ((INT32U)yr << 26) | ((INT32U)month << 22) | ((INT32U)day << 17);

  ts |= ((INT32U)hr << 12) | ((INT32U)min << 6) | (INT32U)sec;

  时间和日期也可以由单片机系统的定时器或者其他方法来实现。

3 系统测试

  为了对STC单片机在3DES算法加密、解密数据的正确性和运算能力进一步分析,对STC单片机系统进行了系统测试。在STC单片机RAM中建立一个容量为1K字节的数组test3des[1024],并给它赋初始值,调用TripleDes函数进行加密,并通过串口发送到上位机显示出来;把加密后的数据重新赋值给数组test3des[1024],调用TripleDes函数进行解密,并发串口显示,实际测试证明3DES算法是正确的。考虑到STC单片机系统运行速度较低,如果让STC单片机对加密、解密速度进行计算并处理,势必会影响到结论的准确性,为此,使用VC++编写上位机软件配合3DES算法处理速度测试。在STC单片机调用3DES算法加密、解密数据时,通过单片机串口发送到上位机一个开始命令,上位机软件启动精密计时,等STC单片机处理完数据时再给上位机软件发送一个结束命令,上位机软件停止计时,通过单片机处理的数据字节数和计时时间可以计算出STC单片机调用3DES算法加密、解密数据的速度。STC单片机在不同晶振频率下3DES算法加密、解密测试对照表如表1所示。平均加密或解密时间是经过10次测试取其平均值。

  从表1的数据可知:在STC单片机运行在典型工作频率22.1184MHz的情况下,3DES算法加密、解密的平均速度约为308.7bit/s,加密或解密M1卡一个块数据(16个字节)用时约为0.41s,完全达到了实际应用的条件,而且,随着所选用单片机或微处理器运行速度的提高,所用时间会更少。

4 结论

  通过分析3DES算法原理和防复制方法,在较低配置的STC单片机系统中实现了3DES加密算法,并进行了实验测试,得到了实验测试结果,证明了3DES算法在非接触式M1卡中应用的可行性,这对保障RFID卡信息安全性和保密性具有重要的作用,在实际应用中也具有一定的参考意义。

参考文献:

  [1]钱晓华.基于RFID系统的信息安全技术研究[D].江苏:南京邮电大学,2013,02

  [2]单承赣等.射频识别(RFID)原理与应用[M].北京:电子工业出版社,2014,07

  [3]宏晶科技公司.STC15L2K32S2系列单片机器件手册[P].2013,09

  [4]上海复旦微电子股份有限公司.FM1702SL芯片使用手册[P].2009

  [5]丁显信.DES算法的硬件实现方法研究及FPGA实现[D].青岛:青岛科技大学,2013

  [6]王素琴,林平分.非接触式智能卡中DES/3DES协处理器的设计[J].科技信息,2013(05)

  [7]赵泽茂等.信息安全技术[M].西安:西安电子科技大学出版社,2009,02

  [8]Philips Semiconductors.Standard Card IC MF1 IC S50 Functional Specification[P].2008

1 2

关键词: 3DES算法 加密 解密 STC15单片机 201509

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版