基于SHA2算法的数据处理装置的制作方法
未命名
07-13
阅读:91
评论:0
基于sha2算法的数据处理装置
技术领域
1.本发明实施例涉及计算机技术领域,尤其涉及一种基于sha2算法的数据处理装置。
背景技术:
2.安全芯片是集成了密码算法的专用芯片,为电脑提供加密和安全认证服务。在信息安全领域,安全芯片的地位举足轻重。随着物联网、智能家居设备的激增,安全芯片技术也处于人们关注的焦点。
3.散列函数(hash function),又称哈希函数,是一种从任意数据中创建数字指纹的方法,广泛应用于信息安全领域,是安全芯片必不可少的支持功能之一。安全散列函数(secure hash algorithm,sha),包含sha-0算法、sha-1算法、sha-2算法和sha-3算法。其中,sha-2算法在消息认证码、数字签名验证、ssl握手、区块链等领域应用十分广泛。
4.hmac是密钥相关的哈希运算消息认证码,广泛使用于ssl协议中。hmac在计算时会采用密钥和固定比特序列的异或结果参与哈希运算,其计算过程必须保证安全性。采用sha-2算法构造hmac是比较常见,如果在sha-2算法的计算过程中不进行数据保护,则侧信道攻击很容易恢复哈希运算中与密钥相关的中间变量,即可在不攻击认证密钥的情况下,实现对信源身份进行假冒和对消息进行伪造,从而造成hmac计算过程中泄漏输入数据及密钥信息。
技术实现要素:
5.有鉴于此,本发明实施例提供一种基于sha2算法的数据处理装置,以至少部分解决上述问题。
6.根据本发明实施例的第一方面,提供了一种基于sha2算法的数据处理装置,包括:算术掩码转换模块,用于将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码;算术加法运算模块,用于对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;布尔掩码转换模块,用于将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码;迭代运算模块,用于将所述布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码进行基于sha2的迭代运算,得到迭代后的布尔摘要和布尔摘要掩码;布尔加法运算模块,用于对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述初始摘要和所述初始摘要掩码进行布尔加法运算,得到更新后的摘要和摘要掩码。
7.在本发明的另一实现方式中,所述算术掩码转换模块,具体用于:将初始摘要、初始摘要掩码、消息和消息掩码分别与随机数进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码。
8.在本发明的另一实现方式中,所述算术加法运算模块,具体用于:对所述初始摘要和所述初始摘要掩码进行ch/maj函数运算,得到ch数据、ch掩码、maj数据和maj数据掩码;对所述算术格式的摘要、摘要掩码、消息和消息掩码和所述ch数据、ch掩码、maj数据和maj数据掩码进行算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。
9.在本发明的另一实现方式中,所述算术加法运算模块,具体用于:将所述初始摘要和所述初始摘要掩码分别与随机数进行异或运算,得到异或数据;对异或数据进行算术掩码转换,得到ch数据、ch掩码、maj数据和maj数据掩码。
10.在本发明的另一实现方式中,所述算术加法运算模块,具体用于:获取基于sha2的运算参数;对所述初始摘要、初始摘要掩码进行处理,得到第一摘要、第一摘要掩码、第二摘要和第二摘要掩码;对所述消息、消息掩码进行处理,得到第一消息、第一消息掩码、第二消息和第二消息掩码;对所述第一摘要、所述第一摘要掩码、所述第二摘要、所述第二摘要掩码、所述第一消息、所述第一消息掩码、所述第二消息、所述第二消息掩码、所述基于sha2的运算参数和所述ch数据、ch掩码、maj数据和maj数据掩码进行压缩级联运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。
11.在本发明的另一实现方式中,所述算术加法运算模块,具体用于:对所述基于sha2的运算参数进行数据处理,得到第一参数、第二参数、第三参数、第四参数、第五参数和第一参数掩码、第二参数掩码、第三参数掩码、第四参数掩码、第五参数掩码;对所述第一摘要、所述第一消息、所述第一参数和所述ch数据进行压缩级联运算,得到第一临时数据;对所述第一摘要掩码、所述第一消息掩码、所述第一参数掩码和所述ch数据掩码进行压缩级联运算,得到第一临时数据掩码;对所述第一消息和所述第二参数进行算术加法运算,得到第二临时数据;对所述第一消息掩码和所述第二参数掩码进行算术加法运算,得到第二临时数据掩码;对所述第一临时数据、所述第三参数、所述maj数据、所述第五参数进行压缩级联运算,得到第一算术更新摘要;对所述第一临时数据掩码、所述第三参数掩码、所述maj数据掩码进行压缩级联运算,得到第一算术更新摘要掩码;对所述第一临时数据、所述第二摘要、所述第五参数掩码进行压缩级联运算,得到第二算术更新摘要;对所述第一临时数据掩码、所述第二摘要掩码进行压缩级联运算,得到第二算术更新摘要掩码;对所述第四参数、所述第二临时数据、所述第二消息进行压缩级联运算,得到第三算术更新摘要;对所述第四参数掩码、所述第二临时数据掩码、所述第二消息掩码进行压缩级联运算,得到第三算术更新摘要掩码。
12.在本发明的另一实现方式中,所述布尔掩码转换模块,具体用于:将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码分别与所述随机数进行掩码处理,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值进行迭代计算,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码。
13.在本发明的另一实现方式中,所述布尔掩码转换模块,具体用于:将布尔更新摘
要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩码进行算术掩码转换,得到迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码;对所述迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码进行基于sha2的算术加法运算,得到迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;将所述迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到用于下一轮迭代运算的布尔更新摘要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩码。
14.在本发明的另一实现方式中,所述迭代运算模块,具体用于:对所述迭代后的布尔摘要和所述迭代后的布尔摘要掩码进行异或运算,得到非掩码格式的迭代数据;对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述非掩码格式的迭代数据进行进位数计算,得到进位数;对所述初始摘要、所述初始摘要掩码、所述非掩码格式的迭代数据和所述进位数进行布尔加法运算,得到更新后的摘要和摘要掩码。
15.根据本发明实施例的第二方面,提供了一种基于sha2算法的数据处理方法,包括:将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码;对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码;将所述布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码进行基于sha2的迭代运算,得到迭代后的布尔摘要和布尔摘要掩码;对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述初始摘要和所述初始摘要掩码进行布尔加法运算,得到更新后的摘要和摘要掩码。
16.根据本发明实施例的第三方面,提供了一种基于sha2算法的数据处理电路,包括:布尔掩码到算术掩码的转换单元,压缩器单元,ch和maj函数计算单元,算术掩码到布尔掩码的转换单元,算法控制单元,存储单元。
17.在本发明的另一实现方式中,所述sha2算法包括:sha-224算法、sha-256算法、sha-384算法、sha-512算法,所述sha-384算法、sha-512算法复用所述sha-224算法、sha-256算法所采用的电路结构。
18.在本发明的另一实现方式中,所述基于sha2的算术加法运算所采用的电路综合后运行的最高时钟频率为150mhz。
19.根据本发明实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如第二方面所述的方法对应的操作。
20.根据本发明实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第二方面所述的方法。
21.在本发明实施例的方案中,本技术实施例的数据处理装置包括:算术掩码转换模块、算术加法运算模块、布尔掩码转换模块、迭代运算模块、布尔加法运算模块。通过在算术掩码转换模块、算术加法运算模块、布尔掩码转换模块、迭代运算模块以及布尔加法运算模块中均采用了掩码进行与和加法运算,实现了在哈希运算中进行了数据保护,防止了因侧
信道攻击泄露与密钥相关的中间变量,避免了hmac计算过程中泄漏输入数据及密钥信息。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
23.图1为根据本发明的一个实施例的基于sha2算法的数据处理装置的示意性框图。
24.图2a、2b、2c、2d分别为根据本发明的一个实施例的基于sha2算法的数据处理的示意图。
25.图3为根据本发明的另一实施例的基于sha2算法的数据处理装置的示意性框图。
26.图4为根据本发明的一个实施例的基于sha2算法的数据处理方法的示意性框图。
27.图5为根据本发明的一个实施例的电子设备的结构示意图。
具体实施方式
28.为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
29.应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
30.还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
31.本发明中sha-2算法包括消息预处理和哈希运算。sha-2包含sha-224、sha-256、sha-384、sha-512等四种算法,其中sha-224和sha-256用于处理消息长度小于2
64
bits的消息,每组512bit的消息,共64轮运算。sha-256得到256bits消息摘要,sha-224截断256bits摘要的高224bits作为输出摘要。sha-384和sha-512用于处理消息长度小于2
128
bits的消息,每组1024bit的消息,共80轮运算。sha-512计算得到512bits消息摘要,sha-384截断512bits摘要的高384bits作为输出摘要。
32.以sha-256为例,在消息填充完成后,对每个分组512bit的消息块进行消息扩展:
[0033][0034]
其中,
[0035][0036][0037]
用上一组消息计算摘要作为本组计算的8个初始摘要:
[0038][0039][0040]
之后进行64轮迭代轮运算:fort=0to63:
[0041]
{
[0042][0043][0044]
h=g、g=f、f=e、e=d+t1、
[0045]
d=c、c=b、b=a、a=t1+t2、
[0046]
}
[0047]
其中,
[0048][0049][0050]
最后计算本组消息的摘要:
[0051][0052][0053][0054][0055][0056][0057][0058][0059]
其中加法运算都为模32加法。
[0060]
在计算完所有的n组消息后,得到最终摘要:
[0061][0062]
图1为根据本发明的另一实施例的基于sha2算法的数据处理装置的示意性框图。本发明实施例的方案可以应用于电子设备,包括但不限于:具有通信功能的终端设备或具
有数据处理能力的电子设备等。
[0063]
本实施例的基于sha2算法的数据处理装置,可以用于侧信道安全的sha2硬件实现,包括:
[0064]
算术掩码转换模块,用于将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码;
[0065]
需要说明的是,此处的算术掩码转换指的是将带有布尔掩码数据,如初始摘要、初始摘要掩码、消息和消息掩码,转换为算术格式数据,如算术格式的摘要、摘要掩码、消息和消息掩码,使得计算过程中不会泄露真实数据。
[0066]
算术加法运算模块,用于对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;
[0067]
布尔掩码转换模块,用于将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码;
[0068]
需要说明的是,此处的布尔掩码转换指的是将算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码转换为布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码,方便基于sha2的迭代运算。
[0069]
由于布尔加法运算,如循环移位、异或、非等,对算术格式数据不再适用,所以需要将算术格式数据转换为布尔格式数据,进行运算。优选地,可以进行多个并行的布尔掩码转换,例如,对32bit长度的算术格式数据,需要6个时钟周期完成转换。
[0070]
迭代运算模块,用于将所述布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码进行基于sha2的迭代运算,得到迭代后的布尔摘要和布尔摘要掩码;
[0071]
布尔加法运算模块,用于对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述初始摘要和所述初始摘要掩码进行布尔加法运算,得到更新后的摘要和摘要掩码。
[0072]
在本发明实施例的方案中,本技术实施例的数据处理装置包括:算术掩码转换模块、算术加法运算模块、布尔掩码转换模块、迭代运算模块、布尔加法运算模块。通过在算术掩码转换模块、算术加法运算模块、布尔掩码转换模块、迭代运算模块以及布尔加法运算模块中均采用了掩码进行与和加法运算,实现了在哈希运算中进行了数据保护,防止了因侧信道攻击泄露与密钥相关的中间变量,避免了hmac计算过程中泄漏输入数据及密钥信息。
[0073]
在一种可能的实现方式中,所述算术掩码转换模块,具体用于:将初始摘要、初始摘要掩码、消息和消息掩码分别与随机数进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码。
[0074]
需要说明的是,如图2a所示,本发明中,算术掩码转换采用掩码方案保护中间值真实功耗信息,实现侧信道安全,将原数据(例如,初始摘要和初始摘要掩码)分为两份等长数据a和am:a=a
⊕
rnd,am=rnd,其中rnd为随机数。其中,sha-224、sha-256单个摘要和消息长度都为32bits,sha-384、sha-512单个摘要和消息长度为64bits。
[0075]
具体地,对原数据(a,a_m)和一个相同长度的随机数γ
[0076]
1)在时钟第一拍计算
[0077]
[0078][0079]
将结果存到临时寄存器中。
[0080]
2)在时钟第二拍时计算a的算术掩码a_m
ari
:
[0081][0082]
由此得到算术格式的数据对(a,a_m
ari
)。
[0083]
需要说明的是,本方案的实现需要的计算有异或、与、非、加法、移位、循环移位等,其中非线性计算有与、加法,需要采用布尔格式数据异或上随机数,消除数据和真实数据相关性后再将得到的数据进行处理。
[0084]
在一种可能的实现方式中,所述算术加法运算模块,具体用于:对所述初始摘要和所述初始摘要掩码进行ch/maj函数运算,得到ch数据、ch掩码、maj数据和maj数据掩码;对所述算术格式的摘要、摘要掩码、消息和消息掩码和所述ch数据、ch掩码、maj数据和maj数据掩码进行算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。
[0085]
在一种可能的实现方式中,所述算术加法运算模块,具体用于:将所述初始摘要和所述初始摘要掩码分别与随机数进行异或运算,得到异或数据;对异或数据进行算术掩码转换,得到ch数据、ch掩码、maj数据和maj数据掩码。
[0086]
需要说明的是,通过ch/maj函数运算得到的ch数据、ch掩码、maj数据和maj数据掩码是算术格式数据。以ch数据、ch掩码计算转换为例,整个过程需要两个时钟周期:其中,e,f,g为带一组布尔格式数据,即摘要和摘要掩码,例如,(e,e_m),(f,f_m),(g,g_m)。γ和τ为两个与e,f,g相同位宽的随机数。
[0087]
第一步、时钟第一拍进行异或运算,分别计算拆分后的几个部分,用随机数掩码后,将数据存储到临时寄存器中:
[0088][0089][0090][0091][0092]
上述计算方式保证了数据和数据掩码不同时计算,并通过增加随机数避免数据泄露
[0093]
第二步、时钟第二拍进行算术掩码转换,将布尔格式数据转换为算术格式数据:
[0094][0095]
得到算术格式数据对(ch,ch_m)。maj数据和maj数据掩码实现方法与ch类似,均可以在使用随机数掩码后,将数据存储到临时寄存器中,从而可以共享临时寄存器以减小硬件资源消耗。优选地,可以通过算法控制模块控制ch/maj函数运算。
[0096]
在一种可能的实现方式中,所述算术加法运算模块,具体用于:获取基于sha2的运算参数;对所述初始摘要、初始摘要掩码进行处理,得到第一摘要、第一摘要掩码、第二摘要和第二摘要掩码;对所述消息、消息掩码进行处理,得到第一消息、第一消息掩码、第二消息和第二消息掩码;对所述第一摘要、所述第一摘要掩码、所述第二摘要、所述第二摘要掩码、
所述第一消息、所述第一消息掩码、所述第二消息、所述第二消息掩码、所述基于sha2的运算参数和所述ch数据、ch掩码、maj数据和maj数据掩码进行压缩级联运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。
[0097]
需要说明的是,此处的压缩级联运算可以通过压缩器进行运算,每个压缩器都能将加法操作数的个数减一,多次使用压缩器可以有效缩减了加法运算进位链的关键路径。具体地,如图2b所示,可以通过3:2压缩器进行压缩级联运算,类似于进位保留加法器,减少直接进行加法运算的加数个数,降低加法链路径延迟。
[0098]
在一种可能的实现方式中,所述算术加法运算模块,具体用于:对所述基于sha2的运算参数进行数据处理,得到第一参数、第二参数、第三参数、第四参数、第五参数和第一参数掩码、第二参数掩码、第三参数掩码、第四参数掩码、第五参数掩码;对所述第一摘要、所述第一消息、所述第一参数和所述ch数据进行压缩级联运算,得到第一临时数据;对所述第一摘要掩码、所述第一消息掩码、所述第一参数掩码和所述ch数据掩码进行压缩级联运算,得到第一临时数据掩码;对所述第一消息和所述第二参数进行算术加法运算,得到第二临时数据;对所述第一消息掩码和所述第二参数掩码进行算术加法运算,得到第二临时数据掩码;对所述第一临时数据、所述第三参数、所述maj数据、所述第五参数进行压缩级联运算,得到第一算术更新摘要;对所述第一临时数据掩码、所述第三参数掩码、所述maj数据掩码进行压缩级联运算,得到第一算术更新摘要掩码;对所述第一临时数据、所述第二摘要、所述第五参数掩码进行压缩级联运算,得到第二算术更新摘要;对所述第一临时数据掩码、所述第二摘要掩码进行压缩级联运算,得到第二算术更新摘要掩码;对所述第四参数、所述第二临时数据、所述第二消息进行压缩级联运算,得到第三算术更新摘要;对所述第四参数掩码、所述第二临时数据掩码、所述第二消息掩码进行压缩级联运算,得到第三算术更新摘要掩码。
[0099]
具体地,前两拍时钟对部分中间数据进行算术掩码转换,即第一摘要(摘要7)、第一消息(消息)、第一参数(δ0)、第二参数(∑1)、ch。另外部分在下两拍时钟计算。减少了算术掩码转换的硬件开销。由于δ0和∑1的运算是线性,需要分别计算数据和数据掩码。ch函数运算包括按位与并将数据转换为算术掩码,分别将转换后的数据和数据掩码相加,将结果保存在临时寄存器中。
[0100]
第一临时数据tmp0=digest_h+message0+∑1+ch
[0101]
第一临时数据掩码tmp0_m=digest_h_m+message0_m+∑1_m+ch_m
[0102]
第二临时数据tmp1=message0+δ0[0103]
第二临时数据掩码tmp1_m=message0_m+δ0_m
[0104]
对tmp0和tmp0_m,可以采用两个压缩器级联将四个加数缩减成两个,降低高位宽加法链路的延迟,缩短电路关键路径长度。
[0105]
下两拍时钟实现另外部分数据计算和转换,即第二摘要(摘要3)、第二消息(消息9)、第三参数(δ1)、第四参数(∑0)、maj数据和maj数据掩码。同样,δ1和∑0计算是线性的。
[0106]
第一算术更新摘要digest0_new=tmp0+∑0+maj+kt(第五参数)
[0107]
第一算术更新摘要掩码digest0_m_new=tmp0_m+∑0_m+maj_m
[0108]
第二算术更新摘要digest4_new=tmp0+digest_d+k
t
(第五参数掩码)
[0109]
第二算术更新摘要掩码digest4_m_new=tmp0_m+digest_d_m
[0110]
第三算术更新摘要message15_new=δ1+tmp1+message9
[0111]
第三算术更新摘要掩码message15_m_new=δ1+tmp1_m+message9_m
[0112]
优选的,可以对digest0_new、digest0_m_new、digest4_new、message15_new、message15_m_new等分别采用压缩器进行级联压缩运算。
[0113]
在一种可能的实现方式中,所述布尔掩码转换模块,具体用于:将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码分别与所述随机数进行掩码处理,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值进行迭代计算,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码。
[0114]
需要说明的是,布尔掩码转换即给定两个k bits位宽的加数a和b。利用g(进位产生值)和p(进位传播值)等中间信号(临时值)的方式计算数据进位c(进位数),最后得到a与b的和。
[0115]
假设要转换数据位宽为k,则进位需迭代次数为:
[0116][0117]
p0和g0初值为:
[0118][0119]
g0=a&b
[0120]
for i=1to n:
[0121]
{
[0122]
pi=p
i-1
&(p
i-1
<<2
i-1
)
[0123][0124]
}
[0125]
得到:
[0126]
c=2gn[0127][0128]
布尔掩码转换时要先算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码使用随机数再次掩码,避免转换过程泄漏真实进位信息。算法中移位属于线性计算,采用组合逻辑移位器实现。具体地,对算术格式数据对(a,a_m
ari
)和两个与数据相同长度的随机数γ和τ:
[0129]
第一步、时钟第一拍对算术格式数据对用随机数再次掩码,并将临时值存入临时寄存器中:
[0130][0131][0132]
第二步、计算g(进位产生)和p(进位传播)等中间信号
[0133]
[0134][0135]
p0和g0的掩码p0_m和g0_m为:
[0136]
p0_m=γ
[0137]
g0_m=τ
[0138]
第三步、迭代计算pi和gi。
[0139]
采用异或随机数来reshare的方法实现非线性与计算,记pi的四个部分为p
i0
,p
i1
,p
i2
,p
i3
,分别存入寄存器中:
[0140][0141][0142][0143][0144]
得到pi及其布尔掩码pi_m:
[0145][0146][0147]
然后迭代n次(n为进位需迭代次数),得到p
n-1
和p
n-1
_m。
[0148]
同理,记gi的四个部分为g
i0
,g
i1
,g
i2
,g
i3
,分别存入寄存器中:
[0149][0150][0151][0152][0153]
得到gi及其布尔掩码gi_m:
[0154][0155][0156]
然后迭代n次(n与数据位宽有关),得到gn和gn_m。
[0157]
利用进位计算得到布尔格式的转换值(a,a_m):
[0158][0159][0160]
该转换总计花费n+1个时钟周期。
[0161]
在一种可能的实现方式中,所述布尔掩码转换模块,具体用于:将布尔更新摘要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩码进行算术掩码转换,得到迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码;对所述迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码进行基于sha2的算术加法运算,得到迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;将所述迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到
用于下一轮迭代运算的布尔更新摘要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩码。
[0162]
在一种可能的实现方式中,所述迭代运算模块,具体用于:对所述迭代后的布尔摘要和所述迭代后的布尔摘要掩码进行异或运算,得到非掩码格式的迭代数据;对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述非掩码格式的迭代数据进行进位数计算,得到进位数;对所述初始摘要、所述初始摘要掩码、所述非掩码格式的迭代数据和所述进位数进行布尔加法运算,得到更新后的摘要和摘要掩码。
[0163]
需要说明的是,如图2c所示,在基于sha2的迭代运算结束后,得到迭代后的布尔摘要和布尔摘要掩码,此时迭代后的布尔摘要和布尔摘要掩码已经不包含初始消息和摘要的真实值信息,可以直接将掩码摘要异或,还原非掩码格式的迭代数据。
[0164]
具体地,对初始摘要和初始摘要掩码(a、b),非掩码格式的迭代数据c,进位carry,进位掩码为rng,最大数据位宽为64bit。本发明采用32bit随机数拼成64bit随机数来使用,即高32bit与低32bit值相同:
[0165][0166]
digest_update:c
[0167]
对carry的bit n有:
[0168][0169]
其中carry[0]为0,a
n-1
、b
n-1
、c
n-1
表示与a、b、c的bit(n-1)。
[0170][0171]
计算carry时组合逻辑较长,可能泄漏a^b的真实值,因此引入随机数对进位掩码,分周期计算b&c,a&c等中间值,保证计算时不会有glitch泄漏真实数据。采用寄存器分割长进位链,用4拍时钟周期计算最大64bit的进位,降低电路延迟。
[0172]
如图2d(时序图)所示,digest_up_en为digest_update,即时序图中c的valid标志。valid有效为计算开始,进位计算过程为:
[0173]
第一步、时钟第一拍存储当前32bit随机数rng到寄存器中,并扩展成64位后作为进位掩码;第二步、时钟第二拍计算第三步、时钟第三拍计算b&c和carry[16:1];第四步、时钟第四拍将carry[16]存到临时寄存器中,计算carry[32:17];第五步、时钟第五拍将carry[32]存到临时寄存器中,计算carry[48:33];第六步、时钟第六拍用carry[48]计算carry[63:49],至此进位计算完成,且进位掩码为第一步中存储的rng。其中,可以将第三步至第六步在时钟第三拍进行合并运算,计算carry[63:1]。
[0174]
优选地,如图3所示,还包括存储模块和总线模块,具体用于:将布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码、更新后的摘要和摘要掩码进行更新存储,并通过总线模块进行数据交换。需要说明的是,存储模块和总线模块,也可以用于将初始摘要,初始摘要掩码、消息和消息掩码进行更新存储,并通过总线模块进行数据交换。
[0175]
优选地,如图3所示,还包括算法控制模块,具体用于:实现不同长度的布尔格式数据的数据处理,不限于32/64比特。
[0176]
图4示出了本发明的一个实施例的基于sha2算法的数据处理方法的示例性流程。本实施例的基于sha2算法的数据处理方法,可以用于侧信道安全的sha-2硬件实现,包括:
[0177]
s410:将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码。
[0178]
s420:对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码。
[0179]
s430:将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码。
[0180]
s440:将所述布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码进行基于sha2的迭代运算,得到迭代后的布尔摘要和布尔摘要掩码。
[0181]
s450:对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述初始摘要和所述初始摘要掩码进行布尔加法运算,得到更新后的摘要和摘要掩码。
[0182]
优选地,可以将布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码存储在存储模块中并进行更新迭代。此外,为降低运算复杂性,可以通过算法控制模块控制数据计算、寄存器更新和轮迭运算,并将数据进行存储。
[0183]
优选地,可以将更新后的摘要和摘要掩码更新到存储模块中,并通过总线模块进行数据交换。
[0184]
优选地,可以通过算法控制模块实现不同长度的布尔格式数据的数据处理,不限于32/64比特。
[0185]
在一种可能的实现方式中,所述将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码,包括:将初始摘要、初始摘要掩码、消息和消息掩码分别与随机数进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码。
[0186]
在一种可能的实现方式中,所述对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码,包括:对所述初始摘要和所述初始摘要掩码进行ch/maj函数运算,得到ch数据、ch掩码、maj数据和maj数据掩码;对所述算术格式的摘要、摘要掩码、消息和消息掩码和所述ch数据、ch掩码、maj数据和maj数据掩码进行算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。
[0187]
在一种可能的实现方式中,所述对所述初始摘要和所述初始摘要掩码进行ch/maj函数运算,得到ch数据、ch掩码、maj数据和maj数据掩码,包括:将所述初始摘要和所述初始摘要掩码分别与随机数进行异或运算,得到异或数据;对异或数据进行算术掩码转换,得到ch数据、ch掩码、maj数据和maj数据掩码。
[0188]
在一种可能的实现方式中,所述对所述算术格式的摘要、摘要掩码、消息和消息掩码和所述ch数据、ch掩码、maj数据和maj数据掩码进行算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码,包括:获取基于sha2的运算参数;对所述初始摘要、初始摘要掩码进行处理,得到第一摘要、第一摘要掩码、第二摘要和第二摘要掩码;对所述消息、消息掩码进行处理,得到第一消息、第一消息掩码、第二消息和第二消
息掩码;对所述第一摘要、所述第一摘要掩码、所述第二摘要、所述第二摘要掩码、所述第一消息、所述第一消息掩码、所述第二消息、所述第二消息掩码、所述基于sha2的运算参数和所述ch数据、ch掩码、maj数据和maj数据掩码进行压缩级联运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。
[0189]
在一种可能的实现方式中,所述对所述第一摘要、所述第一摘要掩码、所述第二摘要、所述第二摘要掩码、所述第一消息、所述第一消息掩码、所述第二消息、所述第二消息掩码、所述基于sha2的运算参数和所述ch数据、ch掩码、maj数据和maj数据掩码进行压缩级联运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码,包括:对所述基于sha2的运算参数进行数据处理,得到第一参数、第二参数、第三参数、第四参数、第五参数和第一参数掩码、第二参数掩码、第三参数掩码、第四参数掩码、第五参数掩码;对所述第一摘要、所述第一消息、所述第一参数和所述ch数据进行压缩级联运算,得到第一临时数据;对所述第一摘要掩码、所述第一消息掩码、所述第一参数掩码和所述ch数据掩码进行压缩级联运算,得到第一临时数据掩码;对所述第一消息和所述第二参数进行算术加法运算,得到第二临时数据;对所述第一消息掩码和所述第二参数掩码进行算术加法运算,得到第二临时数据掩码;对所述第一临时数据、所述第三参数、所述maj数据、所述第五参数进行压缩级联运算,得到第一算术更新摘要;对所述第一临时数据掩码、所述第三参数掩码、所述maj数据掩码进行压缩级联运算,得到第一算术更新摘要掩码;对所述第一临时数据、所述第二摘要、所述第五参数掩码进行压缩级联运算,得到第二算术更新摘要;对所述第一临时数据掩码、所述第二摘要掩码进行压缩级联运算,得到第二算术更新摘要掩码;对所述第四参数、所述第二临时数据、所述第二消息进行压缩级联运算,得到第三算术更新摘要;对所述第四参数掩码、所述第二临时数据掩码、所述第二消息掩码进行压缩级联运算,得到第三算术更新摘要掩码。
[0190]
在一种可能的实现方式中,所述将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码,包括:将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码分别与所述随机数进行掩码处理,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值进行迭代计算,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码。
[0191]
在一种可能的实现方式中,所述基于sha2的迭代运算,包括:将布尔更新摘要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩码进行算术掩码转换,得到迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码;对所述迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码进行基于sha2的算术加法运算,得到迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;将所述迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到用于下一轮迭代运算的布尔更新摘要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩
integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0205]
存储器,用于存放程序。存储器可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0206]
程序具体可以用于使得处理器执行操作:将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码;对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码;将所述布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码进行基于sha2的迭代运算,得到迭代后的布尔摘要和布尔摘要掩码;对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述初始摘要和所述初始摘要掩码进行布尔加法运算,得到更新后的摘要和摘要掩码。
[0207]
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
[0208]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0209]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0210]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0211]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0212]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0213]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0214]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0215]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0216]
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0217]
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0218]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
技术特征:
1.一种基于sha2算法的数据处理装置,包括:算术掩码转换模块,用于将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码;算术加法运算模块,用于对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;布尔掩码转换模块,用于将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码;迭代运算模块,用于将所述布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码进行基于sha2的迭代运算,得到迭代后的布尔摘要和布尔摘要掩码;布尔加法运算模块,用于对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述初始摘要和所述初始摘要掩码进行布尔加法运算,得到更新后的摘要和摘要掩码。2.根据权利要求1所述的装置,其中,所述算术掩码转换模块,具体用于:将初始摘要、初始摘要掩码、消息和消息掩码分别与随机数进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码。3.根据权利要求2所述的装置,其中,所述算术加法运算模块,具体用于:对所述初始摘要和所述初始摘要掩码进行ch/maj函数运算,得到ch数据、ch掩码、maj数据和maj数据掩码;对所述算术格式的摘要、摘要掩码、消息和消息掩码和所述ch数据、ch掩码、maj数据和maj数据掩码进行算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。4.根据权利要求3所述的装置,其中,所述算术加法运算模块,具体用于:将所述初始摘要和所述初始摘要掩码分别与随机数进行异或运算,得到异或数据;对异或数据进行算术掩码转换,得到ch数据、ch掩码、maj数据和maj数据掩码。5.根据权利要求4所述的装置,其中,所述算术加法运算模块,具体用于:获取基于sha2的运算参数;对所述初始摘要、初始摘要掩码进行处理,得到第一摘要、第一摘要掩码、第二摘要和第二摘要掩码;对所述消息、消息掩码进行处理,得到第一消息、第一消息掩码、第二消息和第二消息掩码;对所述第一摘要、所述第一摘要掩码、所述第二摘要、所述第二摘要掩码、所述第一消息、所述第一消息掩码、所述第二消息、所述第二消息掩码、所述基于sha2的运算参数和所述ch数据、ch掩码、maj数据和maj数据掩码进行压缩级联运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息、算术更新消息掩码。6.根据权利要求5所述的装置,其中,所述算术加法运算模块,具体用于:对所述基于sha2的运算参数进行数据处理,得到第一参数、第二参数、第三参数、第四参数、第五参数和第一参数掩码、第二参数掩码、第三参数掩码、第四参数掩码、第五参数掩码;对所述第一摘要、所述第一消息、所述第一参数和所述ch数据进行压缩级联运算,得到
第一临时数据;对所述第一摘要掩码、所述第一消息掩码、所述第一参数掩码和所述ch数据掩码进行压缩级联运算,得到第一临时数据掩码;对所述第一消息和所述第二参数进行算术加法运算,得到第二临时数据;对所述第一消息掩码和所述第二参数掩码进行算术加法运算,得到第二临时数据掩码;对所述第一临时数据、所述第三参数、所述maj数据、所述第五参数进行压缩级联运算,得到第一算术更新摘要;对所述第一临时数据掩码、所述第三参数掩码、所述maj数据掩码进行压缩级联运算,得到第一算术更新摘要掩码;对所述第一临时数据、所述第二摘要、所述第五参数掩码进行压缩级联运算,得到第二算术更新摘要;对所述第一临时数据掩码、所述第二摘要掩码进行压缩级联运算,得到第二算术更新摘要掩码;对所述第四参数、所述第二临时数据、所述第二消息进行压缩级联运算,得到第三算术更新摘要;对所述第四参数掩码、所述第二临时数据掩码、所述第二消息掩码进行压缩级联运算,得到第三算术更新摘要掩码。7.根据权利要求6所述的装置,其中,所述布尔掩码转换模块,具体用于:将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码分别与所述随机数进行掩码处理,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的临时值进行迭代计算,得到所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值;分别对所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码的进位产生值和进位传播值进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码。8.根据权利要求7所述的装置,其中,所述布尔掩码转换模块,具体用于:将布尔更新摘要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩码进行算术掩码转换,得到迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码;对所述迭代计算的算术摘要、算术摘要掩码、算术消息和算术消息掩码进行基于sha2的算术加法运算,得到迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;将所述迭代计算的算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到用于下一轮迭代运算的布尔更新摘要、布尔更新摘要掩码、布尔更新消息和布尔更新消息掩码。9.根据权利要求8所述的装置,其中,所述迭代运算模块,具体用于:对所述迭代后的布尔摘要和所述迭代后的布尔摘要掩码进行异或运算,得到非掩码格式的迭代数据;对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述非掩码格式的迭代数据进行进位数计算,得到进位数;对所述初始摘要、所述初始摘要掩码、所述非掩码格式的迭代数据和所述进位数进行布尔加法运算,得到更新后的摘要和摘要掩码。
10.一种基于sha2算法的数据处理方法,包括:将初始摘要、初始摘要掩码、消息和消息掩码进行算术掩码转换,得到算术格式的摘要、摘要掩码、消息和消息掩码;对所述算术格式的摘要、摘要掩码、消息和消息掩码进行基于sha2的算术加法运算,得到算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码;将所述算术更新摘要、算术更新摘要掩码、算术更新消息和算术更新消息掩码进行布尔掩码转换,得到布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码;将所述布尔格式的更新摘要、更新摘要掩码、更新消息和更新消息掩码进行基于sha2的迭代运算,得到迭代后的布尔摘要和布尔摘要掩码;对所述迭代后的布尔摘要、所述迭代后的布尔摘要掩码、所述初始摘要和所述初始摘要掩码进行布尔加法运算,得到更新后的摘要和摘要掩码。11.一种基于sha2算法的数据处理电路,包括:布尔掩码到算术掩码的转换单元,压缩器单元,ch和maj函数计算单元,算术掩码到布尔掩码的转换单元,算法控制单元,存储单元。12.根据权利要求11所述的电路,其中,所述sha2算法包括:sha-224算法、sha-256算法、sha-384算法、sha-512算法,所述sha-384算法、sha-512算法复用所述sha-224算法、sha-256算法所采用的电路结构。13.根据权利要求12所述的电路,其中,所述基于sha2的算术加法运算所采用的电路综合后运行的最高时钟频率为150mhz。14.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求10所述的方法对应的操作。15.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求10所述的方法。
技术总结
本发明实施例提供了一种基于SHA2算法的数据处理装置。在本发明实施例的方案中,本申请实施例的数据处理装置包括:算术掩码转换模块、算术加法运算模块、布尔掩码转换模块、迭代运算模块、布尔加法运算模块。通过在算术掩码转换模块、算术加法运算模块、布尔掩码转换模块、迭代运算模块以及布尔加法运算模块中均采用了掩码进行与和加法运算,实现了在哈希运算中进行了数据保护,防止了因侧信道攻击泄露与密钥相关的中间变量,避免了HMAC计算过程中泄漏输入数据及密钥信息。漏输入数据及密钥信息。漏输入数据及密钥信息。
技术研发人员:吴迪 黄继权
受保护的技术使用者:深圳市汇顶科技股份有限公司
技术研发日:2023.03.15
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种织机综框用挂钩座的制作方法 下一篇:一种用于注浆泵的安装车架的制作方法
