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

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

3天内不再提示

具有内置AES的FPGA保护系统设计

星星科技指导员 来源:嵌入式计算设计 作者:嵌入式计算设计 2022-06-15 09:05 次阅读

除非在系统设计中加入有效的安全性,否则嵌入式系统很容易成为黑客、安全漏洞和恶意攻击的牺牲品。如今,安全性是一个更大的问题,因为新的专有技术和有价值的 IP 被用作竞争壁垒。到目前为止,实现传统安全的技术一直很麻烦、过时且成本高昂。然而,当前趋势鼓励设计人员在 FPGA 中嵌入最高级别的安全性,以实现更高效、成本更低的设计。

符合美国国家标准与技术研究院 (NIST) 联邦信息处理标准 (FIPS) 197 的 FPGA 支持使用 256 位高级加密标准 (AES) 和非易失性密钥的配置比特流加密。AES 是当今可用的最先进的加密算法。用户定义的 AES 密钥可以编程到存储在 FPGA 设备中的 256 位非易失性密钥中。

选择正确的加密算法和选择适当的密钥存储是两个重要的设计考虑因素。AES 支持 128、192 和 256 位的密钥大小,并取代了具有 56 位密钥和 64 位数据块大小的数据加密标准 (DES)。AES 等较大的密钥大小等同于提高安全性,并且比三重 DES (3DES) 更快地加密数据。实际上,3DES 使用三个密钥对文档进行了三次加密。

加密将电子数据转换为通常称为密文的难以理解的形式;解密密文将数据转换回其原始形式或明文。AES 算法是一种对称分组密码,可对 128 位块中的电子数据进行加密/加密和解密/解密。在该算法中,对称密钥用于加密和解密,并且块密码以块为单位处理数据。对称密钥分组密码加密算法在许多行业中都有使用,因为它们提供了高安全保护和效率、易于实施和快速的数据处理速度。

密钥存储的选择是第二个最重要的设计考虑因素。密钥存储在易失性或非易失性存储器中,具体取决于芯片供应商。一旦关闭易失性存储的电源,密钥就会丢失,除非将外部电池连接到芯片作为备用电源。另一方面,非易失性密钥存储为设计人员提供了更大的灵活性。

例如,FPGA 中的嵌入式非易失性密钥可以在板上或板外进行编程。安全密钥存储在 FPGA 内的多熔丝中。多晶保险丝是非易失性和一次性可编程的,这意味着这种存储方法更可靠,因为不需要外部备用电池。

可靠性差是电池对易失性存储造成的最大问题。电池寿命受温度和湿度水平的影响。电池没电了,钥匙就丢了。因此,无法再配置设备,必须将设备退回供应商进行维修和重新加载密钥。此外,电池备份成本更高,因为它更难制造,需要更多组件、电路板空间和工程工作。

电池通常无法承受高温回流工艺,必须在之后焊接到板上,这会产生额外的制造步骤。易失性密钥存储还需要在将密钥焊接到板上后将其编程到设备中。

因为非易失性存储是一次性可编程的,所以密钥是防篡改的。这在易失性存储中是不可能的,因为可以移除电池并且可以使用常规加密配置文件对 FPGA 进行配置。

将安全性设计到系统中

图 1 显示了如何使用 Quartus II 设计软件在 Altera 的 Stratix III FPGA 中实现安全性。第一步是将安全密钥编程到 FPGA 中。设计软件需要 256 位用户自定义密钥(密钥 1 和密钥 2)来生成密钥编程文件。然后通过 JTAG 接口将包含 Key 1 和 Key 2 信息的文件加载到 FPGA 中。

图1

pYYBAGKpMGCAVMK9AAE1bB9T6Eo204.png

接下来,内置在 FPGA 中的 AES 加密引擎生成用于在第三步稍后解密配置数据的真实密钥。通过加密密钥 1 和密钥 2 创建的真实密钥随后由专有功能处理,然后存储在 256 位非易失性密钥存储中。

第二步,配置文件被加密并存储在外部存储器中。设计软件需要两个 256 位密钥(密钥 1 和密钥 2)来加密配置文件。Quartus II AES 加密引擎通过使用密钥 2 加密密钥 1 来生成真实密钥。真实密钥用于加密配置文件,然后将其加载到外部存储器中,例如配置或闪存设备。

第三,配置FPGA。在系统上电时,外部存储设备将加密的配置文件发送到 FPGA。FPGA 中的 256 位非易失性密钥经过专有函数的逆处理,生成真正的密钥。AES 解密引擎然后使用真实密钥解密配置文件并配置自己。

安全入侵

作为设计过程的一部分,系统设计人员必须识别和理解不同类型的安全漏洞,包括复制、逆向工程和篡改,如表 1 所示。

复制涉及在不了解其工作原理的情况下制作相同的设计副本。可以通过从存储器件中读取设计或在上电时将配置文件从存储器件发送到 FPGA 时捕获配置文件来完成复制。然后,窃取的设计可用于配置其他 FPGA。这种方法构成了知识产权盗窃的主要形式,并可能导致重大的收入损失。

逆向工程需要分析配置文件以在寄存器传输级别或以示意图形式重新创建原始设计。然后可以修改重新创建的设计以获得竞争优势。这是一种比复制更复杂的 IP 盗窃形式,通常需要大量的技术专长。这也是时间和资源密集型的,有时比从头开始创建设计需要更多的工作。

篡改涉及修改存储在设备中的设计或用不同的设计替换它。被篡改的设备可能包含能够导致系统故障或窃取敏感数据的有害设计代码。

大多数非易失性 FPGA 具有允许回读配置数据以进行调试的功能,如图 2 所示。设计人员通常可以为器件设置安全位。如果未设置安全位,则允许回读,并且可以直接获取配置数据。但是当设置了安全位时,回读被禁用。在设置安全位时进行回读攻击的一种方法是检测安全位在 FPGA 中的位置并停用它们以启用回读。

图 2

poYBAGKpMGeAPPQ5AAB8tQn_N64623.png

设置入侵屏障

一些 FPGA 使攻击者几乎不可能从高度安全的嵌入式设计中窃取 IP。特别是,检测和禁用安全位可能很困难,因此为设计人员提供了更大的防复制能力。以下讨论解释了设计人员如何设置这些安全防御。

存储安全密钥的多晶硅保险丝隐藏在数百个其他多晶硅保险丝中的金属层之下。通过简单的目视检查几乎不可能确定特定保险丝的功能。用于其他功能的多晶硅熔丝的编程状态可能因器件而异。

这种随机性使得识别哪些保险丝存储安全密钥变得更加困难。此外,即使识别出存储安全密钥的多熔丝,也不会透露用于解密的真实密钥,因为它是在存储之前由专有功能处理的。在不知道真正密钥的情况下,无法解密设计。

因此,这些 FPGA 可以抵御回读攻击,因为它们不支持配置文件回读。这可以防止在配置文件在 FPGA 中解密后尝试读回配置文件。此外,无法通过将安全密钥编程到另一个 FPGA 并使用加密配置文件对其进行配置来复制这些设计。将安全密钥编程到 FPGA 中需要两个 256 位密钥。因为 AES 用于生成真实密钥,所以几乎不可能从安全密钥生成密钥 1 和密钥 2。

即使没有加密,从配置文件对设计进行逆向工程也是困难且耗时的。FPGA配置文件包含数百万比特,配置文件格式是专有和保密的。要对设计进行逆向工程,需要对用于揭示从配置文件到设备资源的映射的 FPGA 或设计软件进行逆向工程。

对这些 FPGA 进行逆向工程比对 ASIC 进行逆向工程更困难。标准工具无法对这些 FPGA 进行逆向工程,这些 FPGA 是在 65 纳米先进工艺技术节点上制造的。事实上,仅对一个 FPGA 逻辑块进行逆向工程可能会花费大量时间和资源。配置比特流加密使逆向工程更具挑战性。找到解密配置文件的安全密钥就像复制它一样复杂;因此,从头开始创建具有竞争力的设计可能比尝试对诸如此类的安全 FPGA 设计进行逆向工程更容易、更快捷。

非易失性密钥是一次性可编程的,以防止篡改。FPGA 使用密钥编程后,只能配置使用相同密钥加密的配置文件。尝试使用未加密的配置文件或使用错误密钥加密的配置文件来配置 FPGA 会导致配置失败。无论是在设计、外部存储器和 FPGA 之间的传输过程中,还是在远程通信系统升级过程中,配置失败都表明可能存在篡改。

设计方案比较

除了上述 FPGA 安全系统外,设计人员可用的其他设计选项包括基于 SRAM 的 FPGA,仅限于 3DES 加密、基于闪存的 FPGA 和基于反熔丝的 FPGA。表 2 描述了每种情况下的攻击成本。

非易失性 FPGA 在断电时保留其配置。揭示器件配置的一种方法是探测或检测每个非易失性单元的可编程状态。对基于闪存的 FPGA 的两种侧通道攻击是电子发射检测和晶体管阈值电压变化。

通过电子发射检测的攻击首先涉及移除设备的封装以暴露裸片。接下来,将该设备放置在真空室中并通电。然后攻击者使用透射电子显微镜来检测和显示发射。至于第二种技术,由于浮栅中的电子积累,晶体管的阈值电压会随着时间而变化。这导致晶体管的阈值电压逐渐升高。

除了这两种侧信道攻击之外,另一个流行的版本,功率攻击,涉及测量 FPGA 的功耗以确定设备正在执行的功能。至于对基于闪存的 FPGA 的回读攻击,所需的工作量因供应商而异,并且取决于设备中安全位的保护程度。此外,探测每个基于闪存的 FPGA 的浮动门需要大量的时间和精力,因为在编程后门不会发生物理变化。被氧化物隔离的状态由选择栅极和衬底之间的浮栅上电子的存在或数量决定(参见图 3)。

图 3

pYYBAGKpMG6AUG8SAACfeFXEGHI083.png

此外,对闪存 FPGA 配置文件进行逆向工程并不容易,因为必须首先获取配置文件。这是一项难以完成的任务,因为攻击者必须在逆向工程之前执行复制。对设计人员来说,同样重要的是要知道篡改基于闪存的 FPGA 很容易,因为该设备是可重新编程的。因此,如果需要考虑篡改,则必须使用防篡改机制。

编程状态探测也用于攻击基于反熔丝的 FPGA。技术包括聚焦离子束 (FIB) 技术和扫描电子显微镜 (SEM)。FIB 用于显微镜成像和设备横截面,而 SEM 涉及使用光栅型扫描的显微镜成像,以检测从表面发射的二次电子。分析基于反熔丝的 FPGA 的编程状态非常耗时,因为有数百万个反熔丝链接和一小部分已编程。

改进的风险管理策略

设计人员必须估算总安全成本并进行权衡,以确定适合设计中设备的安全级别。为了实现高水平的安全性,设计人员必须分析潜在威胁,考虑给定一组特定漏洞的攻击概率,并设置有效和适当的防御措施。FPGA 提供了多种可靠的安全方案,使设计人员能够实施成本更低的风险管理策略。

审核编辑:郭婷

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

    关注

    1629

    文章

    21729

    浏览量

    602986
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120230
  • sram
    +关注

    关注

    6

    文章

    767

    浏览量

    114675
收藏 人收藏

    评论

    相关推荐

    aes技术在物联网中的应用前景

    问题也日益凸显。高级加密标准(AES)作为一种广泛使用的对称加密算法,因其高效性和安全性,在物联网中扮演着越来越重要的角色。 1. 物联网安全挑战 物联网设备通常具有计算能力有限、存储空间小、能耗低等特点,这使得它们在安全
    的头像 发表于 11-14 15:15 361次阅读

    aes算法在移动应用中的应用场景

    传输敏感数据,如个人信息、账户密码、交易记录等。AES算法能够对这些数据进行加密,确保在传输过程中不被窃取或篡改。例如,在移动支付应用中,AES算法常用于保护用户支付信息的安全传输,防止信息在传输过程中被黑客截获。 2. 本地数
    的头像 发表于 11-14 15:14 287次阅读

    aes加密的常见错误及解决方案

    AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,它使用固定长度的密钥对数据进行加密。在使用AES加密时,可能会遇到一些常见错误。以下是对这些错误
    的头像 发表于 11-14 15:13 1172次阅读

    aes在云存储中的应用实例

    云存储服务允许用户通过互联网访问和存储数据,这使得数据的安全性和隐私性成为关键问题。AES作为一种高效的对称加密算法,提供了强大的数据保护能力。 2. AES基本原理 AES是一种对称
    的头像 发表于 11-14 15:11 373次阅读

    蓝牙AES+RNG如何保障物联网信息安全

    标准,主要用于保护电子数据的安全。AES 支持128、192、和256位密钥长度,其中AES-128是最常用的一种,它使用128位(16字节)的密钥进行加密和解密操作。AES属于分组密
    发表于 11-08 15:38

    高压真空开关具有哪些保护功能

    高压真空开关是电力系统中用于控制和保护高压电路的一种重要设备。它具有多种保护功能,以确保电力系统的安全稳定运行。 1. 过载
    的头像 发表于 09-26 09:50 296次阅读

    开源物联网技术--AES加密功能技术分享

    一、AES加密功能 在物联网行业中的应用 AES加密功能在物联网行业中有着广泛的应用。随着物联网技术的不断发展,越来越多的设备连接到互联网上,这也增加了数据泄露和网络攻击的风险。为了保护物联网设备
    的头像 发表于 09-11 14:50 608次阅读
    开源物联网技术--<b class='flag-5'>AES</b>加密功能技术分享

    用于具有AES硬件加密功能的TM4C129器件的共享密钥引导加载程序

    电子发烧友网站提供《用于具有AES硬件加密功能的TM4C129器件的共享密钥引导加载程序.pdf》资料免费下载
    发表于 08-27 09:56 1次下载
    用于<b class='flag-5'>具有</b><b class='flag-5'>AES</b>硬件加密功能的TM4C129器件的共享密钥引导加载程序

    是否可以调用内置函数来使用AES和12位密钥加密缓冲区?

    是否可以调用内置函数 (API) 来使用 AES 和 128 位密钥加密缓冲区? 我目前正在我的ESP8266项目中使用 Atmel 的 AES-128 实现,但我敢打赌ESP8266芯片的某个地方已经有实现了吗?
    发表于 07-12 13:41

    请问如何在非操作系统sdk中使用WPA2-PSK(AES)配置SoftAP?

    Apple iOS 抱怨我的 SoftAP 使用 WPA2-PSK (TKIP) 的安全性低,我相信这是因为它仍在使用 TKIP,我正在尝试使用 AES 配置它,非 os-sdk 文档说对
    发表于 07-08 07:03

    基于FPGAAES256光纤加密设计

    传输带宽和吞吐量而并未考虑到对信息安全的保护。随着对带宽,速率等要求日益增加,高速通信已经成为基本的要求。光纤通信因其具有低损耗,高抗干扰性,从而广泛得到应用。近几年由于大量用户数据的泄露,造成了极大
    发表于 06-19 19:50

    Cybt-413055-02是否具有AES 128位加密功能?

    Cybt-413055-02 是否具有 AES 128 位加密功能?
    发表于 05-29 06:20

    基于 FPGA 的光纤混沌加密系统

    一套完整的光纤通信加密系统(如图 2-1)。系统链路部分采用 Aurora 协议,该协议是一款轻量级的光纤链路协议,具有冗余少,可定制度高,链路速率快等特点。加密协议采用目前 AES2
    发表于 04-26 17:18

    AES加密协议是什么?AES加密协议的应用

    AES(Advanced Encryption Standard,高级加密标准)是一种广泛使用的对称密钥加密协议,它被设计用于保护电子数据的安全。以下是对AES加密协议的详细概述: 历史与标准化
    的头像 发表于 04-15 15:34 852次阅读

    基于FPGA的可编程AES加解密IP

    可编程AES加解密IP内建密钥扩展功能,使用初始密钥产生扩展密钥,用于加解密过程。可编程AES加解密IP处理128-bit分组数据,并且支持可编程的密钥长度:128-bit,192-bit和256-bit。
    发表于 01-09 10:49 492次阅读
    基于<b class='flag-5'>FPGA</b>的可编程<b class='flag-5'>AES</b>加解密IP