加密存儲芯片AT88SC1616的原理和應用技術(shù)

發(fā)布時(shí)間:2010-11-1 21:55    發(fā)布者:eetech
隨著(zhù)嵌入式產(chǎn)品性能的日益提高,嵌入式系統在消費類(lèi)電子、汽車(chē)、工業(yè)控制和通信等行業(yè)迅速普及;但由于嵌入式系統開(kāi)發(fā)成本高、研發(fā)周期長(cháng),使得關(guān)鍵技術(shù)的加密和重要數據的保密問(wèn)題日益突出。如何在這些嵌入式系統中采用低成本、高效率的方法保護自己的科研成果不被非法仿制和剽竊,同時(shí)保存一些關(guān)鍵代碼或數據已成為困擾許研發(fā)工程師的問(wèn)題之一。解決的辦法除了采用法律手段保護知識產(chǎn)權外,另一個(gè)更加簡(jiǎn)單有效的方法就是采用加密存儲芯片進(jìn)行硬件電路的加密和重要數據的認證存儲。  

AT88SCxx系列加密存儲芯片是國際著(zhù)名芯片廠(chǎng)商Atmel公司生產(chǎn)的具有多用途的加密存儲系列芯片。其中AT88SC1616是該系列芯片的典型代表。由于其具有多達2KB的EEPROM,利用I2C串行總線(xiàn)通信,采用認證或加密驗證等方式進(jìn)行數據訪(fǎng)問(wèn),因此以其容量大、體積小、使用方便、安全可靠等特點(diǎn),在產(chǎn)生開(kāi)發(fā)中得到了廣泛的應用。


  
1 器件簡(jiǎn)介  

1.1 引腳說(shuō)明  

如圖1所示,在嵌入式系統中,AT88SC1616常采用SOIC和PDIP兩種典型封裝。由于器件采用I2C串行總線(xiàn)接口,因此引腳數目少,體積小。各引腳功能如下:  

SCL——串行時(shí)鐘輸入腳,用來(lái)控制器件所有的數據輸入相輸出;  
SDA——串行數據輸入/輸出腳;  
VCC——電源電壓,工作電壓為3.0~5.5V;  
GND——地;  
NC——不連接。




1.2 內部結構  

如圖2所示,AT88SC1616加密存儲芯片內部結構主要由電源管理復位模塊、同步傳輸模塊、認證單元、密碼校驗單元、偽隨機數發(fā)生器和EEPROM等幾部分組成。其中電源管理復位模塊主要對芯片進(jìn)行供電、提供復位管理和掉電保護等功能;同步傳輸模塊用于控制在不同通信方式下數據的傳輸;認證和密碼校驗單元實(shí)現在不同安全等級下用戶(hù)用戶(hù)應用區數據訪(fǎng)問(wèn)的安全管理;偽隨機數發(fā)生器用于進(jìn)行內部加密機的加密計算;EEPROM則保存需要加密的重要數據和代碼。  

1.3 主要特點(diǎn)  

①具有256B的配置存儲區,可根據不同需要定義芯片序列、密碼、密鑰、認證種和廠(chǎng)家信息等。  
②提供2KB的用戶(hù)應用存儲區,可根據不同安全等級將該區劃分為16個(gè)獨立的應用分區,最多可以提供給16個(gè)用戶(hù)使用;也可將具有相同安全等級和密碼的多個(gè)應用分區進(jìn)行合并。
③高安全性。對于用戶(hù)民應用區,具有標準訪(fǎng)問(wèn)、認證訪(fǎng)問(wèn)和加密驗證訪(fǎng)問(wèn)兩種方式,同時(shí)提供多組密碼集供讀寫(xiě)訪(fǎng)問(wèn)使用。每個(gè)應用分區在配置區中都有相應的寄存器控制其安全等級和訪(fǎng)問(wèn)方式。  
④高可靠性。提供多達10萬(wàn)次擦寫(xiě)次數和10年的數據保存期。  
⑤多種封裝。除8腳的PDIP、SOIC封裝外,還具有智能卡片封裝,可廣泛應用于IC卡系統。  
⑥高速度。在I2C串行總線(xiàn)方式下,通信速率最高可達1000kb/s。  


   
2 工作原理  

2.1 配置區結構  

AT88SC1616邏輯加密芯片是一款串行EEPROM,共有2KB的用戶(hù)應用存儲區和256B的系統配置區,應用存儲區通過(guò)配置可劃分成16個(gè)相同容量的應用存儲區。分別受8套(16個(gè))讀、寫(xiě)密碼的控制,錯誤計數最大8次。這16個(gè)應用分區也可以通過(guò)配置使用相同的密碼和安全等級可自由合并使用。AT88SC1616配置區的結構如圖3所示。  

①DCR:指定認證次數限制和芯片地址。  

②A(yíng)R0~AR7:確定訪(fǎng)問(wèn)權限,初始化時(shí)定義,指定對應的用戶(hù)應用區訪(fǎng)問(wèn)方式,例如是否需要認證,是否使用密碼,使用哪一套密碼,是否只讀等等。  

③AAC:認證錯誤計數器。  

④PAC:密碼錯誤計數器。




供用戶(hù)使用的16個(gè)應用存儲區都各有2個(gè)24位的密碼,可在配置區對其讀寫(xiě)操作進(jìn)行設置,并且每個(gè)密碼都有計數器限制口令驗證次數。  

2.2 芯片使用  

AT88SC1616芯片為用戶(hù)訪(fǎng)問(wèn)應用存儲區提供了標準、認證和加密三種方式,既方便用戶(hù)根據實(shí)際情況靈活選擇加密方式,又提高了系統的安全性。在標準訪(fǎng)問(wèn)方式下,對用戶(hù)應用區的讀寫(xiě)訪(fǎng)問(wèn)無(wú)任何限制;在認證方式下,用戶(hù)必須經(jīng)過(guò)認證,同時(shí)要通過(guò)不同用戶(hù)區所設定的密碼檢驗才能正確訪(fǎng)問(wèn)用戶(hù)數據區,在這種方式下,總線(xiàn)上傳輸的數據是明文:加密驗證模式下訪(fǎng)問(wèn)用戶(hù)時(shí)用戶(hù)必須首先經(jīng)過(guò)認證,然后利用認證成功后配置區特定寄存器中更新的數據作為密鑰再次進(jìn)行認證,最后還要通過(guò)不同用戶(hù)區設定的密碼檢驗后才可訪(fǎng)問(wèn)用戶(hù)區,這種方式下總線(xiàn)下傳輸的數據是經(jīng)過(guò)加密的密文。  

總體來(lái)說(shuō),對芯片的使用可分成初始化、認證(加密)和訪(fǎng)問(wèn)三個(gè)步驟。  

(1)初始化  

初始化的過(guò)程,用戶(hù)系統的MCU要將生產(chǎn)廠(chǎng)商信息、分區設備、安全等級和密碼以及加密認證所需參數等寫(xiě)入芯片的配置區,最后還要進(jìn)行寫(xiě)熔斷的處理。在實(shí)現的過(guò)程中,應重點(diǎn)考慮如何對AT88SC1616的2K配置區進(jìn)行合理的配置和使用,對訪(fǎng)問(wèn)用戶(hù)分區的權限進(jìn)行有效的控制。  

在對配置區進(jìn)行合理配置的同時(shí),要將從證所需的三組重要的參數寫(xiě)入到配置區相應的寄存器中。這三組數分別是:Ci(Cryptograms)認證所需的隨機數,Nc(Identification Number)芯片序列號,Gc(Secret Seeds)由用戶(hù)自定義的F1算法得出的秘密種子。  

初始化時(shí),首先要向第七組寫(xiě)密碼區中寫(xiě)入配置區的寫(xiě)入密碼。只有正確寫(xiě)入該密碼后用戶(hù)才可以獲得對整個(gè)配置區的寫(xiě)入權力,這個(gè)密碼由芯片供應商提供。正確寫(xiě)入密碼后就可以根據要求對芯片的各個(gè)寄存器進(jìn)行配置,最后還要根據用戶(hù)需要,按照SEC、PER、CMA、FAB的順序依次向熔斷位寫(xiě)入0進(jìn)行熔斷處理。注意,芯片一旦被寫(xiě)熔斷后就無(wú)法再對配置區的信息進(jìn)行更改。  

(2)認證  

整個(gè)認證過(guò)程是一個(gè)雙向認證的過(guò)程,流程如圖4所示。  

用戶(hù)系統的MCU首先從芯片中讀出Nc和Ci,根據自定義的F1(Nc,Ks)算法算出Gc,同時(shí)利用芯片內部的F2(Gc,Ci,Q0)算法算出Q1,并向芯片發(fā)送初始化認證參數Q1和Q0,其中,Q0是CPU方給出的隨機數。芯片內部則利用自己的F2邏輯算出Ci+1=F2(Gc,Ci,Q0),同時(shí)得出Q2=F2(Gc,Q1)。芯片收到校驗認證命令后,判斷是否Ci+1=Q1,如是,則有Ci+2=F2(Gc,Ci+1),且用Ci+2更新Ci,芯片中的認證通過(guò);同時(shí)更新芯片內部同組的SK(Session Encryption Key)的值。CPU方接收芯片中更新的Ci后,判斷是否等于Q2,如果通過(guò),則認證全部通過(guò)。  

上面說(shuō)的過(guò)程是認證模式,如果想進(jìn)入加密難證模式的話(huà),需要再次利用認證成功時(shí)返回更新的SK值,用它取代Gc,Ci再作為參數;利用F2函數,芯片和MCU方再計算一次并比較,判斷相等后才進(jìn)入加密認證模式。  

上面提到的F2算法,是芯片內部的控制邏輯利用Gc、Ci、Q0三個(gè)參數初始化的一個(gè)DES算法的變種。這個(gè)算法是所有加密解密、完整性認證與信息認證的關(guān)鍵。





(3)訪(fǎng)問(wèn)用戶(hù)區  

認證(加密)成功后就可以發(fā)送命令選擇用戶(hù)分區進(jìn)行數據的讀寫(xiě)訪(fǎng)問(wèn)了,如果各個(gè)分區還有讀或寫(xiě)的密碼限制,則還需要向訪(fǎng)問(wèn) 的分區寫(xiě)入密碼進(jìn)行校驗,通過(guò)這一步后才能真正完全訪(fǎng)問(wèn)用戶(hù)分區。此時(shí)如果多個(gè)用戶(hù)分區使用相同的安全等級和密碼,則可以將這多個(gè)用戶(hù)區進(jìn)行合并。需要說(shuō)明的是,認證一旦成功后,芯片內部的加密機就立即開(kāi)始啟動(dòng),MCU對芯片的任何操作都需要根據芯片加密機內部算法進(jìn)行計算,以保持與它的同步。特別是向用戶(hù)分區發(fā)送一次寫(xiě)入命令和數據后,要緊接著(zhù)發(fā)送一次MCU方計算的加密機結果,與芯片內部加密機計算的結果進(jìn)行校驗。芯片只有接收到正確的校驗和后才能將數據寫(xiě)入到相應的地址內,否則數據寫(xiě)不到目的地址,同時(shí)芯片會(huì )返回錯誤信息。  

3 芯片功能實(shí)現  

3.1 硬件電路  

由于A(yíng)T88SC1616加密芯片采用兩線(xiàn)的I2C總線(xiàn)通信方式,因此與微處理器的硬件接口相對容易。圖5是AT88SC1616與AVR單片機Atmegal128相連的硬件接口電路。由于A(yíng)tmegal 128內部帶有I2C接口,因此它可與AT88SC1616直接相連。在其它嵌入式系統中,AT88SC1616與其它微處理器的接口同樣簡(jiǎn)單,只要與相應的I2C接口引腳直接相連即可。如系統的MCU沒(méi)有專(zhuān)用I2C接口引腳,可使用一般的I/O引腳(GPIO)與AT88SC1616的時(shí)鐘線(xiàn)和數據線(xiàn)相連,采用I2C模擬方式就可以正常工作。但無(wú)論是否進(jìn)行I2C的模擬,其總線(xiàn)上一定要保證符合I2C總線(xiàn)要求的上拉電阻,以保證其時(shí)序的正確無(wú)誤。  

3.2 軟件實(shí)現  

AT88SC1616采用兩線(xiàn)的I2C通信方式,其控制時(shí)序比較簡(jiǎn)單,本文不再多述。這里重點(diǎn)講述一下芯片使用工作過(guò)程。

AT88SC1616的初始化流程如圖6所示。按照寫(xiě)入配置區密碼、區分訪(fǎng)問(wèn)方式和讀寫(xiě)密碼、安全限制和認證參數、熔斷處理的順序,以I2C的通信方式向芯片內部各寄存器地址發(fā)送命令和數據。由于A(yíng)T88SC1616內部有一內存測試區(memory test)不受安全和密碼限制,因此為保證I2C讀寫(xiě)時(shí)序的正確性,可先向該區進(jìn)行讀寫(xiě)測試,然后再向芯片正確寫(xiě)入各種命令。  

用戶(hù)認證流程如圖7所示。無(wú)論系統MCU是采用本身I2C接口,還是使用普通I/O口進(jìn)行I2C模擬,軟件的實(shí)現都遵循如前所述的總線(xiàn)時(shí)序。需要注意的是,在啟動(dòng)I2C START信號前,SCL一定要首先發(fā)送4個(gè)脈沖來(lái)啟動(dòng)通信,否則發(fā)送的數據和命令不會(huì )被芯片正確接收。這一點(diǎn)與普通I2C器件有所不同,一定要得到重視。  

訪(fǎng)問(wèn)用戶(hù)分區的流程如圖8所示?上认蛴脩(hù)分區寫(xiě)入數據后再讀出以進(jìn)行校驗。編程時(shí)要注意,認證一旦成功,MCU所有對芯片的操作都要加上對內部加密機的計算,對芯片發(fā)送命令和數據后要緊接著(zhù)發(fā)送校驗和,以和芯片內部的加密機進(jìn)行校驗,校驗和不正確芯片會(huì )返回錯誤信息。



4 在嵌入式系統中的應用  

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

出于安全考慮,每個(gè)芯片要使用唯一的序列號。筆者還根據實(shí)際情況設計了一款針對AT88SC1616的簡(jiǎn)單實(shí)用的編程器,利用該編程器可在芯片正式使用之間對其初始化,將序列號、認證參數、安全等級、訪(fǎng)問(wèn)密碼等各種信息寫(xiě)入配置區,使得每一個(gè)被初始化的芯片都可以直接在其它系統中應用,大大提高了效率。  

結語(yǔ)  

本文詳細介紹了AT88SC1616的芯片結構、特點(diǎn)、數據存儲訪(fǎng)問(wèn)原理,并以Atmega 128與其接口為例,給出了實(shí)用的硬件接口電路與軟件實(shí)現流程。由于A(yíng)T88SC1616具有較大的存儲空間、嚴格的安全性能和簡(jiǎn)單可靠性的高速數據傳輸方式,因此極大地提高了嵌入式系統的數據安全性和適用性。我們已將此芯片成功應用于選擇性漏電保護的軟硬件加密系統中。事實(shí)證明利用該芯片既提高了系統的防破解性,又保證了重要數據的安全性。另外,我們還根據其特點(diǎn)設計了可用于初始化該芯片的編程器,為大批量生產(chǎn)提供了硬件條件,獲得了良好的效果。AT88SC1616良好的安全性使得它還可更廣泛地應用于遠程抄表、醫療器械、機頂盒、汽車(chē)、通信、消費類(lèi)家電等嵌入式系統。本文所介紹的方法對這些應用都有很好的參考價(jià)值。
本文地址:http://selenalain.com/thread-35783-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
agon 發(fā)表于 2011-1-6 16:09:21
AT88SC系列開(kāi)發(fā)太麻煩,配制復雜,而且要簽協(xié)議,推薦使用AT88SA系列,如AT88SA102S.這方面可聯(lián)系我,MSN:agon2010@live.cn
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页