用于失序数据的推定的密码处理的制作方法

文档序号:11532253阅读:364来源:国知局
用于失序数据的推定的密码处理的制造方法与工艺

本申请通常涉及数据加密。



背景技术:

许多新兴应用需要免受软件攻击的物理安全以及常规安全。例如,在数字版权管理(drm)中,计算机系统的所有者有动机破坏系统安全从而制作受保护数字内容的非法拷贝。

类似地,移动代理应用需要在不可信主机上执行敏感的电子交易。主机可以是处于对手的控制之下,该对手经济上有动机破坏系统并且改变移动代理的行为。因此,物理安全对于在互联网时代上使能许多应用是至关重要的。

物理上构建安全系统的常规方法是基于在通常使用主动入侵检测器实现的私有和防篡改(tamper-proof)环境中构建包含处理器和存储器元件的处理系统。提供高级抗篡改能够是相当昂贵的。此外,这些系统的应用局限于执行少量的安全关键操作,因为系统计算能力受到能够包含在小的防篡改包中的组件的限制。另外,这些处理器不灵活,因此它们的存储器或i/o子系统不能容易地升级。

仅需要单个处理器芯片的抗篡改将显著地增强安全计算能力的量,使得具有更重的计算需要的应用成为可能。近来已经提出了安全处理器,其中只有单个处理器芯片是可信的,并且由处理器验证操作包括芯片外存储器的所有其它组件。

为了使能单个芯片安全处理器,必须开发两个主要基元(其防止攻击者对芯片外不可信存储器篡改),即:存储器完整性验证;和加密。完整性验证检查对手是否更改正在运行的程序的状态。如果检测到任何损坏,则处理器中止被篡改的任务以避免产生不正确的结果。加密确保存储在芯片外存储器中的数据的私密性。

值得注意的是,验证和加密方案不必对计算施加太大的性能损失。

给定芯片外存储器完整性验证,安全处理器能够提供防篡改(tamper-evident)(te)环境,其中软件处理能够在经认证的环境中运行,使得保证检测到对手的任何物理篡改或软件篡改。te环境使能诸如验证执行和商业网格计算的应用,其中计算能力能够与正确处理数据的计算环境的保证一起出售。te处理的性能开销很大程度上取决于完整性验证的性能。

利用完整性验证和加密两者,安全处理器能够提供私有的和认证的抗篡改(ptr)环境,其中,另外,对手不能通过篡改(或以其他方式观察)系统操作来获得关于环境内的软件和数据的任何信息。ptr环境能够使能可信第三方计算、安全移动代理和数字版权管理(drm)应用。

首字母缩略词、缩写和定义



技术实现要素:

在所描述的示例中,数据加密系统包括多个加密核心以执行各种加密、解密或消息认证功能。外部存储器接口包括连接到外部存储器的未加密总线和加密总线。推定的读取密码高速缓存可操作以存储任何推定的加密操作的全部或部分结果。记分板存储与任何推定的密码操作相关联的外部存储器读取命令。

附图说明

图1示出了示例实施例的框图。

图2是aes加密标准的高级流程图。

图3示出了实时(on-the-fly)加密系统的高级框图。

图4示出了aes模式0处理的框图。

图5是aes模式1处理的框图。

具体实施方式

在所描述的示例中,实时加密引擎可操作以加密正被写入至多段外部存储器的数据,并且还可操作以解密从外部存储器的加密段正读取的数据。为了改善存储器效率,存储器系统可以根据读取请求失序(outoforder)地返回数据。为了改善密码操作的吞吐量,当读取命令被发送到存储器时,但是在读取数据到达之前,操作可以以推定的方式开始。为了适应推定的密码操作,操作的结果必须被高速缓存,并且然后在其到达时与存储器数据匹配。

图1示出了示例实施例的高级架构。块101是定位在处理器总线103和处理器总线14之间的实时加密引擎,并且经由总线105连接到外部存储器接口(emif)106。配置数据经由总线103被加载到配置寄存器102中,并且非加密数据经由总线104被写入/读取至101。加密数据经由总线105通信到外部存储器接口106/从外部存储器接口106通信。外部存储器107连接到106并由106控制。外部存储器107可以包括多个存储器段。这些段可以是非加密的或加密的,并且这些段可以用不同且相异的加密密钥来加密。

虽然对所采用的加密方法没有约束,但是这里描述的实现方式是基于高级加密标准(aes)。

aes是具有128位的块长度的块密码。由标准允许三种不同的密钥长度:128位、192位或256位。加密由对于128位密钥的10个循环(round)处理、对于192位密钥的12个循环和对于256位密钥的14个循环组成。

每个循环处理包括一个基于单字节的替换步骤、逐行置换步骤、逐列混合步骤以及添加循环密钥。其中执行这四个步骤的顺序对于加密和解密是不同的。

通过将密钥扩展成由四十四个4字节字组成的密钥调度来生成循环密钥。

图2示出了使用128位密钥的aes的总体结构。在密钥调度器210中生成循环密钥。在加密期间,将128位明文块201提供给块202,其中将第一循环密钥添加到明文块201。将201的输出提供给其中计算第一循环的块203,之后是循环2到在块204中的循环10。块204的输出是结果128位密文块。

在解密期间,将128位密文块206提供给207,其中将其添加到最后一个循环密钥,其是在加密期间由循环10使用的循环密钥。该操作之后是使用适当的循环密钥以与它们在加密期间的使用相反的顺序计算循环1到循环10。208的输出,循环10是128位明文块209。

图3是实时加密/解密功能的高级框图。在数据总线305上提供在存储器写入操作期间要加密的明文,同时在存储器读取期间在同一总线305上提供解密的明文输出。配置数据在总线306上提供。加密数据总线307接口到外部存储器控制器。

配置数据从总线306输入到配置块301。aes核心块302包含执行密码工作的12个aes核心和6个gmac核心。

该块进行由调度器定义的适当的aes/gmac/cbc-mac操作。

aes和gmac核心的一半被指派给rd路径,而另一半被指派给wrt路径。

gmac核心操作两次才与aes核心一样快,因此需要一半。

aes操作具有被称为aesctr和ecb+的2个操作模式。

针对每个唯一密钥更新的一次写入和<n>次读取来优化aesctr。

针对每个唯一密钥更新的<n>次写入和<n>次读取来优化ecb+。

命令缓冲器块303通过接受在数据总线305上提交的新交易来跟踪并存储所有主动交易。其跟踪对至emif的所提交的命令的外部存储器接口(emif)响应。借用该信息,otfa_emif能够确定哪个命令与emif响应相关联。这需要确定哪个命令和地址与emif正在呈现的读取数据相关联。

调度器块304是主控制块,其控制:(a)数据路径路由(route);(b)aes/mac操作;以及(c)读取/修改/写入操作。

数据路径路由是用于aes操作的数据源的简单路由。可以有两个数据源,其为输入写入数据和emif读取数据。对于需要内部读取修改写入操作的读取交易或写入交易需要读取数据。

调度器块将在以下条件期间发出内部读取修改写入操作:(a)在当任何字节使能时的ecb+写入操作对于每个16字节传输不主动期间;和(b)在当mac被使能时的写入操作和被写入的块不是完整的32字节传输期间。

当读取命令不是32字节的倍数时,调度器块在访问mac使能区域时将发出修改的读取命令。这些操作在表1中示出。

表1

在加密期间,调度器将首先确定该地址是否在密码区域中,并且如果不是,则绕过密码核心。

如果地址是密码操作的命中(hit),则其基于加密模式和认证模式来确定该区域的操作的类型。

然后,其将为密码核心调度所需的密码任务以实现包括hash计算的功能。

其检查以查看是否需要读取/修改/写入,并且然后调度适当的命令。

在解密期间,调度器将首先确定该地址是否在密码区域中,并且如果不是,则绕过密码核心。

如果地址是密码操作的命中,则其基于加密模式和认证模式来确定该区域的操作的类型。

基于该信息,其将确定其是否能够在命令被发送到存储器之前且在通过存储器返回读取数据之前开始早期密码操作。此早期操作使能高性能,因为密码操作在发送回读取数据之前开始。

另外,其将检查hashcache以确定该命令是否具有hit,或者是否具有miss,则它将在发送读取命令之前发出hash读取。

当rd_data被发送回时,记分板被用于确定其与哪个命令相关联。这允许至外部存储器的失序命令和来自存储器的失序读取数据。

在读取数据到达之后,数据将被发送到密码核心用于处理。

对于一些类型的密码操作,当将读取命令发送到存储器系统时,推定的读取密码操作能够开始。该操作的结果被存储在推定的读取密码高速缓存中,其使能来自存储器系统的失序响应。

密码核心是通过加密或解密操作使用的能够获得的一组核心。该接口是简单的、具有反压的fifo类。如果读取业务为50%并且写入业务为50%,则能够平衡分配。如果写入业务是较高的,则可以将更多的密码核心分配给写入业务。

这能够通过静态分配(诸如60比40划分)来完成,或者其能够通过动态分配来完成以适应当前业务模式。这将确保密码核心的最大利用率。

区域检查功能将验证命令将不跨越存储器区域。如果跨越区域,命令将被阻止。对于wrdata,其将使所有字节使能无效。对于rddata,其将所有data强制为零。安全误差事件被发送到内核。这防止坏的或恶意代码损坏安全区域或访问安全区域。

字典检查器功能将通过多次访问相同的存储器位置来验证命令不进行字典攻击。如果其违反这些规则,则其将阻止wr命令发出密码操作,并将使所有字节使能无效。安全误差事件被发送到内核。这防止坏的或恶意代码确定使用的密码密钥,使强力攻击是破坏加密的唯一可能的方法。

aes块302需要以下输入:(a)数据字的地址(来自命令或针对突发命令计算的);(b)aes模式以及密钥大小、密钥和初始化向量(iv);以及(c)读取或写入交易类型。

aes操作产生加密或解密的数据字。

mac操作产生用于读取和写入操作的mac。

表2定义了加密模式和认证模式的可能组合。允许总共9种组合。需注意,gcm是aes-ctr+gmac,并且ccm是aes-ctr+cbc-mac。

表2

aes模式0在图4中示出。到aes核心403的输入是由调度器304生成的输入数据401和加密/解密密钥402。在解密期间aes核心403的输出和emif读取数据或在加密期间的总线写入数据通过异或块405组合。405的输出是在加密期间的密文或在解密期间的明文。aes模式0不需要读取修改写入操作。

aes模式1在图5中示出。在501,在解密期间来自emif的读取数据或在加密期间来自总线的写入数据在xor块503中与由调度器304生成的数据502组合。xor块503的输出与加密或解密密钥504一起输入到aea核心505。aes核心505的输出506在解密期间是明文,或在加密期间是密文。

在权利要求的范围内,在所描述的实施例中修改是可能的,并且其它实施例是可能的。

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