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,均方根误差