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

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

3天内不再提示

软件或硬件中的密码学 - 这取决于需要

星星科技指导员 来源:ADI 作者:ADI 2023-03-06 14:22 次阅读

随着软件密钥长度的增加,以适应对更高安全性不断变化的需求,因此市场需要更多种类的加密实现。随着最近内核设计和频率性能的改进,设计人员现在开始询问这些安全算法是否仍需要定制IP模块。简而言之,设计人员是否可以在硬件中使用通用内核来节省空间和成本,并将密码算法嵌入软件中?答案很简单——嗯,没那么简单——这取决于需要。

介绍

加密算法是高性能、安全的引擎,在设计中需要相当大的空间。当添加对策以阻止安全攻击时,空间和内存要求变得更加苛刻。由于这些原因,加密算法传统上作为专有设计(即知识产权,IP)嵌入到智能卡或8位芯片上的硬件中。随着最近内核设计和频率性能的改进,设计人员现在正在询问这些安全算法是否仍然需要定制的IP模块。简而言之,设计人员是否可以在硬件中使用通用内核来节省空间和成本,并将密码算法嵌入软件中?答案很简单——嗯,没那么简单——这取决于需要。

保密科学

密码学最初被设计并被称为保密科学。它是国王、将军、间谍和大使的武器。在上个世纪,密码学已经成长为一个更复杂的工具箱,为用户提供信息信任。

加密设备的历史悠久,比微处理器的历史还要长。(提醒一下,密码学及其阴暗面密码分析是计算机技术的起源,这要归功于Colossus项目。1军队和外交官开发了加密机器来保护他们的通信。根据所需的强度(即战场上的战术通信比外交信息的寿命短),这些机器满足了几个限制:速度、可靠性、完整性、机密保护、易用性和可接受的成本。

当安全需求蔓延到民用世界时,新技术和制约因素随之发展。非对称加密2这些市场尤其飙升,而成本成为一个更大的问题。与此同时,信任、真实性和可信度始终是金融和银行市场的首要考虑因素。只有当加密机制能够取代传统的面对面协议和握手时,远程金融交易才有可能。

因此,最早的加密设备严格致力于安全性。凭借类似于地板保险箱的外形尺寸,不断发展的硬件安全模块 (HSM) 可以安全地托管和处理大多数密钥。HSM 由钢制成,很重,过去和现在都与军用加固箱非常相似。这些安全模块由一个安全盒和处理的安全密钥组成,主要用于身份验证,但也用于密钥生成、PIN 码生成和密钥保护(存储)。开发了安全标准,例如 NIST FIPS 140-2 认证计划、用于智能卡的 EMV 标准和通用标准 (ISO 15408),然后加速了这些设备的部署。®

机密性、完整性和身份验证

首字母缩略词CIA(代表机密性,完整性和身份验证)象征着密码学今天可以提供的主要服务。用最简单的术语来说,它为明确识别的威胁提供了准确的答案。

需要保密以避免窃听和未经授权访问所有者只想与授权人员共享的敏感数据。因此,大使馆向其外交部发送照会;间谍传输行动的结果,其他人不得阅读所写的内容(“仅供你的眼睛使用”)。在消费者的世界里,只有授权用户才能访问的付费电视节目的传输需要保密性。需要保护通过公共网络传输的个人数据,否则这些数据很容易访问。移动电话和Wi-Fi连接就是典型的例子。®

完整性可保护未经授权和/或不受控制的修改。修改设备意味着改变行为(软件已被修改)和由此产生的置信度丧失(数据不再可信)。这种类型的恶意修改通常是在设备所有者被误导时在其他可信赖设备上运行的恶意软件完成的。银行数据对这种威胁特别敏感,因为如果金融交易被恶意修改,数据完整性就会丢失。

身份验证保证了信息的来源。如果来源未经验证,信息有多大价值?显然,答案取决于该信息的来源和敏感性。已签名的合同会提交签名者,因此身份验证与合同内容本身一样重要。现代移动设备和 PC 仅接受经过身份验证的授权应用程序更新和/或修改。这可确保没有人控制设备并运行未经授权的软件。身份验证可保护设备或组件免遭伪造。受信任的元素不仅可以证明其来源,还可以验证其所附加到的设备的来源。因此,电池、打印机墨盒或耗材向托管设备显示其“凭据”,而托管设备又对该耗材进行身份验证“信任”。

加密算法需要成本

加密社区开发了许多算法来确保这些安全服务。非对称密码学基于数论,对称密码学基于更实用的“配方”。由于它们被广泛采用和发布,这些算法今天可以作为标准使用,通常很容易测量并扩展到应用程序。

这些算法有一个明显的缺点,即为已识别的威胁提供准确的答案:成本,或者更准确地说,成本。成本是根据执行时间、内存使用、功耗和芯片表面来衡量的。这些都不是微不足道的小问题;众所周知,他们过去曾阻止甚至阻止在设备中实施有效的安全措施。专有算法和加扰算法是设计捷径,在行业中经常使用,并被认为足够了。诚然,这些快捷方式消耗的资源更少或简化了安全管理。这些解决方案总比没有好,并不能真正阻止攻击者。相反,专业的安全方法可以促进对客观识别的威胁进行可靠、标准化和适当的防御。

安全行业早就了解这些原则。它的所有历史都表明,在最低实施成本与所需安全级别的权衡之间不断斗争。一个明显的例子是非对称加密(例如,RSA,椭圆曲线),其中密钥长度对应于安全级别;密钥越长,保护越强。但在这种情况下还有一条规则适用:密钥越长,复杂性就越高。重述,计算时间更长,所需资源更大。谨慎的风险评估估计哪个密钥长度足以完成任务,因此,实施所需的最低复杂程度是多少。事实上,今天在简单设备上使用的RSA密钥正在非常缓慢地延长,而设备的计算能力却在增加。最后,使用太短的键会削弱实现;使用太长的密钥是不必要的昂贵。

嵌入式密码学的演变

加密算法最常用于智能卡。该芯片通过检查持卡人凭据(通常是PIN码)和执行加密操作来确保安全性。

这些卡在架构方面非常简单,最初嵌入了算法和8位内核,运行频率为几十兆赫。嵌入式算法提供了一些服务,但绝对无法执行任何加密计算。出于这个原因,必须添加加密硬件块。

最初,加密硬件块仅执行对称加密操作,因为算法不如非对称对应算法复杂。因此,这些硬件块存在很强的安全限制,因为它们需要仔细管理卡个性化、密钥分发和密钥多样化。此外,无法执行板载RSA计算导致了安全漏洞。因此,EMV静态认证方案是用于卡认证的唯一方法。因为这些卡并不是那么“聪明”,所以该方案很容易受到欺诈卡的攻击。

黑客继续利用RSA硬件块的弱点,而该硬件的成本也在下降。基于板载RSA计算的更安全的身份验证方案出现了。尽管如此,芯片成本仍然限制了所用密钥的长度,内核仍然无法执行复杂的计算。

其他形式因素出现在 1990 年代。Maxim的iButton器件通过提出创新的密钥保护方法和使平台更加灵活,增强了安全性。PCMCIA卡也因其易于在PC中接受,快速的数据交换速率和更大的外壳而非常受欢迎。®

尽管取得了所有这些进步,但直到2003年,密码学的架构仍然保持不变:一个缓慢的8位内核,通常是8051,由加密硬件块支持。其他限制仍然存在:RAM大小小(通常为数百字节),以及应用程序范围有限(主要是ROM代码,特别是对于智能卡)。后来出现的非易失性存储器(如EEPROM和闪存)增加了某些应用的灵活性,但并没有显着改变加密条件或应用方法。

针对不断变化的安全需求进行重新设计

对于安全性优先级较低且设备不太关注加密/安全需求的应用程序,软件实现通常是灵丹妙药。如今,检查完整性并验证嵌入式固件真实性的引导加载程序通常用于防止对消费者和工业设备的大多数威胁。这些不太复杂的安全应用程序的基本加密需求是哈希函数和数字签名验证,所有这些都可以通过软件实现来解决。该软件实现显然比嵌入式保护更简单,并且不会影响芯片尺寸。它不需要可能不是每个客户都使用的专用硬件块,最后也不会增加系统成本。

当然,应用程序在发展。如果昨天不需要安全,明天可能变得至关重要。由于现有解决方案中没有嵌入加密块,因此只有加密软件和后续更新将提供加密升级。如果安全需求很高并且必须嵌入到硬件中,则需要重新设计设备,这会导致潜在的解决方案故障。

这一过程的一个典型例子是能源计量,这是一个标准化尚未完成的行业,专有解决方案和计划仍有相当大的自由度。与使用软件添加简单的加密服务相比,将安全芯片添加到现有电表可能过于复杂(即,额外的芯片和未确定的PCB修改),太昂贵,因此为时过早。如果只是在仪表生命周期中的某些时间偶尔使用,所有这些甚至可能都不需要。成本与风险分析将量化仪表制造商和用户的价值和回报。从历史上看,如果在大众市场中增加安全性的理由不明显,那么安全性总是因其额外费用而被拒绝。

加密软件引入新风险

现在是时候承认,通过加密软件增加安全性确实有其自身的风险。当算法执行在其他应用程序同时运行的环境中执行时,来自计时度量或时序变化或缓存数据的信息泄漏可能允许这些其他应用程序检索有关已处理密钥的信息。3这种威胁是严重的,任何“开放”平台都会受到这种威胁的影响。只有经过身份验证的平台,特别是运行经过身份验证的应用程序的平台,才应被视为设计可接受的平台。

了解权衡:加密硬件还是软件实现?

您可能会问自己是使用软件还是硬件实现来获得所需的安全性。答案取决于需求:应用程序真正需要多少安全性?

在很多情况下,使用加密硬件实现安全性是最有意义的。当需要像付费电视或SSL加速器一样处理大量安全数据时,可以在硬件中最好地实现高性能安全性。

如果使用快速微控制器实现安全性,则数据处理速度将比使用外部软件实现更快。硬件模块还可以简化设计,避免内核处理数据的问题。在应用程序执行时同时处理数据可提供更好的实时系统性能。最后,回想一下,硬件实现的成本高于软件实现。

为了使主题进一步复杂化,请注意,硬件或软件实现之间的权衡可以存在于同一应用程序中。在这种情况下,最终的设计决策应基于密码学的不同预期用途。对称的批量加密需求可以在硬件中解决,而身份验证、密钥交换和协议设置最好由软件解决。最终,关于如何设置密码学的决定将基于时间、空间、成本或所有平衡。

还有另一个非常重要的情况需要考虑。如果应用程序不知道正在使用加密机制,则加密必须在硬件中。这种情况最典型的例子是出于程序安全而动态自动加密/解密。只有加密硬件可以透明地处理此类服务,因为它允许从不安全的上下文轻松移植和执行软件到非常安全的上下文,而无需额外费用。假设加密引擎配置已完成,则一切都以透明方式执行。这种嵌入式加密解决方案存在于多个芯片上,从MAXQ系列RISC微控制器到DeepCover安全微控制器(USIP)平台。像这些设备这样的嵌入式解决方案有主要的好处:软件开发不需要开发密码学,甚至像完整的Linux操作系统这样的复杂软件也可以轻松移植到安全平台,而无需修改代码。®®®

一些传统情况倾向于硬件加密。具有非常小内核的芯片(如IC的“古老”时代)没有资源或时间以合理的方式执行加密计算。即使考虑到非常优化的实现,也是如此。RSA 加密几乎在每个平台上都是可行的,而 RSA 解密对于密钥长度大于 1024 位是完全不现实的。

当由于芯片不嵌入任何内核而没有软件执行空间时,硬件中的加密是唯一的解决方案。这种情况在成本面临压力且安全性不是销售优势的消费品中很常见。事实上,这就是制造商希望保护其知识产权免受造假者或竞争对手侵害的地方和方式。虽然这种防御性功能没有向客户声明或推广,但它仍然以尽可能低的成本存在。保持这些低成本意味着最小的芯片尺寸,这意味着芯片功能最小化。我们通常只在这些情况下看到身份验证芯片。这些芯片执行对称的加密计算,这涉及挑战和响应:发送秘密并接收身份验证。对称质询和响应密码学现在通常用于笔记本电脑手机的电池,因为制造商非常关注假冒。

随机数生成(如果不是伪随机)也需要在硬件中进行加密实现。随机数的质量(即真正的随机性)和易用性(即不需要存储状态号)要求硬件资源。理想情况下,软件后处理可以通过应用单向函数来帮助生成更多数字。

金融终端对安全性要求更高

最近的标准,如EMV,万事达卡PayPass。®™,或VISA PED导致了新类别安全设备的开发和改进。今天,每当人们谈到智能卡时,你实际上指的是智能卡读卡器。通过 PIN 码进行身份验证意味着对该 PIN 码的保护,最后,PIN 码加密意味着可以使用加密服务。®

这种增强安全性的最大市场之一是金融终端,销售点(POS)和自动取款机(ATM)。虽然POS机和ATM机已经在使用磁条技术,但由于银行和信用卡计划的大力支持,EMV标准的实施最近激增。从美国国内的几个市场,POS机和ATM已经扩展到一个全球性的标准化市场。与支付交易相关的服务正在增长,因为POS和ATM设备现在托管丰富的多个应用程序。事实上,这些商业设备现在的功能更像消费类设备,因为它们在计算能力方面就像旧的PC,它们通过回收技术(例如触摸屏,颜色,便携性,设计)来模仿智能手机

然而,与种类繁多的消费设备不同,金融终端仍然需要高水平的安全性。这些终端是篡改的关键目标,因此标准 PCI PTS 地址的安全性必须包括物理保护和广泛使用加密技术。

智能卡架构不再是保护这些金融终端的唯一选择。现在两种主要方法并存,双芯片架构和单芯片架构。

双芯片架构结合了多用途、通用、32位功能强大的微控制器和更小的配套安全芯片。此体系结构使制造商能够将安全服务和其他服务分开;安全芯片处理安全服务,而其他服务由通用微控制器寻址。安全芯片可能具有足够的计算能力,但它通常包含加密硬件块。这种配置主要用于历史原因,因为这些芯片通常继承基于智能卡或iButton设备等先行者设计的技术。此方法允许您将具有现成芯片的加密服务添加到已设计的旧技术的继承认证中。当这种“智能”软件运行并利用硬件块时,用户可以实现几乎所有常用算法。因此,软件的灵活性和硬件的性能结合在一起,以实现最大的结果。

单芯片架构使用具有强大 32 位内核的单芯片,时钟频率为数百兆赫,能够运行具有图形效果的丰富操作系统并处理各种通信链路(例如以太网、Wi-Fi、移动)。该芯片解决了所有加密任务,并且很有意义,因为它可以利用软件的大量资源来实现几个明显的好处。

算法选择的灵活性;向平台添加新算法就像软件更新一样简单。

满足性能与应用需求相对应。

无限制地支持较大的密钥长度,从而延长了安全设备的使用寿命。

添加简单的对策。

芯片上没有额外的成本;由于加密使用,没有芯片增加。

这种安全单芯片的一个例子是Maxim USIP PRO,它非常有效地运行最常见加密算法的软件实现(表1)。

算法 速度
SHA-1 2083kBps
RSA 2048 CRT 解密 400毫秒
RSA 2048 加密 18毫秒
ECDSA P-192 标志 23毫秒
ECDSA B-163 标志 16毫秒

此性能表明,通常的加密需求(如 PCI PTS 要求中表示的需求)可在可接受的时间内得到解决。

结论

随着软件密钥长度的增加,以适应对更高安全性不断变化的需求,因此市场需要更多种类的加密实现。新算法(椭圆曲线)可能会降低应用程序的复杂性,但设计人员仍然必须在软件或硬件中实现安全性之间进行权衡。尽管特定服务、利基市场或非常小的芯片总会有例外,但嵌入式密码学正在取代软件密码学,提供更广泛的服务。金融交易的高度安全性是一个及时的例子,说明为什么以及如何只有嵌入式密码学才能保护这些系统及其用户。

审核编辑:郭婷

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

    关注

    48

    文章

    6811

    浏览量

    147646
  • 芯片
    +关注

    关注

    447

    文章

    47801

    浏览量

    409165
  • 以太网
    +关注

    关注

    40

    文章

    5077

    浏览量

    166238
收藏 人收藏

    评论

    相关推荐

    密码编码

     密码编码密码编码(加密方法的C与C++实现)分分三个部分。第一部分描述密码学
    发表于 09-25 09:49

    现代密码学

    现代密码学课件,大家可学习学习,了解了解
    发表于 05-10 15:56

    设计的门数是否取决于所使用的语言

    嗨,大家好, 设计的门数是否取决于所使用的语言(如VHDLVerilog)。如果是这样..哪个HDL为我们提供了优化的门数......以上来自谷歌翻译以下为原文Hi every one
    发表于 03-26 09:48

    产业融合的实现取决于什么技术

    当被赋予了相应的智能性之后,数字工厂就具有足够的灵活性,能够根据新的及变化的要求快速、动态地调整生产线。这种配置正在有效提高工厂的效率和吞吐量。但是仅仅是个开始。实现真正的产业融合取决于以下四个关键领域的技术进步
    发表于 07-30 07:55

    电容在高速电路的特性取决于什么?

    带有寄生电感、泄露电阻、寄生电阻这样的小电路。可以说,电容再高速电路的特性取决于电容分量、电感分量、电阻分量及泄露特性。
    发表于 08-06 08:10

    极限频率取决于什么

    `请问极限频率到底取决于什么?`
    发表于 08-23 16:34

    请问纹波取决于ADC时钟的外部DSM ADC基准吗?

    您好,我尝试使用外部参考电压(1.25V)在我的设计。问题是,我有一个纹波(+-50MV),取决于转换率/ ADC时钟。我在P0(3)上选择了“外部VREF”,我必须做更多吗?看来这个GPIO
    发表于 10-10 06:12

    集成电路的工作速度主要取决于什么

      谁来阐述一下集成电路的工作速度主要取决于什么?
    发表于 04-09 16:59

    STM32密码学诀窍,这套资料帮助你掌握!(方法论+加密库资料合集)

    部分资料介绍密码学基本原理第一部分:如何传输机密数据。我们会看到,对称加解密和非对称加解密技术在保证数据安全通信的过程,发挥的不同作用,以及二者结合后如何解决了一个传输机密数据过程的关键问题
    发表于 08-17 14:39

    什么是密码学的DES

    得不提一个东西——密码学(是不是听起来头皮发麻心跳加速),稳住稳住,老司机上线带你。今天给大家say&see什么是密码学的DES。简介 DES:****English Name..
    发表于 07-22 07:16

    物联网安全机制密码学基础

    Chp9 物联网安全机制密码学基础(1)加密模型密码是通信双方按照约定的法则进行信息变换的一种手段。依照这些信息变换法则,变明文为密文,称为加密变换;变密文为明文,称为解密变换。信息称为明文,明文
    发表于 07-22 06:31

    指令寄存器的位数取决于什么

    1. 在程序执行过程,Cache与主存的地址映象由(1)。A. 硬件自动完成B. 程序员调度C. 操作系统管理D. 程序员与操作系统协同完成2. 指令寄存器的位数取决于(2)。A. 存储器的容量
    发表于 12-22 08:23

    BLE5.0支持是否还取决于使用哪个NimBLE堆栈呢?

    ?ESP-IDF 的哪些组件负责软件支持?ESP-IDF 为支持 BLE5.0 做了哪些改动?2) 我正在使用 NimBLE。BLE5.0 支持是否还取决于使用哪个 NimBLE 堆栈?3) 有没有
    发表于 03-02 06:55

    请教大神电机的磁通取决于电压还是取决于电流?

    请教大神电机的磁通取决于电压还是取决于电流?为什么?
    发表于 03-02 10:36

    软件硬件中的密码学——取决于需要

    发表于 11-17 12:41 0次下载
    <b class='flag-5'>软件</b>或<b class='flag-5'>硬件</b>中的<b class='flag-5'>密码学</b>——<b class='flag-5'>取决于</b><b class='flag-5'>需要</b>