日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]摘要:當前電子系統(tǒng)的設計成本越來越高,PCB抄板卻變得容易,F(xiàn)lash中的程序也容易被拷貝出來,整個電子產(chǎn)品系統(tǒng)被克隆的幾率變得越來越大。針對這種現(xiàn)象,設計了一種基于Atmel公司ATSHA204的嵌入式密鑰認證系統(tǒng)。首先

摘要:當前電子系統(tǒng)的設計成本越來越高,PCB抄板卻變得容易,F(xiàn)lash中的程序也容易被拷貝出來,整個電子產(chǎn)品系統(tǒng)被克隆的幾率變得越來越大。針對這種現(xiàn)象,設計了一種基于Atmel公司ATSHA204的嵌入式密鑰認證系統(tǒng)。首先對ATSHA204進行簡單的介紹,然后闡述了其中的關鍵算法SHA-256,并進行了軟件測試,最后使用ATmega128平臺對SD卡進行讀取,驗證了整個認證系統(tǒng)。

引言

現(xiàn)代嵌入式軟件系統(tǒng)越來越復雜,開發(fā)成本很高,且都是基于控制器外加Flash存儲芯片的設計方案,上電即從存儲芯片讀取程序運行,放在Flash中的程序容易被拷貝,PCB電路板也很容易被復制。為了更好地保護好產(chǎn)品免遭克隆,保護程序設計者的知識產(chǎn)權免受侵害,有必要在系統(tǒng)中使用密鑰認證技術。

目前在芯片加密方面主要有使用專用密鑰認證芯片,如Atmel AT88系列;其次就是使用不可破解的芯片,如EPLDEPM7128、Actel公司的CPLD;或使用MASK(掩膜)IC,一般來說MASK IC要比可編程芯片難破解。

本文介紹的ATSHA204是Atmel公司推出的一款專用加密芯片,采用SHA-256公鑰算法,具有體積小、功耗低、安全性高等一系列特點,價格也較低,使用范圍廣泛。

1 ATSHA204加密芯片簡介

1.1 主要特性

ATSHA204包含一個可以用來存儲密鑰數(shù)據(jù)和關鍵字的EEPROM陣列,不同陣列區(qū)域的訪問方式不同,通過合理配置,可以在實現(xiàn)認證的同時防止密鑰被讀取。該芯片能有防范各種物理攻擊的機制,能阻止在主機和芯片間傳輸數(shù)據(jù)時受到的邏輯攻擊。每個ATSHA204出廠時都具有一個唯一的9字節(jié)的序列號,兼容標準I2C總線通信時序,也可通過單線通信的方式。

1.2 認證流程

為了簡化編程,ATSHA204支持標準的摘要一答應協(xié)議,主機發(fā)送一個256位的摘要信息(challenage)到ATSHA204芯片,芯片將摘要信息和存儲在芯片內(nèi)的秘鑰一起通過哈希算法計算出一個響應,然后發(fā)回到主機。主機只發(fā)送摘要信息到設備上面,避免了通過總線時序觀察到秘鑰數(shù)據(jù)的可能性。主機控制器也通過相關的公鑰算法計算出響應,與設備發(fā)送回來的響應對比,實現(xiàn)認證。

1.3 芯片組成

ATSHA204加密芯片內(nèi)部包含Static RAM和EEPRO,RAM主要用來存儲輸入命令以及輸出結(jié)果,EEPROM總大小為4.5 Kb,包含數(shù)據(jù)區(qū)、配置區(qū)以及OTP(一次性編程)區(qū)域。

數(shù)據(jù)(data)區(qū):數(shù)據(jù)區(qū)的總大小是512 Kb,包含16個通用的容量為32字節(jié)的數(shù)據(jù)槽。這些數(shù)據(jù)槽可用來存儲秘鑰、校準數(shù)據(jù)以及型號信息。每個數(shù)據(jù)槽可通過配置區(qū)配置成只讀、可讀寫、不可訪問三種方式。

配置(config)區(qū):配置區(qū)的大小為88字節(jié),配置區(qū)包含芯片的序列號、ID信息以及每個數(shù)據(jù)槽的訪問權限信息。

一次性編程(OTP)區(qū):大小為64字節(jié),在鎖定OTP區(qū)域之前,可以通過寫命令對OTP區(qū)域進行寫入操作。

2 ATSHA204加密芯片配置方法

ATSHA204有兩種與主機通信的方式,可以通過UART或者I2C總線接口進行通信,本沒訃采用帶有I2C總線接口的芯片。如果主機I/O口在45~85 ms的時間內(nèi)沒有發(fā)出時序,則ATSHA204芯片會進入休眠狀態(tài),因此在使用前都應當對芯片進行喚醒操作。

①配置config區(qū)域。config區(qū)域的配置是整個芯片配置的核心,分為對數(shù)據(jù)槽的配置和對OTP區(qū)域的配置。ATSHA204配置區(qū)包含對16個數(shù)據(jù)槽(data slot)的配置,配置的主要目的是對16個數(shù)據(jù)槽的訪問進行限制,每個數(shù)據(jù)槽的配置項為16位,控制著對應的數(shù)據(jù)槽的訪問和使用,本設計中對16個數(shù)據(jù)槽統(tǒng)一配置如表1所列,每個數(shù)據(jù)項的配置值為0x8080。

OTP區(qū)域配置項對應在config區(qū)域中的第4個block中的第3個字節(jié),有兩種配置模式:0xAA(Read-onlymode),當OTP區(qū)域被鎖定時,禁止寫入;0x00(Legacymode),當OTP區(qū)域被鎖定時,禁止寫入,32字節(jié)讀也被禁止。本設計中為了保密沒計,配置為0x00。

②使用LOCK命令鎖定config區(qū)域。

③配置data區(qū)域。data區(qū)域的配置使用標準的write名字將數(shù)據(jù)寫入其中即可,本設計采用32字節(jié)一次性寫入的方式,每個data slot可以寫入不同的數(shù)據(jù),寫入data slot中的數(shù)據(jù)將參與后續(xù)的MAC運算,因此對于每組寫入data slot中的數(shù)據(jù)必須謹記。

④寫OTP區(qū)域。OTP區(qū)域?qū)儆谝淮涡跃幊虆^(qū)域,一次性寫入之后便不可更改,因此應當謹慎操作,OTP中存放的秘鑰也將作為SHA-256輸入,在使用MAC方式認證時,只需用到OTP區(qū)域中的前11字節(jié),因此只需對前11字節(jié)進行寫入數(shù)據(jù)操作即可。

⑤使用LOCK命令鎖定數(shù)據(jù)區(qū)和OTP區(qū)域。

3 SHA-256認證算法與MAC

3.1 SHA-256算法

SHA(Securc Hash Algorithm,安全散列算法)是美國國家安全局(NSA)設計、美國國家標準與技術研究院(NIST)發(fā)布的一系列密碼散列函數(shù)。SHA-256是NIST發(fā)布了額外的SHA變體,具有256位的信息摘要長度。該算法的簡要處理流程包括以下幾步:消息填充→附加消息長度→初始化緩存→迭代壓縮→得出哈希結(jié)果(digest)。

3.2 MAC

MAC(消息鑒別碼)實現(xiàn)鑒別的原理是,用公開函數(shù)和密鑰產(chǎn)生一個固定長度的值作為認證標識,用這個標識鑒別消息的完整性。使用一個密鑰生成一個固定大小的小數(shù)據(jù)塊,即MAC,并將其加入到消息中,然后傳輸。接收方利用與發(fā)送方共享的密鑰進行鑒別認證。ATSHA204中的MAC命令使用SHA-256哈希算法,以88字節(jié)的信息量作為輸入,并產(chǎn)生一個32字節(jié)的報文摘要,以供認證和鑒別。

4 基于ATmega128平臺的實現(xiàn)

4.1 硬件設計

本設計采用8引腳SOIC封裝的ATSHA204,其中4個引腳是無效的,其他4個引腳對應VCC、GND、一個同步時鐘信號SCL、一個數(shù)據(jù)信號SDA SCL和SDA分別接到ATmege128的SDL和SDA上,使用ATmege128自帶的I2C總線接口與ATSHA204進行通信。接線示意圖如圖1所示。

4.2 軟件設計

系統(tǒng)運行原理圖如圖2所示,在ATmega128平臺上面,通過程序的方式實現(xiàn)SHA-256算法,同時,將challenge(消息摘要)發(fā)送到ATSHA204 ATSHA204計算好之后,發(fā)回response,再在ATmega128平臺上面實現(xiàn)對比,如果匹配成功,則程序繼續(xù)運行,如果失敗,則程序終止運行,從而實現(xiàn)加密的目的。通信方式采用基礎的I2C通信。整個程序包括兩部分:認證程序沒計和SHA-256程序設計。下面分別描述。

4.2.1 MAC(消息認證)程序設計

MAC認證程序使用上面提及的標準的TWI讀寫函數(shù)接口,通過發(fā)送0x00信號使SDA保持一段時間的低電平信號,以wakeup加密芯片、chal lenge數(shù)組中的格式和response數(shù)組的大小詳見datasheet?;竞瘮?shù)流程如下:

4.2.2 ATmega128平臺SHA-256計算程序

SHA-256計算程序需要和ATSHA204芯片上面的哈希算法保持一致,因此需要移植Atmel公司提供的算法,移植之后的主程序如下:

函數(shù)形參中的message指針指向一個88字節(jié)的輸入數(shù)組,len的值本設計中賦值88,digest指針指向返回的response數(shù)組。

4.3 功能測試

為了測試系統(tǒng)的可行性,驗證哈希計算結(jié)果,本設計采用將哈希計算結(jié)果輸出到串口端的方法來測試整個程序在ATmega128平臺上面的運行。在實際系統(tǒng)運行時,為了保證高強度加密,消息摘要應該采用隨機數(shù),但為了測試方便,暫時采用固定不變的摘要信息。

通過串口接收到的主機計算的結(jié)果(digest)和ATSHA204發(fā)送回來的結(jié)果截圖如圖3所示。圖中前32字節(jié)為SHA-256計算所得的digest,后面為device發(fā)回來的count(1字節(jié))+response(32字節(jié))+crc(2字節(jié)),可以看出中間的32字節(jié)和SHA-256計算所得相同,因此便可認證成功。反之,如果芯片中的密鑰數(shù)據(jù)不是用戶定義的。那么返回的response和SHA-256計算的不同,則認證不成功,從而實現(xiàn)了程序加密。

 

5 測試

為了更好地驗證加密系統(tǒng)的可靠性與可行性,在測試認證基本功能之后,將其嵌入到一個實際系統(tǒng)中,對加密性能進行測試。基于已有的ATmega128硬件平臺,選取SD卡文件系統(tǒng)讀取程序作為測試,系統(tǒng)的運行流程如圖4所示。

本系統(tǒng)采用開源的Fatfs文件系統(tǒng)作為SD卡的文件系統(tǒng),SD卡與ATmega128的通信方式采用傳統(tǒng)的SPI方式,SD卡中存放已經(jīng)轉(zhuǎn)換好的單色分辨率為128×64的位圖bin文件,認證部分只作為一個具有返回值的子函數(shù),根據(jù)返回值確定是否成功。

如果成功,則程序繼續(xù)執(zhí)行;如果不成功,延時1 s再次啟動加密芯片進行認證。如果成功,則視同認證成功;如果還是不成功,則通過液晶顯示屏提示不成功,使用assert語句終止程序。

測試中采用置換不同配置的加密芯片來測試加密的可靠性,認證成功和失敗時的情況分別如圖5和圖6所示。

結(jié)語

本文主要介紹了Atmel公司最新加密芯片ATSHA204的原理和使用方法,初步對其中使用到的加密算法SHA-256進行了簡單介紹,最后在ATmega128平臺使用I2C總線接口模塊,利用中斷方式實現(xiàn)SD卡的數(shù)據(jù)發(fā)送與接收,并通過MAC方式實現(xiàn)了認證,并詳細描述了程序流程,解析了部分程序語句。本設計具有很強的實用性,ATSHA204是目前廣泛使用的加密芯片,是Atmel公司加密芯片的典型產(chǎn)品,本設計對于指導實際應用具有參考意義。

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

北京 2025年6月9日 /美通社/ -- 2025年6月5日,國家知識產(chǎn)權局官網(wǎng)發(fā)布了《關于第二十五屆中國專利獎授獎的決定》(國知發(fā)運字〔2025〕20號)。同方威視"一種行李物品CT安檢系統(tǒng)及其探測器裝置...

關鍵字: BSP 探測器 智能機 系統(tǒng)設計

超市水果識別主要依賴人工,計算機視覺成為一種解決方案。然而目前仍面臨部分水果識別精度低、終端設備部署困難、誤識別圖片難處理等挑戰(zhàn)。因此,文章基于深度學習對移動端水果識別進行研究,旨在替代人工識別。首先文章構(gòu)建了包含49種...

關鍵字: 水果識別 數(shù)據(jù)集構(gòu)建 改進注意力機制 ViT 系統(tǒng)設計 模型權重自更新

新3U服務器支持最多18個GPU,搭載雙Intel? Xeon? 6900系列P核處理器 加利福尼亞州圣何塞2024年10月10日 /美通社/ -- Super Micro...

關鍵字: MICRO SUPER 人工智能 系統(tǒng)設計

經(jīng)過優(yōu)化的 EDA 和 IP 全面解決方案為臺積公司 N2 和 A16 工藝帶來強化的計算性能、功耗和工程生產(chǎn)力 摘要: 由Synopsys.ai賦能、可投入生產(chǎn)的人工智能驅(qū)動EDA流程面向N2工藝可實現(xiàn)全球領...

關鍵字: 人工智能 晶體管 系統(tǒng)設計 芯片

數(shù)字可編程變頻電源是一種能夠根據(jù)用戶需求調(diào)整輸出電壓和頻率的電源設備。它在工業(yè)生產(chǎn)和實驗室研究等領域中被廣泛使用。

關鍵字: 單片機 可編程電源 系統(tǒng)設計

太陽能供電應用系統(tǒng)的設計需要考慮多個方面,包括太陽能電池板、儲能裝置、控制模塊等。本文將介紹一種基于太陽能供電的應用系統(tǒng)設計方法,并從這幾個方面進行詳細闡述。

關鍵字: 太陽能 系統(tǒng)設計

北京2023年8月15日 /美通社/ -- 日前,在第五屆OCP China Day 2023(開放計算中國技術峰會)上,浪潮信息正式推出融合架構(gòu)3.0原型系統(tǒng),以開創(chuàng)性的系統(tǒng)架構(gòu)設計實現(xiàn)了計算資源、存儲資源、...

關鍵字: 系統(tǒng)設計 內(nèi)存 軟件定義 數(shù)據(jù)中心

北京2023年8月7日 /美通社/ -- 隨著大模型智能水平的提升,AIGC所需要的算力在不斷增長。大模型的參數(shù)量超過千億,甚至突破萬億級別,預計智算中心將迎來更快發(fā)展。IDC預測,2022-2026年,全球AI計算市場...

關鍵字: CHINA 數(shù)據(jù)中心 AI 系統(tǒng)設計

無論溫度怎么變化始終UCQ1=UCQ2,電路以兩只管子集電極電位差作為輸出,就克服了溫漂 當u11=u12(共模信號)T1管和T2管所產(chǎn)生的電流變化相等;因此集電極電位的變化也相等。

關鍵字: 差分放大器 系統(tǒng)設計 電極電位

大家好,我是鲏。認識我的朋友都知道,我是一個實踐派,相比研究枯燥的理論知識,我更喜歡做自己想做的項目,用技術來實現(xiàn)自己的想法的感覺真的很棒。所以從大學期間一直到現(xiàn)在,除了工作中的項目外,我依然保持著自己做項目的習慣,有堅...

關鍵字: 系統(tǒng)設計 技術選型 需求分析
關閉