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

?

淺析MD5算法的原理

2016-10-14 04:12武佳杰
科學與財富 2016年28期
關(guān)鍵詞:加密信息安全

摘 要:隨著網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用,網(wǎng)絡(luò)信息安全越來越引起人們的重視。目前通常將需要存儲的數(shù)據(jù)進行加密然后再存儲,MD5(Message-Digest algorithm 5)算法是一個不錯的選擇。MD5算法是一種用于產(chǎn)生數(shù)字簽名的單項散列算法。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格式。

關(guān)鍵詞:信息安全;MD5;加密;封裝

1引言

隨著網(wǎng)絡(luò)通信技術(shù)和Internet的聯(lián)系日益增強,出現(xiàn)了一系列與網(wǎng)絡(luò)安全相關(guān)的問題:如對主機的攻擊,網(wǎng)絡(luò)上傳輸?shù)男畔⒈唤厝?、篡改、重發(fā)等,由此,它對網(wǎng)絡(luò)應(yīng)用的進一步推廣構(gòu)成了巨大威脅,因此密碼體制[1]就在這種背景下應(yīng)運而生了。存儲加密涉及大量文件、資料、新建等文檔處理,需要高效,可靠的進行各種信息交換,同時對信息流轉(zhuǎn)的整個過程需要有效的組織和監(jiān)控。數(shù)據(jù)加密技術(shù)不僅具有保證信息機密性的信息加密功能,而且具有數(shù)字簽名、秘密分存、系統(tǒng)安全等性能。因而可以保障信息的機密性、完整性和準確性,防止信息被篡改、偽造和假冒[2]。雖然目前已有很多加密技術(shù)應(yīng)用于各個領(lǐng)域,但是存在加密強度、運算量大等缺陷,因而本文提出了一種新的加密機制—MD5加密。

2理論基礎(chǔ)

2.1單向散列函數(shù)

單向散列函數(shù)[4]也稱Hash(哈希)函數(shù)。它是現(xiàn)代密碼學的核心。散列函數(shù)一直在計算機科學中使用,散列函數(shù)就是把可變的輸入長度串轉(zhuǎn)換成固定長度輸出值(叫做散列值)的一種函數(shù)。而單向散列函數(shù)是在一個方向上工作的散列函數(shù),從預(yù)映射的值很容易計算出它的散列值,但要使它的散列值等于一個特殊值卻很難。散列值越長則安全性越好,MD5算法就是單向散列函數(shù)產(chǎn)生128位的散列值,以下即為生成一個長散列值的方法:

1)運用單向散列函數(shù)生成一則消息的散列值。

2)將該散列值附于消息之后。

3)產(chǎn)生包含散列值和消息在內(nèi)的一連串的數(shù)值的散列值。

4)將(1)產(chǎn)生的散列值與(3)產(chǎn)生的散列值組合起來生成一個更大的散列值。

5)重復(fù)1)至3)步若干次。

2.2MD5算法的基本原理

MD5算法以512位分組來處理輸入文本,每一分組又劃分為16個32位子分組。算法的輸出由4個32位分組組成,將它們級聯(lián)形成一個128位散列值[5]。

第1步:MD5在原消息中增加填充位,目的是使原消息長度等于一個值,即比512的倍數(shù)少64位。填充后,原消息的長度為448位(比512少64),960位(比1024少64位),1472位(比1536少64位)等。

第2步:增加填充位后,就要計算機消息原長,將其加進填充后的消息末尾。先計算消息長度,不包括填充位(即增加填充位前的長度)。這個消息原長表示為64位值,添加到加進填充后的消息末尾。如果消息長度超過264位(即64位無法表示,因為消息太長),則只用長度的低64位,即等于計算length mod 264。

第3步:將輸入分成512位的塊。

第4步:初始化四個鏈接變量,分別稱為A,B,C,D,它們都是32位的數(shù)字,這些鏈接變量的初始十六進制值如表1所示,低的字節(jié)在前面。

第5步:處理塊。這是個循環(huán),對消息中的多個512位塊運行。

第5.1步:將四個鏈接變量復(fù)制到四個變量a,b,c,d中,使a=A,b=B,c=C,d=D。

這個算法將a,b,c,d組合成128位寄存器(abcd),寄存器(abcd)在實際算法運算中保存中間結(jié)果和最終結(jié)果,如圖1所示。

第5.2步:將當前512位塊分解為16個子塊,每個子塊為32位,如圖2所示。

第5.3步:主循環(huán)有四輪,每一輪的操作都要處理一個塊中的16個子塊。每一輪的輸入如下:(a) 16個子塊;(b)變量a,b,c,d;(c)常量t。

這四輪中的第1步進行不同處理,其他步驟是相同的。每一輪有16個輸入子塊M[0],M[1],…,M[15],或表示為M[i],其中i為1~15。每個子塊為32位。t是個常量數(shù)組,包含64個元素,每個元素為32位。我們把數(shù)組t的元素表示為t[1],t[2],…,t[64],或t[i],其中i為1~64。由于有四輪,因此每一輪用64個t值中的16個。每一輪輸出的中間和最終結(jié)果復(fù)制到寄存器abcd中:

1)首先對b, c, d作一次非線性函數(shù)運算,這個運算在四輪中不同。

2)變量a加進第1步的輸出(即寄存器abcd)。

3)消息子塊M[i]加進第2步的輸出(即寄存器abcd)。

4)常量t[i]加進第3步輸出(即寄存器abcd)。

5)第4步的輸出(即寄存器abcd)循環(huán)左移s位。

6)變量b加進第5步輸出(即寄存器abcd)。

7)第6步的輸出成為下一步的新abcd。

圖3和圖4顯示了MD5操作過程。

對于每次操作中用到的四個線性函數(shù),即

F(x,y,z) = (x&y)|((~x)&z) G(x,y,z) = (x&z)|(y&(~z)) H(x,y,z) = x^y^z

I(x,y,z) = y^(x|(~z)),其中,&是與,|是或,~是非,^是異或。這些函數(shù)中,如果x,y和z的對應(yīng)位是獨立和均勻的,那么結(jié)果的每一位也是獨立和均勻的,函數(shù)F是按逐位方式操作;函數(shù)H是逐位奇偶操作。

3.結(jié)論

MD5是單向加密算法,加密以后信息不可以解密。可以對算法做適當?shù)男薷暮脱a充,以更加適合應(yīng)用需要。同時隨著企業(yè)信息和數(shù)據(jù)的巨大膨脹,以及確保數(shù)據(jù)安全的重要性與日俱增,數(shù)據(jù)的加密有著不可替代的重要性,但隨之而來的問題是效率的降低和數(shù)據(jù)管理的復(fù)雜。高效率、易管理的數(shù)據(jù)安全方案將是未來的研究方向。

參考文獻

[1]楊義先,林曉東.信息安全綜論[M].北京:電信科學出版社, 1998 .

[2]楊明,齊望東.密碼編碼學與網(wǎng)絡(luò)安全[M].北京:電子工業(yè)出版社,1997.

[3]彭文波.MD5算法原理及應(yīng)用[EB/OL].中國知網(wǎng) 1999.2.

[4]桑海,李建寶.加密算法MD5 的研究與應(yīng)用[EB/OL]. 華南金融電腦 1999.7.

[5]潘清芳.使用MD5加密數(shù)據(jù)庫系統(tǒng)的設(shè)計[J].第3 卷第2 期:77-143.

[6]鄭莉,董淵.C++語言程序設(shè)計[M].北京:清華大學出版社,2001.

[7]施衛(wèi)鋒, 周俊, 朱利剛.多戶住處系統(tǒng)中數(shù)據(jù)安全性控制及其實現(xiàn)[EB/OL].微機發(fā)展.

[8] 段鋼著.加密與解密(第二版)[M].北京:電子工業(yè)出版社,2003.

作者簡介:武佳杰(1989—),男,山西汾陽人,山西財經(jīng)大學2014(計算機應(yīng)用技術(shù))學術(shù)碩士研究生,研究方向:貝葉斯網(wǎng)絡(luò)。

猜你喜歡
加密信息安全
《信息安全與通信保密》征稿函
信息安全專業(yè)人才培養(yǎng)探索與實踐
保護信息安全要滴水不漏
高校信息安全防護
加密與解密
一種基于LWE的同態(tài)加密方案
保護個人信息安全刻不容緩
認證加密的研究進展
基于ECC加密的電子商務(wù)系統(tǒng)
基于格的公鑰加密與證書基加密