没有合适的资源?快使用搜索试试~ 我知道了~
首页基于DS28E01的FPGA加密认证系统的设计
基于DS28E01的FPGA加密认证系统的设计
252 浏览量
更新于2023-05-28
评论
收藏 105KB PDF 举报
针对基于 SRAM的 FPGA在配置过程中设计数据容易被克隆的现象,设计了基于安全存储器的加密认证系统,增强了系统的安全性。
资源详情
资源评论
资源推荐

基于基于DS28E01的的FPGA加密认证系统的设计加密认证系统的设计
针对基于 SRAM的 FPGA在配置过程中设计数据容易被克隆的现象,设计了基于安全存储器的加密认证系统,
增强了系统的安全性。
在现代电子系统的设计中,高速
1、加密问题的提出、加密问题的提出
由于 FPGA基于SRAM,所以掉电以后,其内部的数据必然丢失,为了让系统正常运行,就需要在系统上电的时候给FPGA加
载程序,目前对FPGA加载程序的方法主要有以下几种 [2]:
第一、 采用边界扫描的方式,这种方法主要用于产品调试期间用;
第二、 采用专用配置芯片配置,主要用于升级次数少的产品;
第三、 采用存储器+微控制器的配置方法,这种配置方法灵活,使用方便,便于升级,多用于需要多次升级的产品。
以上几种 FPGA配置方法在上电加载程序的时候,都需要将配置的数据通过配置管脚下载到 FPGA中,这样,就可以利用一定
的电路对这些引脚进行采样来获得 FPGA的配置信息,就可以对另一款同样的 FPGA来进行配置,这样,就不需要知道设计的
具体原理而实现了同样的功能,从而达到了克隆设计的目的,对设计者造成了巨大的损失,所以,我们有必要对我们的设计采
取加密认证技术。
2、、DS28E01芯片及其加密原理芯片及其加密原理
MAXIM公司生产的 DS28E01将 1024位 EEPROM与符合 ISO/IEC110118-3安全散列算法(SHA-1)的质询响应安全认证结合在
一起。在单个芯片内集成了 1024位 EEPROM(分为 4页,每页 256位)、64位密钥、一个寄存器页、512位 SHA-1引擎和 64位
ROM序列码。 DS28E01对数据按照 1-Wire协议串行传送,通信速率为15.3kbps(标准速率模式)或125kbps(高速模式),只需
要一根数据线和一根返回地线,最大限度的节省了对控制器 I/O口的占用 [3]。
HASH加密函数是一种单向散列函数,是一种单向密码体制,即它是一种从明文到密文的不可逆映射,只有加密过程,不能解
密,也就是说,从数学上不能由密文反过来推算出明文的任何消息。其中常见的 HASH函数的算法有:MD5、SHA、N-Hash、
RIPE-MD、HAVAL等 [4]。
SHA-1算法是一种通过直接构造复杂的非线性关系达到单向要求,设计单向散列函数的算法,具有“不可逆”、“防碰撞”以及良
好的“雪崩效应” [5],防止了盗窃者利用相近的输入来达到破解密码的可能性。
DS28E01内部的加密过程是在内部的加密引擎中进行的,其加密引擎利用的是 HSAH函数的 SHA-1算法,但是和标准的
SHA-1算法又有几点不一样。标准算法的输入值可以小于、等于或大于分组长度512bit,但是 SHA-1引擎的 SHA-1算法输入
的是固定的512bit,也就是标准 SHA-1算法的分组长度。并且标准 SHA-1算法每个分组的最后一次循环体的输出都要和输入每
个分组的初始常量做MOD232加法,而在 DS28E01的 SHA-1引擎中由于只有一个512bit的循环体,最后就省略了将初始常量
添加回结果的最终步骤。至于引擎的 SHA-1算法的其他步骤则与标准的 SHA-1算法相同。
3、加密模块设计、加密模块设计
目前由很多能实现 FPGA加密的方法,如在 Xilinx Virtex-II和 Virtex-4这类的高端FPGA中,支持对配置数据流的加密操作。这
样仅当 FPGA中含有相同的密钥时,这些数据流才可以工作。但是这种加密的方法对更为广泛的、对成本比较敏感的应用场合
来说不甚合适。因此,这里利用另一种可行的身份识别法来防止意外拷贝。这种方法对所有 FPGA家族都使用,包括低端的
Xilinx Spartan-3系列FPGA。
3.1、加密模块的原理图设计
本次设计中的加密模块的原理图如图1。硬件部分主要由 Xilinx公司 Spartan-3系列的X3CS500E以及MAXIM公司的DS28E01
芯片组成。DS28E01芯片和FPGA之间是通过DS28E01的第二引脚的 1-Wire通信总线进行通信的。
唯一识别号及附加数据(常数)在内的 HASH运算结果,运算的结果是 160位的 MAC(消息认证码),同时,FPGA内部也会同安
全存储器一样进行包含密钥、随机数、附加数据及器件识别号在内的 HASH计算并产生一个期望的MAC。然后,在 FPGA内
会对这两个 MAC进行比较,如果一样,则 FPGA认为该电路是“合法”电路,因为它拥有正确的密钥。此时 FPGA进入正常工
作状态,开启/执行其配置数据中的所有功能,会执行所有的功能。如果 FPGA和DS28EO1两者产生的MAC不匹配,则系统会












安全验证
文档复制为VIP权益,开通VIP直接复制

评论0