处理器、以及哈希信息认证码编码方法技术

技术编号:31023626 阅读:27 留言:0更新日期:2021-11-30 03:19
一种高速的哈希信息认证码(HMAC)算法编码技术。具备哈希信息认证码算法的处理器具有微码储存器、解码器、以及执行单元。该微码储存器储存微码。该解码器在响应于指令集架构的单一条哈希信息认证码算法指令时,根据该微码储存器储存的该微码,转换出多条微指令。根据该解码器提供的上述多条微指令,该执行单元对取自系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存。转换出哈希信息认证码储存至该系统内存。转换出哈希信息认证码储存至该系统内存。

【技术实现步骤摘要】
处理器、以及哈希信息认证码编码方法


[0001]本专利技术有关于具备哈希信息认证码(Hash

based message authentication code,缩写为HMAC)算法的处理器及其处理方法。

技术介绍

[0002]哈希信息认证码(HMAC),是一种密钥相关的哈希运算信息认证码(message authentication code,缩写为MAC);它可以保证数据的完整性,同时可以作为某个信息的身分验证。
[0003]已知的技术中,都是使用多条指令集架构(Instruction Set Architecture,简称ISA)指令操作处理器实现HMAC算法,无法有效保护运算过程中生成的中间数据,所以安全性较差。
[0004]如何高效且更安全的完成HMAC算法,为本
一项重大课题。

技术实现思路

[0005]本专利技术以高安全性设计提出具备哈希信息认证码(HMAC)算法的处理器及其哈希信息认证码编码方法。
[0006]根据本专利技术一种实施方式实现的处理器包括:微码储存器、解码器、以及执行单元。该微码储存器储存微码。该解码器在响应于指令集架构的单一条哈希信息认证码算法指令时,根据该微码储存器储存的该微码,转换出多条微指令。根据该解码器提供的上述多条微指令,该执行单元对取自系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存。
[0007]根据本专利技术一种实施方式实现的哈希信息认证码编码方法,包括:响应于指令集架构的单一条哈希信息认证码算法指令,根据微码,转换出多条微指令;以及以上述多条微指令操作执行单元,对取自该处理器外部系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存。
[0008]通过本专利技术提供的处理器及其哈希信息认证码编码方法,单一条指令集架构(ISA)指令就足以实现哈希信息认证码算法,且哈希信息认证码算法过程中生成的中间数值可隔绝在处理器内部,使得在处理器外部无法窥探这些中间数值,极大地提高了安全性。
[0009]下文特举实施例,并配合附图,详细说明本
技术实现思路

附图说明
[0010]图1为方块图,根据本专利技术一种实施方式图解一处理器100;
[0011]图2根据本专利技术一种实施方式图解指令集架构(ISA)的HMAC算法指令的格式、以及输入寄存器设计;
[0012]图3还图解ISA指令撰写的一种实施方式;以及
[0013]图4A和4B为流程图,根据本专利技术一种实施方式图解HMAC算法指令引发的步骤程
序,相应多条微指令。
具体实施方式
[0014]以下叙述列举本专利技术的多种实施例。以下叙述介绍本专利技术的基本概念,且并非意图限制本
技术实现思路
。实际专利技术范围应依照权利要求书来界定。
[0015]本专利技术揭示一种具备哈希信息认证码(HMAC)算法的处理器。本专利技术为HMAC算法设计指令集架构(Instruction Set Architecture,简称ISA)的一哈希信息认证码(HMAC)算法指令。处理器支持的指令集可包括x86指令集。
[0016]一种实施方式中,本专利技术在处理器的微码(ucode)有对应于该HMAC算法指令的设计,且还可以在该处理器的一密码执行单元增设一哈希值算法加速器(包括SM3、SHA256和/或其它哈希值算法的运算硬件)。处理该HMAC算法指令时,处理器参照该微码,转换出多条微指令,根据架构寄存器(architecture registers)的内容操作处理器硬件,实现HMAC算法。包括该哈希值算法加速器的该密码执行单元将使得HMAC算法更快速安全。使用本技术,HMAC算法过程中产生的中间数值可妥善隐藏在处理器内部硬件储存空间中,所以不会被处理器执行的其它指令访问,从而保证了安全性。
[0017]图1为方块图,根据本专利技术一种实施方式图解一处理器100。基于分支预测器(branch predictor)102,指令根据指令转译后备缓冲区(instruction translation lookaside buffer)ITLB的转译结果,从一系统内存140加载到指令高速缓存(instruction cache)104,待缓存至指令缓存器(instruction buffer,简称XIB)106,再推入格式指令队列(format instruction queue,简称FIQ)108,交由解码器110根据微码(ucode,储存在一微码储存器)解码成流水线可识别的多条微指令(microinstructions),推入指令队列(instruction queue,简称XIQ)112,再经重命名单元(rename)114存入相应的保留站(reservation station)RS,驱动执行单元(execution unit),包括:逻辑运算单元(arithmetic logical unit)ALU、内存顺序缓存区(memory order buffer)116的地址产生单元(address generating unit)AGU、多种指令的对应硬件Fadd、Fmul、Fmisc、MMX、以及密码执行单元118。运算所需要的数据则可以是根据数据转译后备缓冲区(data translation lookaside buffer)DTLB的转译结果,从系统内存140加载到数据高速缓存(data cache)120,再缓存至该内存顺序缓存区116。处理器100还包括一重排缓存区(reorder buffer,简称ROB)122以及核心寄存器(core registers)124,寄存处理器100操作所需信息。所示实施方式中,密码执行单元118包括哈希值算法加速器126(包括SM3、SHA256和/或其它哈希值算法的运算硬件,由一加速器操作微指令操作),且核心寄存器124包括架构寄存器(e.g.,x86architecture registers)128、以及内部寄存器(internal registers)130。此外,处理器100还具有一存储器132(也称为密钥内存)。在一实施例中,存储器132为一静态随机存取存储器(SRAM)。图1所示组件将响应于ISA的单一条HMAC算法指令而动作。
[0018]解码器110在基于微码ucode对应的一HMAC算法指令生成微指令时,会参考架构寄存器128内容。架构寄存器128内容可包括:控制字(control word),例如,设定密钥来源、选择哈希值算法;系统内存140存取信息,例如,输入文本、HMAC算法结果、甚至软件密钥的存取信息。架构寄存器128(即,通用寄存器)用作设定处理器100硬件实施HMAC算法的输入寄存器(input registers)。
[0019]一种实施方式中,HMAC算法产生的中间数值储存在内部寄存器130中。内部寄存器130可理解为物理寄存器堆(physical register file),软件无法访问。
[0020]一种实施方式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种具备哈希信息认证码算法的处理器,包括:微码储存器,储存微码;耦接该微码储存器的解码器,在响应于指令集架构的单一条哈希信息认证码算法指令时,根据该微码储存器储存的该微码,转换出多条微指令;以及耦接该解码器的执行单元,根据该解码器提供的上述多条微指令,对取自系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存。2.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:第一寄存器,储存控制字,上述多条微指令使得该执行单元根据该控制字指示的原始密钥进行该哈希信息认证码算法。3.如权利要求2所述的具备哈希信息认证码算法的处理器,还包括:第二寄存器,储存软件密钥地址指针,指示软件密钥在该系统内存上的位置;以及第三寄存器,储存软件密钥长度,标示该软件密钥的长度;其中:该执行单元包括内存顺序缓存区;以及该控制字指示以该软件密钥作为该原始密钥时,上述多条微指令使得该执行单元通过该内存顺序缓存区,依据该第二寄存器储存的该软件密钥地址指针、以及该第三寄存器储存的该软件密钥长度,从该系统内存获取该软件密钥。4.如权利要求2所述的具备哈希信息认证码算法的处理器,还包括:密钥内存,储存硬件密钥;其中,该控制字指示以该硬件密钥作为该原始密钥时,上述多条微指令使得该执行单元从该密钥内存获取该硬件密钥。5.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:密钥内存,储存硬件密钥;其中,上述多条微指令使得该执行单元从该密钥内存获取该硬件密钥。6.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:第一寄存器,储存控制字,该控制字指示该哈希信息认证码算法采用的哈希值算法,由上述多条微指令使得该执行单元根据该哈希值算法进行该哈希信息认证码算法。7.如权利要求6所述的具备哈希信息认证码算法的处理器,其中:该执行单元包括密码执行单元,且该密码执行单元包括哈希值算法加速器,硬件实现该哈希值算法;上述多条微指令包含加速器操作微指令;以及该哈希值算法加速器响应于该加速器操作微指令而操作。8.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:第四寄存器,储存输入文本地址指针,指示该输入文本在该系统内存上的位置;以及第五寄存器,储存输入文本长度,标示该输入文本的长度;其中,上述多条微指令使得该执行单元通过内存顺序缓存区,依据该第四寄存器储存的该输入文本地址指针、以及该第五寄存器储存的该输入文本长度,从该系统内存获取该输入文本。9.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:
第六寄存器,储存计算结果地址指针,指示该哈希信息认证码在该系统内存上的目标储存位置;其中,上述多条微指令使得该执行单元通过内存顺序缓存区,依据该第六寄存器储存的该计算结果地址指针,将该哈希信息认证码储存至该系统内存。10.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:软件无法探知的内部寄存器,暂存该执行单元进行该哈希信息认证码算法过程中生成的中间数值。11.如权利要求1所述的具备哈希信息认证码算法的处理...

【专利技术属性】
技术研发人员:管应炳黄振华秦岳李艳婷
申请(专利权)人:北京兆芯电子科技有限公司
类型:发明
国别省市:

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

1