加密芯片

维基百科,自由的百科全书
跳转到: 导航, 搜索

加密芯片,一種提供密碼式安全控制機制的芯片。

目录

[编辑] 概述

单片机加密,以前采用单片机本身的加密位进行加密,如AT89C51或者AVR的熔丝位,进行本身的加密,能够防止简单地被读取程序空间的bin文件。随着技术的发展,这种方法的加密,已经被低成本的被破解。

目前采用最有效,成本最低的是采用是外挂硬件加密芯片进行加密,如美国ATMEL公司的AT88SA102S, 加密芯片AT88SA102S是美国ATMEL公司刚推出的IC,它具有以下的特性:

  • 256位密钥长度,市场上唯一密钥长度这么多的加密芯片,普遍是64位或者128位的密钥。
  • 单线通讯,不占用多余的IO口,现在MCU的IO口这么宝贵,这个特性非常重要。
  • 48位唯一序列号,做过加密的,都知道这个很重要。更多的特性可参考数据手册。

[编辑] 内部结构

单片机加密采用外挂加密芯片,加密芯片内部必须有自定义的数据,如密钥,可参与加密的运算。加密芯片AT88SA102S的内部包含64位的安全熔丝,设计时可自己定义数据。24位的状态熔丝。IC内部由掩膜工艺制造的6万多组256位密钥。

[编辑] 通讯时序

采用加密芯片进行单片机加密,通讯只采用一个普通的IO口即可,在延时上可参考数据手册。芯片在开始时需要发送一个wakeup唤醒信息,然后发送普通的数据即可,如发送0x88,芯片会返回特定的信号回来,这时说明加密芯片通讯成功,然后只需发送命令和接收数据即可。

[编辑] 命令格式

利用加密芯片进行单片机加密时,主要会用到以下两条命令

  • 读操作read:利用此命令来读SN,ID这些信息。
READ=0X02,MODE=0X00,0X01,ADDRESS=根据MODE指定的地址。
  • 加密运算操作MAC:利用此命令让加密芯片完成加密运算,返回运算结果。
MAC=0X08,MODE=见数据手册15页表格,KEYID=0X0000-0XFFFF.CHALLENGE=随机数

[编辑] 应用

首先保证与加密芯片的正常通讯,然后单片机给加密芯片发送数据,加密芯片会返回特定的数据,这时说明加密芯片开发的工作已完成50%。然后,加密芯片的应用,需要发送MAC指令,读回芯片的运算后的结果,利用这结果参与运算,对比等在单片机的程序处理,AT88SA102S这款加密芯片进行加密是不是挺简单呢?

个人工具
名字空间
操作
导航
帮助
工具