一種基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置的制造方法
【專利摘要】本發(fā)明公開了一種基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置。目前業(yè)內(nèi)HASH算法基本上都是基于純軟件實(shí)現(xiàn),導(dǎo)致Hash性能低下,尤其是在表項(xiàng)長度長,表項(xiàng)規(guī)模大的高速查表或要大的數(shù)據(jù)量需要加密的情況下,依賴純軟件實(shí)現(xiàn)幾乎不現(xiàn)實(shí)。本發(fā)明包括任務(wù)分配模塊、Hash單向函數(shù)模塊和結(jié)果合并模塊,其特征在于:將輸入的DATA數(shù)據(jù)由任務(wù)分配模塊拆開成n個(gè)小片,分別為X1,X2……Xn,再由Hash單向函數(shù)模塊中的n個(gè)Hash單向函數(shù)計(jì)算,得到n個(gè)KEY值,再由結(jié)果合并模塊進(jìn)行結(jié)果合并計(jì)算,最后得到DATA數(shù)據(jù)的KEY值。本發(fā)明主要是基于FPGA實(shí)現(xiàn)Hash算法,分片同時(shí)并發(fā)執(zhí)行運(yùn)算,速度比純軟件加快幾十倍。
【專利說明】
-種基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及信息安全領(lǐng)域中加密算法和大容量的數(shù)據(jù)查找,具體地說是一種基于 FPGA的化Sh算法硬件實(shí)現(xiàn)裝置。
【背景技術(shù)】
[0002] 隨著近來互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計(jì)算W及其他信息技術(shù)的迅速發(fā)展,信息數(shù)據(jù)都呈現(xiàn) 迅猛增長。例如,阿里己己服務(wù)器上已擁有超過IOOPB的數(shù)據(jù)量(1PB=1024TB)。大數(shù)據(jù)在科 學(xué)、金融、氣象、醫(yī)療、環(huán)保、教育、軍事、交通等領(lǐng)域都具有非常廣闊的應(yīng)用前景。因此說,大 數(shù)據(jù)已經(jīng)成為國家重要的戰(zhàn)略資源,在大數(shù)據(jù)中如何快速查找有用的信息已經(jīng)成為學(xué)術(shù)界 和工業(yè)界高度關(guān)注的熱點(diǎn)。
[0003] 近日來,隨著互聯(lián)網(wǎng)金融在金融領(lǐng)域的廣泛應(yīng)用引起了人們的關(guān)注,越來越多的 人加入到移動(dòng)支付的行列,如微信支付、支付寶、網(wǎng)上銀行等。與此同時(shí),移動(dòng)支付業(yè)務(wù)也面 臨著與W往的傳統(tǒng)銀行卡支付、互聯(lián)網(wǎng)支付完全不同的支付環(huán)境,各種針對(duì)移動(dòng)支付的新 型安全威脅逐步展現(xiàn),對(duì)交互的數(shù)據(jù)加密尤為重要。
[0004] 另外,企業(yè)面對(duì)的信息安全問題正在變得復(fù)雜化。從便攜式設(shè)備到可移動(dòng)存儲(chǔ)、再 到基于W邸的協(xié)作應(yīng)用,乃至基于IP的語音技術(shù),每一類新產(chǎn)品都有新的安全問題與之相伴 而生,對(duì)數(shù)據(jù)的加密必不可少。
[0005] 目前業(yè)內(nèi)化Sh算法基本上都是基于純軟件實(shí)現(xiàn),導(dǎo)致化Sh性能低下,尤其是在表 項(xiàng)長度長,表項(xiàng)規(guī)模大的高速查表或要大的數(shù)據(jù)量需要加密的情況下,依賴純軟件實(shí)現(xiàn)幾 乎不現(xiàn)實(shí)。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)存在的缺陷,提供一種基于FPGA的 化Sh算法硬件實(shí)現(xiàn)裝置,其針對(duì)大數(shù)據(jù)的快速查找和敏感數(shù)據(jù)快速加密。
[0007] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:一種基于FPGA的化Sh算法硬 件實(shí)現(xiàn)裝置,其核屯、模塊包括任務(wù)分配模塊、化Sh單向函數(shù)模塊和結(jié)果合并模塊,將輸入的 DATA數(shù)據(jù)由任務(wù)分配模塊拆開成n個(gè)小片,分別為Xi, X2……Xn,再由化sh單向函數(shù)模塊中的 n個(gè)化Sh單向函數(shù)計(jì)算,得到n個(gè)KEY值,再由結(jié)果合并模塊進(jìn)行結(jié)果合并計(jì)算,最后得到 DATA數(shù)據(jù)的KEY值。
[000引化Sh算法廣泛用于快速查找和加密算法,化Sh算法將任意長度的二進(jìn)制值映射為 較短的固定長度的二進(jìn)制值,運(yùn)個(gè)小的二進(jìn)制值稱為哈希值。哈希值是一段數(shù)據(jù)唯一且極 其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的哈 希都將產(chǎn)生不同的值。要找到散列為同一個(gè)值的兩個(gè)不同的輸入在計(jì)算上是不可能的,所 W數(shù)據(jù)的哈希值可W檢驗(yàn)數(shù)據(jù)的完整性。Hash算法在快速查找應(yīng)用中,它將某個(gè)數(shù)據(jù)或表 項(xiàng)存儲(chǔ)的地址和它自身(表項(xiàng)內(nèi)容或表項(xiàng)數(shù)據(jù))聯(lián)系起來,運(yùn)樣,當(dāng)完成了存儲(chǔ),進(jìn)行查找的 時(shí)候,不用進(jìn)行效率很低的窮舉,只要計(jì)算出其地址,進(jìn)行一次操作取得地址即可。
[0009]進(jìn)一步,所述的任務(wù)分配模塊,將輸入的數(shù)據(jù)DATA按照指定任意長度L(L=16、32、 64、256)分成11(11 = 4、8、16、32、64、128)等分后的分片數(shù)據(jù)為乂1。
[0010]進(jìn)一步,所述的化Sh單向函數(shù)模塊由n個(gè)化Sh單向函數(shù)組成,同時(shí)并發(fā)執(zhí)行,處理 時(shí)間為正常處理時(shí)間的1/n,大大提高了處理速度。
[0011] 進(jìn)一步,所述的化Sh單向函數(shù)包括下列化Sh算法服D畑ash、MD2、MD4、MD5、SHA-l、 SHA-256和SHA-512。
[0012] 進(jìn)一步,所述化Sh單向函數(shù)模塊的具體運(yùn)算過程如下:
[0013] 1)首先配置算法,選擇B邸畑ash、MD2、MD4、MD5、SHA-I、SHA-256、SHA-512 中的一 種;
[0014] 2)根據(jù)任務(wù)分配模塊分配的任意長度L的分片數(shù)據(jù)Xi,經(jīng)過哈希函數(shù)化Sh(Xi)運(yùn) 算后,壓縮為固定長度的KEYi值,KEYi值長度根據(jù)不同配置算法確定。
[001日]進(jìn)一步,所述的化Sh(Xi)單向函數(shù)具有下列特性:
[0016] 1)各化Sh(Xi)單向函數(shù)沒有相關(guān)性,各函數(shù)獨(dú)立運(yùn)算;
[0017] 2)化Sh(Xi)單向函數(shù)運(yùn)算快速,單時(shí)鐘周期即可得出KEYi值;
[001引 3)化Sh(Xi)單向函數(shù)的單向性,已知化Sh(Xi)單向函數(shù)的輸出KEYi,求它的輸入 Xi困難,即已知KEYi =化Sh (Xi ),求Xi困難;已知Xi,計(jì)算化Sh (Xi )= KEYi容易;
[0019] 4)Hash(Xi)單向函數(shù)的沖突性,二個(gè)不同的Xi值,得出同一個(gè)KEYi值是困難的;如 果選擇化Sh(Xi)的長度為128位(bit)時(shí),則任意兩個(gè)分別為X1、X2的輸入數(shù)據(jù)具有完全相 同的KEYi的概率為1〇-24,即近于零的重復(fù)概率;
[0020] 5)輸入Xi數(shù)據(jù)沒有長度限制,對(duì)輸入任何長度的Xi數(shù)據(jù)能夠生成該輸入數(shù)據(jù)固定 長度KEY的輸出。
[0021] 本發(fā)明具有W下的有益效果:本發(fā)明主要是基于FPGA實(shí)現(xiàn)化Sh算法,分片同時(shí)并 發(fā)執(zhí)行運(yùn)算,速度比純軟件加快幾十倍,實(shí)現(xiàn)了大數(shù)據(jù)的快速查找和敏感數(shù)據(jù)快速加密。
【附圖說明】
[0022] 圖1為本發(fā)明的原理示意圖。
【具體實(shí)施方式】
[0023] 下面結(jié)合說明書附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步說明。
[0024] 如圖所示的基于FPGA的化Sh算法硬件實(shí)現(xiàn)裝置,其包括任務(wù)分配模塊、化Sh單向 函數(shù)模塊和結(jié)果合并模塊,將輸入的DATA數(shù)據(jù)由任務(wù)分配模塊拆開成n個(gè)小片,分別為Xl, X2……Xn,再由化Sh單向函數(shù)模塊中的n個(gè)化Sh單向函數(shù)計(jì)算,得到n個(gè)KEY值,再由結(jié)果合 并模塊進(jìn)行結(jié)果合并計(jì)算,最后得到DATA數(shù)據(jù)的KEY值。
[0025] 本發(fā)明基于FPGA的化Sh算法硬件實(shí)現(xiàn)裝置的工作過程如下,并進(jìn)行了對(duì)比測(cè)試。
[0026] 1、確定DATA數(shù)據(jù)為2G大小,n為64;
[0027] 2、選擇 MD5、SHA-I、SHA-256 和 SHA-512的HA 甜算法作為測(cè)試;
[00%] 3、用本發(fā)明基于FPGA的化Sh算法硬件實(shí)現(xiàn)裝置分別實(shí)現(xiàn)步驟2的算法;
[00巧]4、用系統(tǒng)是window 7硬件配置CPU: Intel i7@4.OG RAM:8G皿:IT分別實(shí)現(xiàn)步驟2 的算法進(jìn)行比較。
[0030] 表1:各種化sh算法的測(cè)試對(duì)比結(jié)果如下: 「00311
【主權(quán)項(xiàng)】
1. 一種基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置,其核心模塊包括任務(wù)分配模塊、Hash單向 函數(shù)模塊和結(jié)果合并模塊,其特征在于:將輸入的DATA數(shù)據(jù)由任務(wù)分配模塊拆開成η個(gè)小 片,分別為Χι,Χ2......Xn,再由Hash單向函數(shù)模塊中的η個(gè)Hash單向函數(shù)計(jì)算,得到η個(gè)KEY值, 再由結(jié)果合并模塊進(jìn)行結(jié)果合并計(jì)算,最后得到DATA數(shù)據(jù)的KEY值。2. 根據(jù)權(quán)利要求1所述的基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置,其特征在于,所述的任務(wù) 分配模塊,將輸入的數(shù)據(jù)DATA按照指定任意長度L分成η等分后的分片數(shù)據(jù)為Xi。3. 根據(jù)權(quán)利要求1所述的基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置,其特征在于,所述的Hash 單向函數(shù)模塊由η個(gè)Hash單向函數(shù)組成,同時(shí)并發(fā)執(zhí)行,處理時(shí)間為正常處理時(shí)間的1/n。4. 根據(jù)權(quán)利要求1所述的基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置,其特征在于,所述的Hash 單向函數(shù)包括下列 Hash 算法 BKDRHash、MD2、MD4、MD5、SHA-1、SHA-256 和 SHA-512。5. 根據(jù)權(quán)利要求1所述的基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置,其特征在于,所述Hash單 向函數(shù)模塊的具體運(yùn)算過程如下: 1) 首先配置算法,選擇 BKDRHash、MD2、MD4、MD5、SHA-1、SHA-256、SHA-512 中的一種; 2) 根據(jù)任務(wù)分配模塊分配的任意長度L的分片數(shù)據(jù)Xi,經(jīng)過Hash(Xi)單向函數(shù)運(yùn)算后, 壓縮為固定長度的KEh值,KEh值長度根據(jù)不同配置算法確定。6. 根據(jù)權(quán)利要求5所述的基于FPGA的Hash算法硬件實(shí)現(xiàn)裝置,其特征在于,所述的Hash (Xi)單向函數(shù)具有下列特性: 1) 各Hash(Xi)單向函數(shù)沒有相關(guān)性,各函數(shù)獨(dú)立運(yùn)算; 2. Hash (Xi)單向函數(shù)運(yùn)算快速,單時(shí)鐘周期即可得出KEYi值; 3. Hash(Xi)單向函數(shù)的單向性; 4. Hash(Xi)單向函數(shù)的沖突性; 5) 輸入Xi數(shù)據(jù)沒有長度限制,對(duì)輸入任何長度的Xi數(shù)據(jù)能夠生成該輸入數(shù)據(jù)固定長度 KEY的輸出。
【文檔編號(hào)】H04L9/06GK105827394SQ201610136436
【公開日】2016年8月3日
【申請(qǐng)日】2016年3月10日
【發(fā)明人】胡東, 包興剛
【申請(qǐng)人】浙江億邦通信科技股份有限公司