欢迎您访问九游体育·官方网站官方网站!
阿里巴巴诚信通企业
全国咨询热线:40000-63966
兴邦电子,中国水控机第一品牌

联系兴邦电子

全国咨询热线:40000-63966

售后:0371-55132951/55132952

工厂:河南省 郑州市 高新区莲花街电子电器产业园

基于GP32的射频卡密码认证系统设计

文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2012年03月18日

[文章内容简介]:密码认证是射频卡应用中的一项关键技术.在剖析了Mifare卡存储结构、读写控制以及加密机制的基础之上,以MC68HC908GP32为主控芯片,利用基站芯片MFRC500与天线技术的结合搭建出一个密码认证平台.软件部分重点阐述了Mifare卡与基站芯片MFRC500密码认证过程与程序实现;该系统具有作用距离远、响应速度快、使用简便、安全性高等显著特点.

    摘要:密码认证是射频卡应用中的一项关键技术.在剖析了Mifare卡存储结构、读写控制以及加密机制的基础之上,以 MC68HC908GP32为主控芯片,利用基站芯片 MF RC500与天线技术的结合搭建出一个密码认证平台.软件部分重点阐述了 Mifare卡与基站芯片 MF RC500密码认证过程与程序实现;该系统具有作用距离远、响应速度快、使用简便、安全性高等显著特点. 
    关键词:MC68HC908GP32;射频卡;密码认证

    0 引 言

    射频卡(非接触式 IC卡)技术是近几年发展起来的一项新技术.与传统的接触式 IC卡相比,非接触式 IC卡无论从其可靠性、易用性、抗干扰性还是一卡多用性等方面都有着明显的优势,特别是卡内严格的密码认证机制大大提高了用户数据的安全性,是电子加密技术应用领域的一大亮点,随着射频卡的应用日益广泛,相应地促进了嵌入式应用领域开发人员对其技术的研究[1].在我们承担项目的开发之处,经过仔细分析后发现:密码验证的方法与机制是射频卡应用中的一项关键技术,对于一般应用开发人员来说掌握该项技术还是比较困难的.如果能将射频卡的密码认证过程进行底层屏蔽并模块化封装的话,那么完全可以为相关工程技术人员提供二次开发平台,同时也将推动射频卡技术的广泛应用.

    1 MF1射频卡

    Philips是世界上最早研制非接触式 IC卡的公司,其 Mifare技术已经被制定为IS0/IEC14443 TYPE A国际标准.为了方便研究,首选该公司典型产品Mifare 1 IC S50(MF1)卡.

    1.1 存储结构和组成

    MF1卡片的存储容量为1K×8位字长,采用EEPROM作为存储介质.整个结构划分为16个扇区,编为扇区0~15.每个扇区有 4个块(Block),分别为块0、1、2、3.每个块有 16个字节.每个扇区的第四块也称作尾块,包含了该扇区的密码 A(6个字节)、存取控制(4个字节)、密码 B(6个字节),是控制块.其余三块是数据块. 

    1.2 对MF1卡的读写控制

    每个扇区的尾块是扇区的控制块.控制块使用两个密码,为用户提供多重控制方式.例如,

    用户可以用一个密码控制对数据块的读操作,用另一个密码控制对数据块的写操作.在空卡状态下每个扇区的尾块数据为; “Ox000000000000 FF078069 FFFFFFFFFFFF”.空卡时的密码 A和密码 B均为“OxFFFFFF”,由于 A密码不可读,读出的数据显示为“Ox000000”.在空卡默认读写权限下可以利用密码 A对所有块进行读写操作,以及更改各块的读写权限.

 尾块的权限代码与访问权限图

图 1 尾块的权限代码与访问权限图

    但不可以利用密码 B进行读写操作(此时 B密码可读).

    权限位为:“OxFF078069”,由图 1,有; C13=0 C12=0 C11=0 C10=0; C23=0 C22=0 C21=0 C20=0 ; C33=1 C32=0 C31=0 C30=0.“C13 C23 C33”=001,对应图 1的第 5行,表示 A密码不可读,可用 A密码改写(即通过 A密码校验后,可改写 A密码),权限字节及 B密码的读写权限均可用 A密码读写.

    1.3 密码验证与加密机制

    MF1内部的安全加密算法叫做Crypto1,使用的密码长度是48 bits,即6个字节.Crypto1是一种三遍验证算法.MF RC500((简称RC500,与MF1实现数据读写的基站芯片,见本文的2.2节)片内部将该算法进行了封装,只要执行 Authent1和 Authent2命令,就可自动完成这个验证过程.如图2所示.

密码处理框图

 2 密码处理框图

    在验证命令期间, RC500是从其内部密码缓冲区(key buffer)读取密码.因此,用户必须保证在执行 Authen1命令前就已经将密码放到 key buffer中了.

    需要说明的是,将密码载入到内部密码缓冲区或者暂存到EEPROM中时都要使用特定的密码存储格式.每个密码字节被分成两个半字节,低半字节(k0-k3)和高半字节(k4-k7).每半个字节都在一个字节内存储了两次,其中一次要取反.由于这种格式,用户使用的 6字节的密码实际上需要 12字节的 E2PROM来存储.

    2 硬件设计

    硬件主要包括 MCU电路模块、基于 RC500的基站模块、天线模块电路和相关的匹配电路等,系统硬件原理图如图 3所示.

    2.1 MCU部分

    单片机选用FreeScale公司MC68HC908GP32(简称GP32)芯片[2].GP32不仅性能稳定而且具有性能价格比高的突出优势.其自身有 32KB的 Flash存储器、支持在线编程、 8MHZ内部总线频率和低功耗等性能,尤其还具有 8个字节(64位)Flash区的密码保护 .

    2.2 基站部分

    系统的基站单元采用 PHILIPS公司的 RC500芯片.该芯片为目前用于 13.56MHz频段非接触通信的主流读卡 IC.RC500芯片采用先进的调制和解调技术 ,支持 13.56MHz频段所有被动非接触式通信方式和协议,并支持ISO14443A中所有的层.RC500芯片内的发送器部分在不增加外接有源电路时可直接驱动的天线操作距离为 300mm,接收模块部分则提供一个稳健可靠的解调/解码电路,用于 ISO14443A兼容的应答信号[3]..。

 系统硬件原理图

图3 系统硬件原理图

第1页第2页

本文关键词:GP32,密码认证,射频卡,RC500,MF1卡
回到顶部