第8章IC卡及其芯片.ppt

上传人:花仙子 文档编号:373744 上传时间:2018-10-05 格式:PPT 页数:136 大小:1.46MB
下载 相关 举报
第8章IC卡及其芯片.ppt_第1页
第1页 / 共136页
第8章IC卡及其芯片.ppt_第2页
第2页 / 共136页
第8章IC卡及其芯片.ppt_第3页
第3页 / 共136页
第8章IC卡及其芯片.ppt_第4页
第4页 / 共136页
第8章IC卡及其芯片.ppt_第5页
第5页 / 共136页
亲,该文档总共136页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第8章 IC卡及其芯片,存储器芯片 逻辑加密芯片 CPU芯片(内含COS),本章主要内容,第8章 IC卡及其芯片,8.1 IC卡的存储器芯片 8.2 接触式IC卡的逻辑加密卡 8.3 非接触式IC卡 (Mifare卡) 8.4 COS (Chip Operating System),引 言,IC卡按使用芯片不同,可分成存储卡、逻辑加密卡和智能卡。,IC卡家族图,RFID家族成员示意图,8.1 IC卡的存储器芯片,存储固定信息和消费信息(可修改); 只有与读写器接触时才取得能量;,存储器的性能:,存储器的类型:,EEPROM; 有8个引出端、其中一个为数据I/O端; 信息传送以串行方式进行;,美

2、国ATMEL公司的AT24C01A/02/04/08/16为例:,1. 芯片特点,低电压内部组成AT24C01A(1K:128*8) 双线串行接口(时钟SCL,串行数据SDA)支持ISO/IEC 781610 同步协议高可靠性:10万次、100年,2. 芯片封装,3. EEPROM逻辑图,Q:EEPROM如何读写 ?,器件地址输入端 (标准封装),SCL(串行时钟):SCL上升沿将数据输入到EEPROM芯片,下降沿将EEPROM中的数据读出。 SDA(串行数据):双向串行数据传送端,采用漏极开路驱动,可以进行? 串行控制逻辑:用于区分SCL和SDA。 地址/计数器:形成访问EEPROM的地址,

3、分别 送X译码器进行字选,送Y译码器进行位选。 升压/定时线路:为EEPROM的写入操作提供高电压(12V20V),4. 器件操作,数据和时钟传送:SCL和SDA通常各自通过一个电阻上拉到高电平。,SDA上的数据仅在和SCL为高电平时有效,低电平时允许数据变化。,当数据(包括地址、数据)由接口设备送往AT24Cxx时,称为输出数据(写数据)。数据总是按字节(8位)逐位串行输出,每个时钟脉冲输出一位。SDA总线上的数据应在SCL低电平期间改变(输出),在SCL高电平期间稳定。基于MCS-51单片机的接口设备可利用如下串行输出字节子程序WRITE来实现输出(写)一个字节数据的操作。,( 1) 输出

4、数据,WRITE:;串行输出一个字节到AT24Cxx,高位在前。调用前,SCL、SDA为低。返回时,SCL为低。调用时数据置入A中。返回CY为1表明应答失败。占用A累加器PUSH BMOV B,#8 ;设置位计数器 L1: RLC A ;移一位到CY中MOV SDA,C ;输出位NOP ;保持SCL为低且使数据稳定SETB SCL ;升高时钟ACALL DELAY_4 s;保持SCL为高,CLR SCL ;降低时钟DJNZ B, L1 ;传送下一位SETB SDA ;释放SDA等待应答NOP ;保持SCL为低,保持时间tAANOP SETB SCL ;升高ACK时钟脉冲ACALL DELAY_

5、4 s;保持SCL为高MOV C, SDA ;读入ACK位CLR SCL ;降低ACK时钟脉冲POP BRET,当接口设备从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位。AT24Cxx的EEPROM在SCL低电平期间将数据送往SDA总线,在SCL高电平期间,SDA总线上的数据稳定,可供接口设备读取。 基于MCS-51单片机的接口设备可利用如下串行输入字节子程序READ 来实现输入(读)一个字节数据的操作。,(2) 输入数据,READ:;从AT24Cxx串行输入一个字节,高位在前。调用前,SCL为低。返回时,SCL为低。返回

6、时接收到的数据置于A中SETB SDA ;使SDA为高,准备读PUSH BMOV B,#8 ;设置位计数器 L2: NOP ;保持SCL为低且使数据稳定NOP SETB SCL ;升高时钟,NOP ;保持SCL为高NOP MOV C, SDA ;输入位RLC A ;将位移入ACLR SCL ;降低时钟DJNZ B, L2 ;传送下一位POP BRET,当SCL高电平时,如数据变化,则将形成“开始”或“停止”两种状态。,SCL处于高电平时,SDA从高电平转向低电平表示一个“开始”状态,该状态表示一种操作的开始,因此必须在任何其他命令之前执行。AT24Cxx开始/停止定义时序图见图。,(1)开始状

7、态(START),START:;发送START状态,定义当SCL为高时,SDA从高到低。返回时,SCL、SDA为低。当总线无效时,返回CY位为高SETB SDA ;升高SDASETB SCL ;校验总线有效JNB SDA, ERROR1;若SDA不为高则跳转到ERROR1JNB SCL, BACK1 ;若SCL不为高则跳转到BACK1NOP ;保持数据建立延迟及周期延迟,基于MCS-51单片机的接口设备可利用如下开始子程序START来实现一个开始操作。,CLR SDA ;降低SDAACALL DELAY_4 s;保持SDA为低,保持时间4 sCLR SCL ;降低SCLCLR C ;清零错误标

8、志AJMP BACK1 ERROR1: SETB C ;置位错误标志 BACK1: RET,SCL处于高电平时,SDA由低电平转向高电平表示一个“停止”状态。该状态表示一种操作的结束并将终止所有通信。在一个读序列之后,停止命令置EEPROM于待机模式。,(2)停止状态(STOP),基于MCS-51单片机的接口设备可利用如下停止子程序STOP来实现一个停止操作。,STOP:;发送STOP状态,定义当SCL为高时,SDA从低变高。调用前,SCL为低。返回时,SCL、SDA为高CLR SDANOP ;保持SCL为低及数据稳定NOPSETB SCLACALL DELAY_4 s;保持建立延迟SETB

9、SDARET,5. 器件寻址,1K、2K、4K、8K和16K EEPROM在开始状态之后紧跟8位器件地址,使芯片能执行读/写操作。,1K/2K,MSB,LSB,A2、A1、A0为器件地址,与硬布线输入端相对应。 R/W是读/写操作选择位,高电平为读,低电平为写。,4K,MSB,LSB,8K,16K,4K EEPROM:A2、A1为地址位,另一位为页面地址位P0。A2A1必须与硬件布线端相对应。,页面地址位也就是随后的数据字地址的最高位。,6. 写操作,(1)写字节( BYTE WRITE ),写字节时序见图8.1 。写字节时序要求在给出“开始”状态、器件地址码和收到卡的确认应答ACK后,紧跟着

10、给出一个8位地址码(32 KB芯片是2个8位地址码)。卡收到地址码后发出确认应答ACK。,图8.1 AT24Cxx写字节时序图,然后送8位数据到SDA线上,并进入EEPROM单元,每个时钟节拍送入1位。EEPROM单元收到数据后,通过SDA线发出确认应答ACK。数据传送设备必须用“停止”状态来结束写操作。这时EEPROM进入内部定时的写周期,如图中的tWR,在写周期期间,将数据写入非易失性存储器,并禁止所有其他操作直到写完成。,图8.2 AT24Cxx写周期时序图,基于MCS-51单片机的接口设备可利用如下写字节子程序WRITE_BYTE来实现写字节操作。WRITE_BYTE:;AT24Cxx

11、写字节功能。调用前可编程的器件地址programmable address置于A中,字节地址置于寄存器ADDR_H和ADDR_L中,数据置于寄存器XDATA中。未等待写周期完成。返回CY为1表明总线无效或该器件无应答。占用A累加器ACALL START; 开始子程序JC BACK2 ;若总线无效则中断OR A, #FADDR ;加入固定器件地址CLR ACC.0 ;设置写,建立器件地址,ACALL WRITE ;发送器件地址 JC ERROR2 ;若无应答则中断 MOV A, ADDR_H ;发送字节地址的高8位 ACALL WRITE JC ERROR2 ;若无应答则中断 MOV A, AD

12、DR_L ;发送字节地址的低8位 ACALL WRITE JC ERROR2 ;若无应答则中断 MOV A, ADATA ;取数据 ACALL WRITE ;发送数据 JC ERROR2 ;若无应答则中断 CLR C ;清零错误标志,ERROR2: ACALL STOP BACK2: RET,(2)写页面( 输出数据),1K/2K EEPROM能进行8字节页面写入,4K/8K/16K设备能进行16字节页面写入。,写页面操作与写字节操作类似,但数据传送设备不需要在第一个字节输入后发停止状态。 在EEPROM确认收到第一个数据后,数据传送设备再传送7个(1K/2K)或15个(4K/8K/16K)字

13、节数据,在每一个数据收到后,EEPROM都要通过SDA送回确认信号,最后数据传送设备通过停止状态终止写页面。,图8.3 写页面时序图,数据地址的低3位(对于AT24C01/02)或4位(对于AT24C04/08/16)在收到每个数据字后,在芯片内部自动加1。数据字地址的高位字节保持不变,以保持存储器页地址不变。如果传送到EEPROM中的数据字超过8(对于AT24C01/02)或16(对于AT24C04/08/16),数据字地址将“滚动覆盖”,以前写入的数据将被覆盖。基于MCS-51单片机的接口设备可利用如下写块子程序WRITE_BLOCK来实现写页面操作。,WRITE_BLOCK:;向AT24

14、Cxx写入一页数据。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_H和ADDR_L中,数据置于BUFFER中,字节计数器置于寄存器COUNT中。未等待写周期完成。返回时CY位为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:INDEX为数据缓冲区指针,可使用工作寄存器R0) ACALL START JC BACK3 ;总线无效则中断 OR A, #FADDR ;生成器件地址,CLR ACC.0 ;定义写操作 ACALL WRITE ;发送器件地址 JC ERROR3 ;无应答则中断 MOV A, ADDR_H ;发送字节地址高8位 ACALL WRITE

15、 JC ERROR3 ;无应答则中断 MOV A, ADDR_L ;发送字节地址低8位 ACALL WRITE JC ERROR3 ;无应答则中断 MOV INDEX, #BUFFER ;指向数据缓冲区首地址,L3: MOV A, INDEX ;取数据ACALL WRITE ;发送数据JC ERROR3 ;无应答则中断INC INDEX ;地址指针加1DJNZ COUNT, L3 ;下一个字节CLR C ;清零错误标志 ERROR3: ACALL STOP BZCK3: RET,复习,IC卡的详细分类(家族图) 存储卡的芯片特点 存储卡的器件操作方式 器件寻址方式(按字节寻址和页面寻址) 如何

16、实现存储卡芯片的写操作(结合时序),8.2 接触式IC卡的逻辑加密卡,逻辑加密卡主要由EEPROM单元阵列和密码控制逻辑电路构成;功能介于存储卡和CPU卡之间; 适用于需要保密,但对保密功能要求不高的场合;,逻辑加密卡的逻辑结构图,1)写入:向EEPROM写入“0”2)擦除:向EEPROM写入“1”3)熔断:对EEPROM单元进行一次性的写入操作 4)个人化:发行商将IC卡发行给个人时,写入发行商代码、用户密码、用户身份标识,并擦除其余应用区EEPROM的过程。5)密码错误计数:密码错误输入的次数,超过该次数,IC卡将自锁。,8.2.1 名词定义,逻辑加密卡的主要内容,逻辑加密卡的功能框图 逻

17、辑加密卡的存储区的分类 典型芯片案例,(1)ATMEL公司的芯片案例 (2)Siemens公司的芯片案例,8.2.2 逻辑加密卡的功能框图,逻辑加密卡芯片从功能上分两个部分:,逻辑加密卡的功能框图,RST信号将地址计数器置全0; 行/字驱动器与列/位选择器为EEPROM单元提供选择信号;由列选择器选择其中的某位进行读/写。,地址计数器:仅是计数器,EEPROM的访问按地址顺序逐一进行。 地址译码器 密码比较器,内部寄存器:锁存密码比较器的结果和应用区的读/写属性,供逻辑控制阵列。逻辑控制阵列:控制EEPROM的读/写。,制造代号区 发行代号区 用户密码区 密码比较计数区 用户个人区 应用区 擦

18、除密码区 擦除计数区,8.2.3 芯片内部存储区域,采用分区结构,记录卡芯片生产商的特定信息(例如:生产批号、日期及特别制定的特征代码)。 该区域里的单元信息一般由制造商在芯片出厂前写入。 当控制本区的熔丝(FUSE1)没有熔断时,该区的存储单元可像普通的EEPROM存储单元一样擦除和改写。 一旦熔丝熔断,所写入的“制造商代码”就不可再更改。 芯片出厂时,厂商一般将此代码注入,并熔断保护熔丝(FUSE1),从而使写入该区的标识信息不可更改,只能以读出。,1. 制造商代码区(FZ, Fabrication Zone),标识代号由生产商事先选定, 代码注入后将保护熔丝熔断,以确保日后不可更改。,特

19、征:,因此在卡片发行应用中,将这一标识作为系统中验证卡片真伪的重要标识。,用于记录卡片发行商的特定信息(例如:发行批号、日期、地区编号及特定用户编号等特征代码)。 该区域的单元信息是在卡片进行个人化处理的过程中写入。 当控制本区的熔丝(FUSE2)没有熔断时,该区的存储单元内容可以自由地擦除或改写。 个人化处理完成之后,控制该区的熔丝(FUSE2)熔断,即可将注入的“发行商代码”完全固化。,2. 发行商代码区(IZ,Issuer Zone),在随后的卡片应用中,该区的内容不可更改,但可以任意读出。 该代码也是识别卡片的真伪,区分卡片应用类别的重要标识。,个人代码区用于存放个人身份标识数据。 该

20、区使用时受芯片的“用户密码”的保护。 当“用户密码”比较成功时,该区可读/写/擦除。 “用户密码”比较不成功,该区只能读而不能写入和擦除。,3. 个人代码区(CPZ,Code Protected Zone),整个存储器的“总控制开关”。 使用前,由授权持卡人预先输入的一个安全代码作为“参照字”储存在这个存储区里。 使用时,必须输入一个“校验密码”。 芯片将输入的“校验密码”与内部存储器的“参照字”一一比较。,4. 用户密码区(SC,Security Code),如果比较结果一致,密码比较有效标志SV设为“1”,并开放整个芯片储存器(包括各分区的控制密码和各应用数据区)。 如果比较结果不一致,芯

21、片内部保持SV为“0”,并禁止外部对各分区的控制密码区和应用数据区进行擦除和写入操作。 除FZ、IZ、CPZ等区域可读出外,其他应用区能否读出需由各分区“读控制标志”的状态来控制。,为防止“用户密码”被非授权持卡人恶意跟踪猜测,最简单的方法是对输入的“校验密码”的比较操作次数进行限制。 该区用于对连续输入的错误密码的次数进行累计。 当连续4次不正确的比较操作之后,芯片将被锁死。 芯片被锁死之后,将拒绝任何的写入、擦除和比较的操作命令。,5. 密码比较计数区(SCAC,Security Code Attempts Counter),擦除密码区用于存储擦除应用区操作的控制密码。 该密码一般由发行商

22、使用。 在芯片个人化处理之前,该区可以像普通EEPROM存储单元一样进行读/写/擦除操作。 在个人化处理时输入最后一组“擦除密码”,在芯片熔丝FUSE2熔断之后将使“擦除密码”保存在该区内。该区不再能进行读/写/擦除操作,只能进行比较操作。,6. 擦除密码区(EZn(n=1,2,3,4),Erase Key),在使用过程中如需对应用区进行擦除操作,则必须首先对相应的EZ区输送一个“擦除密码”与之比较,在“擦除密码比较计数器”不为“00H”的情况下,如果相比较的两代码完全一致,则相应的应用区的单元允许擦除,否则将禁止执行擦除操作。,如消费卡的充值操作。,擦除密码比较计数区(EnAC)的作用与SC

23、AC的作用相类似。它对各应用区擦除密码连续输入错误的次数进行累计。擦除密码比较计数器的计数方式与SCAC的方式完全一样。如果需要提高保密强度,也可以置一个“初始值”来减少芯片允许“比较操作”的次数。,7. 擦除密码比较计数区(EnAC(n=1,2,3,4),Erase Key Attempts Counter),应用数据区主要给用户使用,用于存储系统的有关数据和卡片标识等信息。 应用数据区的写入与读出分别由该区的前两位Pn(写操作标志,各应用分区的第1位)和Rn(读操作标志,各应用分区的第2位)以及SV(标志的状态)控制,擦除操作则由该区的擦除密码控制。 AT88SC1604设计了四个完全隔离

24、的分区,其中13分区的单元容量分别是4 Kb、第4分区的单元容量为36 Kb。,8. 应用数据区(AZn(n1,2,3,4),Application Zone),存储测试区主要用于芯片生产后对EEPROM单元阵列进行各项性能测试。该区不受任何控制区状态和标志状态的保护,允许对这个区进行读/写/擦除操作,但不能进行比较操作。,9. 存储测试区(MTZ,Memory Test Zone),ATMEL 公司 AT88SC102芯片特征: 具有1K位的EEPRON 低功耗CMOS技术 2个512位可用存储分区 5伏工作电压、自升压电路 允许擦除次数10万以上 数据保存年限100年,8.2.4 ATME

25、L 公司逻辑加密卡芯片,ATMEL 公司逻辑加密卡芯片有:AT88SC 06、AT88SC101/102、AT88SC200等。,本小节主要内容,芯片触点 存储区的分配问题 访问控制 操作模式,1. 触点(芯片/卡片),(1) VCC、RST、CLK、GND、I/O 遵从ISO/IEC 7816-10的同步协议; (2) FUS 熔断信号:进行熔断操作; (3) PGM 编程信号:通知芯片进行写入/擦除操作,无需读写器提供高电压信号VPP,采用芯片内置电路。,地址计数器为11位(211K),计数范围:( 02047) ; 实际使用区间: 01567 用户使用区间: 01423,2. 存储区域分

26、配,表8.5 AT88SC102 存储分区结构表,存储测试区不受保护,可进行读/写,用来测试EEPROM的性能。,(1) 三个内部使用的EEPROM单元:FUSE1、FUSE2和EZ1的控制位;,另外,芯片存储器还有一些特殊单元:,FUSE1:制造商用; FUSE2:发行商用; EZ1的控制位:,“0”表示卡内不设置EZ1区,EZ1的地址被跳过。 “1”时对APP1擦除时需要核对EZ1密码,且要求SC比较结果正确。,(2) 两个供特殊控制用的地址,其一:获取物理熔丝的状态(断或未断); 其二:可对全片进行擦除操作;(留给制造商和发行商),3. 访问控制,由C4电压和熔丝FUSE1和FUSE2共

27、同控制。,表8.7 个人化时的访问控制条件,表8.8 个人化后用户使用时的访问控制条件,4. 操作模式,由PGM、RST、CLK信号和内部地址计数器决定四种操作模式(内部)。,图 8.17所示,* RESET * INC (INC/READ) * CMP (INC/CMP) * WRITE , VERIFY,* RESET,卡内地址计数器清零。 当RST和CLK信号都为0时,存储器内的数据开始出现在I/O线上。 当RST为高时,禁止地址计数器计数;计数器在RST的下降沿清零。,* INC (INC/READ),卡内地址计数器加1。存储器内的数据输出在I/O线上。 以上操作在时钟下降沿进行。,*

28、 CMP (INC/CMP),外部输入数据与卡内密码进行比较。 当CLK信号为0时,输入数据在I/O线上必须稳定。 地址计数器在时钟下降沿加1。,* WRITE , VERIFY,在时钟上升沿前,I/O数据必须准备好,然后CLK必须保持为高至少5ms,等待写入操作完成 。 随后,在CLK下降沿,刚写入的数据出现在I/O线上,以被验证。 地址计数器在时钟下降沿加1。,8.2.5 Siemens 公司的逻辑加密卡芯片,德国Siemens公司的逻辑加密卡芯片有:SLE4404、SLE 4406、SLE 4412、SLE4418/4428和SLE4432/4442。,这些卡常用于具有定额定价的消费系统

29、中,如公用电话卡、预付费加油卡、停车计费卡、游乐园消费卡等。,SLE4432/4442是面向字节操作的。 SLE4404、SLE 4406、SLE 4412、SLE4418/4428是面向位操作方式的。,(1) 104位存储容量; (2) 最大可提供20 480个计数单位; (3) 3个字节传输密码,1位发行标志保护; (4) 温度范围:-3580; (5) 至少10 000次循环擦写次数; (6) 至少10年数据保存期。,1主要指标,Siemens公司SLE 4406芯片案例:,2存储结构 (138104位),SLE4406的存储分布图,3保密特性,SLE4406保密特性表,发行后,用户区进

30、入计数状态,计数区按位写0,按字节借位擦除。假设偏移地址为12的字节的8位已被写为0,则可将偏移地址为11的字节的其中1位写为“0”,而偏移地址为12的字节其8位可以全擦除成“1”,然后再逐位写0直至再次全写为0后再借位擦除。例如,11111111 00000000 11111110 11111111。注意:写表示写“0”,擦除表示写“1”。按照上述计数规则,用户区的5个字节最大可提供20 480个计数单位(第5位计数器只有4位可用)。,4用户区计数规则,它具有2 Kb的存储容量; 完全独立的可编程加密代码(PSC,Programmable Security Code)存储器; 内部电压提升电

31、路保证了芯片能够以单+5电压供电; 较大的存储容量能够满足通常应用领域的各种要求。,西门子(Siemens)公司的SLE4442案例,面向字节操作的多存储器结构逻辑加密卡,是目前国内应用较多的一种IC卡芯片。,(1) 采用多存储器结构。(2) 2线连接协议,复位响应满足ISO/IEC 7816-3标准。(3) 触点配置及串行接口满足ISO/IEC 7816(同步传输协议)。(4) 仅当正确输入3个字节的可编程加密代码(PSC)后方可修改 数据。 (5) 芯片采用NMOS工艺技术,每个字节的写入/擦除编程时间为2.5 ms。 (6) 存储器具有至少104次的写入/擦除周期,数据保持时间至少10年

32、。,1总体描述,SLE4442的触点配置图,SLE4442引脚定义和功能说明,2568 b的EEPROM型主存储器; 321 b的PROM型保护存储器; 48 b的EEPROM型加密存储器。,2存储器结构,SLE4442卡芯片采用了多存储器结构,主要包括三个存储器:,SLE4442的存储器结构,主存储器,保护存储器,加密存储器,主存储器(Main Memory),主存储器的地址从0(00)255(FFH),共256 B(2 Kb)。,主存储器是可重复擦除使用的EEPROM型存储器,按字节寻址、擦除和写入。,主存储器前32 B为保护数据区,地址从0(00H)到31(1FH)。 这部分的数据读出不

33、受限制,但擦除和写入操作均受到保护存储器内部数据状态的限制。,(1) 保护数据区,根据这一特性,主存储器的保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数,如厂商代码、发行商代码等。,保护存储器(n=031),主存储器,第n位1,第n个字节允许擦除和写入操作;,第n位0,第n个字节不允许擦除和写入操作;,主存储器后224 B为应用数据区,地址从32(20H)到255(FFH)。这部分数据读出不受限制,但擦除和写入均受控于加密存储器数据校验比较结果的影响。,(2) 应用数据区,保护存储器是一个321 b的一次性可编程只读存储器(PROM); 是按位寻址和写入; 保护存储器(03

34、1)位每一位对应着主存储器地址为031的每一个字节,可以看成每个字节单元的控制熔丝。,保护存储器(Protection Memory),从出厂到初始化前,保护存储器的状态为全“1”。 从控制方面来说,保护存储器的内容只能从“1”写成“0”(即熔断熔丝),而不能从“0”擦除成“1”。 保护存储器被写“0”的单元所对应被控制的主存储器的字节单元将不再接受任何擦除和写入操作命令,从而使得该字节单元内的数据不可再改变。因此,对保护存储器单元的写入一定要特别小心。,如果需要防止一些固定的标识参数(例如,生产厂家代码、发行商代码、卡片编号等)被改动,可以将这类参数先写入主存储器的保护数据区,然后将对应单元

35、的保护存储器的字位写0,从而使这部分数据单元的参数永远不可更改。保护存储器本身的读出操作不受限制。但对其写入操作仍然受到加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内原来存有的“参照字”一致时,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将锁住保护存储器。,加密存储器(Security Memory),加密存储器是一个48 b的EEPROM型存储器。,第0个字节为“密码输入错误计数器”(EC,Error Counter)。密码输入错误计数器的有效位是低3位。在芯片初始化时,计数器设置成“111”。 该字节是可读的,每次比较密码时,先要判定计数器中是否还有“1”。如果还有“

36、1”,则将一个“1”写成“0”。然后进行比较“校验字”操作。,3 2 1 0,如果比较结果一致,则密码错误计数器将允许进行擦除操作(注意,芯片不能自动进行擦除操作),同时打开主存储器、保护存储器和加密存储器,并允许进行擦除和写入操作。 如果比较结果不一致,则EC中为“1”的个数减少1位。只要(EC)0,则芯片的比较“校验字”操作还允许再次进行。当连续三次输入错误密码后(即密码计数器减少为0),则芯片的存储单元将全部被锁死。 由此可见,加密存储器可以理解为进入整个芯片的“关卡”。,加密存储器的第1、2、3个字节为“参照字”存储区。 这3个字节的内容作为一个整体被称为可编程加密代码(PSC)。,注

37、意:这3个字节的内容在PSC比较成功前是不可读的,只能进行比较操作。而写入和擦除操作也受自身比较操作结果的控制。只有当比较操作成功时,加密存储器各字节的内容才可以进行读出、写入和擦除。,1. 上电复位: 芯片内部寄存器复位,8.2.6 典型电路分析,2. 密码比较:形成SC与EZ,其作用是验证持卡人和发行商的身份,是整个电路的核心。,删除密码比较电路 用户密码比较电路,I/O,COMP,TDATA,TIN,(1)删除密码比较电路,外部数据,由EEPROM读出数据,0,1,1,原态1,0,0,图8.32 删除密码比较电路,当EZ1,表示密码比较正确。,电路设计原则: 初态EZ1,如密码比较相等,

38、EZ仍然为1; 如密码比较不正确,则EZ0,即COMP1,然后COMP保持1,EZ保持0。,电路工作原理:,当地址为0时,ADR0有效,触发器清零,COMP0,EZ1;,当地址未到密码区时,COMP的D端为0,因此COMP保持0,EZ1;,当地址在密码区时,由EEPROM读出的数据DATA经锁存为TDATA;外部数据I/O输入触发器后为TIN。二者经异或门进行比较:,如比较结果相等,则D端为0,COMP保持0,即EZ保持1; 如比较结果不等,则D端为1,COMP跳变为1,然后依靠Q输出到D端的连线,使它保持1,因此EZ保持为0。,TIN在CLK的上升沿时形成,TDATA在TCLK为1时锁存,而

39、比较结果在CLK的下降沿时形成。 即时钟上升沿保存要比较的数据,在时钟下降沿进行比较。,(2) 用户密码比较电路,对于SC来说,由于有比较次数的限制,因此即使比较结果正确,但超过了四次的限制,仍然无效。因此在图8.32的基础上,需增加图8.33锁存电路。 其中ESC1,才表示用户密码正确。,图8.32 密码比较结果锁存电路,1,1,1,0,1,1,该电路保证比较结果正确,且密码比较次数在规定的范围内。 此时,ESC1。,COMP1 A3A200,即密码比较次数4,A3A0=00000011; SCAC1,即比较次数有效;,ESC1表示:,3. 熔丝电路,FUSE1 生产商掌控FUSE2 发行商

40、掌控,熔丝的作用是控制特殊的读写操作,但熔丝熔断后,读写操作就无法进行,从而达到保密的目的。,FUSE1 和 FUSE2 的实现有三种方式:,(1)采用2个物理熔丝分别代表FUSI和FUS2,都采用外加电流的方式熔断。图8.34 (2)采用一个物理熔丝,而用2个EEPROM单元代表FUSE1和FUSE2,用物理熔丝来控制FUSE1和FUSE2的读写操作。 (3)利用芯片出厂的切片操作来代替熔断物理熔丝,图8.35。,8.3 非接触式IC卡 (Mifare卡),Mifare Standard 逻辑加密卡 Mifare Light 逻辑加密卡 Mifare PLUS 双界面CPU卡 Mifare

41、PRO 双界面CPU卡,共享EEPROM,Mifare Standard,Mifare PLUS,Mifare pro,1994,1997,1998,逻辑加密卡,双界面CPU卡,符合ISO/IEC 14443读卡距离?工作频率?数据传输率?交易时间?防冲突功能?,8.3.1 Mifare Standard,1. 概 述,2. Mifare Standard逻辑图,鉴别和访问控制,ATR,防冲突,选择应用,密码计算单元,控制和算术 运算单元,数字部分,EE P R O M 接口,EE P R O M,3. IFD与ICC的交易流程,IFD发Request给所有在场的IC卡,通过防冲突循环,得到一

42、张卡的序列号,选择此卡进行鉴别,通过后对存储器进行操作。,防冲突循环 得到序列号,选择卡,鉴别,Transfer,Halt,Read,Write,Decrement,Incre,Rstor,Halt,Request,4. Mifare 卡的访问存储器命令,Read 读存储器的一个分组 2.5ms Write 写存储器的一个分组 6.0ms Decrement 减少分组内容,将结果存入数据寄存器 Increment 增加分组内容,将结果存入数据寄存器 Transfer 将数据寄存器内容写入EEPROM一个分组 Restore 将分组内容存入数据寄存器,5. 存储器组织与访问条件,16区4分组16

43、字节Block 0 制造商代码(0区)/数据Block 3 本区密钥/访问条件Block 02 数据分组,数据分组,读写分组 价值分组,整个存储器分成16个扇区,每个分区有4个分组构成,每个分组占16个字节。,0 1 2 3,0 1 2 3,0 1 2 3,0 1 2 3,Block 0 制造商代码(0区),数据分组,区尾部 Block 3,0,1,2,15,存储器的结构示意图,区尾部Block 3的组成,0 1 2 3 4 5,6 7 8 9,10 11 12 13 14 15,7 6 5 4 3 2 1 0,访问条件的每一位用原码和反码存储; 访问条件的最后一个字节(BX0BX7)用来存放

44、特定的应用数据。,16 个字节,块3的访问条件的存放情况,说明: -b 表示取反,如C2X3-b为C2X3取反; X表示扇区;Y表示块;C表示控制位; B表示备用位:用来存放特定的应用数据。 C1X3、C2X3、C3X3表示控制块3的访问条件。,6 7 8 9,Mifare 1 卡存取控制对块3的控制配置,Decrement、Increment、Transfer和Restore是永远不能执行的;,Mifare 1 卡存取控制对块3的控制配置,Key A是不能读出的;但在满足一定条件下,可以改写; Key B作为密钥使用,也是不能读出的;,在某种条件下,能读出时,其内容不是密钥,而是数据。,Mi

45、fare 1 卡存取控制对块3的控制配置,Mifare 1 卡存取控制对块0块2的控制配置,根据各区块3提供的访问条件,可以对相应的区进行数据分组操作,实现读/写分组、价值分组。,在MF1 IC 卡中,有两类数据分组:,(1)读/写分组,用于读/写(Read/Write)一般的16字节数据。,(2)价值分组(Value block ),用于电子钱包功能(Read、Increment、Decrement、Transfer和Restore)。,Value的长度为4个字节,每个Value存入3次,以提高错误检测和纠错能力。,Value block中的内容第一次由Write命令写入到所要求的地址中,以

46、后用Decrement/Increment/Restore命令修改内容。 计算结果暂存入DATA寄存器,再用Transfer命令写入存储器。,IFD用随机数、卡的序列号和密钥进行加密。采用3pass鉴别法。,6. 安 全,密钥在卡内是受保护的,但可修改,因此知道了运输密钥后,可以写入自己的秘密密钥; 每个区有两个密钥,可进行不同的目的; 在通过3pass鉴别后,发送器自动加密,接收器自动解密。,RBIC卡产生的随机数Token AB=EKAB (RARBBText2)Token BA=EKAB (RBRAText4),A,B,(A)RB,(B)TokenAB,(D)TokenBA,IFD,IC

47、C,(C)对报文TokenAB解密,验证一致性,(E)对报文TokenBA解密,验证一致性,安全流程:,B发送随机数RB; A发送Token AB到B;,A,B,(A)RB,IFD,ICC,(B)TokenAB,B接收到报文TokenAB到B后,对加密部分进行解密,并验证标识符B和随机数RB的正确性,验证在A发送到B的RB与包含在TokenAB中的随机数是否一致;,A,B,IFD,ICC,(C)对报文TokenAB解密,验证一致性,B发送TokenBA到A; A接收到报文TokenBA后,对加密部分进行解密,并检查随机数的一致性。,A,B,IFD,ICC,(D)TokenBA,(E)对报文To

48、kenBA解密,验证一致性,8位单片机 片上操作系统COS存在ROM内。 RAM存放中间处理结果与作为中间缓存器。 E2PRON供用户访问的存储区:信息、密码、密钥、应用文件。 当卡采用RSA加密 算法时,专门配置 协处理器。,8.4 CPU卡的硬件环境与芯片,法国GEMPLUS公司的产品PCOS(Payment COS)的EEPROM案例,字 地址,1 000,00800C,10 0024 11 0028,26 0064 27 0068,256 03FC,8.4 COS (Chip Operating System),IC卡的专用系统:控制IC卡和外界的信息交换,管理IC卡内的存储器,完成各

49、种命令的处理。符合ISO/IEC7816-4。,COS所遵循的信息交换协议目前两类:异步字符传输的T0协议; 异步分组传输的T1协议。,传送管理 安全体系 应用管理 文件管理,8.4.1 COS 的体系结构,传送管理按照信息传输协议,接收IFD的命令,发送对命令的响应。 安全体系安全状态:IC卡当前满足规定的条件。安全属性:定义执行某条命令所需的条件,达到安全控制的目的。安全机制:安全状态实现转移的方法与手段。(密码鉴别、数据鉴别、数据加密等),安全体系鉴别与核实的区别鉴别 Authentication 核实 Verify 密钥管理:COS通过对文件访问的安全控制机制来保证密钥文件的安全。,应用管理COS对IC卡接收的命令的可执行性进行判断。 文件管理文件的基本结构 MF DF EF文件的分类:COS file 保存有基本的应用数据。key file 存储进行数据加密用的密钥。purses file 存储有价数据。COS对文件的操作均应符合ISO/IEC 7816-4的规定。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1