FPGA芯片EP2S90F1508C3实现SM3算法的硬件实现策略.docx
《FPGA芯片EP2S90F1508C3实现SM3算法的硬件实现策略.docx》由会员分享,可在线阅读,更多相关《FPGA芯片EP2S90F1508C3实现SM3算法的硬件实现策略.docx(5页珍藏版)》请在第一文库网上搜索。
1、FPGA芯片EP2S90F1508C3实现SM3算法的硬件实现策略在分析SM3篁法的基础上详细介绍了目前HaSh函数的4种硬件实现策略,同时给出了迭代方式和基于充分利用电钟周期的循环展开方式下的蚂实现。该循环展开方式有效地减少了一半的工作时钟数和11%的运算时间,吞吐量提高了11%,且占用的硬件资源较少。Hash函数是密码学中最基本的模块之一,在密码学中扮演着极其重要的角色,广泛应用于数字签名、消息鉴别和伪随机数生成器等领域,是近几年密码学研究的热点领域1。HaSh函数是将任意长度的信息通过算法变成固定长度的输出,且这个变换过程是不可逆的。HaSh函数的不可逆特性使得攻击者不能通过Hash值推
2、出任何部分的原始信息。因为对于原始信息中的任意一个比特数据发生改变,其HaSh值都将发生明显变化。此外,HaSh函数还具有碰撞约束性,即不能找到一个输入使其输出结果等于一个已知的输出结果,或者不能同时找到两个不同的输入使其输出结果完全一致。正是这些特性,使得HaSh值可以用来验证信息是否被修改。1SM3算法简介为了满足电子认证服务系统等应用需求,国家密码管理局于2010年12月发布了SM3密码HaSh算法。该算法适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。SM3算法能够对任何小于264bit的数据进行计算,输出长度为256bit的
3、HaSh值。SM3算法包括预处理、消息扩展和计算HaSh值三部分。预处理部分由消息填充和消息分组两部分组成。首先将接收到的消息末尾填充一个“1”,再添加k个“0”,使得填充后的数据成为满足1ength=448mod512bit的数据长度,再在末尾附上64bit消息长度的二进制表示数,然后将消息分成512bit的子块,最后将每个512bit的消息子块扩展成132个字WO,W1,W67,W0,W1/,W63,用于HaSh值的计算。SM3算法计算流程图如图1所zjOSM3算法的HaSh运算主要是在压缩函数部分,压缩函数共包含64轮,每轮包括12步运算,64轮循环计算结束后,再将计算结果与输入到本轮计
4、算的初始数据进行异或运算,即上一次Hash运算的Hash值输出Hi与输入到本轮计算的初始数据异或得到本次HaSh值输出Hi+1。HrI即为最终的HaSh值,HO为设计(a)迭代方光W0环也一乙HPPUCAT1W酣稣加鬲NICTECHNIQUE1tgyq第4步P者提供的初始值IV。2HaSh算法的硬件实现策略在通过FPGA编程实现HaSh算法过程中,提高吞吐量以及减少硬件资源占用是衡量硬件实现算法的重要指标,高效率、低功耗以及面积优化设计都是FPGA设计中最受关注的方面。目前为止,HaSh算法的FPGA实现策略大致有以下4种方式如图2所示。(d)混合方式I-Sz-图2HaSh函数的硬件实现乜d(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 芯片 EP2S90F1508C3 实现 SM3 算法 硬件 策略