IC、ID、M1、CPU卡
时间:2023-08-13 06:07:01
本博文转自:
http://blog.sina.com.cn/s/blog_9ed067ad0100xj3n.html潘春伟的博客
http://www.cnblogs.com/k1two2/p/5415397.htmlK1two2
博文目录:
IC、ID、M1、CPU卡之间的区别
漫谈射频识别技术——CPU卡概述
非接触式M1卡
业内也有一些不成文的习惯。一般的卡操作通常是主从式的,即读卡器作为主动方发送命令,卡收到命令后做出反应。我们称之为这张卡IC卡。有一种相对简单的卡,卡只有一个识别号存储在里面。通常,只要进入射频场获得能量,识别号就会主动发送。这种卡通常被称为ID卡。当然,这些名字只是习惯,事实上IC这意味着集成电路。上述卡片应称为IC但是习惯的力量往往很大,时间长了,大家都会接受这个名字。
IC卡包括了ID卡,M1卡、CPU卡;ID卡指低频卡,读取频率不同
M1卡通常指恩智浦S50芯片卡; CPU卡比ID卡和M1卡容量大,自动操作功能强,安全性强。
IC、ID、M1、CPU卡之间的区别
1、ID卡
全称身份识别卡(Identification Card),它是一种不能写入的感应卡,包含固定编号.卡号封卡前不能更改,绝对保证了卡号的唯一性和安全性.ID卡在弱电系统中通常被用作门禁或停车场系统的用户身份识别ID卡无钥匙安全认证机制,不能写卡,行业基本共识是ID卡不适合一卡通,也不适合消费系统。
2、 IC又称集成电路卡。
它由嵌入一个或多个集成电路组成,大小与普通信用卡相同。集成电路芯片可以是存储器或向处理器。带有存储器的IC该卡又称带微处理器的记忆卡或存储卡IC又称智能卡或智能卡。记忆卡可以存储大量信息;智能卡不仅具有记忆能力,而且具有处理信息的功能。IC汽车费、电话费、地铁乘车费、食堂用餐费、公路费、购物旅游、贸易服务等都可以非常方便地存放。
3、 M1卡
指菲利浦子公司恩智浦生产的芯片缩写。目前,国产芯片与其兼容,属于非接触式IC卡。M1卡,优点是可读多功能卡,缺点是:价格稍贵,感应距离短,适用于非定额消费系统、停车场系统、门禁考勤系统等。
4、CPU卡
CPU一般来说,卡芯片是指芯片中含有微处理器,其功能相当于微计算机。人们经常使用集成电路卡(IC卡片上的金属片是CPU卡芯片。CPU卡可适用于金融、保险、交警、政府行业等领域。具有用户空间大、阅读速度快、支持一卡多用的特点,已通过中国人民银行和国家商业秘书委员会认证。CPU从外观上看,卡是普通的IC射频卡和射频卡没有区别,但性能有了很大的提高,安全性和普通性IC卡比通常会提高很多。CPU卡包含随机数发生器,硬件DES,3DES加密算法等。配合操作系统即片OS,也称COS,能达到金融安全水平。
漫谈射频识别技术——ID卡
ID(Identification)识别的意思,ID卡是识别卡。ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID比如条码卡,磁卡可以ID当然,我们在这里说的是射频识别卡。
射频ID卡通常工作TTF进入射频场后,不断发送自己的识别号。最初识别卡是用来识别人的,用5个字节40位二进制数表示,可以识别大约一万亿人,估计是因为考虑到一万亿太多了,一般ID使用卡片时,只使用4个低字节,最高字节作为制造商标志或版本号。4字节32位二进制数可识别43亿人,当时世界上每个人都有一个识别号就足够了。当然,卡号可以随意复制,这是后话。
为了检查数据传输中是否有错误,射频识别卡在每个字节中增加了两个验证位置,其中一个是高半字节,一个是低半字节,每个字节增加到10位二进制数,5个字节共增加50位。为了验证数据的完整性错误,射频ID卡还增加了一个4位的纵向冗余检查,使整个卡ID卡数据增加到54位。进入射频场时,如果卡片直接返回这五个字节,读写器很难确定起始位置和结束位置。因此,射频识别卡在前面增加了9个二进制1,在后面增加了一个二进制0。ID卡有64位数据,只有8个字节。如下图所示:
例如卡号为2100A5EAD9卡的编码格式是
111111111 9个“1”的起始位,也叫头部
0 0 1 0 1 “2”
0 0 0 1 1 “1”
0 0 0 0 0 “0”
0 0 0 0 0 “0”
1 0 1 0 0 “A”
0 1 0 1 0 “5”
1 1 1 0 1 “E”
1 0 1 0 0 “A”
1 1 0 1 1 “D”
1 0 0 1 0 “9”
1 1 0 0 0 列偶校验和结束位“0”
射频ID卡的数据编码一般使用曼侧斯特码或两项码,传送数据的速率用传送一位二进制数据使用几个单位载波表示。常用的有64载波,32载波,16载波,在125KHz的频率下,一个载波的时间是8微秒,因此相应的位宽为512微秒,256微秒,128微秒。对应的数据传输速率为2K(1953)、4K(3906)、8K(7813)。我们平常使用的大多是2K曼侧斯特编码的ID卡。下图是使用HTRC110芯片读卡时,卡号为2100A5EAD9的卡片从数据输出脚DOUT输出的实测波形。
软件解码时可以使用查询或中断检测跳变,配合定时器确定脉宽,根据跳变沿的方向确定数据。
为了和128位的动物识别标签相区别,业内一般称这种64位的ID卡格式为“ID64格式”。
射频识别技术漫谈——CPU卡概述
智能卡按安全级别可以分为三类:存储器卡、逻辑加密卡和CPU卡,其中CPU卡是安全级别最高的。从“CPU”这个名字可以看出,CPU卡最大的特点就是卡片里面有一个"CPU",有了CPU我们就可以对卡片编程写入软件(COS,卡片操作系统),实现复杂的安全加密算法,所以CPU卡的安全性是最高的。与之形成对比的是,存储器卡和逻辑加密卡中没有"CPU",尽管在我们看来像MIFARE1卡看起来似乎也很智能,但M1卡里存在的仅仅是一个专用集成电路(ASIC),而不是CPU。
说到非接触式CPU卡,就不得不提接触式CPU卡,因为就CPU卡的灵魂——COS来说,二者遵循的协议基本是一样的,都是ISO7816-4,不同之处在于二者进入COS的方式和途径,在此以复旦微电的非接触式CPU卡FM1208M01为例,与接触式CPU卡进入COS的过程对比如下图所示。
CPU卡在进入ISO7816-4协议之前所做的都是一些为卡片和读写器对话进行的准备工作。接触式CPU卡的序列比较简单,卡片插在卡座上,读写器给卡片一个复位(Reset)信号,卡片回送一个应答ATR(Answer To Reset),ATR由5部分组成:
(1)初始字符TS:指定字符传送规则,如果是3B则高电平表示1,低电平表示0,先传送字符最低有效位;如果是3F
则高电平表示0,低电平表示1,先传送字符最高有效位。
(2)格式字符T0:指定存在哪些接口字符以及历史字符的个数。
(3)接口字符 :指定协议参数和协议类型
(4)历史字符 :说明诸如制造商、芯片型号等一般信息
(5)校验字符 :保证ATR数据的完整性,使用的是异或校验
非接触式CPU卡得到ATS(Answer To Select)相对步骤多一些,不过这也是迫不得已,这是由卡片本身的“非接触”特性决定的。不像接触式卡片那样一卡一座,非接触式卡片由于“无源”和“免接触”,读写器的射频场中可能同时存在多张卡片,为了从多张卡片中选中一张进行操作,读写器要启动防冲突和卡选择的过程。由于不能保证射频场中的卡片都是CPU卡,所以读写器选中一张卡片后还要向卡片发送RATS命令,CPU卡会回送一个ATS响应,此ATS与接触式CPU卡的ATR也大同小异,同样由5部分组成:
(1)长度字符TL:指出ATS的长度,不包括后面的校验字节。
(2)格式字符T0:指定存在哪些接口字符以及卡片能接收的帧的最大长度。
(3)接口字符 :指定协议参数和协议类型
(4)历史字符 :说明诸如制造商、芯片型号、序列号等一般信息
(5)校验字符 :保证ATS数据的完整性
非接触式M1卡
主要指标
容量为8K位EEPROM
分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
每个扇区有独立的一组密码及访问控制
每张卡有唯一序列号,为32位
具有防冲突机制,支持多卡操作
无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
数据保存期为10年,可改写10万次,读无限次
工作温度:-20℃~50℃(湿度为90%)
工作频率:13.56MHZ
通信速率:106 KBPS
读写距离:10 cm以内(与读写器有关)
存储结构
M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:
|
|
|
|
|
|
块0 |
|
数据块 |
0 |
扇区0 |
块1 |
|
数据块 |
1 |
|
块2 |
|
数据块 |
2 |
|
块3 |
密码A 存取控制 密码B |
控制块 |
3 |
|
块0 |
|
数据块 |
4 |
扇区1 |
块1 |
|
数据块 |
5 |
|
块2 |
|
数据块 |
6 |
|
块3 |
密码A 存取控制 密码B |
控制块 |
7 |
|
|
∶ ∶ ∶
|
|
|
|
0 |
|
数据块 |
60 |
扇区15 |
1 |
|
数据块 |
61 |
|
2 |
|
数据块 |
62 |
|
3 |
密码A 存取控制 密码B |
控制块 |
63 |
第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:
用作一般的数据保存,可以进行读、写操作。
用作数据值,可以进行初始化值、加值、减值、读值操作。
每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:
密码A(6字节) 存取控制(4字节) 密码B(6字节)
每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C32
块3: C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如
进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制
位在存取控制字节中的位置,以块0为例:
对块0的控制:
bit 7 6 5 4 3 2 1 0
字节6 |
|
|
|
C20_b |
|
|
|
C10_b |
字节7 |
|
|
|
C10 |
|
|
|
C30_b |
字节8 |
|
|
|
C30 |
|
|
|
C20 |
字节9 |
|
|
|
|
|
|
|
|
( 注: C10_b表示C10取反 )
存取控制(4字节,其中字节9为备用字节)结构如下所示:
bit 7 6 5 4 3 2 1 0
字节6 |
C23_b |
C22_b |
C21_b |
C20_b |
C13_b |
C12_b |
C11_b |
C10_b |
字节7 |
C13 |
C12 |
C11 |
C10 |
C33_b |
C32_b |
C31_b |
C30_b |
字节8 |
C33 |
C32 |
C31 |
C30 |
C23 |
C22 |
C21 |
C20 |
字节9 |
|
|
|
|
|
|
|
|
( 注: _b表示取反 )
6、数据块(块0、块1、块2)的存取控制如下:
控制位(X=0..2)
|
访 问 条 件 (对数据块 0、1、2) |
|||||
C1X |
C2X |
C3X |
Read |
Write |
Increment |
Decrement, transfer, Restore |
0 |
0 |
0 |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
0 |
1 |
0 |
KeyA|B |
Never |
Never |
Never |
1 |
0 |
0 |
KeyA|B |
KeyB |
Never |
Never |
1 |
1 |
0 |
KeyA|B |
KeyB |
KeyB |
KeyA|B |
0 |
0 |
1 |
KeyA|B |
Never |
Never |
KeyA|B |
0 |
1 |
1 |
KeyB |
KeyB |
Never |
Never |
1 |
0 |
1 |
KeyB |
Never |
Never |
Never |
1 |
1 |
1 |
Never |
Never |
Never |
Never |
(KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现)
例如:当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码B正确后可读;
验证密码B正确后可写;不能进行加值、减值操作。
7、控制块块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下:
|
|
|
密码A |
存取控制 |
密码B |
|||
C13 |
C23 |
C33 |
Read |
Write |
Read |
Write |
Read |
Write |
0 |
0 |
0 |
Never |
KeyA|B |
KeyA|B |
Never |
KeyA|B |
KeyA|B |
0 |
1 |
0 |
Never |
Never |
KeyA|B |
Never |
KeyA|B |
Never |
1 |
0 |
0 |
Never |
KeyB |
KeyA|B |
Never |
Never |
KeyB |
1 |
1 |
0 |
Never |
Never |
KeyA|B |
Never |
Never |
Never |
0 |
0 |
1 |
Never |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
0 |
1 |
1 |
Never |
KeyB |
KeyA|B |
KeyB |
Never |
KeyB |
1 |
0 |
1 |
Never |
Never |
KeyA|B |
KeyB |
Never |
Never |
1 |
1 |
1 |
Never |
Never |
KeyA|B |
Never |
Never |
Never |
例如:当块3的存取控制位C13 C23 C33=1 0 0时,表示:
密码A:不可读,验证KEYA或KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后,可读、可写。
密码B:验证KEYA或KEYB正确后,可读、可写。
工作原理
卡片的电气部分只由一个天线和ASIC组成。
天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。
ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个
8K位EEPROM组成。
工作原理:读写器向M1卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与讯写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。