文档介绍:at88sc系列加密芯片的工作原理
1. 加密芯片的功能和基本原理.
      加密芯片主要用来保护烧进Flash里面的程序即使被盗版者读走, 在非法板上也不能运行, 从而达到保护自己劳动成果的目的.
本文主要内容:
一.    加密芯片的工作原理
二.    DVS项目中配置区的寄存器配置
三.    接口描述
四.    DES和自定义算法.
一.    加密芯片的工作原理.
1. 硬件连接
AT88SC0104C的封装外型和内部结构模块图如下:
AAAAAAAAAAAAAAAAAA
不能拷图~~~~~~
AAAAAAAAAAAAAAAAAA
连接好电源和地后, 将SDA和SCL与主控HOST的GPIO连接好就可以了.
2. AT88的工作模式和工作机制
AT88SC的工作模式有三种, 标准, 认证和加密三种模式, 标准模式下可以将该芯片视为一个常用的EEPROM来访问. 不过访问时序要按招它自己的Write/Read User Zone命令来读写数据. 认证模式则要复杂的多, 讨论认证模式之前要先研究下这个加密芯片的算法F2.
F2算法的输入是一个系统产生的随机数Q0, 还有从加密芯片
0x50,0x60,x070,x080位置读出来的8个字节的密文Ci和一个种子Gc, 芯片内部一共四组用户访问区, 因此对应着四组访问寄存器AR和密码寄存器PR, 以及四组密码寄存器CryptogramCi和四组密文种子Gc.
它的输出是一个八位的新密文Q1, 主机在调用F2时生成Q1, 同时将Q0和Q1用Verify Authentication命令送给AT88, AT88收到认证命令后内部根据保存在密文区的Ci值和种子Gc做同样的运算生成Q2, 同时生成一个密钥Sk, 然后Q2与Q1作对比, 如果结果一直说明认证成功, 它用Q2更换掉密文区的Ci, 同时生成新的密文更新Session Encryption Key配置区.
第三种模式是加密模式, 它是在认证的基础上在利用Sk替代Gc再做一次F2运算, 并将结果用Verify Encryption命令送给AT88,如果这次运算成功, 芯片内部会启动加密机制, 对总线上传输的数据进行加密\解密.
3.       访问用户数据区.
以AT88SC0104为例, 它的数据存储区分成四个分区, 每个数据区有32字节容量. 大小为4*32=128B=1028b
先看用户区相关的几个配置寄存器
AR: 访问寄存器,
PM1
PM0
AM1
AM0
ER
WLM
MDF
PGO
Bit7
Bit0
PM1-PM0: 用来设置用户区的读写是否需要密码.
AM1-AM0:用来设置用户区的访问是否需要认证.
ER,WLM,WDF, PGO请参考NDA文档
PR:
AK1
AK0
POK1
POK0
res
PW2
PW1
PW0
Bit7
Bit0
AK1-AK0:选择四个种子中的一个作为认证的输入.
POK1-POK0:双向认证时使用
PW2-PW0:选择8套密码之一作为验证密码.
设置好AR寄存器后就可以通过下面的命令步骤来对用户区读写.