解密方法和电路以及对应的设备与流程

文档序号:18705219发布日期:2019-09-17 23:34阅读:218来源:国知局
解密方法和电路以及对应的设备与流程

本文涉及解密技术。

一个或多个实施例可以应用于解密引擎,该解密引擎例如用于通过高级可扩展接口(axi)总线的外部存储器访问。



背景技术:

例如stm32微控制器(可从st集团公司获得)之类的微控制器正在引入越来越多的也可以在高性能总线上运行的安全特征。

基本的加密/解密处理可能会带来时延,这与高性能总线操作很难兼容,其中如在从外部存储器的代码执行中那样,“实时(onthefly)”解密可能代表期望的特征。



技术实现要素:

尽管该领域有广泛的活动,但仍需要进一步改进的方案。

例如,期望方案可以促进例如在64位axi总线接口上例如快速执行加密代码(和数据突发读取),同时减少对硅面积和时延的影响。

根据一个或多个实施例,一种方法包括:

通过高级可扩展接口(axi)总线接收对存储在存储器中的数据单元的数据访问请求,其中axi总线以突发模式操作,其中所述数据访问请求包括用于从相应数据起始地址开始访问存储在存储器中的相应数据单元集合的突发请求,所述突发请求传送所述相应数据起始地址和指示在所述突发请求中请求的数据单元是加密数据单元还是非加密数据单元的安全信息;

读取由所述突发请求传送的数据起始地址和安全信息,根据所述数据起始地址和所述安全信息将接收到的突发请求划分为对加密数据单元的突发请求和对非加密数据单元的突发请求,将对加密数据单元的突发请求和对非加密数据单元的突发请求都转发到所述存储器,并且通过axi总线从所述存储器中获取加密数据单元和非加密数据单元;以及

通过计算用于加密数据单元的解密掩码并将解密掩码应用于获取到的加密数据单元,来将高级加密标准(aes)处理应用于对加密数据单元的突发请求。

一个或多个实施例可以涉及相应的电路。

一个或多个实施例可以涉及相应的设备。

权利要求是本文关于实施例提供的技术教导的整体部分。

一个或多个实施例可以提供适合于插在axi总线上以与存储器控制器协作的硬件方案。

一个或多个实施例可以涉及深度流水线以例如在高级加密标准(aes)掩码挖掘期间并行地执行地址解码、生成和解密。

一个或多个实施例可受益于axi总线的“未决(outstanding)”能力(即,在等待响应期间发出若干axi请求的能力),而不引入时延。

一个或多个实施例可以依赖于基于有限状态机(fsm)方案的解密引擎,该方案执行aes掩码生成和axi突发字段提取的“推测”触发,以便以改进的方式管理响应数据流。

因此,一个或多个实施例可以解决在例如64位axi总线接口上加密代码(和数据突发读取)的快速执行的问题,其中具有减小的面积影响和/或减小的时延影响。

一个或多个实施例有助于在axi总线上提供优化的解密引擎,从而实现来自外部存储器的快速代码执行和代码保护。

例如,一个或多个实施例可以允许微控制器用户向第三方提供受保护的固件以供执行而无需公开内容。

一个或多个实施例可以应用于例如iot(物联网)领域中被越来越多地使用的例如通用高性能微控制器(mcu)。

附图说明

现在将参考附图仅通过示例的方式描述一个或多个实施例,其中:

图1是实施例的使用的可能上下文的示例;

图2是实施例中的有限状态机的可能操作的示例;和

图3是实施例中的电路的示例图。

具体实施方式

在随后的描述中,示出了一个或多个具体细节,旨在提供对本说明书的实施例的示例的深入理解。可以在没有一个或多个具体细节的情况下或者利用其他方法、组件、材料等获得实施例。在其他情况下,未详细示出或描述已知的结构、材料或操作,以便不会使实施例的某些方面模糊。

在本说明书的框架中对“实施例”或“一个实施例”的引用旨在表示关于该实施例描述的特定配置、结构或特性被包括在至少一个实施例中。因此,可以存在于本说明书的一个或多个点中的诸如“在实施例中”或“在一个实施例中”的短语不一定指代同一个实施例。此外,在一个或多个实施例中,可以以任何适当的方式组合特定构造、结构或特性。

这里使用的参考仅仅是为了方便而提供的,因此不限定保护的范围或实施例的范围。

图1表示所谓的“ip内核”的顶层架构,箭头1至7示出数据解密处理的时间和逻辑流程以及相应的流水线。

在下文中,根据“先进先出”方法操作的寄存器简称为fifo寄存器。这种寄存器的可能实现对于本领域技术人员来说是公知的,因此这里不再进一步说明。

在图1的图中,提供了根据一个或多个实施例的解密电路8的高级示例性表示,示例了以下元件:

到axi总线的axi地址读取信道10和/或axi数据读取信道20的接入点,axi总线适于例如用于与外部存储器mc协作,

突发管理器电路模块30,

高级高性能总线(ahb)寄存器电路模块40,

-加密/解密未决fifo电路模块50,

-aes管理器电路模块60,

-密钥流发生器电路模块70,

-解密控制器电路模块80,和

到ahb通信总线90的接入点。

应当理解,上面作为不同实体的电路模块的表示仅仅是为了清楚和简单。在一个或多个实施例中,那些电路模块中的一个或多个电路模块可以以多功能电路的形式集成。类似地,在一个或多个实施例中,这里示例的电路模块中的一个或多个电路模块可以分成相应的子模块集合。

因此,如图1所示的上述电路模块又可以包括各种子模块,如下所述。

例如:

突发管理器电路模块30可以包括axi流控制模块32、地址解码模块34、突发fifo寄存器36和突发fifo控制器模块38;

ahb寄存器电路模块40可包括密钥寄存器模块42和地址区域寄存器模块44,

加密/解密未决fifo电路模块50可以包括加密/解密fifo寄存器52;

aes管理器电路模块60可以包括地址生成模块62和有限状态机(fsm)模块64;

密钥流发生器电路模块70可以包括aes处理模块72;

解密控制器电路模块80可包括突发信息fifo寄存器82、掩码fifo寄存器84、多路复用器(mux)模块86(例如,64位多路复用器)、axi流控制模块88和xor逻辑模块89。

如上所述,上面作为不同实体的电路子模块的表示仅仅是为了清楚和简单。在一个或多个实施例中,那些电路子模块中的一个或多个电路子模块可以以多功能模块的形式集成。

在一个或多个实施例中,可以通过使用例如到ahb通信总线90的接入点来编程和/或配置地址区域寄存器模块44和密钥寄存器模块42。

一个或多个实施例适于插在axi总线上以与存储器mc协作,存储器mc优选地包括存储器控制器,axi总线以所谓的“突发模式”操作,其中数据事务请求是突发请求。

axi“突发”是一种数据事务,其中基于单个数据地址传输多个数据项(或“数据单元”)(例如,通过axi数据读取信道20从外部存储器mc传输)。在单个突发中传输的每个数据单元被称为“节拍(beat)”,并且相同的用语应用于本说明书。由于在例示的实施例中,每个突发与单个数据起始地址相关联,因此根据相应数据起始地址和事务类型(或等效的突发类型),例如固定、增量或包装,来计算突发中的节拍的地址。对外部存储器mc中的单个数据单元(即,单个“节拍”)的访问请求也被定义为突发请求,即,请求传输单个节拍的突发。

在一个或多个实施例中,如本文所例示的,由于axi突发的到达,在axi地址读取信道10上发出数据访问请求(以及可能的数据解密请求)。axi突发携带的信息包括:

要在外部存储器mc中获取的对应数据单元的起始地址(例如,单个32位地址),

数据事务的长度(即,“响应数据传输”中的数据节拍的数目,也称为“突发长度”),

数据单元的大小(即,axi数据读信道20中的获取的数据单元占用的有效位的数目,也称为“突发大小”),

突发类型(或“事务类型”),例如,固定、增量或包装,

在包装突发的情况下,包装的突发长度,以及

有关安全性、可缓存性等的其他可能的信息。

在一个或多个实施例中,axi流控制模块32可以被配置为监视解密处理流水线的状态,并且如果处理流水线未满,则可以准许处理进入的数据解密请求。

如果准许处理进入的请求,则将axi突发转发(不重新定时)到外部存储器mc以获取对应的数据,该数据可以是加密的或不加密的。

在一个或多个实施例中,地址解码模块34可以被配置为解码由进入的axi突发携带的数据起始地址和其他边带安全信息。地址解码模块34可以将数据起始地址与地址区域寄存器模块44中的地址区域进行比较,并且可以将安全信息与密钥寄存器模块42中编程的安全性进行比较。根据这种比较的结果,地址解码模块34可以作出关于与进入的突发对应的数据是否需要解密处理的决定。

在一个或多个实施例中,地址解码模块34可以“实时”工作,即,不引入任何延迟周期。在与进入的突发对应的数据需要解密处理的情况下,axi流控制模块32可以被配置为:如果地址生成模块62可用于处理当前突发则将突发信息转发到地址生成模块62,或者如果地址生成模块62不可用于处理当前突发(例如,因为它正在处理先前突发的信息)则将突发信息存储在突发fifo寄存器36中。axi流控制模块32可以意识到突发fifo寄存器36已满;在这种情况下,不准许对与进入的突发对应的数据的解密。

在一个或多个实施例中,并行处理可以允许与地址生成模块62的操作并行地填充加密/解密fifo寄存器52。例如,如果决定解密与进入的突发对应的数据,则在加密/解密fifo寄存器52中写入(“推入”)值“1”,否则,尽管在突发fifo36中没有写入信息,但在加密/解密fifo寄存器52内写入(“推入”)值“0”。

基于fifo寄存器的工作原理,例如,由于从例如外部存储器mc获取响应数据序列,存储在加密/解密fifo寄存器52中的二进制序列由解密控制器电路模块80读回。读取存储在加密/解密fifo寄存器52中的值将有助于决定:如下所述使用可用掩码来解密对应的数据(如果“1”被存储在加密/解密fifo寄存器52中),或者直接转发回响应数据而不应用解密处理(如果“0”被存储在加密/解密fifo寄存器52中)。在后一种情况下,对应于对非加密数据单元的突发请求,因而可以不在突发fifo36中写入关于这种对非加密数据单元的突发请求的信息。

应当理解,分别参考“1”和“0”值仅仅是作为示例:一个或多个实施例实际上可以采用互补选择(例如,分别为“0”和“1”值)或这种信息的任何其他合适的布尔(boolean)编码。

在一个或多个实施例中,如果决定是解密获取的数据,则可以并行执行多个处理活动,例如,由被转发到aes管理器模块60的突发触发,处理活动包括aes掩码计算和/或地址生成和/或掩码报头计算。

通常,在高时钟频率(例如,大于300mhz),可以使用若干时钟周期来生成一个解密掩码,例如,一个128位掩码。例如,aes计数器算法可以使用例如11个时钟周期来生成一个128位解密掩码。

应当理解,在本说明书的上下文中,术语“掩码”和“密钥流”被无差别地使用。实际上,密钥流是在aes过程的上下文中使用的技术名称,用于指示要被用于加密数据的解密处理的掩码。

在一个或多个实施例中采用的aes过程可以包括aes计数器过程。aes计数器过程可以有助于根据由对应的突发携带的突发起始地址和其他信息来计算解密掩码。

在一个或多个实施例中,可以通过向aes处理模块72提供输入数据来触发aes过程以生成用于解密特定突发的数据单元的解密掩码。例如,对aes处理模块72的这种输入数据可以包括秘密密钥(例如,128位秘密密钥)和初始化矢量(例如,128位初始化矢量)。

在一个或多个实施例中,aes处理模块72可以从密钥寄存器模块42中的寄存器中获取秘密密钥。

在一个或多个实施例中,初始化矢量可以由aes管理器电路模块60根据由对应的突发携带的起始地址和其他信息来计算,如前所述。

如所述,aes计数器过程可以有助于根据由对应的突发携带的突发起始地址和其他信息来计算解密掩码。

在一个或多个实施例中,可以提取与例如突发类型(例如,固定、增量或包装)、突发起始地址、数据单元大小、突发长度、包装长度等有关的“简明”信息,并将其与每个突发相关联,并且作为“掩码报头”保存到突发信息fifo寄存器82中。

可以将生成的掩码推入掩码fifo寄存器84,并且可以将计算出的掩码报头推入突发信息fifo寄存器82中。例如,由于突发的大长度(即,由于在“响应数据传输”中的大量数据单元或数据“节拍”),多个掩码可以对应于单个掩码报头(并且因此对应于单个突发请求)。

在一个或多个实施例中,如果从外部存储器mc获取到响应数据并且响应数据通过axi数据读取信道20被发送回解密模块且解密掩码可用,则解密控制器电路模块80可以开始读取存储在突发信息fifo寄存器82和掩码fifo寄存器84中的数据,即,从fifo寄存器“弹出”这样的数据,开始将响应数据传输中的每个数据节拍与对应掩码相关联,或者在数据单元的大小小于掩码(例如,如果数据单元是64位长而掩码是128位长)的情况下可能与对应的掩码部分相关联。这样的计算例如可以与响应地址生成并行地执行。

在一个或多个实施例中,如果获取的数据单元被加密则可以停止响应数据流,并且掩码不可用。

在一个或多个实施例中,由xor逻辑模块89针对所应用的aes过程执行的解密处理可以包括对加密数据(即,所谓的“密文”)和计算的掩码进行逐位异或(xor)。该xor操作返回解密数据,即所谓的“明文”。

突发的“未决”能力对于解密处理可能是至关重要的。它可以影响应用的性能,例如代码的执行或图像处理。

所描述的架构的一个或多个实施例能够管理多达n个未决的突发,n还取决于所实现的fifo寄存器的维度(或“深度”),例如,突发fifo寄存器36、加密/解密fifo寄存器52、突发信息fifo寄存器82和掩码fifo寄存器84。这种管理多达n个未决突发的可能性源自于不同阶段的解密处理流水线的划分以及并行处理的利用。

在一个或多个实施例中,当axi请求在等待对应的响应时,可以连续触发aes过程以生成所需的掩码,从而有助于提高内核的性能和/或利用高速缓存重新填充。

如前所述,这里示例的解密方法的可能应用例如是,由处理内核或微控制器mcu执行例如存储在外部存储器mc中的加密代码。例如,可以应用高速缓存来“预期”命令的执行并且改善处理内核mcu的性能。由于处理内核mcu执行某个指令,高速缓存可以“推测”要由处理内核mcu执行的后续指令,并且可以尝试从外部存储器mc获取这些指令以便可能在后续处理中使用。

因此,在一个或多个实施例中,接收对存储在外部存储器mc中的加密数据单元的突发请求,所述加密数据单元对应于例如由处理内核mcu执行的某些代码指令,其可以触发对在后续地址处存储在外部存储器mc中的加密数据单元的突发请求的“推测”预测。

在一个或多个实施例中,可以由fsm模块64管理用于掩码生成的aes过程的触发,如图2所示。例如,当密钥流生成器电路模块70空闲时,fsm模块64可以触发生成用于解密这种“推测”的后续突发的掩码。

在一个或多个实施例中,地址生成可以包括两个阶段,第一阶段是为进入的突发生成所有掩码地址,第二阶段是生成“后续”掩码地址,例如,通过执行aes掩码生成的“推测”触发。

在一个或多个实施例中,在开始对可能的“后续”掩码地址的任何推测之前,优选地完成:生成与所接收的突发相对应的地址并且潜在地将其存储到fifo寄存器中。单个突发实际上可以覆盖(由于潜在的大突发“长度”,即“响应数据传输”中的大量数据节拍)大的存储区域,可能涉及多于一个掩码(例如,多于一个128位掩码)。

在一个或多个实施例中,取决于突发长度,基于突发开始地址、突发长度、突发大小和突发类型(例如,固定、包装或增量)的地址生成处理可以是复杂的。

例如,由于需要在“长”数(例如,128位数)之间计算和以及乘积,地址生成处理可能是复杂的。

因此,在一个或多个实施例中,地址生成处理优选地由fsm模块64逐步地寻址,并且可以与aes掩码计算并行地进行。

由于地址生成处理完成(即,已经计算了用于进入的突发的所有掩码地址)并且密钥流生成器电路模块70再次空闲,可以执行关于可以在axi地址读取信道10上接收的下一个进入突发的推测。

应当理解,先前使用的术语“后续”也必须以“智能”方式解释,这意味着在“包装”地址突发的情况下,要预测的地址可能不与突发的起始地址链接而是与fsm模块64计算的“最终的”最后地址链接,因为推测内核的操作将从该点进行。

在一个或多个实施例中,fsm模块64可以被配置为作为具有图2中示例性描述的行为的有限状态机来操作。

有限状态机可以具有“空闲”状态100、“aes掩码地址生成”状态102、“aes预取”状态104和“aes预取完成”状态106。

只有通过重置整个解密电路或通过接收“ip_enable”信号,才可以到达空闲状态100。由于fsm处于空闲状态100,aes处理模块72是空闲的(即,aes过程没有运行)并且没有要解密的突发。接收到“burst_valid”信号可以触发解密流使得fsm转移到aes掩码地址生成状态102,所述“burst_valid”信号指示在地址读取信道10上接收到有效的进入突发。

由于fsm处于aes掩码地址生成状态102,所以可以激活aes处理模块72。可能需要多于一个的时钟周期(例如,11个时钟周期)来完成掩码生成。同时,下一个掩码地址的计算可能正在进行。在地址读取信道10上没有任何可用的后续突发的情况下到达掩码地址生成处理的结束,可以触发aes预取阶段,使得fsm转移到aes预取状态104。

在一个或多个实施例中,aes处理模块72可以由于fsm转换到aes预取状态104而被激活,其中至少一个掩码地址被预取。

可以在任何时刻中止预取处理,例如,在触发“burst_valid”信号的进入突发具有与已经“推测”的地址不同的地址的情况下。在这种情况下,aes标准流被激活。在任何情况下,“burst_valid”信号将使fsm转移到aes掩码地址生成状态102。在没有“burst_valid”信号的情况下到达掩码地址预取处理的结束可以使fsm转移到aes预取完成状态106。

由于fsm处于aes预取完成状态106,成功预取的掩码被临时存储在掩码fifo寄存器84中,等待新的突发。aes处理模块72可以保持在等待状态。由于接收到“burst_valid”信号,可以再次激活标准流。

在一个或多个实施例中,解密控制器电路模块80可以负责响应数据单元和对应的解密掩码之间的xor运算。

如前所述,可以通过fsm模块64从axi突发中为每个进入的突发提取重要且简明的信息,并将其作为“掩码报头”存储在突发信息fifo寄存器82中,以管理响应数据流。在一个或多个实施例中,该简明信息可包括:

“burst_type”字段,例如,以2位编码,提供关于对应突发的类型的信息,如固定、增量或包装;

“start_address”字段,例如,以5位编码,提供例如在外部存储器中要获取的突发数据的起始地址;

“size”字段,例如,以3位编码,提供关于对应突发中的数据单元的大小的信息;

“length_for_wrapping”字段,例如,以2位编码,提供关于由突发覆盖的地址范围的信息,并且在“包装”突发的情况下由解密控制器电路模块80利用。

例如,在2位值编码的情况下对“length_for_wrapping”字段的可能编码可以如下:

“00”:2个字节后包装,

“01”:4个字节后包装,

“10”:8个字节后包装,和

“11”:16个字节后包装。

如上所例示的,正确解密获取的数据单元所需的信息可以存储在每个进入的突发的单个报头中,每个报头具有例如12位的大小。因此,一个或多个实施例可以通过改善掩码/数据选择和关联过程来促进电路面积的减小。

在一个或多个实施例中,解密控制器电路模块80可以根据下面描述的算法计算需要解密处理的突发中的数据节拍的当前数据地址(偏移)。

在某个突发的解密处理的开始,起始地址可以相应地被初始化为存储在突发信息fifo寄存器82中的对应数据条目中的突发起始地址,所述起始地址的位大小取决于axi总线的位大小,例如在64位axi总线的情况下以5位编码。

由于从外部存储器mc获取到数据节拍并且数据节拍在axi数据读取信道20上可用以在解密控制器模块80中进行处理,所以“rvalid”信号(例如,设置为“1”)可以被触发并可由解密控制器电路模块80读取。

在一个或多个实施例中,因此可以根据对应突发的类型以不同的方式计算当前数据地址。如果突发是“固定”类型,则不递增起始地址,并且对包括在同一突发中的所有数据节拍使用单一掩码。如果突发是“增量”类型,则通过在每次出现“rvalid”信号时将突发起始地址递增数据节拍的大小(例如,4个字节)来计算当前数据地址。如果突发是“包装”类型,则通过在每次出现“rvalid”信号时将突发起始地址递增以包装长度*大小(length_for_wrapping*size)进行包装(例如,返回初始起始地址)的数据节拍的大小(例如,4个字节)来计算当前数据地址。

在一个或多个实施例中,如果需要,则xor运算由xor逻辑模块89在整个数据总线例如整个64位axi总线上执行。

在一个或多个实施例中,当前数据地址的一位(例如,右侧第四位)可以用作选择器,用于决定应该在xor运算中使用掩码的哪个部分(例如,掩码的前一半或后一半)。例如,在128位掩码和64位axi数据总线的情况下,如果选择器位的值等于“0”,则可以使用掩码的前半部分(即,由位63:0标识的掩码部分),而如果选择器位的值等于“1”,则可以使用掩码的后半部分(即,由位127:64标识的掩码部分)。

应当理解,同样在这种情况下,分别参考“1”和“0”值仅仅是作为示例:一个或多个实施例实际上可以采用互补选择(例如,分别为“0”和“1”值)或此类信息的任何其他合适的布尔编码。

在一个或多个实施例中,当前数据地址的一位(例如,右侧第五位)可以用作掩码改变的触发。例如,从“0”到“1”或从“1”到“0”的这种“掩码改变触发”位的值的改变可以触发从掩码fifo寄存器84“弹出”解密掩码。

作为最后数据节拍的结果,可以触发可由解密控制器电路模块80读取的“rlast”信号(例如,设置为“1”),所述最后数据节拍对应于从外部存储器mc获取的且可在axi数据读取信道20上得到以便在解密控制器模块80中处理的特定突发请求。这种等于“1”的“rlast”信号可以通知解密控制器电路模块80已经达到了对应于某个突发请求的响应数据流的“结束”。

然而,应理解当前数据地址中的选择器位和掩码改变触发位的位置和上述尺寸(例如,axi数据总线大小、掩码大小、fifo寄存器深度、掩码报头大小、起始地址大小等)可以在不脱离保护范围的情况下宽泛化。

在一个或多个实施例中,一种方法可以包括:

通过axi总线(例如10)接收(例如32)对存储在存储器(例如mc)中的数据单元的数据访问请求,其中axi总线以突发模式操作,其中该请求可以包括用于从相应数据起始地址访问存储在存储器中的相应数据单元集合的突发请求,并且突发请求可以传送所述相应数据起始地址和指示例如在所述突发请求中请求的数据单元是加密数据单元还是非加密数据单元的安全信息;

读取(例如34)由所述突发请求传送的数据起始地址和安全信息,由此根据所述数据起始地址和所述安全信息将接收到的突发请求划分为对加密数据单元的突发请求和对非加密数据单元的突发请求,其中将对加密数据单元的突发请求和对非加密数据单元的突发请求都转发到所述存储器(例如mc),并通过axi总线(例如20)从所述存储器(例如mc)中获取相应数据单元集合。

在一个或多个实施例中,例如通过计算(例如72)用于加密数据单元的解密掩码并将计算的解密掩码应用于(例如80)获取到的加密数据单元,来将高级加密标准(aes)处理(例如60、70、80)应用于对加密数据单元的突发请求。

在一个或多个实施例中,axi总线可以包括地址读取信道(例如10)和数据读取信道(例如20)。

在一个或多个实施例中,方法可以包括通过地址读取信道(例如10)接收(例如32)数据访问请求,并且通过数据读取信道(例如20)从存储器(例如mc)获取相应数据单元集合。

在一个或多个实施例中,根据数据起始地址和安全信息将接收到的突发请求划分为对加密数据单元的突发请求和对非加密数据单元的突发请求可以包括:

将所述安全信息与存储在寄存器(例如42)中的安全指令进行比较,以及

将所述数据起始地址与存储在寄存器(例如42)中的地址范围进行比较。

在一个或多个实施例中,方法可以包括经由解密处理流水线(例如3、4、5、6、7)将高级加密标准(aes)处理(例如60、70、80)应用于对加密数据单元的突发请求。

在一个或多个实施例中,方法可以包括检查(例如32)解密处理流水线是否可用于处理进入的对加密数据单元的突发请求。

在一个或多个实施例中,由于解密处理流水线不可用,可以将进入的对加密数据单元的突发请求存储(例如38)在fifo寄存器(例如36)中。

在一个或多个实施例中,应用所述高级加密标准aes处理可以包括应用aes计数器过程。

在一个或多个实施例中,应用高级加密标准(aes)处理(例如60、70、80)可以包括在获取的加密数据单元和计算的解密掩码之间应用(例如89)逐位xor处理。

在一个或多个实施例中,对通过axi总线(例如10)接收(例如32)的数据单元的请求可以与相应数据起始地址和安全信息一起传送关于例如数据单元大小、突发请求类型和突发请求长度的补充信息。

在一个或多个实施例中,方法可以包括从存储器(例如mc)接收指示数据单元的可用性的数据单元可用性信号。

在一个或多个实施例中,方法可以包括:通过例如根据所述数据单元可用性信号和所述补充信息计算(例如62)所述加密数据单元的当前数据地址(例如85)以及例如根据当前数据地址(例如85)选择(例如86、88)应用于所述加密数据单元的解密掩码,来将计算的解密掩码应用于(例如89)可以从存储器得到的数据单元中的加密数据单元。

在一个或多个实施例中,方法可以包括:

在用于加密数据单元的当前数据地址(例如85)中提供至少一个掩码改变控制位,和

例如,由于至少一个掩码改变控制位的值的改变,改变(例如86)应用于加密数据单元的解密掩码的至少一部分。

在一个或多个实施例中,方法可以包括:

通过提供适用于不同加密数据单元的多个掩码部分(例如84)来计算(例如72)用于加密数据单元的解密掩码,

在用于加密数据单元的当前数据地址(例如85)中提供第一掩码改变控制位和第二掩码改变控制位,

例如作为第一掩码改变控制位的值的变化的结果,改变(例如86)应用于加密数据单元的解密掩码,以及

例如作为第二掩码改变控制位的值的变化的结果,改变(例如86)应用于加密数据单元的解密掩码的部分。

一个或多个实施例可以包括:

根据所述数据单元可用性信号和所述补充信息来计算用于所述加密数据单元的当前数据地址(例如85),

在存在通过所述axi总线(例如10)接收的突发请求的情况下,根据其中的例如相应数据起始地址、突发请求类型和突发请求长度信息来计算所述解密掩码,

在不存在通过所述axi总线(例如10)接收的突发请求的情况下,根据例如最后接收的对加密数据单元的突发请求的数据起始地址、针对所述最后接收的对加密数据单元的突发请求计算的当前数据单元地址和突发类型中的至少一项,来计算可应用于未来进入的对加密数据单元的突发请求的候选解密掩码集合。

一个或多个实施例可以包括存储(例如84)所述候选解密掩码集合中的至少一个解密掩码。

一个或多个实施例可包括,在不存在通过所述axi总线(例如10)接收的突发请求的情况下,根据例如最后接收的对加密数据单元的突发请求的数据起始地址、针对所述最后接收的对加密数据单元的突发请求计算的当前数据单元地址和突发类型中的至少一项,来计算未来进入的突发请求中的加密数据单元的候选数据地址集合。

在一个或多个实施例中,电路可以包括:

输入节点(例如32),例如被配置用于通过axi总线(例如10)接收对存储在存储器(例如mc)中的数据单元的数据访问请求,其中axi总线(例如10)以突发模式操作,其中所述请求可以包括用于从相应数据起始地址访问存储在存储器(例如mc)中的相应数据单元集合的突发请求,并且突发请求可以传送所述相应数据起始地址和指示在所述突发请求中请求的数据单元是加密数据单元还是非加密数据单元的安全信息;

耦合到所述输入节点(例如34)的读取电路块(例如34),所述读取电路块(34)被配置为读取(例如34)由所述突发请求传送的数据起始地址和安全信息,由此例如根据所述数据起始地址和所述安全信息将接收的突发请求划分为对加密数据单元的突发请求和对非加密数据单元的突发请求,其中对加密数据单元的突发请求和对非加密数据单元的突发请求都可以被转发到所述存储器(例如mc),并且可以通过axi总线(例如20)从所述存储器(例如mc)中获取相应数据单元集合;

处理电路装置(例如60、70、80),被配置为根据一个或多个实施例的方法来将高级加密标准(aes)处理应用于对加密数据单元的突发请求。

在一个或多个实施例中,一种设备可以包括:

用于存储数据单元的存储器(例如mc),

axi总线(例如10),被配置为传送对存储在所述存储器(例如mc)中的数据单元的数据访问请求,其中所述axi总线(例如10)可以以突发模式操作,其中所述请求包括用于从相应数据起始地址访问存储在所述存储器(例如mc)中的相应数据单元集合的突发请求,并且所述axi总线(例如20)可以被配置为由于所述数据访问请求而传送从所述存储器(例如mc)获取的相应数据单元集合;

根据一个或多个实施例的电路,所述电路具有输入节点(例如32),输入节点被配置用于通过axi总线(例如10)接收对存储在存储器(例如mc)中的数据单元的数据访问请求,其中所述axi总线(例如10)可以以突发模式操作,其中所述请求可以包括用于从相应数据起始地址开始访问存储在所述存储器(例如mc)中的相应数据单元集合的突发请求,并且突发请求可以传送所述相应数据起始地址和指示在所述突发请求中请求的数据单元是加密数据单元还是非加密数据单元的安全信息;所述电路可以耦合(例如32、88)到axi总线(例如10、20)以接收突发请求和从存储器(例如mc)获取的相应数据单元的集合。

在不影响基本原理的情况下,细节和实施例可以相对于仅作为示例描述的内容进行变化,甚至是显著变化,而不脱离保护范围。

可以组合上述各种实施例以提供进一步的实施例。根据以上详细描述,可以对实施例进行这些和其他改变。通常,在以下权利要求中,所使用的术语不应被解释为将权利要求限制于说明书和权利要求中公开的特定实施例,而是应该被解释为包括所有可能的实施例以及权利要求等同物的全部范围。因此,权利要求不受本公开的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1