MD5哈希函数计算方法、系统及计算机可读存储介质技术方案

技术编号:17304257 阅读:48 留言:0更新日期:2018-02-18 22:07
本发明专利技术公开了一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法、系统及计算机可读存储介质,该方法包括:主机端将待处理数据发送至FPGA板卡的DDR内存,并设置FPGA端运行所需的参数信息;FPGA端根据参数信息,对待处理数据进行MD5哈希函数计算,并将获取的计算结果数据存储至DDR内存;主机端从DDR内存获取计算结果数据;本发明专利技术通过FPGA端根据参数信息,对待处理数据进行MD5哈希函数计算,并将获取的计算结果数据存储至DDR内存,可以利用FPGA端对分组循环运算的性能加速,提高MD5哈希函数计算的执行性能,有效改善了MD5哈希函数计算的实现效率,减少了开发周期和成本。

MD5 hash function calculation method, system and computer readable storage medium

The invention discloses a method, system and computer readable storage medium MD5 hash function platform for CPU+FPGA accelerated heterogeneous, the method comprises the following steps: the host will be processed data is sent to the FPGA board of the DDR memory, and set the parameters of information required for FPGA terminal operation; FPGA terminal according to the parameter information to MD5 data processing the hash function calculation, the calculation results and the memory data storage to DDR; the host obtains calculated result data from the DDR memory; the invention through the FPGA terminal according to the parameter information, deal with data MD5 hash function are calculated. The calculation results and the data storage memory to DDR, you can use the FPGA terminal on the performance of packet cycle operation speed, improve the performance of MD5 hash function calculation, effectively improve the efficiency of implementation of MD5 hash function calculation, reduce development Cycle and cost.

【技术实现步骤摘要】
MD5哈希函数计算方法、系统及计算机可读存储介质
本专利技术涉及可重构计算
,特别涉及一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法、系统及计算机可读存储介质。
技术介绍
Hash(哈希)函数亦称散列函数,简单的说就是一种能够将任意长度的消息压缩成为固定长度的消息摘要函数。具体来讲,哈希函数能够将任意长度的输入(即pre-image)通过散列算法变换成为固定长度的输出(即散列值)。该散列算法是一种压缩映射,散列值的空间大小远远小于输入值的空间大小。不同的输入存在相同的输出,所以不可能从散列值来唯一确定输入值。哈希函数涵盖的范围较广,目前出现的较常用的为MD(MessageDigestAlgorithm,消息摘要算法)系列和SHA系列。由于安全性问题,历史的MD1、MD2、MD3、MD4已经不再广泛使用,最新的MD系列的第五版本(MD5)。MD5的算法过程包括位数填充、信息长度记录、标准的幻数装入以及四轮循环运算(分组处理),而绝大多数核心运算集中在第四步的四轮分组循环运算。现有技术中,在云计算、大数据以及人工智能等应用中包含大量的哈希运算,处理批量的哈希运算需要大量的计算资源。一般服务器的CPU将会被洪水般的计算量耗尽资源。因此,如何提高MD5哈希函数算法中的分组循环运算的性能,是现今急需解决的问题。
技术实现思路
本专利技术的目的是提供一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法、系统及计算机可读存储介质,以利用FPGA(Field-ProgrammableGateArray,现场可编程门阵列)对分组循环运算的性能加速,提高MD5哈希函数计算的执行性能。为解决上述技术问题,本专利技术提供一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法,包括:主机端将待处理数据发送至FPGA板卡的DDR内存,并设置FPGA端运行所需的参数信息;所述FPGA端根据所述参数信息,对所述待处理数据进行MD5哈希函数计算,并将获取的计算结果数据存储至所述DDR内存;所述主机端从所述DDR内存获取所述计算结果数据。可选的,所述FPGA端根据所述参数信息,对所述待处理数据进行MD5哈希函数计算,包括:所述FPGA端利用OpenCL语言实现的MD5哈希函数内核,根据所述参数信息对所述待处理数据进行MD5哈希函数计算。可选的,所述FPGA端利用OpenCL语言实现的MD5哈希函数内核,根据所述参数信息对所述待处理数据进行MD5哈希函数计算,包括:所述FPGA端将所述待处理数据从所述DDR内存读取至片上缓存;根据所述参数信息,对所述待处理数据进行并行和流水式的压缩映射处理,获取所述计算结果数据。可选的,该方法还包括:所述主机端创建与所述FPGA端进行数据通信的缓存,并将所述缓存存放在所述DDR内存上。本专利技术还提供了一种面向CPU+FPGA异构加速平台的MD5哈希函数计算系统,包括:主机端,用于将待处理数据发送至FPGA板卡的DDR内存,并设置FPGA端运行所需的参数信息;从所述DDR内存获取计算结果数据;所述FPGA端,用于根据所述参数信息,对所述待处理数据进行MD5哈希函数计算,并将获取的所述计算结果数据存储至所述DDR内存。可选的,所述FPGA端具体用于利用OpenCL语言实现的MD5哈希函数内核,根据所述参数信息对所述待处理数据进行MD5哈希函数计算。可选的,所述主机端还用于创建与所述FPGA端进行数据通信的缓存,并将所述缓存存放在所述DDR内存上。此外,本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的面向CPU+FPGA异构加速平台的MD5哈希函数计算方法的步骤。本专利技术所提供的一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法,包括:主机端将待处理数据发送至FPGA板卡的DDR内存,并设置FPGA端运行所需的参数信息;FPGA端根据参数信息,对待处理数据进行MD5哈希函数计算,并将获取的计算结果数据存储至DDR内存;主机端从DDR内存获取计算结果数据;可见,本专利技术通过FPGA端根据参数信息,对待处理数据进行MD5哈希函数计算,并将获取的计算结果数据存储至DDR内存,可以利用FPGA端对分组循环运算的性能加速,提高MD5哈希函数计算的执行性能,有效改善了MD5哈希函数计算的实现效率,减少了开发周期和成本。此外,本专利技术还提供了一种面向CPU+FPGA异构加速平台的MD5哈希函数计算系统及计算机可读存储介质,同样具有上述有益效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例所提供的一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法的流程图;图2为本专利技术实施例所提供的一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法的实现示意图;图3为本专利技术实施例所提供的一种面向CPU+FPGA异构加速平台的MD5哈希函数计算系统的结构图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1为本专利技术实施例所提供的一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法的流程图。该方法可以包括:步骤101:主机端将待处理数据发送至FPGA板卡的DDR内存,并设置FPGA端运行所需的参数信息。其中,本步骤的目的可以为主机端(CPU)将需要进行MD5哈希函数计算(压缩映射)的待处理数据传输到FPGA板卡上的DDR内存,并设置FPGA端对待处理数据进行MD5哈希函数计算所需的参数信息。对于主机端(CPU)进行本步骤的具体方式,可以执行由GCC编译器对OpenCL(OpenComputingLanguage,开放式计算语言)语言描述的主机端程序进行编译生成的可执行程序文件,也可以执行由其他编译器对其他语言描述的主机端程序进行编译生成的可执行程序文件。只要可以达到本步骤的目的,本实施例对此不做任何限制。可以理解的是,本步骤中的FPGA板卡的DDR内存,可以为主机端与FPGA端进行数据通信的缓存(Buffer)。如主机端与FPGA端之间采用PCI-E接口连接,进行数据通信,可以采用FPGA端所在的FPGA板卡上的DDR内存作为数据缓存。也就是说,本步骤之前还可以包括主机端创建与FPGA端进行数据通信的缓存,并将缓存存放在DDR内存上的步骤。对于缓存存放的DDR内存的具体存放位置,可以由设计人员自行设置,如可以存放在FPGA板卡上的DDR3内存,也就是,采用DDR3内存作为数据缓存。本实施例对此不做任何限制。需要说明的是,本步骤设置的FPGA端运行所需的参数信息,可以由设计人员根据FPGA端对待处理数本文档来自技高网...
MD5哈希函数计算方法、系统及计算机可读存储介质

【技术保护点】
一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法,其特征在于,包括:主机端将待处理数据发送至FPGA板卡的DDR内存,并设置FPGA端运行所需的参数信息;所述FPGA端根据所述参数信息,对所述待处理数据进行MD5哈希函数计算,并将获取的计算结果数据存储至所述DDR内存;所述主机端从所述DDR内存获取所述计算结果数据。

【技术特征摘要】
1.一种面向CPU+FPGA异构加速平台的MD5哈希函数计算方法,其特征在于,包括:主机端将待处理数据发送至FPGA板卡的DDR内存,并设置FPGA端运行所需的参数信息;所述FPGA端根据所述参数信息,对所述待处理数据进行MD5哈希函数计算,并将获取的计算结果数据存储至所述DDR内存;所述主机端从所述DDR内存获取所述计算结果数据。2.根据权利要求1所述的面向CPU+FPGA异构加速平台的MD5哈希函数计算方法,其特征在于,所述FPGA端根据所述参数信息,对所述待处理数据进行MD5哈希函数计算,包括:所述FPGA端利用OpenCL语言实现的MD5哈希函数内核,根据所述参数信息对所述待处理数据进行MD5哈希函数计算。3.根据权利要求2所述的面向CPU+FPGA异构加速平台的MD5哈希函数计算方法,其特征在于,所述FPGA端利用OpenCL语言实现的MD5哈希函数内核,根据所述参数信息对所述待处理数据进行MD5哈希函数计算,包括:所述FPGA端将所述待处理数据从所述DDR内存批量读取至片上缓存;根据所述参数信息,对所述待处理数据进行并行和流水式的压缩映射处理,获取所述计算结果数据;其中,所述参数信息包括数据批量读取位数、循环展开大小、执行度大小和流水线过程。4.根据权利要求1至3任一项所述的面向...

【专利技术属性】
技术研发人员:曹芳李雪雷王丽
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1