Atmel ATSHA204應用總結

1 ACES軟件安裝
Atmel Crypto Evaluation Studio (ACES)
https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/Atmel%20Crypto%20%20Studio%20(ACES)

2 基本概念
ACES CE:Atmel Crypto Evalution Studio Configuration Environment(基於加密芯片ATSHA204的USB Dongle IDE配置環境)
ATSHA204:官方參考板使用3pin接口,用的是單線SDA通信協議;如果要I2C支持(7位地址是0x64),那麼就需要選擇8pin芯片
MAC:ATSHA204A Message Authentication Code
nonce隨機數生成器:就是challenge

3 數據包格式
Figure 3-1 Command Packets

Figure 3-2 Response Packets

[ACES][Tools] [Command Builder]
Figure 3-3 Command Builder

4 工作原理
1)在ATSHA204A芯片的slot0中寫入一個32字節的祕鑰,設置爲不可讀。這個祕鑰只有幾個人知道,並且不外泄,主控MCU與芯片相連,MCU啓動時候,讀取ATSHA204A芯片序列號,爲後面計算MAC做準備
2)發送一個nonce命令給ATSHA204A,讓其更新內部的TempKey中的值
3)MCU內部也根據nonce的模式計算一下Tempkey的值,稱之爲host_tempkey,如果一切正常,那麼Tempkey和host_tempkey中的值是一致的
4)MCU根據host_tempkey、序列號、以及祕鑰,計算出一個摘要digest1
5) 給ATSHA204A發送MAC命令,ATSHA204A根據存儲在slot區域中的祕鑰來計算digest2並返回給MCU
6)MCU判斷digest1和digest2是否匹配,不匹配將程序掛起即可

5 python SDK
1)安裝Python 3.8
安裝時選擇安裝pip工具

2)安裝Visual Studio
VS提供了nmake命令

3)cmake for Windows
CMAKE_C_COMPILER:指定C編譯器
CMAKE_CXX_COMPILER:指定C++編譯器

在CMakeLists.txt中指定,使用SET設定這2個變量,需要將設置編譯器的代碼放在project之前
SET(CMAKE_C_COMPILER “/tools/gcc-4.2.0/bin/gcc”)
SET(CMAKE_CXX_COMPILER “/home/tools/gcc-4.2.0/bin/g++”)

4)安裝ATSHA204A庫
https://github.com/MicrochipTech/cryptoauthtools

cd PATH_TO\cryptoauthtools\python\examples
python -m pip install -r requirements.txt
或者
python -m pip install cryptoauthlib
python -m pip install cryptography

cryptoauthlib,可能會安裝失敗,可以根據安裝提示從對應的URL上下載,下載下來後,進入對應目錄,使用python setup.py install手工安裝

6 URLs
Atmel AT88CK454BLACK Quick Start Guide
http://ww1.microchip.com/downloads/en/DeviceDoc/doc8724.pdf

使用Python來操作Microchip安全芯片
https://blog.csdn.net/FlyerInk/article/details/85772140

ATSHA204A加密芯片攻略--使用篇
https://blog.csdn.net/a5882230/article/details/51931099

7 Abbreviations
AVE:Average
BP:Blockproducer,區塊生產者
cert.sf:sigfile
EOS:區塊鏈Enterprise Operation System
learning_rate:學習速率,即是“步長”的意思
MSD:Mean Square Differences,均方差
PAM:Pluggable Authentication Modules
PEM:Privacy Enhanced Mail(一種公匙和私匙文件存儲格式)
PKCS:The Public-Key Cryptography Standards
pk8:PKCS #8,
RSA:1977年由羅納德•李維斯特(Ron Rivest)、阿迪•薩莫爾(Adi Shamir)和倫納德•阿德曼(Leonard Adleman)一起提出的。
y = kx + b(b表示bias)
convergence:收斂
RMSE:root mean square error,均方根誤差

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章