1. <rt id="e600n"></rt>
      1. <pre id="e600n"><strong id="e600n"><pre id="e600n"></pre></strong></pre>
      2. 岛国免费AV,无码人妻精品一区二区三区夜夜嗨,又大又粗又硬又爽黄毛少妇,精品国产AV二区,91视频最新网址,久操无码,久久无码人妻一区二区三区午夜,国产精品视频中文字幕

        一種基于FPGA的哈希算法數(shù)據(jù)填充IP核的制作方法

        文檔序號(hào):45766377發(fā)布日期:2026-06-10 01:07閱讀:4來(lái)源:國(guó)知局

        本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種基于fpga的哈希算法數(shù)據(jù)填充ip核。


        背景技術(shù):

        1、哈希算法(hash?algorithm)是一種將任意長(zhǎng)度的輸入數(shù)據(jù)(通常稱(chēng)為消息)通過(guò)一個(gè)哈希函數(shù)轉(zhuǎn)換為固定長(zhǎng)度的輸出數(shù)據(jù)(哈希值或散列值)的算法。哈希算法在計(jì)算機(jī)科學(xué)和信息安全領(lǐng)域有著廣泛的應(yīng)用,如數(shù)據(jù)校驗(yàn)、密碼存儲(chǔ)、數(shù)字簽名、數(shù)據(jù)庫(kù)索引等等。國(guó)外常見(jiàn)哈希算法主要是安全散列算法(secure?hash?algorithm,sha)為主,sha系列包含sha-1、sha-256、sha-384和sha-512,國(guó)內(nèi)的哈希算法主要是中國(guó)國(guó)家密碼管理局發(fā)布的密碼哈希算法sm3。

        2、通用哈希算法的工作流程主要包括兩大部分:數(shù)據(jù)填充和迭代壓縮兩大部分。如圖1和圖2所示,給出了數(shù)據(jù)填充的工作原理,且分組長(zhǎng)度分別為512比特和1024比特。假設(shè)消息m的長(zhǎng)度為l比特,首先將1比特“1”附加在消息的尾部,接著添加k比特“0”,最后再添加一個(gè)64位比特串,該比特串為消息長(zhǎng)度l的二進(jìn)制。其中,k應(yīng)滿足式(1-1)

        3、l?+?1?+?k?≡?448?mod?512??????????????????(1-1)

        4、k為滿足式(1-1)的最小非負(fù)整數(shù)。

        5、圖2給出了分組長(zhǎng)度為1024位比特的情況,此時(shí)最后需要添加128位比特串,且k應(yīng)滿足式(1-2)

        6、l?+?1?+?k?≡?896?mod?1024??????????????????(1-2)

        7、k為滿足式(1-2)的最小非負(fù)整數(shù)。

        8、哈希算法的迭代壓縮部分在具體實(shí)現(xiàn)上因算法而異,但其基本原理和過(guò)程是相似的。迭代壓縮是將輸入數(shù)據(jù)逐步壓縮為固定長(zhǎng)度哈希值的關(guān)鍵步驟,通常包括非線性函數(shù)、模加、異或和循環(huán)移位等操作。不同的算法主要在迭代步數(shù)、非線性函數(shù)的選擇和使用方式、以及具體操作的實(shí)現(xiàn)上有所不同。如圖3和圖4所示,展示了sm3壓縮迭代的具體過(guò)程。圖3中,給出了將經(jīng)過(guò)填充后的消息進(jìn)行擴(kuò)展,擴(kuò)展生成132個(gè)字(32比特),擴(kuò)展過(guò)程中包括循環(huán)左移、異或等操作,以增強(qiáng)消息的擴(kuò)散性和隨機(jī)性。消息擴(kuò)展為后續(xù)的壓縮過(guò)程提供輸入。圖4給出了sm3壓縮的具體過(guò)程。壓縮函數(shù)通過(guò)64輪迭代處理消息分組和中間狀態(tài)值。每一輪迭代包括:消息字的選擇,從擴(kuò)展后的消息字中選擇消息字wj和w’j;非線性變換,對(duì)中間狀態(tài)值進(jìn)行一系列非線性變換,包括異或、與、或、非等邏輯運(yùn)算和循環(huán)移位操作等,如圖4所示,ff、gg以及p0函數(shù)也是非線性變換,具體如式(1-3)、(1-4)和(1-5)所示;狀態(tài)更新,更新非線性變換的結(jié)果更新中間狀態(tài)值,最終,處理完所有分組消息,中間狀態(tài)值即為最終的哈希值。

        9、?????(1-3)

        10、????????(1-4)

        11、??????????(1-5)

        12、式中:

        13、⊕:異或運(yùn)算

        14、∧:與運(yùn)算

        15、∨:或運(yùn)算

        16、??:非運(yùn)算

        17、<<<k:循環(huán)左移k比特運(yùn)算

        18、在通用哈希算法中,數(shù)據(jù)填充部分通常保持一致,而壓縮迭代部分則因具體算法而有所不同。然而,在使用fpga實(shí)現(xiàn)這些算法時(shí),數(shù)據(jù)填充部分會(huì)面臨一些問(wèn)題。當(dāng)輸出位寬較大(例如512位或1024位)時(shí),數(shù)據(jù)填充環(huán)節(jié)會(huì)消耗大量的fpga資源,包括查找表(lookup?table,lut)和ram資源。這使得在資源受限的場(chǎng)景下,數(shù)據(jù)填充部分的實(shí)現(xiàn)變得不太適用。此外,較大的輸出位寬還會(huì)導(dǎo)致fpga在綜合時(shí)出現(xiàn)時(shí)序緊張的問(wèn)題。這些問(wèn)題限制了通用哈希算法在資源受限的fpga環(huán)境中的應(yīng)用,如何進(jìn)一步優(yōu)化或改進(jìn)以提高其適用性,是亟需解決的問(wèn)題。


        技術(shù)實(shí)現(xiàn)思路

        1、針對(duì)以上問(wèn)題,本發(fā)明提出一種基于fpga的哈希算法數(shù)據(jù)填充ip核。

        2、為實(shí)現(xiàn)本發(fā)明的目的,提供一種基于fpga的哈希算法數(shù)據(jù)填充ip核,包括:端序轉(zhuǎn)換模塊、位寬轉(zhuǎn)換模塊、消息處理模塊、拼接模塊和fifo模塊;

        3、所述端序轉(zhuǎn)換模塊用于:對(duì)輸入所述端序轉(zhuǎn)換模塊的數(shù)據(jù)進(jìn)行端序轉(zhuǎn)換;

        4、所述位寬轉(zhuǎn)換模塊用于:對(duì)輸入所述位寬轉(zhuǎn)換模塊的數(shù)據(jù)進(jìn)行大位寬轉(zhuǎn)小位寬,或者小位寬轉(zhuǎn)大位寬的操作;

        5、所述消息處理模塊用于:對(duì)輸入所述消息處理模塊的數(shù)據(jù)進(jìn)行字節(jié)統(tǒng)計(jì),并基于字節(jié)統(tǒng)計(jì)的結(jié)果和預(yù)設(shè)的分組模式對(duì)所述輸入消息處理模塊的數(shù)據(jù)的最后一拍進(jìn)行填充操作;

        6、所述拼接模塊用于:將輸入所述拼接模塊的數(shù)據(jù)拼接成預(yù)設(shè)的位寬;

        7、所述端序轉(zhuǎn)換模塊接受用戶(hù)輸入數(shù)據(jù),并對(duì)其進(jìn)行端序轉(zhuǎn)換操作,再將端序轉(zhuǎn)換后的所述用戶(hù)輸入數(shù)據(jù)存入所述fifo模塊;所述位寬轉(zhuǎn)換模塊從所述fifo模塊中讀取端序轉(zhuǎn)換后的所述用戶(hù)輸入數(shù)據(jù),并對(duì)其進(jìn)行位寬轉(zhuǎn)換,再將位寬轉(zhuǎn)換后的所述用戶(hù)輸入數(shù)據(jù)存入所述fifo模塊;所述消息處理模塊從所述fifo模塊中讀取位寬轉(zhuǎn)換后的所述用戶(hù)輸入數(shù)據(jù),并對(duì)位寬轉(zhuǎn)換后的所述用戶(hù)輸入數(shù)據(jù)的最后一拍數(shù)據(jù)進(jìn)行填充操作,再將填充操作后的所述用戶(hù)輸入數(shù)據(jù)存入所述fifo模塊;所述拼接模塊從所述fifo模塊中讀取填充操作后的所述用戶(hù)輸入數(shù)據(jù),并對(duì)其進(jìn)行拼接操作,再將拼接操作后的所述用戶(hù)輸入數(shù)據(jù)存入所述fifo模塊。

        8、進(jìn)一步地,所述位寬轉(zhuǎn)換模塊包括:第一寄存器模塊;所述第一寄存器模塊用于:對(duì)輸入所述位寬轉(zhuǎn)換模塊的數(shù)據(jù)進(jìn)行小位寬轉(zhuǎn)大位寬時(shí),緩存臨時(shí)數(shù)據(jù);

        9、所述拼接模塊包括:第二寄存器模塊;所述第二寄存器模塊用于:對(duì)輸入所述拼接模塊的數(shù)據(jù)進(jìn)行拼接時(shí),緩存臨時(shí)數(shù)據(jù)。

        10、進(jìn)一步地,所述端序轉(zhuǎn)換模塊包括:第一輸入位寬設(shè)置參數(shù)和輸入數(shù)據(jù)端序標(biāo)識(shí)參數(shù);

        11、所述第一輸入位寬設(shè)置參數(shù)用于:基于所述輸入端序轉(zhuǎn)換模塊的數(shù)據(jù),設(shè)置輸入所述端序轉(zhuǎn)換模塊數(shù)據(jù)的位寬;

        12、所述輸入數(shù)據(jù)端序標(biāo)識(shí)參數(shù)用于:基于所述輸入端序轉(zhuǎn)換模塊的數(shù)據(jù),設(shè)置輸入所述端序轉(zhuǎn)換模塊數(shù)據(jù)的端序格式。

        13、進(jìn)一步地,所述位寬轉(zhuǎn)換模塊還包括:第二輸入位寬設(shè)置參數(shù)和第一輸出位寬設(shè)置參數(shù);

        14、所述第二輸入位寬設(shè)置參數(shù)用于:設(shè)置輸入所述位寬轉(zhuǎn)換模塊數(shù)據(jù)的位寬;

        15、所述第一輸出位寬設(shè)置參數(shù)用于:設(shè)置輸出所述位寬轉(zhuǎn)換模塊數(shù)據(jù)的位寬。

        16、進(jìn)一步地,所述消息處理模塊包括兩種字節(jié)模式:512字節(jié)模式和1024字節(jié)模式。

        17、所述消息處理模塊的輸入位寬和輸出位寬均為:64位寬。

        18、進(jìn)一步地,所述拼接模塊包括兩種分組模式:512位模式和1024位模式。

        19、進(jìn)一步地,對(duì)輸入所述位寬轉(zhuǎn)換模塊的數(shù)據(jù)進(jìn)行大位寬轉(zhuǎn)小位寬的具體過(guò)程包括:所述位寬轉(zhuǎn)換模塊將大位寬數(shù)據(jù)轉(zhuǎn)換為若干小位寬數(shù)據(jù);所述位寬轉(zhuǎn)換模塊將所述若干小位寬數(shù)據(jù)一一傳入所述fifo模塊;

        20、對(duì)輸入所述位寬轉(zhuǎn)換模塊的數(shù)據(jù)進(jìn)行小位寬轉(zhuǎn)大位寬的具體過(guò)程包括:所述位寬轉(zhuǎn)換模塊將若干所述小位寬數(shù)據(jù)一一存入所述第一寄存器模塊;所述位寬轉(zhuǎn)換模塊將所述第一寄存器模塊內(nèi)的若干所述小位寬數(shù)據(jù)拼接成所述大位寬數(shù)據(jù),再將所述大位寬數(shù)據(jù)存入所述fifo模塊。

        21、進(jìn)一步地,將輸入所述拼接模塊的數(shù)據(jù)拼接成預(yù)設(shè)的位寬的具體過(guò)程包括:所述拼接模塊將若干輸入所述拼接模塊的數(shù)據(jù)一一存入所述第二寄存器模塊;所述拼接模塊基于預(yù)設(shè)的所述分組模式,對(duì)若干存入所述第二寄存器模塊的數(shù)據(jù)進(jìn)行拼接操作,并得到對(duì)應(yīng)位寬的數(shù)據(jù);所述拼接模塊將所述對(duì)應(yīng)位寬的數(shù)據(jù)存入所述fifo模塊。

        22、進(jìn)一步地,各模塊之間采用axi4流接口作為數(shù)據(jù)傳輸接口。

        23、跟現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益的技術(shù)效果:

        24、本發(fā)明采用了分散式控制架構(gòu),與傳統(tǒng)的集中式控制相比,分散式控制能夠?qū)⑷蝿?wù)分配到多個(gè)模塊中,每個(gè)模塊獨(dú)立運(yùn)行,從而顯著提高了系統(tǒng)的靈活性和可擴(kuò)展性。這種架構(gòu)使得系統(tǒng)能夠根據(jù)實(shí)際需求動(dòng)態(tài)調(diào)整各模塊的工作狀態(tài),減少了對(duì)全局資源的依賴(lài),同時(shí)也降低了系統(tǒng)復(fù)雜度和故障風(fēng)險(xiǎn)。其次,本發(fā)明采用了參數(shù)化設(shè)計(jì),極大地增強(qiáng)了系統(tǒng)的通用性和用戶(hù)友好性。用戶(hù)可以根據(jù)自身需求靈活選擇輸入位寬、端序(大端序或小端序)以及數(shù)據(jù)分組模式(512或1024)。這種參數(shù)化設(shè)計(jì)不僅滿足了不同應(yīng)用場(chǎng)景下的多樣化需求,還簡(jiǎn)化了系統(tǒng)配置和開(kāi)發(fā)流程,提高了開(kāi)發(fā)效率。用戶(hù)無(wú)需對(duì)硬件進(jìn)行大規(guī)模修改,只需通過(guò)簡(jiǎn)單的參數(shù)設(shè)置即可實(shí)現(xiàn)定制化功能,降低了開(kāi)發(fā)成本和時(shí)間。在數(shù)據(jù)處理方面,本發(fā)明采用了分割處理的策略,即將數(shù)據(jù)先進(jìn)行分割處理,再進(jìn)行拼接。這種設(shè)計(jì)的核心在于直接利用寄存器完成數(shù)據(jù)拼接,而不是依賴(lài)傳統(tǒng)的fifo緩存。通過(guò)這種方式,本發(fā)明避免了fifo帶來(lái)的額外資源開(kāi)銷(xiāo),顯著減少了硬件資源的占用。同時(shí),寄存器的使用保證了數(shù)據(jù)拼接的高效性和準(zhǔn)確性,能夠快速完成數(shù)據(jù)的存儲(chǔ)和讀取操作。這種設(shè)計(jì)特別適用于資源受限的場(chǎng)景,如在fpga等硬件資源有限的平臺(tái)上,能夠有效優(yōu)化資源利用率,提高系統(tǒng)的整體性能。

        當(dāng)前第1頁(yè)1 2 
        網(wǎng)友詢(xún)問(wèn)留言 留言:0條
        • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
        主站蜘蛛池模板: 高清欧美性猛交xxxx黑人猛交| 丝袜无码一区二区三区| 欧美日韩国产码高清| 亚洲高清国产成人精品久久| 无码1245| 欧美人成在线播放网站免费| av无码人妻中文字幕| 中文字幕人妻无码一区二区三区| 一二三四中文字幕日韩乱码| 国偷自产av一区二区三区| 精品成人一区二区三区电影| 中文字幕日韩wm二在线看| 日韩精品中文字一区二区| 伊人久久中文字幕| 天天日天天骚| 久久久亚洲欧洲日产国码AⅤ| 口爆少妇在线视频免费观看| 精品偷拍一区二区三区| 亚洲羞羞| 国产全肉乱妇杂乱视频| 亚洲AV无码一二区三区在线播放| 欧美成人国产精品高潮| 国产丝袜AV| 久久精品免视看国产成人| 免费可以在线看a∨网站| 岛国av一区二区精品| 久久久精品人妻一区二区三区四| 丁香五月综合网| 国产精品伦人视频免费看| 中文字幕欧美人妻精品| 少妇上班人妻精品偷人| 日韩亚洲精品国产第二页| 国产精品伦子伦免费视频| 99国产精品无码| 亚洲Av三区| 巨胸喷奶水WWW视频网站| 国产成人综合久久av| 国产性生大片免费观看性| 国产精品色三级在线观看| 超碰人妻97| 欧美巨大巨粗黑人性aaaaaa|