|
学习目的: 使用AES BOOTLOADER技术升级AVR的固件;
学习参考: ATMEL的AVR231: AES Bootloader;
介绍:
AES加密标准已经解决了DES加密算法遭受攻击出现的漏洞,而且具有更高的效率,在AVR单片机Bootloader的应用中得到较广泛的应用。
AES Bootloader的特点是:
1. 应用简单,加密性高,可以有128,192,256位的加密匙;
2. 代码小,用IAR编译,小于2K;
3. 传送速度快;
例如: 64K的代码,在波特率采用115200bps,系统时钟3.69MHz下,
-AES128: 27
-AES192: 30
-AES256: 33
(相比之下,DES的加密方式慢了许多:
Typical Update Times of a 16-KB Application, Including Transfer of Data, Decryption
and Programming of Flash Memory
– DES, 115200 Bauds, 16 MHz Target Frequency: 20 Seconds
– 3DES, 115200 Bauds, 16 MHz Target Frequency: 50 Seconds)
4. 广泛应用于大于1KB的RAM的ATMEL单片机系列中;
本文只重点介绍如何使用AES BOOTLOADER。
下载以下的”AVR_AES.rar” 文件,解压缩以后,生成两个文件夹,IAR文件夹包含升级所需的固件,PC文件夹包含升级的PC端程序。
点击此处下载AVR_AES.rar
学习步骤:
1. 运行”..\ PC\PC Sample\Gen_Key.bat”, 生成一个临时的Config.txt文件;
说明:
Gen_Key.bat的代码:
gentemp Config.txt
生成一个临时的Config.txt:
以下是生成的Config.txt的例子:
PAGE_SIZE = [FILL IN: Target AVR page size in bytes]
MEM_SIZE = [FILL IN: Application Section size in bytes]
CRC_ENABLE = [FILL IN: YES/NO]
KEY1 = 5F8669C385D366FAF49FEA4F23D983D34616
KEY2 = F3F6340CEC9B0B4B0C
KEY3 = 972CEE3391BC6C5F93
INITIAL_VECTOR = 39D392DFD0259A0EAE85C9D4A11DF1CC
SIGNATURE = A87DB128
注意,每次运行KEY,INITIAL_VECTOR,SIGNATURE结果会不同。但是,同一个项目,必须使用相同的KEY,INITIAL_VECTOR,SIGNATURE。
2. 根据所选用的MCU,修改Config.txt:
以ATMEGA32为例: 正确设置PAGE_SIZE,MEM_SIZE,CRC_ENABLE等参数。
PAGE_SIZE = 128
MEM_SIZE = 28672
CRC_ENABLE = YES
KEY1 = 5F8669C385D366FAF49FEA4F23D983D34616
KEY2 = F3F6340CEC9B0B4B0C
KEY3 = 972CEE3391BC6C5F93
INITIAL_VECTOR = 39D392DFD0259A0EAE85C9D4A11DF1CC
SIGNATURE = A87DB128
具体参考以下表格设置:
|
|