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

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

3天内不再提示

内置AES的FPGA确保系统设计安全的关键

星星科技指导员 来源:嵌入式计算设计 作者:嵌入式计算设计 2022-10-20 09:53 次阅读

嵌入式系统很容易成为黑客、安全漏洞和恶意攻击的牺牲品,除非在系统设计中纳入有效的安全性。今天,安全性是一个更大的问题,因为新的专有技术和有价值的知识产权被用作竞争壁垒。到目前为止,实现传统安全性的技术一直很麻烦,过时且成本高昂。然而,目前的趋势正在鼓励设计人员在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 显示了如何使用四元二设计软件在阿尔特拉奥斯特拉蒂克斯 III FPGA 中实现安全性。第一步是将安全密钥编程到 FPGA 中。设计软件需要256位用户定义的密钥(密钥1和密钥2)来生成密钥编程文件。然后,包含来自键 1 和键 2 的信息的文件通过 JTAG 接口加载到 FPGA 中。

图 1

pYYBAGNQqj2AcCzgAABCQWaS1D8400.jpg

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

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

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

安全入侵

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

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

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

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

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

图 2

poYBAGNQqj6AVqrjAAAcacppqdk690.jpg

设置入侵屏障

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

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

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

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

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

对这些 FPGA 进行逆向工程比对 ASIC 进行逆向工程更困难。标准工具不容易用于对这些FPGA进行逆向工程,这些FPGA是在65 nm高级工艺技术节点上制造的。事实上,仅对一个 FPGA 逻辑块进行逆向工程就可能需要大量的时间和资源。配置比特流加密使逆向工程更具挑战性。查找安全密钥以解密配置文件与复制它一样复杂;因此,从头开始创建竞争性设计可能比尝试对这样的安全FPGA设计进行逆向工程更容易,更快捷。

非易失性按键是一次性可编程的,以防止篡改。使用密钥对FPGA进行编程后,只能使用使用相同密钥加密的配置文件对其进行配置。尝试使用未加密的配置文件或使用错误密钥加密的配置文件配置 FPGA 会导致配置失败。配置故障表示可能发生篡改,无论是在外部存储器和 FPGA 之间的传输期间,还是在远程通信系统升级期间,在设计’Äôs 外部存储器中。

设计选项比较

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

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

通过电子发射检测进行的攻击首先涉及移除器件’Äôs封装以暴露芯片。接下来,将设备放置在真空室中并通电。然后,攻击者使用透射电子显微镜来检测和显示发射。至于第二种技术,晶体管‘Äôs阈值电压会随着时间而变化,因为电子在浮动栅极中积聚。这导致晶体管的阈值电压逐渐上升。

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

图 3

pYYBAGNQqkeAS6poAAAxdDoTmik190.jpg

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

编程状态探测也用于攻击基于反浪费的FPGA。技术包括聚焦离子束(FIB)技术和扫描电子显微镜(SEM)。FIB用于显微镜成像和设备的横截面,而SEM涉及使用光栅式扫描的显微镜成像,以检测从表面发射的二次电子。分析基于防灌注的FPGA’Äôs编程状态非常耗时,因为有数百万个防熔接链路和很小比例的编程。

改进的风险管理策略

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

审核编辑:郭婷

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

    关注

    1624

    文章

    21597

    浏览量

    601006
  • 嵌入式
    +关注

    关注

    5056

    文章

    18950

    浏览量

    301470
  • 存储器
    +关注

    关注

    38

    文章

    7413

    浏览量

    163466
收藏 人收藏

    评论

    相关推荐

    关于工程安全保护的FPGA设计方案

    AES-EFUSE是将密钥存储在FPGA内置的,只能写入一次的EFUSE寄存器中,同时必须使用原厂的JTAG Cable。写入后密钥将永远保存在EFUSE中,用于解密。
    的头像 发表于 07-04 11:36 2509次阅读
    关于工程<b class='flag-5'>安全</b>保护的<b class='flag-5'>FPGA</b>设计方案

    FPGA参赛作品】基于FPGAAES分组加密系统

    。本方案以FPGA实现AES加密算法为目的,硬件角度加速AES加密。不知道这个方案有没有吸引力,如果有的话就继续写设计方案了
    发表于 06-12 23:12

    如何使用TI新的SimpleLink MCU平台创建强大的楼宇安全系统

    ,选择一个可以解决多种协议的硬件平台并根据您的应用为您提供软件灵活性是个好主意。2.解决网络安全问题。安全性是一个关键问题,尤其是在构建安全系统时。消费者希望知道他们的个人信息将受到保
    发表于 08-03 14:38

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

    Programmable AES Encryption IP可编程AES加密IP可以集成到FPGA中,实现了AES(Advanced Encryption Standard) Rijn
    发表于 11-15 09:28

    如何才能确保电源系统符合FPGA要求?

    如何才能确保电源系统符合FPGA要求?FPGA使用的电源类型是怎样的?FPGA的对电源有什么特殊要求?F
    发表于 04-08 06:55

    物联网时代如何才能确保SoC的安全

    安全的片上系统需要的关键功能是什么?物联网时代如何才能确保SoC的安全
    发表于 05-20 06:51

    没有绝对安全系统:写在AES 256破解之后 精选资料分享

    本文讲的是没有绝对安全系统:写在AES 256破解之后,NULL在理论上,理论和实践是一致的。在实践中,呵呵。——(应该是)爱因斯坦(说的)(INFO:本文中不会出现公式,请放心阅读)AES
    发表于 08-09 09:08

    基于FPGA的低成本AES IP核的设计与实现

    用硬件实现数据加密已成为信息安全的主流方向。本文提出了一种基于FPGA 的低成本的AES IP核的实现方案。该方案轮内部系统资源共用,减少了系统
    发表于 01-06 15:11 10次下载

    基于AES算法的无线加密数字传输系统

    本文实现了一种基于AES 算法的无线加密数字传输系统,给出了该系统的结构,完成了AES 算法在FPGA 上的实现,将音频接口集成到
    发表于 01-22 15:09 5次下载

    基于FPGAAES加密算法的高速实现

    介绍AES 算法的原理以及基于FPGA 的高速实现。结合算法和FPGA 的特点,采用查表法优化处理了字节代换运算、列混合运算。同时,为了提高系统工作速度,在设计中应用了内外结合
    发表于 01-25 14:26 29次下载

    基于FPGAAES加密算法的高速实现

    介绍AES算法的原理以及基于FPGA的高速实现。结合算法和FPGA的特点,采用查表法优化处理了字节代换运算、列混合运算。同时,为了提高系统工作速度,在设计中应用了内外结合的流水线
    发表于 07-17 18:09 46次下载

    AES中的字节替换的FPGA实现

    介绍 AES 中的字节替换算法原理并阐述基于FPGA的设计和实现。为了提高系统工作速度,在设计中应用了流水线技术。最后利用MAXPLUS-II开发工具给出仿真结果,并分析了系统工作速度
    发表于 09-27 15:54 6023次阅读
    <b class='flag-5'>AES</b>中的字节替换的<b class='flag-5'>FPGA</b>实现

    一文详解AES最常见的3种方案_AES-128、AES-192和AES-256

    AES是一种区块加密标准算法,它的提出是为了升级替换原有的DES加密算法。因此它的安全强度高于DES算法。但不应片面理解,系统和数据的安全不仅与应用的加密算法有关,更与加密应用方案有关
    的头像 发表于 06-29 12:06 16.1w次阅读

    使用FPGA实现类AES分组密码统一框架的详细资料说明

    通过将AES算法模块化、运算一般化,给出了类AES算法的统一框架。在此框架下不仅可以同时实现AES的加密、解密,而且可以通过外部参数动态设定分组算法,使得密码算法的使用更加灵活、安全
    发表于 03-26 15:58 16次下载

    具有内置AESFPGA保护系统设计

    编程状态探测也用于攻击基于反熔丝的 FPGA。技术包括聚焦离子束 (FIB) 技术和扫描电子显微镜 (SEM)。
    的头像 发表于 06-15 09:05 1328次阅读
    具有<b class='flag-5'>内置</b><b class='flag-5'>AES</b>的<b class='flag-5'>FPGA</b>保护<b class='flag-5'>系统</b>设计