国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于糾錯(cuò)碼的SM3改進(jìn)算法

2023-05-26 09:13:30鄭明輝喬譯萱朱小強(qiáng)
工程科學(xué)與技術(shù) 2023年3期
關(guān)鍵詞:分組碼隨機(jī)性雪崩

鄭明輝,喬譯萱,朱小強(qiáng),陳 珩

(1.湖北民族大學(xué) 智能科學(xué)與工程學(xué)院,湖北 恩施 445000;2.四川大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,四川 成都 610065)

在實(shí)際的通信過程中,數(shù)據(jù)保密性和數(shù)據(jù)完整性是傳輸數(shù)據(jù)的基本安全需求。密碼雜湊算法作為基礎(chǔ)的密碼算法之一,主要功能是提供數(shù)據(jù)的完整性檢驗(yàn),即數(shù)據(jù)經(jīng)過信道傳輸和存儲(chǔ)過程未被未授權(quán)方修改。密碼雜湊算法的實(shí)質(zhì)是將任意長度的消息序列映射成固定長度的輸出值(也稱為雜湊值)。并且無法從雜湊值反推出原本的消息序列,稱為雜湊函數(shù)的單向性?;谠撎匦?,雜湊值可以構(gòu)造“數(shù)據(jù)指紋”來進(jìn)行數(shù)據(jù)的完整性檢驗(yàn),應(yīng)用于身份認(rèn)證、密鑰推導(dǎo)、消息認(rèn)證碼、區(qū)塊鏈等場(chǎng)景。典型的密碼雜湊算法包括MD5、SHA1、SHA2、SM3等。其中,SM3算法[1]是由國家商用密碼管理辦公室于2010年公布的商用密碼標(biāo)準(zhǔn),2012年成為行業(yè)標(biāo)準(zhǔn),并于2016年成為國家標(biāo)準(zhǔn),2018年正式成為ISO/IEC國際標(biāo)準(zhǔn)[2]。北京大學(xué)密碼學(xué)研究組開發(fā)維護(hù)的密碼算法工具包OpenSSL分支GmSSL支持SM3算法[3],并在之后的正式版本中添加了SM3算法的實(shí)現(xiàn)[4]。

Merkle-Damgard(記作MD)結(jié)構(gòu)[5-6]是密碼雜湊算法的經(jīng)典迭代結(jié)構(gòu),基于該結(jié)構(gòu)所構(gòu)造的雜湊函數(shù),如果壓縮函數(shù)具有抗碰撞性,則該函數(shù)也具有抗碰撞性。SM3算法作為MD結(jié)構(gòu)的典型代表,將任意長度的數(shù)據(jù)輸入壓縮成256 bit的輸出,能夠有效抵御窮舉攻擊,同時(shí)采用消息雙字介入、P置換等方法構(gòu)造具有更高復(fù)雜性的輪函數(shù),使得對(duì)SM3算法構(gòu)造原像攻擊是比較困難的[7]。安全性方面,目前針對(duì)MD5、SHA-1、RIPEMD、HAVAL等雜湊函數(shù)已找到快速碰撞的方法[8],同時(shí)在碰撞攻擊、區(qū)分器攻擊、原像攻擊方式下,對(duì)SM3 算法的攻擊難度相比其他傳統(tǒng)算法更高[9],能夠在具有高安全性需求的應(yīng)用場(chǎng)景下進(jìn)行數(shù)據(jù)傳遞。

然而,由于MD結(jié)構(gòu)是串行結(jié)構(gòu),在效率上很難突破,同時(shí)易遭受消息擴(kuò)展攻擊及二次碰撞攻擊[10],所以研究人員開始將目光投向雜湊算法的迭代結(jié)構(gòu)。徐勁松等[11]提出基于并行擴(kuò)展算法的雜湊函數(shù),提升了算法安全強(qiáng)度,但不適合短消息的處理。Yang等[12]針對(duì)雜湊函數(shù)并行迭代結(jié)構(gòu)的局部碰撞問題提出基于混沌映射的壓縮函數(shù),增強(qiáng)了算法的抗碰撞能力和運(yùn)算效率,但由于基于格的并行迭代結(jié)構(gòu),導(dǎo)致運(yùn)算開銷沒有顯著降低。Halder等[13]利用2D-CA技術(shù)構(gòu)建雜湊函數(shù)的迭代結(jié)構(gòu),使算法的隨機(jī)性和擴(kuò)散性有所提升,但算法的輪函數(shù)定義為35輪,運(yùn)算復(fù)雜性不高。Liu等[14]構(gòu)造具有更高隨機(jī)性的3D-ECM來充當(dāng)海綿函數(shù),同時(shí)輸出指定長度的雜湊值,減輕了側(cè)信道攻擊的威脅,但由于構(gòu)造過程中增加字符轉(zhuǎn)換操作,無法保證運(yùn)算效率的提升。Todorova等[15]提出基于Zaslavsky混沌映射的雜湊算法,該算法具有更強(qiáng)的抗碰撞性,但由于迭代過程中使用較多異或操作,導(dǎo)致算法復(fù)雜性不高。王鎮(zhèn)道等[16]將MD5算法迭代過程的64步運(yùn)算設(shè)計(jì)為32級(jí)的流水線,在保持串行運(yùn)算的前提下提高了算法的運(yùn)算速度,但未曾考慮算法安全性。巫光福等[17]以MD5算法為例構(gòu)造基于線性分組碼的密碼雜湊算法,提高了密碼雜湊算法輸出值的隨機(jī)性,但產(chǎn)生的雜湊值為128 bit,抗窮舉攻擊能力較弱。

綜上所述,目前針對(duì)密碼雜湊算法迭代結(jié)構(gòu)的研究方法主要包含并行計(jì)算和混沌映射。其中:并行計(jì)算達(dá)到了提高數(shù)據(jù)運(yùn)算效率,但與串行結(jié)構(gòu)相比增大了計(jì)算復(fù)雜度;混沌映射則是通過提升初值敏感度來增強(qiáng)雜湊算法的抗碰撞性,但未考慮優(yōu)化雜湊值的比特混亂度,雜湊值混亂度的提升也是算法安全性的重要評(píng)估條件之一。針對(duì)構(gòu)建具有更高隨機(jī)性的密碼雜湊算法,本文提出基于糾錯(cuò)碼的SM3改進(jìn)算法的設(shè)計(jì)方案,選用糾錯(cuò)能力更強(qiáng)的線性分組碼并計(jì)算對(duì)應(yīng)的生成矩陣;在生成的有效碼字中選擇8個(gè)最優(yōu)碼字串聯(lián)賦值給初始寄存器,同時(shí)與每個(gè)512 bit消息分組進(jìn)行迭代壓縮運(yùn)算,所產(chǎn)生的雜湊值為256 bit,若采用蠻力攻擊,則需要執(zhí)行2256數(shù)量級(jí)的操作,保證算法的安全性。實(shí)驗(yàn)結(jié)果表明,本文算法滿足雪崩效應(yīng),并在運(yùn)算效率相近的情況下,產(chǎn)生的雜湊值隨機(jī)性更高,同時(shí)算法內(nèi)存消耗更少。

1 準(zhǔn)備知識(shí)

在數(shù)字通信過程中不可避免發(fā)生差錯(cuò),對(duì)于接收到的數(shù)據(jù)序列,糾錯(cuò)碼的主要作用是在存儲(chǔ)設(shè)備及通信中進(jìn)行糾錯(cuò)和檢錯(cuò),被廣泛用于密碼學(xué)和通信系統(tǒng)中。糾錯(cuò)碼主要分為分組碼和卷積碼。下面重點(diǎn)介紹分組碼[18]及其相關(guān)知識(shí)[19-21]。

定義1(線性分組碼)有限域GFq上 的一個(gè)(n,k)線性分組碼C是GFqn上的k維線性子空間,其中,n為分組碼的碼長,碼C中向量稱作碼字,k為信息碼元長度,k/n為 碼的信息率,n-k為 碼C的校驗(yàn)位或者監(jiān)督位。

定義2(漢明距離)兩個(gè)不同碼字之間的漢明距離定義為兩個(gè)序列之間對(duì)應(yīng)不同的位數(shù),記作d。

式中,⊕為異或運(yùn)算。

碼字間的距離表示碼字之間差異程度的大小。當(dāng)存在干擾時(shí),距離越大,一個(gè)碼字變成另一個(gè)碼字的可能性越小。

定義3(最小漢明距離)碼C的最小漢明距離dmin定義為所有任意兩個(gè)碼字漢明距離的最小值。對(duì)于線性分組碼,記為(n,k,dmin)。

定義4(生成矩陣)對(duì)于(n,k,d)線性分組碼,有下列關(guān)系式:

式中:m為k維矢量;k×n的矩陣G稱為線性分組碼C的生成矩陣,G的行向量構(gòu)成碼C的一組基。

對(duì)于給定信息碼元長度k、碼長n的 線性分組碼C,其生成矩陣不唯一,并且可以通過初等行變換相互進(jìn)行轉(zhuǎn)換。其中,無論生成矩陣如何初等變換,碼字都是唯一確定的,任意生成矩陣可產(chǎn)生相同的 2k個(gè)碼字。

2 基于糾錯(cuò)碼的SM3算法構(gòu)造

SM3算法是基于分組迭代的國際密碼雜湊算法,該算法比其他國際雜湊算法標(biāo)準(zhǔn)設(shè)計(jì)更復(fù)雜,具體表現(xiàn)在Merkle Damgard迭代結(jié)構(gòu)中每一輪壓縮都使用2個(gè)消息字,以及消息拓展過程中每一輪都使用5個(gè)消息字,并且將不同群運(yùn)算結(jié)合,使明文消息非線性迅速擴(kuò)散。下面給出基于糾錯(cuò)碼的SM3改進(jìn)算法具體構(gòu)造過程。

單個(gè)消息分組處理過程主要利用糾錯(cuò)碼構(gòu)建初始常量并將其嵌入到初始緩存器中,再進(jìn)行64步迭代操作。具體分為初始常量構(gòu)造、消息預(yù)處理、消息擴(kuò)展、迭代壓縮、雜湊值輸出5個(gè)步驟。其中,輸入是最大長度為264-1 bit的消息,輸出是長度為256 bit的消息雜湊值,處理單元是512 bit消息分組。

2.1 初始常量構(gòu)造

在構(gòu)造基于糾錯(cuò)碼的SM3算法過程中,需要選擇合適的線性分組碼C,一個(gè)最優(yōu) (n,k,dmin)分 組碼C必須滿足以下條件。

1)確定n和k,使dmin盡量最大化,則構(gòu)造出的碼C可以提高糾錯(cuò)能力。

2)確定n和dmin,使k盡量最大化,則構(gòu)造出的碼C可以提高傳輸速率。

3)確定k和dmin,使n盡 量最小化,則構(gòu)造出的碼C可以提高傳輸速率。

綜上所述,構(gòu)造性能良好的糾錯(cuò)碼,需要考慮信息k、碼長n、最小漢明距離dmin這3個(gè)參數(shù)的相互制約問題,達(dá)到傳輸效率及糾錯(cuò)能力的平衡。

根據(jù)可變擬陣搜索算法和擬陣聯(lián)接度的定義[22],可以構(gòu)建一類最優(yōu)的二進(jìn)制線性 (n,k,dmin)碼及它的生成矩陣Ga×b[23]。因?yàn)楸疚乃鶚?gòu)建的加法常數(shù)表需8個(gè)32 bit串聯(lián)而成,所以選擇構(gòu)建SM3的線性分組碼為(32,6,16),并求得該線性分組碼的生成矩陣G6×32。為了使加法常數(shù)能達(dá)到隨機(jī)化和無規(guī)律性最大化的效果,需要有效降低比特之間的規(guī)律性,經(jīng)過測(cè)試,選擇將生成矩陣G6×32進(jìn)行循環(huán)左移6位,最終產(chǎn)生的雜湊值的熵值達(dá)到預(yù)期設(shè)計(jì)要求,即雜湊算法的隨機(jī)性更高。生成碼字集合U={u1,u2,···,u2k},k=6。

基于SM3算法的初始常量及迭代過程的特征,應(yīng)選擇8個(gè)碼字串聯(lián)來構(gòu)建本文算法的初始常量,其中初始常量集合B0以下列方式選?。?/p>

重新構(gòu)造的初始常量應(yīng)滿足兩個(gè)要求:

1)初始常量二進(jìn)制表示中,1、0的數(shù)量比趨近于1。

2)初始常量二進(jìn)制表示中,最長1游程小于10,最長0游程小于8。

2.2 消息預(yù)處理

假設(shè)輸入消息m的 長度為lbit,首先,在消息的末尾先添加比特“1”;再在后面添加k個(gè)“0”,k滿足l+1+k≡488 mod 512;再添加64 bit的比特串來表示輸入消息的長度l,得到填充后的消息m′,長度為512×nbit;最后,將消息m′按512 bit進(jìn)行分組:

式中,n=(l+k+65)/512。

2.3 消息擴(kuò)展

1)將m′i分為16個(gè)32 bit的比特串W0,W1,···,W15。

2)W16,W17,···,W67以下列規(guī)則進(jìn)行擴(kuò)展:

式中,Wj為 消息擴(kuò)展的第j個(gè)字,< <<k表示循環(huán)左移k比特運(yùn)算,固定公式P1(·)定義為:

3)W16,W17,···,W67以下列規(guī)則進(jìn)行擴(kuò)展:

式中,W′j為消息擴(kuò)展的第j+69個(gè)字。

2.4 迭代壓縮

將初始常量集合B0中8個(gè)碼字分別賦值于寄存器A、B、C、D、E、F、G、H中,對(duì)第i個(gè)消息分組m′i以下列方式迭代:

式中,CF壓縮函數(shù)由64步迭代運(yùn)算組成,Bi為第i次迭代輸入的集合。將Bi賦值于A、B、C、D、E、F、G、H作為初始寄存器,同時(shí)添加中間變量S S1、S S2、TT1、TT2進(jìn)行左向賦值操作,具體過程描述如式(9)~(12):

式中,←表示左向賦值運(yùn)算符,Tj為 32 bit常量,F(xiàn)Fj(·)、GGj(·)為 定義好的布爾函數(shù)[1],0 ≤j≤63。

將更新后的中間變量TT1、TT2 與寄存器A、B、C、D、E、F、G、H進(jìn)行狀態(tài)更新,過程描述如下:

1)將初始寄存器A、C、E、G分別賦值于寄存器B、D、F、H,然后將中間變量TT1賦 值于寄存器A。

2)對(duì)中間變量TT2 進(jìn)行公式運(yùn)算后賦值于E,具體運(yùn)算過程如下:

式中,固定公式P0(·)定義為:

3)將更新后的寄存器B、F進(jìn)行循環(huán)左移操作后賦值于寄存器C、G,描述如下:

每輪迭代的輸入都是上一輪迭代的輸出再與512 bit的分組消息進(jìn)行運(yùn)算的結(jié)果。

2.5 輸出雜湊值

最終所有消息分組處理完畢之后,最后一個(gè)512 bit的輸出即為算法雜湊值。

密碼雜湊算法的安全水平是由它的輸出長度決定的[24],本文所構(gòu)造的雜湊函數(shù)輸出長度為512 bit,與128 bit的輸出相比更能抵抗原像攻擊、第二原像攻擊和碰撞攻擊。

3 實(shí)驗(yàn)分析與對(duì)比

第2節(jié)所構(gòu)造的密碼雜湊函數(shù)是針對(duì)SM3算法的改進(jìn)算法,下面從雪崩效應(yīng)、信息熵方面進(jìn)行本文算法的安全性分析,同時(shí)通過仿真實(shí)驗(yàn)進(jìn)行算法運(yùn)算效率和內(nèi)存損耗性能分析與討論。

3.1 安全性分析

3.1.1 雪崩效應(yīng)分析

密碼學(xué)中約定密碼雜湊算法應(yīng)滿足雪崩效應(yīng),即輸入消息微小的改變會(huì)引起雜湊值至少一半以上的位數(shù)發(fā)生變化,以達(dá)到更好的混淆效果,利用式(17)~(19)對(duì)本文改進(jìn)算法的雪崩效應(yīng)進(jìn)行穩(wěn)定性評(píng)估。

式(17)~(19)中,Bi為第i次測(cè)試的雜湊值改變的比特?cái)?shù),P為平均雪崩系數(shù),N為測(cè)試的總次數(shù),n為雜湊值比特?cái)?shù),B為平均變化比特?cái)?shù)。理想狀態(tài)下P為50%,表明密碼雜湊算法具有良好的雪崩效應(yīng),均方差 ΔP數(shù)值越小,則密碼雜湊算法的穩(wěn)定性越好[25]。

為了進(jìn)一步驗(yàn)證改進(jìn)算法性能,選擇傳統(tǒng)SHA-256算法和SM3算法,以及改進(jìn)的MD5算法[17](記為Wu-MD5算法)進(jìn)行雪崩效應(yīng)測(cè)試。隨機(jī)選擇明文消息并計(jì)算生成的雜湊值,任意改變消息中的1 bit,同時(shí)計(jì)算新生成的雜湊值。由于雜湊值長度不同,所以僅針對(duì)雪崩系數(shù)P及均方差 ΔP進(jìn)行數(shù)值比較,結(jié)果如表1所示。值得說明的是,雪崩效應(yīng)僅是雜湊算法擴(kuò)散效應(yīng)的指標(biāo)之一,其結(jié)果無法直觀地進(jìn)行4種算法混淆性的優(yōu)劣比較,僅能夠進(jìn)行雪崩效應(yīng)的穩(wěn)定性評(píng)估。

表1 不同測(cè)試次數(shù)下4種算法的雪崩特性統(tǒng)計(jì)Tab.1 Avalanche characteristics statistics of four algorithms under different test times

表1結(jié)果表明:在測(cè)試總次數(shù)N分別為1 000、5 000、10 000和50 000的情況下,本文算法與其他3種算法的雪崩系數(shù)P均接近50%,達(dá)到了雜湊函數(shù)雪崩效應(yīng)的理想狀態(tài),說明本文算法擁有良好的混淆和擴(kuò)散性;同時(shí),本文算法的均方差 ΔP的數(shù)值偏小,充分說明本文算法具有穩(wěn)定的雪崩效應(yīng)。

3.1.2 信息熵分析

熵反映了信息源的平均不確定性,在密碼學(xué)領(lǐng)域內(nèi),信息熵也是用于衡量信息序列隨機(jī)性的一項(xiàng)重要指標(biāo)。信息序列的隨機(jī)性越大,熵值越大;信息序列的隨機(jī)性越小,熵值越小[26]。一般熵值的大小也與攻擊者分析雜湊算法的規(guī)律性所需要的時(shí)間成正比。利用熵值的大小來度量糾錯(cuò)碼構(gòu)建的改進(jìn)密碼雜湊算法的安全性。熵的計(jì)算公式為:

式中,H(x)為 消息x的 信息熵,p(xi)為 消息中xi出現(xiàn)的概率。

針對(duì)第2節(jié)中生成矩陣G6×32分別進(jìn)行循環(huán)左移5、6、7位操作,輸入長度為20~500 byte的樣本數(shù)據(jù),計(jì)算在輸入數(shù)據(jù)相同時(shí)的雜湊值信息熵,如圖1所示。由圖1可以看出,循環(huán)左移6位時(shí)信息熵?cái)?shù)值更高,相對(duì)于循環(huán)左移5、7位穩(wěn)定性更好,而循環(huán)左移操作的目的是增大比特之間的無規(guī)律性,說明構(gòu)造的加法常數(shù)值符合算法設(shè)計(jì)最初指標(biāo),即達(dá)到隨機(jī)性和無規(guī)律性最大化,提升了雜湊值隨機(jī)性。

圖1 本文算法中不同循環(huán)左移位數(shù)的信息熵比較Fig.1 Information entropy comparison of different cyclic left shift numbers in the proposed algorithm

為了評(píng)估本文算法的雜湊值隨機(jī)性,在明文樣本相同的情況下,選擇典型的密碼雜湊算法進(jìn)行雜湊值的信息熵對(duì)比實(shí)驗(yàn),具體標(biāo)準(zhǔn)為:1)本文算法是基于SM3算法的改進(jìn)雜湊算法,所以選擇SM3算法進(jìn)行對(duì)比;2)在雜湊值長度都為256 bit的情況下,選擇SHA-256算法進(jìn)行對(duì)比。不同算法的雜湊值信息熵對(duì)比實(shí)驗(yàn)結(jié)果如表2所示。

表2 本文算法、SM3算法及SHA-256算法的雜湊值信息熵比較Tab.2 Comparison of information entropy between the proposed algorithm, SM3 algorithm and SHA-256 algorithm

表2表明:在迭代結(jié)構(gòu)相似的情況下,本文算法因?yàn)檫x擇糾錯(cuò)更強(qiáng)的最優(yōu)碼 (n,k,dmin)來構(gòu)建加法常數(shù)表,雜湊值的熵值相對(duì)于 SM3算法有所增加;在雜湊值長度相同的情況下,由于本文算法迭代結(jié)構(gòu)包含消息雙字介入等方法,使得輪函數(shù)復(fù)雜性提升,消息能夠快速擴(kuò)散,從而導(dǎo)致最終生成雜湊值的信息熵值更高,隨機(jī)性更強(qiáng)。以上結(jié)果表明,本文所構(gòu)造的SM3改進(jìn)算法利用糾錯(cuò)碼技術(shù)有效平衡了雜湊值長度和迭代結(jié)構(gòu)兩個(gè)方面,使得算法雜湊值隨機(jī)性有所提升,能夠更好地隱藏明文消息和雜湊值之間的關(guān)聯(lián)性。

3.2 性能分析

一般來說,密碼雜湊算法的運(yùn)算效率及內(nèi)存損耗是需要研究人員考慮的重要方面,在配置為Intel Core i5-9400 2.90 GHz、16 GB RAM的計(jì)算機(jī)上,進(jìn)行改進(jìn)算法與傳統(tǒng)SM3算法的時(shí)間效率及內(nèi)存損耗的對(duì)比實(shí)驗(yàn),并進(jìn)行分析。

3.2.1 運(yùn)算效率分析

利用 Java 1.8.0_291進(jìn)行算法運(yùn)算效率測(cè)試。針對(duì)不同明文消息長度的輸入,分別選擇本文算法與SM3算法進(jìn)行效率分析,如圖2所示。

圖2 本文算法與SM3算法時(shí)間復(fù)雜度比較Fig.2 Comparison of time complexity between the proposed algorithm and SM3 algorithm

由于迭代結(jié)構(gòu)的串行特性,明文消息長度和運(yùn)行時(shí)間成正比,圖2結(jié)果表明,本文算法可以支持算法快速運(yùn)算,在輸入明文消息長度為40~1 080 byte的條件下,1 s內(nèi)可以進(jìn)行450~2 000次運(yùn)算,與SM3算法的運(yùn)算效率基本一致。

3.2.2 內(nèi)存消耗分析

JProfiler作為商業(yè)授權(quán)的Java性能剖析工具,具有對(duì)被分析對(duì)象影響較小、針對(duì)內(nèi)存(memory)分析功能強(qiáng)大等特點(diǎn),專用于分析Java SE、Java EE應(yīng)用程序。利用JProfiler分析工具,針對(duì)不同長度的明文輸入,選用30個(gè)明文樣本集,對(duì)本文改進(jìn)算法及SM3算法分別進(jìn)行相同明文輸入的內(nèi)存損耗測(cè)試對(duì)比,結(jié)果如圖3所示。

圖3 本文算法與SM3算法內(nèi)存損耗比較Fig.3 Comparison of memory loss between the proposed algorithm and SM3 algorithm

由圖3可知:本文算法的內(nèi)存損耗并不高,在明文輸入長度為100~3 000 byte的條件下,隨著消息長度的增加,計(jì)算量增大,導(dǎo)致內(nèi)存損耗呈線性增長趨勢(shì);同時(shí),由于本文利用糾錯(cuò)碼來構(gòu)造加法常數(shù)表,導(dǎo)致在消息長度相同的情況下,本文算法相比于SM3算法內(nèi)存損耗降低0.01~0.07 MB,實(shí)現(xiàn)了性能優(yōu)化。

基于糾錯(cuò)碼的SM3算法是在傳統(tǒng)SM3算法的基礎(chǔ)上進(jìn)行的改進(jìn)。改進(jìn)后的SM3算法不僅具有較強(qiáng)的雪崩效應(yīng),且具有更強(qiáng)的隨機(jī)性,使攻擊者更難找到其中規(guī)律。上述算法效率及內(nèi)存損耗實(shí)驗(yàn)表明,本文改進(jìn)算法在效率相同的情況下內(nèi)存損耗有所下降,為高效率、低內(nèi)存需求的應(yīng)用場(chǎng)景提供技術(shù)參考。

4 結(jié) 論

為了提高雜湊值的隨機(jī)性,本文利用糾錯(cuò)碼可以在數(shù)字通信過程中提高可靠度的特性,提出一種對(duì)SM3算法的改進(jìn)方案。該方案選擇擬陣?yán)碚摌?gòu)建的線性分組碼(32,6,16),通過生成矩陣G6×32計(jì)算有效碼字,同時(shí)利用周期性原則選擇8個(gè)碼字構(gòu)建初始常量值,并嵌入到迭代結(jié)構(gòu)中進(jìn)行64輪運(yùn)算;從信息熵值和雪崩效應(yīng)兩個(gè)角度進(jìn)行雜湊值穩(wěn)定性和隨機(jī)性評(píng)估,同時(shí)測(cè)試本文算法在運(yùn)算效率和內(nèi)存損耗的全局性能并進(jìn)行分析。實(shí)驗(yàn)結(jié)果表明,本文算法具有理想雪崩效應(yīng)的特性,生成的雜湊值相比其他密碼雜湊算法混亂度有明顯提高,使攻擊者更難逆推出明文消息,具備更高的算法安全性。另外,本文算法在保留傳統(tǒng)密碼雜湊算法的串行迭代結(jié)構(gòu)的前提下,能夠在1 s內(nèi)進(jìn)行450~2 000次高速運(yùn)算,且內(nèi)存損耗與SM3算法相比降低0.01~0.07 MB,為信息安全領(lǐng)域的應(yīng)用開發(fā)提供理論參考。在未來的研究工作中,將重點(diǎn)研究密碼雜湊算法的迭代結(jié)構(gòu),嘗試采用并行結(jié)構(gòu)進(jìn)行數(shù)據(jù)運(yùn)算效率的優(yōu)化,并且在區(qū)塊鏈技術(shù)的底層架構(gòu)來驗(yàn)證優(yōu)化后算法的適用性。

猜你喜歡
分組碼隨機(jī)性雪崩
雪崩大危機(jī)
雪崩時(shí),沒有一片雪花是無辜的
The shocking disappearance of flights
基于公約式權(quán)重的截短線性分組碼盲識(shí)別方法
淺析電網(wǎng)規(guī)劃中的模糊可靠性評(píng)估方法
考慮負(fù)荷與分布式電源隨機(jī)性的配電網(wǎng)無功優(yōu)化
適用于隨機(jī)性電源即插即用的模塊化儲(chǔ)能電池柜設(shè)計(jì)
基于多分組碼的密鑰預(yù)分配算法研究
基于游程數(shù)的非參數(shù)隨機(jī)性檢驗(yàn)
基于獨(dú)立分量分析的實(shí)正交空時(shí)分組碼盲識(shí)別
高邮市| 乌拉特后旗| 平利县| 磴口县| 赤峰市| 清苑县| 湖南省| 西乌珠穆沁旗| 普兰县| 六盘水市| 钟祥市| 马关县| 嘉荫县| 南部县| 和静县| 柘荣县| 阳江市| 广州市| 图木舒克市| 白玉县| 保靖县| 常德市| 邵东县| 临武县| 日照市| 泰宁县| 南皮县| 盐亭县| 巨野县| 福海县| 博湖县| 芦溪县| 黑龙江省| 连山| 瑞金市| 中西区| 融水| 桃园县| 页游| 鄂伦春自治旗| 溧阳市|