基于1-Wire总线的DS28E01加密芯片原理研究及其在FPGA加密系统中的应用
不同速率通信:标准速率和高速模式。如果没有明确设定为高速模式,DS28E01就以标准速率通信。高速模式下,所有波形均采用快速定时。启动与DS28E01的任何通信都需要初始化过程。
3.3 1-Wire总线上的DS28E01加密指令说明
DS28E01提供7条ROM指令和9条MEM指令,在FPGA加密系统中一般只用到几条就够了。
根据FPGA加密原理所述,FPGA中SHA-1引擎所使用的密钥是由设计者预先配置好的,DS28E01中的密钥也是由设计者在出厂前通过烧写器写好的。为了完成加密过程,FPGA中的SHA-1引擎只需要对DS28E01进行3个操作过程即可:1)写随机数,2)读DS28E01器件ID,3)读DS28E01 SHA-1运算结果,即160位的MAC值。
3.3.1 写随机数
指令格式和时序分析波形如图2 所示,FPGA先发送ROM命令码Skip ROM(CCH),接着发送MEM命令码Write Scratchpad(0F)以及目标地址。
RST为FPGA产生的1-Wire复位脉冲,PD为DS28E01产生的在线应答脉冲,Select是ROM功能命令,WSP为MEM功能命令,TA是目标地址TA1和TA2,之后为要写入的64位随机数,之后是从Select命令到随机数所有字节的8位的CRC16校验值的反码,其后是无效的数据FF。每个字段的数据都是低位在前传输。以下所有命令格式都类似。
1-Wire总线上数据如图中ibo所示,data为将1-Wire总线数据根据协议正序并转成为并行数据,Select=CCh、WSP=0Fh,TA=8000h,64位随机数为40h、70h、BEh、3Dh、78h、95h、F7h、D8h,8位CRC16校验的反码为85h。
3.3.2 读DS28E01器件ID
指令格式和时序分析波形如图3 所示,FPGA发送ROM命令码Read ROM(33H),此条命令允许主机读取DS28E01的八位家族码,48位唯一序列号和8位CRC校验码。
1-Wire总线上数据根据协议被正序并行化后在图3波形中显示为:Select=33h、8位家族码为2Fh、48位唯一的器件ID=00000022FCD0h,8位CRC16校验的反码=99。
3.3.3 读160位MAC码
指令格式和时序分析波形如图4 所示。 FPGA先发送ROM命令码Skip ROM(CCH),接着发送MEM命令码Write Scratchpad(A5)以及目标地址,之后,FPGA将接收DS28E01中从目标地址开始到数据页末尾存储器页中数据,一个FFh 字节和CRC反码。 CRC校验码接收完毕后,FPGA等待一段时间。此时, DS28E01中的SHA 引擎利用相同的密钥、随机数、附加数据及器件识别号来计算160位的MAC。等待SHA-1运算周期结束后,就可读到160位MAC,随后是CRC反码。如果在CRC 校验码后主机继续读取数据,将会到读到无效数据AAh。
从图4中我们可以看到,当读到AAh时,FOE=0,这表明加密芯片计算的MAC值与FPGA中SHA-1引擎计算的MAC值一致。用户设计将开始工作,至此加密过程全部结束。
5 FPGA验证和结论
本加密系统在Xilinx公司 Spartan-6的XA6SLX45-3上进行了FPGA验证。FPGA中的SHA-1引擎采用了Xilinx公司提供的免费IP。采用Verilog语言完成了1-Wire总线的相关分析功能的设计。调试中使用了Xilinx公司的硬件Debug软件ChipScope,抓出了1-Wire总线的相关波形,完成了时序分析。最后该加密系统成功应用于西安某知名IC设计公司的一款FPGA推广产品中。可以看出,在IC设计竞争日益强烈的今天,利用FPGA加密系统来保护知识产权,为公司产品抢占市场先机是IC设计的必由之路。
参考文献:
[1]DS28E01-100 带SHA-1引擎保护的1K位1-Wire EEPROM[R/OL].www.maxim-ic.com.cn
[2]张斌,徐名扬.SHA-1算法及其在FPGA加密认证系统中的应用.中国集成电路,2011(6)
[3]杨春林,张春雷,高山,等.基于DS28E01的FPGA加密认证系统的设计.微计算机信息,2009(23)
[4]刘军志,黄进.基于DS2432和FPGA的IFF加密方法.微计算机信息[J],2007(7):201-202
[5]伍家满,虞礼贞,刘小燕,等.基于1-Wire接口的总线技术即其应用,南昌大学学报,2005,27(1)
FPGA DS28E01 1-Wire SHA-1 201402 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)