OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2641|回复: 0

嵌入式开发系统中的加密性能:第1部分

[复制链接]

31

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2020-5-13
在线时间
16 小时
发表于 2020-6-2 09:35:59 | 显示全部楼层 |阅读模式

嵌入式系统上的密码学基础密码术是处理数据的艺术和科学,因此外部团体在没有任何秘密的情况下就无法撤消或模仿该操作。它启用了高级功能,例如:

存储和传输期间信息的机密性

用户身份验证

接收/检索的信息的完整性

不可否认交易的

有效性数据和资源的可用性信息和资源的

受控访问

诸如IPsec和SSL之类的网络安全协议以及诸如IKE(Internet密钥交换)之类的密钥协商和管理应用程序使用各种加密算法来实现这些高级目标。

影响加密性能的变量

尽管加密启用的安全协议有很多好处,但也有不利之处。密码学的计算量很大。安全协议(相对于其非安全类似物)涉及的额外处理步骤会给经常使用密码安全性的系统带来沉重的CPU使用率。

为了解决这个问题,飞思卡尔等半导体供应商将密码加速器集成到了用于嵌入式网络和通信系统的处理器中。

尽管这似乎是故事的结局,但实际上仅仅是开始。嵌入式开发处理器中加密加速器的存在并不会自动提高安全协议的性能。

系统(或嵌入式处理器)的理论密码性能与其在给定应用程序中的性能之间可能存在巨大差异。

本文的目的是使用飞思卡尔PowerQUICC集成通信处理器作为示例,识别和解释影响系统级安全性能的变量,并演示这些变量如何在测量的吞吐量中体现出来。

加速架构 有许多加速器实现,但是只有一些基本架构。流通 和后备 两种基本架构。

直通加速器

直通加速器在数据从一个位置“流”到另一位置时对数据执行加密操作。在存储系统中,此流程可能是从系统内存到硬盘驱动器;在网络系统中,流可以在网络接口和系统内存之间。

直通式安全处理器的定义特征是嵌入式处理器的CPU具有一定程度的自治权。直通安全处理器的网络示例通常能够终止IPsec。

嵌入式开发处理器的CPU上运行的软件的角度来看,IPsec不存在,并且所有的包和有效负载处理都是对明文数据执行的。IPsec的终止意味着直通安全性加速器能够对数据包进行分类,确定数据包是否需要IPsec处理,如果需要,则确定其属于哪个隧道或安全关联。

流通加速器还必须能够执行所有IPsec头和尾处理,并保持安全会话状态。直通加速器或直通加速器前面的直通网络处理模块必须能够处理第2层和第3层标头以及IP碎片等条件。

将正常的下层选项视为异常会创建一个拆分的编程模型(大多数数据包通过加速器,某些数据包到达CPU上的软件),这可能是会话状态管理中的一个大麻烦。

直通加速器实现通常是ASIC或类似网络处理器的,这意味着对安全协议更改(或安全协议下方的协议)的适应性可能受到限制或不存在。

实现的性质倾向于将直通加密加速器推向使用范围的相对两端。一方面是高性能(10 Gbps),高成本(> 150美元)的离散安全处理器。

类似NPU的设备可以通过微代码更新来支持多种安全协议(尽管通常一次只能支持一个)。这些设备用在高端系统中,因为这些系统可以吸收冗余分类功能的成本以及加速器冗余存储器总线的成本。

另一端是流通的专用加密加速器。这些加速器通常集成到本身就是ASSP的SoC中。

用于电缆调制解调器的芯片组可能具有带DES解密加速功能的DOCSIS MAC / PHY,而SATA控制器可能具有用于磁盘扇区加密的集成AES。这些实现可能具有一些可配置性,但没有可编程性。

尽管直通加速可实现很高的理论性能百分比,但由于它们缺乏可编程性,昂贵的冗余硅片面积或两者的结合,因此很少集成到通用嵌入式处理器中。

后备加速器

与直通加速器相比,后备加速器几乎没有自主权。该体系结构由执行数据包分类的软件驱动实体(例如CPU或NPU)定义为安全处理的前提条件。CPU还执行OS功能(缓冲区/内存管理)和网络协议处理。

诸如IPsec之类的网络安全协议非常复杂,有状态,并且有很多选项。IPsec要求在每个数据包的基础上查阅安全策略数据库和安全关联数据库。

这次协商确定了将保护数据的算法以及这些算法的加密密钥。必须监视密钥寿命并启动密钥刷新。

IPsec的各种模式要求对原始IP数据包进行不同的封装,并且所有这些模式均要求在进行加密处理之前对数据包进行碎片整理。CPU为加速器运行设备驱动程序,以卸载加密算法处理。

第一个广泛使用的加密加速器是外部后备设备,例如HiFN 7901和Motorola(现为Freescale)MPC180。这些外部设备通过专有和标准总线(例如PCI)连接,这些加速器被集成到嵌入式通信处理器中是自然的发展。后备加速器有两个主要子类别,即低级 和高级 。

低级加速器 。低级加速器没有标准定义。但是,任何无法读写数据的加速器(缺乏DMA功能)都可以称为低级加速器,无需过多争论。如果加速器无法获取自己的数据,则嵌入式处理器CPU上的软件必须对外部DMA(可能是两个,一个用于输入,一个用于输出)进行编程,以将数据传输到加速器的FIFO。

如果这些FIFO不支持外部DMA握手信号(DREQ,DACK),则CPU可能会发现将数据直接写入加速器FIFO并读取输出的效率更高。虽然低级加速器可以异步运行,但切换到其他任务并不现实。

除非加速器具有大的FIFO并且要处理的数据很小,否则CPU将必须循环运行,在将数据写入输入FIFO和从输出FIFO轮询/读取数据之间交替进行。

一些后备加速器的级别极低,并被实现为CPU的辅助处理单元(APU)。加速器与处理器的这种紧密耦合具有非常低的设置开销(本系列后面将讨论)的优点。

缺点是加密APU需要持续的CPU干预,并有效地使该架构同步并阻止其他操作。因为许多安全协议操作都要求对数据执行加密和身份验证(例如用于IPsec的3DES-HMAC-SHA-1),所以这种架构风格变为串行,同步和阻塞,其中串行是指3DES,后跟HMAC -SHA-1。

如果将具有DMA功能的加速器的DMA功能一次绑定到一个功能,则仍然可以将其视为低级加速器。单一功能意味着DMA描述符具有支持请求的必填字段,例如“从位置1获取密钥,从位置2获取数据,执行3DES加密并写入位置3”。

乍一看,这似乎是足够的。但是,大多数安全协议操作都要求以定义的顺序对同一数据执行加密和身份验证。如果对3DES-HMAC-SHA-1执行IPsec,则要求处理器创建两个简单的描述符(一个用于3DES,另一个用于HMAC-SHA-1)。

加速器将这些描述符视为两个独立的操作。由于这些操作是分开处理的,因此要读取和写入数据的数据将被读取和写入两次:一次用于3DES加密,第二次用于HMAC-SHA-1完整性检查。

这种简单的DMA功能是否足以使此类加速器脱离低级类别,这取决于读者。这种“双通道” DMA架构可能是高级加速器的最低等级。尽管提供了一定程度的异步性以实现任务切换,但是具有DMA功能的双通道加速器可能比双通道加密APU的性能要低,因为双通道DMA加速器无法在两个独立的描述符之间缓存数据。

高级加速器。 如果通过原始或不存在的DMA功能定义了低级加速器,则通过复杂的DMA功能(包括流水线的读写功能,分散/聚集功能以及单遍加密和消息身份验证)定义了高级加速器。

高级后备加速器体系结构在诸如内存延迟高而带宽低的外围总线(如PCI)上发展为外部协处理器。为了获得价值,这些后备加速器必须以最少的CPU开销和内存总线带宽来完成尽可能多的工作。

为了实现这些目标,加速器变得与处理流程高度异步,因此CPU可以在检查加速器的进度之前进行任务切换并做大量工作。

高级加速器始终支持单遍加密和身份验证。有些甚至支持附加级别的协议处理卸载,例如添加安全协议头和尾。

加速器数据流

无论是内部还是外部,低级或高级,后备加密加速器的指令和数据流都是相似的,即使它们的性能和效率不同。

下面的图1 显示了PowerQUICC III处理器的高级框图,以说明集成通信处理器中后备加速器的位置。

图1:具有后备加密加速器的PowerQUICC处理器

图2 和图3依次 显示了高级密码加速器(例如Freescale SEC)的典型数据流。处理步骤如下所述。

步骤1。 数据包到达以太网接口,并放置在主存储器的缓冲区中。此步骤特定于PowerQUICC的优化包括以太网中断合并和将数据包头存储到L2高速缓存。

第2步。 在通知(或通过轮询发现)一个数据包可用于处理时,CPU读取数据包头以执行分类。分类涉及软件根据各种表检查标题字段。

在此特定示例中,IPsec分类涉及在两个数据库中的查找:一个安全策略数据库,用于确定是否需要对数据包进行IPsec保护;以及一个安全关联数据库,用于确定在封装数据包时要使用的特定IPsec隧道和参数。

步骤3。CPU为安全引擎(SEC)创建一个描述符,该描述符包括配置信息以及指向密码操作所需的密钥,上下文和数据的指针。

在将数据包发送到加密加速器之前,CPU对数据包执行的预处理量取决于加速器的功能。一些加速器仅执行加密操作。其他加速器执行一定级别的协议处理,例如添加IPsec标头。

第四步。 CPU将指向描述符的指针写入SEC加密通道(DMA)。

图2:后备安全架构步骤1-4

步骤5。 SEC从主存储器中获取描述符。

步骤6。 SEC将自己配置为根据描述符进行单次处理,并开始从主内存中获取密钥,上下文和数据。它在处理过程中将解密的数据写回到内存中。

步骤7。 操作完成时,SEC会通知CPU(可配置选项,用于通过中断或轮询位进行通知。)

步骤8。 核心对数据包执行修饰格式化。

步骤9。 内核为以太网接口创建一个Tx缓冲区描述符。

步骤10。 以太网接口转发解密的数据包。文章来源:http://emb.hqyj.com/Column/20209527.html


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 12:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表