【技术实现步骤摘要】
一种基于FPGA的国密SM3杂凑算法的硬件优化方法
[0001]本专利技术涉及信息加密
,尤其是涉及一种基于FPGA的国密SM3杂凑算法的硬件优化方法。
技术介绍
[0002]随着以因特网为主的全球信息化空前地高涨,带来物联网技术的普及和它相关的应用飞速发展,涉及到企业商务系统、政府部门业务系统、金融业务系统等。这样,信息安全也就成为了各系统不可不关注的一个环节。一旦信息被窃取或篡改,将给相关行业带来不可估量的损失。芯片信息安全作为信息安全技术产业之一,有着至关重要的地位。其应用范围逐渐从军事、政治领域发展到社会、经济、生活等方面,信息安全产品成为保障整个社会正常的运转的保险箱。随着各个领域和行业对信息安全要求的提高和集成电路技术的发展,硬件安全的地位如同便衣保镖,默默保护着现代人的生活的各个方面。它逐渐取代软件的串行通用处理。与软件实现相比,硬件加密技术虽然在成本上有所提高,但是在抗解密攻击强度与加解密运算速度上是更具有优势的。
[0003]杂凑算法是在加解密运算中非常重要的不可逆运算,受到各国密码管理机构的重视。杂凑算法的基本规则是针对任意长度的消息进行进行特定的算法运算,该运算最终将得到的固定比特位的杂凑值。杂凑算法的操作步骤是经过公开不需要保密,一旦输入比特有细微的变化,其输出端的杂凑值的改变也非常地彻底,这种“雪崩效应”将使得不同的输入产生杂凑值输出相同的几率降到该碰撞被认可为不可能事件的阈值。美国的SHA_256算法等标准早已制定完成,为了保障信息安全,我国国产杂凑算法SM3也于2010年底 ...
【技术保护点】
【技术特征摘要】
1.一种基于SM3密码杂凑算法的硬件实现方法,其特征在于,包括步骤如下:步骤一:输入消息填充,将消息填充后的结果分成若干消息块;步骤二:对消息块进行消息扩展;采用移位寄存器同一周期四路并行输出的形式进行扩展;步骤三:对扩展数据进行消息压缩;在消息压缩中采用插入中间变量的的方法,改变关键路径从而得到一定延迟的缩减;步骤四:得到输入数据的杂凑值。2.根据权利要求1所述的一种基于SM3密码杂凑算法的硬件实现方法,其特征在于,步骤一具体方法如下:给定一个消息长度为L,L<2
64
比特的消息,首先在消息的末尾添加1个比特“1”,在后面级联n个“0”,使得整个消息满足L+1+n=448mod 512;再在后面级联一个64位的比特串,这64位的比特串是消息L长度的二进制表示,填充之后的消息长度为512的整数倍;将消息填充之后的结果分成若干消息块B
(i)
∈{B
(0)
,B
(1)
,......,B
(k)
},每个消息块由512比特长度组成。3.根据权利要求2所述的一种基于SM3密码杂凑算法的硬件实现方法,其特征在于,步骤二具体方法如下:将每个消息块扩展生成132个字W0,W1,
…
,W
67
,W
’0,W1’
,
…
,W
’
63
:A)将消息块B
(i)
划分为16个字W0,W1,
…
,W
15
;B)当迭代次数j∈[0,67]时,消息块扩展的字;for(0≤j≤67)end forC)当迭代次数j∈[0,63]时,消息块扩展的字;for(0≤j≤63)end for设计流水结构,采用16个寄存器存储当前周期前16个周期计算出的消息扩展字;使用寄存器移位的特点,每个周期左移四位;当前周期的消息字W
j
存入W
j+4
,下一个消息字W
j+1
存入W
j+5
,依次类推;实现同时并行计算四轮的消息块扩展,同时也将下一个压缩函数增加到四轮。4.根据权利要求3所述的一种基于SM3密码杂凑算法的硬件实现方法,其特征在于,步骤三具体方法如下:在消息压缩中采用插入中间变量的的方法,改变关键路径从而得到一定延迟的缩减;消息压缩中共有64轮运算,将64轮循环得到的结果与本轮计算输入的初始数据做异或运算,就得到本轮运算的哈希值;消息压缩过程如下:{A,B,C,D,E,F,G,H}
←
V
(i)
FOR j=0to 63
SS1
j
=((A
j
‑1<<<12)+E
j
‑1+(T
j
<<<j))<<<7TT1
j
=FF
j
(A
j
‑1,B
j
‑1,C
j
‑1)+D
j
‑1+SS2
j
‑1+W<...
【专利技术属性】
技术研发人员:颜成钢,陈旺,孙垚棋,朱尊杰,王帅,高宇涵,王鸿奎,殷海兵,张继勇,李宗鹏,赵治栋,
申请(专利权)人:杭州电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。