专利名称:支持单个或多个aes操作的双模aes实现的制作方法
技术领域:
本发明一般地涉及加密方案,以及,更具体地,涉及一种支持
单个或多个AES操作的双模高级加密标准(AES)实现。
背景技术:
AES是一种用于若干加密方案的流行的加密标准。AES —般可 以在128位上工作。现在又开发了一些基于AES的加密方案,可以 在大于128位的数据量(data size )上工作。在冲丸行核心AES操作 的同时,基于AES的加密方案不能提供可以有效使用AES核心单 元的4妻口 ,所述AES核心单元在128位上工作。
这个问题的一种可能的解决方案是在AES核心单元周围配置 直接存储器存取(DMA)接口。这种DMA接口由主处理才几编程。 DMA接口可以(i)从同步动态随机存取存储器(SDRAM)取数 据,(ii)将数据提供至AES核心单元,以及(iii)将经加密的/解 密的数据存储至SDRAM。使用这种接口,就可以在远大于128位 的数据块上执行AES操作。
DMA ^妾口的主要在夹陷是与^殳置DMA 4妾口才喿作相关的系统开 销。设计者必须对(i)输入数据和输出数据的地址和(ii)扇区计 数进行编程。当扇区大小/计数大时,系统开销小。然而,在需要 128位或256位的加密/解密的AES应用的情况下,与实际纟喿作相 比,系统开销可能会4艮大。传统方法的另一缺陷在于,通常会有新的基于AES的加密方 案被开发出来。这些方案中的某些可能会包括这样的巧合(quirk), 即,由于DMA接口自动处理输入数据,DMA接口模式不支持的 巧合。这种方法的备选方案是使用微控制器在软件中执行整个加密 方案。使用微控制器会减慢加密/解密处理。
我们需要提供一种用于执行单个和多个AES操作的双模AES 实施的方法和/或装置。
发明内容
本发明涉及一种包含才莫式电路和加密电3各的装置。冲莫式电路可 以用于选择性地在处于第 一模式时提供由输出信号承载的寄存器 输入数据,而在处于第二模式时提供由输出信号承载的存储器数 据。加密电路可以用于在寄存器输入数据和存^f诸器数据之间可互换 ;也加密/解密。
本发明的目的、特征和优点包括提供了一种支持单个和多个 AES操作的双模AES实现的方法和/或装置,其可以(i)仅需要很 小的数据量,(ii)使用寄存器接口从而利用更小的系统开销来执行, (iii)避免经加密的/解密的数据被泄密,以及(iv)虑及了 DMA 模式不支持的基于AES的加密方案,从而每次执行一个块。
通过详细描述下面的说明书和所附权利要求以及附图,本发明 的这些和其〗也目的、特4正和^尤点可以变4寻显而易见,其中
图1是本发明的优选实施例的图示;
图2是本发明的优选实施例的详7图3是示出了链接AES命令的实例的图示; 图4是本发明的备选实施例的图示。
具体实施例方式
参照图1,示出了根据本发明优选实施例的系统100的框图。 系统100通常包括块(或电i 各)102、块(或电if各)104、块(或电 ^各)106、以及块(或电路)108。电^各102可以作为主处理机来实 现。电路104可以作为才莫式电路来实现。电路106可以作为AES 电路来实现。电路108可以作为存储器来实现。在一个实例中,存 储器108可以作为SDRAM来实现。主处理机102可以具有能传递 (present)信号(例如,AES_DATA )的输出110和能传递信号(例 如,DMA—CONTROL)的l命出114。沖莫式电路104可以具有能4妾收 信号AES—DATA的專餘入112、能接收信号DMA—CONTROL的输入 116、能接收信号(例如,AES—OUTPUT)的输入124和能接收/ 传递信号(例如,DATA)的输入/输出126。才莫式电路104可以具 有能传递信号(例如,OUTPUT)的输出118。 AES电i 各106可以 具有能接收信号OUTPUT的输入120。 AES电路106可以具有能传 递信号AES—OUTPUT的输出122。存4诸器108可以具有能传递/接 收信号DATA的输入/l釘出128。
在系统处于第一模式(或寄存器模式)时,模式电路104可以 提供由信号OUTPUT承载的寄存器输入数据。在系统处于第二模 式(或DMA模式)时,模式电路104可以提供由信号OUTPUT承 载的存储器数据。AES电路106根据AES加密/解密方案在寄存器 输入数据和存储器数据之间可互换地加密/解密。通过提供处于寄存 器模式的输入寄存器数据和处于DMA模式的存储器数据,由AES 电路122执行的数据的加密/解密可以使用比传统系统更少的系统 开销。主处理机102可以生成用于执行AES加密/解密|喿作的AES密钥。主处理才几102可以通过信号AES—DATA传递AES密钥。当 系统IOO处于寄存器模式或处于DMA模式时,AES密钥通常需要 执行AES加密/解密。AES密钥(作为不对称密钥的公私密钥对的 私人密钥、作为数据流的部分)可以由伪随扭4t发生器或利用另一 恰当的^L制来生成。
参照图2,示出了系统100的更为详细的图示。模式电路104 包括块(或电路)140、块(或电路)142、块(或电3各)144和 块(或电路)146。电路140可以作为一个或多个AES输入数据寄 存器来实现。电路142可以作为DMA接口电路来实现。电路144 可以作为多路复用器(multiplexer )来实现。电i 各146可以作为DMA 引擎电路来实现。DMA引擎146可以作为一个或多个FIFO电路来 实现。AES输入数据寄存器140可以具有能传递信号(例如,RID) 的输出162。 DMA接口电路142可以具有能传递信号DMA控制的 输出166。多路复用器144可以具有能接收信号RID的输入164和 能接收信号(例如,MD)的输入172。 DMA引擎146可以具有能 接收信号DMA_CONTROL的输入168和能传递信号MD的输出 170。 AES电路106通常包括块(或电路)148和块(或电i 各)150。 电路148可以作为AES核心电路来实现。电路150可以作为一个或 多个AES输出寄存器来实现。
在DMA才莫式中,主处理机102可以(i)(经DMA 4妄口 142 ) 控制DMA引擎146通过信号DATA从SDRAM 108取凄史据(或存 储器数据),并(ii)通过信号MD将存储器数据传递至多路复用器 144。多路复用器144可以将存储器数据传递给AES核心148。 AES 核心148可以(i )加密/解密存储器数据,并(ii )通过信号AES—OUT 将经加密的/解密的存储器数据传递至DMA引擎146。 DMA引擎 146可以通过信号DATA将经加密的/解密的数据传递回存储器108。 与主处理才几102相连的DMA^妄口 142电路可以(i)启动DMA引
9擎146和存储器108之间的DMA传输工作,并(ii)发送DMA引 擎146和存储器108之间的相关参数(例如,包括存储器i也址、DMA 传输量、以及DMA传输方向(从存储器108读取或向存+者器108 写入存储器数据的方向))。DMA引擎146可以与存储器108相接,
并执行实际的存储器处理。
在DMA才莫式中,系统100可以处理打包(packetize )的和未
打包的存储器数据块。打包的存储器数据块包括首部和有效载荷 部。而在打包的输入数据块中,可以经AES加密/解密操作处理有 效载荷部。在AES加密/解密操作期间,首部可以保持不变。而在 执行AES操作同时,系统100可以实时地识别首部和有效载荷部, 并仅处理有效载荷部。
在寄存器才莫式中,主处理机102可以经信号AES—DATA将寄 存器输入数据编程至AES输入数据寄存器140。 AES输入凄t据寄存 器140可以通过信号RID将寄存器输入数据传递至多路复用器144。 多路复用器144可以通过信号OUTPUT将寄存器输入凄U居传递至 AES核心单元148。 AES控制寄存器(未示出)可以由多3各复用器 144使用,以执行DMA模式与寄存器模式之间的切换。如果用于 AES加密/解密的数据在AES输入数据寄存器140中可用,则AES 控制寄存器中的模式位可以设置为一。如果AES控制寄存器中不存 在数据,则AES控制寄存器中的模式位可以设置为零(例如,在这 种情况下,数据在DMA引擎146中可用)。基于模式位的值,多路 复用器144可以从AES输入数据寄存器140 (例如,模式位设置为 一)或从DMA引擎170 (例如,模式位设置为零)中选拷,数据。 AES核心单元148可以(i)加密/解密寄存器输入数据,并(ii)在 AES输出寄存器150中存储经加密的/解密的寄存器输入数据。AES 核心单元148可以使用寄存器模式执行加密和解密操作之间所需的 任意链接(chaining )。一4殳地,链4妄可以4吏用,人作为输入或作为密钥的AES分组到下 一个AES分组的输入或输出。在一个实例中,对于密码分组链接 (CBC ),来自 一个AES分组的输入(例如,AES解密)或输出(例 如,AES加密)可以用作到下一个AES分组的输入,(例如, AESHash ),其中,来自 一个AES分组的l命出可以用作到下一个AES 分组的密钥。
可以在寄存器模式和DMA模式中执行链接。对于DMA模式 和寄存器模式,可以执行相同的AES操作。可以从一个16字节AES 分组到下一个16字节AES分组执行AES加密/解密。密码一莫式在 每个分组中也可以保持相同。由于寄存器模式工作在每个AES命令 的数据的16字节分组上,从一个16字节分组到另一个16字节分 组AES操作可以改变。因此,在寄存器模式中不同的AES操作和 密码模式可以链接。
参照图3,示出了用于i兌明链接多个AES命令的实例的图示。 可能需要三个AES操作来产生密钥,从而在有效载荷上才丸行加密/解密。
在第一命令(或AES cmdl )中,i殳备密钥和p争一 ID可以用于 生成才艮密钥(Root key)。 AES密钥寄存器可以设置到i殳备密钥 (device key )。 AES输入寄存器数据可以设置为唯一 ID。 AES操作 可以设置用来执行加密。AES模式可以设置为AESHASH。
在第二命令(或AES cmd2)中,才艮密钥(例如,由第一命令 生成)可以用于生成p舉一密钥。AES输入寄存器凄t据可以i殳置为加 密的p,一密钥。《吏用的内部密钥(Use Internal key )可以i殳置为1。 AES才喿作可以i殳置用来净丸4于解密。AES才莫式可以i殳置为电码本 (ECB)模式。在第三命令(或AES cmd3)中,唯一密钥(例如,由第二命 令生成)可以用于生成有效载荷密钥。AES输入寄存器数据可以设 置为加密的有效载荷密钥。4吏用的内部密钥可以:没置为1。输入才莫 式可以i殳置为寄存器才莫式。AESi喿作可以i殳置用来执4亍解密。AES 才莫式可以设置为ECB才莫式。
每个命令(例如,第一命令、第二命令和第三命令)均可以说 明独立的AES操作。当执行加密和解密的同时,每个命令均可以在 不同的数据块上工作。第一命令的AES输出可以用作第二 AES操 作的密钥。第二命令的AES输出可以用作第三AES操作的密钥。 一旦生成有效载荷密钥,有效栽荷数据上的AES操作就可以在 DMA才莫式下执行。这种操作可以在第四命令(例如,AEScmd4) 中示出。在第四命令中,^吏用的内部密钥可以i殳置为1。 l命入才莫式 可以设置为DMA模式。AES操作可以设置用来执行解密。AES模 式可以设置为CBC才莫式。在图3中示出的链4妄实例中,在前面命 令中生成的密钥可以直^r用于后续的命令,而不需通过主处理才几明 确设置密钥寄存器。在DMA模式中使用的大AES分组可以(i) 分为多个16字节块,并(ii)在性能降低的寄存器模式时加密/解密。
本发明虑及由AES加密/解密方案支持的DMA或寄存器才莫式。 DMA模式和寄存器才莫式可以由AES核心单元148支持。通过支持 DMA模式和寄存器才莫式,AES核心单元148可以使用更4氐系统开 销来对数据进行加密/解密。当对大小小于或等于128位的块(例如, AES数据块大小)执行AES加密/解密操作时,在输入数据寄存器 140中处理数据比在存储器108中处理数据快。在寄存器才莫式140 中执行AES加密/解密会更快,因为与执行DMA传输4喿作相关的 系统开销远高于以必要数据简单设置AES输入数据寄存器162的系 统开销。当在DMA才莫式中执行DMA传输时,由于DMA传输建立(例如,启动DMA请求和/或向存储器控制器(未示出)发送 DMA传4lT参凄t)和实际的DMA传输等4寺时间,系统开销会增加。
下面的实例示出了与在寄存器-模式和在DMA模式力口载128位 数据块相关的系统开销。
在寄存器模式,每个AES输入数据寄存器140可以是32位宽, 并需要4个主处理才几时钟周期来设置32位寄存器。为加载128位 数据,寄存器模式需要总共4个寄存器并使用总共16个主处理机 时钟周期。
在DMA才莫式中,DMA传输建立时间需要8个主处玉里才几时钟 周期来设置存储器地址和数据块的大小。当(i)启动DMA请求,
(ii)获取来自存储器控制器的DMA传输的确认,以及(iii)将 DMA传输参数发送至存储器控制器时,可以使用平均16个主处理 机时钟周期。另夕卜,为执行DMA传输等待时间,实际的传输可能 会占用2到4个时钟周期。 一般地,存储器控制器需要设置实际 DMA传输的存储器的周期数可以是16个时钟周期。大体上,DMA 模式可能需要32个到40个周期(在最佳情况下)来传输输入存储 器数据的128位或16字节。
随着输入寄存器数据量的增加,寄存器模式会变得效率低。除 为新的128位块设置AES输入数据寄存器140之夕卜,系统100需要 确定前一数据块上的AES 4喿作是否完成。这种确定还可以附加至寄 存器模式的系统开销。例如,对于四个128位块,DMA才莫式可能 需要大约32-40个主处理机时钟周期。在寄存器模式中,可能需要 80个周期(例如,4 x 4 x 4+16 (轮询系统开销(polling overhead ))) (最佳情况)。系统100可以保持输入寄存器数据的最佳尺寸以确 保处于寄存器模式时的最小系统开销。一般地,当系统IOO处于寄存器模式时,经加密的/解密的数据 可以不存储在存储器108中。由于经加密的/解密的数据可以不存储 在存储器108中,经加密的/解密的数据不会通过查询存储器108(例 如,SDRAM 4十)而泄露。在这种访问方案中,应用禾呈序会直4姿i方 问AES输出寄存器150并使用所需的经加密的/解密的数据。这种 访问方案可以避免对与存储器108相接的针的查询。如果需要,系 统100可以允许经加密的/解密的数据存<诸在存<诸器108中。例如, 如果需要,应用程序可以将来自AES输出寄存器150的经解密的数 据存储至存储器108。
参照图4,示出了#4居本发明另一实施例的系统100,。系统100, 与处于寄存器才莫式的系统100的操作相同。系统100,可以1又工作在 寄存器才莫式而不需切^灸至DMA才莫式。主处理才几102,可以生成用于 执行AES加密/解密操作的AES密钥。多个AES输入数据寄存器 140,可以将寄存器输入数据提供至AES核心单元148,。 AES核心 单元148,可以通过信号AES—OUTPUT提供经解密的数据。多个 AES输出寄存器150,可以将经解密的凄t据存々者在AES输出寄存器 150,。存储在AES输出寄存器150,中的经解密的数据可以由软件读 取。该软件可以将输出(例如,经解密的数据)存储至存储器(未 示出)。
仅由寄存器模式支持的基于AES的加密方案在寄存器模式下 仍可以每次执行一个块。当系统100,在寄存器才莫式下工作时,系统 开销比在寄存器模式和DMA模式之间的双模中操作系统的开销还 要多。然而,系统开销可以比以软件或仅以DMA模式执行整个操 作的开销要少。
无论在系统IOO还是在系统IOO,中执行的寄存器模式,均可以
适用于根密钥的后续AES加密/解密操作的密钥提取或密钥生成。 多数多媒体内容使用若干步骤来产生用于加密/解密有效载荷的密
14钥。这些步骤是清楚的,且输入块大小可以小于128位。系统IOO 可以为大数据块上的后续AES加密/解密提供需要产生的密钥,而 该密钥不会^皮用户看到。
尽管已经参照本发明的优选实施例特别示出并描述了本发明, 但本领域的技术人员应当理解,各种形式和细节的变换在不背离本 发明的范围的前提下均是可行的。
权利要求
1. 一种装置,包括模式电路,用于选择性地在处于第一模式时提供由输出信号承载的寄存器输入数据,以及在处于第二模式时提供由所述输出信号承载的存储器数据;以及加密电路,用于在所述寄存器输入数据和所述存储器数据之间轮流进行加密/解密。
2. 根据权利要求1所述的装置,进一步包括主处理才几,用于(i) 在处于所述第一模式时传递由加密数据信号承载的所述寄存 器输入数据,以及(ii)在处于所述第二模式时传递存储器控 制信号。
3. 根据权利要求1所述的装置,进一步包括存储器,连接至所述 模式电路并用于在处于所述第二模式时存储经加密的/或解密 的数据。
4. 根据权利要求1所述的装置,其中,所述模式电路包括一个或 多个输入数据寄存器,所述输入数据寄存器用于存储所述寄存 器输入数据。
5. 根据权利要求4所述的装置,其中,所述模式电路进一步包括存储器引擎,用于响应于存储器控制信号而传递所述内 存数据。
6. 根据权利要求5所述的装置,其中,所述模式电路进一步包括多路复用器,用于(i)在处于所述第一模式时传递来自 所述一个或多个寄存器的所述输入寄存器数据,以及(ii)在 处于所述第二模式时传递来自所述存储器引擎的所述存储器 数据。
7. 根据权利要求6所述的装置,其中,所述加密电路进一步包括高级加密标准核心单元,用于加密/解密所述寄存器输入 数据和所述存储器数据。
8. 根据权利要求7所述的装置,其中,所述加密电路进一步包括一个或多个输出寄存器,用于存储经加密/解密的寄存器 输入数据。
9. 根据权利要求7所述的装置,其中,所述高级加密标准核心单 元将经加密/解密的存储器数据传递给所述存储器引擎。
10. 根据权利要求9所述的装置,其中,所述存储器引擎将所述加 密/解密存储器数据传递给存储器。
11. 根据权利要求1所述的装置,其中,所述加密电路用于在执行 链接时在所述寄存器输入数据和所述存储器数据之间轮流进 行加密/解密。
12. 根据权利要求1所述的装置,其中,所述加密电路用于根据高 级加密标准(AES )对所述寄存器输入数据和所述存储器数据 执行加密/解密。
13. 才艮据权利要求1所述的装置,其中,所述加密电3各在处于所述 第二模式时加密/解密打包或未打包的数据块。
14. 才艮据权利要求13所述的装置,其中,所述打包的凄t据块包括 有效载荷部和首部,以及所述加密电^各在所述有,文载荷部上寺丸 行加密/解密操作,而所述首部在所述加密/解密操作期间保持 不变。
15. —种装置,包括第一电^各,具有一个或多个^T入寄存器,并且所述第一 电路用于传递来自所述一个或多个输入寄存器的寄存器输入 数据;以及第二电路,用于才艮据高级加密标准(AES)加密/解密所 述寄存器输入数据。
16. —种用于执行双模加密/解密操作的方法,包括以下步骤(a)选择性地在处于第一模式时提供由输出信号承载的 寄存器输入数据,而在处于第二模式时提供由所述输出信号承 载的存储器数据;以及(b )在所述寄存器输入数据和所迷存储器数据之间轮流 进行加密/解密。
17. 才艮据片又利要求16所述的方法,进一步包括以下步骤(i)在处于所述第一模式时传递由加密数据信号承载的 所述寄存器输入数据,以及(ii)在处于所述第二^^莫式时传递 存储器控制信号。
18. 4艮才居斥又利要求16所述的方法,进一步包4舌以下步艰《在处于所述第二模式时在存储器上存储经加密/解密的数据。
19. 根据权利要求16所述的方法,进一步包括以下步骤在一个或多个输入数据寄存器上存储所述寄存器输入数据。
20. 根据权利要求16所述的方法,进一步包括以下步骤根据高级加密标准在所述寄存器输入数据和所述存储器 数据上执行加密/解密操作。
全文摘要
本发明披露了一种装置,包括模式电路和加密电路。模式电路可以用于选择性地用于在处于第一模式时提供由输出信号承载的寄存器输入数据,以及在处于第二模式时提供由输出信号承载的存储器数据。加密电路可以配置为在寄存器输入数据和存储器数据之间轮流进行加密/解密。
文档编号H03K19/00GK101507116SQ200780031260
公开日2009年8月12日 申请日期2007年8月16日 优先权日2006年8月24日
发明者文卡塔什·巴拉苏布拉马尼亚姆, 纳西马·帕尔韦恩 申请人:Lsi公司