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

在256位数据路径中执行JH加密散列的指令制造技术

技术编号:10362114 阅读:146 留言:0更新日期:2014-08-27 18:13
本发明专利技术描述了一种方法。该方法包括执行一个或多个JH_SBOX_L指令以在JH状态上执行S-Box映射和线性(L)变换,且一旦已经执行了S-Box映射和L变换则执行一个或多个JH_P指令来在JH状态上执行置换函数。

【技术实现步骤摘要】
【国外来华专利技术】在256位数据路径中执行JH加密散列的指令
本公开涉及加密算法,且特定地涉及JH散列算法。直量密码学是依赖于算法的工具且是保护信息的密钥。算法是复杂的数学算法且密钥是位串(string of bits)。存在两个基本类型的加密系统:秘密密钥系统和公共密钥系统。秘密密钥系统也被称为对称系统,具有由两方或更多方共享的单个密钥(“秘密密钥”)。该单个密钥既用于加密信息也用于解密信息。JH散列函数(JH)是加密函数,已经针对国家标准与技术协会(NIST)散列函数竞争而提交该加密函数来发展新的SHA-3函数来替代较旧的SHA-1和SHA-2。JH是基于包括四个变型(JH-224、JH-256、JH-384JPJH-512)的算法,可产生不同大小的摘要(digest)。然而,JH的每一个变型实现相同的压缩函数。目前,可在通用目的处理器上使用流SMD扩展(SSE)或高级向量扩展(AVX)的指令来执行JH。无论如何,这样的应用可要求执行高达30个指令来执行JH算法。【附图说明】可结合附图从以下详细描述中获得对本专利技术的更好理解,其中:图1是示出系统的一个实施例的框图;图2是示出处理器的一个实施例的框图;图3是示出打包数据寄存器的一个实施例的框图;图4示出所得半字节置换的一个实施例;图5A和5B是示出由指令执行的过程的一个实施例的流程图;图6示出实现执行一轮次JH算法的指令的一个实施例;图7示出使用指令的两轮次JH的实施例;图8是根据本专利技术的一个实施例的寄存器架构的框图;图9A是根据本专利技术的实施例的连接到管芯上互联网络且具有第二级(L2)高速缓存的本地子集的单CPU核的框图;图9B是根据本专利技术的各实施例的CPU核的一部分的展开图;图10是示出根据本专利技术的实施例的示例性无序架构的框图;图11示出根据本专利技术一个实施例的系统的框图;图12示出根据本专利技术的实施例的第二系统的框图;图13是根据本专利技术的实施例的第三系统的框图;图14是根据本专利技术的实施例的片上系统(SoC)的框图;图15是根据本专利技术的实施例的具有集成的存储器控制器和图形器件的单核处理器和多核处理器的框图;且图16是根据本专利技术的实施例的对比使用软件指令变换器将源指令集中的二进制指令变换成目的地指令集中的二进制指令的框图。【具体实施方式】在下文描述中,出于说明目的,阐述了众多具体细节以便提供对本专利技术的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的某些也可实施本专利技术。在其他实例中,众所周知的结构和设备以框图形式示出,以避免淡化本专利技术的底层原理。在本说明书中,对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本专利技术的至少一个实施例中。在本说明书各处中出现的短语“在一个实施例中”并不一定全部指代同一实施例。描述了包括处理JH散列算法的指令的机制。根据一个实施例,经由AVX指令集内的指令来实现JH散列算法。AVX指令集是x86指令集架构(ISA)的扩展,这从128位增加了寄存器组。图1是系统100的一个实施例的框图,系统100包括用于在通用目的处理器中执行JH加密和解密的AVX指令集扩展。系统100包括处理器101、存储控制集线器(MCH) 102、和输入/输出(I/O)控制器集线器(ICH) 104。MCH102包括控制处理器101和存储器108之间的通信的存储控制器106。处理器101和MCH102在系统总线116上通信。处理器101可以是多个处理器中的任一个,这些处理器诸如单核Intel?奔腾IV?处理器、单核Intel Celeron处理器、Intel?.XScale处理器或多核处理器,诸如Intel? 奔腾 D、Intel?Xeon? 处理器 Intel? Core? i3,i5, i7, 2Duo 和 Quad、Xeon?,I tan i urn?处理器、或者任何其他类型的处理器。存储器108可以是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、双数据率2 (DDR2) RAM、或Rambus动态随机存取存储器(RDRAM)、或任何其他类型的存储器。使用高速芯片-对-芯片互连114 (诸如直接媒体接口(DMI)),ICH104可耦合至MCH102。经由两个单向通道,DMI支持2吉位/秒的并发传输速率。ICH104可包括存储器I/O控制器110,用于控制与耦合至ICH104的至少一个存储设备112的通信。存储设备可包括,例如,盘驱动器、数字多功能盘(DVD)驱动器、紧凑盘(CD)驱动器、独立磁盘冗余阵列(RAID)、带驱动器、或其他存储设备。使用串行存储协议,诸如串行附接小型计算机系统接口(SAS)或串行高级技术附接(SATA),在存储协议互连118上,ICH104可与存储设备112通信。在一个实施例中,处理器101包括JH函数103来执行JH加密和解密操作。可使用JH函数103来对存储于存储器108和/或存储于存储设备112内的信息进行加密或解LU O图2是示出处理器101的一个实施例的框图。处理器101包括获取与解码单元202,用于对从一级(LI)指令高速缓存202中接收到的处理器指令进行解码。用于执行该指令的数据可被存储于寄存器组208内。在一个实施例中,寄存器组208包括多个寄存器,其可由AVX指令用于存储由AVX指令使用的数据。图3是寄存器组208内的一组合适的打包数据寄存器的示例实施例的方框图。所示打包数据寄存器包括三十二个512位打包数据或向量寄存器。这些三十二个512位寄存器被标记为ZMMO至ZMM31。在所示实施例中,这些寄存器中的较低十六个的较低阶256位(即,ZMM0-ZMM15)被混叠或者覆盖在相应256位打包数据或向量寄存器(标记为YMM0-YMM15)上,但是这不是必需的。同样,在所示实施例中,YMM0-YMM15的较低阶128位被混叠或者覆盖在相应128位打包数据或向量寄存器(标记为XMM0-XMM1)上,但是这也不是必需的。512位寄存器ZMMO至ZMM31可操作用于保持512位打包数据、256位打包数据或者128位打包数据。256位寄存器YMM0-YMM15可操作用于保持256位打包数据或者128位打包数据。128位寄存器XMM0-XMM1可操作用于保持128位打包数据。每一寄存器可用于存储打包浮点数据或打包整数数据。支持不同数据元素尺寸,包括至少8位字节数据、16位字数据、32位双字或单精度浮点数据、以及64位四倍字或双精度浮点数据。打包数据寄存器的替换实施例可包括不同数量的寄存器、不同尺寸的寄存器,并且可以或者可以不将较大寄存器重叠(alias)在较小寄存器上。返回参看图2,取出和解码单元202从LI指令高速缓存202中取出宏指令、解码该宏指令、并将它们分为所谓微操作(μορ)的简单操作。执行单元210调度并执行该微操作。在所示实施例中,执行单元210内的JH函数103包括AVX指令的微操作。引退单元212将所执行的指令的结果写入寄存器或存储器。JH函数103执行压缩函数,包括运行42轮次的三个函数。第一个函数是S-Box函数,包括实现两个变换(Stl和S1)之一来变换相邻的4位半字节(nibb本文档来自技高网...
在256位数据路径中执行JH加密散列的指令

【技术保护点】
一种用于在计算机处理器中执行过程的方法,包括:执行一个或多个JH_SBOX_L指令从而在JH状态上执行S‑Box映射和线性(L)变换;以及一旦已经执行了S‑Box映射和L变换,则执行一个或多个JH_P指令来在所述JH状态上执行置换函数。

【技术特征摘要】
【国外来华专利技术】1.一种用于在计算机处理器中执行过程的方法,包括: 执行一个或多个JH_SBOX_L指令从而在JH状态上执行S-Box映射和线性(L)变换;以及 一旦已经执行了 S-Box映射和L变换,则执行一个或多个JH_P指令来在所述JH状态上执行置换函数。2.如权利要求1所述的方法,其特征在于,还包括在执行所述JH_SB0X_L指令前,将JH状态位连续地存储于多个源寄存器内。3.如权利要求2所述的方法,其特征在于,进一步包括: 第一次执行所述JH_SB0X_L指令以在存储于第一源寄存器内的所述JH状态的第一分量上执行S-Box映射和L变换; 第二次执行所述JH_SB0X_L指令以在存储于第二源寄存器内的所述JH状态的第二分量上执行S-Box映射和L变换; 第三次执行所述JH_SB0X_L指令以在存储于第三源寄存器内的所述JH状态的第三分量上执行S-Box映射和L变换;以及 第四次执行所述JH_SB0X_L指令以在存储于第四源寄存器内的所述JH状态的第四分量上执行S-Box映射和L变换。4.如权利要求3所述的方法,其特征在于,进一步包括: 将第一次执行所述JH_SB0X_L指令的结果在第一目的地寄存器内存储为第一 JH状态结果; 将第二次执行所述JH_SB0X_L指令的结果在第二目的地寄存器内存储为第二 JH状态结果; 将第三次执行所述JH_SB0X_L指令的结果在第三目的地寄存器内存储为第三JH状态结果;以及 将第四次执行所述JH_SB0X_L指令的结果在第四目的地寄存器内存储为第四JH状态结果。5.如权利要求4所述的方法,其特征在于,执行所述JH_P指令还包括: 从所述目的地寄存器的其中两个处检索JH状态结果;以及 在来自所述两个目的地寄存器的JH结果上执行置换函数。6.如权利要求5所述的方法,其特征在于,执行所述JH_P指令还包括: 在所述第一 JH状态结果和所述第二 JH状态结果上执行第一置换函数; 在所述第三JH状态结果和所述第四JH状态结果上执行第二置换函数; 在所述第一 JH状态结果和所述第二 JH状态结果上执行第三置换函数;以及 在所述第三JH状态结果和所述第四JH状态结果上执行第四置换函数。7.一种装置,包括: 多个数据寄存器;以及 与所述多个数据寄存器耦合的执行单元,用于执行一个或多个JH_SB0X_L指令以在JH状态上执行S-Box映射和线性(L)变换,且一旦已经执行了 S-Box映射和L变换,则执行一个或多个JH_P指令来在所述JH状态上执行置换函数。8.如权利要求7所述的装置,其特征在于,所述多个数据寄存器包括源寄存器用于连续地存储JH状态位。9.如权利要求8所述的装置,其特征在于,所述执行单元第一次执行所述JH_SBOX_I^^令以在存储于第一源寄存器内的所述JH状态的第一分量上执行S-Box映射和L变换,第二次执行所述JH_SB0X_L指令以在存储于第二源寄存器内的所述JH状态的第二分量上执行S-Box映射和L变换,第三次执行所述JH_SB0X_L指令以在存储于第三源寄存器内的所述JH状态的第三分量上执行S-Box映射和L变换,以及第四次执行所述JH_SB0X_L指令以在存储于第四源寄存器内的所述JH状态的第四分量上执行S-Box映射和L变换。10.如权利要求9所述的装置,其特征在于,所述执行单元将第一次执行所述JH_SB0X_L指令的结果在第一目的地寄存器内存储为第一 JH状态结果,将第二次执行所述JH_SB0X_L指令的结果在第二目的地寄存器内存储为第二 JH状态结果,将第三次执行所述JH_SB0X_L指令的结果在第三目的地寄存器内存储为第三JH状态结果,且将第四次执行所述JH_SB0X_L指令的结果在第四目的地寄存器内存储为第四JH状态结果。11.如权利要求10所述的装置,其特征在于,所述执行单元从所述目的地寄存器其中两个处检索JH状态结果,且在来自所述两个目的地寄存器的JH状态结果上执行置换函数。12.如权利要求11所述的装置,其特征在于,所述执行单元在所述第一JH状态结果和所述第二 JH状态结果上执行第一置换函数,在所述第三JH状态结果和所述第四JH状态结果上执行第二置换函数,在所述第一 JH状态结果和所述第二 JH状态结果上执行第三置换函数,且在所述第三JH状态结果和所述第四JH状态结果上执行第四置换函数。13.一种制品,包括: 机器可读介质,包括一个或多个固态存储材料,所述机器可读存储介质存储指令,当执行所述指令时,使得处理器: 执行一个或多个JH_SB0X_L指令从而在JH状态上执行S-Box映射和线性(L)变换;以及 一旦已经执行了 S-Box映射和L变换,则执行一个或多个JH_P指令来在所述JH状态上执行置换函数。14.如权利要求13所述的制品,其特征在于,所述机器可读存储介质存储指令,当执行所述指令时,进一步使得处理器: 第一次执行所述JH_SB0X_L指令以在存储于第一源寄存器内的所述JH状态的第一分量上执行S-Box映射和L变换; 第二次执行所述JH_SB0X_L指令以在存储于第二源寄存器内的所述JH状态的第二分量上执行S-Box映射和L变换; 第三次执行所述JH_SB0X_L指令以在存储于第三源寄存器内的所述JH状态的第三分量上执行S-Box映射和L变换;以及 第四次执行所述JH_SB0X_L指令以在存储于第四源寄存器内的JH状态的第四分量上执行S-Box映射和L变换。15.如权利要求14所述的制品,其特征在于,所述机器可读存储介质存储指令,当执行所述指令时,进一步使得处理器: 将第一次执行所述JH_SB0X_L指令的结果第一目的地寄存器内存储为第一 JH状态结果;将第二次执行所述JH_SBOX_L指令的结果在第二目的地寄存器内存储为第二 JH状态结果; 将第三次执行所述JH_SBOX_L指令的结果在第三目的地寄存器内存储为第三JH状态结果;以及 将第四次执行所述JH_SBOX_L指令的结果在第四目的地寄存器内存储为第四JH状态结果。16.如权利...

【专利技术属性】
技术研发人员:G·M·沃尔里齐K·S·雅普V·戈帕尔J·D·吉尔福德E·奥兹图科S·M·格尔雷W·K·费格哈利M·G·迪克森
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1