加密芯片
维基百科,自由的百科全书
| 此條目或章節需要編修,以確保语法、用語、语气、风格、表达恰当。 請幫助编辑這個條目,請參見校對指引中的說明指引。(幫助、討論) |
| 此条目没有列出任何参考或来源。(2011年9月19日) 維基百科所有的內容都應該可供查證。 请协助添加来自可靠来源的引用以改善这篇条目。无法查证的内容可能被提出异议而移除。 |
|
|
此條目或章節類似广告。(2011年9月25日) 请协助使用中立的观点重写这篇条目。 對於明显的广告,请使用 {{delete|G11}}來注明快速删除。 |
加密芯片,一種提供密碼式安全控制機制的芯片。
目录 |
[编辑] 概述
单片机加密,以前采用单片机本身的加密位进行加密,如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这款加密芯片进行加密是不是挺简单呢?