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
    +关注

    关注

    1602

    文章

    21317

    浏览量

    593152
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117712
  • sram
    +关注

    关注

    6

    文章

    742

    浏览量

    113898
收藏 人收藏

    评论

    相关推荐

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

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

    电子负载应具有完整的保护功能

    电子负载应具有完整的保护功能。保护功能分为内部(电子负载)保护功能和外部(被测器件)保护功能。内部保护
    的头像 发表于 02-28 17:25 223次阅读
    电子负载应<b class='flag-5'>具有</b>完整的<b class='flag-5'>保护</b>功能

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

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

    什么是漏电保护芯片?具有什么作用?

    的使用对于保障人身财产安全具有非常重要的意义。下面就是我们几款漏电保护芯片的具体描述。 它适用于交流110V~220V(50~60Hz)供电系统,用于检测AC型剩余漏电信号,可直接驱动SCR(可控硅),当
    发表于 12-18 10:16

    IN6xx硬件AES介绍

    硬件AES
    橙群微电子
    发布于 :2023年12月04日 14:57:33

    基于PIC单片机的AES算法优化设计

    电子发烧友网站提供《基于PIC单片机的AES算法优化设计.pdf》资料免费下载
    发表于 10-30 09:46 0次下载
    基于PIC单片机的<b class='flag-5'>AES</b>算法优化设计

    Altera FPGA内置的乘法器为何是18位的?

    Altera的FPGA内置的乘法器为何是18位的?
    发表于 10-18 07:01

    使用加密保护7系列FPGA比特流

    电子发烧友网站提供《使用加密保护7系列FPGA比特流.pdf》资料免费下载
    发表于 09-13 15:31 0次下载
    使用加密<b class='flag-5'>保护</b>7系列<b class='flag-5'>FPGA</b>比特流

    如何将AES的私人密钥储存在SPROM中

    : NuMaker-PFM-M487 V3.0 M480系列设计了用于知识产权保护的硬件CRYPTO和SPROM,加密(加密加速器)包括一个安全的假随机数字生成器核心,支持AES、DES/TDES、SHA和HMAC算法,安全保护
    发表于 08-22 06:58

    如何实施软件AES以及AES加密/解密

    这一样本代码展示了如何实施软件AES(高级加密标准)以及AES加密/解密如何运作。 您可以在下列时间下载样本代码http://www.nuvoton.com/resources-downlo.1218180400。 nuvoton 核
    发表于 08-22 06:41

    AES HWIP技术规格

    本文档介绍了AES 硬件 IP 功能。高级加密标准 (AES) 是 OpenTitan 协议中使用的主要对称加密和解密机制。 AES 单元是一个加密加速器,它接受来自处理器的请求以加密或解密 16 字节的数据块。它作为外设模块连
    的头像 发表于 08-03 10:46 489次阅读
    <b class='flag-5'>AES</b> HWIP技术规格

    浅析FPGA原型验证系统的时钟资源

    如果SoC设计规模小,在单个FPGA内可以容纳,那么只要系统中的FPGA具有所SoC所设计需要时钟的数量
    发表于 05-23 15:46 525次阅读
    浅析<b class='flag-5'>FPGA</b>原型验证<b class='flag-5'>系统</b>的时钟资源

    探究加密芯片:它的定义、作用以及提供的保护措施

    加密芯片是一种具有数据加密和安全保护功能的芯片,主要用于对敏感数据进行加密和保护,防范黑客攻击和信息泄漏。随着信息技术的快速发展,信息安全问题越来越受到人们的关注,加密芯片作为一种保证信息安全的重要
    发表于 05-19 17:26

    科普:简述DES与AES的区别

    安全加密在IC领域也是相当重要的部分了,这次我们简单了解下经典加密算法,DES和AES
    的头像 发表于 05-11 11:40 2895次阅读
    科普:简述DES与<b class='flag-5'>AES</b>的区别

    如何实现AES128-CMAC的算法?

    我在 S32K118 硬件上启用了 Csec 模块。上位机需要执行软件AES128-CMAC算法,然后将CMAC值发送给ECU进行校验。但是我不知道如何实现AES128-CMAC,你能给我一些建议吗?
    发表于 05-04 08:06