国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于延遲發(fā)生器的散列方法

      文檔序號:10538505閱讀:509來源:國知局
      一種基于延遲發(fā)生器的散列方法
      【專利摘要】本發(fā)明公開了一種基于反饋步進延遲發(fā)生器的消息散列方法,消息散列過程由消息填充、消息注入、消息混淆和消息輸出4個階段組成。在消息注入、消息混淆和消息輸出均采用輪函數對數據進行處理。輪函數交替采用基于線性反饋函數的m?序列延遲發(fā)生器,對消息進行反饋步進、循環(huán)移位等處理,快速獲得可變長、抗碰撞的消息散列值。本發(fā)明可獲得任意長度的消息散列值,具有較高的線性復雜度,算法結構簡單,易于硬件實現。
      【專利說明】
      一種基于延遲發(fā)生器的散列方法
      技術領域
      [0001] 本發(fā)明屬于信息加密領域,特別涉及一種基于延遲發(fā)生器的消息散列方法。
      【背景技術】
      [0002] 數據完整性是數據安全的一個重要方面。散列技術是保護數據完整性的關鍵技 術。目前國際上通用的數據散列技術如MD5、SHA-1、RIPEMD等主要基于MD4算法,采用壓縮函 數對固定長度的數據分組進行多輪壓縮處理,獲得定長的散列值。但近幾年來,上述國際標 準的數據散列方案已被中國密碼學家破解,其可用性面臨嚴峻的挑戰(zhàn)。
      [0003]線性反饋移位寄存器由串聯的η個二元寄存器及1個反饋函數網絡構成。每一時刻 移位寄存器的狀態(tài)作為反饋函數的輸入,其輸出反饋至第一級移位寄存器以形成下一時刻 的狀態(tài),移位寄存器的功能由它的狀態(tài)轉移變換來確定,而它的狀態(tài)轉移變換又完全由反 饋布爾函數來決定。延遲發(fā)生器是一類基于本原多項式線性反饋的移位寄存器,通過對一 組延遲發(fā)生器進行組合,可以大大提高系統的線性復雜度,有效防范各種密碼分析和惡意 攻擊。

      【發(fā)明內容】

      [0004] 本發(fā)明的主要目的在于克服現有技術的缺點與不足,提供一種新的消息散列方 案,其能夠基于延遲發(fā)生器對消息進行單向散列處理,以保證數據的完整性和可鑒別性,且 具有實現簡單、處理速度快的優(yōu)點。
      [0005] 為了達到上述目的,本發(fā)明采用以下技術方案:
      [0006] 本發(fā)明一種基于延遲發(fā)生器的散列方法,消息散列過程由消息填充、消息注入、消 息混淆和消息輸出4個階段組成,具體包括下述步驟:
      [0007] S1、對待處理消息序列進行消息填充,并交替采用基于線性反饋函數的延遲發(fā)生 器構造一個輪函數;
      [0008] S2、分別將輪函數應用于消息注入階段、消息混淆階段和消息輸出階段,對消息進 行反饋步進、循環(huán)移位處理,快速獲得可變長、抗碰撞的消息散列值。
      [0009] 作為優(yōu)選的技術方案,步驟S1中,所述消息填充的方法是將待處理消息序列填充 至16的倍數字長,即512位的倍數長,具體方法是:如果消息序列長度等于16的倍數,不需要 添加;否則先添加一個1,然后填充若干個〇,使得整個消息串是16的倍數字長。
      [0010] 作為優(yōu)選的技術方案,在步驟S2中,消息注入的方法為如下的多輪迭代:
      [0011] for i = 0to np-l
      [0012]
      [0013] S-R(S)
      [0014] 其中S為狀態(tài)值,存儲中間過程數據,每個狀態(tài)為512位,每一個狀態(tài)的初值皆為0; FI為注入函數;R為輪變換函數;迭代輪數nP為填充后的消息字序列長度除以16。
      [0015] 作為優(yōu)選的技術方案,所述注入函數FI采用線性反饋變換,即使用基于線性反饋 函數 Xi = Xi-11+Xi-13+Xi-14+Xi-16 的延遲發(fā)生器將消息字序列{pi6i,pi6i+l,Pl6i+2,…,pi6i+15}反 饋步進16次。
      [0016] 作為優(yōu)選的技術方案,在注入階段第i輪中,對消息字序列{Pl6l,Pl6l+1,Pl6l+2,…, p16l+15}使用注入函數FI進行處理后,將反饋步進16次后所得16字長消息字序列與狀態(tài)S進 行逐位異或后存為狀態(tài)S。
      [0017] 作為優(yōu)選的技術方案,在步驟S2中,所述消息混淆階段采用輪函數R對前面生成的 狀態(tài)S進一步進行nb輪變換:
      [0018] for i = 0to nb-l:S-R(S)
      [0019] 典型地,nb取值16。
      [0020] 作為優(yōu)選的技術方案,在步驟S2中,所述消息輸出階段輸出n。個字長的消息散列 值,過程如下:
      [0021] for i = 0to n〇:
      [0022] ① S-R(S)
      [0023] ②取每一輪狀態(tài)S的第1個字構成加入散列值序列;
      [0024]其中R為輪變換函數。
      [0025]作為優(yōu)選的技術方案,步驟S1中,所述輪函數R由如下三步構成:
      [0026]①首先為線性反饋變換:采用基于線性反饋函數Xi = Xi-1Q+Xi-12+Xi-15+Xi-16的延遲 發(fā)生器對上一步運算所得狀態(tài)S進行反饋步進16次,所得序列仍存為狀態(tài)S;
      [0027]②其次是循環(huán)移位變換:對狀態(tài)S = {χο,χ?,χ2,…,Χ14,χ15}中每一個字,按旋轉變 換Xi = :xi>>> (i (i+1 )/2mod 32)進行按位循環(huán)移位,仍存為狀態(tài)S;
      [0028]③再次為線性反饋變換:采用基于線性反饋函數Xi = Xi-8+Xi-9+Xi-11+Xi-16的延遲發(fā) 生器將S= {χ〇,:Χ1,Χ2,…,X14,X15}反饋步進16次,序列后仍存為狀態(tài)S。
      [0029] 本發(fā)明與現有技術相比,具有如下優(yōu)點和有益效果:
      [0030] 1、本發(fā)明采用線性反饋延遲發(fā)生器構造散列方案,執(zhí)行效率、安全性能和硬件實 行性能優(yōu)于采用傳統方法構造的散列方案。
      [0031] 2、本發(fā)明中采用基于m-序列的延遲發(fā)生器組合用于輪函數,具有良好的偽隨機 型、較高的線性復雜度等特性,算法結構簡單,易于硬件實現。
      [0032] 3、本發(fā)明可以根據需要生成任意32位之倍數長度的消息散列值。
      【附圖說明】
      [0033]圖1是本發(fā)明的系統流程圖。
      [0034]圖2是本發(fā)明的線性反饋變換1示意圖。
      [0035]圖3是本發(fā)明的輪變換結構圖。
      [0036] 圖4是本發(fā)明的線性反饋變換2示意圖。
      [0037] 圖5是本發(fā)明的的循環(huán)移位變換示意圖。
      [0038] 圖6是本發(fā)明的線性反饋變換3示意圖。
      【具體實施方式】
      [0039]下面結合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限 于此。
      [0040] 實施例
      [0041] 鑒于目前多數手機設備、PDA和智能卡等為32位處理器,本實施實例假設每一消息 字為32位。
      [0042] 本發(fā)明實施過程包括消息填充、消息注入、消息混淆和散列值輸出4個階段。本發(fā) 明執(zhí)行流程如附圖1所示。
      [0043] 1、消息填充階段
      [0044] 消息填充方案將待處理消息序列填充至16的倍數字長,亦即512位的倍數長。例如 對長度為1000個字的消息串,需要填充至1008個字。
      [0045] 填充方法是:如果消息序列長度等于16的倍數,不需進行填充;否則先添加一個位 1,然后填充若干個位〇,使得整個消息串是16的倍數字長,亦即消息數據位長為512的整數 倍。例如對長度為1000個字的消息串,需要填充10000000000000000000000000000000、 00000000000000000000000000000000、00000000000000000000000000000000、 00000000000000000000000000000000、00000000000000000000000000000000、 00000000000000000000000000000000、00000000000000000000000000000000、 00000000000000000000000000000000 等 8 個字。
      [0046] 經過填充后的消息序列為{列,戶1,戶2,···,;%*]6-1 },其中nP為512位明文數據塊的 數量。
      [0047] 上面1000個字的消息序列,填充后長1008個字,共nP = 63個數據塊。
      [0048] 2、消息注入階段
      [0049] 在散列運算過程中,中間運算的每個512位(即16個32位字)稱為一個狀態(tài),記為S =S= {χο,χ?,X2,…,X14,X15},每 一Xi 為一個 32 位字。
      [0050] 對于個消息注入方案為如下的多輪迭代:
      [0051] for i = 0to nn-l
      [0052]
      [0053] S-R(S)
      [0054] 其中S為存儲散列處理中間過程數據的狀態(tài)值,每個狀態(tài)為512位(或16個32位 字),每一個狀態(tài)的初值皆為0; FI為注入函數;R為輪變換函數;迭代輪數nP為填充后的消息 字長除以16。
      [0055] 其中注入函數FI采用基于線性反饋函數器Xi = Xi-ii+Xi-i3+Xi-i4+Xi-i6的延遲發(fā)生對 消息字序列{p16l,p16l+1,p16l+2,…,p16l+15}按字反饋步進16次。所采用延遲發(fā)生器的線性反 饋變換1如附圖2所示。
      [0056] 在注入階段第i輪中,對消息字序列卜^口他+^他+:^…^他仙丨使用注入函數?! 進行處理后,將反饋步進16次后所得16字長消息字序列與狀態(tài)S進行逐位進行異或運算后 存為狀態(tài)S。
      [0057] 其中輪函數R結構圖如附圖3所示。輪變換構成如下:
      [0058] ①首先,采用基于線性反饋函數Xi = Xi-lQ+Xi-12+Xi-15+Xi-16的延遲發(fā)生器對上一步 運算所得狀態(tài)S進行按字反饋步進16次,所得序列仍存為狀態(tài)S。這里所采用延遲發(fā)生器的 線性反饋變換2如附圖4所示。
      [0059] ②其次,對狀態(tài)S= { XQ,XI,X2,…,X14,X15 }中每一個字,按循環(huán)移位變換Xi = Xi>>> (i(i+l)/2mod 32)進行按位循環(huán)移位,仍存為狀態(tài)S。循環(huán)移位變換如附圖5所示。
      [0000]③再次,采用基于線性反饋函數Xi = Xi-8+Xi-9+Xi-11+Xi-16的延遲發(fā)生器將S= {xo, X1,X2,…,X14,X15}線性反饋按字步進16次,仍存為狀態(tài)S。采用延遲發(fā)生器的線性反饋變換3 如附圖6所示。
      [0061] 如果有特殊的安全要求,輪函數中線性反饋步進次數可以根據需要增加,如由16 次增加至24次、32次。延遲發(fā)生器可以采用同類基于線性反饋函數的延遲發(fā)生器,如Xl = Xi-11+Xi-12+Xi-13+Xi-16 或 Xi = Xi-8+Xi-11+Xi-13+Xi-14+Xi-15+Xi-16 〇
      [0062] 3、消息混淆階段
      [0063] 采用輪函數R對前面生成的狀態(tài)進一步進行多輪變換:
      [0064] for i = 0to 15:S-R(S)
      [0065] 如果有特殊的安全要求,輪函數也可增加到24輪甚至32輪,即:
      [0066] for i = 0to 23:S^R(S)
      [0067] 或
      [0068] for i = 0to 31:S-R(S)
      [0069] 4、散列輸出階段
      [0070] 輸出階段輸出256位的消息散列值,過程如下:
      [0071 ] for i = 0to 7 :
      [0072] ① S-R(S)
      [0073] ②取每一輪狀態(tài)S的第1個字構成加入散列值序列。
      [0074]如此構造出一個256個字長的消息散列值。
      [0075]同樣,如上述循環(huán)4次可得到128位散列值,循環(huán)5次可得到160位散列值,循環(huán)6次 可得到192位散列值,循環(huán)7次可得到224位散列值,循環(huán)12次可得到384位散列值,循環(huán)η次 可構成任意的η*32位散列值。
      [0076]上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的 限制,其他的任何未背離本發(fā)明的精神實質與原理下所作的改變、修飾、替代、組合、簡化, 均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內。
      【主權項】
      1. 一種基于延遲發(fā)生器的散列方法,其特征在于,消息散列過程由消息填充、消息注 入、消息混淆和消息輸出4個階段組成,具體包括下述步驟: 51、 對待處理消息序列進行消息填充,并交替采用基于線性反饋函數的延遲發(fā)生器構 造一個輪函數; 52、 分別將輪函數應用于消息注入階段、消息混淆階段和消息輸出階段,對消息進行反 饋步進、循環(huán)移位處理,快速獲得可變長、抗碰撞的消息散列值。2. 根據權利要求1所述的基于延遲發(fā)生器的散列方法,其特征在于,步驟Sl中,所述消 息填充的方法是將待處理消息序列填充至16的倍數字長,即512位的倍數長,具體方法是: 如果消息序列長度等于16的倍數,不需要添加;否則先添加一個1,然后填充若干個0,使得 整個消息串是16的倍數字長。3. 根據權利要求1所述的基于延遲發(fā)生器的散列方法,其特征在于,在步驟S2中,消息 注入的方法為如下的多輪迭代: for i = 0 to nP-l S^R(S)其中S為狀態(tài)值,存儲中間過程數據,每個狀態(tài)為512位,每一個狀態(tài)的初值皆為0 ;FI為 注入函數;R為輪變換函數;迭代輪數如為填充后的消息字序列長度除以16。4. 根據權利要求3所述的基于延遲發(fā)生器的散列方法,其特征在于,所述注入函數FI采 用線性反饋變換,即使用基于線性反饋函數Xi = Xi-ll+Xi-13+Xi-14+Xi-16的延遲發(fā)生器將消息 字序列{pi6i,Pl6i+1,Pl6i+2,…,Pl6i+15 }反饋步進 16次。5. 根據權利要求3所述的基于延遲發(fā)生器的散列方法,其特征在于,在注入階段第i輪 中,對消息字序列{ρ16ι,ρ 16ι+1,ρ16ι+2,···,ρ16ι+15}使用注入函數FI進行處理后,將反饋步進16 次后所得16字長消息字序列與狀態(tài)S進行逐位異或后存為狀態(tài)S。6. 根據權利要求3所述的基于延遲發(fā)生器的散列方法,其特征在于,在步驟S2中,所述 消息混淆階段采用輪函數R對前面生成的狀態(tài)S進一步進行n b輪變換: for i = 0 to nb-l:S-R(S) 典型地,nb取值16。7. 根據權利要求1所述的基于延遲發(fā)生器的散列方法,其特征在于,在步驟S2中,所述 消息輸出階段輸出η。個字長的消息散列值,過程如下: for i = 0 to n〇: ① S-R(S) ② 取每一輪狀態(tài)S的第1個字構成加入散列值序列; 其中R為輪變換函數。8. 根據權利要求1所述的基于延遲發(fā)生器的散列方法,其特征在于,步驟Sl中,所述輪 函數R由如下三步構成: ① 首先為線性反饋變換:采用基于線性反饋函數Xi = Xi-lQ+Xi-12+Xi-15+Xi-16的延遲發(fā)生 器對上一步運算所得狀態(tài)S進行反饋步進16次,所得序列仍存為狀態(tài)S; ② 其次是循環(huán)移位變換:對狀態(tài)S = { XQ,Xl,X2,…,X14,X15 }中每一個字,按旋轉變換Xi = xi>>>(i (i+1 )/2mod 32)進行按位循環(huán)移位,仍存為狀態(tài)S; ③再次為線性反饋變換:采用基于線性反饋函數Xl = Xl-8+Xl-9+Xl-n+ Xl-16的延遲發(fā)生器 將5={10,11,12,"_,114,115}反饋步進16次,序列后仍存為狀態(tài)5。
      【文檔編號】H04L9/06GK105897404SQ201610374498
      【公開日】2016年8月24日
      【申請日】2016年5月30日
      【發(fā)明人】梁英宏, 劉義春
      【申請人】廣東財經大學
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1