[发明专利]密码算法中用于支持散列值生成的SIMD指令在审
申请号: | 201280055673.6 | 申请日: | 2012-09-20 |
公开(公告)号: | CN103930869A | 公开(公告)日: | 2014-07-16 |
发明(设计)人: | 马修·詹姆斯·霍斯内尔;理查德·罗伊·格里森思怀特;丹尼尔·克尔肖;斯图亚特·大卫·贝尔斯 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;H04L9/08 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 李晓冬 |
地址: | 英国*** | 国省代码: | 英国;GB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 密码 算法 用于 支持 散列值 生成 simd 指令 | ||
技术领域
本发明关于数据处理系统领域。更具体地,本发明关于在数据处理系统内提供支持密码的指令。
背景技术
使用数据处理系统执行密码操作是为人们已知的。这种已知密码处理操作的实例包括安全散列算法(Secure Hash Algorithm;SHA)。SHA具有各种不同已知形式,包括SHA-1、SHA-2、SHA256及SHA512。这些算法是运算密集的算法。
一种支持这些算法的已知方法是使用通用处理器,该通用处理器利用该通用处理器的通用寄存器文件(register file)执行通用指令。此方法的一个问题在于执行这些算法必须操纵大量状态数据(通常可产生160位及160位以上的散列值),结果是操作通常必须被分解并且每次由对数据的部分进行操作的单独程序指令的长序列执行,进而导致执行算法所需的时间量及执行算法时消耗的能量的不利增加。
另一已知方法是提供专用支持密码的处理器,诸如密码共处理器,该密码共处理器具有专用电路,该专用电路用于执行该算法且通常通过传递待散列的数据的开始的指针且然后等待接收所得散列值而启动。此方法之问题在于:提供专用密码硬件产生了额外成本及复杂性。此外,在将专用硬件的操作与装置的其他操作整合时会产生问题,诸如中断处理、多任务等等,因为将专用密码硬件并入通常在数据处理系统内提供的机制中以使用数据处理系统处理操作的这些方面非常困难且复杂。
发明内容
自一个方面而言,本发明提供一种数据处理设备,该数据处理设备包含:
单一指令多重数据寄存器文件;及
单一指令多重数据处理电路,该单一指令多重数据处理电路耦接至该单一指令多重数据寄存器文件且被配置为由单一指令多重数据程序指令控制,以独立地对存储在单独通道内的单独数据元素执行处理操作,该单独通道在该单一指令多重数据寄存器文件的输入操作数寄存器内;其中
该单一指令多重数据处理电路被配置为由另外的程序指令控制,以对向量数据值执行另外的处理操作,该向量数据值包含保持在该单一指令多重数据寄存器文件的输入操作数寄存器内的数据元素序列,以产生存储在该单一指令多重数据寄存器文件的输出操作数寄存器内的输出操作数,该输出操作数具有含有值的第一部分,该值取决于在该数据元素序列内的所有数据元素。
本发明技术认识到,许多数据处理系统已具备单一指令多重数据处理机制。这些单一指令多重数据处理机制通常包括单一指令多重数据寄存器文件,该单一指令多重数据寄存器文件具有能够存储且操纵大数据宽度操作数的大存储容量,这些大数据宽度操作数通常在单一指令多重数据处理中涉及。在单一指令多重数据处理中,通常在单一程序指令控制下独立地处理数据的单独通道。例如,数据的单独通道可包含色彩像素值或其他向量值的分量值,所有这些值皆将经受相同处理操作,诸如缩放。本发明技术认识到,单一指令多重数据寄存器文件的存储能力可利用另外的程序指令重复使用,该另外的程序指令不遵循单一指令多重数据程序指令的通常形式。特定言之,通道的处理不必为独立的,且产生的输出操作数可具有含有值的第一部分,该值取决于在形成输入的向量数据值内的所有数据元素。
在单一指令多重数据程序指令的区域外的单一指令多重寄存器文件的重复使用可应用于各种领域,诸如数据压缩及数据密码术。本技术尤其非常适合于数据密码术。
在此上下文中,另外的程序指令可经安排以执行迭代处理操作,该迭代处理操作消耗连续的数据字及至少部分中间散列值以产生输出散列值。散列值产生通常需要操纵大量的数据及寄存器文件,同时具有存储及操纵非常长的操作数值的能力。
另外的程序指令的一个形式为其中该另外的程序指令具有自该单一指令多重数据寄存器文件读取的第一输入操作数Qd[127:0]及第二输入操作数Sn[31:0]两者,且该向量数据值包含Vm[Index+31:Index],其中Index为0至2N,其中N为正整数,该另外的处理操作产生该输出操作数Qdoutput[127:0],以具有与由以下步骤给出的值相同的值:
其中OP FUNC(B,C,D)为以下其中之一:
(((C XOR D)AND B)XOR D);
(B XOR C XOR D);及
(B AND C)OR((B OR C)AND D);及
ROL(P,Q)为值P左旋转Q位位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280055673.6/2.html,转载请声明来源钻瓜专利网。