LCSHA204芯片是一款兼容ATMEL公司ATSHA204A的國產安全芯片,其操作方式與ATSHA204A相同,本次主要介紹芯片EncryptRead加密讀功能。只有當slot config.EncryptRead = 1和slot config.IsSecret = 1時才能進行。加密讀是為了防止別人在總線上嗅探到密鑰,這里我借用官方文檔Atmel-8981的一幅圖。
圖片1.png (69.76 KB, 下載次數: 38)
下載附件
2022-1-6 15:18 上傳
這個流程圖其實非常明了,主要步驟如下:
1、首先發送Nonce Command命令,更新TempKey中的值,主機這邊根據命令返回的randout來使用SHA-256算法計算出TempKey中的值。 2、發送GenDig Command,Gen Dig 命令中的參數KeyID ,就是slot config.ReadKey,比如說,我們要讀取slot1的密鑰,而slot config[0].ReadKey 設置為0,那么我們就需要知道slot0中存放的密鑰才能讀取slot1的密鑰,發送完這個命令后如果執行正確,TempKey中的值會被重新計算,而主機需要根據Read Key等一些列參數計算TempKey中的值。 3、執行讀命令讀取slot區中的值,返回來的內容是經過異或加密的,密鑰是第2步計算出來的摘要,也就是說:讀回來的值^第2步計算出來的摘要 = 原文。
|