加密加速器以及用于加密的系统和方法技术方案

技术编号:33080273 阅读:14 留言:0更新日期:2022-04-15 10:32
公开了一种加密加速器和用于加密的系统和方法。该加密加速器可以包括输入缓冲器,该输入缓冲器用于将包括消息的第一部分的第一数据存储在第一地址范围中并且将包括消息的第二部分的第二数据存储在第二地址范围中。该加密加速器可以包括一个或更多个部件,该一个或更多个部件用于确定第一部分和第二部分的长度,从第一地址范围读取第一部分,基于第一地址范围中的第一数据的端点的指示而丢弃第一地址范围中的任何虚拟数据,从第二地址范围读取第二部分,以及基于第二地址范围中的第二数据的端点的指示而丢弃第二地址范围中的任何虚拟数据。该加密加速器可以包括用于使用第一部分和第二部分来执行加密操作的加密引擎。一部分和第二部分来执行加密操作的加密引擎。一部分和第二部分来执行加密操作的加密引擎。

【技术实现步骤摘要】
加密加速器以及用于加密的系统和方法


[0001]本专利技术涉及密码学领域,并且具体地涉及利用相关数据加密方案的认证加密中的虚拟数据去除。

技术介绍

[0002]在一些情况下,安全通信场景中的消息包括至少两个部分——仅被认证的附加认证数据部分(AAD)以及既被认证又被加密的明文部分。执行该认证加密的加密操作称为具有相关联数据的认证加密(AEAD)。AEAD可以用于同时确保数据的机密性和真实性。通常,AAD部分包括消息报头信息,而明文部分包括消息有效载荷。

技术实现思路

[0003]在一些实现中,一种加密加速器包括:输入缓冲器,用于将第一数据存储在第一地址范围中,其中第一数据包括消息的第一部分,并且用于将第二数据存储在第二地址范围中,其中第二数据包括消息的第二部分;一个或更多个部件,用于确定第一部分的长度和第二部分的长度,基于第一部分的长度从第一地址范围读取第一部分,基于第一部分的长度和第一地址范围中的第一数据的端点的指示而丢弃第一地址范围中的任何虚拟数据,基于第二部分的长度从第二地址范围读取第二部分,基于第二部分的长度和第二地址范围中的第二数据的端点的指示而丢弃第二地址范围中的任何虚拟数据;以及加密引擎,用于使用第一部分和第二部分执行加密操作。
[0004]在一些实现中,一种系统包括:存储器,用于存储消息的第一部分和消息的第二部分;直接存储器访问部件,用于向加密加速器提供第一数据,第一数据包括消息的第一部分,并且用于向加密加速器提供第二数据,第二数据包括消息的第二部分;以及加密加速器,用于将第一数据存储在输入缓冲器的第一地址范围中;将第二数据存储在输入缓冲器的第二地址范围中;在第一数据被存储在第一地址范围中之后并且在第二数据被存储在第二地址范围中之后,确定第一部分的长度和第二部分的长度;基于第一部分的长度和第一数据的端点的指示而丢弃被包括在第一数据中的任何虚拟数据;以及基于第二部分的长度和第二数据的端点的指示而丢弃被包括在第二数据中的任何虚拟数据。
[0005]在一些实现中,一种方法包括:将第一数据存储在加密加速器的输入缓冲器的第一地址范围中,第一数据包括消息的第一部分;将第二数据存储在加密加速器的输入缓冲器的第二地址范围中,第二数据包括消息的第二部分;确定第一部分的长度和第二部分的长度;基于第一部分的长度和第一数据的长度从第一地址范围获得第一数据的第一部分,基于第二部分的长度和第二数据的长度从第二地址范围获得第二数据的第二部分;以及使用从第一地址范围获得的第一部分和从第二地址范围获得的第二部分执行加密操作。
附图说明
[0006]图1A至图1C是示出根据本公开内容的各个方面的AEAD加密方案中的虚拟数据去
除的示例的图。
[0007]图2是其中可以实现本文描述的加密加速器的示例系统的图。
[0008]图3是根据本公开内容的各个方面的与AEAD加密方案中的虚拟数据去除有关的示例过程的流程图。
具体实施方式
[0009]以下示例实现方式的详细描述参照附图。不同附图中的相同附图标记可以标识相同或相似的元件。
[0010]在AEAD加密方案中,消息的AAD部分和消息的明文部分是独立的。因此,AAD部分和明文部分典型地由不同的软件任务处理/生成,并且存储在微控制器的随机存取存储器(RAM)中的不同位置处。即,消息的各部分在RAM内未连结。为了将这两种类型的数据移动到加密加速器(例如,高级加密标准(AES)引擎),可以使用直接存储器访问(DMA)。
[0011]通常,为了增加系统的总线上的吞吐量,可以使用总线的最大传输大小(例如,突发访问)。然而,在AAD部分的大小或明文部分的大小不是总线的传输大小的倍数的情况下,使用总线的最大传输大小会导致所谓的虚拟数据被移动到加密加速器中。类似地,当为报头(例如,消息的AAD部分)生成分配特定的缓冲器大小时,给定的报头每帧可能具有不同的大小。因此,软件可以生成可能小于缓冲器大小的报头。此处,如果DMA被配置成传输整个分配的缓冲器大小,则在AAD部分与明文部分之间可能会出现虚拟数据(与总线传输大小无关)。这对于使用先进先出(FIFO)输入缓冲器的加密加速器是会有问题的,因为在加密操作中不得包括虚拟数据。
[0012]常规地,为了防止虚拟数据被包括在加密操作中,需要字或字节访问以使得能够仅传输有效数据。然而,使用字或字节访问会降低系统总线的吞吐量。另一种解决虚拟数据问题的技术是在数据传输开始之前(即在AAD部分或明文部分被提供给加密加速器之前)使加密加速器知道AAD部分的大小和明文部分的大小。然而,这对于软件处理来说会增加时延并且不太灵活。
[0013]本文描述的一些实现方式实现AEAD加密方案中的虚拟数据去除。在一些实现中,加密加速器包括输入缓冲器,该输入缓冲器用于将第一数据存储在第一地址范围中,其中第一数据包括消息的第一部分(例如,消息的AAD部分),并且用于将第二数据存储在第二地址范围中,其中第二数据包括消息的第二部分(例如,消息的明文部分)。加密加速器还包括用于确定第一部分的长度和第二部分的长度的一个或更多个部件。然后,一个或更多个部件基于第一部分的长度从第一地址范围读取第一部分,并且基于第一部分的长度和第一地址范围中的第一数据的端点的指示丢弃第一地址范围中的任何虚拟数据。一个或更多个部件还基于第二部分的长度从第二地址范围读取第二部分,并且基于第二部分的长度和第二地址范围中的第二数据的端点的指示而丢弃第二地址范围中的任何虚拟数据。加密加速器还包括用于使用第一部分和第二部分执行加密操作的加密引擎。
[0014]以这种方式,加密加速器得到改进,使得加密加速器能够针对消息的给定部分区分有效数据与虚拟数据,并且因此在消息数据被传送至加密加速器/由加密加速器接收之前,即使在不知道消息的部分的大小的情况下,也可以(自动)去除虚拟数据。换句话说,即使在数据传输开始时未配置消息的各部分的长度值的情况下,改进的加密加速器也使得能
够自动去除虚拟数据。结果是,可以使用总线的最大传输大小,从而提高系统总线的吞吐量,这改善了在使用例如DMA传输数据时的灵活性和时延。
[0015]图1A至图1C是示出根据本公开内容的各个方面的AEAD加密方案中的虚拟数据去除的示例100的图。
[0016]如图1A至图1C中所示,示例100包括加密加速器102。在一些实现中,加密加速器102可以是系统中的部件,例如片上系统(SoC)。如图1A所示,加密加速器102可以包括输入缓冲器104、数据部件106、加密引擎108和输出缓冲器110。在下面提供对加密加速器102和加密加速器102的各部件的描述,随后是对加密加速器102的操作示例的描述。
[0017]加密加速器102是系统的用于执行加密操作的部件。在一些实现方式中,加密加速器102可以是系统的协处理器。在一些实现中,加密加速器102通过提供用于执行加密操作的硬件(而不是由软件和/或系统的通用中央处理单元(CPU)执行加密操作)来提高系统的性能。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加密加速器,包括:输入缓冲器,用于:将第一数据存储在第一地址范围中,所述第一数据包括消息的第一部分,以及将第二数据存储在第二地址范围中,所述第二数据包括所述消息的第二部分;一个或更多个部件,用于:确定所述第一部分的长度和所述第二部分的长度,基于所述第一部分的长度从所述第一地址范围读取所述第一部分,基于所述第一部分的长度和所述第一地址范围中的所述第一数据的端点的指示,丢弃所述第一地址范围中的任何虚拟数据,基于所述第二部分的长度从所述第二地址范围读取所述第二部分,基于所述第二部分的长度和所述第二地址范围中的所述第二数据的端点的指示,丢弃所述第二地址范围中的任何虚拟数据;以及加密引擎,用于使用所述第一部分和所述第二部分来执行加密操作。2.根据权利要求1所述的加密加速器,其中,所述消息的所述第一部分是所述消息的附加认证数据部分,并且所述消息的所述第二部分是所述消息的明文部分。3.根据权利要求1所述的加密加速器,其中,在所述第一数据被存储在所述第一地址范围中之后并且在所述第二数据被存储在所述第二地址范围中之后,确定所述第一部分的长度和所述第二部分的长度。4.根据权利要求1所述的加密加速器,其中,所述第一部分的长度和所述第二部分的长度从相应的软件可访问长度寄存器来被确定。5.根据权利要求1所述的加密加速器,其中,所述第一地址范围中的所述第一数据的端点的指示是基于与所述第一数据相关联的字节计数器或与存储所述第一数据相关联的所存储的写指针位置。6.根据权利要求1所述的加密加速器,其中,当丢弃所述第一地址范围中的任何虚拟数据时,所述一个或更多个部件用于:基于所述第一部分的长度和所述第一地址范围中的所述第一数据的端点的指示,识别所述第一地址范围中的一位或更多位虚拟数据,以及通过以下中至少之一而丢弃所述一位或更多位虚拟数据:从所述输入缓冲器读取所述一位或更多位虚拟数据,而不处理所述一位或更多位虚拟数据,和将与从所述输入缓冲器读取数据相关联的读指针设置到与存储所述第一数据相关联的所存储的写指针位置。7.根据权利要求1所述的加密加速器,其中,所述第二地址范围中的所述第二数据的端点的指示是基于与所述第二数据相关联的字节计数器或与存储所述第二数据相关联的所存储的写指针位置。8.根据权利要求1所述的加密加速器,其中,当丢弃所述第二地址范围中的任何虚拟数据时,所述一个或更多个部件用于:基于所述第二部分的长度和所述第二地址范围中的所述第二数据的端点的指示,识别所述第二地址范围中的一位或更多位虚拟数据,以及
通过以下中至少之一而丢弃所述一位或更多位虚拟数据:从所述输入缓冲器读取所述一位或更多位虚拟数据,而不处理所述一位或更多位虚拟数据,和将与从所述输入缓冲器读取数据相关联的读指针设置到与存储所述第二数据相关联的所存储的写指针位置。9.根据权利要求1所述的加密加速器,其中,所述输入缓冲器还用于将第三数据存储在特定地址范围中,所述第三数据包括所述消息的第三部分,其中,所述特定地址范围是第三地址范围或所述第一地址范围,所述一个或更多个部件还用于:确定所述第三部分的长度,基于所述第三部分的长度从所述特定地址范围读取所述第三部分,基于所述第三部分的长度和所述特定地址范围中的所述第三数据的端点的指示,丢弃所述特定地址范围中的任何虚拟数据,并且所述加密引擎还用于使用所述第三部分来执行所述加密操作。10.一种用于加密的系统,包括:存储器,用于存储消息的第一部分和所述消息的第二部分;直接存储器访问部件,用于:向加密加速器提供第一数据,所述第一数据包括所述消息的所述第一部分,以及向所述加密加速器提供第二数据,所述第二数据包括所述消息的所述第二部分;以及所述加密加速器,用于:将所述第一数据存储在输入缓冲器的第一地址范围中;将所述第二数据存储在所述输入缓冲器的第二...

【专利技术属性】
技术研发人员:曼努埃拉
申请(专利权)人:英飞凌科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1