一种基于FPGA的Hash算法硬件实现装置的制造方法

文档序号:10473491阅读:624来源:国知局
一种基于FPGA的Hash算法硬件实现装置的制造方法
【专利摘要】本发明公开了一种基于FPGA的Hash算法硬件实现装置。目前业内HASH算法基本上都是基于纯软件实现,导致Hash性能低下,尤其是在表项长度长,表项规模大的高速查表或要大的数据量需要加密的情况下,依赖纯软件实现几乎不现实。本发明包括任务分配模块、Hash单向函数模块和结果合并模块,其特征在于:将输入的DATA数据由任务分配模块拆开成n个小片,分别为X1,X2……Xn,再由Hash单向函数模块中的n个Hash单向函数计算,得到n个KEY值,再由结果合并模块进行结果合并计算,最后得到DATA数据的KEY值。本发明主要是基于FPGA实现Hash算法,分片同时并发执行运算,速度比纯软件加快几十倍。
【专利说明】
-种基于FPGA的Hash算法硬件实现装置
技术领域
[0001] 本发明设及信息安全领域中加密算法和大容量的数据查找,具体地说是一种基于 FPGA的化Sh算法硬件实现装置。
【背景技术】
[0002] 随着近来互联网、物联网、云计算W及其他信息技术的迅速发展,信息数据都呈现 迅猛增长。例如,阿里己己服务器上已拥有超过IOOPB的数据量(1PB=1024TB)。大数据在科 学、金融、气象、医疗、环保、教育、军事、交通等领域都具有非常广阔的应用前景。因此说,大 数据已经成为国家重要的战略资源,在大数据中如何快速查找有用的信息已经成为学术界 和工业界高度关注的热点。
[0003] 近日来,随着互联网金融在金融领域的广泛应用引起了人们的关注,越来越多的 人加入到移动支付的行列,如微信支付、支付宝、网上银行等。与此同时,移动支付业务也面 临着与W往的传统银行卡支付、互联网支付完全不同的支付环境,各种针对移动支付的新 型安全威胁逐步展现,对交互的数据加密尤为重要。
[0004] 另外,企业面对的信息安全问题正在变得复杂化。从便携式设备到可移动存储、再 到基于W邸的协作应用,乃至基于IP的语音技术,每一类新产品都有新的安全问题与之相伴 而生,对数据的加密必不可少。
[0005] 目前业内化Sh算法基本上都是基于纯软件实现,导致化Sh性能低下,尤其是在表 项长度长,表项规模大的高速查表或要大的数据量需要加密的情况下,依赖纯软件实现几 乎不现实。

【发明内容】

[0006] 本发明所要解决的技术问题是克服现有技术存在的缺陷,提供一种基于FPGA的 化Sh算法硬件实现装置,其针对大数据的快速查找和敏感数据快速加密。
[0007] 为了解决上述技术问题,本发明采用的技术方案为:一种基于FPGA的化Sh算法硬 件实现装置,其核屯、模块包括任务分配模块、化Sh单向函数模块和结果合并模块,将输入的 DATA数据由任务分配模块拆开成n个小片,分别为Xi, X2……Xn,再由化sh单向函数模块中的 n个化Sh单向函数计算,得到n个KEY值,再由结果合并模块进行结果合并计算,最后得到 DATA数据的KEY值。
[000引化Sh算法广泛用于快速查找和加密算法,化Sh算法将任意长度的二进制值映射为 较短的固定长度的二进制值,运个小的二进制值称为哈希值。哈希值是一段数据唯一且极 其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈 希都将产生不同的值。要找到散列为同一个值的两个不同的输入在计算上是不可能的,所 W数据的哈希值可W检验数据的完整性。Hash算法在快速查找应用中,它将某个数据或表 项存储的地址和它自身(表项内容或表项数据)联系起来,运样,当完成了存储,进行查找的 时候,不用进行效率很低的穷举,只要计算出其地址,进行一次操作取得地址即可。
[0009]进一步,所述的任务分配模块,将输入的数据DATA按照指定任意长度L(L=16、32、 64、256)分成11(11 = 4、8、16、32、64、128)等分后的分片数据为乂1。
[0010]进一步,所述的化Sh单向函数模块由n个化Sh单向函数组成,同时并发执行,处理 时间为正常处理时间的1/n,大大提高了处理速度。
[0011] 进一步,所述的化Sh单向函数包括下列化Sh算法服D畑ash、MD2、MD4、MD5、SHA-l、 SHA-256和SHA-512。
[0012] 进一步,所述化Sh单向函数模块的具体运算过程如下:
[0013] 1)首先配置算法,选择B邸畑ash、MD2、MD4、MD5、SHA-I、SHA-256、SHA-512 中的一 种;
[0014] 2)根据任务分配模块分配的任意长度L的分片数据Xi,经过哈希函数化Sh(Xi)运 算后,压缩为固定长度的KEYi值,KEYi值长度根据不同配置算法确定。
[001日]进一步,所述的化Sh(Xi)单向函数具有下列特性:
[0016] 1)各化Sh(Xi)单向函数没有相关性,各函数独立运算;
[0017] 2)化Sh(Xi)单向函数运算快速,单时钟周期即可得出KEYi值;
[001引 3)化Sh(Xi)单向函数的单向性,已知化Sh(Xi)单向函数的输出KEYi,求它的输入 Xi困难,即已知KEYi =化Sh (Xi ),求Xi困难;已知Xi,计算化Sh (Xi )= KEYi容易;
[0019] 4)Hash(Xi)单向函数的冲突性,二个不同的Xi值,得出同一个KEYi值是困难的;如 果选择化Sh(Xi)的长度为128位(bit)时,则任意两个分别为X1、X2的输入数据具有完全相 同的KEYi的概率为1〇-24,即近于零的重复概率;
[0020] 5)输入Xi数据没有长度限制,对输入任何长度的Xi数据能够生成该输入数据固定 长度KEY的输出。
[0021] 本发明具有W下的有益效果:本发明主要是基于FPGA实现化Sh算法,分片同时并 发执行运算,速度比纯软件加快几十倍,实现了大数据的快速查找和敏感数据快速加密。
【附图说明】
[0022] 图1为本发明的原理示意图。
【具体实施方式】
[0023] 下面结合说明书附图和【具体实施方式】对本发明作进一步说明。
[0024] 如图所示的基于FPGA的化Sh算法硬件实现装置,其包括任务分配模块、化Sh单向 函数模块和结果合并模块,将输入的DATA数据由任务分配模块拆开成n个小片,分别为Xl, X2……Xn,再由化Sh单向函数模块中的n个化Sh单向函数计算,得到n个KEY值,再由结果合 并模块进行结果合并计算,最后得到DATA数据的KEY值。
[0025] 本发明基于FPGA的化Sh算法硬件实现装置的工作过程如下,并进行了对比测试。
[0026] 1、确定DATA数据为2G大小,n为64;
[0027] 2、选择 MD5、SHA-I、SHA-256 和 SHA-512的HA 甜算法作为测试;
[00%] 3、用本发明基于FPGA的化Sh算法硬件实现装置分别实现步骤2的算法;
[00巧]4、用系统是window 7硬件配置CPU: Intel i7@4.OG RAM:8G皿:IT分别实现步骤2 的算法进行比较。
[0030] 表1:各种化sh算法的测试对比结果如下: 「00311
【主权项】
1. 一种基于FPGA的Hash算法硬件实现装置,其核心模块包括任务分配模块、Hash单向 函数模块和结果合并模块,其特征在于:将输入的DATA数据由任务分配模块拆开成η个小 片,分别为Χι,Χ2......Xn,再由Hash单向函数模块中的η个Hash单向函数计算,得到η个KEY值, 再由结果合并模块进行结果合并计算,最后得到DATA数据的KEY值。2. 根据权利要求1所述的基于FPGA的Hash算法硬件实现装置,其特征在于,所述的任务 分配模块,将输入的数据DATA按照指定任意长度L分成η等分后的分片数据为Xi。3. 根据权利要求1所述的基于FPGA的Hash算法硬件实现装置,其特征在于,所述的Hash 单向函数模块由η个Hash单向函数组成,同时并发执行,处理时间为正常处理时间的1/n。4. 根据权利要求1所述的基于FPGA的Hash算法硬件实现装置,其特征在于,所述的Hash 单向函数包括下列 Hash 算法 BKDRHash、MD2、MD4、MD5、SHA-1、SHA-256 和 SHA-512。5. 根据权利要求1所述的基于FPGA的Hash算法硬件实现装置,其特征在于,所述Hash单 向函数模块的具体运算过程如下: 1) 首先配置算法,选择 BKDRHash、MD2、MD4、MD5、SHA-1、SHA-256、SHA-512 中的一种; 2) 根据任务分配模块分配的任意长度L的分片数据Xi,经过Hash(Xi)单向函数运算后, 压缩为固定长度的KEh值,KEh值长度根据不同配置算法确定。6. 根据权利要求5所述的基于FPGA的Hash算法硬件实现装置,其特征在于,所述的Hash (Xi)单向函数具有下列特性: 1) 各Hash(Xi)单向函数没有相关性,各函数独立运算; 2. Hash (Xi)单向函数运算快速,单时钟周期即可得出KEYi值; 3. Hash(Xi)单向函数的单向性; 4. Hash(Xi)单向函数的冲突性; 5) 输入Xi数据没有长度限制,对输入任何长度的Xi数据能够生成该输入数据固定长度 KEY的输出。
【文档编号】H04L9/06GK105827394SQ201610136436
【公开日】2016年8月3日
【申请日】2016年3月10日
【发明人】胡东, 包兴刚
【申请人】浙江亿邦通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1