IC卡的传输协议(2)-块传输协议T=1【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172024.HTM

2.4 块传输协议T=1

    T=1协议中,在TAL和IC卡之间传送的命令、R-APDU和传输控制信息(例如确认信息)由块组成。

    以下定义了数据链路层的块帧结构、协议的特殊选项和协议操作(包括错误处理)。

  (1)块帧结构

    字符帧的定义同前文的描述。T=1协议下,无须进行逐个字符的检验。块的结构如下所示,包括头域、数据域和尾域3个部分,都为可选项。

  ● 头域包括3个必选字节:
        *用于标识数据块的源地址和目的地址以及提供VPP状态控制的1Byte节点地址(NAD)
        *控制数据传输的1Byte协议控制字节(PCB)
        *1Byte可选的数据域长度(LEN)
     
   > 节点地址(NAD)
   
    节点地址(Node Address,简称NAD)第1至第3位表明块的源节点地址(Source Address,简称SAD),而第5至第7位表明块的目的地址(Destination Address,简称DAD),第4位和第8位不用,设定为0。

    终端使用的节点地址是可选的,但支持T=1协议的IC卡应支持按本节规定的节点地址方式。遵守如下规则。

   * 若不使用节点地址,终端发往IC卡的第一个数据块的SAD和DAD值均应设为0。

   * 若使用节点地址,由终端发送到IC卡的第一个数据块的SAD和DAD应设为不同的值(其中之一可以为0)。

   * 若使用节点地址,在卡片操作过程中,IC卡收到的第一个有效I块和S块中的NAD,用于建立起整个卡片操作过程中的终端和IC卡的节点地址,在同一个过程中终端发送给IC卡的后续块使用同一个NAD,如此建立的节点地址适用于所有类型的块。

   * 在卡片操作期间,从IC卡发往终端的任何数据块都将使用在此过程中由终端向IC卡发出的第一个块时所建立起的节点地址(终端发往IC卡和由IC卡发往终端所使用的源地址和目标地址正好相反)。

   * 在卡片操作过程中,若IC卡接收到的数据块的NAD与交易开始时所建立的NAD不同,则IC卡应向交易开始所建立的DAD回复一个R块。

   > 协议控制字节

    协议控制字节(Protocol Control Byte,简称PCB)表明了传输块类型,有以下3种类型。

   * 传送APDU的信息块(I块)。
   * 用于传送确认ACK(Acknowledgment)或者NAK(Negative Acknowledge)的接收就绪块(R块)。
   * 用于交换控制信息的管理模块(S块)。

   不同类型PCB具有不同的编码格式。

                  I块的PCB编码
        字节位                      含义

         b8                          0
         b7                          序列号
         b6                          链接(多个数据)
         b5~b1                      保留

                  R块的PCB编码
        字节位                      含义

         b8                          1
         b7                          0
         b6                          0
         b5                          序列号
         b4~b1                      0=容错 1=EDC或者校验出错 2=其他错误 其他:保留

                  S块的PCB编码
        字节位                      含义

         b8                          1
         b7                          1
         b6                          0=请求 1=应答
         b5~b1                      0=在同步请求 1=信息域大小请求 2=放弃请求 3=BWT扩展请求 4=VPP错误 其他:保留

  > 长度

    长度(Length,简称LEN)指明块的INF部分的长度,取值范围从1~254。

  ● 数据域包括:0~254Byte的APDU或控制信息(INF)
    
    信息域INF是有条件的,当出现在I块中时,它传送的是应用数据,当出现在S块中时,它传送的是控制信息。R块不会出现在IINF中。

  ● 尾域包括:1Byte的错误校验码(EDC)

    尾域包含所传送块的错误检测代码(Error Detection Code,简称EDC),校验出错和(或)EDC出错时,块是无效的。通常采用冗余校验(Longitudinal Redundancy Check,简称LRC)作为EDC。LRC的长度是1Byte,其值由以NAD开始到INF(如果存在的话)的全部字节做异或运算得到。

  ● 块编号
    I块采用在某一位上模2数字编码的方式进行编码,IC卡和终端作为发送方分别处理各自的编号系统。复位应答后,发送方发送的第一个I块的编号为零,以后每发送一个I块,编号值增加1。当再次同步时,发送方将编号值复位为零。

    R块采用在某一位上模2数字编码的方式进行编号,当其在链接过程中,用来确认I块时,R块携带下一个期望的I块编号。当要求某块重发时,R块内携带的是已收到的I块编号。

    S块不携带编号。

  (2)特殊选项

    本节定义了用于T=1传输协议的信息域大小和时段。

    * 信息域大小

    IFSC是指IC卡能收到的信息域的最大长度,其定义为:在复位应答期间,IC卡在TA3中回送的IFSI指明了IC卡能够容纳的IFSI的大小,IFSI的取值范围是0x10~0xFE,对应的IFSC大小为16~254Byte。因此IC卡能收到的最大数据长度是(IFSI+3+1)Byte,其中包括头域和尾域。复位应答期间建立起来的这个值在整个卡片操作过程中使用,或持续到由于IC卡向终端发送S块(IFS请求)而取得新的IFSC值为止。

    终端报文域大小(Information Field Size for the Terminal,简称IFSD)是指终端能够接收到数据块的最大长度,紧接在复位应答后的初始大小为32Byte。该长度适用于整个卡片操作过程或者持续到由于终端向IC卡发送S块(IFS请求)而取得新的IFSC值为止。

    为避免IC卡和终端之间的通信缓慢,通常终端支持254Byte的IFSD。

   *T=1协议的时段

    终端发往IC卡的两个连续字符的起始位上升沿之间最短时间间隔为11~266个etu,由复位应答后回送的TC1值决定。

    由IC卡发往终端的两个字符的起始位上升沿之间最短时间间隔应是11个etu。同一块中两个连续字符起始位上升沿之间的最大时间间隔CWT不应超过(2的CWT次方+11)个etu,其中字节等待时间整数CWI取值在0~5之间,CWT的取值在12~43个etu。

    终端发送给IC卡的最后一个字符的起始位上升沿与由IC卡发出的第一个字符起始位上升沿之间的最大时间间隔BWT不应超过[(2的CWT次方×960)+11]个etu。块等待时间整数BWI的取值范围是0~4,所以BWT的取值范围为971~15371个etu。

    相反方向传输的两个连续字符的起始位上升沿之间最小时间间隔(块保护时间Block Guard Time,简称BGT)为22个etu。

时间: 2024-08-03 07:15:37

IC卡的传输协议(2)-块传输协议T=1【转】的相关文章

IC卡的传输协议(2)-块传输协议T=1续【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172025.HTM (3)容错操作     先来看一下容错的规则定义.    * 复位应答后,第一个数据块是由终端发往IC卡的,而且只能是一个I块或S块.      * 若终端不希望使用长度为32Byte的IFSD初始值,则应向IC卡发送一个S块(IFS请求),S块(IFS请求)的PCB应具有值CI以表明是一个改变IFSD的请求.INF域包含一个字节,其值表示在所要求的IFSD的字节数,取值为0x20-0xFE.I

金融IC卡安全引发行业关注,国产具备商用条件

2月27日消息,近日,美国前防务承包商雇员斯诺登再曝窃密丑闻时提到金雅拓SIM卡,一时间,金融IC卡的安全性引发业内关注. 业内专家昨日(2月26日)告诉记者,SIM卡和金融IC卡两者对安全的需求不一样,比如从生产过程来说,在个人化数据的传输中,金融IC卡要求敏感密钥信息分段传输,双人或多人控制,同时通过专用线路,全程加密和监控,确保传输过程的安全.从金融IC卡本身而言,目前其技术采用IC卡中的最高安全等级保护,远高于通讯行业使用的IC卡标准.   值得注意的是,近日,国内一款可实现"国密算法&

IC卡的传输协议(1)-字符传输协议T=0【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172022.HTM 在异步半双工传输协议中,主要定义了终端为实现传输控制和特殊需要发出的命令及这些命令的处理过程.     在传输协议中定义了两种协议:字符传输协议(T=0)和块传输协议(T=1).IC卡可以选择支持T=0协议或者T=1协议,终端一般都支持这两种协议.在ATR中的TD1规定了后续传输中所采用的传输协议(T=0或T=1),如果TD1在ATR中不存在的话则假定采用T=0.如果在ATR之后卡片与终端之间没

IC卡的传输协议(3)【转】

转自:http://bbs.ednchina.com/BLOG_ARTICLE_172027.HTM 3.终端传输层         本节描述了在终端和 IC 卡之间传输的命令和响应 APDU 的机制.APDU 是命令或响应报文.由于命令和响应报文都可以包含数据,TTL应能处理应用层定义的4种命令格式.C-APDU和R-APDU的组成在应用层描述.     TAL传送C-APDU到TTL.在发送到IC卡之前,应将其变换成传输协议认可的形式.IC卡处理完命令后,以R-APDU的格式将数据(如果存在

udp-需要一个java基于UDP协议的文件传输程序

问题描述 需要一个java基于UDP协议的文件传输程序 文件是一个实验数据的文件,是txt个格式的,需要将它传输到指定的IP上 解决方案 server package com.way.server;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundEx

网络协议X档案文件传输协议篇

网络协议--FTP协议 说明:全称File Transfer Protocol(文件传输协议),这是大家非常熟悉的网络协议之一,也是Internet中使用最多的文件传输协议.主要用于在两台计算机之间实现文件的上传与下载,其中一台计算机作为FTP的客户端,另一台作为FTP的服务器端.通过FTP协议可以上传.下载几乎所 有的文件类型,比如TXT.EXE.DOC.MP3.ZIP.RAR等等.应用:在实际应用中,FTP不仅可以作为网络文件下载的主要格式,还可以作为单独的命令来使用.比如我们在下MP3的时

非接触式IC卡仓库管理解决方案

随着非接触式IC卡技术的迅速发展,因其不易污染.磨损.划伤,及卡本身是无源件,体积小,耐用可靠,操作迅速方便等优点,正被广泛地应用于公路收费.考勤.门禁.餐厅记帐及身份识别等系统中,给人民生活带来了前所未有的方便. 目前,仓库管理主要是基于相应规范的手工作业及电脑半http://www.aliyun.com/zixun/aggregation/13703.html">自动化管理实现的.其弊病显而易见,即需要投入大量人力进行规范物品的放置.定期整理盘点以及出入库登记等工作,这使得仓库管理问题

|zyciis| 如机付宝一样的,我现在要对客户端的IC卡发卡机对卡卡进行总值,如何对这条命令进行加密呢 急 谢谢

问题描述 原贴:http://topic.csdn.net/u/20071217/18/420dd1f2-6f17-4854-a08b-1480928c4ea8.html网页传值加密我是A要向B明文发送一些数据,比如我要传2个数据用户号User=1IC卡加金额Money=2000fcuandy告诉我的方法是传1和2000再把1和2000再和一个密钥进行MD5加密比果为ICcard:|1|2000|KJLS54DFSDF46546DFSDf但这样的话可以,但是有一个问题就是当用户1再加2000的时

数据-新 IC卡初始化加密解密,默认FFFFFFFFFFFF

问题描述 新 IC卡初始化加密解密,默认FFFFFFFFFFFF 大家都知道 新的 ic卡 密码 12个F,即 255 255 255 255 255 255,校验密码6个 0xff , 那么我想设置新的密码,就是在密码 区 写入新的密码数据 ,默认每区 密码块是000000000000FF078069FFFFFFFFFFFF,FFFFFFFFFFFF就是密码,那么 0000000000FF078069 这一部分是什么,还有 比如我把密码 改成12个A,那我的校验密码 对对应的是什么呢,0xff