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

用于执行JH加密散列的指令制造技术

技术编号:10369012 阅读:111 留言:0更新日期:2014-08-28 12:03
描述了一种方法。该方法包括执行一个或多个JH_SBOX_L指令以在JH状态上执行S-Box映射和线性(L)变换,且一旦已经执行了S-Box映射和L变换就执行一个或多个JH_Permute指令来在JH状态上执行置换函数。

【技术实现步骤摘要】
【国外来华专利技术】用于执行JH加密散列的指令
本公开涉及加密算法,且特定地涉及JH散列算法。
技术介绍
密码学是依赖于算法的工具且是保护信息的关键。算法是复杂的数学算法且密钥是位的串(stringofbits)。有两种基本类型的加密系统:秘密密钥系统和公共密钥系统。秘密密钥系统也被称为对称系统,具有由两方或更多方共享的单个密钥(“秘密密钥”)。该单个密钥既用于加密信息也用于解密信息。JH散列函数(JH)是一种加密函数,该加密函数已经针对国家标准与技术协会(NIST)散列函数竞争而提交来发展新的SHA-3函数以替代较旧的SHA-1和SHA-2。JH是基于包括四个变型(JH-224、JH-256、JH-384、和JH-512)的算法,可产生不同大小的摘要(digest)。然而,JH的每一个变型实现相同的压缩函数。目前,可在通用目的处理器上使用流SIMD扩展(SSE)或高级向量扩展(AVX)中的指令来执行JH。无论如何,这样的应用可要求实行高达30个指令来执行JH算法。附图说明可结合附图从以下详细描述中获得对本专利技术的更好理解,其中:图1是示出系统的一个实施例的框图;图2是示出处理器的一个实施例的框图;图3是示出打包数据寄存器的一个实施例的框图;图4示出所得半字节置换的一个实施例;图5是示出由指令执行的过程的一个实施例的流程图;图6是示出由指令执行的过程的一个实施例的流程图;图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可以是多个处理器中的任一个,这些处理器诸如单核处理器、单核IntelCeleron处理器、XScale处理器或多核处理器,诸如奔腾D、处理器i3,i5,i7,2Duo和Quad、处理器、或者任何其他类型的处理器。存储器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内的信息进行加密或解密。图2是示出处理器101的一个实施例的框图。处理器101包括取指与解码单元202,用于对从级别1(L1)指令高速缓存202中接收到的处理器指令进行解码。用于执行该指令的数据可被存储于寄存器组208内。在一个实施例中,寄存器组208包括多个寄存器,其可由AVX指令用于存储由AVX指令使用的数据。图3是寄存器组208内的一组合适的打包数据寄存器的示例实施例的方框图。所示打包数据寄存器包括三十二个512位打包数据或向量寄存器。这些三十二个512位寄存器被标记为ZMM0至ZMM31。在所示实施例中,这些寄存器中的低位十六个的低阶256位(即,ZMM0-ZMM15)被混叠或者覆盖在相应256位打包数据或向量寄存器(标记为YMM0-YMM15)上,但是这不是必需的。同样,在所示实施例中,YMM0-YMM15的低阶128位被重叠或者覆盖在相应128位打包数据或向量寄存器(标记为XMM0-XMM1)上,但是这也不是必需的。512位寄存器ZMM0至ZMM31可操作用于保持512位打包数据、256位打包数据或者128位打包数据。256位寄存器YMM0-YMM15可操作用于保持256位打包数据或者128位打包数据。128位寄存器XMM0-XMM1可操作用于保持128位打包数据。每一寄存器可用于存储打包浮点数据或打包整型数据。支持不同数据元素尺寸,包括至少8位字节数据、16位字数据、32位双字或单精度浮点数据、以及64位四字或双精度浮点数据。打包数据寄存器的替换实施例可包括不同数量的寄存器、不同大小的寄存器,并且可以或者可以不将较大寄存器混叠(alias)在较小寄存器上。返回参看图2,提取和解码单元202从L1指令高速缓存202中取出宏指令、解码该宏指令、并将它们分为所谓微操作(μop)的简单操作。执行单元210调度并执行该微操作。在所示实施例中,执行单元210内的JH函数103包括AVX指令的微操作。引退单元212将所执行的指令的结果写入寄存器或存储器。JH函数103执行压缩函数,包括运行42轮次的三个函数。第一个函数是S-Box函数,其包括实现两个变换(S0和S1)之一来变换相邻的4位半字节(nibble)。表1示出S-Box变换S0(x)和S1(x)的一个实施例。表1x0123456789101112131415S0(x)9041113123151102675814S1(x)312613571本文档来自技高网...
用于执行JH加密散列的指令

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

【技术特征摘要】
【国外来华专利技术】1.一种用于在计算机处理器中执行过程的方法,包括:在执行第一类型的指令前,将JH状态位存储在多个寄存器中;对所述第一类型的指令和第二类型的指令进行解码;通过以下操作来执行一个或多个第一类型的指令以在JH状态上执行S-Box映射和线性(L)变换:第一次执行第一类型的指令,以在所述JH状态的存储于第一寄存器内的第一分量上执行S-Box映射和L变换;以及第二次执行第一类型的指令,以在所述JH状态的存储于第二寄存器内的第二分量上执行S-Box映射和L变换;以及一旦已经执行了S-Box映射和L变换,就执行一个或多个第二类型的指令来在所述JH状态上执行置换函数,其中所述第一类型的指令的格式包括用于存储JH状态的一半的第一寄存器操作数,且所述第二类型的指令的格式包括用于保持所述第一类型的指令的执行结果的第二和第三寄存器操作数。2.如权利要求1所述的方法,其特征在于,所述多个寄存器是512位寄存器。3.如权利要求2所述的方法,其特征在于,一寄存器存储所述JH状态的低512位,且一个不同的寄存器存储所述JH状态的高512位。4.如权利要求1所述的方法,其特征在于,使用掩码寄存器来第一次和第二次执行第一类型的指令。5.如权利要求1所述的方法,其特征在于,进一步包括:在第一目的寄存器内将第一次执行第一类型的指令的结果存储为第一JH状态结果;以及在第二目的寄存器内将第二次执行第一类型的指令的结果存储为第二JH状态结果。6.如权利要求5所述的方法,其特征在于,执行所述第二类型的指令还包括:从所述第一和第二目的寄存器检索JH状态结果;在所述第一JH状态结果上执行第一置换函数;以及在所述第二JH状态结果上执行第二置换函数。7.一种指令处理装置,包括:多个数据寄存器,其中所述多个数据寄存器包括用于存储JH状态位的一半的寄存器以及用于存储JH状态位的另一半的寄存器;以及与所述多个数据寄存器耦合的执行单元,用于执行一个或多个第一类型的指令以在JH状态上执行S-Box映射和线性(L)变换,且一旦已经执行了S-Box映射和L变换,就执行一个或多个第二类型的指令来在JH状态上执行置换函数,其中所述第一类型的指令的格式包括用于存储JH状态的一半的第一寄存器操作数,且所述第二类型的指令的格式包括用于保持所述第一类型的指令的执行结果的第二和第三寄存器操作数,其中所述执行单元用于第一次执行第一类型的指令以在所述JH状态位的第一半部上执行S-Box映射和L变换、以及用于第二次执行第一类型的指令以在所述JH状态位的第二半部上执行S-Box映射和L变换。8.如权利要求7所述的指令处理装置,其特征在于,所述第一寄存器是512位寄存器。9.如权利要求7所述的指令处理装置,其特征在于,所述执行单元用于使用掩码寄存器来第一次和第二次执行第一类型的指令。10.如权利要求9所述的指令处理装置,其特征在于,所述执行单元用于:在第一目的寄存器内将第一次执行第一类型的指令的结果存储为第一JH状态结果,并在第二目的寄存器内将第二次执行第一类型的指令的结果存储为第二JH状态结果。11.如权利要求10所述的指令处理装置,其特征在于,所述执行单元用于通过以下步骤执行所述第二类型的指令:从所述第一和第二目的寄存器检索JH状态结果,在所述第一JH状态...

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

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

1