当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于提供通用GF(256)SIMD加密算术功能的指令和逻辑制造技术

技术编号:12610663 阅读:77 留言:0更新日期:2015-12-30 09:59
本申请公开了用于提供通用GF(256)SIMD加密算术功能的指令和逻辑。指令和逻辑提供通用GF(28)SIMD加密算术功能。实施例包括处理器,其用于对用于SIMD二进制有限域乘法求逆的、指定源数据操作数和不可约多项式的指令进行解码以针对源数据操作数中的每一个元素计算逆元对不可约多项式求模。该指令的结果被存储在SIMD目的地寄存器中。一些实施例也对指定源数据操作数、变换矩阵操作数和转换向量的用于SIMD仿射变换的指令进行解码。变换矩阵和转换向量被应用于源数据操作数中的每一个元素。一些实施例也对指定第一和第二源数据操作数的用于SIMD二进制有限域乘法的指令进行解码,以便将第一和第二源数据操作数的每一个对应的元素对相乘,并且对不可约多项式求模。

【技术实现步骤摘要】

本公开涉及处理逻辑、微处理器以及相关联的指令集架构领域,当由处理器或其 他处理逻辑执行该指令集架构时,该指令集架构执行逻辑、数学或其他功能性操作。更具体 地说,本公开涉及用于提供通用GF(256)sn?加密算术功能的指令和逻辑。
技术介绍
密码学是依赖算法和密钥来保护信息的工具。该算法是复杂的数学算法,而密钥 是位串。有两种基本类型的加密系统:秘密密钥系统和公共密钥系统。秘密密钥系统(也 被称为对称系统)具有两方或更多方共享的单个密钥("秘密密钥")。该单个密钥用于既 加密也解密信息。 例如,高级加密标准(AES)(也被称为Rijndael)是由两名比利时密码学家Joan Daemen和VincentRijmen开发,并被美国政府采纳为加密标准的块密码。2001年11月26 日,AES被国家标准与技术研究所(NIST)宣布为U.S.FIPSPUB197(FIPS197)。 AES具有128位的固定块尺寸,并具有128位、192位或256位的密钥尺寸。使用 Rijndael密钥调度的密钥扩展将128位、192位或256位尺寸的密钥变换为128位的10轮 密钥、12轮密钥或14轮密钥。这些轮密钥被用于按轮将明文数据作为128位的块(被视为 4X4的字节数组)来处理,并且将它们转换为密文块。通常,对于对轮的128位输入(16字 节),根据被称为S盒(S-box)的查找表,每一个字节被另一字节替换。块密码的这部分被 称为字节替换(SubBytes)。接下来,字节的行(被视为4X4数组)循环左移或左循环特定 偏移(即,第零行0字节,第一行1字节,第二行2字节,第三行3字节)。块密码的这部分 被称为行移位(ShiftRows)。然后,字节的每一列被视为有限域GF(256)(也被称为伽罗瓦 (Galois)域2s)中的多项式的四个系数,并且乘以可逆线性变换。块密码的这部分被称为 列混合(MixColumns)。最后,128位的块与轮密钥进行异或(X0R)运算以生成16字节的密 文块,这被称为轮密钥相加(AddRoundKey)。 在具有32位或更大的字的系统上,通过将字节替换、行移位和列混合变换转换为 利用存储器的4096字节的四个256条目的32位的表来实现AES密码是可能的。软件实现 的一个缺点在于性能。软件运行得比专用硬件慢多个数量级,因此,期望具有硬件/固件实 现的增加的性能。 使用查找存储器、真值表、二叉决策图或256输入多路复用器的典型直接硬件实 现在电路面积方面代价是高的。使用与GF(256)同构的有限域的替代方法在面积上可能是 高效的,但是可能也比直接硬件实现慢。 现代的诸多处理器通常包括提供计算密集性但提供高度的数据并行性的操作的 指令,可通过使用诸如单指令多数据(SB?)向量寄存器之类的各种数据存储设备的高效 实现来利用该数据并行性。然后,中央处理单元(CPU)可提供并行硬件以支持处理向量。向 量是保持多个连续数据元素的数据结构。尺寸为姒其中^是2 1%例如,256、128、64、32、~ 4或2)的向量寄存器可包含N个尺寸为0的向量元素,其中,N=M/0。例如,64字节向量寄 存器可分割为:(a) 64个向量元素,每个元素保存占用1字节的数据项;(b) 32个向量元素, 每个元素保存占用2字节(或一个"字")的数据项;(c) 16个向量元素,每个元素保存占用 4字节(或一个"双字")的数据项;或⑷8个向量元素,每个元素保存占用8字节(或一 个"四字")的数据项。sn?向量寄存器中的并行性本质可很好地适用于处理安全散列算 法。 其他类似的加密算法也可能是感兴趣的。例如,Rijndael规范本身是利用各种块 尺寸和密钥尺寸指定的,这些块尺寸和密钥尺寸两者可以是最小128位和最大256位的、32 位的任何倍数。另一示例是SMS4,它是无线局域网WAPI中国国家标准(有线认证和隐私基 础建设)中使用的块密码。它也按轮(即,32)将明文数据作为GF(256)中的128位块来处 理,但是执行对不同多项式的归约求模(reductionsmodulo)。 迄今为止,还未完全探索出提供高效的空-时设计权衡的选项以及对于此类复杂 性、性能限制问题和其他瓶颈的潜在解决方案。【附图说明】 在所附附图的多个图中以示例方式而非限制方式示出本专利技术。图1A是执行用于提供通用GF(256)sn?加密算术功能的指令的系统的一个实施 例的框图。 图1B是执行用于提供通用GF(256)SHffi加密算术功能的指令的系统的另一实施 例的框图。图1C是执行用于提供通用GF(256)SHffi加密算术功能的指令的系统的另一实施 例的框图。 图2是执行用于提供通用GF(256)sn?加密算术功能的指令的处理器的一个实施 例的框图。 图3A示出根据一个实施例的紧缩数据类型。 图3B示出根据一个实施例的紧缩数据类型。 图3C示出根据一个实施例的紧缩数据类型。 图3D示出根据一个实施例的用于提供通用GF(256)SB?加密算术功能的指令编 码。 图3E示出根据另一实施例的用于提供通用GF(256)SB?加密算术功能的指令编 码。 图3F示出根据另一实施例的用于提供通用GF(256)SB?加密算术功能的指令编 码。 图3G示出根据另一实施例的用于提供通用GF(256)SB?加密算术功能的指令编 码。 图3H示出根据另一实施例的用于提供通用GF(256)SB?加密算术功能的指令编 码。 图4A示出用于执行提供通用GF(256)SB?加密算术功能的指令的处理器微架构 的一个实施例的多个元件。 图4B示出用于执行提供通用GF(256)SHffi加密算术功能的指令的处理器微架构 的另一实施例的多个元件。 图5是用于执行提供通用GF(256)S頂D加密算术功能的指令的处理器的一个实施 例的框图。图6是用于执行提供通用GF(256)S頂D加密算术功能的指令的计算机系统的一个 实施例的框图。图7是用于执行提供通用GF(256)S頂D加密算术功能的指令的计算机系统的另一 实施例的框图。图8是用于执行提供通用GF(256)S頂D加密算术功能的指令的计算机系统的另一 实施例的框图。 图9是用于执行提供通用GF(256)S頂D加密算术功能的指令的芯片上系统的一个 实施例的框图。 图10是用于执行提供通用GF(256)S頂D加密算术功能的指令的处理器的实施例 的框图。图11是提供通用GF(256)SM)加密算术功能的IP核开发系统的一个实施例的框 图。 图12示出提供通用GF(256)SB?加密算术功能的架构仿真系统的一个实施例。 图13示出用于转换提供通用GF(256)SM)加密算术功能的指令的系统的一个实 施例。 图14示出用于高效地实现高级加密标准(AES)的加密/解密标准的过程的一个 实施例的流程图。 图15示出用于高效地实现AESS盒的乘法求逆(multiplicativeinverse)的过 程的一个实施例的流程图。 图16A示出用于执行用于提供通用GF(256)S頂D加密算术功能的仿射映射指令的 装置的一个实施例的图。. 图16B示出用于执行用于提供通用GF(256)SM)加密算术功能的仿射求逆 (affineinverse)本文档来自技高网...

【技术保护点】
一种处理器,包括:解码级,用于对用于单指令多数据(SIMD)二进制有限域乘法求逆的第一指令进行解码,所述第一指令指定源数据操作数集以及首一的不可约多项式;以及一个或多个执行单元,用于响应于被解码的第一指令:针对所述源数据操作数集中的每一个元素,计算SIMD二进制有限域乘法逆元对所述不可约多项式求模;以及将所述第一指令的结果存储在SIMD目的地寄存器中。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S·格伦
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1