一种基于FPGA的国密SM3杂凑算法的硬件优化方法技术

技术编号:38943304 阅读:14 留言:0更新日期:2023-09-25 09:40
本发明专利技术公开了一种基于SM3密码杂凑算法的硬件实现方法,首先进行输入消息填充,将消息填充后的结果分成若干消息块,对消息块进行消息扩展;再对扩展数据进行消息压缩最后得到输入数据的杂凑值。本发明专利技术将在硬件平台上实现消息填充模块;另外相比传统SM3算法运行周期减少,在压缩模块中对关键路径做出改善,使得电路的延迟得到缓解,这使得性能得到了显著提升。升。升。

【技术实现步骤摘要】
一种基于FPGA的国密SM3杂凑算法的硬件优化方法


[0001]本专利技术涉及信息加密
,尤其是涉及一种基于FPGA的国密SM3杂凑算法的硬件优化方法。

技术介绍

[0002]随着以因特网为主的全球信息化空前地高涨,带来物联网技术的普及和它相关的应用飞速发展,涉及到企业商务系统、政府部门业务系统、金融业务系统等。这样,信息安全也就成为了各系统不可不关注的一个环节。一旦信息被窃取或篡改,将给相关行业带来不可估量的损失。芯片信息安全作为信息安全技术产业之一,有着至关重要的地位。其应用范围逐渐从军事、政治领域发展到社会、经济、生活等方面,信息安全产品成为保障整个社会正常的运转的保险箱。随着各个领域和行业对信息安全要求的提高和集成电路技术的发展,硬件安全的地位如同便衣保镖,默默保护着现代人的生活的各个方面。它逐渐取代软件的串行通用处理。与软件实现相比,硬件加密技术虽然在成本上有所提高,但是在抗解密攻击强度与加解密运算速度上是更具有优势的。
[0003]杂凑算法是在加解密运算中非常重要的不可逆运算,受到各国密码管理机构的重视。杂凑算法的基本规则是针对任意长度的消息进行进行特定的算法运算,该运算最终将得到的固定比特位的杂凑值。杂凑算法的操作步骤是经过公开不需要保密,一旦输入比特有细微的变化,其输出端的杂凑值的改变也非常地彻底,这种“雪崩效应”将使得不同的输入产生杂凑值输出相同的几率降到该碰撞被认可为不可能事件的阈值。美国的SHA_256算法等标准早已制定完成,为了保障信息安全,我国国产杂凑算法SM3也于2010年底由国密办正式颁布。在商用密码体系中,SM3杂凑算法适用于商用密码应用中的数字签名以及验证、消息认证码生成及验证、随机数生成等方面,可以满足多种密码应用的安全需求,同时还可以为安全产品生产商提供产品技术的标准定位和标准化的参考,安全性和效率和SHA_256相当。在当前数据量庞大、处理实时的应用背景下,传统的软件杂凑算法操作越来越无法达到用户所需要算法实现速度和效率。
[0004]随着信息社会的进一步发展,密码处理速度的要求进一提升,SM3的硬件设计成为研究与实现的热点。在很多场合下,能否快速计算的消息的杂凑值,将直接影响整个系统的密码处理能力,因此设计高速的SM3算法硬件显得尤为重要。

技术实现思路

[0005]本专利技术所要解决的技术问题是提供一种基于FPGA的国密SM3杂凑算法的硬件优化方法,相比传统算法在运算速度和消耗面积上做了一定的平衡,使得在一定频率上提升了吞吐率,使得关键路径得到了极大地优化,适用于对信息加密处理速度要求较高的应用环境上。
[0006]一种基于SM3密码杂凑算法的硬件实现方法,包括步骤如下:
[0007]步骤一:输入消息填充,将消息填充后的结果分成若干消息块;
[0008]步骤二:对消息块进行消息扩展;
[0009]采用移位寄存器同一周期四路并行输出的形式进行扩展。
[0010]步骤三:对扩展数据进行消息压缩;
[0011]在消息压缩中采用插入中间变量的的方法,改变关键路径从而得到一定延迟的缩减。
[0012]步骤四:得到输入数据的杂凑值。
[0013]本专利技术有益效果如下:
[0014]针对目前大多数SM3算的研究与实现主要集中在FPGA平台,并且硬件实现过程中一般未对消息填充部分做出设计,而是在软件中进行实现,造成了硬件平台的不完整性。本专利技术将在硬件平台上实现消息填充模块;另外相比传统SM3算法运行周期减少,在压缩模块中对关键路径做出改善,使得电路的延迟得到缓解,这使得性能得到了显著提升。
附图说明
[0015]图1为消息填充的过程;
[0016]图2为消息扩展复用模块。
具体实施方式
[0017]下面根据附图详细说明本专利技术,本专利技术的目的和效果将变得更加明显。
[0018]一种基于SM3密码杂凑算法的硬件实现方法,包括步骤如下:
[0019]步骤(1):输入消息填充;
[0020]给定一个消息长度为L(L<2
64
)比特的消息,首先在消息的末尾添加1个比特“1”,在后面级联n个“0”,使得整个消息满足L+1+n=448mod512。再在后面级联一个64位的比特串,这64位的比特串是消息L长度的二进制表示,填充之后的消息长度为512的整数倍。将消息填充之后的结果分成若干消息块B
(i)
∈{B
(0)
,B
(1)
,......,B
(k)
},每个消息块由512比特长度组成。如图1所示。
[0021]例如:
[0022]输入消息“abc”的ASCII码的十进制表示为:616263
[0023]填充“1”后的32位十进制表示为:61626380
[0024]填充“0”:
[0025]61626380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[0026]级联64bit长度:
[0027]61626380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000018
[0028]步骤(2):对消息块进行消息扩展;
[0029]将每个消息块扩展生成132个字W0,W1,

,W
67
,W
’0,W
’1,

,W

63

[0030]A)将消息块B
(i)
划分为16个字W0,W1,

,W
15

[0031]B)当迭代次数j∈[0,67]时,消息块扩展的字;
[0032]for(0≤j≤67)
[0033][0034]end for
[0035]C)当迭代次数j∈[0,63]时,消息块扩展的字;
[0036]for(0≤j≤63)
[0037][0038]endfor
[0039]本专利技术的硬件实现方法是设计流水结构,采用16个寄存器存储当前周期前16个周期计算出的消息扩展字。使用寄存器移位的特点,每个周期左移四位,如图2所示。当前周期的消息字W
j
存入W
j+4
,下一个消息字W
j+1
存入W
j+5
,依次类推。实现同时并行计算四轮的消息块扩展,同时也将下一个压缩函数增加到四轮,充分提高了计算的速度,同时将整个算法核心运算的时钟消耗缩短本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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<...

【专利技术属性】
技术研发人员:颜成钢陈旺孙垚棋朱尊杰王帅高宇涵王鸿奎殷海兵张继勇李宗鹏赵治栋
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

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

1