深入解析Atmel AT88SC118 CryptoCompanion芯片:安全與性能的完美融合
在電子設(shè)計領(lǐng)域,安全與性能始終是工程師們追求的兩大核心目標(biāo)。Atmel AT88SC118 CryptoCompanion芯片,作為一款專為CryptoRF和CryptoMemory產(chǎn)品設(shè)計的芯片,憑借其卓越的安全特性和出色的性能表現(xiàn),成為了眾多工程師的首選。今天,我們就來深入解析這款芯片,探索其背后的技術(shù)奧秘。
一、產(chǎn)品概述
Atmel AT88SC118是與CryptoRF(CRF)和CryptoMemory(CM)芯片配套使用的伴侶芯片,在文檔中有時也被稱為CMC或CryptoMemory Companion芯片。它廣泛采用了SHA - 1哈希算法,能夠安全地實現(xiàn)主機算法、存儲主機密鑰,并驗證主機固件摘要,為系統(tǒng)提供了強大的安全保障。
1.1 一般操作
CRF芯片包含一些秘密信息,主機系統(tǒng)需要知道或推導(dǎo)出這些信息才能與CRF建立信任鏈接并進行通信。AT88SC118以隱蔽的方式將這些秘密存儲在非易失性存儲器中,并具備執(zhí)行CRF數(shù)據(jù)手冊中指定的認證、密碼和加密/解密功能的所有電路,從而確保秘密信息不會被泄露。
具體來說,每個CRF芯片都有一個序列號(ID)和認證密鑰 (G{1}) 存儲在EEPROM中,ID可自由讀取,而 (G{1}) 無法讀取且每個標(biāo)簽都是唯一的。AT88SC118的EEPROM中包含一組公共密鑰 ((F{n})) ,它將 (F{n}) 與ID和 (K{ID}) 結(jié)合計算出一個預(yù)期與CRF芯片中的 (G) 值相匹配的值,即 (G = SHA - 1(F{n}, ID, K_{ID})) 。此外,主機系統(tǒng)還可以通過生成一個數(shù)字 ((KID)) 來進一步多樣化 (G) 值,為系統(tǒng)提供了更高的安全性。
1.2 CryptoCompanion的優(yōu)勢
與將算法和密鑰存儲在標(biāo)準(zhǔn)閃存系統(tǒng)內(nèi)存中相比,使用AT88SC118芯片具有諸多優(yōu)勢:
- 保護核心密鑰:將用于與CRF進行認證和通信的核心密鑰存儲在EEPROM中,避免了密鑰的泄露。
- 靈活的系統(tǒng)實現(xiàn):支持多個密鑰和策略,適用于系統(tǒng)中不同CRF位置的需求,同時提供多種制造商設(shè)置選項。
- 硬件加密引擎:采用硬件加密引擎,避免了通過反編譯系統(tǒng)操作代碼來披露算法的風(fēng)險。
- 強大的安全保護:通過全面的硬件安全實現(xiàn),使攻擊者難以獲取存儲在芯片中的密鑰。
- 隨機數(shù)生成:具備高質(zhì)量的隨機數(shù)生成器,避免了所有加密操作中的意外重放問題。
- 易于使用:無需大量編程,也不需要了解安全算法或協(xié)議,能夠快速推向市場。
1.3 CryptoCompanion的安全特性
AT88SC118芯片具備一系列強大的安全特性,包括:
- 內(nèi)部EEPROM加密:采用強內(nèi)部EEPROM加密方案,確保數(shù)據(jù)的安全性。
- 動態(tài)加密SRAM數(shù)據(jù):對內(nèi)部SRAM數(shù)據(jù)進行動態(tài)加密,防止數(shù)據(jù)被竊取。
- 可編程上電懲罰:通過設(shè)置可編程上電懲罰,增加攻擊者的攻擊難度。
- 升級攻擊懲罰:對攻擊行為進行升級懲罰,進一步提高安全性。
- 認證超時:設(shè)置認證超時機制,防止長時間的認證過程被攻擊。
- 防撕裂計數(shù)器和RNG種子:采用防撕裂計數(shù)器和RNG種子,增強系統(tǒng)的安全性。
- 安全個性化:支持安全個性化設(shè)置,滿足不同用戶的需求。
- 命令使用限制:限制命令的使用,防止窮舉攻擊。
- 內(nèi)部時鐘方案:采用高安全內(nèi)部時鐘方案,確保系統(tǒng)的穩(wěn)定性。
- 電壓檢測和數(shù)據(jù)完整性驗證:具備過壓和欠壓檢測以及內(nèi)部數(shù)據(jù)完整性驗證功能,保障系統(tǒng)的正常運行。
1.4 封裝、引腳和I/O
1.4.1 引腳描述
AT88SC118的引腳包括電源和接地引腳(VCC和GND)、2 - 線接口數(shù)據(jù)引腳(SDA)、時鐘引腳(SCL)、復(fù)位引腳(RST)和電源管理引腳(PDN)。電源電壓范圍為2.7 - 3.6V,供電電流小于5mA。在使用時,需要注意電源的上電和下電要求,以及引腳的電氣特性。
1.4.2 封裝
AT88SC118采用8引腳SOIC封裝,引腳排列清晰,方便工程師進行設(shè)計和布局。
1.4.3 連接圖
芯片通過2 - 線接口(TWI)與系統(tǒng)進行通信,連接圖展示了芯片與微處理器之間的連接方式,為工程師提供了清晰的設(shè)計參考。
1.4.4 環(huán)境要求
AT88SC118能夠在工業(yè)溫度范圍(- 40°C至85°C)內(nèi)正常工作,ESD防護等級為2KV(人體模型),具有較高的可靠性。
1.4.5 TWI輸入/輸出操作
AT88SC118通過2 - 線接口(TWI)與系統(tǒng)進行通信,作為從設(shè)備,不支持時鐘拉伸。系統(tǒng)處理器需要正確格式化命令并處理芯片的輸出。在通信過程中,需要注意設(shè)備地址、命令、數(shù)據(jù)大小等參數(shù)的設(shè)置,以及命令的輸入和輸出格式。
1.5 內(nèi)存架構(gòu)
AT88SC118的4Kb(512字節(jié))EEPROM被組織成多個部分,每個部分具有不同的訪問限制。
- 內(nèi)存鎖定:在出廠時,某些位置由Atmel預(yù)加載數(shù)據(jù),其他數(shù)據(jù)位置未知。系統(tǒng)制造商需要在初始化完成后執(zhí)行Lock命令,限制對內(nèi)存的訪問。
- 安全個性化:用戶可以選擇購買Lock[1:0]為10的芯片版本,在個性化過程中,Atmel會在晶圓測試時將傳輸密鑰寫入EEPROM中的EncKey位置,確保秘密信息的安全。
- 制造ID(MfrID):包含15字節(jié)的唯一晶圓制造信息,可作為芯片的序列號,由Atmel在晶圓測試時寫入,用戶無法修改。
- 密碼:P0 - P15是用于啟用CRF中各種區(qū)域讀寫的密碼,密碼配置字節(jié)包含加密、連接等屬性,鎖定后無法直接讀取或?qū)懭搿?/li>
- 非易失性計數(shù)器:芯片實現(xiàn)了四個計數(shù)器,每個計數(shù)器最大可遞增到640萬,無法重置或遞減,可通過ReadCounter和IncrementCounter命令進行讀取和遞增操作。
- RNGSeed:EEPROM中的RNGSeed位置在Atmel制造時用外部高質(zhì)量硬件隨機數(shù)生成器生成的16字節(jié)隨機數(shù)初始化,可在芯片解鎖時讀取和寫入。
- 只讀內(nèi)存和讀寫內(nèi)存:鎖定后,只讀內(nèi)存區(qū)域可讀取但不能寫入,讀寫內(nèi)存區(qū)域具有一般的讀寫權(quán)限。
- 秘密信息:F0 - F15是用于生成 (G_{C}) 值的秘密信息,鎖定后無法直接讀取或?qū)懭搿?/li>
1.6 安全特性
1.6.1 環(huán)境檢測器
芯片包含過壓和欠壓檢測器以及POR檢測器,可防止未知的啟動狀態(tài)。內(nèi)部生成的操作時鐘獨立于SDA和SCL,并過濾引腳的毛刺,同時在內(nèi)存塊上覆蓋金屬混淆圖案,提高安全性。
1.6.2 復(fù)位保護和電源延遲
EEPROM中的復(fù)位保護寄存器(RstProt)在電源施加前通常為1,復(fù)位時芯片將其寫入0并啟動計數(shù)器。如果在復(fù)位或上電時保護寄存器已經(jīng)為0,芯片將進入電源延遲狀態(tài),在此期間不接受或確認任何命令。
1.6.3 復(fù)位鎖定
某些條件會導(dǎo)致芯片鎖定,直到復(fù)位引腳被斷言或電源循環(huán)。例如,在Startup/ChallengeResponse未運行之前嘗試執(zhí)行其他命令,或ChallengeResponse運行失敗等情況。
1.6.4 安全延遲
當(dāng)某些操作未成功完成時,芯片將進入臨時安全延遲狀態(tài),在此期間不接受任何命令。延遲時間會根據(jù)失敗次數(shù)加倍,最大延遲為32s。
1.6.5 命令順序
芯片在解鎖和鎖定狀態(tài)下的命令執(zhí)行順序有所不同。解鎖時,沒有安全延遲,部分命令可直接執(zhí)行;鎖定時,需要按照特定的順序執(zhí)行命令,如Startup、ChallengeResponse等,否則芯片將鎖定。
二、CMC ? CRF認證
AT88SC118支持CRF芯片的相互認證序列,確保共享密鑰不會在芯片總線上暴露。認證和加密序列包括多個步驟,涉及到密碼、隨機數(shù)、挑戰(zhàn)和響應(yīng)等參數(shù)的交換和驗證。
三、命令描述
3.1 VerifyFlash命令
系統(tǒng)向芯片發(fā)送基于外部非易失性程序存儲狀態(tài)的信息,芯片根據(jù)Mode位的不同設(shè)置,執(zhí)行不同的驗證操作。如果驗證失敗,芯片將設(shè)置狀態(tài)寄存器為RstLocked錯誤代碼,并在下次復(fù)位或電源循環(huán)之前不接受任何命令。
3.2 Startup命令
芯片重置所有內(nèi)部狀態(tài),生成20字節(jié)的隨機數(shù)作為挑戰(zhàn)發(fā)送給系統(tǒng),并計算對系統(tǒng)挑戰(zhàn)的響應(yīng)。該命令每個復(fù)位或電源循環(huán)只能運行一次。
3.3 ChallengeResponse命令
系統(tǒng)向芯片發(fā)送20字節(jié)的挑戰(zhàn)響應(yīng),芯片計算SHA1(SysChallenge, SystemSecret)并與響應(yīng)進行比較。如果不正確,芯片將鎖定直到下次復(fù)位或電源移除。
3.4 Auth_1命令
將CRF的可訪問信息加載到芯片中,計算 (C^{A}) 和SA的值,為CRF芯片的認證序列做準(zhǔn)備。執(zhí)行該命令后,下一個命令必須是Auth_2。
3.5 Auth_2命令
接收CRF認證命令的輸出,驗證CRF芯片是否知道G。如果輸入的 (Ci^{A}) 值不正確,芯片將鎖定一段時間。
3.6 EncryptPassword命令
使用當(dāng)前加密引擎狀態(tài)計算要發(fā)送給CRF的加密密碼,可在認證序列完成后隨時運行。
3.7 Encryption_1命令
生成用于后續(xù)數(shù)據(jù)加密的中間值,類似于Auth_1命令,但使用S代替G,輸入C替換為芯片寄存器C,并生成新的隨機數(shù) (Q^{E}) 。執(zhí)行該命令后,下一個命令必須是Encryption_2。
3.8 Encryption_2命令
接收CRF的加密響應(yīng),并與Encryption_1計算的值進行比較。如果輸入的 (Ci^{E}) 值不正確,芯片將鎖定并設(shè)置錯誤代碼為AuthFail。
3.9 GrindBytes命令
將可變數(shù)量的字節(jié)通過芯片的加密引擎,并將輸出返回給系統(tǒng),用于保持芯片與CRF芯片的加密引擎同步,以及數(shù)據(jù)的加密和解密。
3.10 GetRandom命令
芯片使用內(nèi)部高質(zhì)量隨機數(shù)生成器生成20字節(jié)的隨機數(shù),可用于系統(tǒng)的各種操作。
3.11 IncrementCounter命令
將指定計數(shù)器的值加1。
3.12 ReadCounter命令
返回指定計數(shù)器的32位當(dāng)前狀態(tài)。
3.13 WriteMemory命令
將數(shù)據(jù)寫入指定地址及其后續(xù)的讀寫內(nèi)存空間,鎖定前后的寫入范圍有所不同。
3.14 WriteMemoryEncrypted命令
使用加密算法將16字節(jié)的數(shù)據(jù)寫入EEPROM,鎖定后無法運行該命令。
3.15 ReadMemory命令
讀取指定地址及其后續(xù)的EEPROM內(nèi)容,鎖定后只能讀取只讀和讀寫內(nèi)存空間。
3.16 ReadMemoryDigest命令
讀取指定32字節(jié)的EEPROM塊,計算其SHA - 1摘要并返回給用戶,用于驗證芯片個性化是否正確。
3.17 ReadManufacturingID命令
讀取EEPROM中的ManufacturingID和Lock Byte,無論芯片是否鎖定都可以執(zhí)行。
3.18 Lock命令
鎖定芯片的當(dāng)前內(nèi)存值,鎖定后無法解鎖。
3.19 Clear命令
清除當(dāng)前認證狀態(tài),清空C和S寄存器,為新的認證做準(zhǔn)備。
3.20 Crunch命令
將8字節(jié)的隨機數(shù)通過芯片的crunch引擎,并將輸出返回給系統(tǒng),用于確保芯片與實際的CRF芯片通信。
四、命令執(zhí)行時間
文檔中列出了各種命令的標(biāo)稱執(zhí)行時間,但實際執(zhí)行時間會因內(nèi)部振蕩器的變化而有所不同。設(shè)計時應(yīng)使用標(biāo)準(zhǔn)握手機制,而不是依賴具體的執(zhí)行時間。
五、AC和DC特性
詳細介紹了芯片的直流和交流特性,包括電源電壓、電流、輸入輸出電壓和電流等參數(shù),為工程師在電路設(shè)計時提供了重要的參考依據(jù)。
六、運輸密鑰
某些操作模式需要使用密鑰進行自定義配置,對于生產(chǎn)訂單,Atmel會在工廠編程客戶提供的密鑰值;對于通用和樣品訂單,提供了一個運輸密鑰。
七、訂購代碼
提供了不同訂購代碼的詳細信息,包括內(nèi)存鎖定狀態(tài)、封裝、電壓范圍和溫度范圍等,方便工程師根據(jù)需求選擇合適的芯片。
八、封裝圖紙
展示了8S1 - 8引腳JEDEC SOIC封裝的圖紙,包括尺寸、公差等信息,為芯片的布局和焊接提供了參考。
九、命令流程圖
通過命令輸入、輸出和狀態(tài)的流程圖,清晰地展示了芯片與主機之間的通信過程,幫助工程師更好地理解和實現(xiàn)芯片的功能。
十、總結(jié)
Atmel AT88SC118 CryptoCompanion芯片以其強大的安全特性、靈活的系統(tǒng)實現(xiàn)和豐富的功能,為電子工程師在設(shè)計安全系統(tǒng)時提供了一個優(yōu)秀的選擇。在實際應(yīng)用中,工程師需要深入了解芯片的各項特性和命令,合理設(shè)計電路和程序,以確保系統(tǒng)的安全和穩(wěn)定運行。你在使用這款芯片的過程中遇到過哪些問題呢?歡迎在評論區(qū)分享你的經(jīng)驗和見解。
-
安全特性
+關(guān)注
關(guān)注
0文章
6瀏覽量
4847
發(fā)布評論請先 登錄
深入解析Atmel AT88SC118 CryptoCompanion芯片:安全與性能的完美融合
評論