CN113704791B - 处理器、以及哈希信息认证码编码方法 - Google Patents
处理器、以及哈希信息认证码编码方法 Download PDFInfo
- Publication number
- CN113704791B CN113704791B CN202111019821.6A CN202111019821A CN113704791B CN 113704791 B CN113704791 B CN 113704791B CN 202111019821 A CN202111019821 A CN 202111019821A CN 113704791 B CN113704791 B CN 113704791B
- Authority
- CN
- China
- Prior art keywords
- authentication code
- hash
- algorithm
- information authentication
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 description 9
- 238000013519 translation Methods 0.000 description 8
- 101150071111 FADD gene Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 101100514059 Escherichia coli (strain K12) modE gene Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
一种高速的哈希信息认证码(HMAC)算法编码技术。具备哈希信息认证码算法的处理器具有微码储存器、解码器、以及执行单元。该微码储存器储存微码。该解码器在响应于指令集架构的单一条哈希信息认证码算法指令时,根据该微码储存器储存的该微码,转换出多条微指令。根据该解码器提供的上述多条微指令,该执行单元对取自系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存。
Description
技术领域
本发明有关于具备哈希信息认证码(Hash-based message authenticationcode,缩写为HMAC)算法的处理器及其处理方法。
背景技术
哈希信息认证码(HMAC),是一种密钥相关的哈希运算信息认证码(messageauthentication code,缩写为MAC);它可以保证数据的完整性,同时可以作为某个信息的身分验证。
已知的技术中,都是使用多条指令集架构(Instruction Set Architecture,简称ISA)指令操作处理器实现HMAC算法,无法有效保护运算过程中生成的中间数据,所以安全性较差。
如何高效且更安全的完成HMAC算法,为本技术领域一项重大课题。
发明内容
本发明以高安全性设计提出具备哈希信息认证码(HMAC)算法的处理器及其哈希信息认证码编码方法。
根据本发明一种实施方式实现的处理器包括:微码储存器、解码器、以及执行单元。该微码储存器储存微码。该解码器在响应于指令集架构的单一条哈希信息认证码算法指令时,根据该微码储存器储存的该微码,转换出多条微指令。根据该解码器提供的上述多条微指令,该执行单元对取自系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存。
根据本发明一种实施方式实现的哈希信息认证码编码方法,包括:响应于指令集架构的单一条哈希信息认证码算法指令,根据微码,转换出多条微指令;以及以上述多条微指令操作执行单元,对取自该处理器外部系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存。
通过本发明提供的处理器及其哈希信息认证码编码方法,单一条指令集架构(ISA)指令就足以实现哈希信息认证码算法,且哈希信息认证码算法过程中生成的中间数值可隔绝在处理器内部,使得在处理器外部无法窥探这些中间数值,极大地提高了安全性。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1为方块图,根据本发明一种实施方式图解一处理器100;
图2根据本发明一种实施方式图解指令集架构(ISA)的HMAC算法指令的格式、以及输入寄存器设计;
图3还图解ISA指令撰写的一种实施方式;以及
图4A和4B为流程图,根据本发明一种实施方式图解HMAC算法指令引发的步骤程序,相应多条微指令。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
本发明揭示一种具备哈希信息认证码(HMAC)算法的处理器。本发明为HMAC算法设计指令集架构(Instruction Set Architecture,简称ISA)的一哈希信息认证码(HMAC)算法指令。处理器支持的指令集可包括x86指令集。
一种实施方式中,本发明在处理器的微码(ucode)有对应于该HMAC算法指令的设计,且还可以在该处理器的一密码执行单元增设一哈希值算法加速器(包括SM3、SHA256和/或其它哈希值算法的运算硬件)。处理该HMAC算法指令时,处理器参照该微码,转换出多条微指令,根据架构寄存器(architecture registers)的内容操作处理器硬件,实现HMAC算法。包括该哈希值算法加速器的该密码执行单元将使得HMAC算法更快速安全。使用本技术,HMAC算法过程中产生的中间数值可妥善隐藏在处理器内部硬件储存空间中,所以不会被处理器执行的其它指令访问,从而保证了安全性。
图1为方块图,根据本发明一种实施方式图解一处理器100。基于分支预测器(branch predictor)102,指令根据指令转译后备缓冲区(instruction translationlookaside buffer)ITLB的转译结果,从一系统内存140加载到指令高速缓存(instructioncache)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 translationlookaside 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算法指令而动作。
解码器110在基于微码ucode对应的一HMAC算法指令生成微指令时,会参考架构寄存器128内容。架构寄存器128内容可包括:控制字(control word),例如,设定密钥来源、选择哈希值算法;系统内存140存取信息,例如,输入文本、HMAC算法结果、甚至软件密钥的存取信息。架构寄存器128(即,通用寄存器)用作设定处理器100硬件实施HMAC算法的输入寄存器(input registers)。
一种实施方式中,HMAC算法产生的中间数值储存在内部寄存器130中。内部寄存器130可理解为物理寄存器堆(physical register file),软件无法访问。
一种实施方式中,存储器132储存硬件密钥。一种实施方式中,处理器100也可以是以其内部其他储存装置(通称为密钥内存)储存硬件密钥。
一种实施方式中,响应于单一条HMAC算法指令而产生的多条微指令包括驱动以下动作:通过内存顺序缓存区116存取该系统内存140,获取输入文本、甚至原始密钥;以逻辑运算单元ALU提供的异或运算、以及密码执行单元118提供的哈希值算法加速器(126)对输入文本进行HMAC算法;以及通过内存顺序缓存区116将生成的HMAC回存系统内存140。
图2根据本发明一种实施方式图解指令集架构(ISA)的HMAC算法指令的格式、以及输入寄存器设计。
图2图解ISA的HMAC算法指令的格式202,并以表格204分条列举图1的架构寄存器128如何定义作为输入寄存器。格式202的前缀、操作码(opcode)、字段ModR/M为:0xF2 0x0F0xA6 0xC8(也可以是其它值,本发明对此不做限定)。字段SIB、Displacement、以及Immediate则不填(non)。在图1的解码器110识别出编码“0xF2 0x0F 0xA6 0xC8”后,即依照微码ucode设计产生多条微指令,然后产生的多条微指令根据表204之定义解读输入寄存器,以基于输入寄存器内容操作处理器100内部硬件进行HMAC算法。
参考表格204,对应ISA的HMAC算法指令的输入寄存器涉及图1的架构寄存器128中的寄存器EAX、EBX、ECX、EDX、ESI、以及EDI。寄存器EAX储存的是软件密钥(software rootkey)的地址指针。寄存器EBX储存的是软件密钥的长度,以字节(byte)为计数单位。寄存器ECX储存的是输入文本的长度。寄存器EDX储存的是控制字。寄存器ESI储存的是输入文本的地址指针。寄存器EDI储存的是保存HMAC算法计算结果HMAC(即哈希信息认证码)的地址指针。
寄存器EDX储存的控制字可如下解读。在一实施例中,比特[1]标注所采用的哈希值算法;值“0”代表采用哈希值算法SHA256,而值“1”代表采用哈希值算法SM3。此外,HMAC算法的密钥可有多种来源。寄存器EDX比特[2]标注密钥来源;值“0”代表采用软件密钥(即寄存器EAX、EBX内容有意义),值“1”代表采用硬件密钥(即寄存器EAX、EBX内容无意义,乃从处理器100的内部的密钥内存获取硬件密钥)。在另一实施例中,也可使用寄存器EDX的比特[0]标注所采用的哈希值算法,值“1”代表采用哈希值算法SHA256,而值“0”代表采用哈希值算法SM3;并使用寄存器EDX的比特[3]标注密钥来源,值“1”代表采用软件密钥,值“0”代表采用硬件密钥。总之,本发明并不限定每种设置所使用的具体比特,以及表示特定设置时所使用的具体数值。
在另一实施例中,对应ISA的HMAC算法指令的输入寄存器只包括图1的架构寄存器128中的寄存器ECX、ESI、以及EDI。HMAC算法的密钥只有一种来源,即来源于处理器100的内部的密钥内存中。由图1中的解码器110转换出的多条微指令,使得执行单元从密钥内存获取硬件密钥。
输入寄存器也可有其他设定(比如使用寄存器EAX储存控制字、使用寄存器EDX储存输入文本的长度,等等),取决于使用者设计。
图3还图解ISA指令撰写的一种实施方式。程序代码300可包括以上格式202(图2)的一条HMAC算法指令302。该条HMAC算法指令302之前可包括至少一条寄存器设定指令304,用于填写图1的架构寄存器128,为HMAC算法指令302的执行做准备,图1的架构寄存器128有寄存器EAX、EBX、ECX、EDX、ESI、以及EDI。例如,以指令304将软件密钥的地址指针填入寄存器EAX,将软件密钥的长度填入寄存器EBX,将输入文本的长度填入寄存器ECX,将控制字填入寄存器EDX,将输入文本的地址指针填入寄存器ESI,且将保存HMAC算法计算结果的地址指针填入寄存器EDI。HMAC算法的输入寄存器内容即可在HMAC算法指令302执行前备妥。图1的解码器110在解码该条HMAC算法指令302时,即可从微码ucode转换出多条微指令,根据输入寄存器内容操作处理器100的执行单元。
图4A和4B为流程图,根据本发明一种实施方式图解HMAC算法指令引发的步骤程序,相应多条微指令。
步骤S402,处理器100判读寄存器EDX的比特[2]。若EDX[2]为1,流程进入步骤S404,使得处理器100从一存储器132获取一硬件密钥,作为原始密钥KEY。若EDX[2]为0,流程进入步骤S406。
步骤S406,处理器100判读寄存器EAX,获取软件密钥的地址指针,并判读寄存器EBX,获取软件密钥的长度。步骤S406使得处理器100根据寄存器EAX、EBX判读结果,从系统内存140获取软件密钥,作为原始密钥KEY。相关微指令涉及内存顺序缓存区116的操作。
步骤S408,处理器100检查原始密钥KEY的尺寸是否大于B字节,其中B为哈希值算法所支持的输入区块尺寸(以字节为计数单位);在一实施例中,B的值为64。若步骤S408的判断结果为“是”(即原始密钥KEY过长),流程进行步骤S410。反之,流程进行步骤S412。
步骤S410,处理器100根据寄存器EDX的比特[1]选择的哈希值算法(SHA256/SM3),对过长的原始密钥KEY进行处理,生成哈希信息认证码(HMAC)密钥K0(=HASH(KEY))。具体而言,处理器100的执行单元执行下面的步骤:第一步,扩展原始密钥KEY;先计算原始密钥KEY的长度len,计算len与B的余数r。然后,在原始密钥KEY后面填充r-B个字节的0。扩展后,原始密钥的字节长度为B的整数倍。第二步,计算填充后密钥KEY的哈希值;首先,将填充后密钥KEY分为多组,每组长度为B字节;然后,使用哈希值算法加速器126依次对每组密钥进行运算,最后得到密钥K0(K0长度为B字节)。然后,处理器100再进行图4B步骤。相关微指令涉及哈希值算法加速器126的操作。
步骤S412,处理器100检查原始密钥KEY尺寸是否小于B字节。若判断结果为“是”(即原始密钥KEY过短),流程进行步骤S414。反之,流程进行步骤S416。相关微指令涉及逻辑运算单元ALU的操作。
步骤S414,处理器100的执行单元扩展过短的原始密钥KEY(如,填0),使得扩展后的原始密钥的长度为B字节,得HMAC密钥K0,再进行图4B步骤。
步骤S416,处理器100为其他状况确定HMAC密钥K0值。长度恰为B字节的原始密钥KEY就设定为HMAC密钥K0(=KEY)。倘若先前是如步骤S404设计,获取硬件密钥作为原始密钥KEY,由于硬件密钥已经被预先设置为长度为B字节,可直接将硬件密钥设定为HMAC密钥K0(=KEY)。接着,流程进入图4B步骤。
步骤S418,处理器100对HMAC密钥K0、以及内部填充ipad(inner pad)作异或(exclusive or)运算,得一中间数值T1:T1=K0^ipad。内部填充ipad为字节值x36复制B次形成的常数,由处理器100内部提供。根据前文内容可知,K0的长度为B字节,ipad的长度也为B字节,所以T1的长度是B字节。相关微指令涉及逻辑运算单元ALU的操作。
步骤S420,处理器100采用寄存器EDX[1]选择的哈希值算法,对中间数值T1和输入文本TEXT(根据寄存器ESI、ECX判读结果取自系统内存140),进行哈希值算法,得一中间数值T2:T2=HASH(T1||TEXT)其中,||表示连接操作。具体而言,计算中间值T2的步骤为:第一步,将中间数据T1和输入文本TEXT连接,得T1||TEXT。第二步,扩展T1||TEXT,使得扩展后T1||TEXT的长度为B的整数倍;具体扩展方法与步骤S410中所述的扩展原始密钥KEY的方法相同,此处就不赘述了。第三步,将扩展后T1||TEXT分为多组,每组长度为B字节,然后依次将每组数据发送给哈希值算法加速器126进行哈希值计算,生成中间数值T2。相关微指令涉及内存顺序缓存区116、逻辑运算单元ALU、以及哈希值算法加速器126的操作。在一实施例中,处理器100先将中间数值T1发送给哈希值算法加速器126进行哈希值计算;然后从系统内存140读取TEXT的前B字节的数据TEXT1,并将TEXT1发送给哈希值算法加速器126进行哈希值计算;然后再从系统内存140读取TEXT的下一B字节的数据TEXT2,并将TEXT2发送给哈希值算法加速器126进行哈希值计算;以此类推,直到处理完全部的输入数据TEXT。如果最后一次读取到的输入数据TEXTn的长度不足B字节,则先使用步骤S410中所述的扩展原始密钥KEY的方法将TEXTn扩展为B字节长度,然后再将TEXTn发送给哈希值算法加速器126进行哈希值计算。
步骤S422,处理器100对HMAC密钥K0、以及外部填充opad(outer pad)作异或运算,得一中间数值T3:T3=K0^opad。外部填充opad为字节值x5c复制B次形成的常数,由处理器100内部提供。相关微指令涉及逻辑运算单元ALU的操作。
步骤S424,处理器100采用寄存器EDX[1]选择的哈希值算法,得一中间数值T4:T4=HASH(T3||T2),并取该中间数值T4最左边t比特作为哈希信息认证码HMAC,t为整数;其中,T3||T2表示中间数值T3与T2进行连接操作。相关微指令涉及逻辑运算单元ALU、以及哈希值算法加速器126的操作。
步骤S426,处理器100根据寄存器EDI所载的地址指针,将哈希信息认证码HMAC存入系统内存140。相关微指令涉及内存顺序缓存区116的操作。
前述中间数值T1~T4可以用图1的系统内存140暂存。然而,特别有一种实施方式是把中间数值T1~T4也保护在处理器100中(例如,存在图1的内部寄存器130),以提高安全性。如此设计将使得处理器100与系统内存140之间只有输入文本TEXT的传递,以及最后哈希信息认证码HMAC的回存,HMAC算法的其他高机密内容完全不曝露在系统内存。
另一种实施方式中,密码执行单元118还在自己内部额外提供逻辑运算单元ALU部分硬件(如,异或硬件),与哈希值算法加速器126结合,形成HMAC算法加速器,加速HMAC算法。
根据本发明一种实施方式实现的处理器100包括:一微码储存器(储存微码ucode的装置)、一解码器110、以及一执行单元(包括至少逻辑运算单元ALU、内存顺序缓存区116以及密码执行单元118)。该微码储存器储存一微码ucode。该解码器110在响应于一指令集架构(ISA)的单一条HMAC算法指令时,根据该微码储存器储存的该微码ucode,转换出多条微指令。根据该解码器100提供的上述多条微指令,该执行单元对取自一系统内存140的一输入文本,进行一HMAC算法,转换出一HMAC储存至该系统内存140。
根据本发明一种实施方式实现的HMAC编码方法,包括:响应于一指令集架构(ISA)的单一条HMAC算法指令,根据一微码ucode,转换出多条微指令;以及以上述多条微指令操作一执行单元(包括至少逻辑运算单元ALU、内存顺序缓存区116以及密码执行单元118),对取自一系统内存140的一输入文本,进行一HMAC算法,转换出一HMAC储存至该系统内存140。
相比本发明技术,传统技术需要使用多条指令集架构(ISA)指令才能实现HMAC算法,无法有效保护运算过程中生成的中间数值,所以安全性较差。但是,通过本发明提供的具备HMAC算法的处理器及其处理方法,只需使用指令集架构指令(ISA)的单一条HMAC算法指令就可以实现HMAC算法。HMAC算法过程中生成的中间数值可储存在处理器100内部寄存器130中,避免从处理器100外部访问这些中间数据,极大地提高了安全性。
虽然本发明已以较佳实施例揭示如上,然其并非用于限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围以权利要求书界定为准。
[符号说明]
100:处理器;
102:分支预测器;
104:指令高速缓存;
106:指令缓存器(XIB);
108:格式指令队列(FIQ);
110:解码器;
112:指令队列(XIQ);
114:重命名单元;
116:内存顺序缓存区;
118:密码执行单元;
120:数据高速缓存;
122:重排缓存区;
124:核心寄存器;
126:哈希值算法加速器;
128:架构寄存器;
130:内部寄存器;
132:存储器;
140:系统内存
202:HMAC算法指令的格式;
204:表格,相应HMAC算法的输入寄存器设计;
300:程序代码;
302:HMAC算法指令;
304:至少一条寄存器设定指令;
AGU:地址产生单元;
ALU:逻辑运算单元;
DTLB:数据转译后备缓冲区;
Fadd、Fmul、Fmisc、MMX:执行单元的多个部位;
ITLB:指令转译后备缓冲;
non:无填值;
opcode、ModR/M、SIB、Displacement、immediate:字段;
RS:保留站;
S402…S426:步骤;以及
ucode:微码储存器储存的微码。
Claims (15)
1.一种具备哈希信息认证码算法的处理器,包括:
微码储存器,储存微码;
耦接该微码储存器的解码器,在响应于指令集架构的单一条哈希信息认证码算法指令时,根据该微码储存器储存的该微码,转换出多条微指令;
耦接该解码器的执行单元,根据该解码器提供的上述多条微指令,对取自系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存;
第一寄存器,储存控制字,上述多条微指令使得该执行单元根据该控制字指示的原始密钥进行该哈希信息认证码算法;以及
软件无法探知的内部寄存器,暂存该执行单元进行该哈希信息认证码算法过程中生成的中间数值。
2.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:
第二寄存器,储存软件密钥地址指针,指示软件密钥在该系统内存上的位置;以及
第三寄存器,储存软件密钥长度,标示该软件密钥的长度;
其中:
该执行单元包括内存顺序缓存区;以及
该控制字指示以该软件密钥作为该原始密钥时,上述多条微指令使得该执行单元通过该内存顺序缓存区,依据该第二寄存器储存的该软件密钥地址指针、以及该第三寄存器储存的该软件密钥长度,从该系统内存获取该软件密钥。
3.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:
密钥内存,储存硬件密钥;
其中,该控制字指示以该硬件密钥作为该原始密钥时,上述多条微指令使得该执行单元从该密钥内存获取该硬件密钥。
4.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:
密钥内存,储存硬件密钥;
其中,上述多条微指令使得该执行单元从该密钥内存获取该硬件密钥。
5.如权利要求1所述的具备哈希信息认证码算法的处理器,其中:
该控制字指示该哈希信息认证码算法采用的哈希值算法,由上述多条微指令使得该执行单元根据该哈希值算法进行该哈希信息认证码算法。
6.如权利要求5所述的具备哈希信息认证码算法的处理器,其中:
该执行单元包括密码执行单元,且该密码执行单元包括哈希值算法加速器,硬件实现该哈希值算法;
上述多条微指令包含加速器操作微指令;以及
该哈希值算法加速器响应于该加速器操作微指令而操作。
7.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:
第四寄存器,储存输入文本地址指针,指示该输入文本在该系统内存上的位置;以及
第五寄存器,储存输入文本长度,标示该输入文本的长度;
其中,上述多条微指令使得该执行单元通过内存顺序缓存区,依据该第四寄存器储存的该输入文本地址指针、以及该第五寄存器储存的该输入文本长度,从该系统内存获取该输入文本。
8.如权利要求1所述的具备哈希信息认证码算法的处理器,还包括:
第六寄存器,储存计算结果地址指针,指示该哈希信息认证码在该系统内存上的目标储存位置;
其中,上述多条微指令使得该执行单元通过内存顺序缓存区,依据该第六寄存器储存的该计算结果地址指针,将该哈希信息认证码储存至该系统内存。
9.如权利要求1所述的具备哈希信息认证码算法的处理器,其中:
该执行单元包括逻辑运算单元,在上述多条微指令操作下,实现该哈希信息认证码算法的异或运算。
10.如权利要求9所述的具备哈希信息认证码算法的处理器,其中,该执行单元根据上述多条微指令对原始密钥和该输入文本进行该哈希信息认证码算法,其中:
过短的该原始密钥由该逻辑运算单元进行扩展,生成哈希信息认证码密钥,过长的该原始密钥由该逻辑运算单元处理,生成该哈希信息认证码密钥;
该逻辑运算单元对该哈希信息认证码密钥、以及内部填充进行该异或运算,得第一中间数值;
该逻辑运算单元将该第一中间数值与该输入文本连接,切割该第一中间数值与该输入文本连接后的文本为多段切割文本,依次交由哈希值算法加速器进行哈希值算法,生成第二中间数值;
该逻辑运算单元对该哈希信息认证码密钥、以及外部填充进行该异或运算,得第三中间数值;
该逻辑运算单元将该第三中间数值与该第二中间数值连接,交由该哈希值算法加速器处理,产生第四中间数值;以及
该逻辑运算单元取该第四中间数值左方t比特为该哈希信息认证码,t为整数。
11.如权利要求10所述的具备哈希信息认证码算法的处理器,还包括:
软件无法探知的内部寄存器,暂存该第一中间数值、该第二中间数值、该第三中间数值、以及该第四中间数值。
12.一种哈希信息认证码编码方法,包括:
响应于指令集架构的单一条哈希信息认证码算法指令,根据微码,转换出多条微指令;
以上述多条微指令操作执行单元,对取自系统内存的输入文本,进行哈希信息认证码算法,转换出哈希信息认证码储存至该系统内存;
在该单一条哈希信息认证码算法指令之前,储存控制字至第一寄存器,用于据以转换出上述多条微指令,使得该执行单元根据该控制字指示的原始密钥进行该哈希信息认证码算法;以及
以软件无法探知的内部寄存器,暂存该执行单元进行该哈希信息认证码算法过程中生成的中间数值。
13.如权利要求12所述的哈希信息认证码编码方法,还包括:
在该单一条哈希信息认证码算法指令之前,储存软件密钥地址指针至第二寄存器,指示软件密钥在该系统内存上的位置;
在该单一条哈希信息认证码算法指令之前,储存软件密钥长度至第三寄存器,标示该软件密钥的长度;以及
该控制字指示以该软件密钥作为该原始密钥时,上述多条微指令使得该执行单元依据该第二寄存器储存的该软件密钥地址指针、以及该第三寄存器储存的该软件密钥长度,从该系统内存获取该软件密钥。
14.如权利要求12所述的哈希信息认证码编码方法,其中:
该控制字指示哈希信息认证码算法采用的哈希值算法,由上述多条微指令使得该执行单元根据该哈希值算法进行该哈希信息认证码算法。
15.如权利要求14所述的哈希信息认证码编码方法,其中上述多条微指令包含加速器操作微指令,上述哈希信息认证码编码方法还包括:
使得该执行单元的密码执行单元的哈希值算法加速器响应于该加速器操作微指令而操作,用硬件实现该哈希值算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111019821.6A CN113704791B (zh) | 2021-09-01 | 2021-09-01 | 处理器、以及哈希信息认证码编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111019821.6A CN113704791B (zh) | 2021-09-01 | 2021-09-01 | 处理器、以及哈希信息认证码编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704791A CN113704791A (zh) | 2021-11-26 |
CN113704791B true CN113704791B (zh) | 2024-03-15 |
Family
ID=78658656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111019821.6A Active CN113704791B (zh) | 2021-09-01 | 2021-09-01 | 处理器、以及哈希信息认证码编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704791B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107667499A (zh) * | 2015-06-26 | 2018-02-06 | 英特尔公司 | 带密钥散列消息认证码处理器、方法、系统和指令 |
CN109274480A (zh) * | 2017-07-17 | 2019-01-25 | 科大国盾量子技术股份有限公司 | 基于hmac-sm3算法的数据认证方法及量子密钥分发系统 |
CN109684126A (zh) * | 2018-12-25 | 2019-04-26 | 贵州华芯通半导体技术有限公司 | 用于arm设备的内存校验方法和执行内存校验的arm设备 |
WO2019129417A1 (de) * | 2017-12-29 | 2019-07-04 | Siemens Aktiengesellschaft | Verfahren und system zum überprüfen einer integrität einer kommunikation |
CN111953497A (zh) * | 2020-08-06 | 2020-11-17 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于hmac算法的消息认证码生成装置及方法 |
CN112104462A (zh) * | 2020-08-20 | 2020-12-18 | 郑州信大捷安信息技术股份有限公司 | 一种hmac算法的快速实现方法及装置 |
CN112231777A (zh) * | 2020-12-14 | 2021-01-15 | 武汉新芯集成电路制造有限公司 | 一种单调计数器及其单调计数方法 |
CN212411195U (zh) * | 2020-12-14 | 2021-01-26 | 武汉新芯集成电路制造有限公司 | 一种单调计数器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100901697B1 (ko) * | 2007-07-09 | 2009-06-08 | 한국전자통신연구원 | 저전력 sha-1 해쉬 연산 장치 및 이를 이용한 저전력hmac 암호 장치 |
US9425953B2 (en) * | 2013-10-09 | 2016-08-23 | Intel Corporation | Generating multiple secure hashes from a single data buffer |
-
2021
- 2021-09-01 CN CN202111019821.6A patent/CN113704791B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107667499A (zh) * | 2015-06-26 | 2018-02-06 | 英特尔公司 | 带密钥散列消息认证码处理器、方法、系统和指令 |
CN109274480A (zh) * | 2017-07-17 | 2019-01-25 | 科大国盾量子技术股份有限公司 | 基于hmac-sm3算法的数据认证方法及量子密钥分发系统 |
WO2019129417A1 (de) * | 2017-12-29 | 2019-07-04 | Siemens Aktiengesellschaft | Verfahren und system zum überprüfen einer integrität einer kommunikation |
CN109684126A (zh) * | 2018-12-25 | 2019-04-26 | 贵州华芯通半导体技术有限公司 | 用于arm设备的内存校验方法和执行内存校验的arm设备 |
CN111953497A (zh) * | 2020-08-06 | 2020-11-17 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于hmac算法的消息认证码生成装置及方法 |
CN112104462A (zh) * | 2020-08-20 | 2020-12-18 | 郑州信大捷安信息技术股份有限公司 | 一种hmac算法的快速实现方法及装置 |
CN112231777A (zh) * | 2020-12-14 | 2021-01-15 | 武汉新芯集成电路制造有限公司 | 一种单调计数器及其单调计数方法 |
CN212411195U (zh) * | 2020-12-14 | 2021-01-26 | 武汉新芯集成电路制造有限公司 | 一种单调计数器 |
Also Published As
Publication number | Publication date |
---|---|
CN113704791A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11128443B2 (en) | SM3 hash algorithm acceleration processors, methods, systems, and instructions | |
CN107667499B (zh) | 带密钥散列消息认证码处理器、方法、系统和指令 | |
JP6449349B2 (ja) | 複数の128ビットデータパスにおけるsha1ラウンド処理のための命令セット | |
CN110659244A (zh) | 内联编码能力 | |
JP5986688B2 (ja) | Sha256アルゴリズムのメッセージスケジューリングのための命令セット | |
JP6177355B2 (ja) | 擬似乱数生成操作を実施するための命令 | |
TWI639952B (zh) | 用於建置及維持在亂序硬體軟體協同設計處理器中具有堆疊同步指令的述詞值之堆疊的方法、設備與非暫態機器可讀媒體 | |
JP2013534668A (ja) | 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム | |
US20040230816A1 (en) | Cipher message assist instructions | |
US20220209933A1 (en) | Integrity protected access control mechanisms | |
TW201810046A (zh) | 用於存取快取記憶體的方法與裝置 | |
JP2006526202A (ja) | コンピューティング環境のストレージをダイジェスト化するための方法、システム、およびコンピュータ・プログラム(メッセージ・ダイジェスト化命令の処理) | |
AU2017333398B2 (en) | Padding for creating a message digest | |
EP4020288A1 (en) | Low overhead memory integrity with error correction capabilities | |
CN115525387A (zh) | 用于支持加密远程直接存储器访问(erdma)以供进行虚拟机实时迁移的电路和方法 | |
EP4020878A1 (en) | Isa accessible physical unclonable function | |
CN113704791B (zh) | 处理器、以及哈希信息认证码编码方法 | |
US20230085569A1 (en) | Processor with an elliptic curve cryptographic algorithm and a data processing method thereof | |
EP4020877B1 (en) | Isa accessible physical unclonable function | |
CN116302104A (zh) | 用于实现通过有界能力寻址的非冗余元数据存储装置的电路和方法 | |
EP4020180A1 (en) | Isa accessible physical unclonable function | |
CN114692223A (zh) | 用于通过不受信任的链路对硬件进行编程的isa支持 | |
EP4156006A1 (en) | Isa accessible physical unclonable function | |
EP4020182A1 (en) | Isa accessible physical unclonable function | |
JP2023048101A (ja) | メモリ支援インライン暗号化/復号 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |