版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章IC卡及其芯片存储器芯片逻辑加密芯片CPU芯片(内含COS)本章主要内容第8章IC卡及其芯片8.1IC卡的存储器芯片
8.2接触式IC卡的逻辑加密卡
8.3非接触式IC卡(Mifare卡)
8.4COS(ChipOperatingSystem)引言IC卡按使用芯片不同,可分成存储卡、逻辑加密卡和智能卡。IC卡家族图RFID家族成员示意图8.1IC卡的存储器芯片存储固定信息和消费信息(可修改);只有与读写器接触时才取得能量;存储器的性能:存储器的类型:EEPROM;有8个引出端、其中一个为数据I/O端;信息传送以串行方式进行;美国ATMEL公司的AT24C01A/02/04/08/16为例:1.芯片特点低电压内部组成AT24C01A(1K:128*8)双线串行接口(时钟SCL,串行数据SDA)支持ISO/IEC7816-10同步协议高可靠性:10万次、100年2.芯片封装C1C5C2C6C3C7VCCNCSCLGNDNCSDA芯片的触点引出端名功能C1C2C3C5C6C7VCCNCSCL(CLK)GNDNCSDA/(I/O)工作电压未连接串行时钟地未连接串行数据(I/O)3.EEPROM逻辑图Q:EEPROM如何读写?器件地址输入端(标准封装)SCL(串行时钟):SCL上升沿将数据输入到EEPROM芯片,下降沿将EEPROM中的数据读出。SDA(串行数据):双向串行数据传送端,采用漏极开路驱动,可以进行?串行控制逻辑:用于区分SCL和SDA。地址/计数器:形成访问EEPROM的地址,分别送X译码器进行字选,送Y译码器进行位选。升压/定时线路:为EEPROM的写入操作提供高电压(12V~20V)4.器件操作数据和时钟传送:SCL和SDA通常各自通过一个电阻上拉到高电平。SDA上的数据仅在和SCL为高电平时有效,低电平时允许数据变化。当数据(包括地址、数据)由接口设备送往AT24Cxx时,称为输出数据(写数据)。数据总是按字节(8位)逐位串行输出,每个时钟脉冲输出一位。SDA总线上的数据应在SCL低电平期间改变(输出),在SCL高电平期间稳定。基于MCS-51单片机的接口设备可利用如下串行输出字节子程序WRITE来实现输出(写)一个字节数据的操作。(1)输出数据WRITE:;串行输出一个字节到AT24Cxx,高位在前。调用前,SCL、SDA为低。返回时,SCL为低。调用时数据置入A中。返回CY为1表明应答失败。占用A累加器 PUSH B MOV 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为低,保持时间tAA NOP SETB SCL ;升高ACK时钟脉冲 ACALL DELAY_4μs;保持SCL为高 MOV C,SDA ;读入ACK位 CLR SCL ;降低ACK时钟脉冲 POP B RET当接口设备从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位。AT24Cxx的EEPROM在SCL低电平期间将数据送往SDA总线,在SCL高电平期间,SDA总线上的数据稳定,可供接口设备读取。基于MCS-51单片机的接口设备可利用如下串行输入字节子程序READ来实现输入(读)一个字节数据的操作。(2)输入数据READ:;从AT24Cxx串行输入一个字节,高位在前。调用前,SCL为低。返回时,SCL为低。返回时接收到的数据置于A中 SETB SDA ;使SDA为高,准备读 PUSH B MOV B,#8 ;设置位计数器L2: NOP ;保持SCL为低且使数据稳定 NOP SETB SCL ;升高时钟 NOP ;保持SCL为高 NOP MOV C, SDA ;输入位 RLC A ;将位移入A CLR SCL ;降低时钟 DJNZ B,L2 ;传送下一位 POP B RET当SCL高电平时,如数据变化,则将形成“开始”或“停止”两种状态。SCL处于高电平时,SDA从高电平转向低电平表示一个“开始”状态,该状态表示一种操作的开始,因此必须在任何其他命令之前执行。AT24Cxx开始/停止定义时序图见图。
(1)开始状态(START)START:;发送START状态,定义当SCL为高时,SDA从高到低。返回时,SCL、SDA为低。当总线无效时,返回CY位为高 SETB SDA ;升高SDA SETB SCL ;校验总线有效 JNB SDA,ERROR1;若SDA不为高则跳转到ERROR1 JNB SCL,BACK1 ;若SCL不为高则跳转到BACK1 NOP ;保持数据建立延迟及周期延迟基于MCS-51单片机的接口设备可利用如下开始子程序START来实现一个开始操作。 CLR SDA ;降低SDA ACALL DELAY_4μs;保持SDA为低,保持时间4μs CLR SCL ;降低SCL CLR C ;清零错误标志 AJMP BACK1ERROR1:SETB C ;置位错误标志BACK1: RETSCL处于高电平时,SDA由低电平转向高电平表示一个“停止”状态。该状态表示一种操作的结束并将终止所有通信。在一个读序列之后,停止命令置EEPROM于待机模式。(2)停止状态(STOP)基于MCS-51单片机的接口设备可利用如下停止子程序STOP来实现一个停止操作。STOP:;发送STOP状态,定义当SCL为高时,SDA从低变高。调用前,SCL为低。返回时,SCL、SDA为高 CLR SDA NOP ;保持SCL为低及数据稳定 NOP SETB SCL ACALL DELAY_4μs;保持建立延迟 SETB SDA RET5.器件寻址1K、2K、4K、8K和16KEEPROM在开始状态之后紧跟8位器件地址,使芯片能执行读/写操作。1010A2A1A0R/W1K/2KMSBLSBA2、A1、A0为器件地址,与硬布线输入端相对应。R/W是读/写操作选择位,高电平为读,低电平为写。1010A2A1P0R/W4KMSBLSB1010A2P1P0R/W8K1010P2P1P0R/W16K4KEEPROM:A2、A1为地址位,另一位为页面地址位P0。A2A1必须与硬件布线端相对应。页面地址位也就是随后的数据字地址的最高位。6.写操作(1)写字节(BYTEWRITE
)写字节时序见图8.1。写字节时序要求在给出“开始”状态、器件地址码和收到卡的确认应答ACK后,紧跟着给出一个8位地址码(32KB芯片是2个8位地址码)。卡收到地址码后发出确认应答ACK。图8.1AT24Cxx写字节时序图然后送8位数据到SDA线上,并进入EEPROM单元,每个时钟节拍送入1位。EEPROM单元收到数据后,通过SDA线发出确认应答ACK。数据传送设备必须用“停止”状态来结束写操作。这时EEPROM进入内部定时的写周期,如图中的tWR,在写周期期间,将数据写入非易失性存储器,并禁止所有其他操作直到写完成。图8.2AT24Cxx写周期时序图基于MCS-51单片机的接口设备可利用如下写字节子程序WRITE_BYTE来实现写字节操作。WRITE_BYTE:;AT24Cxx写字节功能。调用前可编程的器件地址programmableaddress置于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,ADDR_L ;发送字节地址的低8位ACALL WRITE JC ERROR2 ;若无应答则中断MOV A,ADATA ;取数据ACALL WRITE ;发送数据JC ERROR2 ;若无应答则中断CLR C ;清零错误标志ERROR2:ACALL STOPBACK2:RET(2)写页面(输出数据)1K/2KEEPROM能进行8字节页面写入,4K/8K/16K设备能进行16字节页面写入。写页面操作与写字节操作类似,但数据传送设备不需要在第一个字节输入后发停止状态。在EEPROM确认收到第一个数据后,数据传送设备再传送7个(1K/2K)或15个(4K/8K/16K)字节数据,在每一个数据收到后,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:;向AT24Cxx写入一页数据。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_H和ADDR_L中,数据置于BUFFER中,字节计数器置于寄存器COUNT中。未等待写周期完成。返回时CY位为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:INDEX为数据缓冲区指针,可使用工作寄存器R0)ACALL STARTJC BACK3 ;总线无效则中断OR A,#FADDR ;生成器件地址CLR ACC.0 ;定义写操作ACALL WRITE ;发送器件地址JC ERROR3 ;无应答则中断MOV A,ADDR_H ;发送字节地址高8位ACALL WRITE JC ERROR3 ;无应答则中断MOV A,ADDR_L ;发送字节地址低8位ACALL WRITE JC ERROR3 ;无应答则中断MOV INDEX,#BUFFER ;指向数据缓冲区首地址L3: MOV A,@INDEX ;取数据 ACALL WRITE ;发送数据 JC ERROR3 ;无应答则中断 INC INDEX ;地址指针加1 DJNZ COUNT,L3 ;下一个字节 CLR C ;清零错误标志ERROR3:ACALL STOPBZCK3:RET复习IC卡的详细分类(家族图)存储卡的芯片特点存储卡的器件操作方式器件寻址方式(按字节寻址和页面寻址)如何实现存储卡芯片的写操作(结合时序)8.2接触式IC卡的逻辑加密卡逻辑加密卡主要由EEPROM单元阵列和密码控制逻辑电路构成;功能介于存储卡和CPU卡之间;适用于需要保密,但对保密功能要求不高的场合;逻辑加密卡的逻辑结构图1)写入:向EEPROM写入“0”2)擦除:向EEPROM写入“1”3)熔断:对EEPROM单元进行一次性的写入操作4)个人化:发行商将IC卡发行给个人时,写入发行商代码、用户密码、用户身份标识,并擦除其余应用区EEPROM的过程。5)密码错误计数:密码错误输入的次数,超过该次数,IC卡将自锁。8.2.1名词定义逻辑加密卡的主要内容逻辑加密卡的功能框图逻辑加密卡的存储区的分类典型芯片案例(1)ATMEL公司的芯片案例(2)Siemens公司的芯片案例8.2.2逻辑加密卡的功能框图逻辑加密卡芯片从功能上分两个部分:EEPROM单元阵列保密逻辑部分地址计数器地址译码器密码比较电路内部寄存器逻辑加密卡的功能框图RST信号将地址计数器置全0;行/字驱动器与列/位选择器为EEPROM单元提供选择信号;由列选择器选择其中的某位进行读/写。地址计数器:仅是计数器,EEPROM的访问按地址顺序逐一进行。地址译码器密码比较器内部寄存器:锁存密码比较器的结果和应用区的读/写属性,供逻辑控制阵列。逻辑控制阵列:控制EEPROM的读/写。制造代号区发行代号区用户密码区密码比较计数区用户个人区应用区擦除密码区擦除计数区8.2.3芯片内部存储区域采用分区结构记录卡芯片生产商的特定信息(例如:生产批号、日期及特别制定的特征代码)。该区域里的单元信息一般由制造商在芯片出厂前写入。当控制本区的熔丝(FUSE1)没有熔断时,该区的存储单元可像普通的EEPROM存储单元一样擦除和改写。一旦熔丝熔断,所写入的“制造商代码”就不可再更改。芯片出厂时,厂商一般将此代码注入,并熔断保护熔丝(FUSE1),从而使写入该区的标识信息不可更改,只能以读出。1.制造商代码区(FZ,FabricationZone)标识代号由生产商事先选定,代码注入后将保护熔丝熔断,以确保日后不可更改。特征:因此在卡片发行应用中,将这一标识作为系统中验证卡片真伪的重要标识。用于记录卡片发行商的特定信息(例如:发行批号、日期、地区编号及特定用户编号等特征代码)。该区域的单元信息是在卡片进行个人化处理的过程中写入。当控制本区的熔丝(FUSE2)没有熔断时,该区的存储单元内容可以自由地擦除或改写。个人化处理完成之后,控制该区的熔丝(FUSE2)熔断,即可将注入的“发行商代码”完全固化。2.发行商代码区(IZ,IssuerZone)在随后的卡片应用中,该区的内容不可更改,但可以任意读出。该代码也是识别卡片的真伪,区分卡片应用类别的重要标识。个人代码区用于存放个人身份标识数据。该区使用时受芯片的“用户密码”的保护。当“用户密码”比较成功时,该区可读/写/擦除。“用户密码”比较不成功,该区只能读而不能写入和擦除。3.个人代码区(CPZ,CodeProtectedZone)整个存储器的“总控制开关”。使用前,由授权持卡人预先输入的一个安全代码作为“参照字”储存在这个存储区里。使用时,必须输入一个“校验密码”。芯片将输入的“校验密码”与内部存储器的“参照字”一一比较。4.用户密码区(SC,SecurityCode)如果比较结果一致,密码比较有效标志SV设为“1”,并开放整个芯片储存器(包括各分区的控制密码和各应用数据区)。如果比较结果不一致,芯片内部保持SV为“0”,并禁止外部对各分区的控制密码区和应用数据区进行擦除和写入操作。除FZ、IZ、CPZ等区域可读出外,其他应用区能否读出需由各分区“读控制标志”的状态来控制。为防止“用户密码”被非授权持卡人恶意跟踪猜测,最简单的方法是对输入的“校验密码”的比较操作次数进行限制。该区用于对连续输入的错误密码的次数进行累计。当连续4次不正确的比较操作之后,芯片将被锁死。芯片被锁死之后,将拒绝任何的写入、擦除和比较的操作命令。5.密码比较计数区(SCAC,SecurityCodeAttemptsCounter)擦除密码区用于存储擦除应用区操作的控制密码。该密码一般由发行商使用。在芯片个人化处理之前,该区可以像普通EEPROM存储单元一样进行读/写/擦除操作。在个人化处理时输入最后一组“擦除密码”,在芯片熔丝FUSE2熔断之后将使“擦除密码”保存在该区内。该区不再能进行读/写/擦除操作,只能进行比较操作。6.擦除密码区(EZn(n=1,2,3,4),EraseKey)在使用过程中如需对应用区进行擦除操作,则必须首先对相应的EZ区输送一个“擦除密码”与之比较,在“擦除密码比较计数器”不为“00H”的情况下,如果相比较的两代码完全一致,则相应的应用区的单元允许擦除,否则将禁止执行擦除操作。如消费卡的充值操作。擦除密码比较计数区(EnAC)的作用与SCAC的作用相类似。它对各应用区擦除密码连续输入错误的次数进行累计。擦除密码比较计数器的计数方式与SCAC的方式完全一样。如果需要提高保密强度,也可以置一个“初始值”来减少芯片允许“比较操作”的次数。7.擦除密码比较计数区(EnAC(n=1,2,3,4),EraseKeyAttemptsCounter)应用数据区主要给用户使用,用于存储系统的有关数据和卡片标识等信息。应用数据区的写入与读出分别由该区的前两位Pn(写操作标志,各应用分区的第1位)和Rn(读操作标志,各应用分区的第2位)以及SV(标志的状态)控制,擦除操作则由该区的擦除密码控制。AT88SC1604设计了四个完全隔离的分区,其中1~3分区的单元容量分别是4Kb、第4分区的单元容量为36Kb。8.应用数据区(AZn(n=1,2,3,4),ApplicationZone)存储测试区主要用于芯片生产后对EEPROM单元阵列进行各项性能测试。该区不受任何控制区状态和标志状态的保护,允许对这个区进行读/写/擦除操作,但不能进行比较操作。9.存储测试区(MTZ,MemoryTestZone)
ATMEL公司AT88SC102芯片特征:具有1K位的EEPRON低功耗CMOS技术2个512位可用存储分区5伏工作电压、自升压电路允许擦除次数10万以上数据保存年限100年8.2.4ATMEL公司逻辑加密卡芯片ATMEL公司逻辑加密卡芯片有:AT88SC06、AT88SC101/102、AT88SC200等。本小节主要内容芯片触点存储区的分配问题访问控制操作模式1.触点(芯片/卡片)(1)VCC、RST、CLK、GND、I/O遵从ISO/IEC7816-10的同步协议;(2)FUS熔断信号:进行熔断操作;(3)PGM编程信号:通知芯片进行写入/擦除操作,无需读写器提供高电压信号VPP,采用芯片内置电路。地址计数器为11位(211K),计数范围:(0~2047);实际使用区间:0~1567用户使用区间:0~14232.存储区域分配表8.5AT88SC102存储分区结构表存储测试区不受保护,可进行读/写,用来测试EEPROM的性能。(1)三个内部使用的EEPROM单元:FUSE1、FUSE2和EZ1的控制位;另外,芯片存储器还有一些特殊单元:FUSE1:制造商用;FUSE2:发行商用;EZ1的控制位:“0”表示卡内不设置EZ1区,EZ1的地址被跳过。“1”时对APP1擦除时需要核对EZ1密码,且要求SC比较结果正确。(2)两个供特殊控制用的地址其一:获取物理熔丝的状态(断或未断);其二:可对全片进行擦除操作;(留给制造商和发行商)3.访问控制由C4电压和熔丝FUSE1和FUSE2共同控制。FUS触点电压FUS1FUS2访问控制条件0V任意任意见表8.85V熔断未熔断见表8.75V未熔断熔断表8.8表8.7个人化时的访问控制条件区域名SC1PR1RD2PR2RDEZ1EZ2EC读擦除写入比较FZ××××××××可不可不可不可IZ0×××××××可不可不可不可
1×××××××可可可不可SCSCACCPZAPP1EZ1APP2EZ2表8.8个人化后用户使用时的访问控制条件区域名SC1PR1RD2PR2RDEZ1EZ2EC读擦除写入比较FZ××××××××可不可不可不可IZ×
×××××××可不可不可不可SCSCACCPZAPP1EZ1APP2EZ24.操作模式由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线上。以上操作在时钟下降沿进行。*CMP(INC/CMP)外部输入数据与卡内密码进行比较。当CLK信号为’0’时,输入数据在I/O线上必须稳定。地址计数器在时钟下降沿加1。*WRITE,VERIFY在时钟上升沿前,I/O数据必须准备好,然后CLK必须保持为高至少5ms,等待写入操作完成。随后,在CLK下降沿,刚写入的数据出现在I/O线上,以被验证。地址计数器在时钟下降沿加1。8.2.5Siemens公司的逻辑加密卡芯片德国Siemens公司的逻辑加密卡芯片有:SLE4404、SLE4406、SLE4412、SLE4418/4428和SLE4432/4442。这些卡常用于具有定额定价的消费系统中,如公用电话卡、预付费加油卡、停车计费卡、游乐园消费卡等。SLE4432/4442是面向字节操作的。SLE4404、SLE4406、SLE4412、SLE4418/4428是面向位操作方式的。(1)104位存储容量;(2)最大可提供20480个计数单位;(3)3个字节传输密码,1位发行标志保护;(4)温度范围:-35~80℃;(5)至少10000次循环擦写次数;(6)至少10年数据保存期。1.主要指标Siemens公司SLE4406芯片案例:2.存储结构(13×8=104位)SLE4406的存储分布图3.保密特性SLE4406保密特性表发行后,用户区进入计数状态,计数区按位写0,按字节借位擦除。假设偏移地址为12的字节的8位已被写为0,则可将偏移地址为11的字节的其中1位写为“0”,而偏移地址为12的字节其8位可以全擦除成“1”,然后再逐位写0直至再次全写为0后再借位擦除。例如,1111111100000000→1111111011111111。注意:写表示写“0”,擦除表示写“1”。按照上述计数规则,用户区的5个字节最大可提供20480个计数单位(第5位计数器只有4位可用)。
4.用户区计数规则它具有2Kb的存储容量;完全独立的可编程加密代码(PSC,ProgrammableSecurityCode)存储器;内部电压提升电路保证了芯片能够以单+5V电压供电;较大的存储容量能够满足通常应用领域的各种要求。西门子(Siemens)公司的SLE4442案例--面向字节操作的多存储器结构逻辑加密卡是目前国内应用较多的一种IC卡芯片。(1)采用多存储器结构。(2)2线连接协议,复位响应满足ISO/IEC7816-3标准。(3)触点配置及串行接口满足ISO/IEC7816(同步传输协议)。(4)仅当正确输入3个字节的可编程加密代码(PSC)后方可修改数据。(5)芯片采用NMOS工艺技术,每个字节的写入/擦除编程时间为2.5ms。(6)存储器具有至少104次的写入/擦除周期,数据保持时间至少10年。1.总体描述SLE4442的触点配置图SLE4442引脚定义和功能说明256×8b的EEPROM型主存储器;32×1b的PROM型保护存储器;4×8b的EEPROM型加密存储器。2.存储器结构SLE4442卡芯片采用了多存储器结构,主要包括三个存储器:SLE4442的存储器结构主存储器保护存储器加密存储器主存储器(MainMemory)主存储器的地址从0(00H)~255(FFH),共256B(2Kb)。主存储器可分为两个数据区保护数据区应用数据区主存储器是可重复擦除使用的EEPROM型存储器,按字节寻址、擦除和写入。主存储器前32B为保护数据区,地址从0(00H)到31(1FH)。这部分的数据读出不受限制,但擦除和写入操作均受到保护存储器内部数据状态的限制。(1)保护数据区根据这一特性,主存储器的保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数,如厂商代码、发行商代码等。保护存储器(n=0~31)主存储器第n位=1第n个字节允许擦除和写入操作;第n位=0第n个字节不允许擦除和写入操作;主存储器后224B为应用数据区,地址从32(20H)到255(FFH)。这部分数据读出不受限制,但擦除和写入均受控于加密存储器数据校验比较结果的影响。(2)应用数据区保护存储器是一个32×1b的一次性可编程只读存储器(PROM);是按位寻址和写入;保护存储器(0~31)位每一位对应着主存储器地址为0~31的每一个字节,可以看成每个字节单元的控制熔丝。保护存储器(ProtectionMemory)从出厂到初始化前,保护存储器的状态为全“1”。从控制方面来说,保护存储器的内容只能从“1”写成“0”(即熔断熔丝),而不能从“0”擦除成“1”。保护存储器被写“0”的单元所对应被控制的主存储器的字节单元将不再接受任何擦除和写入操作命令,从而使得该字节单元内的数据不可再改变。因此,对保护存储器单元的写入一定要特别小心。如果需要防止一些固定的标识参数(例如,生产厂家代码、发行商代码、卡片编号等)被改动,可以将这类参数先写入主存储器的保护数据区,然后将对应单元的保护存储器的字位写0,从而使这部分数据单元的参数永远不可更改。保护存储器本身的读出操作不受限制。但对其写入操作仍然受到加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内原来存有的“参照字”一致时,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将锁住保护存储器。加密存储器(SecurityMemory)加密存储器是一个4×8b的EEPROM型存储器。第0个字节为“密码输入错误计数器”(EC,ErrorCounter)。密码输入错误计数器的有效位是低3位。在芯片初始化时,计数器设置成“111”。该字节是可读的,每次比较密码时,先要判定计数器中是否还有“1”。如果还有“1”,则将一个“1”写成“0”。然后进行比较“校验字”操作。PSC3PSC2PSC1EC3210如果比较结果一致,则密码错误计数器将允许进行擦除操作(注意,芯片不能自动进行擦除操作),同时打开主存储器、保护存储器和加密存储器,并允许进行擦除和写入操作。如果比较结果不一致,则EC中为“1”的个数减少1位。只要(EC)≠0,则芯片的比较“校验字”操作还允许再次进行。当连续三次输入错误密码后(即密码计数器减少为0),则芯片的存储单元将全部被锁死。由此可见,加密存储器可以理解为进入整个芯片的“关卡”。加密存储器的第1、2、3个字节为“参照字”存储区。这3个字节的内容作为一个整体被称为可编程加密代码(PSC)。注意:这3个字节的内容在PSC比较成功前是不可读的,只能进行比较操作。而写入和擦除操作也受自身比较操作结果的控制。只有当比较操作成功时,加密存储器各字节的内容才可以进行读出、写入和擦除。1.上电复位:芯片内部寄存器复位8.2.6典型电路分析2.密码比较:形成SC与EZ其作用是验证持卡人和发行商的身份,是整个电路的核心。删除密码比较电路用户密码比较电路I/OCOMPTDATATIN(1)删除密码比较电路外部数据由EEPROM读出数据011原态‘1’00图8.32删除密码比较电路COMP为密码比较结果触发器,取EZ=Q。当EZ=1,表示密码比较正确。电路设计原则:初态EZ=1,如密码比较相等,EZ仍然为1;如密码比较不正确,则EZ=0,即COMP=1,然后COMP保持1,EZ保持0。电路工作原理:当地址为’0’时,ADR=0有效,触发器清零,COMP=0,EZ=1;当地址未到密码区时,COMP的D端为’0’,因此COMP保持’0’,EZ=1;当地址在密码区时,由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’时锁存,而比较结果在CLK的下降沿时形成。即时钟上升沿保存要比较的数据,在时钟下降沿进行比较。(2)用户密码比较电路对于SC来说,由于有比较次数的限制,因此即使比较结果正确,但超过了四次的限制,仍然无效。因此在图8.32的基础上,需增加图8.33锁存电路。其中ESC=1,才表示用户密码正确。图8.32密码比较结果锁存电路111011该电路保证比较结果正确,且密码比较次数在规定的范围内。此时,ESC=1。COMP=1A3A2=00,即密码比较次数≤4,A3~A0=0000~0011;SCAC=1,即比较次数有效;ESC=1表示:3.熔丝电路FUSE1生产商掌控FUSE2发行商掌控熔丝的作用是控制特殊的读写操作,但熔丝熔断后,读写操作就无法进行,从而达到保密的目的。FUSE1和FUSE2的实现有三种方式:(1)采用2个物理熔丝分别代表FUSI和FUS2,都采用外加电流的方式熔断。图8.34(2)采用一个物理熔丝,而用2个EEPROM单元代表FUSE1和FUSE2,用物理熔丝来控制FUSE1和FUSE2的读写操作。(3)利用芯片出厂的切片操作来代替熔断物理熔丝,图8.35。8.3非接触式IC卡(Mifare卡)MifareStandard逻辑加密卡MifareLight逻辑加密卡MifarePLUS双界面CPU卡MifarePRO双界面CPU卡非接触式接口硬布线逻辑EEPROM接触式接口微处理器8051核心硬布线逻辑非接触式接口共享EEPROM接触式接口微处理器8051核心EEPROM非接触式接口MifareStandardMifarePLUSMifarepro1994-1997-1998-逻辑加密卡双界面CPU卡符合ISO/IEC14443读卡距离?工作频率?数据传输率?交易时间?防冲突功能?
8.3.1MifareStandard1.概述2.MifareStandard逻辑图调制/解调器电压调节器RF接口鉴别和访问控制ATR防冲突选择应用密码计算单元控制和算术运算单元数字部分EEPROM接口EEPROM3.IFD与ICC的交易流程IFD发Request给所有在场的IC卡,通过防冲突循环,得到一张卡的序列号,选择此卡进行鉴别,通过后对存储器进行操作。防冲突循环得到序列号选择卡鉴别TransferHaltReadWriteDecrementIncreRstorHaltRequest4.Mifare卡的访问存储器命令Read读存储器的一个分组2.5msWrite写存储器的一个分组6.0msDecrement减少分组内容,将结果存入数据寄存器Increment增加分组内容,将结果存入数据寄存器Transfer将数据寄存器内容写入EEPROM一个分组Restore将分组内容存入数据寄存器5.存储器组织与访问条件16区*4分组*16字节Block0制造商代码(0区)/数据Block3本区密钥/访问条件Block0~2数据分组数据分组读写分组价值分组整个存储器分成16个扇区,每个分区有4个分组构成,每个分组占16个字节。﹕0123012301230123Block0制造商代码(0区)数据分组区尾部Block301215存储器的结构示意图KeyA访问条件KeyB区尾部Block3的组成012345678910111213141576543210访问条件的每一位用原码和反码存储;访问条件的最后一个字节(BX0~BX7)用来存放特定的应用数据。16个字节块3的访问条件的存放情况C2X3-bC2X2-bC2X1-bC2X0-bC1X3-bC1X2-bC1X1-bC1X0-bC1X3C1X2C1X1C1X0C3X3-bC3X2-bC3X1-bC3X0-bC3X3C3X2C3X1C3X0C2X3C2X2C2X1C2X0BX7BX6BX5BX4BX3BX2BX1BX0说明:-b表示取反,如C2X3-b为C2X3取反;X表示扇区;Y表示块;C表示控制位;B表示备用位:用来存放特定的应用数据。C1X3、C2X3、C3X3表示控制块3的访问条件。6789Mifare1卡存取控制对块3的控制配置C1X3C2X3C3X3KeyA访问条件KeyB读写读写读写000不能KeyAKeyA不能KeyAKeyA010不能不能KeyA不能KeyA不能100不能KeyBKeyA︱B不能不能KeyB110不能不能KeyA︱B不能不能不能001不能KeyAKeyAKeyAKeyAKeyA011不能KeyBKeyA︱BKeyB不能KeyB101不能不能KeyA︱BKeyB不能不能111不能不能KeyA︱B不能不能不能Decrement、Increment、Transfer和Restore是永远不能执行的;Mifare1卡存取控制对块3的控制配置C1X3C2X3C3X3KeyA访问条件KeyB读写读写读写000不能KeyAKeyA不能KeyAKeyA010不能不能KeyA不能KeyA不能100不能KeyBKeyA︱B不能不能KeyB110不能不能KeyA︱B不能不能不能001不能KeyAKeyAKeyAKeyAKeyA011不能KeyBKeyA︱BKeyB不能KeyB101不能不能KeyA︱BKeyB不能不能111不能不能KeyA︱B不能不能不能KeyA是不能读出的;但在满足一定条件下,可以改写;KeyB作为密钥使用,也是不能读出的;在某种条件下,能读出时,其内容不是密钥,而是数据。C1X3C2X3C3X3KeyA访问条件KeyB读写读写读写000不能KeyAKeyA不能KeyAKeyA010不能不能KeyA不能KeyA不能100不能KeyBKeyA︱B不能不能KeyB110不能不能KeyA︱B不能不能不能001不能KeyAKeyAKeyAKeyAKeyA011不能KeyBKeyA︱BKeyB不能KeyB101不能不能KeyA︱BKeyB不能不能111不能不能KeyA︱B不能不能不能Mifare1卡存取控制对块3的控制配置Mifare1卡存取控制对块0~块2的控制配置C1XYC2XYC3XY读写增值减值、重储、传送000KeyA︱BKeyA︱BKeyA︱BKeyA︱B010KeyA︱B不能不能不能100KeyA︱BKeyB不能不能110KeyA︱BKeyBKeyBKeyA︱B001KeyA︱B不能不能KeyA︱B011KeyBKeyB不能不能101KeyB不能不能不能111不能不能不能不能根据各区块3提供的访问条件,可以对相应的区进行数据分组操作,实现读/写分组、价值分组。在MF1IC卡中,有两类数据分组:(1)读/写分组用于读/写(Read/Write)一般的16字节数据。(2)价值分组(Valueblock)用于电子钱包功能(Read、Increment、Decrement、Transfer和Restore)。Value的长度为4个字节,每个Value存入3次,以提高错误检测和纠错能力。AAAAValueValueValueA和A为地址字节,同一地址存入4次。Valueblock中的内容第一次由Write命令写入到所要求的地址中,以后用Decrement/Increment/Restore命令修改内容。计算结果暂存入DATA寄存器,再用Transfer命令写入存储器。
IFD用随机数、卡的序列号和密钥进行加密。采用3pass鉴别法。6.安全密钥在卡内是受保护的,但可修改,因此知道了运输密钥后,可以写入自己的秘密密钥;每个区有两个密钥,可进行不同的目的;在通过3pass鉴别后,发送器自动加密,接收器自动解密。RB--IC卡产生的随机数TokenAB=EKAB(RA‖RB‖B‖Text2)TokenBA=EKAB(RB‖RA‖Text4)AB(A)RB(B)TokenAB(D)TokenBAIFDICC(C)对报文TokenAB解密,验证一致性(E)对报文TokenBA解密,验证一致性安全流程:B发送随机数RB;A发送TokenAB到B;AB(A)RBIFDICC(B)TokenABB接收到报文TokenAB到B后,对加密部分进行解密,并验证标识符B和随机数RB的正确性,验证在A发送到B的RB与包含在TokenAB中的随机数是否一致;ABIFDICC(C)对报文TokenAB解密,验证一致性B发送TokenBA到A;A接收到报文TokenBA后,对加密部分进行解密,并检查随机数的一致性。ABIFDICC(D)TokenBA(E)对报文TokenBA解密,验证一致性8位单片机片上操作系统COS存在ROM内。RAM存放中间处理结果与作为中间缓存器。E2PRON供用户访问的存储区:信息、密码、密钥、应用文件。当卡采用RSA加密算法时,专门配置协处理器。8.4CPU卡的硬件环境与芯片法国GEMPLUS公司的产品PCOS(PaymentCOS)的EEPROM案例发行区ROM代码控制区保密字区文件区FAT区字地址100000800C10002411002826006427006825603FC8.4COS(ChipOperatingSystem)IC卡的专用系统:控制IC卡和外界的信息交换,管理IC卡内的存储器,完成各种命令的处理。符合ISO/IEC7816-4。COS所遵循的信息交换协议目前两类:异步字符传输的T=0协议;异步分组传输的T=1协议。传送管理安全体系应用管理文件管理8.4.1COS的体系结构传送管理按照信息传输协议,接收IFD的命令,发送对命令的响应。安全体系安全状态:IC卡当前满足规定的条件。安全属性:定义执行某条命令所需的条件,达到安全控制的目的。安全机制:安全状态实现转移的方法与手段。(密码鉴别、数据鉴别、数据加密等)安全体系鉴别与核实的区别鉴别Authentication核实Verify
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购销框架合同的履行与解除的条件
- 权威就业指导服务合同
- 解除土地合同协议的程序简化探讨
- 租赁合同续签应注意问题
- 个人流动资金借款合同格式
- 桥梁工程劳务承包协议
- 新媒体内容创作及传播策略研究报告
- 游泳技巧的培养和提升
- 电影和电视行业年度总结
- 《第三单元 开发手机应用 12 变身钢琴奏音乐》教学实录-2024-2025学年泰山版信息技术六年级下册
- 《临床带教实施要求》课件
- 2023年内蒙古兴安盟事业单位秋专项人才引进笔试真题
- 2024年保安员(初级)试题及答案
- 春节施工现场值班规章制度范文(2篇)
- 蔬菜采购框架合同模板
- 2025企业年会盛典
- 读书分享《非暴力沟通》课件(图文)
- 专题 与角度有关的计算问题(35题提分练)2024-2025学年七年级数学上册同步课堂(北师大版2024)
- 网格员调解员培训
- 浙江省绍兴市2025届高三上学期一模地理试题 含解析
- 安全与急救学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论