0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用FPGA安全存储器的加密认证系统设计

电子设计 作者:电子设计 2018-10-07 12:10 次阅读

在现代电子系统的设计中,高速 FPGA运行时需将其配置数据加载到内部SRAM 中,改变SDRAM 里面的数据,从而使FPGA实现不同的功能,即所谓的可重构技术。但是由于其采用的是基于SRAM的技术,每次上电的时候都会重新配置FPGA,这就可以通过监视FPGA配置引脚位流的方法来实现对设计的复制,因此,在关键设备的设计中,有必要采取加密的技术来保护设计者的知识产权。

1、加密问题的提出

由于 FPGA基于SRAM,所以掉电以后,其内部的数据必然丢失,为了让系统正常运行,就需要在系统上电的时候给FPGA加载程序,目前对FPGA加载程序的方法主要有以下几种:

第一、 采用边界扫描的方式,这种方法主要用于产品调试期间用;

第二、 采用专用配置芯片配置,主要用于升级次数少的产品;

第三、 采用存储器+微控制器的配置方法,这种配置方法灵活,使用方便,便于升级,多用于需要多次升级的产品。

以上几种 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口的占用。

HASH加密函数是一种单向散列函数,是一种单向密码体制,即它是一种从明文到密文的不可逆映射,只有加密过程,不能解密,也就是说,从数学上不能由密文反过来推算出明文的任何消息。其中常见的 HASH函数的算法有:MD5、SHA、N-Hash、RIPE-MD、HAVAL等。

SHA-1算法是一种通过直接构造复杂的非线性关系达到单向要求,设计单向散列函数的算法,具有“不可逆”、“防碰撞”以及良好的“雪崩效应”,防止了盗窃者利用相近的输入来达到破解密码的可能性。

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通信总线进行通信的。

采用FPGA安全存储器的加密认证系统设计

唯一识别号及附加数据(常数)在内的 HASH运算结果,运算的结果是 160位的 MAC(消息认证码),同时,FPGA内部也会同安全存储器一样进行包含密钥、随机数、附加数据及器件识别号在内的 HASH计算并产生一个期望的MAC。然后,在 FPGA内会对这两个 MAC进行比较,如果一样,则 FPGA认为该电路是“合法”电路,因为它拥有正确的密钥。此时 FPGA进入正常工作状态,开启/执行其配置数据中的所有功能,会执行所有的功能。如果 FPGA和DS28EO1两者产生的MAC不匹配,则系统会认为该电路是一个“非法”电路,因为该系统不具有正确的密码。此时 FPGA进入非正常运行状态,只执行有限的功能。

3.2、加密认证模块的程序设计

为了实现加密认证的功能,我们在 FPGA中利用 VHDL语言设计了 IFF模块,在 IFF模块的内部是根据SHA-1算法实现了对输入密码的HASH函数运算以及与DS28E01中产生的MAC的比较功能,IFF模块的接口定义如图 2所示:

采用FPGA安全存储器的加密认证系统设计

其中,CLKIN是一个大于 20M的时钟;IFF是认证启动信号,在 IFF信号上升沿的时候模块内部开始启动 HSAH运算过程以及密码比较过程;RESET是复位信号,高电平有效;IB则是 FPGA通过 1-Wire协议与 DS28E01通讯的信号;FOE信号是 IFF模块的输出线,在IFF内部 MAC比较完成后,如果 FPGA认定该电路具有正确的密码,则会置 FOE信号为低电平,反之如果 FPGA认定该电路不是合法的电路,则会置 FOE信号为高电平,在 FPGA内部可以根据FOE的信号来实现不同的功能。这样,系统就可以根据电路是否是被拷贝的来实现不同的功能,防止了设计被拷贝。

在 IFF模块中,实现了标准的 SHA-1算法,其中算法流程图见图3,在 FPGA配置完成之后,在 RESET信号与时钟信号的控制下,FPGA内部就会运行 SHA-1算法产生相应的MAC,与由 DS28E01产生的 MAC进行比较,根据比较结果将 FOE设置为不同的状态,然后 FPGA就可以根据 FOE的状态来判断是否是合法电路。其中的初始化主要完成消息填充和附加原始消息长度以及在算法中需要的函数和常数的定义。

4、设计总结

在现在电子设计的成本越来越高的情况下,基于 SRAM的 FPGA由于自身限制,容易使得设计者的设计被复制,从而给设计者提出了设计具有加密功能的电子系统,由于 SHA-1 算法引擎的 DS28E01芯片作为加密认证系统的核心芯片,并利用 DS28E01针对 Xilinx公司的 X3CS500E开发了实际的加密认证系统,并将此系统应用于实际的产品中,取得了良好的效果。

采用FPGA安全存储器的加密认证系统设计

图 3 SHA-1算法流程图(Figure 3. SHA-1 algorithm flow)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21679

    浏览量

    602141
  • 存储器
    +关注

    关注

    38

    文章

    7458

    浏览量

    163635
  • sram
    +关注

    关注

    6

    文章

    765

    浏览量

    114643
收藏 人收藏

    评论

    相关推荐

    最高安全等级的加密IC LKT4200

    存储器管理单元,可灵活设置SYS\APP模式及授予相应权限程序和数据均加密存储安全认证目标:EAL5+,32位智能卡芯片软件
    发表于 03-08 17:18

    基于FPGA的身份认证智能卡设计

    基于FPGA的身份认证智能卡的设计方案。在FPGA内部实现身份认证相关的数据加密运算,加密算法
    发表于 10-14 12:45

    定制型加密芯片这是一款采用随机变量交换系统认证加密芯片,请问定制化加密芯片优势在哪里?

    ALPU加密芯片。所以即使盗版系统复制了PCB、内核甚至存储器中的固件,但若缺少这颗定制加密芯片,该系统仍然无法工作。定制化
    发表于 05-21 14:29

    基于FPGA的高端存储器接口设计

    高性能系统设计师在满足关键时序余量的同时要力争获得更高性能,而存储器接口设计则是一项艰巨挑战。双倍数据速率SDRAM和4倍数据速率SDRAM都采用源同步接口来把数据和时钟(或选通脉冲)由发射
    发表于 04-29 07:00

    汽车系统非易失性存储器的选择

    汽车系统的设计变得越来越复杂,因为要不断的加入新的功能,如高级驾驶辅助,图形仪表,车身控制和车辆信息娱乐系统。为了确保可靠、安全的操作,每个子系统均需要使用特定的非易失性
    发表于 07-23 06:15

    如何设计FPGA加密认证系统

    的技术,每次上电的时候都会重新配置FPGA,这就可以通过监视FPGA配置引脚位流的方法来实现对设计的复制,因此,在关键设备的设计中,如何设计FPGA加密
    发表于 08-05 06:43

    请问怎样去设计一种FPGA加密认证系统

    加密问题是怎样提出的?DS28E01芯片及其加密原理是什么?怎样去设计一种FPGA加密认证系统
    发表于 04-29 06:53

    可编程非易失(NV)存储器的质询-响应安全认证IC DS28

    Maxim推出带有用户可编程非易失(NV)存储器的质询-响应安全认证IC DS28E10。采用经过业内认证的FIPS 180-3
    发表于 08-14 15:12 17次下载

    NAS网络存储器认证有哪些?

     NAS网络存储器认证有哪些?              认证的官方含义是:由可以充分
    发表于 01-09 10:36 679次阅读

    采用LabVIEW的存储器检测系统设计方案

    采用LabVIEW的存储器检测系统设计方案 概述:文中分析了存储器的故障类型,研究March算法并进行了扩展。系统以LabVIEW作为软件
    发表于 03-22 14:47 1412次阅读
    <b class='flag-5'>采用</b>LabVIEW的<b class='flag-5'>存储器</b>检测<b class='flag-5'>系统</b>设计方案

    什么是加密存储器

    什么是加密存储器加密存储器卡内嵌芯片在存储区外增加了控制逻辑,在访问存储区之前需要核对密码
    发表于 04-01 17:46 559次阅读

    SAN网络存储器认证

    SAN网络存储器认证              认证的官方含义是:由可以充分信任的第三方证实某一经鉴定的产品或服务符合
    发表于 01-09 13:43 722次阅读

    分立闪存存储器领域加密安全基础设施

    嵌入式系统越来越普遍地采用云技术来进行数据采集、事件检测和软件更新。这些远程物联网设备普遍通过固件完成设置,这些固件有可能存储在主机MCU中,也有可能存储在外置非易失性
    发表于 05-18 10:25 613次阅读
    分立闪存<b class='flag-5'>存储器</b>领域<b class='flag-5'>加密</b>和<b class='flag-5'>安全</b>基础设施

    FPGA存储器之间的关系

    FPGA存储器之间的关系(嵌入式开发工作怎么样)-该文档为FPGA存储器之间的关系总结文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看………………
    发表于 07-30 16:35 6次下载
    <b class='flag-5'>FPGA</b>各<b class='flag-5'>存储器</b>之间的关系

    EEPROM存储器如何加密

    擦写、可编程的特性,EEPROM在各种应用场景中得到了广泛的应用。然而,随着技术的发展,数据安全问题日益突出,对EEPROM存储器进行加密的需求也越来越高。 EEPROM存储器概述 1
    的头像 发表于 08-05 18:05 1126次阅读