欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: AT88SC153加密卡的原理和應用 [打印本頁]

作者: benbens    時間: 2015-7-15 02:04
標題: AT88SC153加密卡的原理和應用
    摘要:從加密存儲芯片AT88SC153內部結構出發,詳細介紹該芯片的功能、特點和基本工作原理;給出通用的硬件接口電路和軟件編程實現;討論AT88SC153在單處機與嵌入式系統中的應用。
    關鍵詞:加密存儲芯片 AT88SC153 I2C總線 嵌入式系統
隨著嵌入式產品性能的日益提高,嵌入式系統在消費類電子、汽車、工業控制和通信等行業迅速普及;但由于嵌入式系統開發成本高、研發周期長,使得關鍵技術的加密和重要數據的保密問題日益突出。如何在這些嵌入式系統中采用低成本、高效率的方法保護自己的科研成果不被非法仿制和剽竊,同時保存一些關鍵代碼或數據已成為困擾許研發工程師的問題之一。解決的辦法除了采用法律手段保護知識產權外,另一個更加簡單有效的方法就是采用加密存儲芯片進行硬件電路的加密和重要數據的認證存儲。
AT88SCxx系列加密存儲芯片是國際著名芯片廠商Atmel公司生產的具有多用途的加密存儲系列芯片。其中AT88SC153是該系列芯片的典型代表。由于其具有多達2KB的EEPROM,利用I2C串行總線通信,采用認證或加密驗證等方式進行數據訪問,因此以其容量大、體積小、使用方便、安全可靠等特點,在產生開發中得到了廣泛的應用。
1 器件簡介
1.1 引腳說明

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

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

1.2 內部結構
圖2


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


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

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

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

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





作者: llz2046    時間: 2017-3-9 14:53
您好,請問AT88SC153的初始傳輸密碼是什么?
作者: wei556675    時間: 2017-12-22 10:41
你好,我最近也在做這個  ,能提供下底層驅動嗎




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1