仅供个人参考不得用于商业用途非接触式IC智能(射频)卡及其读写设备内核技术的研究与应用开发仅供个人参考不得用于商业用途前言当今的信息技术又到了一个关键的十字路口。单独的PC甚至局域网的时代已为“全球化网络”时代所代替。互联网INTERNET的产生和今天的飞速发展和广泛渗透就是典范。IC(集成电路)智能卡正在并已经融入当今信息技术的主流。她以其高度的信息集成,高度的安全性,正日渐其辉煌和灿烂。随着金融行业的不断发展,社会经济的日新月异,特别是公共交通行业,无线通信领域,卫生保健行业,封闭式场所管理,身份识别,电话通信,大楼保安系统等等,人们已愈来愈多地开始接受和使用IC智能卡。特别是银行服务系统,IC智能卡替代古老的磁卡而服务于大众已日渐成熟。并且“一卡通”,一卡多用,给我们的生活质量带来了很大的提高。IC智能卡自动电表抄表系统,煤气/自来水抄表系统,公交/地铁自动售票/检票系统,移动通信手机中IC智能SIM卡等等,IC智能卡已愈来愈贴近我们的生活,成为我们生活的一步分。“刷卡”已成为人们日常生活中不可或缺的一部分。近几年来,随着IC智能卡中的接触式CPU卡以及非接触式IC智能射频卡(内建MCU,ASIC等)的高度安全保密性,使之在IC智能卡领域中异军突起,成为当今IC智能卡中的流行宠物,应用前景十分广阔。国外对IC卡的研究和应用较早,特别是在美国,欧洲国家等。IC卡遍布社会各个方方面面。就象在美国,国民消费总额的20%~~30%是由“刷卡”消费完成的,由此可见IC智能卡流行和使用的程度。尽管国外对IC卡已有多年的研究,但真正在IC智能卡中特别是CPU卡类,非接触式IC智能射频卡(内建MCU,ASIC等)方面的研究也仅有1~~2年的成熟期。因为他们也看到了CPU卡,特别是非接触式IC智能射频卡(内建MCU,ASIC等)代表了整个“刷卡”领域的发展方向,前景光明。我国对IC卡行业的发展始于1993年左右,当时的中央领导特别是江泽民同志高度重视IC卡行业,高瞻远瞩,指示要发展我国自己的IC卡事业,建立“金卡工程”。虽然至今也只有短短的6年左右时间,但已取得了不小的成就。已研制成功我国自主版权的较大容量的存储卡,逻辑加密卡等,但是对于尖端的CPU卡及非接触式IC智能射频卡(内建MCU,ASIC等)的制卡技术及其相应的读/写卡设备技术,仍处于落后状态。这极大地制约了IC卡行业的发展,特别是在要求有极高安全性和保密性的金融行业中,制约了我国金卡工程的实施和发展。为了加快IC卡行业的发展,特别是尖端的CPU卡及非接触式IC智能射频卡(内建MCU,ASIC等)的推广应用,让IC卡行业及其他行业的同行尽快掌握CPU卡及非接触式IC智能射频卡(内建MCU,ASIC等)的核心技术及其读写设备的软硬件技术及应用设计,跟上国外的IC卡研究和应用步伐,甚至走在其前面,在上海华东计算机研究所,上海计算机协会等领导同志的关怀下,在上海华东磁记录设备电子公司吴文总经理的直接支持下,经仅供个人参考不得用于商业用途过一段时间全身心投入的研发之后,笔者已基本上比较全面地掌握了PHILIPS公司的非接触式IC智能射频卡(内建MCU,ASIC等)MIFARE1卡(S50系列)及其卡片读写设备核心模块MCM(MifareCoreModule)的软硬件技术。使我们发展,应用,甚至超越PHILIPS公司的非接触式IC智能射频卡(内建MCU,ASIC等)技术及其读写设备技术成为可能。当今世界上非接触式IC智能射频卡(内建MCU,ASIC等)中的主流主要为PHILIPS公司的MIFARE技术,已经被制定为国际标准:ISO/IEC14443TYPEA标准。欧洲一些较大的IC卡片制造商以及IC卡片读写器制造商以及IC卡片软件设计公司等(例如法国的GEMPLUS公司)大都以MIFARE技术为标准,而发展和推进IC卡行业。通过阅读本文,相信有一定IC卡经验,技术及具有一定的计算机软/硬件技术(尤其是微处理单片机MCU技术)的同行定能将本文消化之后而能设计出诸多应用场合的产品,例如,门禁控制系统(DoorAccessSystem),高速公路不停车收费系统,停车场收费管理系统,地铁非接触式IC智能射频卡的“刷卡”读写器,机关/企业内部考勤管理系统,医疗保险管理系统,公共交通收费管理系统,出租车收费管理系统,银行服务“一卡通”等等。第一章Mifare1非接触式IC智能(射频)卡一.Mifare1非接触式IC智能射频卡特点Mifare1IC智能(射频)卡的核心是Philips公司的Mifare1ICS50(-01,-02,-03,-04)系列微模块(微晶片)。它确定了卡片的特性以及卡片读写器的诸多性能。Mifare1IC智能(射频)卡采用先进的芯片制造工艺制作。内建有高速的CMOSEEPROM,MCU等。卡片上除了IC微晶片及一副高效率天线外,无任何其他元件。卡片上无源(无任何电池),工作时的电源能量由卡片读写器天线发送无线电载波信号耦合到卡片上天线而产生电能,一般可达2V以上,供卡片上IC工作。工作频率13.56MHZ。Mifare1射频卡所具有的独特的MIFARERF(射频)非接触式接口标准已被制定为国际标准:ISO/IEC14443TYPEA标准。射频卡标准操作距离为100mm(由MCM500作为读写器核心模块)和25mm(由MCM200作为读写器核心模块)。与卡片读写器的通信速率高达106Kbit/s。Mifare1IC智能(射频)卡上具有先进的数据通信加密并双向验证密码系统;且具有防重叠功能:能在同一时间处理重叠在卡片读写器天线的有效工作距离内的多张重叠的卡片。Mifare1IC智能(射频)卡与读写器通信使用握手式半双工通信协议;卡片上有高速的CRC协处理器,符合CCITT标准。卡片制造时具有唯一的卡片系列号,没有重复的相同的两张MIFARE卡片。仅供个人参考不得用于商业用途卡片上内建8K(bit)EEPROM存储容量并划分为16个扇区,每个扇区划分为4个数据存储块,每个扇区可由多种方式的密码管理。卡片上还内建有增值/减值的专项的数学运算电路,非常适合公交/地铁等行业的检票/收费系统。典型的检票交易时间最长不超过100ms(0.1秒)(包括卡片的认证,6个扇区的读(768bit,2个扇区的认证),2个扇区的写操作(256bit))。卡片上的数据读写可超过10万次以上;数据保存期可达10年以上,且卡片抗静电保护能力达2KV以上。二.Mifare1非接触式IC智能射频卡功能组成如图所示为MIFARE1S50非接触式IC智能射频卡的功能组成图。整个卡片包含了两个部分,RF射频接口电路和数字电路部分。(一).RF射频接口电路在RF射频接口电路中,主要包括有波形转换模块。它可将卡片读写器上的13.56MHZ的无线电调制频率接收,一方面送调制/解调模块,另一方面进行波形转换,将正弦波转换为方波,然后对其整流滤波,由电压调节模块对电压进行进一步的处理,包括稳压等,最终输出供给卡片上的各电路。POR模块主要是对卡片上的各个电路进行POWER-ON-RESET(上电复位),使各电路同步启动工作。(二)。在数字电路部分模块中:1.ATR模块:AnswertoRequest(“请求之应答“)当一张Mifare1卡片处在卡片读写器的天线的工作范围之内时,程序员控制读写器向卡片发出REQUESTall(或REQUESTstd)命令后,卡片的ATR将启动,将卡片Block0中的MIFARE1S50CARDICClockDataEnergy波形转换正弦=方波整流电压调节Modu./DeModu调制/解调POR(复位)EEPORAntiCollisionATRDigitalSection数字电路部分SelectApplicationAuthentication&AccessControlControl&Arithm.UnitROMCryptoUnitRAMRF-Interface射频接口电路卡片天线仅供个人参考不得用于商业用途卡片类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的第一步通信联络。如果不进行第一步的ATR工作,读写器对卡片的其他操作(Read/Write等)将不会进行。卡片的类型(TagType)号共2个字节,可能为:0004H2.AntiCollision模块:防止(卡片)重叠功能如果有多张Mifare1卡片处在卡片读写器的天线的工作范围之内时,AntiCollision模块的防重叠功能将被启动工作。在程序员控制下的卡片读写器将会首先与每一张卡片进行通信,取得每一张卡片的系列号。由于Mifare1卡片每一张都具有其唯一的系列号,决不会相同,因此卡片读写器根据卡片的序列号来识别,区分已选的卡片,卡片读写器中的MCM中的AntiCollision防重叠功能配合卡片上的防重叠功能模块,由程序员来控制读写器,根据卡片的序列号来选定一张卡片。被选中的卡片将直接与读写器进行数据交换,未被选择的卡片处于等待状态,随时准备与卡片读写器进行通信。AntiCollision模块(防重叠功能)启动工作时,卡片读写器将得到卡片的序列号SerialNumber。序列号SerialNumber存储在卡片的Block0中,共有5个字节,实际有用的为4个字节,另一个字节为序列号SerialNumber的校验字节,这在以后章节中详细论述,包括对序列号SerialNumber的校验方法等。序列号SerialNumber中实际有用的4个字节,可能为:007e0a42h。3.SelectApplication模块:主要用于卡片的选择。当卡片与读写器完成了上述的二个步骤,程序员控制的读写器要想对卡片进行读写操作,必须对卡片进行“Select”操作。以使卡片真正地被选中。被选中的卡片将卡片上存储在Block0中的卡片的容量“Size”字节传送给读写器。当读写器收到这一字节后,将明确可以对卡片进行深一步的操作了。例如,可以进行密码验证等等。读写器收到的“Size”字节可能为:88h4.Authentication&AccessControl模块:认证及存取控制模块在确认了上述的三个步骤,确认已经选择了一张卡片时,程序员对卡片进行读写操作之前,必须对卡片上已经设置的密码进行认证,如果匹配,则允许进一步的Read/Write操作。Mifare1卡片上有16个扇区,每个扇区都可分别设置各自的密码,互不干涉。因此每个扇区可独立地应用于一个应用场合。整个卡片可以设计成“一卡通”形式来应用。三遍认证:如图所示为三遍认证的令牌原理框图。(A)RB(E)(B)TOKENAB(C)(D)TOKENBA认证过程是这样进行的:(A)环:由Mifare1卡片向读写器发送一个随机数据RB;(B)环:由读写器收到RB后向Mifare1卡片发送一个令牌数据TOKENAB,其中包含了读写器发出的一个随机数据RA;非接触式卡片读写器Mifare1卡片仅供个人参考不得用于商业用途(C)环:Mifare1卡片收到TOKENAB后,对TOKENAB的加密的部分进行解密,并校验第一次由(A)环中Mifare1卡片发出去的随机数RB是否与(B)环中接收到的TOKENAB中的RB相一致;(D)环:如果(C)环校验是正确的,则Mifare1卡片向读写器发送令牌TOKENBA给读写器;(E)环:读写器收到令牌TOKENBA后,读写器将对令牌TOKENBA中的RB(随机数)进行解密;并校验第一次由(B)环中读写器发出去的随机数RA是否与(D)环中接收到的TOKENBA中的RA相一致;如果上述的每一个环都为“真”,都能正确通过验证,则整个的认证过程将成功。读写器将能对刚刚认证通过的卡片上的这个扇区可以进入下一步的操作(READ/WRITE等操作)。卡片中的其他扇区由于有其各自的密码,因此不能对其进行进一步的操作。如想对其他扇区进行操作,必须完成上述的认证过程。认证过程中的任何一环出现差错,整个认证将告失败。必须从新开始。如果事先不知卡片上的密码,则由于密码的变化可