CN114629665B - 一种用于可信计算的硬件平台 - Google Patents
一种用于可信计算的硬件平台 Download PDFInfo
- Publication number
- CN114629665B CN114629665B CN202210529128.1A CN202210529128A CN114629665B CN 114629665 B CN114629665 B CN 114629665B CN 202210529128 A CN202210529128 A CN 202210529128A CN 114629665 B CN114629665 B CN 114629665B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- coprocessor
- module
- stage
- iteration
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Advance Control (AREA)
Abstract
本发明提供的一种用于可信计算的硬件平台,包括主处理器和协处理器,主处理器和协处理器之间通过扩展密码接口进行数据传输;协处理器上设置有算法协处理器、密码算法控制器和真随机数发生器;算法协处理器,用于实现SM2算法、SM3算法和SM4算法的运算;密码算法控制器,用于通过扩展密码接口接收来自主处理器的指令,并对指令进行译码;根据译码后的指令协调算法协处理器进行运算,将算法协处理器的运算结果通过扩展密码接口发送给主处理器或存储器;真随机数发生器,用于产生多种长度的真随机数,并配合算法协处理器进行运算;本发明具有运算速度较快、安全性较高的有益效果,适用于可信计算领域。
Description
技术领域
本发明涉及可信计算的技术领域,具体涉及一种用于可信计算的硬件平台。
背景技术
基于我国自主密码的计算复杂性设计的可信计算3.0,具有主动免疫特征;然而,目前可信计算的实现一般采用通用计算的处理器实现自主密码算法,效率和安全性均较低。
为了提高可信硬件平台的安全性,需要采用专用设计的方式实现可信计算所需的密码算法。
发明内容
针对相关技术中存在的不足,本发明所要解决的技术问题在于:提供一种密码算法运算速度较快、安全性较高的用于可信计算的硬件平台。
为解决上述技术问题,本发明采用的技术方案为:
一种用于可信计算的硬件平台,包括:用于可信计算的主处理器和用于可信密码处理的协处理器,所述主处理器和协处理器之间通过扩展密码接口进行数据传输;
所述协处理器上设置有:算法协处理器、密码算法控制器和真随机数发生器;
所述算法协处理器,用于实现SM2算法、SM3算法和SM4算法的运算;
所述密码算法控制器,用于通过扩展密码接口接收来自主处理器的指令,并对指令进行译码;以及根据译码后的指令协调算法协处理器进行运算,并协调完成算法协处理器上的算法之间的信息传输;以及将算法协处理器的运算结果通过扩展密码接口发送给主处理器或存储器;
所述真随机数发生器,用于产生多种长度的真随机数,并配合算法协处理器进行运算。
优选地,所述主处理器包括:基于RISC-V指令集的五级流水线结构,第一级为取指级,第二级为译码级,第三级为控制级,第四级为执行级,第五级为写回级。
优选地,所述取指级,用于从指令寄存器中取回当前指令,并计算下一条指令的地址;在从取回指令的同周期内,进行译码运算,以及分支预测操作;
所述译码级,用于对取指级中取回的指令进行译码,确定当前指令是通往主处理器还是协处理器;如,当前指令是通往主处理器,则对指令进行进一步译码;
所述控制级,用于将针对主处理器操作的处理信号送入执行级;或将针对协处理器操作的指令信息、控制信号和源操作数,通过扩展密码接口送入协处理器中;
所述执行级,用于进行指令的运算操作和数据访存操作;以及根据指令需求,把对应的源操作数送入ALU单元进行指令运算;
所述写回级,用于将执行级的数据结果写回寄存器堆。
优选地,所述扩展密码接口包括:
请求通道,用于使主处理器在控制级阶段将指令信息和源操作数发送给协处理器;
响应通道,用于使协处理器将处理后的结果传输至主处理器;
存储器请求通道,用于使协处理器向主处理器发起存储器读写请求;
存储器响应通道,用于使主处理器向协处理器返回存储器的读写结果。
优选地,所述的算法协处理器包括:SM2算法协处理器、SM3算法协处理器和SM4算法协处理器。
优选地,所述SM2算法协处理器包括:密钥派生模块、公钥生成模块、公钥加密模块和数字签名模块;
密钥派生模块,用于从共享秘密比特串中派生出与明文等长的密钥数据,加密明文数据;
公钥生成模块,用于计算随机数和椭圆曲线基点的乘积,求算结果坐标;
公钥加密模块,包括:加密子模块和解密子模块;
加密子模块,用于通过随机数和明文数据,依据SM2密码算法中的公钥加密算法规则,产生由C1、C2和C3三部分拼接而成的密文,通过扩展密码接口传输至存储器;
解密子模块,用于通过私钥和密文数据,依据SM2密码算法的解密算法规则进行解密;
数字签名模块,包括:签名模块和验签模块;
签名模块,用于通过待签名消息和用户的可辨别标识,根据SM2密码算法中的数字签名算法规则,得到用户签名,将用户签名通过扩展密码接口传输至存储器;
验签模块,用于对收到的用户签名,根据SM2密码算法中的数字签名的验证规则,对签名消息进行验签,如,验证通过,将正确信息返回至主处理器;否则,将错误信息返回至主处理器。
优选地,所述SM3算法协处理器包括:输入控制器、扩展模块、迭代压缩模块、迭代计数器和迭代寄存器;
所述输入控制器,用于从SM3算法协处理器的缓存中按字提取明文数据,存入对应寄存器,并按512bit进行分组后,发送至扩展模块进行扩展;以及提取缓存中的空信号,以控制迭代计数器的复位和迭代寄存器写回缓存;
所述扩展模块,用于通过SM3算法将每组512bit的数据则按字扩展,扩展后形成132个字;其中:1个字为32bit;
所述迭代压缩模块,用于通过压缩函数对扩展模块的132个字进行压缩,压缩后的值发送至SM3算法协处理器的输出端;
所述迭代计数器,用于控制迭代压缩模块的压缩函数的数据取自初始值还是上一次迭代的数据;
所述迭代寄存器,用于存放每次迭代后的数值,以便为下一次压缩函数使用;
其中,迭代计数器的初始值为0,每次迭代压缩计算,迭代计数器加1;当迭代计数器为0时,迭代寄存器读取迭代初始值;当迭代计数器大于0时,则使用迭代寄存器的值。
优选地,所述SM4算法协处理器包括:迭代控制模块、加密模块和轮密钥生成模块;
迭代控制模块,用于输出控制信号、轮信号和数据信号,所述的数据信号中包含明文数据;
轮密钥生成模块,用于接收迭代控制模块输出的轮信号和加密模块输出的密钥,并根据轮信号和密钥信号,进行迭代运算,生成对应当前轮信号的轮密钥;其中,所述的密钥为128bit的数据,所述的轮密钥为32个32bit的数据;
加密模块,用于通过32个轮密钥对128bit的明文数据进行32轮迭代运算,生成36个32位的迭代结果;并取迭代结果中的后四个32bit的值,经过反序变换后,得到128bit的密文数据并输出;
在控制模块轮信号和加解密信号控制调节下,轮密钥生成模块每个时钟循环完成一次迭代运算,生成对应当前轮的轮密钥,并传递给加密模块,用于下一步加密计算。
优选地,所述真随机数发生器的结构为:多个环形振荡器、异或门、采样电路和线性移位寄存器;
所述环形振荡器的数量为奇数;
所述环形振荡器,用于产生振荡信号;
所述异或门,用于接收多个环形振荡器输出的振荡信号,并对每个环形振荡器的输出信号进行异或运算,得到随机数产生源信号;
所述采样电路,用于对异或运算后的随机数产生源信号进行采样同步,得到随机数序列;
所述线性移位寄存器,用于对随机数序列进行偏移纠正,得到真随机数序列。
优选地,所述线性移位寄存器与SM3算法协处理器连接;
所述SM3算法协处理器,用于对真随机数进行算法处理,得到256bit定长的序列。
本发明的有益技术效果在于:
1、本发明提供的一种用于可信计算的硬件平台,主处理器和协处理器之间采用专用接口连接,更加符合对应的数据结构,传输速度更快;同时,可信硬件平台密码算法采用硬件的方式运行,不仅加快可信密码算法的运行速度,而且使可信硬件平台安全性更高,实用性极强。
2、本发明中,主处理器中设立一级控制级流水线,专用于控制指令流向,把通用指令和协处理器专用指令分流,精确完成密码算法任务,且不影响主处理器的运行。
3、本发明中,主处理器具有专用的流水线用于控制指令流向,能够更精确的完成密码算法任务。
附图说明
图1是本发明实施例一提供的一种用于可信计算的硬件平台的结构示意图;
图2是本发明实施例一提供的一种用于可信计算的硬件平台中主处理器的结构示意图;
图3是本发明实施例一提供的一种用于可信计算的硬件平台中扩展密码接口结构示意图;
图4是本发明实施例二提供的一种用于可信计算的硬件平台中算法协处理器的结构示意图;
图5是本发明实施例二提供的一种用于可信计算的硬件平台中SM2算法协处理器的结构示意图;
图6是本发明实施例二提供的一种用于可信计算的硬件平台中SM3算法协处理器的结构示意图;
图7是本发明实施例二提供的一种用于可信计算的硬件平台中SM4算法协处理器的结构示意图;
图8是本发明实施例三提供的一种用于可信计算的硬件平台中真随机数发生器的结构示意图;
图中:10为主处理器,20为协处理器,30为扩展密码接口;
101为取指级,102为译码级,103为控制级,104为执行级,105为写回级;
201为算法协处理器,202为密码算法控制器,203为真随机数发生器;
301为请求通道,302为响应通道,303为存储器请求通道,304为存储器响应通道;
2011为SM2算法协处理器;
20111为密钥派生模块,20112为公钥生成模块,20113为公钥加密模块,20114为数字签名模块;201131为加密子模块,201132为解密子模块,201141为签名模块,201142为验签模块;
2012为SM3算法协处理器;
20121为输入控制器,20122为扩展模块,20123为迭代压缩模块,20124为迭代计数器,20125为迭代寄存器;
2013为SM4算法协处理器;
20131为迭代控制模块,20132为加密模块,20133为轮密钥生成模块;
2031为环形振荡器,2032为异或门,2033为采样电路,2034为线性移位寄存器。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
以下结合附图详细说明本发明的一个实施例。
实施例一
图1是本发明实施例一提供的一种用于可信计算的硬件平台的结构示意图;如图1所示,一种用于可信计算的硬件平台,包括:用于可信计算的主处理器10和用于可信密码处理的协处理器20,所述主处理器10和协处理器20之间通过扩展密码接口30进行数据传输;
所述协处理器20上设置有:算法协处理器201、密码算法控制器202和真随机数发生器203;
所述的算法协处理器201,用于实现SM2算法、SM3算法和SM4算法的运算;
所述密码算法控制器202,用于通过扩展密码接口30接收来自主处理器10的指令,并对指令进行译码;以及根据译码后的指令协调算法协处理器进行运算,并协调算法协处理器201上的算法之间的信息传输;以及将算法协处理器201的运算结果通过扩展密码接口30发送给主处理器10或存储器;
所述真随机数发生器203,用于产生多种长度的真随机数,并配合算法协处理器201进行运算。
具体地,图2是本发明实施例一提供的一种用于可信计算的硬件平台中主处理器的结构示意图;如图2所示,本实施例中,所述主处理器10包括:基于RISC-V指令集的五级流水线结构,第一级为取指级101,第二级为译码级102,第三级为控制级103,第四级为执行级104,第五级为写回级105。
本实施例中,主处理器10具有专用的流水线用于控制指令流向,能够更精确的完成密码算法任务。
进一步地,本实施例中,所述取指级101,用于从指令寄存器中取回当前指令,并计算下一条指令的地址;在从取回指令的同周期内,进行译码运算,以及分支预测操作;本实施例中,分支预测操作包括:执行相应的分支指令(也可称为跳转指令),包括无条件跳转指令和带条件跳转指令;对于带条件跳转指令,传统的流水线结构在取指级101阶段是无法判断条件是否成立,理论上只有执行级104阶段完成之后才能分析出是否跳转;若处理器10在收到跳转指令后,停止流水线,直到执行级104阶段完成,则会造成大量的流水线空泡期,影响性能;因此,本实施例在取指级101引入分支预测操作,以提高性能;具体地,分支预测主要实现两个功能:预测指令是否真的需要跳转;以及如果跳转,跳转的具体目标地址。
所述译码级102,用于对取指级101中取回的指令进行译码,确定当前指令是通往主处理器10还是协处理器20;如,当前指令是通往主处理器10,则对指令进行进一步译码;
所述控制级103,用于将针对主处理器10操作的处理信号送入执行级104;或将针对协处理器20操作的指令信息、控制信号和源操作数,通过扩展密码接口30送入协处理器20中;
所述执行级104,用于进行指令的运算操作和数据访存操作;以及根据指令需求,把对应的源操作数送入ALU单元进行指令运算;
所述写回级105,用于将执行级104的数据结果写回寄存器堆。
更进一步地,图3是本发明实施例一提供的一种用于可信计算的硬件平台中扩展密码接口结构示意图;如图3所示,所述扩展密码接口30包括:
请求通道301,用于使主处理器10在控制级103阶段将指令信息和源操作数发送给协处理器20;
响应通道302,用于使协处理器20将处理后的结果传输至主处理器10;
存储器请求通道303,用于使协处理器20向主处理器10发起存储器读写请求;
存储器响应通道304,用于使主处理器10向协处理器20返回存储器的读写结果。
本实施例中,扩展密码接口30(简称EEI接口)是专用于可信硬件平台中主处理器10和协处理器20的信息交互接口;使用时,密码算法控制器202的控制信号从主处理器10获得,数据信号读取从主处理器10或存储器获得,写入的数据信号返回主处理器或直接写回存储器。
具体地,本实施例中,请求通道301的信号包括:主处理器请求信号、协处理器反馈的请求接收信号、协处理器指令信号、源操作数信号等;
响应通道302的信号包括:协处理器响应信号、主处理器反馈的响应接收信号、计算结果返回信号、返回错误信号等;
存储器请求通道303的信号包括:存储器读写请求信号、存储器读写反馈信号、读写指示信号、存储器读写地址、存储器写数据等;
存储器响应通道304的信号包括:存储器读写反馈信号、存储器读数据等。
目前,RISC-V指令集具有免费开源、结构简洁的特性,允许根据需求进行设计和制造;采用RISC-V架构设计可信安全硬件平台,根据模块化的指令集,提高处理器性能和优化时序。
本实施例中,主处理器中设立一级控制级流水线,专用于控制指令流向,把通用指令和协处理器专用指令分流,精确完成密码算法任务,且不影响主处理器的运行。
本实施例提供的一种用于可信计算的硬件平台,主处理器和协处理器之间采用专用接口连接,更加符合对应的数据结构,传输速度更快;同时,可信硬件平台密码算法采用硬件的方式运行,不仅加快可信密码算法的运行速度,而且使可信硬件平台安全性更高,实用性极强。
实施例二
协处理器20用于处理可信硬件平台的密码算法,通过硬件方式提升密码算法计算速度;所述协处理器20上设置有:算法协处理器201、密码算法控制器202和真随机数发生器203。
图4是本发明实施例二提供的一种用于可信计算的硬件平台中算法协处理器的结构示意图;如图4所示,本实施例中,所述的算法协处理器201包括:SM2算法协处理器2011、SM3算法协处理器2012和SM4算法协处理器2013。
具体地,图5是本发明实施例二提供的一种用于可信计算的硬件平台中SM2算法协处理器的结构示意图;如图5所示,所述SM2算法协处理器2011包括:密钥派生模块20111、公钥生成模块20112、公钥加密模块20113和数字签名模块20114;
密钥派生模块20111,用于从共享秘密比特串中派生出与明文等长的密钥数据,加密明文数据;
公钥生成模块20112,用于计算随机数和椭圆曲线基点的乘积,求算结果坐标;一般地,公钥生成模块主要计算常数与椭圆曲线基点的乘积,本实施例中,该常数可由真随机数发生器203产生,用于数字签名;基点是SM2算法定义的固定点;
公钥加密模块20113,包括:加密子模块201131和解密子模块201132;
加密子模块201131,用于通过随机数和明文数据,依据SM2密码算法中的公钥加密算法规则,产生由C1、C2和C3三部分拼接而成的密文,通过扩展密码接口30传输至存储器;根据SM2算法规定,公钥加密算法由3部分组成;分别为:C1、C2和C3,具体为:C1的计算过程为:随机数k和基点的乘积,得到的点(x1,y1)转化为字节串形式;C2的计算过程为:随机数k和对方的公钥计算乘积,得到横纵坐标(x2,y2),根据密钥派生函数,得到和消息M等长的序列t,t和消息异或得到C2;C3计算过程:经过Hash算法(本实施例采用SM3算法)计算Hash(x2||M||y2),得到C3;最后拼接密文为:C1||C3||C2其中C1、C3为固定长度,C2与消息M等长。在解密拆分过程中,根据C1、C3定长,可以拆分出固定的部分,剩下的即为C2;进一步地,本实施例在计算过程中,C1用到公钥生成模块,C2用到密钥派生模块,C3用到SM3协处理器。
解密子模块201132,用于通过私钥和密文数据,依据SM2密码算法的解密算法规则进行解密;
数字签名模块20114,包括:签名模块201141和验签模块201142;
签名模块201141,用于通过待签名消息和用户的可辨别标识,根据SM2密码算法中的数字签名算法规则,得到用户签名,将用户签名通过扩展密码接口30传输至存储器;
本实施例中,签名模块201141可以调用公钥生成模块20112、SM3算法协处理器2012和真随机数发生器203;数字签名的过程为:
第一步,将待签名消息M转化为16进制表示,将用户A的可辨识标识(签名认证机构提供)、椭圆曲线参数、用户A的公钥拼接,求算杂凑值,得到ZA,将ZA和消息M拼接,再计算一次Hash,得到e,该过程可通过SM3算法协处理器配合完成;
第二步,生成一个随机数,与基点相乘,得到一个横纵坐标(x1,y1),再根据x1和公钥计算签名。将签名和消息M发送,完成签名过程。该过程可通过公钥生成模块20112和真随机数发生器203配合完成。
验签模块201142,用于对收到的用户签名,根据SM2密码算法中的数字签名的验证规则,对签名消息进行验签,如,验证通过,将正确信息返回至主处理器10;否则,将错误信息返回至主处理器10。
一般地,SM2算法中需要用到一个Hash算法,本实施例中,采用SM3算法作为SM2算法的Hash算法,由于协处理器20在同一时间只能计算一种算法,因此,可以直接调用空闲状态下的SM3算法协处理器2012进行硬件计算。
本实施例中,SM2算法协处理器2011计算过程中所需要的真随机数和SM3运算,可由协处理器20中的密码算法控制器202分别控制真随机数发生器203和SM3算法协处理器201)计算得到。
进一步地,SM3算法主要分为填充、扩展、迭代压缩3部分,其中:填充部分由主处理器10完成,将需要加密的明文通过填充后数据长度为,满足;主处理器10将明文消息填充后,按512bit进行分组,存入数据宽度为32的缓存中,通过扩展密码接口30,将数据按字节传递到SM3算法协处理器中。
图6是本发明实施例二提供的一种用于可信计算的硬件平台中SM3算法协处理器的结构示意图;如图6所示,所述SM3算法协处理器2012包括:输入控制器20121、扩展模块20122、迭代压缩模块20123、迭代计数器20124和迭代寄存器20125;
所述输入控制器20121,用于从SM3算法协处理器2012的缓存中按字提取明文数据,存入对应寄存器,并按512bit进行分组后,发送至扩展模块20122进行扩展;以及提取缓存中的空信号,以控制迭代计数器20124的复位和迭代寄存器20125写回缓存;
所述扩展模块20122,用于通过SM3算法将每组512bit的数据则按字扩展,扩展后形成132个字;其中:1个字为32bit;
所述迭代压缩模块20123,用于通过压缩函数对扩展模块20122的132个字进行压缩,压缩后的值发送至SM3算法协处理器2012的输出端;
所述迭代计数器20124,用于控制迭代压缩模块20123的压缩函数的数据取自初始值还是上一次迭代的数据;其中,迭代计数器20124的初始值为0,每次迭代压缩计算,迭代计数器加1;当迭代计数器为0时,迭代寄存器20125读取迭代初始值;当迭代计数器大于0时,则使用迭代寄存器20125的值;
具体地,迭代寄存器20125读取迭代初始值,可为从预设ROM中或可直接从预设的寄存器中读取。
所述迭代寄存器20125,用于存放每次迭代后的数值,以便为下一次压缩函数使用;当收到寄存器空信号之后,将寄存器数据传入缓存,最后通过扩展密码接口30写回存储器。
更进一步地,SM4算法是一种分组密码算法,其明文分组长度为128bit,密钥长度为128bit。加密算法与密钥拓展均采用32轮非线性迭代结构,以字(1个字为32bit)为单位进行加密运算,每一次迭代运算均为一轮变换函数;SM4算法加/解密算法的结构相同,加密轮密钥和解密轮密钥顺序相反。
更进一步地,图7是本发明实施例二提供的一种用于可信计算的硬件平台中SM4算法协处理器的结构示意图;如图7所示,所述SM4算法协处理器2013包括:迭代控制模块20131、加密模块20132和轮密钥生成模块20133;
迭代控制模块20131,用于输出控制信号、轮信号和数据信号,所述的数据信号中包含明文数据;
轮密钥生成模块20133,用于接收迭代控制模块20131输出的轮信号和加密模块20132输出的密钥,并根据轮信号和密钥信号,进行迭代运算,生成对应当前轮信号的轮密钥;其中,所述的密钥为128bit的数据,所述的轮密钥为32个32bit的数据;
加密模块20132,用于通过32个轮密钥对128bit的明文数据进行32轮迭代运算,生成36个32位的迭代结果;并取迭代结果中的后四个32bit的值,经过反序变换后,得到128bit的密文数据并输出;
在控制模块轮信号和加解密信号控制调节下,轮密钥生成模块每个时钟循环完成一次迭代运算,生成对应当前轮的轮密钥,并传递给加密模块,用于下一步加密计算。
SM4加密算法的加密过程为:
首先,在轮密钥生成模块(20133)进行密钥拓展,由128bit长度的密钥生成32个32bit的轮密钥;
然后,在加密模块(20132)利用32个轮密钥对128bit明文进行32轮迭代运算,生成36个32位的迭代结果;
最后,取迭代结果中的后四个32bit的值,再经过一次反序变换,便可以得到最终128bit的加密结果。
本实施例中,可信硬件平台密码算法采用硬件的方式运行,不仅加快可信密码算法的运行速度,而且可使可信硬件平台安全性更高。
实施例三
图8是本发明实施例三提供的一种用于可信计算的硬件平台中真随机数发生器的结构示意图;如图8所示,在实施例二的基础上,一种用于可信计算的硬件平台,所述真随机数发生器203的结构为:多个环形振荡器2031、异或门2032、采样电路2033和线性移位寄存器2034;
所述环形振荡器2031的数量为奇数;
所述环形振荡器2031,用于产生振荡信号;
所述异或门2032,用于接收多个环形振荡器2031输出的振荡信号,并对每个环形振荡器2031的输出信号进行异或运算,得到随机数产生源信号;
所述采样电路2033,用于对异或运算后的随机数产生源信号进行采样同步,得到随机数序列;
所述线性移位寄存器2034,用于对随机数序列进行偏移纠正,得到真随机数序列。
具体地,所述线性移位寄存器2034与SM3算法协处理器2012连接;
所述SM3算法协处理器2012,用于对真随机数进行算法处理,得到256bit定长的序列。
本实施例中,真随机数发生器201的熵源利用环形振荡器2031实现,每个环形振荡器2031均包括反相器,将奇数个反相器相连,使电路处于两种暂稳态,利用噪声引起的相位漂移和时钟抖动,使用反相器叠加抖动,使环形振荡器2031中产生的的矩形波发生无法预测的相位偏移;
其次,将多个环形振荡器的结果通过异或门2032进行异或运算以增加随机性,再利用同步器消除环形振荡器2031产生的亚稳态。
再次,将异或门2032的输出序列经过低频采样电路和多级触发器,得到稳定的随机数序列;再次,把采样电路得到的随机数序列作为随机数种子,利用线性移位寄存器进行数据后处理,消除采样中出现的连续0或1信号,得到消除偏置的真随机数序列。
本实施例中,真随机数发生器203可以根据指令进行不同次数的采样,可以得到不同长度的真随机数。
本实施例中,作为一种优选方案,所述线性移位寄存器2034与SM3算法协处理器2012连接,根据SM3算法特性,随机数经过SM3算法后,真随机数具有更好的统计特性、随机性和安全性,得到256bit定长的序列。
综上,本发明具有密码算法运算速度快、安全性高的优点,可以广泛用于可信计算相关领域。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种用于可信计算的硬件平台,其特征在于:包括:用于可信计算的主处理器(10)和用于可信密码处理的协处理器(20),所述主处理器(10)和协处理器(20)之间通过扩展密码接口(30)进行数据传输;
所述协处理器(20)上设置有:算法协处理器(201)、密码算法控制器(202)和真随机数发生器(203);
所述算法协处理器(201),用于实现SM2算法、SM3算法和SM4算法的运算;
所述密码算法控制器(202),用于通过扩展密码接口(30)接收来自主处理器(10)的指令,并对指令进行译码;以及根据译码后的指令协调算法协处理器进行运算,并协调完成算法协处理器(201)上的算法之间的信息传输;以及将算法协处理器(201)的运算结果通过扩展密码接口(30)发送给主处理器(10)或存储器;
所述真随机数发生器(203),用于产生多种长度的真随机数,并配合算法协处理器(201)进行运算;
所述的算法协处理器(201)包括:SM2算法协处理器(2011)、SM3算法协处理器(2012)和SM4算法协处理器(2013);
所述SM2算法协处理器(2011)包括:密钥派生模块(20111)、公钥生成模块(20112)、公钥加密模块(20113)和数字签名模块(20114);
密钥派生模块(20111),用于从共享秘密比特串中派生出与明文等长的密钥数据,加密明文数据;
公钥生成模块(20112),用于计算随机数和椭圆曲线基点的乘积,求算结果坐标;
公钥加密模块(20113),包括:加密子模块(201131)和解密子模块(201132);
加密子模块(201131),用于通过随机数和明文数据,依据SM2密码算法中的公钥加密算法规则,产生由C1、C2和C3三部分拼接而成的密文,通过扩展密码接口(30)传输至存储器;
解密子模块(201132),用于通过私钥和密文数据,依据SM2密码算法的解密算法规则进行解密;
数字签名模块(20114),包括:签名模块(201141)和验签模块(201142);
签名模块(201141),用于通过待签名消息和用户的可辨别标识,根据SM2密码算法中的数字签名算法规则,得到用户签名,将用户签名通过扩展密码接口(30)传输至存储器;
验签模块(201142),用于对收到的用户签名,根据SM2密码算法中的数字签名的验证规则,对签名消息进行验签,如,验证通过,将正确信息返回至主处理器(10);否则,将错误信息返回至主处理器(10)。
2.根据权利要求1所述的一种用于可信计算的硬件平台,其特征在于:所述主处理器(10)包括:基于RISC-V指令集的五级流水线结构,第一级为取指级(101),第二级为译码级(102),第三级为控制级(103),第四级为执行级(104),第五级为写回级(105)。
3.根据权利要求2所述的一种用于可信计算的硬件平台,其特征在于:所述取指级(101),用于从指令寄存器中取回当前指令,并计算下一条指令的地址;在从取回指令的同周期内,进行译码运算,以及分支预测操作;
所述译码级(102),用于对取指级(101)中取回的指令进行译码,确定当前指令是通往主处理器(10)还是协处理器(20);如,当前指令是通往主处理器(10),则对指令进行进一步译码;
所述控制级(103),用于将针对主处理器(10)操作的处理信号送入执行级(104);或将针对协处理器(20)操作的指令信息、控制信号和源操作数,通过扩展密码接口(30)送入协处理器(20)中;
所述执行级(104),用于进行指令的运算操作和数据访存操作;以及根据指令需求,把对应的源操作数送入ALU单元进行指令运算;
所述写回级(105),用于将执行级(104)的数据结果写回寄存器堆。
4.根据权利要求2所述的一种用于可信计算的硬件平台,其特征在于:所述扩展密码接口(30)包括:
请求通道(301),用于使主处理器(10)在控制级(103)阶段将指令信息和源操作数发送给协处理器(20);
响应通道(302),用于使协处理器(20)将处理后的结果传输至主处理器(10);
存储器请求通道(303),用于使协处理器(20)向主处理器(10)发起存储器读写请求;
存储器响应通道(304),用于使主处理器(10)向协处理器(20)返回存储器的读写结果。
5.根据权利要求1所述的一种用于可信计算的硬件平台,其特征在于:所述SM3算法协处理器(2012)包括:输入控制器(20121)、扩展模块(20122)、迭代压缩模块(20123)、迭代计数器(20124)和迭代寄存器(20125);
所述输入控制器(20121),用于从SM3算法协处理器(2012)的缓存中按字提取明文数据,存入对应寄存器,并按512bit进行分组后,发送至扩展模块(20122)进行扩展;
以及提取缓存中的空信号,以控制迭代计数器(20124)的复位和迭代寄存器(20125)写回缓存;
所述扩展模块(20122),用于通过SM3算法将每组512bit的数据则按字扩展,扩展后形成132个字;其中:1个字为32bit;
所述迭代压缩模块(20123),用于通过压缩函数对扩展模块(20122)的132个字进行压缩,压缩后的值发送至SM3算法协处理器(2012)的输出端;
所述迭代计数器(20124),用于控制迭代压缩模块(20123)的压缩函数的数据取自初始值还是上一次迭代的数据;
所述迭代寄存器(20125),用于存放每次迭代后的数值,以便为下一次压缩函数使用;
其中,迭代计数器(20124)的初始值为0,每次迭代压缩计算,迭代计数器加1;
当迭代计数器为0时,迭代寄存器(20125)读取迭代初始值;当迭代计数器大于0时,则使用迭代寄存器(20125)的值。
6.根据权利要求1所述的一种用于可信计算的硬件平台,其特征在于:所述SM4算法协处理器(2013)包括:迭代控制模块(20131)、加密模块(20132)和轮密钥生成模块(20133);
迭代控制模块(20131),用于输出控制信号、轮信号和数据信号,所述的数据信号中包含明文数据;
轮密钥生成模块(20133),用于接收迭代控制模块(20131)输出的轮信号和加密模块(20132)输出的密钥,并根据轮信号和密钥信号,进行迭代运算,生成对应当前轮信号的轮密钥;其中,所述的密钥为128bit的数据,所述的轮密钥为32个32bit的数据;
加密模块(20132),用于通过32个轮密钥对128bit的明文数据进行32轮迭代运算,生成36个32位的迭代结果;并取迭代结果中的后四个32bit的值,经过反序变换后,得到128bit的密文数据并输出;
在控制模块轮信号和加解密信号控制调节下,轮密钥生成模块每个时钟循环完成一次迭代运算,生成对应当前轮的轮密钥,并传递给加密模块,用于下一步加密计算。
7.根据权利要求1所述的一种用于可信计算的硬件平台,其特征在于:所述真随机数发生器(203)的结构为:多个环形振荡器(2031)、异或门(2032)、采样电路(2033)和线性移位寄存器(2034);
所述环形振荡器(2031)的数量为奇数;
所述环形振荡器(2031),用于产生振荡信号;
所述异或门(2032),用于接收多个环形振荡器(2031)输出的振荡信号,并对每个环形振荡器(2031)的输出信号进行异或运算,得到随机数产生源信号;
所述采样电路(2033),用于对异或运算后的随机数产生源信号进行采样同步,得到随机数序列;
所述线性移位寄存器(2034),用于对随机数序列进行偏移纠正,得到真随机数序列。
8.根据权利要求7所述的一种用于可信计算的硬件平台,其特征在于:所述线性移位寄存器(2034)与SM3算法协处理器(2012)连接;
所述SM3算法协处理器(2012),用于对真随机数进行算法处理,得到256bit定长的序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529128.1A CN114629665B (zh) | 2022-05-16 | 2022-05-16 | 一种用于可信计算的硬件平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529128.1A CN114629665B (zh) | 2022-05-16 | 2022-05-16 | 一种用于可信计算的硬件平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629665A CN114629665A (zh) | 2022-06-14 |
CN114629665B true CN114629665B (zh) | 2022-07-29 |
Family
ID=81907215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210529128.1A Active CN114629665B (zh) | 2022-05-16 | 2022-05-16 | 一种用于可信计算的硬件平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629665B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115310055B (zh) * | 2022-06-22 | 2023-08-11 | 北京信息科技大学 | 一种基于双看门狗的软件完整性保护方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001076129A2 (en) * | 2000-03-31 | 2001-10-11 | General Dynamics Decision Systems, Inc. | Scalable cryptographic engine |
CN102360282A (zh) * | 2011-09-26 | 2012-02-22 | 杭州中天微系统有限公司 | 快速处置分支指令预测错误的流水线处理器装置 |
CN102739396A (zh) * | 2011-04-11 | 2012-10-17 | 航天信息股份有限公司 | 一种应用于信息安全的协处理器 |
CN104579656A (zh) * | 2014-12-31 | 2015-04-29 | 北京时代民芯科技有限公司 | 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器 |
CN111324383A (zh) * | 2020-02-28 | 2020-06-23 | 西安微电子技术研究所 | 一种基于risc-v指令扩展的安全协处理器结构 |
CN111767586A (zh) * | 2020-06-09 | 2020-10-13 | 北京智芯微电子科技有限公司 | 内置硬件密码学算法协处理器的微处理器及安全芯片 |
CN113312303A (zh) * | 2021-04-30 | 2021-08-27 | 展讯通信(上海)有限公司 | 处理器微架构、SoC芯片及低功耗智能设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043916B (zh) * | 2010-12-01 | 2012-10-03 | 戴葵 | 一种高性能可扩展公钥密码协处理器结构 |
CN103746796B (zh) * | 2014-01-20 | 2017-01-04 | 深圳华视微电子有限公司 | 一种实现智能卡sm4 密码算法的协处理器 |
US9996279B2 (en) * | 2015-12-18 | 2018-06-12 | Intel Corporation | Integrity protection for system management mode |
CN112256633A (zh) * | 2020-10-14 | 2021-01-22 | 浙江大学 | 一种指令驱动的商用密码专用处理器系统 |
-
2022
- 2022-05-16 CN CN202210529128.1A patent/CN114629665B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001076129A2 (en) * | 2000-03-31 | 2001-10-11 | General Dynamics Decision Systems, Inc. | Scalable cryptographic engine |
CN102739396A (zh) * | 2011-04-11 | 2012-10-17 | 航天信息股份有限公司 | 一种应用于信息安全的协处理器 |
CN102360282A (zh) * | 2011-09-26 | 2012-02-22 | 杭州中天微系统有限公司 | 快速处置分支指令预测错误的流水线处理器装置 |
CN104579656A (zh) * | 2014-12-31 | 2015-04-29 | 北京时代民芯科技有限公司 | 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器 |
CN111324383A (zh) * | 2020-02-28 | 2020-06-23 | 西安微电子技术研究所 | 一种基于risc-v指令扩展的安全协处理器结构 |
CN111767586A (zh) * | 2020-06-09 | 2020-10-13 | 北京智芯微电子科技有限公司 | 内置硬件密码学算法协处理器的微处理器及安全芯片 |
CN113312303A (zh) * | 2021-04-30 | 2021-08-27 | 展讯通信(上海)有限公司 | 处理器微架构、SoC芯片及低功耗智能设备 |
Non-Patent Citations (2)
Title |
---|
CoPHEE: Co-processor for Partially Homomorphic Encrypted Execution;Mohammed Nabeel ET AL;《2019 IEEE International Symposium on Hardware Oriented Security and Trust (HOST)》;20190620;全文 * |
王腾飞等.SM2专用指令协处理器设计与实现.《计算机工程与应用 》.2020, * |
Also Published As
Publication number | Publication date |
---|---|
CN114629665A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917053B2 (en) | Combined SHA2 and SHA3 based XMSS hardware accelerator | |
Wang et al. | FPGA-based Niederreiter cryptosystem using binary Goppa codes | |
EP3758285B1 (en) | Odd index precomputation for authentication path computation | |
CN101349968B (zh) | 加速伽罗瓦计数器模式(gcm)计算 | |
JPH09230786A (ja) | データの暗号化方法及び装置 | |
US9417847B2 (en) | Low depth combinational finite field multiplier | |
US9893880B2 (en) | Method for secure symbol comparison | |
CN112152786A (zh) | 无签名扩展的快速xmss签名验证和临时数采样过程 | |
CN112152777B (zh) | 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质 | |
CN112152783A (zh) | 用于快速安全启动的低时延后量子签名验证 | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
CN116488794B (zh) | 基于fpga的高速sm4密码模组实现方法及装置 | |
CN114629665B (zh) | 一种用于可信计算的硬件平台 | |
Wang et al. | A hardware implementation of ZUC-256 stream cipher | |
CN114579078A (zh) | 一种加速器、加速方法和电子设备 | |
Van Hieu et al. | Hardware implementation for fast block generator of Litecoin blockchain system | |
Tiwari | Cryptography in blockchain | |
EP3776305A1 (en) | Using cryptographic blinding for efficient use of montgomery multiplication | |
CN101996065A (zh) | 随机数发生器和随机数生成方法 | |
Moraitis et al. | Securing CRYSTALS-Kyber in FPGA Using Duplication and Clock Randomization | |
CN102542070B (zh) | 基于随机函数的单向哈希函数构造方法 | |
US20240007267A1 (en) | Side-channel resistant bulk aes encryption | |
US20240160752A1 (en) | Apparatus for Cryptographic Operations on Information and Associated Methods | |
US20240007266A1 (en) | Reconfigurable side-channel resistant double-throughput aes accelerator | |
CN102546178A (zh) | 一种生成密文的方法及装置 |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A hardware platform for trusted computing Effective date of registration: 20230112 Granted publication date: 20220729 Pledgee: Bank of China Limited Taiyuan comprehensive reform zone sub branch Pledgor: Baixin Information Technology Co.,Ltd. Registration number: Y2023140000003 |