1、第一部分:卡的电气特性一、 卡的触点分配IC 卡触点的分配遵循 ISO7816-2 的规定,如下所示:C1 电源电压(Vcc) C5 地(GND)C2 复位信号(RST) C6 不使用C3 时钟信号(CLK) C7 输入/输出(I/0)二、 卡的电气特性1、 测量约定所有测量均应在 IC 卡和接口设备(IFD)之间的触点上进行,并以 GND 为参照。环境温度范围为 050。所有流入 IC 卡的电流均为正值。2、 输入/输出(I/O)该触点作为输入端(接收模式)从终端接收数据或者作为输出端(传输模式)向终端传送数据。在操作过程中,IC 卡和终端不能同时处于传输模式,若万一发生此情况,I/O 触点
2、的状态(电平)将处于不确定状态,但不应损坏 IC 卡。(1)接收模式在接收模式下,当电源电压(VCC)在第 6 中所规定的范围内时,IC 卡应能正确的解释来自终端的信号,其特性如表 2 所示:符 号 最小值 最大值 单 位VIH 07Vcc Vcc VVIL 0 0.8 VtR 和 tF - 1.0 s表 2 接收模式下的 I/O 的电气特性(2) 传输模式在传输模式下,IC 卡向终端传送数据,其特性如表 3 所示:符 号 条 件 最小值 最大值 单 位VoH -20A的专有应用,可在这一点上使用一个协议选择过程来启动.图 10 复位应答终端的流程在此规定了两种类型的协议:字符协议(T=0 )
3、和字组协议( T=1)。IC 卡必须支持 T=0协议或 T=1 协议中的一种,但不是同时支持这两种协议。终端则必须同时支持 T=0 和 T=1 的两种协议。在 IC 卡和终端间后续的通讯所用的协议在 TD1 中指明,必须是 T=0 或 T=1,如果在 ATR(复位应答)中无 TD1,则设定为 T=0。在复位应答后立即使用 IC 卡使用的协议,因为这里没有协议类型选择(PTS)过程。在复位应答中提供的其它参数,以及相关的具体协议将在本节的相应部分予以规定。两种协议都是按照如下的分层模型制定的:物理层,描述信息位的交换,是两种协议共用的。数据链路层,包括下列规定:a) 字符帧,规定字符的交换,是两
4、种协议共用的。b) 字符协议 T=0,规定了 T=0 所指定的字符交换。c) 规定了 T=0 的错误检测和校正。d) 字组协议 T=1 规定了 T=1 所指定的字组交换。e) 规定了 T=1 的错误检测和校正。传输层,规定了各个协议的面向应用的报文传送。应用层,根据应用协议规定了报文的交换,应用协议对于两种传送协议是共用的。(一)物理层:T=0 和 T=1 两协议所用的物理层和字符帧已在前面章节做了规定,适用于 IC 卡和终端交换的所有报文。(二)数据链路层:本小节说明 T=0 和 T=1 协议的时序、信息字段 INF(INFormation Field )和错误处理。1、字符帧在前面章节中描
5、述的字符帧适用于 IC 卡和终端之间的所有交换报文。2、T=0 字符协议1)特定选项用于 T=0 的时段分配在复位应答中,TC1 的值决定了终端送到 IC 卡的相邻二字符的起始位的上升沿的最小区间在 12 至 266etu 之间。由 IC 卡传送给终端的相邻二字符的起始位上升沿之间的最小间隔必须是 12etu。由 IC 卡送出的任何字符的起始位上升沿与由 IC 卡或终端送出的前一字符的起始位上升之间的最大时间间隔(工作等待时间)必须不超过 960DWI=9,600etu。(位速率转换因子 D 的缺省值为 1。当 ATR 中不回送 TC2 时,WI 的缺省值为 10)。相邻二字符起始位上升沿间的
6、最小时间间隔在反方向传输时不小于 16 个 etu.。由终端传送给 IC 卡的相邻二字符的起始位上升沿之间的最小时间间隔是由 TC1 之值控制的,可以小于反方向传送的二字符间所容许的最小区间 16etu。2)命令头命令均由由终端应用层(TALTerminal Application Layer)发出的。它经终端传输层(TTL Terminal Transport Layer)以 5 个字节的称做命令头的形式向 IC 卡发出命令。命令头由五相连的字节构成: CLA命令类别 INS指令代码 P1、P2指令附加特定参数 P3由 INS 的编码而定,或是表示命令中送给 IC 卡的数据,或是等待从 IC
7、 卡响应的最大数据长度。对于 T=0,这些字节和随命令一起发送的数据就构成了命令传输协议数据单元(C-TP-DU)。命令应用协议数据单元 C-APDU 到 C-TPDU 的变换在后面讲述。TTL 传送这五个命令头字节给 IC 卡并等待着一个过程字节。3)过程字节IC 卡收到命令头后,应回送给终端传输层(TTL)一过程字节或状态字节。过程字节向TTL 指明下一步必须采取 的措施。过程字节的编码和必须采取的措施如表 4-1 所示。在情况、或时,当 TTL 采取的措施实行后,它就等待着另一个过程字节。当情况为时,在收到第 2 个状态字节 SW2 之后,TTL 必须处理如下: 如果过程字节为“61”,
8、则 TTL 送出一条 GET RESPONSE 命令头标给 IC 卡,其中的最大长度为“XX”, “XX”为 SW2 的值. 如果过程字节为“6C” , 则 TTL 立即重发前一个命令的命令头给 IC 卡,其长度为“XX”, “XX”是 SW2 之值.CLA INS P1 P2 P3 如果过程字节为“6X” (除了”60”、”61”和“6C”)或“9X”,则 TTL 在响应APDU( R-APDU)中回送状态字节以及相关的数据(参看后面章节),并等待下一个的 C-APDU。在 TTL 和 IC 卡之间交换命令和数据时,TTL 和 IC 卡都必须清楚地知道数据的流向以及是由 TTL 还是由 IC
9、 卡来驱动 I/O 线。表 4-1 终端对过程字节的响应过程字节之值 措 施 等于 INS 字节 由 TTL 传送所有其余数据字节,准备接收由 IC 卡送来的其余的数据字节 等于 INS 字节的补码 由 TTL 传送下一数据字节,或由 TTL准备接收由 IC 卡送来的下一数据字节 “60” TTL 将提供附加的工作等待时间,如本书中所规定 “6X”或“9X“,除“60”之外(状态字节 SW1)TTL 等待更进一步的状态字节 SW24)C-APDU 的传送采用 T=0 协议时,C-APDU 仅仅包含送至 IC 卡命令数据,或者仅仅只包含 IC 卡响应数据可直接映射到 C-TPDU。含有数据或者不
10、要求数据的 C-APDU,或者在 IC 卡往返传送数据的 C-APDU,均按 T=0 的 C-TPDU 的传送中所规定的规则进行解释。3、T=0 的错误检测和校正当 T=0 时,这个过程是强制的,但在复位应答时不使用。如果一个字符没有正确地接收到或接收正确但奇偶位错,则接收方必须在字符起始位的上升沿之后的(10.50.2)个 etu 内,向 I/O 线发送持续 1-2 个 etu 的低电平信号,以指示出了错误。发送方必须在被送出的字符的起始位的上升沿后的(110.2)个 etu 内,检测 I/O 的电平状态,若 I/O 线处在高电平状态,由表明字符已被正确接收。如果发送方检测到一个错误,则在检
11、测到此错误之后至少延迟 2etu,并重发送有争议的字符,最多只发送三次。4、T=1 字组协议协议包含 IC 卡和 TTL 间的字组传送,以传达命令和 R-APDU 及控制信息(例如,确认)。数据链路层的字组帧结构,协议的时序和 INF,以及协议的运用规定如下。1)字组帧结构前面所规定的字符帧仍是适用的,字组的结构如(表 4-2 所示)下: 强制性的组头字段 可选性的信息字段 强制性的组尾字段表 4-2 字组的结构组头字段 信息字段 组尾字段结点地址(NAD)协议控制字节(PCB)长 度(LEN)APDU 或控制信息(INF)错误检测(EDC)1 字节 1 字节 1 字节 0254 字节 1 字
12、节A、组头字段组头字段由 3 个强制性的字节组成: 结点地址用以标识数据块的源地址和目标地址,并提供对 VPP 状态控制的节点地址。 协议控制字节,控制数据的传送。 长度,指可选数据域长度。结点地址(NADNODE ADDRESS )NAD 的 b1b3 位表明字组的源点地址(SADSource Node Address),而 b5b7 则表明字组指向的目标地址(DADDestination Node Address)b4 和 b8 位未用且必须置为 0。终端对结点编址的使用是可选的,但 IC 卡在使用 T=1 型协议时,必须支持按如下规则的结点编址: 若不使用节点地址,终端发往 IC 卡的第
13、一个数据块的 SAD 和 DAD 值均应设为0。 若使用节点地址,由终端发给 IC 卡的第一数据块的 SAD 和 DAD 应设定为不同的值(其中之一可以是零)。 若使用了结点地址,在卡片操作过程中,IC 卡收到的第一个有效 I 块和 S 块中的NAD,用于建立起整个卡片操作过程中的终端和 IC 卡的节点地址,在同一个过程中,终端发给 IC 卡的后续块应使用同一个 NAD,如此建立的结点地址适用于所有类型的数据块。 在一个用卡过程中,任何由 IC 卡送向终端的字组,在此过程中必须使用由终端送向 IC 卡的第一字组确定的结点地址。(注意,从终端送向 IC 卡的源点和目标地址,在由 IC 卡送向终端
14、时要分别变为目标和源点地址)。 在卡片操作过程中,若 IC 卡接收到的数据块的 NAD 和交易开始时所建立的NAD 不同,则 IC 卡应向交易开始时建立的 DAD 回复一个 R 块。协议控制字节(PCB-Protocol Control Byte)协议控制字节对数据块的类型进行编码,有三种类型的数据块,规定如下: 用于传送 APDU 的信息字组(I 块) 用于传达确认(ACK-Acknowlegement)或否认(NAK-Negative Acknowlegement)的接收就绪块(R 块) 用于交换控制信息的管理块(S 块)PCB 的编码按其类型而定 ,如表 4-3 所示。表 4-3 PCB
15、 的编码信息位 I-字组 R-字组 S-字组B8 0 1 1B7 顺序号 0 1B6 链接(多个数据) 0 0=请求 1=响应顺序号 0=再同步请求B5B4B3B2B1RFURFURFURFURFU1=信息字段容量请求2=取消请求3=扩充 BWT 请求4=VPP 错误(EMV 规范未用)未用值为 RFU长度(LEN-Length )长度指明块的 INF(Information Field)的长度,取值范围 2254 个字节。注意:在EMV规范中不支持 LEN=0 的 I-块。B、 信息域(INF)信息字段是有条件的,当出现在 I 块中时,它传送的是应用数据;在 S 块中,它传送控制信息;在 R
16、 块中不包含 INF。C、 尾域(EDC-Error Detection Code 检错码)组尾字段包含所传送的字组的错误检测码(EDC)。当奇偶错或 EDC 错误发生时,字组是无效的。作为 EDC 在EMV 规范中仅支持纵向冗余校验(LRC-Longitudinal Redundancy Check)。 LRC 的长度是一个字节,从 NAD 开始到 INF 的最后字节在内的所有字节的“异或”值即为此字节之值。D、 块的编号I 块的编号采用了一位编码的模 2 数,编号系统对 IC 卡保持独立,而终端则作为发送方。在复位应答后,发送方传送的第一个 I 块的编号从 0 开始,而后,每传送一个 I
17、块就加 1,此数由发送方在重新同步后,复位为 0。R 块的编号也采用了一位编码的模 2 数。当用来在链接期间去确认一个 I 块时,R 块带有所需求的下一个 I 块的编号。当用来请求重复某块时, R 块带有所接收的 I 块的编号。S 块不带编号。(2)信息字段 INF 的容量和时序(特别选择)信息域大小IFSC 是 IC 卡所能接收的字组信息字段 INF 的最大长度 ,复位应答时,IC 卡在 TA3 中回送的 IFSI 表示了 IC 卡的接纳的 IFSC 的最大长度.IFSI 的取值范围为”10”至”EF”,即 IFSC 的范围为 16-254 字节。因此,IC 卡可能接收的最大块长度为 (IF
18、SC+3+1)字节,包括了头域和尾域。在复位应答中所确定的长度必须用于用卡过程中的其余部分,直至由于 IC 卡向终端发送 S 块(IFS请求)取得新的 IFSC 值为止。终端的信息域大小(IFSD)即终端可能接收的数据块的最大长度。紧接在复位应答的起始长度必须是 32 字节,这个长度适用于用卡过程的其余部分,或由终端向 IC 卡发送一个 S 块(IFS 请求)而得到一个新的 IFSC 值为止。为了加快 IC 卡对终端的通讯,建议终端应支持的IFSD 之值为 254 字节。T=1 的时序按复位应答中 TC1 之值的规定 ,由终端送给 IC 卡的相邻二字符起始位的上升沿间的最小区间必须在 11 至
19、 266etu 之间。由 IC 卡送给终端的相邻二字符起始位的上升沿间的最短时间间隔应是 11 个 etu,同一块中两个连续字符起始位上升沿之间的最大时间间隔 CWT 不得超过(2 CWI+11)etu, CWI 之值在 0-5 之间, 所以 CWT 的取值范围为 12-43etu 之间。终端发给 IC 卡的最后一个字符的起始位上升沿与由 IC 卡发出的第一个字符起始位上升沿之间的最大时间间隔 BWT 不应超过(2 BWI960)+11etu。BWI 之值在 0-4 之间,所以BWT 将在 971-15371etu 之间。反向传送的二相邻字符的起始位上升沿之间的最小时间间隔(块保护时间 BGT
20、)为22etu。(3) 容错操作容错操作时的协议规则定义如下:A、 在复位应答后,第一个数据块是则终端发往 IC 卡,而且只能是一个 I 块 S 块。B、若终端不希望使用长度为 32 字节的初始值,它必须发送一个 S(IFS 请求)块给 IC 卡。S(IFS 请求)块的 PCB 之值必须为“c1”,以表达一个改变 IFSD 的请求。INF 域包含一个字节,其值表明了所请求的新 IFSD 的长度的字节数。这个字节的取值范围为“20”“FE”之间。IC 卡应向终端回送了一个 S(IFS 响应)块,以确认对 IFSD 的长度的改变。其中 S(IFS响应)块的 PCB 之值应是“ E1”,而 INF
21、域应具有与请求改变块的 INF 域相同的值。C、若 IC 卡希望把 IFSC 的长度从复位应答中所给出其的起始值加以改变,它必须发送一个 S(IFS 请求)块给终端。 S(IFS 请求)块的 PCB 之值必须为“C1 ”,以表达一个改变IFSC 的请求。INF 字段必须包含有一字节,其值表明了所请求的新的 IFSC 的长度的字节数。这个字节的取值范围为必须在“10”至“FE”之间。终端必须回送一个 S(IFS 响应)块给 IC卡,以确认对 IFSC 的长度的改变。在响应中送出的 S( IFS 响应)块的 PCB 之值必须是“E1”,且 INF 字段必须和请求改变的字组中的 INF 字段有相同之
22、值。D、如果使用了结点编址,则由终端所传送的第一个块中的 SAD 和 DAD 必须被置为贯穿整个用卡过程始终所用之值。若不采用节点地址,则将其设成零。E、在用卡过程中,只有本节所规定的块才能相互传送。半双工块传输协议包括了终端和IC 卡交替传输块的情况。当发送方完整的传输了一个字组后,就应节换至接收状态。F、当接收方接收的字符数符合 LEN 和 EDC 之值时,接收方就获得了发送权。G、若接收方需要确认发送方传来的 I 块,则应在回送给发送方的 I 块中指明。若使用链接,则在 R 块的序列号中指明(链接的最后一个数据块除外)H、若响应中收到的 I-块的序列号与前一个已收到的 I-块序列号不同,
23、则发送方即认为此I-块已被确认。如果先前未收到过 I-块,则在响应中 I-块序列号必须为 0。I、当链接时,如果在响应中收 R-块的序列号与已确认的 I-块的序列号不同,则发送方即认为此 I-块已被确认。J、如果 IC 卡需要比 BWT 长的时间去处理先前接收到 I-块,它就要发送一个等待时间扩展请求 S 块(WTX 请求 Waiting Time Exension 请求),其中 INF 包含有所需的 BWT 值的一个字节的二进制整数,其值为 BWT 的倍数。终端必须传送一个在 INF 中具有相同值的等待时间扩充响应 S(WTX 响应)块来确认。取得的时间从 S 块(WTX 响应)的最末字符的
24、上升沿开始算起。K、S 块总是成对使用,一个 S(请求)块总对应个 S(响应)块。(4) 链接当发送方要传输的数据长度超过 IFSC 或 IFSD 所定义的字节数时,它必须把其分成几个相连的 I 块。使用了下述的链接功能来实现这样的多个 I 块的传输。I-块的链接为 PCB 中的 b6 所实现, b6 的编码如下:b6=0,链中的最后一个块;b6=1,后面还有后续块。任何一个 b6=1 的 I-块,必须由一个 R-块来确认。如果接收正确,对应 b6=0 的最末块,会被 I-块确认,否则,就会被 R 块确认。A、链接的规则IC 卡和 TTL 都必须支持链接,而且链接只能沿一个方向来进行,其规则如
25、下:终端是接收方时,只要来自 IC 卡的每个块的长度IFSC 字节,终端应能够接收一组链接的 I 块。终端是接收方时,如果 IC 卡发送的 I 块的长度IFSC ,终端应通过发送一个 R 块来表示拒绝,R 块的 PCB 的 b1b4 位之值为“2”IC 卡是接收方时,只要来自终端的每个块长度IFSC 字节,IC 卡必须接受一系列从终端发送的链接在一起的 I-块。IC 卡是接收方时,IC 卡通过发回一个 R-块来拒绝由终端发送的长度IFSC 的 I-块,R 块的 PCB 的 b1b4 位的值为“2”。IC 卡是发送方时,IC 卡必须能发送链接在一起的 I 块,每块的长度IFSC 字节。终端是发送
26、方时,终端必须发送链接在一起的 I 块,每块的长度IFSC 字节。B、 链接块的结构C-APDU 是在 I 块的 INF 域中。并由 TTL 传送给 IC 卡的。若 C-APDU 太长,以致不能装入一个块,可通过如下的方法链接在几个块中,说明如下:字组(1) CLA INS P1 P2 LC DATA DATA字组(2) DATA DATA字组(n) DATA Le如果由 IC 卡回送的数据和状态太多,以致不能装入一个块,则就链接在几个 I-块中,如下所示:字组(1) DATA DATA DATA字组(2) DATA DATA DATA字组(n) DATA SW1-SW2以上是以情况 4 的命
27、令为例来说明的,只展示了链接愉的 INF 域,每一块还有头域和尾域。5、T=1 的错误检测和校正下列错误必须由 TTL 检出: 传输错误(奇偶错或 EDC 错)或 BWT 超时。 丧失同步(关于字符数量的上溢运行或下溢运行)。 协议错(违反协议的规则)。 取消关于链接块的请求。按照下述方法进行纠正错误:重新传输块释放 IC 卡的触点。错在 IC 卡,则 IC 卡应按下面给定的顺序,尝试纠正错误;重新传输块。处于无响应的。A、错误处理协议规则下列规则用于错误的处理和校正,在每一种情况下有一个 R-块送出,低半字节应按表 4-3的规定置成相应之值。若在复位应答后,IC 卡所接收的第一个块无效。它必
28、须回送一个 R 块给 TTL,并置b5=0 和 NAD=0。如果 TTL 发送的任何块在 BWT 时间内没有得到 IC 卡的响应,TTL 将通过使 IC 卡的触点处于静止状态来结束卡片操作过程。如果响应 I 块的无效块被收到,发送方应发送一个 R 块,其中 b5 位置成期望的 I 块编号。如果响应 R 块的无效块被收到,发送方应重发 R 块。如果响应 S 块(请求)的 S(响应)块没有收到,发送方应重发一个 S 块(请求)。如果响应 S(响应)块的应答中收到无效块,发送方应重发一个 R 块,b5 位设为下一个期望 I 块的编号。如果 TTL 连续三次传送一个块,或 IC 卡连续两次传送一个块,
29、而得不到有效的响应时,TTL 必须释放 IC 卡的触点结束此用卡过程。如果接收方检测到了上溢运行或下溢运行,在重新传输前必须等待一段时间(取CWT 或 BWT 的最大值)IC 卡最多连续三次传送一个 S(IFS 请求)块,以试图从 TTL 获得一个有效的 S(IFS 响应)字组。在三次不成功的尝试后, IC 卡即进入接收方式。TTL 不应发送一个 S(ABORT 取消请求)块,如果 TTL 从 IC 卡收到了一个 S(ABORT 请求),它必须释放 IC 卡触点以结束此用卡过程。(三)终端传输层(TTL)本节叙述的是在终端和 IC 卡用以传输命令和响应的 APDU 的机制。APDU 都是命令或
30、响应报文,既是命令或响应报文就可能包含着数据,TTL 必须能对(五)中所规定的四种情况进行处理。C-APDU 和 R-APDU 的结构也将在其中说明。C-APDU 由 TAL(终端应用层)传至 TTL,在传送 IC 卡之前,应将其转换成传输协议认可的形式。IC 卡处理完命令后,以 R-APDU 的格式将数据(如果存在)和状态码回送给TTL。1、T=0 APDU 的传送本小节叙述 C-APDU 和 R-APDU 的变换,TTL 和 IC 卡间进行数据变换的机制,以及使用情况 2 或 4 的命令时,以 GET RESPONSE 命令取回 IC 卡的数据。1)C-APDU 和 R-APDU 的变换及
31、数据交换C-APDU 和 T=0 命令头的变换与命令的情况有关。由数据(如果存在)与 IC 卡回送的状态变换到 R-APDU 取决于回送数据的长度以及状态字节的含义。状态字节 SW1 SW2=“61”或“6C” 都是由 IC 卡回送来用以控制 IC 卡和 TTL 之间的变换的,它不会回送给 TAL。若 SW1 SW2=“61”或“6C”就表示 IC 卡对命令的处理尚未完成。若 SW1 SW2=“9000”,就表示 IC 卡已在正常状态下完成了对命令的处理。SW1 SW2 的其它值(“61”或“6C”除外)均表示 IC 卡已结束对命令的处理,但处理不成功,原因在状态字节中指出。下面所述的是将 I
32、C 卡加送的数据和状态字节构造成 R-APDU 方法,仅适用于 IC 卡已经完成命令处理(不管理成功与否)之后,以有 IC 卡在状态字节“61”或“6C”的控制下已经回送所有的数据(如果存在)之后,INS,INS 和“60”过程字节的具体使用未做叙述。A、情况 1C-APDU 的头映射到 T=0 的命令头的前四个字节,而 T=0 的命令头的 P3 被置为“00”,交换的流程是:TTL 传送 T=0 的命令头标给 IC 卡;IC 卡回送状态字节给 TTL。由 IC 卡在完成对命令的处理后回送给 TTL 的状态字节,不作改变地被变换到 R-APDU 的强制性尾标上。IC 卡在处理命令时必须对 T=
33、0 的命令头加以分析,判断是命令情况 1 或是情况 2 在请求最大长度的响应数据。B、 情况 2C-APDU 头映射到 T=0 的命令头的前四个字节,长度字节Le从 C-APDU 的条件体被映射到 T=0 的命令头的 P3。所有遵照EMV 规范发出的情况 2 的命令均须置 Le 为 “00”。交换流程:TTL 传送 T=0 的命令头给 IC 卡;在过程字节的控制下,IC 卡回送数据和状态(或者,在不正常处理时,只回送状态)给 TTL。IC 卡回送的状态字节若是 SW1 SW2=“61”或“6C”时,可能要求 TTL 重新发送T=0 命令头并使用 GET RESPONSE 命令从 IC 卡取回数
34、据。当 IC 卡完成对命令的处理后,由它回送给 TTL 的数据(如果存在)和状态到 R-APDU 的映射如下:若回送的状态 SW1 SW2”9000”,则不作改变地变换到 R-APDU 的强制性尾标,并且扔掉任何可能已回送的数据;如果 Le Liee,则回送数据不作改变地被变换到 R-AAPDU 的条件体上,而回送的状态不做改变地变换到 R-APDU 的强制性尾标上去。如果 Le Liee,则把回送的数据的第一个 Le 字节变换到 R-TPDU 的条件体上,而回送的发送的状态不和改变地变换到 R-APDU 的强制性尾标上去。其实,既然所有按照EMV 规范发给的情况 2 的命令已经把 Le 置为
35、“00”,则后一“如果”就不应发生,这里的说明只是参考而已。C、 情况 3C-APDU 的头标变换到 T=0 的命令头的前四个字节,而 C-APDU 的条件体中长度字节“Le”则被变换到 T=0 的命令头中的 P3 中去,交换的流程是:TTL 传送 T=0 的命令头给 IC 卡。如果 IC 卡回送的是一过程字节而不是状态码,则 C-APDU 的条件体中的数据部分在IC 卡所回送的过程字节的控制下,由 TTL 回送给 IC 卡。如果 IC 卡回送的是状态字节 SW1 SW2,则 TTL 中止对命令的处理。如果处理未在上一步中止,则 IC 卡在完成命令处理时回送其状态。IC 卡在完成对命令的处理后回送到 TTL 的状态字节,或由 IC 卡回送的导致 TTL 中止对命令处理的状态字节,均不作改变地变换到 R-APDU 上。D、情况 4