3.2.1 南京地铁2号线采用了3DES算法
DES 算法产生于20 世纪70 年代,是传统的分组密码代码学的代表,其运算速度较快,但其密钥太短(56 bit),通过穷举法即可将其攻破。因此出现了改进的DES算法,即3DES算法[3]。3DES算法加密时对原始明文进行三次DES处理,采用K1、K2、K3三个不同密钥(长度均为8 B),如图2所示。解密时对密文按相反的顺序,还原成原始明文。为了减少系统在生产和管理密钥的开销,一般将K1、K3设为相同值,但K1、K2绝不能相同,否则三重DES就失去了意义。3DES虽然降低了一定的运算速度,但是密钥长度是原来的两倍,安全性能得到了极大提高,迄今为止尚未被攻破,已成为一种国际公认的加密标准。
其加密代码如图3所示。
3.2.2 SHA-1与MD5的性能比较
在南京地铁上,KEY的产生采用了SHA-1安全算法,SHA-1算法与MD5的算法类似,所以它们的性质极为相似。下面是SHA-1和MD5性能之间的比较。
(1)抗穷举攻击的能力:SHA1抗穷举攻击的能力比MD5强。
用穷举攻击方法产生具有给定散列值的消息:MD5需要的代价为2 128数量级;SHA-1需要的代价为2 160数量级。
用穷举攻击方法产生两个具有相同散列值的消息:MD5需要的代价为264数量级;SHA-1需要的代价为280数量级。
(2)抗密码分析的能力:MD5算法抗密码分析的能力较弱;SHA-1算法抗密码分析的能力较MD5 强。
(3)速度:SHA-1执行的速度比MD5的速度慢得多。
(4)简捷性:SHA-1和MD5两种算法都易于描述和实现,不需要使用大的程序和置换表。
(5)数据的存储方式:MD5使用little-endian方式;SHA-1使用big-endian方式,这两种方式没有本质的差异。
SHA-1的实现代码如图4所示。
3.3 完整性
在通信过程中,由于受到人为或环境因素的影响,导致读写数据失败,数据不完整。
为了确保通信数据的完整性,可以采取数据校验措施,如奇偶校验和CRC校验等。特别是读写器与PC机之间的RS-232或RS-485串行通信,校验措施是十分必要的。通信的速度越高、距离越远,校验的必要性也就很高。
CRC(Cyclic Redundancy Check)码,即循环冗余校验码。由于其编码和解码方法简单,因而在IC卡的数据通信中广泛应用[4]。
在数据通信中应用CRC码的目的是校验数据传送是否正确。与奇偶校验方法相比,CRC码校验的检错能力更强。因为奇偶校验仅采用了一位二进制作为校验码,如果传送的数据中恰好有两个位(或偶数个位)同时出错就不会被发现。CRC码采用了r位,可靠性大为提高。
利用CRC码进行数据传送校验的基本原理是:在发送端,根据要发送的k位二进制码序列,以一定的规则产生一个用于校验的r位校验码(即CRC码),使其附在原始数据后边,构成一个新的二进制序列(共k+r位),然后一起发送出去。在接收端,根据数据码和CRC码之间所遵循的规则进行校验,以确定数据通信过程中是否出错。
其实现代码如图5所示。
CRC校验的优点是识别错误可靠性高,只需要少量的操作就可以识别。但其缺点是其只能识别传输错误而不能校正错误。如果传输中校验到错误,只能让发送方重新发送。
本文通过对非接触IC卡数据安全所受到的威胁及其防护措施的分析,使AFC系统能够最大程度地保障非接触式IC卡的数据安全,并实现了部分必要的安全算法,将可能发生的风险控制在可接受的范围之内。
参考文献 :
[1] 贺金鑫,李文印.IC卡数据加密的研究和实现[J].吉林大学学报,2003(11):1-2.
[2] 赵军辉.射频识别技术与应用[M].北京:机械工业出版社,2008.
[3] 赵时旻.轨道交通自动售检票系统[M].上海:同济大学出版社,2007.
[4] 杨振野.IC卡技术及其应用[M].北京:科学出版社,2006.