久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 13595|回復(fù): 2
收起左側(cè)

AT88SC153加密卡的原理和應(yīng)用

[復(fù)制鏈接]
ID:85681 發(fā)表于 2015-7-15 02:04 | 顯示全部樓層 |閱讀模式
    摘要:從加密存儲(chǔ)芯片AT88SC153內(nèi)部結(jié)構(gòu)出發(fā),詳細(xì)介紹該芯片的功能、特點(diǎn)和基本工作原理;給出通用的硬件接口電路和軟件編程實(shí)現(xiàn);討論AT88SC153在單處機(jī)與嵌入式系統(tǒng)中的應(yīng)用。
    關(guān)鍵詞:加密存儲(chǔ)芯片 AT88SC153 I2C總線 嵌入式系統(tǒng)
隨著嵌入式產(chǎn)品性能的日益提高,嵌入式系統(tǒng)在消費(fèi)類電子、汽車、工業(yè)控制和通信等行業(yè)迅速普及;但由于嵌入式系統(tǒng)開(kāi)發(fā)成本高、研發(fā)周期長(zhǎng),使得關(guān)鍵技術(shù)的加密和重要數(shù)據(jù)的保密問(wèn)題日益突出。如何在這些嵌入式系統(tǒng)中采用低成本、高效率的方法保護(hù)自己的科研成果不被非法仿制和剽竊,同時(shí)保存一些關(guān)鍵代碼或數(shù)據(jù)已成為困擾許研發(fā)工程師的問(wèn)題之一。解決的辦法除了采用法律手段保護(hù)知識(shí)產(chǎn)權(quán)外,另一個(gè)更加簡(jiǎn)單有效的方法就是采用加密存儲(chǔ)芯片進(jìn)行硬件電路的加密和重要數(shù)據(jù)的認(rèn)證存儲(chǔ)。
AT88SCxx系列加密存儲(chǔ)芯片是國(guó)際著名芯片廠商Atmel公司生產(chǎn)的具有多用途的加密存儲(chǔ)系列芯片。其中AT88SC153是該系列芯片的典型代表。由于其具有多達(dá)2KB的EEPROM,利用I2C串行總線通信,采用認(rèn)證或加密驗(yàn)證等方式進(jìn)行數(shù)據(jù)訪問(wèn),因此以其容量大、體積小、使用方便、安全可靠等特點(diǎn),在產(chǎn)生開(kāi)發(fā)中得到了廣泛的應(yīng)用。
1 器件簡(jiǎn)介
1.1 引腳說(shuō)明

                                   圖1
如圖1所示,在嵌入式系統(tǒng)中,AT88SC153常采用SOIC和PDIP兩種典型封裝。由于器件采用I2C串行總線接口,因此引腳數(shù)目少,體積小。各引腳功能如下:
SCL——串行時(shí)鐘輸入腳,用來(lái)控制器件所有的數(shù)據(jù)輸入相輸出;
SDA——串行數(shù)據(jù)輸入/輸出腳;

RST——復(fù)位引腳
VCC——電源電壓,工作電壓為2.7V~5.5V;
GND——地;
NC——不連接。

1.2 內(nèi)部結(jié)構(gòu)
圖2


如圖2所示,AT88SC153加密存儲(chǔ)芯片內(nèi)部結(jié)構(gòu)主要由電源管理復(fù)位模塊、同步傳輸模塊、認(rèn)證單元、密碼校驗(yàn)單元、偽隨機(jī)數(shù)發(fā)生器和EEPROM等幾部分組成。其中電源管理復(fù)位模塊主要對(duì)芯片進(jìn)行供電、提供復(fù)位管理和掉電保護(hù)等功能;同步傳輸模塊用于控制在不同通信方式下數(shù)據(jù)的傳輸;認(rèn)證和密碼校驗(yàn)單元實(shí)現(xiàn)在不同安全等級(jí)下用戶用戶應(yīng)用區(qū)數(shù)據(jù)訪問(wèn)的安全管理;偽隨機(jī)數(shù)發(fā)生器用于進(jìn)行內(nèi)部加密機(jī)的加密計(jì)算;EEPROM則保存需要加密的重要數(shù)據(jù)和代碼。
1.3 主要特點(diǎn)
①AT88SC153具有1個(gè)64字節(jié)的設(shè)置區(qū)和3個(gè)64字節(jié)的應(yīng)用分區(qū),3個(gè)應(yīng)用區(qū)可以設(shè)置為同一套密碼組合而自由合并,也可以分別指定不同的讀寫(xiě)密碼(共兩套,每套讀寫(xiě)密碼各三個(gè)字節(jié)),錯(cuò)誤計(jì)數(shù)4/8次。
②高安全性。對(duì)于用戶民應(yīng)用區(qū),具有標(biāo)準(zhǔn)訪問(wèn)、認(rèn)證訪問(wèn)和加密驗(yàn)證訪問(wèn)兩種方式,同時(shí)提供多組密碼集供讀寫(xiě)訪問(wèn)使用。每個(gè)應(yīng)用分區(qū)在配置區(qū)中都有相應(yīng)的寄存器控制其安全等級(jí)和訪問(wèn)方式。
③高可靠性。提供多達(dá)10萬(wàn)次擦寫(xiě)次數(shù)和10年的數(shù)據(jù)保存期。
多種封裝。除8腳的PDIP、SOIC封裝外,還具有智能卡片封裝,可廣泛應(yīng)用于IC卡系統(tǒng)。
⑤高速度。AT88SC153時(shí)鐘頻率為1MHz,支持頁(yè)寫(xiě)模式(8字節(jié)/頁(yè)),如果以頁(yè)寫(xiě)方式訪問(wèn)的話,訪問(wèn)時(shí)間為10ms(最大)/頁(yè)。通訊協(xié)議符合ISO/IEC7816-3同步協(xié)議。
存儲(chǔ)結(jié)構(gòu)如下圖:


2 工作原理
2.1 配置區(qū)結(jié)構(gòu)
AT88SC153邏輯加密芯片是一款串行EEPROM,共有192B的用戶應(yīng)用存儲(chǔ)區(qū)和64B的系統(tǒng)配置區(qū),應(yīng)用存儲(chǔ)區(qū)通過(guò)配置可劃分成3個(gè)相同容量的應(yīng)用存儲(chǔ)區(qū)。分別受2套(4個(gè))讀寫(xiě)密碼的控制,錯(cuò)誤計(jì)數(shù)最大8次。這3個(gè)應(yīng)用分區(qū)也可以通過(guò)配置使用相同的密碼和安全等級(jí)可自由合并使用。AT88SC153 配置區(qū)的結(jié)構(gòu)如圖3所示。
Answer-to-Reset:復(fù)位應(yīng)答,由ATMEL定義,不可修改,每次發(fā)送復(fù)位信號(hào)后由SC153自動(dòng)送到SDA上,
                                復(fù)位應(yīng)答為--2C AA 55 A1。
Lot History Code:歷史代碼,由ATMEL定義,不可修改。
Fab Code:廠商代碼,由ATMEL定義,不可修改。
CMC:卡商代碼,由卡商定義,不可修改。
AR0-2:設(shè)置應(yīng)用區(qū)0-2的訪問(wèn)權(quán)限
MTZ:測(cè)試區(qū),在任何情況下都可以進(jìn)行讀寫(xiě)操作。
DCR: 設(shè)備寄存器,在這里可以擴(kuò)展密碼校驗(yàn)錯(cuò)誤次數(shù)和認(rèn)證錯(cuò)誤次數(shù)為8次(默認(rèn)都是4次)。
Issuer Code(IC):發(fā)行號(hào)。個(gè)人化前定義。
AAC:認(rèn)證錯(cuò)誤計(jì)數(shù)器。初始值為8,每次認(rèn)證錯(cuò)誤后減2,共四次 ,設(shè)置DCR可擴(kuò)展為8次。同時(shí)也可以為NC的一部分,注意如果修 改了AAC,會(huì)影響下一次認(rèn)證的Ci值。
NC:識(shí)別碼,通常用作卡的唯一標(biāo)識(shí)—卡號(hào)。個(gè)人化前定義。
Ci:密文,個(gè)人化前可寫(xiě)一隨機(jī)數(shù),認(rèn)證卡時(shí)使用,每次認(rèn)證會(huì)被自動(dòng)改寫(xiě)。
Gc:密鑰,64位的保密種子,由Nc通過(guò)F1公式推算出來(lái),在個(gè)人化前,寫(xiě)入卡中。
PAC: 分區(qū)密碼錯(cuò)誤計(jì)數(shù)器。初始值為8,每次認(rèn)證錯(cuò)誤后減2,共四次 ,設(shè)置DCR可擴(kuò)展為8次。
WP0,WP1,RP0,RP1:2套讀寫(xiě)密碼集,每個(gè)分區(qū)可以分別指向唯一的密碼集,也可以指向同一套密碼集,這樣就可以只核對(duì)一套密碼而進(jìn)入多個(gè)分區(qū),使多個(gè)分區(qū)合成為一個(gè)大的分區(qū)。默認(rèn)WP1、RP1為讀寫(xiě)密碼。寫(xiě)密碼1(WP1)還作為傳輸密碼(SC)。另外,如果需要修改讀寫(xiě)密碼時(shí),也必須核對(duì)同一套密碼集的寫(xiě)密碼 。
SC:傳輸密碼。初始值由ATMEL定認(rèn)。發(fā)到每個(gè)卡廠都不同。可以修改,在個(gè)人化前一直使用SC,個(gè)人化后其它密碼才會(huì)被用到
2.2 芯片使用
AT88SC153芯片為用戶訪問(wèn)應(yīng)用存儲(chǔ)區(qū)提供了標(biāo)準(zhǔn)、認(rèn)證和加密三種方式,既方便用戶根據(jù)實(shí)際情況靈活選擇加密方式,又提高了系統(tǒng)的安全性。在標(biāo)準(zhǔn)訪問(wèn)方式下,對(duì)用戶應(yīng)用區(qū)的讀寫(xiě)訪問(wèn)無(wú)任何限制;在認(rèn)證方式下,用戶必須經(jīng)過(guò)認(rèn)證,同時(shí)要通過(guò)不同用戶區(qū)所設(shè)定的密碼檢驗(yàn)才能正確訪問(wèn)用戶數(shù)據(jù)區(qū),在這種方式下,總線上傳輸?shù)臄?shù)據(jù)是明文:加密驗(yàn)證模式下訪問(wèn)用戶時(shí)用戶必須首先經(jīng)過(guò)認(rèn)證,然后利用認(rèn)證成功后配置區(qū)特定寄存器中更新的數(shù)據(jù)作為密鑰再次進(jìn)行認(rèn)證,最后還要通過(guò)不同用戶區(qū)設(shè)定的密碼檢驗(yàn)后才可訪問(wèn)用戶區(qū),這種方式下總線下傳輸?shù)臄?shù)據(jù)是經(jīng)過(guò)加密的密文。
總體來(lái)說(shuō),對(duì)芯片的使用可分成初始化、認(rèn)證(加密)和訪問(wèn)三個(gè)步驟。
(1)初始化
初始化的過(guò)程,用戶系統(tǒng)的MCU要將生產(chǎn)廠商信息、分區(qū)設(shè)備、安全等級(jí)和密碼以及加密認(rèn)證所需參數(shù)等寫(xiě)入芯片的配置區(qū),最后還要進(jìn)行寫(xiě)熔斷的處理。在實(shí)現(xiàn)的過(guò)程中,應(yīng)重點(diǎn)考慮如何對(duì)AT88SC153 的64B配置區(qū)進(jìn)行合理的配置和使用,對(duì)訪問(wèn)用戶分區(qū)的權(quán)限進(jìn)行有效的控制。
在對(duì)配置區(qū)進(jìn)行合理配置的同時(shí),要將從證所需的三組重要的參數(shù)寫(xiě)入到配置區(qū)相應(yīng)的寄存器中。這三組數(shù)分別是:Ci(Cryptograms)認(rèn)證所需的隨機(jī)數(shù),Nc(Identification Number)芯片序列號(hào),Gc(Secret Seeds)由用戶自定義的F1算法得出的秘密種子。
初始化時(shí),首先要向第七組寫(xiě)密碼區(qū)中寫(xiě)入配置區(qū)的寫(xiě)入密碼。只有正確寫(xiě)入該密碼后用戶才可以獲得對(duì)整個(gè)配置區(qū)的寫(xiě)入權(quán)力,這個(gè)密碼由芯片供應(yīng)商提供。正確寫(xiě)入密碼后就可以根據(jù)要求對(duì)芯片的各個(gè)寄存器進(jìn)行配置,最后還要根據(jù)用戶需要,按照SEC、PER、CMA、FAB的順序依次向熔斷位寫(xiě)入0進(jìn)行熔斷處理。注意,芯片一旦被寫(xiě)熔斷后就無(wú)法再對(duì)配置區(qū)的信息進(jìn)行更改。
(2)認(rèn)證
整個(gè)認(rèn)證過(guò)程是一個(gè)雙向認(rèn)證的過(guò)程,流程如圖4所示。
用戶系統(tǒng)的MCU首先從芯片中讀出Nc和Ci,根據(jù)自定義的F1(Nc,Ks)算法算出Gc,同時(shí)利用芯片內(nèi)部的F2(Gc,Ci,Q0)算法算出Q1,并向芯片發(fā)送初始化認(rèn)證參數(shù)Q1和Q0,其中,Q0是CPU方給出的隨機(jī)數(shù)。芯片內(nèi)部則利用自己的F2邏輯算出Ci+1=F2(Gc,Ci,Q0),同時(shí)得出Q2=F2(Gc,Q1)。芯片收到校驗(yàn)認(rèn)證命令后,判斷是否Ci+1=Q1,如是,則有Ci+2=F2(Gc,Ci+1),且用Ci+2更新Ci,芯片中的認(rèn)證通過(guò);同時(shí)更新芯片內(nèi)部同組的SK(Session Encryption Key)的值。CPU方接收芯片中更新的Ci后,判斷是否等于Q2,如果通過(guò),則認(rèn)證全部通過(guò)。
上面說(shuō)的過(guò)程是認(rèn)證模式,如果想進(jìn)入加密難證模式的話,需要再次利用認(rèn)證成功時(shí)返回更新的SK值,用它取代Gc,Ci再作為參數(shù);利用F2函數(shù),芯片和MCU方再計(jì)算一次并比較,判斷相等后才進(jìn)入加密認(rèn)證模式。
上面提到的F2算法,是芯片內(nèi)部的控制邏輯利用Gc、Ci、Q0三個(gè)參數(shù)初始化的一個(gè)DES算法的變種。這個(gè)算法是所有加密解密、完整性認(rèn)證與信息認(rèn)證的關(guān)鍵。

    (3)訪問(wèn)用戶區(qū)
認(rèn)證(加密)成功后就可以發(fā)送命令選擇用戶分區(qū)進(jìn)行數(shù)據(jù)的讀寫(xiě)訪問(wèn)了,如果各個(gè)分區(qū)還有讀或?qū)懙拿艽a限制,則還需要向訪問(wèn) 的分區(qū)寫(xiě)入密碼進(jìn)行校驗(yàn),通過(guò)這一步后才能真正完全訪問(wèn)用戶分區(qū)。此時(shí)如果多個(gè)用戶分區(qū)使用相同的安全等級(jí)和密碼,則可以將這多個(gè)用戶區(qū)進(jìn)行合并。需要說(shuō)明的是,認(rèn)證一旦成功后,芯片內(nèi)部的加密機(jī)就立即開(kāi)始啟動(dòng),MCU對(duì)芯片的任何操作都需要根據(jù)芯片加密機(jī)內(nèi)部算法進(jìn)行計(jì)算,以保持與它的同步。特別是向用戶分區(qū)發(fā)送一次寫(xiě)入命令和數(shù)據(jù)后,要緊接著發(fā)送一次MCU方計(jì)算的加密機(jī)結(jié)果,與芯片內(nèi)部加密機(jī)計(jì)算的結(jié)果進(jìn)行校驗(yàn)。芯片只有接收到正確的校驗(yàn)和后才能將數(shù)據(jù)寫(xiě)入到相應(yīng)的地址內(nèi),否則數(shù)據(jù)寫(xiě)不到目的地址,同時(shí)芯片會(huì)返回錯(cuò)誤信息。
3 芯片功能實(shí)現(xiàn)
3.1 軟件實(shí)現(xiàn)
AT88SC153采用兩線的I2C通信方式,其控制時(shí)序比較簡(jiǎn)單,本文不再多述。這里重點(diǎn)講述一下芯片使用工作過(guò)程。

    AT88SC153 的初始化流程如圖6所示。按照寫(xiě)入配置區(qū)密碼、區(qū)分訪問(wèn)方式和讀寫(xiě)密碼、安全限制和認(rèn)證參數(shù)、熔斷處理的順序,以I2C的通信方式向芯片內(nèi)部各寄存器地址發(fā)送命令和數(shù)據(jù)。由于AT88SC153 內(nèi)部有一內(nèi)存測(cè)試區(qū)(memory test)不受安全和密碼限制,因此為保證I2C讀寫(xiě)時(shí)序的正確性,可先向該區(qū)進(jìn)行讀寫(xiě)測(cè)試,然后再向芯片正確寫(xiě)入各種命令。
用戶認(rèn)證流程如圖7所示。無(wú)論系統(tǒng)MCU是采用本身I2C接口,還是使用普通I/O口進(jìn)行I2C模擬,軟件的實(shí)現(xiàn)都遵循如前所述的總線時(shí)序。需要注意的是,在啟動(dòng)I2C START信號(hào)前,SCL一定要首先發(fā)送4個(gè)脈沖來(lái)啟動(dòng)通信,否則發(fā)送的數(shù)據(jù)和命令不會(huì)被芯片正確接收。這一點(diǎn)與普通I2C器件有所不同,一定要得到重視。
訪問(wèn)用戶分區(qū)的流程如圖8所示。可先向用戶分區(qū)寫(xiě)入數(shù)據(jù)后再讀出以進(jìn)行校驗(yàn)。編程時(shí)要注意,認(rèn)證一旦成功,MCU所有對(duì)芯片的操作都要加上對(duì)內(nèi)部加密機(jī)的計(jì)算,對(duì)芯片發(fā)送命令和數(shù)據(jù)后要緊接著發(fā)送校驗(yàn)和,以和芯片內(nèi)部的加密機(jī)進(jìn)行校驗(yàn),校驗(yàn)和不正確芯片會(huì)返回錯(cuò)誤信息。

4 在嵌入式系統(tǒng)中的應(yīng)用
由于AT88SC153 具有使用方便、安全可靠等諸多優(yōu)點(diǎn),使其在工業(yè)控制、消費(fèi)類電子、醫(yī)療器械、計(jì)費(fèi)系統(tǒng)等領(lǐng)域具有廣闊的應(yīng)用前景。筆者已將該芯片用于已開(kāi)發(fā)的選擇性漏電保護(hù)系統(tǒng)中。在這個(gè)系統(tǒng)中的64條供電支路被人為劃分成4個(gè)區(qū),每個(gè)區(qū)設(shè)定獨(dú)立的電壓、電流和相位。針對(duì)不同區(qū)的管理員,還設(shè)定不同的用戶名和密碼,這些參量都被保存在AT88SC153 的用戶使用區(qū)中。我們?cè)诰S護(hù)系統(tǒng)數(shù)據(jù)安全性方面采用的辦法是,在程序中對(duì)這些參量的讀寫(xiě)訪問(wèn)都設(shè)定了密碼,密碼不正確是不能讀寫(xiě)這些參量的,保證了只有真正的供電分區(qū)管理員才可對(duì)相應(yīng)區(qū)的系統(tǒng)參數(shù)進(jìn)行設(shè)定;同時(shí)采用加密驗(yàn)證訪問(wèn)方式,使得總線上傳輸?shù)臄?shù)據(jù)是密文,維護(hù)了系統(tǒng)數(shù)據(jù)的安全性。為防止有些不良用戶利用非法手段獲取系統(tǒng)時(shí)序進(jìn)行反匯編,以此達(dá)到破解系統(tǒng)牟取高額利潤(rùn)的目的,也采用了兩個(gè)辦法來(lái)保證整個(gè)系統(tǒng)的安全性,一是系統(tǒng)中不定期地對(duì)芯片進(jìn)行認(rèn)證訪問(wèn),系統(tǒng)一次認(rèn)證不成功就返回錯(cuò)誤信息;第二是對(duì)非法的認(rèn)證訪問(wèn)數(shù)進(jìn)行錯(cuò)誤限制,錯(cuò)誤一旦超過(guò)8次,芯片鎖死,從而維護(hù)了我們的知識(shí)產(chǎn)權(quán)。
出于安全考慮,每個(gè)芯片要使用唯一的序列號(hào)。筆者還根據(jù)實(shí)際情況設(shè)計(jì)了一款針對(duì)AT88SC153 的簡(jiǎn)單實(shí)用的編程器,利用該編程器可在芯片正式使用之間對(duì)其初始化,將序列號(hào)、認(rèn)證參數(shù)、安全等級(jí)、訪問(wèn)密碼等各種信息寫(xiě)入配置區(qū),使得每一個(gè)被初始化的芯片都可以直接在其它系統(tǒng)中應(yīng)用,大大提高了效率。




回復(fù)

使用道具 舉報(bào)

ID:169393 發(fā)表于 2017-3-9 14:53 | 顯示全部樓層
您好,請(qǐng)問(wèn)AT88SC153的初始傳輸密碼是什么?
回復(fù)

使用道具 舉報(bào)

ID:265194 發(fā)表于 2017-12-22 10:41 | 顯示全部樓層
你好,我最近也在做這個(gè)  ,能提供下底層驅(qū)動(dòng)嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧洲高清转码区一二区 | 男人av在线播放 | 欧美日韩亚洲一区 | 国产a视频| 国产精品国产成人国产三级 | 男人的天堂视频网站 | 日韩欧美成人一区二区三区 | 国产午夜精品一区二区三区四区 | 国产精品入口麻豆www | 日韩精品中文字幕在线 | 亚洲成人精品免费 | 妞干网av| 久草网站 | 99reav| 久久精品视频免费看 | 99久久婷婷国产综合精品电影 | 国产农村妇女毛片精品久久麻豆 | 91久久综合亚洲鲁鲁五月天 | 黄色毛片免费看 | 亚洲美女av网站 | 三级成人片 | 欧美日韩在线一区二区 | 亚洲综合色视频在线观看 | 精品国产欧美一区二区三区成人 | av在线免费观看网址 | 91网站在线看 | 日本免费一区二区三区 | 成人妇女免费播放久久久 | 天天久久 | 精品视频一区二区三区在线观看 | 欧美午夜在线 | 久久机热 | 国产精品国产精品国产专区不卡 | 欧美精品一区二区三区在线播放 | 一本久久a久久精品亚洲 | 亚洲视频欧美视频 | 成人影院免费视频 | 精品1区 | 国产免费福利在线 | 狠狠色综合网站久久久久久久 | 在线视频中文字幕 |