一种密码学算法快速部署方法

文档序号:37826295发布日期:2024-04-30 17:35阅读:8来源:国知局
一种密码学算法快速部署方法

本发明属于fpga和asic领域,尤其涉及一种面向fpga和asic的密码学算法快速部署方法。


背景技术:

1、密码学是一门至关重要的学科,其目标是保护信息的机密性、完整性和可靠性,为信息安全提供基础支持。密码技术作为核心,涵盖了加解密、完整性校验、身份认证和数字签名等关键技术,这些技术在密码学基础上得以发展。如果密码技术存在漏洞,那么信息安全的其他手段将无法实现其保护功能。如何加速密码学算法的执行效率一直是一个热门研究领域。

2、fpga和asic在密码学领域能够发挥重要的加速作用:1.它们允许密码学算法在硬件级别上进行定制化设计和优化。与通用计算机相比,可以实现更高度专门化的硬件结构,针对具体的密码学算法进行优化,从而提高算法执行效率。2.密码学算法通常包含大量的数学运算和数据转换步骤,这些步骤可以在fpga和asic中以高度并行的方式同时执行,从而显著减少加密、解密和其他密码操作的执行时间。3.它们的硬件设计能够实现更低的时钟周期,使得算法执行速度更快。这对于需要高性能和低延迟的密码学应用非常重要,如实时通信和数据传输。4.相对于通用计算机,fpga和asic通常具有更低的功耗。这对于依赖于移动设备或嵌入式系统的密码学应用尤为重要,可以延长电池寿命或降低设备热量产生。

3、fpga和asic加速器的设计通常是一个漫长的过程,它涉及复杂的硬件电路和逻辑设计。这包括了从算法到物理布局的各个层面,需要高度专业化的知识和技能,算法转化为硬件电路以及在电路级上的优化都需要耗费大量时间。因此业界也一直都在探索如何降低fpga和asic的设计难度。


技术实现思路

1、为了解决以上所提出的问题,本发明提供一种面向fpga和asic的密码学算法快速部署方法,解决密码学算法在fpga和asic上部署效率低下的问题,本发明在是服务器(控制目标芯片的主机)上面进行实现,服务器生成比特流传输给目标芯片,服务器通过一个可执行文件通过调用对加载到目标芯片上的密码学算法控制加速;目标芯片为fpga或asic;所述方法具体包括:

2、s1,在服务器上设置一密码学算法库;用mlir中linalg和affine方言实现多种密码学算法存入密码学算法库;

3、s2,根据用户的指定从密码学算法库中选择需要的算法;比如用户需要使用sha1算法时从库中引用对应文件即可(如sha1.mlir)传递给soda-opt,或者用户自己通过定义一个简单前端使用标记(如sha1)来条件选择库中的算法文件(sha1.mlir)来传递给soda-opt;

4、s3,服务器将所选mlir格式的密码学算法通过开源的soda-opt工具生成llvm ir格式的内核加速代码和主机控制代码;

5、s4,服务器将llvm ir格式的内核加速代码通过开源的bambu工具生成目标芯片的比特流并下载到对应的芯片中;

6、s5,服务器将llvm ir格式的主机控制代码通过llvm工具编译为包含运行时调用的文件,控制目标芯片对密码学算法进行加速。

7、进一步地,s1中,所述的多种密码学算法包括对称密码算法、非对称密码算法和摘要算法。

8、进一步地,s3中,生成llvm ir格式的内核加速代码和主机控制代码的过程为:

9、s31,将所述mlir格式的密码学算法通过soda-opt工具划分为mlir格式的需要加速的内核代码和用于控制的主机代码;

10、s32,通过soda-opt工具将所述mlir格式的需要加速的内核代码和用于控制的主机代码分别下沉转换为所述的llvm ir格式的内核加速代码和主机控制代码。

11、进一步地,s4中,生成目标芯片的比特流并下载到对应芯片中的过程为:

12、s41,bambu工具对llvm ir格式的内核加速代码进行处理,生成能够在目标芯片上烧写的比特流;

13、s42,通过目标芯片对应的rtl合成工具将比特流下载到芯片上。

14、与现有技术相比,本发明具有如下的增益效果:

15、1.本发明将多种密码学算法通过mlir中的linalg和affine方言实现后,作为可反复利用的密码学算法库,每次只需要选择使用的密码学算法,避免了将密码学算法用rtl实现的重复工作。

16、2.本发明利用soda-opt和bambu工具实现了密码学算法在目标芯片上端到端的部署,不再需要人工参与电路设计,提高了部署效率。

17、3.soda-opt工具能够为bambu工具提供高性能的生成设计,bambu是目前最先进的高级综合工具,最终生成的电路具有高效性。



技术特征:

1.一种密码学算法快速部署方法,其步骤包括:

2.根据权利要求1所述的方法,其特征在于,将所述llvm ir格式的内核加速代码生成比特流并下载到所述目标芯片中的方法为:首先利用bambu工具对llvm ir格式的内核加速代码进行处理,生成能够在所述目标芯片上烧写的比特流;然后通过所述目标芯片对应的rtl合成工具将所述比特流下载到所述目标芯片上。

3.根据权利要求1所述的方法,其特征在于,所述目标芯片为fpga或asic。

4.根据权利要求1或2或3所述的方法,其特征在于,生成llvm ir格式的内核加速代码和主机控制代码的方法为:首先将所选密码学算法通过soda-opt工具划分为mlir格式的需要加速的内核代码和用于控制的主机代码;然后通过soda-opt工具将所述mlir格式的需要加速的内核代码和用于控制的主机代码分别下沉转换为所述的llvm ir格式的内核加速代码和主机控制代码。

5.根据权利要求1或2或3所述的方法,其特征在于,所述密码学算法库中的密码学算法包括对称密码算法、非对称密码算法和摘要算法。


技术总结
本发明公开了一种密码学算法快速部署方法,其步骤包括:1)在服务器上设置一密码学算法库;所述密码学算法库中的密码学算法为MLIR格式的算法;所述服务器为控制目标芯片的主机;2)从所述密码学算法库中选择用户所需密码算法;3)服务器将所选密码学算法生成LLVM IR格式的内核加速代码和主机控制代码;4)服务器将所述LLVM IR格式的内核加速代码生成比特流并下载到所述目标芯片中;5)服务器将LLVM IR格式的主机控制代码编译为包含运行时调用的文件,控制所述目标芯片对其上运行的对应密码学算法进行加速。本发明解决密码学算法在FPGA和ASIC上部署效率低下的问题。

技术研发人员:卫元宇,韩柳彤,邢明杰,武延军,赵琛
受保护的技术使用者:中国科学院软件研究所
技术研发日:
技术公布日:2024/4/29
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1