<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于A(yíng)TSHA204的密鑰認證系統設計

一種基于A(yíng)TSHA204的密鑰認證系統設計

作者: 時(shí)間:2014-04-22 來(lái)源:網(wǎng)絡(luò ) 收藏

?

本文引用地址:http://dyxdggzs.com/article/245795.htm

4.2 軟件設計

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

?

?

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

MAC認證程序使用上面提及的標準的TWI讀寫(xiě)函數接口,通過(guò)發(fā)送0x00信號使SDA保持一段時(shí)間的低電平信號,以wakeup加密芯片、chal lenge數組中的格式和response數組的大小詳見(jiàn)datasheet?;竞瘮盗鞒倘缦拢?/p>

?

?

4.2.2 ATmega128平臺SHA-256計算程序

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

?

?

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

4.3 功能測試

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

?

?

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

?

?

5 測試

為了更好地驗證加密系統的可靠性與可行性,在測試認證基本功能之后,將其嵌入到一個(gè)實(shí)際系統中,對加密性能進(jìn)行測試?;谝延械腁Tmega128硬件平臺,選取SD卡文件系統讀取程序作為測試,系統的運行流程如圖4所示。

?

?

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

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

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

?

?

結語(yǔ)

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


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Atmel ATSHA204

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>