System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于RISC-V的SM3密码算法优化方法技术_技高网

一种基于RISC-V的SM3密码算法优化方法技术

技术编号:40401369 阅读:7 留言:0更新日期:2024-02-20 22:26
本发明专利技术公开了一种基于RISC‑V的SM3密码算法优化方法,该方法基于RISC‑V密码学扩展指令中的sm3p0和sm3p1指令,用Verilog代码描述生成对应的逻辑电路,设计SM3指令功能单元,然后将其集成到开源RISC‑V处理器,使得处理器硬件面积大约增加10%,SM3算法的吞吐量至少提高1倍。在消息扩展过程使用SM3指令功能单元执行sm3p1指令,n个消息分组能减少364×n条指令;在迭代压缩过程使用SM3指令功能单元执行sm3p0指令,n个消息分组能减少448×n条指令。

【技术实现步骤摘要】

本专利技术属于信息安全领域,具体是一种基于risc-v的sm3密码算法优化方法。


技术介绍

1、国家商用密码算法是由我国自主研制的一系列数据加密、认证算法,包括sm2、sm3、sm4和sm9等算法。这些密码算法在网络与信息安全系统中发挥着越来越重要的作用。sm3密码杂凑算法于2012年由国家密码管理局发布为密码行业标准,2016年转化为国家标准,2018年正式成为国际标准。sm3算法适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。随着我国信息技术产业的技术升级,sm3算法的高速实现受到工业界高度关注。

2、risc-v是一种新兴的开源精简指令集架构,由加州大学伯克利分校在2010年首次发布,具有开源、免费、开放的特点,支持第三方的扩展。risc-v预留了大量的指令编码空间用于用户的自定义扩展,用户可以扩展自己的指令子集。近年来,对于risc-v的研究已成为学术界和工业界的一大热点。目前,如何将risc-v与国密算法相结合受到人们的广泛关注。

3、国家正在大力发展risc-v产业,将国家商用密码算法应用在risc-v架构上对国家商用密码算法的推广应用起到了积极的作用。2019年,stoffelen用rv32i指令集在risc-v上首次优化汇编实现基于查找表的aes、比特切片aes、chacha和keccak-f三个密码算法[1]。2020年,marshall等人探索了现有的指令集扩展(ise)设计,在32位和64位的risc-vcpu内核上实现并评估了五种不同的aes ise,并介绍了一种使用象限填充状态表示的ise设计,还探讨了如何利用risc-v的标准位操作扩展来有效实现aes-gcm[2]。2021年,marshall等人提出一种轻量级ise来支持risc-v架构上的chacha,提出的ise旨在加速chacha块函数的计算[3]。陈锐等人在开源risc-v指令集的基础上,增加了两条自定义指令以实现密钥扩展和加解密算法中的轮函数;设计了一款低开销的sm4指令功能单元硬件电路结构,提出了以软硬件协同设计的方式实现sm4算法,降低延时和资源开销,提升吞吐率[4]。孙子婷等人针对sm2算法在有限域上大数运算结构复杂、运算开销大的问题,通过研究sm2算法在二元扩域下的椭圆曲线点乘运算及其相关基础运算,设计了一种基于risc-v指令集的椭圆曲线点乘运算加速协处理器。该协处理器采用三级流水线结构,内部集成9条自定义指令,可协助支持risc-v的主处理器快速完成sm2密码算法[5]。2023年,王汉宁等人充分挖掘了sm3算法在fpga平台的可并行性,通过增加少量的寄存器,降低了算法关键路径的逻辑深度,并通过消息扩展与压缩函数并行执行的方法对sm3算法进行优化[6]。郑佳乐等人分析了sm3密码杂凑算法基本流程,基于fpga平台,采用16个寄存器构成寄存器组作为生成132个字的缓存区,设计进位保留加法器进行关键路径的压缩,完成一次压缩函数中关键路径计算所需的时钟周期明显减少[7]。2020年,方轶等人为了提高sm3算法的吞吐量,减少运算资源占用,对关键运算路径进行并行计算设计;同时采用进位保留加法器(csa)进行关键路径的压缩,完成一次压缩函数中关键路径计算所需的时钟周期明显减少[8]。2018年,陈博宇等人采用64级轮计算分级模式和多个算法核并行复用对sm3算法进行了硬件的优化实现;通过优化关键计算路径和64级轮计算的分级设计,大大降低了时延并提高了性能[9]。尽管上述方法提高了sm3算法实现速度,但是其硬件实现占用面积消耗较大。

4、目前硬件实现sm3算法需要付出较高的成本,而软件实现的速度较慢,且吞吐率低。相对于单独的软件或硬件优化,两者的协同优化往往会带来更好的适用性和扩展性,能在有限的硬件代价中最大化对软件的加速。这种协同优化通常被应用于硬件与软件间的桥梁——指令集。risc-v在工业界和学术界是研究热点之一,但是缺少sm3算法在risc-v上实现的数据,因此如何在risc-v上使用密码学扩展指令实现sm3算法是现在需要解决的问题。

5、参考文献:

6、[1]stoffelen k.efficient cryptography on the risc-v architecture[c].international conference on cryptology and information security in latinamerica.cham:springer,2019:323-340;

7、[2]marshall b,newell g r,page d,et al.the design of scalar aesinstruction set extensions for risc-v[j].iacr transactions on cryptographichardware and embedded systems,2020,2021(1):109-136;

8、[3]marshall b,page d,pham t h.alightweight ise for chacha on risc-v[c].2021ieee 32nd international conference on application-specific systems,architectures and processors(asap),2021:25-32;

9、[4]陈锐,李冰,刘向东.基于rsic-v指令扩展的低开销sm4算法设计与实现[j].电子器件,2021,44(1):108-113;

10、[5]孙子婷,韩跃平,唐道光.基于risc-v的sm2点乘运算协处理器设计[j].单片机与嵌入式系统应用,2023,23(8):28-31;

11、[6]王汉宁,孙浩,邓辰辰等.面向sm3算法的高性能fpga实现[j/ol].微电子学与计算机,2023(07):105-110[2023-12-15].https://doi.org/10.19304/j.issn1000-7180.2022.0664;

12、[7]郑佳乐,韩跃平,唐道光.fpga平台sm3密码杂凑算法的优化设计[j].单片机与嵌入式系统应用,2023,23(05):33-36,39;

13、[8]方轶,丛林虎,邓建球等.基于fpga的sm3算法快速实现方案[j].计算机应用与软件,2020,37(06):259-262;

14、[9]陈博宇,王宏.基于fpga的sm3算法的优化实现[j].信息技术,2018,42(07):143-147。


技术实现思路

1、本专利技术的目的是提供一种基于risc-v的sm3密码算法优化方法,旨在解决sm3密码算法硬件实现时资源开销大,软件实现时速度慢的问题。

2、实现本专利技术目的的技术方案是:

3、一本文档来自技高网...

【技术保护点】

1.一种基于RISC-V的SM3密码算法优化方法,其特征在于,所述方法包括如下步骤:

2.根据权利要求1所述的基于RISC-V的SM3密码算法优化方法,其特征在于,步骤(3)所述在消息扩展过程使用SM3指令功能单元执行sm3p1指令,具体过程如下:

3.根据权利要求1所述的基于RISC-V的SM3密码算法优化方法,其特征在于,步骤(4)所述在迭代压缩过程使用SM3指令功能单元执行sm3p0指令,具体过程如下:

【技术特征摘要】

1.一种基于risc-v的sm3密码算法优化方法,其特征在于,所述方法包括如下步骤:

2.根据权利要求1所述的基于risc-v的sm3密码算法优化方法,其特征在于,步骤(3)所述在消息扩展过程使用sm3指令...

【专利技术属性】
技术研发人员:梁马杰韦永壮叶涛
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:

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

1