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

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

技术编号:12807104 阅读:124 留言:0更新日期:2016-02-03 21:14
本公开涉及提供通用GF(256)SIMD密码算法功能性的指令和逻辑。指令和逻辑提供通用GF(28)SIMD密码算法功能性。实施例包括处理器,用于对SIMD仿射变换的指令解码,该指令规定源数据操作数、变换矩阵操作数和平移向量。变换矩阵应用于源数据操作数中的每个元素,并且平移向量应用于变换元素中的每个。指令的结果存储在SIMD目的地寄存器中。一些实施例还对SIMD二进制有限域乘法逆的指令解码来对源数据操作数中的每个元素计算以不可约多项式为模的二进制有限域中的逆。一些实施例还对SIMD二进制有限域乘法的指令(其规定第一和第二源数据操作数)解码,来以不可约多项式为模使第一和第二源数据操作数的每个对应元素对相乘。

【技术实现步骤摘要】

本公开关于处理逻辑、微处理器和关联指令集架构的领域,该指令集架构在由处 理器或其他处理逻辑执行时执行逻辑、数学或其他功能操作。特别地,本公开涉及提供通用 GF (256) S頂D密码算法功能性的指令和逻辑。
技术介绍
密码术(cryptology)是依靠算法和密钥来保护信息的工具。该算法是复杂的数 学算法并且密钥是位串。存在两个基本类型的密码术系统:私钥系统(secret key)和公钥 系统。私钥系统也称为对称系统,其具有被两个或以上团体共享的单个密钥("私钥")。该 单个密钥用于既加密信息又对信息解密。 例如,高级加密标准(AES)(也称为Ri jndael)是由两个比利时译码者Joan Daemen 和Vincent Rijmen开发并且作为加密标准被美国政府采用的分组密码(block cipher)。 AES由美国国家标准和技术研究所(NIST)在2001年11月26日作为U. S. FIPS PUB 197 (FIPS 197)宣布。 AES具有128位的固定块大小和128、192或256位的密钥大小。使用Ri jndael的 密钥调度的密钥扩展将大小为128、192或256位的密钥变换成具有128个位的10、12或14 个轮回密钥(round key)。轮回密钥用于轮回处理明文数据作为128位块(看作4x4字节阵 列)并且将它们转换成密文块。典型地,对于对轮回的128位输入(16个字节),每个字节根 据叫作S盒的查找表而被另一个字节取代。分组密码的该部分叫作SM办?α。接着,字节 的行(看作4x4阵列)被循环移位并且左旋特定偏移(即,行0是0个字节、行一是1个字节、 行二是2个字节并且行三是3个字节)。分组密码的该部分叫作5^了沈 〇^。然后,字节列 中的每个看作有限域中的多项式GE(256)(也叫作伽罗瓦域2s)的四个系数,并且乘以可逆 线性变换。分组密码的该部分叫作MixColumns。最后,128位块与轮回密钥异或(XOR)来 产生具有16个字节的密文块,其叫作 在具有32位或更大字的系统上,通过将SubBytes、ShiftRows和MixColumns变换 转换成四个256条目32位的表(其使用存储器的4096个字节)来实现AES密码,这是可能 的。软件实现的一个缺点是性能。软件运行起来比专门硬件要慢若干数量级,因此具有增 加的硬件/固件实现性能,这是可取的。 使用查找存储器、真值表、二元决策图或256个输入复用器的典型简单硬件实现 从电路面积方面是昂贵的。使用与GF(256)同构的有限域的备选方法在面积上可以是高效 的,但也可比简单硬件实现更慢。 现代的处理器通常包括指令,用于提供计算密集的操作,但提供高级数据并行,其 可以通过使用各种数据存储设备(例如,单指令多数据(SMD)向量寄存器)的高效实现而被 利用。中央处理单元(CPU)然后可提供并行硬件来支持处理向量。向量是持有许多连续数 据元素的数据结构。大小为M的向量寄存器(其中M是2 k,例如256、128、64、32、"·4或2) 可包含大小为0的N个向量元素,其中Ν=Μ/0。例如,64字节向量寄存器可分成(a)64个向 量元素,其中每个元素持有占据1个字节的数据项,(b)32个向量元素,用于持有数据项,每 个占据2个字节(或一个"字"),(c)16个向量元素,用于持有数据项,每个占据4个字节(或 一个"双字"),或(d) 8个向量元素,用于持有数据项,每个占据8个字节(或一个"四字")。 SHffi向量寄存器中的并行性质可以很好地适应安全散列算法的处理。 也对其他相似加密算法感兴趣。例如,Rijndael规范本质上用各种块和密钥大小 (其可以是32位的任意倍数,两者都具有128位的最小值和256位的最大值)来规定。另一 个示例是SMS4 :在中国无线LAN WAPI (有线认证和私密基础设施)国家标准中使用的分组 密码。它还轮回处理明文数据(即,32)作为GF(256)中的128位块,但执行以不同多项式为 模的归约。 迄今为止,提供高效空间-时间设计权衡的选项和对于这样的复杂性、性能限制 问题和其他瓶颈的潜在技术方案还未被完全探究。【附图说明】 本专利技术通过示例并且没有限制地在附图的图中图示。 图IA是执行指令来提供通用GF (256) SHffi密码算法功能性的系统的一个实施例 的框图。 图IB是执行指令来提供通用GF (256) S頂D密码算法功能性的系统的另一个实施 例的框图。 图IC是执行指令来提供通用GF (256) SHffi密码算法功能性的系统的另一个实施 例的框图。 图2是执行指令来提供通用GF (256) S頂D密码算法功能性的处理器的另一个实 施例的框图。 图3A图示根据一个实施例的封装数据类型。 图3B图示根据一个实施例的封装数据类型。 图3C图示根据一个实施例的封装数据类型。 图3D图示根据一个实施例提供通用GF(256) S頂D密码算法功能性的指令编码。 图3E图示根据另一个实施例提供通用GF(256) SHffi密码算法功能性的指令编 码。 图3F图示根据另一个实施例提供通用GF(256) S頂D密码算法功能性的指令编 码。 图3G图示根据另一个实施例提供通用GF(256) SHffi密码算法功能性的指令编 码。 图3H图示根据另一个实施例提供通用GF(256) S頂D密码算法功能性的指令编 码。 图4A图示执行指令来提供通用GF (256) S頂D密码算法功能性的处理器微架构的 一个实施例的元素。 图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) SHffi密码算法功能性的处理器的实施例的 框图。 图11是提供通用GF(256) S頂D密码算法功能性的IP核开发系统的一个实施例 的框图。 图12图示提供通用GF(256) SHffi密码算法功能性的架构仿真系统的一个实施 例。 图13图示转换指令提供通用GF(256) SHffi密码算法功能性的系统的一个实施 例。 图14图示用于高效实现高级加密标准(AES)加密/解密标准的过程的一个实施 例的流程图。 图15图示用于高效实现AES S盒的乘法逆的过程的一个实施例的流程图。 图16A图示用于执行仿射映射指令(affine map instruction)来提供通用 GF (256) SHffi密码算法功能性的装置的一个实施例的图。 图16B图示用于执行仿射逆指令来提供通用GF (256) S頂D密码算法功能性的装 置的一个实施例的图。本文档来自技高网...

【技术保护点】
一种处理器,其包括:解码段,用于对单指令多数据(SIMD)仿射变换的第一指令解码,所述第一指令规定源数据操作数集、变换矩阵操作数和平移向量操作数;以及一个或多个执行单元,其响应于解码的第一指令而用于:   通过对所述源数据操作数集中的每个元素应用所述变换矩阵操作数并且对所述源数据操作数集的每个变换元素应用所述变换向量操作数而执行SIMD仿射变换;以及    将所述第一指令的结果存储在SIMD目的地寄存器中。

【技术特征摘要】
...

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

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

1