接觸式邏輯加密卡技術(shù)1.ppt_第1頁
接觸式邏輯加密卡技術(shù)1.ppt_第2頁
接觸式邏輯加密卡技術(shù)1.ppt_第3頁
接觸式邏輯加密卡技術(shù)1.ppt_第4頁
接觸式邏輯加密卡技術(shù)1.ppt_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、接觸式邏輯加密卡技術(shù),電子與信息工程學(xué)院,提 綱,接觸式邏輯加密卡存儲(chǔ)結(jié)構(gòu)與安全技術(shù) 典型卡型剖析:SLE4406卡 SLE4442卡 AT88SC1608卡 接觸式邏輯加密卡的讀寫控制 典型卡型剖析:SLE4442卡 時(shí)序分析與讀、寫、密碼校驗(yàn)程序,接觸式邏輯加密卡組成,Security Memory Card,邏輯加密卡特性,組成:非易失性存儲(chǔ)器+硬件加密邏輯; 芯片:專門為IC卡設(shè)計(jì)的芯片(ASIC); 安全性:具有安全控制邏輯,安全性能較好; 多種安全措施:PIN、EC、FUSE、TC、多存儲(chǔ)器(ROM、PROM、EEPROM并存)、多分區(qū)存儲(chǔ)結(jié)構(gòu)。 通信協(xié)議:支持ISO7816國際標(biāo)

2、準(zhǔn)。 適用場合:有一定安全要求的場合,如IC卡電話、網(wǎng)吧卡、加油卡、保險(xiǎn)卡、駕駛卡、借書卡、小額電子錢包等。,典型邏輯加密卡SLE4406,一次性使用,帶加密邏輯,按位操作 計(jì)數(shù)卡(Token Memory Card),以一次性的計(jì)數(shù)方式,從寫滿的計(jì)數(shù)器中減“1”,直至存儲(chǔ)單元全減為“0”為止 104位容量 ,最大可提供20 480計(jì)數(shù)單位 3字節(jié)傳輸密碼,1位發(fā)行標(biāo)志保護(hù) 常用于具有定額定價(jià)的消費(fèi)系統(tǒng)中,如公用電話卡、預(yù)付費(fèi)加油卡、停車計(jì)費(fèi)卡、游樂園消費(fèi)卡等,SLE4406存儲(chǔ)分布圖和計(jì)數(shù)規(guī)則,計(jì)數(shù)規(guī)則 發(fā)行后,用戶區(qū)進(jìn)入計(jì)數(shù)狀態(tài),為5位8進(jìn)制計(jì)數(shù)器,但第5位計(jì)數(shù)器只有4位可用,因此最大計(jì)數(shù)

3、值為20480。 說明: 計(jì)數(shù)區(qū)按位寫0,按字節(jié) 借位擦除,如: 11111111 00000000 擦成: 11111110 11111111,SLE4406操作方式,檢查發(fā)行標(biāo)志位是否為1,是則可以校驗(yàn)傳輸密碼 先將密碼計(jì)數(shù)器-1,然后比較密碼,校驗(yàn)正確則密碼計(jì)數(shù)器恢復(fù),允許寫入發(fā)行商代碼,將控制位寫為0(發(fā)行)。允許初始化計(jì)數(shù)器(擦除第2-5字節(jié)并重新寫入),此操作將撕毀傳輸密碼并不可恢復(fù)。 一旦控制位為0,表示已發(fā)行,將不能再更改發(fā)行商代碼。第2-5字節(jié)成為5位計(jì)數(shù)器,只能寫0及借位擦除。,SLE4406保密特性,典型邏輯加密卡SLE4442,按字節(jié)操作,可反復(fù)應(yīng)用 多存儲(chǔ)器結(jié)構(gòu) *位

4、 型主存儲(chǔ)器。 *1位 型保護(hù)存儲(chǔ)器。 * 位 型加密存儲(chǔ)器 安全性:用戶密碼(3字節(jié))+密碼錯(cuò)誤計(jì)數(shù)(3次)+PROM保護(hù) 線串行連接協(xié)議,滿足 ISO7816同步傳送協(xié)議,SLE4442存儲(chǔ)結(jié)構(gòu),SLE4442存儲(chǔ)器分配(一),主存儲(chǔ)器(main memory):EEPROM型,256B 按字節(jié)操作,字節(jié)地址0255(00HFFH), 所有單元可任意讀取。 主存儲(chǔ)器可分為兩個(gè)數(shù)據(jù)區(qū): 保護(hù)數(shù)據(jù)區(qū):00H-1FH,用戶密碼+熔絲保護(hù)(擦除、寫 當(dāng)校驗(yàn)用戶密碼正確且熔絲未熔斷時(shí)允許進(jìn)行擦除和寫入操作,否則不允許 熔絲:保護(hù)存儲(chǔ)器中第n位(n=031)對應(yīng)主存儲(chǔ)器中第n個(gè)字節(jié),1未熔斷,0熔斷。

5、 應(yīng)用數(shù)據(jù)區(qū) :20H-FFH。用戶密碼保護(hù)(擦除、寫),SLE4442存儲(chǔ)器分配(二),保護(hù)存儲(chǔ)器(protection memory):PROM型,32bits 按位操作,位地址031 每位相當(dāng)于主存儲(chǔ)器保護(hù)數(shù)據(jù)區(qū)對應(yīng)字節(jié)單元的控制熔絲(FUSE),相應(yīng)位為1時(shí)該字節(jié)可擦寫,為0時(shí)不可 保護(hù)存儲(chǔ)器可任意讀出,但需校驗(yàn)密碼正確方能寫入,一經(jīng)寫入(從1變?yōu)?)不可再擦除,可理解為FUSE一經(jīng)熔斷不可再恢復(fù)。,SLE4442存儲(chǔ)器分配(三),加密存儲(chǔ)器(security memory): EEPROM型,4B 按字節(jié)操作,字節(jié)地址03 字節(jié)0:(Erroe Counter),低3位有效, 可任意

6、讀、寫, 用戶密碼校驗(yàn)成功方可擦除。 字節(jié)1,2,3:3字節(jié) PSC(可編程加密代碼) PSC校驗(yàn)成功前不可讀,只能進(jìn)行比較操作; 密碼“比較”成功后才可以進(jìn)行讀出、寫入和擦除。,典型邏輯加密卡AT88SC1608,按字節(jié)操作,可反復(fù)應(yīng)用 存儲(chǔ)容量:16Kbits 安全性:三重密碼+熔絲+讀寫控制位 單存儲(chǔ)器、多存儲(chǔ)分區(qū)結(jié)構(gòu) 標(biāo)志數(shù)據(jù)區(qū):制造商、發(fā)行商代碼。 控制數(shù)據(jù)區(qū):SC(2字節(jié))、EC、Erase key。 應(yīng)用數(shù)據(jù)區(qū):4個(gè)、各自獨(dú)立 線串行連接協(xié)議,滿足 ISO7816同步傳送協(xié)議,SC1 一區(qū)密碼,AT88SC1608存儲(chǔ)器分配(一),標(biāo)志數(shù)據(jù)區(qū):驗(yàn)證卡片真?zhèn)蔚闹匾獦?biāo)識 制造商代碼區(qū)

7、FZ (Fabrication Zone ),2B 記錄卡芯片生產(chǎn)商的特定信息(例如:生產(chǎn)批號、日期、特別制定的特征代碼) FUSE1熔斷前,可讀,可更改 FUSE1熔斷后,只讀,不可更改 發(fā)行商代碼區(qū)IZ (Issuer Zone ),8B 用于記錄卡片發(fā)行商的特定信息(例如:發(fā)行批號、日期、地區(qū)范圍編號、特定用戶編號等特征代碼) FUSE2熔斷前,可讀,可更改 FUSE2熔斷后,只讀,不可更改,AT88SC1608存儲(chǔ)器分配(二),控制數(shù)據(jù)區(qū):三重密碼+密碼錯(cuò)誤計(jì)數(shù) 用戶密碼SC(Security Code),2B 用戶密碼錯(cuò)誤計(jì)數(shù)SCAC(Security Code Attempts C

8、ounter ),1B (8次) 應(yīng)用區(qū)密碼 SC1 SC4,2B 應(yīng)用區(qū)密碼錯(cuò)誤計(jì)數(shù)SCAC1 SCAC4,8次 應(yīng)用區(qū)擦除密碼EZ14(Erase key ),2B 應(yīng)用區(qū)擦除密碼錯(cuò)誤計(jì)數(shù)EnAC (Erase key Attempts Counter ,=1,2,3,4), 8次,AT88SC1608存儲(chǔ)器分配(三),應(yīng)用數(shù)據(jù)區(qū):14,各自獨(dú)立,特性相同 存儲(chǔ)用戶的相關(guān)數(shù)據(jù)記錄 。 第1位為寫保護(hù)位(P1) ;第2位為讀保護(hù)位(R1),均為1有效(可讀/寫),實(shí)訓(xùn)3 接觸式邏輯加密卡讀寫操作,準(zhǔn)備: 確認(rèn)電源正、負(fù)極,按標(biāo)志正確連接接觸式IC卡讀寫器的電源線及串口線,注意電源+5V與地不

9、可接反。 打開接觸式IC卡讀寫器讀寫操作軟件DEMO,確認(rèn)通信正常。 將實(shí)驗(yàn)白卡插入接觸式IC卡讀寫器插卡槽,自動(dòng)測卡進(jìn)入卡操作界面。 SLE4442卡密碼:FFFFFFH AT88SC1608卡密碼:F0F0H或A5A5H,SLE4442讀寫操作,讀卡:記錄卡密碼、卡錯(cuò)誤計(jì)數(shù)值,主存儲(chǔ)器存儲(chǔ)結(jié)構(gòu)(各區(qū)域名稱、地址范圍、字節(jié)數(shù))、存儲(chǔ)內(nèi)容和讀出條件。 寫卡:對主存儲(chǔ)器各區(qū)域進(jìn)行寫入/擦除操作,記錄操作結(jié)果,總結(jié)各區(qū)域?qū)懭?擦除條件。 密碼操作: (1)修改密碼:在未通過和已通過密碼校驗(yàn)二種情況下分別修改密碼,記錄操作結(jié)果,總結(jié)修改密碼的條件。 (2)惡意猜測密碼:在未通過密碼校驗(yàn)的情況下輸入錯(cuò)

10、誤密碼,記錄此時(shí)的讀卡、寫卡結(jié)果。 注意: 修改密碼后必須及時(shí)還原密碼為FFFFFFH。 猜測密碼錯(cuò)誤次數(shù)不得超過2次!以免鎖卡!,AT88SC1608讀寫操作,讀卡:在未通過和已通過密碼校驗(yàn)二種情況下記錄存儲(chǔ)器存儲(chǔ)結(jié)構(gòu)(各區(qū)域名稱、地址范圍、字節(jié)數(shù))、存儲(chǔ)內(nèi)容和讀出條件。 寫卡:在未通過和已通過密碼校驗(yàn)二種情況下對存儲(chǔ)器各區(qū)域進(jìn)行寫入/擦除操作,記錄操作結(jié)果,總結(jié)各區(qū)域?qū)懭?擦除條件。 熔絲操作:模擬熔斷,對存儲(chǔ)器各區(qū)域進(jìn)行寫入/擦除操作,記錄操作結(jié)果,總結(jié)熔斷操作對各區(qū)域的保護(hù)作用。 注意: 修改密碼后必須及時(shí)還原密碼。 猜測密碼錯(cuò)誤次數(shù)不得超過8次!以免鎖卡! 只允許模擬熔斷,不可熔斷,

11、否則將無法恢復(fù)。,任 務(wù),設(shè)計(jì)IC卡網(wǎng)吧收費(fèi)機(jī) 基本要求: 1、判斷是否SLE4442卡 2、讀卡,根據(jù)讀出的發(fā)行商標(biāo)志判斷是否本網(wǎng)吧的卡。讀出卡中余額,判斷是否允許上網(wǎng)。 3、校驗(yàn)密碼,密碼正確為合法卡。 4、寫卡,扣款后允許上網(wǎng),時(shí)間到則繼續(xù)扣款,直至停止上網(wǎng)或余額不足。 進(jìn)階要求 實(shí)現(xiàn)網(wǎng)吧收費(fèi)機(jī)與PC機(jī)的通信,硬件設(shè)計(jì)SLE4442引腳分配,C1:Vcc(Supply Voltage) C2: RST(Reset) C3:CLK(Serial Clock) C4: (NC) C5:GND C6:I/O(Bidirectional serial data ,open drain) C7:

12、(NC) C8: (NC),SLE4442接口電路,軟件設(shè)計(jì)SLE4442操作時(shí)序,通信協(xié)議:2線連接協(xié)議,滿足ISO7816同步傳送協(xié)議 數(shù)據(jù)傳輸:CLK信號下降沿有效。 復(fù)位和復(fù)位響應(yīng)(Reset and Answer-to-Reset): 上電后啟動(dòng)芯片,符合7816 命令(Command): 命令=開始+(控制字+地址字+數(shù)據(jù)字)+附加脈沖+停止 操作模式(Mode): 讀數(shù)據(jù):輸出數(shù)據(jù)模式(OUTGOING DATA MODE): 寫入、擦除、校驗(yàn):處理模式(PROCESSING MODE),復(fù)位和復(fù)位響應(yīng)(Reset and Answer-to-Reset):SLE4442上電后,

13、讀寫器首先應(yīng)給出復(fù)位(Reset)命令并等待接收來自卡的復(fù)位響應(yīng)ATR(Answer-To-Reset)。,復(fù)位和復(fù)位響應(yīng)(Reset and Answer-to-Reset),復(fù)位響應(yīng):符合 ISO78163標(biāo)準(zhǔn)的ATR 當(dāng)RST為高時(shí),送第一個(gè)時(shí)鐘脈沖(脈沖0)使地址計(jì)數(shù)器清0(復(fù)位)。 當(dāng)RST線從高狀態(tài)(H狀態(tài))置到低狀態(tài)(L狀態(tài))時(shí),第一個(gè)數(shù)據(jù)位(主存儲(chǔ)器字節(jié)0的LSB)的內(nèi)容被送到I/O上。若連續(xù)輸人32個(gè)時(shí)鐘脈沖(脈沖132),主存儲(chǔ)器中的前4個(gè)字節(jié)(4 * 8位= 32位)地址單元中的內(nèi)容被讀出(復(fù)位響應(yīng))。 在第 33個(gè)時(shí)鐘脈沖(脈沖32)的下降沿,IO線被置成高阻狀態(tài)(狀態(tài)

14、Z)而關(guān)閉(復(fù)位和復(fù)位響應(yīng)過程結(jié)束),;*復(fù)位子程序* * RESET: CLR RST CLR CLK CLR IO LCALL DELAY_12 LCALL DELAY_12 SETB RST LCALL DELAY_12 SETB CLK LCALL DELAY_12 CLR CLK LCALL DELAY_12 CLR RST LCALL DELAY_12,MOV B,#20H RESET0:SETB CLK LCALL DELAY_12 CLR CLK LCALL DELAY_12 DJNZ B,RESET0 SETB IO RET,如何讀出復(fù)位應(yīng)答呢,;4442 串行輸出一個(gè)字節(jié)子

15、程序,即MCU讀入一個(gè)字節(jié) SHIN: CLR CLK PUSH B MOV B,#08H X43: LCALL DELAY SETB CLK MOV C,IO RRC A LCALL DELAY CLR CLK DJNZ B,X43 POP B RET,將RESET程序中的32個(gè)脈沖換為 調(diào)用SHIN子程序4次,讀入4個(gè)字節(jié)的ATR,命令(Command),復(fù)位響應(yīng)以后,芯片等待著命令。 命令=開始+(控制字+地址字+數(shù)據(jù)字)+附加脈沖+停止 。 開始:在CLK為高狀態(tài)(H)期間,I/O的下降沿為開始狀態(tài)。 停止:在CLK為高狀態(tài)(H)期間,I/O的上升沿為停止?fàn)顟B(tài)。,SLE4442操作命令

16、,;*命令子程序* ;該子程序送出三字節(jié)的SLE4442命令 ;入口參數(shù):COM為控制字,ADDR為地址字,DAT為數(shù)據(jù)字 COMMAND:SETB CLK LCALL DELAY_12 CLR IO ;開始 LCALL DELAY CLR CLK LCALL DELAY MOV A,COM;送命令字 LCALL SHOUT MOV A,ADDR;送地址字 LCALL SHOUT MOV A,DAT;送數(shù)據(jù) LCALL SHOUT LCALL DELAY CLR IO LCALL DELAY SETB CLK;附加脈沖 LCALL DELAY SETB IO;停止 RET,怎樣向卡中寫入一個(gè)字

17、節(jié)?,; sle4442 串行輸入一個(gè)字節(jié)函數(shù), 即MCU向卡寫入一字節(jié) SHOUT: PUSH B MOV B,#08H X42: RRC A MOV IO,C NOP SETB CLK LCALL DELAY CLR CLK LCALL DELAY DJNZ B,X42 POP B RET,操作模式 (Mode),接收了一個(gè)命令之后,卡芯片處于 兩種可能的模式: (1)讀數(shù)據(jù):輸出數(shù)據(jù)模式; (2)寫入、擦除、校驗(yàn)密碼:處理模式。,輸出數(shù)據(jù)(OUTGOING)模式,將IC卡芯片中的數(shù)據(jù)傳送給讀寫器 在第一個(gè)CLK脈沖的下降沿之后,I/O線上的第一位數(shù)據(jù)變?yōu)橛行?。隨后每增加一個(gè)時(shí)序脈沖,芯片

18、內(nèi)部的一位數(shù)據(jù)被送到I/O線上,低位(LSB)在前。當(dāng)所需要的最后一個(gè)數(shù)據(jù)送出之后,需要再附加一個(gè)時(shí)鐘脈沖來把I/O線置成高阻狀態(tài)(狀態(tài)Z)。,處理數(shù)據(jù)(PROCESSING)模式,對IC卡芯片作內(nèi)部處理(寫/擦除/校驗(yàn)密碼) 芯片在第一個(gè)時(shí)鐘脈沖的下降沿,將IO線從高狀態(tài)(H狀態(tài))拉到低狀態(tài)(L狀態(tài))并開始處理。此后芯片在內(nèi)部連續(xù)計(jì)時(shí)計(jì)數(shù),直到第n個(gè)時(shí)鐘脈沖之后的附加一個(gè)時(shí)鐘脈沖的下降沿IO線被再次置高,完成芯片的處理過程。在整個(gè)處理過程中IO線被鎖定成低狀態(tài)。,;sle4442處理模式子程序 PROCESS: MOV R7,#254D CLR CLK CLR IO LCALL DELAY

19、PRO1:SETB CLK LCALL DELAY CLR CLK LCALL DELAY DJNZ R7,PRO1 SETB IO LCALL DELAY SETB CLK LCALL DELAY CLR CLK RET,讀主存儲(chǔ)器Read Main Memory,命令格式:30H +字節(jié)地址+ * 模式:OUTGOING 功能:讀出從給定的字節(jié)地址(N)開始,直到整個(gè)存儲(chǔ)器末尾的主存儲(chǔ)器內(nèi)容。 說明:在該命令輸入以后,接口設(shè)備IFD必須提供足夠的時(shí)鐘脈沖,起始地址為N時(shí)所需要的時(shí)鐘脈沖數(shù)為 M=(256-N)* 81 (N=0255) 例如:地址為7EH(N=254),M=17,;*讀主存

20、儲(chǔ)器子程序* READ: MOV COM,#30H;設(shè)置讀主存儲(chǔ)器控制字 MOV ADDR,#R_ADDR;取讀主存儲(chǔ)器首地址 MOV DAT,#00H;設(shè)置讀主存儲(chǔ)器數(shù)據(jù)字(任意) MOV R4,NUM;數(shù)據(jù)個(gè)數(shù) LCALL COMMAND;送命令給卡 READ0:LCALL SHIN;讀數(shù)據(jù)(輸出數(shù)據(jù)模式) MOV R0,A;送數(shù)據(jù)入數(shù)據(jù)緩沖區(qū) INC R0 DJNZ R4,READ0;未讀完繼續(xù),SETB CLK;發(fā)送一個(gè)附加脈沖 LCALL DELAY CLR CLK LCALL DELAY SETB IO;置位數(shù)據(jù)線 LCALL DELAY RET,讀保護(hù)存儲(chǔ)器 Read Prote

21、ction Memory,命令格式:34H +* + * 模式:OUTGOING 功能:讀出保護(hù)存儲(chǔ)器各位(共32位)的內(nèi)容。 說明:在該命令輸入以后,接口設(shè)備IFD必須提供32個(gè)時(shí)鐘脈沖,最后通過一個(gè)附加時(shí)鐘脈沖將I/O線置為高狀態(tài)(H狀態(tài)) ,即M=33,讀加密存儲(chǔ)器 Read Security Memory,命令格式:3lH +* + * 模式:OUTGOING 功能:類似于讀保護(hù)存儲(chǔ)器,可以讀出4個(gè)字節(jié)的加密存儲(chǔ)器的內(nèi)容。M=33 說明:密碼比較失敗時(shí)只能讀出錯(cuò)誤計(jì)數(shù)器(字節(jié)0)的內(nèi)容,字節(jié)1、2、3的內(nèi)容將為000000(即不能讀出密碼),修改主存儲(chǔ)器 Updata Main Mem

22、ory,命令格式:38H +字節(jié)地址+ 數(shù)據(jù) 模式:PROCESSING 功能:用所給出的數(shù)據(jù)修改主存儲(chǔ)器指定字節(jié)地址(N)的內(nèi)容 說明:通常,要改變一個(gè)數(shù)據(jù)需要先進(jìn)行擦除,再進(jìn)行寫入兩項(xiàng)操作。如果在被尋址的字節(jié)里位中沒有一個(gè)字位需要從變到,則可以不進(jìn)行擦除處理。反之亦然,在被尋址的字節(jié)中,如果沒有一個(gè)字位需要從變到,則可以不作寫入處理,寫人或擦除操作一次至少要耗費(fèi).時(shí)間 。因此,在處理模式期間,可能發(fā)生下列幾種情況之一: 擦除和寫入(5ms): 相應(yīng)于M256個(gè)時(shí)鐘脈沖 只寫入不擦除(2.5ms): 相應(yīng)于 M= 124個(gè)時(shí)鐘脈沖 只擦除不寫入(2.5ms): 相應(yīng)于M124個(gè)時(shí)鐘脈沖。,;

23、*修改主存儲(chǔ)器子程序* WRITE: MOV R4,NUM;取要寫的字節(jié)數(shù) MOV COM,#38H;設(shè)置修改主存儲(chǔ)器控制字 WRITE0: MOV ADDR,#W_ADDR;取修改主存儲(chǔ)器首地址 MOV A,R0 MOV DAT,A;取修改主存儲(chǔ)器數(shù)據(jù)字 LCALL COMMAND;送修改主存儲(chǔ)器命令給卡 LCALL PROCESS;處理模式 INC W_ADDR ;地址字指向主存儲(chǔ)器下一個(gè)單元 INC R0;指向下一個(gè)數(shù)據(jù) DJNZ R4,WRITE0;未寫完繼續(xù) RET,修改加密存儲(chǔ)器 Updata Security Memory,命令格式:39H +字節(jié)地址+ 數(shù)據(jù) 模式:PROCES

24、SING 功能:用所給出的數(shù)據(jù)修改加密存儲(chǔ)器指定字節(jié)地址的內(nèi)容(即修改錯(cuò)誤計(jì)數(shù)器或修改密碼) 說明:該命令只能在PSC比較成功之后才能進(jìn)行。該命令的執(zhí)行時(shí)間和所需要的時(shí)鐘脈沖與修改主存儲(chǔ)器的情況相同,寫保護(hù)存儲(chǔ)器 Write Protection Memory,命令格式:3CH +字節(jié)地址(00H1FH)+ 輸入的數(shù)據(jù) 模式:PROCESSING 功能:這一命令的執(zhí)行過程包含一個(gè)把被輸入的數(shù)據(jù)與在EEPROM中對應(yīng)數(shù)據(jù)進(jìn)行比較的過程。在確認(rèn)一致的情況下,保護(hù)字位被寫0,從而使得主存儲(chǔ)器中的信息不可更改。如果數(shù)據(jù)比較結(jié)果不一致,則保護(hù)字位的寫操作將被禁止執(zhí)行。 說明:該命令所要求的時(shí)鐘脈沖和執(zhí)行

25、時(shí)間與修改主存儲(chǔ)器命令的情況相同。,比較校驗(yàn)數(shù)據(jù)Compare Varification Data,命令格式:33H +字節(jié)地址+ 數(shù)據(jù) 模式:PROCESSING 功能:把輸入的“用戶密碼”的各個(gè)字節(jié)與相對應(yīng)的PSC(存放在加密存儲(chǔ)器中)進(jìn)行比較 說明:字節(jié)地址為01H03H,數(shù)據(jù)為用戶密碼,讀EC,寫EC的一位為0,EC=000?,校驗(yàn)三字節(jié)的密碼,擦除EC,讀EC,EC=111?,Y,Y,N,N,校驗(yàn)通過,校驗(yàn)不成功 EC中1的個(gè)數(shù)= 允許重試的次數(shù),卡被鎖死,PSC校驗(yàn)流程,PSC校驗(yàn)的過程并不是僅由比較校驗(yàn)數(shù)據(jù)命令來完成的,而是由多個(gè)命令構(gòu)成的一個(gè)流程來共同完成, 流程一:用一個(gè)修改

26、加密存儲(chǔ)器命令將密碼錯(cuò)誤計(jì)數(shù)器中的一位寫0。 流程二:連續(xù)用三條比較校驗(yàn)數(shù)據(jù)命令比較輸入的用戶密碼與加密存儲(chǔ)器中存儲(chǔ)的密碼。比較從字節(jié)1開始。 流程三:校驗(yàn)密碼成功與否是用能否擦除密碼錯(cuò)誤計(jì)數(shù)器來證實(shí)的。如果校驗(yàn)成功,則擦除操作執(zhí)行有效;如果校驗(yàn)不成功,擦除操作執(zhí)行無效,密碼錯(cuò)誤計(jì)數(shù)器將不會(huì)恢復(fù)為“111”。但只要EC不全為0,就允許讀寫器對芯片進(jìn)行重試。,;*PSC校驗(yàn)子程序* COMP: MOV COM,#31H;設(shè)置讀加密存儲(chǔ)器命令控制字 MOV ADDR,#00H;設(shè)置讀加密存儲(chǔ)器命令地址字(00H為錯(cuò)誤計(jì)數(shù)器) MOV DAT,#00H;設(shè)置讀加密存儲(chǔ)器命令數(shù)據(jù)字(任意) LCALL

27、 COMMAND;送讀加密存儲(chǔ)器命令 LCALL SHIN;讀錯(cuò)誤計(jì)數(shù)器 MOV 23H,A;錯(cuò)誤計(jì)數(shù)器值暫存(23H)單元 LCALL SHIN;繼續(xù)讀入加密存儲(chǔ)器后3個(gè)字節(jié) MOV 24H,A LCALL SHIN MOV 25H,A LCALL SHIN MOV 26H,A MOV A,23H SETB IO;附加一個(gè)脈沖,置數(shù)據(jù)線為高 LCALL DELAY SETB CLK LCALL DELAY CLR CLK,JB ACC.0,NEXT0;判斷錯(cuò)誤計(jì)數(shù)器中是否還有“1” ;JB ACC.1,NEXT1;如有“1”則減去一個(gè)“1”, ;JB ACC.0,NEXT2 LJMP EXI

28、T1;錯(cuò)誤計(jì)數(shù)器為全“0”退出 NEXT0:MOV DAT,#06H AJMP COMP0 NEXT1:MOV DAT,#04H AJMP COMP0 NEXT2:MOV DAT,#00H COMP0:MOV COM,#39H;設(shè)置修改加密存儲(chǔ)器命令控制字 MOV ADDR,#00H;設(shè)置修改加密存儲(chǔ)器命令地址字(錯(cuò)誤計(jì)數(shù)器) LCALL COMMAND;送修改加密存儲(chǔ)器命令(錯(cuò)誤計(jì)數(shù)器減一個(gè)1) LCALL PROCESS;處理模式,MOV COM,#33H;設(shè)置PSC校驗(yàn)命令控制字 MOV ADDR,#01H;設(shè)置PSC校驗(yàn)命令地址字 MOV DAT,#PSC1;取PSC第一個(gè)字節(jié) LCA

29、LL COMMAND;送PSC校驗(yàn)命令給卡 LCALL PROCESS;處理模式 MOV COM,#33H;設(shè)置PSC校驗(yàn)命令控制字 MOV ADDR,#02H;設(shè)置PSC校驗(yàn)命令地址字 MOV DAT,#PSC2;取PSC第二個(gè)字節(jié) LCALL COMMAND;送PSC校驗(yàn)命令給卡 LCALL PROCESS;處理模式 MOV COM,#33H;設(shè)置PSC校驗(yàn)命令控制字 MOV ADDR,#03H;設(shè)置PSC校驗(yàn)命令地址字 MOV DAT,#PSC3;取PSC第三個(gè)字節(jié) LCALL COMMAND;送PSC校驗(yàn)命令給卡 LCALL PROCESS;處理模式,MOV COM,#39H;設(shè)置修改

30、加密存儲(chǔ)器命令控制字 MOV ADDR,#00H;設(shè)置修改加密存儲(chǔ)器命令地址字(錯(cuò)誤計(jì)數(shù)器) MOV DAT,#07H;取修改加密存儲(chǔ)器命令數(shù)據(jù)字(擦除錯(cuò)誤計(jì)數(shù)器) LCALL COMMAND ;送修改加密存儲(chǔ)器(擦除錯(cuò)誤計(jì)數(shù)器)命令給卡 LCALL PROCESS;處理模式 MOV COM,#31H;設(shè)置讀加密存儲(chǔ)器命令控制字 MOV ADDR,#00H;設(shè)置讀加密存儲(chǔ)器命令地址字(錯(cuò)誤計(jì)數(shù)器) MOV DAT,#00H;設(shè)置讀加密存儲(chǔ)器命令數(shù)據(jù)字(任意) LCALL COMMAND;送讀加密存儲(chǔ)器命令給卡 LCALL SHIN;讀加密存儲(chǔ)器的錯(cuò)誤計(jì)數(shù)器 MOV 23H,A,LCALL SHIN;讀加密存儲(chǔ)器的后三個(gè)字節(jié) MOV 24H,A

溫馨提示

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

評論

0/150

提交評論