智能卡數(shù)據(jù)傳輸T=1傳輸協(xié)議_第1頁(yè)
智能卡數(shù)據(jù)傳輸T=1傳輸協(xié)議_第2頁(yè)
智能卡數(shù)據(jù)傳輸T=1傳輸協(xié)議_第3頁(yè)
智能卡數(shù)據(jù)傳輸T=1傳輸協(xié)議_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、智能卡數(shù)據(jù)傳輸T=1傳輸協(xié)議智能卡數(shù)據(jù)傳輸T=1傳輸協(xié)議類(lèi)別:消費(fèi)電子T=1傳輸協(xié)議是智能卡的異步半雙工通信協(xié)議。它立足于國(guó)際標(biāo)準(zhǔn)ISO/IEC7816-3。EMV®范也和此協(xié)議有關(guān)。T=1協(xié)議是面向字組的協(xié)議,這就是說(shuō)一個(gè)字組是卡和終端之間可以傳輸?shù)淖钚?shù)據(jù)單元。這項(xiàng)協(xié)議以嚴(yán)格的層次劃分為特點(diǎn),可作為數(shù)據(jù)鏈路層歸入OSI參考模型中。在這種意義上,層次劃分也就意味著數(shù)據(jù)指向較高的層次,諸如應(yīng)用層,并可完全由數(shù)據(jù)鏈路層透明地處理。除了這一層直接和所傳輸?shù)臄?shù)據(jù)的內(nèi)容的解釋與修改有關(guān)之外,不再需要?jiǎng)e的層次。特別是報(bào)文的安全性需要嚴(yán)格地遵守層次劃分,只有這樣才能使用戶(hù)加密的數(shù)據(jù)通過(guò)接口而不必

2、求助于復(fù)雜的方法或技巧。目前,T=1是惟一的國(guó)際智能卡協(xié)議可以使安全數(shù)據(jù)得以在其所有變型的情況下傳輸而沒(méi)有任何問(wèn)題或危及其安全性。傳輸?shù)倪^(guò)程開(kāi)始于卡送出ATR之后,或在成功執(zhí)行了PTS之后。第1個(gè)字組由終端發(fā)送,下一個(gè)則由卡發(fā)送。于是,通信按此方式繼續(xù),發(fā)送權(quán)在終端與卡之間輪換。順便提及,T=1協(xié)議的應(yīng)用不限于智能卡/終端的通信,它被用于多種終端和它們與之相連的計(jì)算機(jī)間交換有用的數(shù)據(jù)和控制數(shù)據(jù)。數(shù)據(jù)傳輸率對(duì)任何協(xié)議自然都是一個(gè)最令人感興趣的方面,表1列出了T=1協(xié)議傳輸某些典型命令的時(shí)間。表1T=1傳輸協(xié)議對(duì)某些典型命令的數(shù)據(jù)傳輸時(shí)間(時(shí)鐘頻率為3.5712MHz,分頻值為372,X0R差錯(cuò)檢

3、測(cè)碼,每條命令有2位停止位和8位數(shù)據(jù)字節(jié),C=命令,R曲答)1,字組結(jié)構(gòu)所傳送的字組實(shí)質(zhì)上用于兩種不同的目的,其中之一是透明傳輸?shù)膽?yīng)用專(zhuān)用數(shù)據(jù),另一個(gè)則是傳輸協(xié)議控制數(shù)據(jù)或?qū)鬏敳铄e(cuò)的處理。傳輸?shù)淖纸M由開(kāi)始的組頭字段,信息字段和最后的組尾字段組成,組頭和組尾字段是強(qiáng)制性的,必須總是發(fā)送的。相反,信息字段是可選的,它含有應(yīng)用層的數(shù)據(jù),它可能是發(fā)送給智能卡的命令A(yù)PDUE是來(lái)自卡的應(yīng)答APDU傳輸字組白結(jié)構(gòu)如圖1所示。圖1T=1傳輸字組的結(jié)構(gòu)在T=1中有三種基本的不同類(lèi)型的字組:信息字組、接收確認(rèn)字組和系統(tǒng)字組。信息字組(I字組)用于透明地交換應(yīng)用層的數(shù)據(jù)。接收確認(rèn)字組(R字組),它不含有任何數(shù)據(jù)

4、字段,被用于對(duì)接收的認(rèn)可或否認(rèn)。系統(tǒng)字組(S字組)用于和協(xié)議本身有聯(lián)系的控制信息,取決于特定的控制信息,它們可能有一個(gè)信息字段。2.組頭字段組頭字段含有三個(gè)子段:結(jié)點(diǎn)地址(NAD,協(xié)議控制字節(jié)(PCB和長(zhǎng)度(LEN,它為三字節(jié)長(zhǎng)并含有對(duì)實(shí)際傳輸字組的控制和指針數(shù)據(jù)。這三個(gè)子段的編碼見(jiàn)表2表5。1)結(jié)點(diǎn)地址NAD(NodeADdress)組頭字段的第1個(gè)字節(jié)被稱(chēng)為結(jié)點(diǎn)地址(NAD字節(jié),它含有字組的目標(biāo)和源地址,它們的每一個(gè)用三位編碼,如果未用地址,則有關(guān)位置為00此外,為了和老的微控制器相容,對(duì)EEPROMEPRO的編程電壓提供了控制。然而,這一點(diǎn)沒(méi)有實(shí)際應(yīng)用,因?yàn)楝F(xiàn)在的所有智能卡微控制器在芯片

5、內(nèi)都有一個(gè)電荷泵。表2結(jié)點(diǎn)地址(NAD?段)2)協(xié)議控制字節(jié)PCB(ProtocolControlByte)接著結(jié)點(diǎn)地址的子段是協(xié)議控制字節(jié)(PCBo如同名字所暗示,它用來(lái)控制和管理傳輸協(xié)議,這就增加了所需的編碼數(shù)量,PCB?段主要用來(lái)編碼字組類(lèi)型,以及有關(guān)的補(bǔ)充信息。表3I字組的PCB?段表4R字組的PCB?段表5S字組的PCB字段3)長(zhǎng)度LEN(LEngthField)字節(jié)的長(zhǎng)度字段(LEN以十六進(jìn)制的形式指明信息字段的長(zhǎng)度,其值可為00至FE'。編碼FF'目前未用而留各未來(lái)擴(kuò)充之用。3,信息字段在I字組中,信息字段起著應(yīng)用層數(shù)據(jù)(OSI第7層)的集裝箱的作用。此字段的內(nèi)容

6、被完整而透明地傳送,這就是說(shuō)此內(nèi)容由傳輸協(xié)議直接送出,而不經(jīng)任何分析或評(píng)估。在S字組中,這個(gè)字段傳送關(guān)于傳輸協(xié)議的數(shù)據(jù),這是此字段的內(nèi)容用于傳輸層的惟一情形。按照ISO標(biāo)準(zhǔn),信息字段的大小范圍為'00'至'FE'(254)字節(jié),F(xiàn)F'(255)被ISO為未來(lái)應(yīng)用而保留。終端和卡可以有不同大小的I字段。終端I字段的缺省大小為32字節(jié)的接口設(shè)備信息字段大小(Inf.。rmationFieldSizefortheinterfaceDevice),它可以通過(guò)特殊的s字段來(lái)改變,這個(gè)32字節(jié)的缺省值也適用于卡的卡信息字段大小IFSC(InformationFiel

7、dSizefortheCard),但它可由ATRD中的一個(gè)參數(shù)來(lái)修改。在實(shí)踐中,對(duì)于終端和卡二者,I字段的大小在50140字節(jié)之間。4,組尾字段這個(gè)字段在字組的末尾傳送,含有一差錯(cuò)檢測(cè)碼,是由字組中前面所有的字節(jié)算得的。計(jì)算使用的要么是縱向冗余檢測(cè)LRC(LongitudinalRedundancyCheck)要么是循環(huán)冗余檢測(cè)CRC(CyclicRedundancyCheck)。所用方法必須在ATR的接口字符中予以規(guī)定。如果沒(méi)有規(guī)定,則隱含地約定使用LRCfto否則,根據(jù)ISO3309就進(jìn)行CRC#算。所用除法多項(xiàng)式和V.41的推薦是一樣的,G(X)=X16+X12+X5+1兩種差錯(cuò)檢測(cè)碼只

8、能用于差錯(cuò)檢測(cè),它們不能校正一個(gè)字組差錯(cuò)。單字節(jié)的縱向冗余校驗(yàn)和是串行級(jí)聯(lián)所有字組中前面的字節(jié)經(jīng)X0R算出的。這項(xiàng)計(jì)算可以執(zhí)行得非常之快,而它的實(shí)現(xiàn)也用不了多少代碼。通常,它的執(zhí)行是在數(shù)據(jù)傳輸或接收時(shí)進(jìn)行的,它實(shí)際上是所有實(shí)現(xiàn)的T=1的標(biāo)準(zhǔn)部分。使用CRCT法產(chǎn)生的差錯(cuò)檢測(cè)碼比起相對(duì)簡(jiǎn)單的的X0R校驗(yàn)和來(lái)要產(chǎn)生遠(yuǎn)為高得多的差錯(cuò)檢測(cè)概率。然而,在實(shí)際上這個(gè)方法目前幾乎從來(lái)都未被使用過(guò),因?yàn)樗鼘?shí)現(xiàn)起來(lái)是高代碼強(qiáng)度的而且很慢。此外,組尾字段要擴(kuò)充為2字節(jié),它進(jìn)一步降低了傳輸率。5.發(fā)送和接收序列計(jì)數(shù)器在T=1協(xié)議中的每個(gè)信息字組有一個(gè)在PCB字節(jié)中白僅有1位的發(fā)送序列號(hào)。它按模2增量,這就是說(shuō)它在0

9、和1之間交替。發(fā)送序列計(jì)數(shù)器也被稱(chēng)作N(S)。協(xié)議開(kāi)初的開(kāi)始值為0,終端和智能卡的計(jì)數(shù)器是相互獨(dú)立地增量的。發(fā)送序列計(jì)數(shù)器的主要目的是支持對(duì)于重發(fā)接收到的有差錯(cuò)字組的請(qǐng)求,因?yàn)楦鱾€(gè)數(shù)據(jù)字組能由N(S)毫不含糊地尋址。6,等待時(shí)間在數(shù)據(jù)傳輸時(shí),定義了不同的等待時(shí)間以提供發(fā)送方和接收方可以在精確規(guī)定的最小和最大時(shí)間區(qū)間內(nèi)的不同處理。它們也提供了規(guī)定的方法去結(jié)束通信,以便防止在出差錯(cuò)情況下的死鎖。標(biāo)準(zhǔn)中對(duì)所有這些等待時(shí)間都規(guī)定了缺省值,但可以修改它們以提高傳輸率,修改值是在ATR的特定接口字符中指明的。1)字符等待時(shí)間(CWT字符等待時(shí)間的定義是字組內(nèi)相連兩字符開(kāi)始邊之間的最大區(qū)間,如圖2所示。接收

10、方在每一開(kāi)始邊處啟動(dòng)一減數(shù)定時(shí)器,以字符等待時(shí)間作為初始值,如果定時(shí)器已滿(mǎn)而又沒(méi)有檢測(cè)到新一位的開(kāi)始邊,則接收方可認(rèn)為傳送的字組已被完整接收。于是,“CW酸收準(zhǔn)則”可一般用作字組結(jié)束的檢測(cè)。然而,它卻顯著地減小了數(shù)據(jù)傳輸率,因?yàn)槊?字組的時(shí)間都被字符等待時(shí)間CWT(CharacterWaitingTime)的持續(xù)時(shí)間增大了,字組的結(jié)束最好是用計(jì)數(shù)接收的字節(jié)數(shù)來(lái)檢測(cè)。圖2字符等待時(shí)間(CWT的定義CWT用ATR中所含CWI來(lái)計(jì)算,根據(jù)下列公式:CWT=2CWI+11工作etuCWI的缺省值為13,由此可得CWT勺如下之值:CWT=213+11)工作etu=8.203工作etu對(duì)于時(shí)鐘頻率為3.5

11、712MHz,而分頻值為372時(shí),結(jié)果的區(qū)間為0.85秒。這個(gè)區(qū)間在標(biāo)準(zhǔn)中被規(guī)定為缺省設(shè)定,對(duì)快速數(shù)據(jù)傳送而言是太高了。實(shí)踐中,CWI的常用范圍在3和5之間,這就是說(shuō)對(duì)正常的傳輸序列,其中字符一個(gè)接著一個(gè)而無(wú)需任何時(shí)間延遲,接收方在檢測(cè)出字組的尾部或一個(gè)通信錯(cuò)誤之前要等待一至二個(gè)字符的時(shí)間。通常,接收程序從LEN字段的長(zhǎng)度信息來(lái)檢測(cè)出字組的結(jié)束。然而,如果這個(gè)字段的內(nèi)容是錯(cuò)誤的,則字符等待時(shí)間可用作一種另外的手段來(lái)結(jié)束接收。這個(gè)問(wèn)題本身僅僅出現(xiàn)在長(zhǎng)度信息過(guò)長(zhǎng)時(shí),在這種情況下接收方將等待永遠(yuǎn)沒(méi)有到達(dá)的另外字符。這樣將阻塞了傳輸協(xié)議,這種狀態(tài)只能由卡復(fù)位來(lái)清除,而字符等待機(jī)制則繞過(guò)了這一問(wèn)題。2)

12、字組等待時(shí)間(BWT字組等待時(shí)間BWT(BlockWailingTime)被定義來(lái)當(dāng)智能卡沒(méi)有響應(yīng)時(shí)去建立一種結(jié)束通信的方法。它是發(fā)送給卡的字組中最后一字節(jié)的開(kāi)始邊和卡回送的第1個(gè)字節(jié)的開(kāi)始邊之間的最大允許區(qū)間,參看圖3。圖3字組等待時(shí)間(BWT的定義以常規(guī)的T=1字組而言,這是命令字組組尾字段的X0R字節(jié)的前沿和卡的應(yīng)答的NAD?節(jié)的前沿之間的最大允許區(qū)間。如果這段等待期間已滿(mǎn)之時(shí)而仍未從卡接收到應(yīng)答,則終端可以認(rèn)為卡出了故障并啟動(dòng)相應(yīng)的措施。例如,這可能是一個(gè)卡復(fù)位,接著是建立通信的新嘗試。ATR中的接口字符以縮短形式的BWI的編碼來(lái)規(guī)定BWT如果在ATR中沒(méi)有規(guī)定BWI之值,則使用之缺省

13、值為4,對(duì)于3.5712MHz和372的分頻值,則給出的字組等待時(shí)間為1.6s可以看出,這個(gè)數(shù)值是過(guò)分慷慨了。實(shí)踐中,BWI的常用值為3,它產(chǎn)生的字組等待時(shí)間為0.8s。在卡中的典型命令執(zhí)行時(shí)間通常為0.2s。這樣的田阿的持續(xù)時(shí)間則表現(xiàn)了在正常的命令執(zhí)行時(shí)間和快速檢測(cè)出智能卡不再對(duì)命令做出響應(yīng)之間的折中。3)字組保護(hù)時(shí)間(BOT最后一字節(jié)的開(kāi)始沿和相對(duì)方的第1個(gè)字節(jié)的開(kāi)始沿之間的最小區(qū)間稱(chēng)之為字組保護(hù)時(shí)間BOT(BlockGuardTime),參見(jiàn)圖4。它和“叮是相反的,后者被定義為兩個(gè)規(guī)定的開(kāi)始沿之間的最大時(shí)間。另一個(gè)區(qū)別是字組保護(hù)時(shí)間對(duì)雙方是強(qiáng)制性的,而且都必須遵守,而字組等待時(shí)間僅對(duì)智能

14、卡有意義。字組保護(hù)時(shí)間的目的是提供給字組發(fā)送方一個(gè)最短的時(shí)間區(qū)間,在其間可從發(fā)送轉(zhuǎn)換為接收。圖4字組保護(hù)時(shí)間(BOT的定義字組保護(hù)時(shí)間有一個(gè)固定值,它已標(biāo)準(zhǔn)化為22etu。在一個(gè)運(yùn)行于3.5712MHz,分頻值為372的智能卡中,它產(chǎn)生的區(qū)間大約為2.3ms。7.傳輸協(xié)議機(jī)制I)等待時(shí)間的擴(kuò)充如果卡需要比由字組等待時(shí)間(BWT最多允許的還要多些的時(shí)間來(lái)產(chǎn)生其應(yīng)答,它可向終端請(qǐng)求等待時(shí)間擴(kuò)充。智能卡發(fā)送一個(gè)請(qǐng)求擴(kuò)充的專(zhuān)門(mén)的s字組來(lái)做到這一點(diǎn),而它接收一個(gè)從終端來(lái)的相應(yīng)的S字組以確認(rèn),不允許終端拒絕這一請(qǐng)求。等待時(shí)間的擴(kuò)充過(guò)程如圖5所示。圖5擴(kuò)充等待時(shí)間的過(guò)程信息字段的一個(gè)字節(jié)通知終端擴(kuò)充時(shí)間的長(zhǎng)

15、度。這個(gè)字節(jié)乘以終端等待時(shí)間給出了新的字組等待時(shí)間。然而,它僅對(duì)最近發(fā)送的I字組有效。2)字組鏈接T=1協(xié)議的一項(xiàng)根本特性是字組鏈接功能,它使得任一方可傳送大于發(fā)送或接收緩存器大小的數(shù)據(jù)字組??紤]到智能卡的有限存儲(chǔ)器容量,這一點(diǎn)是特別有用的。只允許信息字組可以鏈接,因?yàn)橹挥羞@些字組才包含有大量的數(shù)據(jù)。在鏈接過(guò)程中,應(yīng)用數(shù)據(jù)被劃分成各個(gè)數(shù)組,然后一個(gè)接一個(gè)地發(fā)送給接收方。應(yīng)用層的數(shù)據(jù)必須劃分成各個(gè)段,其結(jié)果應(yīng)沒(méi)有大于接收方能接收的最大字組。按照T=1協(xié)議,第1段被安放在一信息字段中,補(bǔ)充上組頭和組尾字段后即可發(fā)送給接收方。M位(尚有數(shù)據(jù)位)被設(shè)定在字組的PCB?段中,以便向接收方表明已經(jīng)使用了字

16、組鏈接功能,被鏈的數(shù)據(jù)在隨后的字組中,鏈接字組的傳送如圖6所示。圖6從終端向智能卡傳輸數(shù)據(jù)的字組鏈接舉例隨著接收方成功收到這個(gè)具有用戶(hù)數(shù)據(jù)第1段的信息字組,它回送一個(gè)序列號(hào)N(R)是下一個(gè)I字組的發(fā)送序列計(jì)數(shù)N(S)的R字組,以表明已準(zhǔn)各好接收下一個(gè)鏈接的I字組了。于是,下一個(gè)字組被發(fā)送給接收方。這樣來(lái)來(lái)往往傳送I和R字組,一直繼續(xù)到發(fā)送方發(fā)布一個(gè)PCB?段的M位表明它是鏈中的最后一個(gè)字組(M位=0)的I字組時(shí)為止。接收到這一字組后,接收方就有了應(yīng)用層的全部數(shù)據(jù),并可對(duì)全部數(shù)據(jù)字組進(jìn)行處理。對(duì)應(yīng)用于字組鏈接的程序有一點(diǎn)限制,在一單個(gè)的命令一應(yīng)答對(duì)中,鏈接只能在一個(gè)方向上進(jìn)行。例如,如果終端發(fā)送

17、了鏈接字組,卡就不能在響應(yīng)中發(fā)送鏈接字組。這里還有更進(jìn)一步的限制,不過(guò)不是協(xié)議本身的,而是由于卡非常有限的存儲(chǔ)引起的。實(shí)現(xiàn)字組鏈接機(jī)制包括了一定數(shù)量的額外軟件,而它的用途極其有限,因?yàn)槊詈蛻?yīng)答并不都是那么長(zhǎng),因此通常都不需要鏈接。如果卡在BAM中的緩存器不是足夠大以存儲(chǔ)所有用字組鏈接傳送的數(shù)據(jù),它就必須把緩存器放在EEPROMK然而,這將引起傳輸率的明顯下降,因?yàn)镋EPROM和BAM同)使處理器不能以全速寫(xiě)入。結(jié)果許多T=1的實(shí)現(xiàn)沒(méi)有鏈接功能,因?yàn)閮r(jià)格/收益比經(jīng)常不有利于它。這是一個(gè)典型的例子,在實(shí)際實(shí)踐中對(duì)標(biāo)準(zhǔn)的解釋常常是太隨意了。在這種情況下的解釋等于把字組鏈接當(dāng)做是T=1中的補(bǔ)充選項(xiàng),

18、它不是絕對(duì)需要的。8,差錯(cuò)處理T=1協(xié)議顯示出相當(dāng)完善的差錯(cuò)檢測(cè)與處理機(jī)制,如果接收到了不正確的字組,則協(xié)議試圖用準(zhǔn)確規(guī)定的方法恢復(fù)無(wú)差錯(cuò)通信。從終端的角度來(lái)看,存在著三個(gè)同步階段,在第1階段,差錯(cuò)字組的發(fā)送方接收到一個(gè)表明EDC符偶位差錯(cuò)或一般差錯(cuò)的R字組,接收到此R字組后必須重發(fā)最后發(fā)送的字組。如果已證明利用此機(jī)制無(wú)法恢復(fù)無(wú)差錯(cuò)的連接,則求助于第2階段。這就是說(shuō),智能卡收到一個(gè)從終端發(fā)出的以s字組形式的再同步請(qǐng)求,而終端期待著一個(gè)再同步應(yīng)答的答復(fù)。于是,終端和卡雙方把它們的發(fā)送和接收計(jì)數(shù)器復(fù)位為零,它相應(yīng)于緊接著ATR的協(xié)議狀態(tài)。基于此,終端試圖建立起新的連接。第1和第2階段僅影響協(xié)議層次,它們對(duì)應(yīng)用本身毫無(wú)影響。然而,第3階段將影響智能卡的所有層次。如果用前兩個(gè)階段終端仍無(wú)法建立起一個(gè)無(wú)差錯(cuò)的通信連接,它經(jīng)復(fù)位引線(xiàn)啟動(dòng)一個(gè)智能卡復(fù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論