当前位置:   article > 正文

sha256加密_【总结】基于 FPGA 的 SHA256 高效数字加密研究(五)

fpga哈希算法加密

在未来的研究和开发中,基于FPGA的SHA256核加密系统的研究将不仅仅局限于前面描述的内容,在内嵌有 ARM 或 PowcrPC 等 CPU 的高端 FPGA 上,依旧有非常多的工作值得我去开发和探索。

01

总结与展望

e452a9d88835022f762fcee76df7164c.png

本次研究选择 xilinx FPGA 为实现 SllA256 算法工作平台。以优化 SHA256 在硬件上实现的性能为研究基础。紧紧围绕当前网络以及个人电子产品高速发展的环境下,个人信息以及网络数据安全性为研究方向。
开发出的基于FPGA 硬核的 SHA256 加密系统。该系统以 PCIe卡的形式可以直接插在计算机上面使用。文章通过研究 SHA256 的算法以及 WISHBONE 总线以及相互间的通信模式,在 CESYS 公司的 PCle4BASEJ 开发板中的 Xilinx Virtex4 XC4VLX25 FPGA 芯片中完成了整套加密系统的开发工作。
整个加密系统的核心组成部分是 SHA256 哈希算法,算法的实现效率直接影响整个加密系统的工作效率。所以本文通过对哈希算法的研究,利用 FPGA 硬件本身拥有的并行运算、片上 BRAM 以及流水线操作等相关性能结合 SHA256 算法本身,进行不断的优化。从软硬件平台的搭建,到 SHA256 算法的优化,目前整个系统己经经历了3 个主要版本的。本文主要描述了三个版本中综合性价比最好的一个版本 V2.7 版本。
在 V2.7 版本的实际开发中,利用流水线的工作原理,将 SHA256 算法拆分成 4 个模块,前端数据处理模块主要完成将加密数据的长度添加到数据末尾,同时当最后的数据块超过 448bits ,自动生成新的 512bits 的数据块功能;数据扩展模块是对每次输入的 512bits 数据,以 32bits 为处理单元将数据扩展至 64x32bits ;循环计算模块,是将 64X32bits 扩展后的数据,通过 64 次循环计算,最终输出至输出控制模块;最后输出控制模块通过当前外部输入数据状态来判断当前数据是否为最终的哈希值,并输出。
整个加密过程采用流水线的操作模式,完成一次 512bits 的数据块的运算,仅需要 68 个始终周期,提高了系统数据处理的效率。

经过验证,整套加密系统能够正常工作并根据驱动完成数据的加密工作。并且工作效率接近双核 CPU 的 SHA256 软核加密系统,未来还需要进行进一步的优化工作。具体方向如下:

02

SHA256核算法的优化

目前整个系统的主要延迟还是存在于循环计算模块中的 32bits 的数据加法以及数据扩展模块中 32bits 的数据加法。通过对 SHA256 核进行时间约束的检测,发现加法器的延迟是降低 SHA256 核工作频率的主要原因,同时使用的 BRAM , 在读取数据进行加法操作时, BRAM 产生的延迟也是导致加法操作延迟增加的原因。所以在下一步的作中,我将更细致的分析延迟产生的原因以及如何进行算法和设计上的调整,进一步的降低延迟。

目前,拥有的两个方案是使用Slices 资源替代 BRAM 进行存储,结果会占用大量的编程资源。后一个是使用 FIFO 进行数据存储,但是性能是否有优化还不明确。 

WisHBONE 总线上 SHA256 接口的优化 WISHBONE 总线上的 SHA256 接口模块是衔接 WISHBONE 总线和 SHA256 核的关键部分。总线上的地址译码,数据接收以及 SHA256 核数据输出都要经过 SHA256 接口模块完成。该模块目前需要检测至少接收 512bits 的数据块后,或者接收数据未满 512bits 且接收到结束信号后才会启动 SHA256 核进行运算。

下一步我想实现一种机制,有数据输入时就启动 SHA256 核进行计算,如果最后检测到输入数据条件不满足正常条件,则放弃当前的运算。通过这样能够提高整个系统的工作效率。

在未来的研究和开发中,基于 FPGA 的 SHA256 核加密系统的研究将不仅仅局限于前面描述的内容,在内嵌有 ARM 或 PowcrPC 等 CPU 的高端 FPGA 上,依旧有非常多的工作值得我去开发和探索。

559e5f9f903b7187298836f820550323.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/139568
推荐阅读
相关标签
  

闽ICP备14008679号