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