999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LabVIEW的MD5算法的實現

2017-10-21 12:11:43黃加華
科技風 2017年12期

黃加華

摘要:在計算機網絡高速發展的今天,人們對網絡安全也越來越重視,也對通信網安全的技術要求日趨緊迫。本文主要介紹了網絡信息數據加密的MD5算法,并對MD5算法的原理進行研究分析,通過LabVIEW程序開發實現對數據信息執行MD5加密和應用。

關鍵詞:通信網安全;MD5;LabVIEW;加密

隨著互聯網通信的高速發展,以及互聯網相關服務的日益完善,在網絡上傳遞的信息量也幾乎是幾何數量級的增加;同時人們的網絡安全意識也不斷的提高,所以,為了更加有效地處理、存儲、管理、使用和保護在互聯網上傳遞的私有信息,大多是采用報文摘要加密的方式對信息加密,這不僅可以節省加密的時間,而且可以節省報文傳輸、處理和存儲的開銷,MD5(MessageDigestAlgorithm5)作為當前主流的數據的加密技術被廣泛地應用于通信中。

LabVIEW在儀器儀表控制,工業自動化控制、模塊化儀器、虛擬儀器和DAQ數據采集上,都廣泛使用。結合在工程項目中,對于數據的安全性同樣越來越引起重視,因此,將其兩者的優勢相結合,即可實現對工業控制和自動化測試相關數據的加密,提高數據的安全性。

一、MD5簡介及其原理

在90年代初,信息摘要算法是由Mit Laboratory for Computer Science和Rsa Data Security Inc的Ron Rivest研制出來的,其全稱是Messagedigest algorithm 5(簡稱為MD5),經由MD2和MD3以及MD4,一代代發展而來。

MD5是一種消息摘要算法(Message Digest Algorithm),因此,MD5算法是通過任意長度的信息(Message)作為數據輸入,經過算法運算,產生出一個128bit(16byte)的報文摘要(Fingerprint or Message Digest)。由此可見,要由兩個不同的信息產生相同報文的概率是相當小的,反而言之,一個給定的報文摘要想要逆向地產生回原始的信息的難度便可想而知。

MD5算法可以簡述為:第一步,對于輸入進來的信息,以512位的分組來處理,同時,又把每一個分組劃分為16個32位的子分組;第二步,對信息進行一系列的循環算法運算,然后,輸出由四個32位分組組成的結果;第三步,再將這結果級聯運算,最后生成一個128位的散列值。其整體流程如圖1所示:

采用MD5報文摘要算法產生報文的全過程包含以下五個步驟:

第一步:補位。

對于輸入進來的信息,首先對數據信息進行補位,然后對信息數據的長度(單位為:byte)進行64取余數,使得取余的結果是56,即Length=N*64+56(字節),同時N是一個大于等于0的正整數。此外,不管任何情況下,補位的操作始終是要執行的,即使信息數據的長度Length對64取余的結果已是56。

補位的具體操作為:首先,在輸入進來的數據信息的后面補充一個1;然后,對數據信息補0已達到滿足Length=N*64+56條件時,才停止對數據信息進行用0補充,由此,可看出數據信息最少要補充1位,最多可達512位。即相當于補充了一個0X80的字節,再補充值為0的字節。到這一步,數據信息總共補充的字節數為0~63個。

第二步:附加數據長度。

在第一步的輸出結果后面再附加用一個64位的整數表示數據的原始長度(單位為:bit),附加的數據在第一步補位后的數據的后面,同時,要求該數字的8個字節是以按低位的在前、高位在后的順序進行附加。

附加數據長度的具體操作為:假設數據的原始長度為L。第一步,換算為兩個32位數來表示L,第二步,取L的低64位;經過對數據的附加,新的數據的長度則剛好為512位的倍數,即此時的數據長度是16個字節(32位)的整數倍數。

經過第一步和第二步對數據信息的處理,那么數據信息的位長則為:N*512+448+64=(N+1)*512,從算式中可看出,處理后的數據長度恰好是512的整數倍。

注:64位整數是輸入數據的原始長度,而不是填充字節后的長度。

第三步:初始化MD5參數。

用一個4個32位整數變量(A、B、C、D)來計算報文摘要,該整數變量被稱作鏈接變量(Chaining Variable)的整數參數。A、B、C、D分別是32位的寄存器,每一個變量都被初始化為一個以十六進制數表示的數值,并且數值表示是低位在前面,高位在后:A=0x01234567;B=0x89ABCDEF;C=0xFEDCBA98;D=0x76543210。每一個變量給出的數值都是高字節存于內存的低地址,低字節存于內存的高地址,即大端字節序,所以,在程序中變量A、B、C、D的值分別為A=0x67452301;B=0xEFCDAB89;C=0x98BADCFE;D=0x10325476。

注:低位的字節在前面指的是Little Endian平臺上內存內存的供應商中字節的排列方式。

第四步:處理分組數據。

每一個分組都是需要將上述的四個鏈接變量賦值到另外四個變量中,即A賦值到a,B賦值到b,C賦值到c,D賦值到d;而從第二個分組開始,鏈接變量則成為上一分組的運算結果,即a 賦值到A, b 賦值到B, c賦值到C, d 賦值到D。

MD5和MD4的差別在于,MD5的主循環有四輪,MD4僅有三輪。具體的循環操作為:第一輪需要執行16次的操作,每次操作選取a、b、c、d四個變量中的三個作一次非線性函數運算,然后將運算結果加上剩下的一個變量,那么,原來的一個子分組和一個常數,再將所運算得到的結果向左循環移位一個不定的數,然后,加上a、b、c、d四個變量中的一個,最后,用最終的結果取代a、b、c、d四個變量中的一個。

下列是每次操作使用的四個非線性函數(每輪一個,每輪循環都很相似):

注:若X、Y、Z的對應位是獨立并且均勻的,則得到的結果的每一位也是獨立且均勻的。函數F是逐位運算的函數,即如果X,那么Y,否則Z。函數H是逐位奇偶操作符。

假設Mj是消息數據的第j個子分組(從0到15);常數ti是4294967296*|sin(i)|的整數部分(i=1~64)。

注:(4294967296=232),

則定義:

完成上述的四輪運算后,再在原基礎上對a、b、c、d分別加上A、B、C、D,即a = a + A,b = b + B,c = c + C,d = d + D,然后,再用下一分組數據繼續執行上述循環算法。

第五步:輸出報文摘要

經過前面四步的處理,最后輸出的數據信息應該是a、b、c、d的級聯,一共16個字節,128位,同樣按照十六進制數依次輸出這16個字節,即低位字節開始,高位字節結束。

二、MD5的LabVIEW實現

根據MD5報文摘要的加密原理,現已字符串“hjh”為例。該字符串在內存中表示為:68 6A 68(從左到右為低地址到高地址),信息長度為24bit,即0x18。對數據進行補位,填充到448位,即56字節,則結果為:686A 6880 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000,而剩下的64位,即8字節填充前信息位長,按照小端字節填充剩下的8字節,則結果為:686A 6880 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1800 0000 0000 0000。接著對該數據進行是初始化A、B、C、D四個變量,將該64字節填充后的數據分成16個小組(在程序中則是對應的16個數組),則結果為:M0:686A 6880;(該顯示為內存中的順序,是按照小端字節序原則,對應數組M0的值為0x80686A68);M1:00000000;……M14:18000000;M15:00000000。

經過分組數據處理后,a、b、c、d的值分別為0xB525EF18;0x21B77990;0xE440000A;0x5A5A5E8C,則在內存中為:a:18EF25B5;b:9079B721;c:0A0040E4;d:8C5E5A5A。所以,字符串“hjh”經過MD5報文摘要算法后,最終的MD5的值為:18EF25B59079B7210A0040E48C5E5A5A。

經過實例,則更加詳細說明了MD5算法的整體流程。在自動化控制和測試的工程上多使用的LabVIEW編程語言, MD5加密廣泛使用于工程上的各個領域,所以,通過LabVIEW來實現MD5報文摘要算法。

總體的編程流程都是按照MD5算法的整體流程,通過五個步驟實現對數據的MD5加密,程序的五個步驟如圖2所示。

經過步驟一對信息補位,對信息附加數據長度的程序如圖3所示。

在步驟一和步驟的操作后,對MD5參數進行初始化處理,實現了初始化后的數據,執行四輪的四個非線性函數,共執行64步。程序如圖4所示。

在對MD5進行初始化后,再通過對分組數據進行處理后,對輸出的數據進行級聯后,輸出MD5值。程序如圖5所示。

通過MD5的算法流程的原理,采用LabVIEW圖形化的G語言實現MD5加密。

三、MD5應用

經過對MD5原理的闡述和實踐,MD5算法就是對任意長度的數據消息執行運算,從而計算得到一個128位長度的“報文摘要”。在我們實際應用中,主要是利用了他這一原理來實現。因為兩個不同的數據或文件要產生相同的報文摘要,或者通過給定的報文摘要來恢復原始的數據或文件是不可實現的。所以,MD5算法在當前通信信息傳輸等領域廣泛應用。

(一)信息摘要

對數據信息產生信息摘要應該是MD5算法的典型應用,通過信息摘要以防止數據信息被篡改。MD5算法不僅可以將一個文字信息加密,而且可以將整個文件當作一個大文本信息,通過MD5這不可逆的字符串變換算法,產生一個唯一的MD5信息摘要。

(二)數字簽名

就像世界上找不到兩片相同的樹葉一樣,每個人都有自己獨一無二的指紋。同樣的道理,MD5算法可以為任何文件(不管其大小、格式、數量)產生一個同樣獨一無二的MD5值,如果你將該文件傳遞給別人,當別人通過某種手段修改了文件中的任何內容,只要你重新對該文件執行MD5算法時,那么你就會發現這兩個MD5值是不相同,所以,就可以判定該文件不是原始文件,已被篡改。

(三)文件校驗

在互聯網時代,應用軟件作為我們使用最廣泛的,通常我們在某些軟件網站上,就會看到軟件信息中有MD5值,它的主要作用就是當我們下載該軟件后,對下載回來的軟件做一次MD5校驗,如果運算出來的MD5和網站上的MD5值一致,那么就可以確定我們下載的軟件就是網站上的軟件;若MD5值不一致,則說明下載的軟件并非我們想要的。軟件下載站、論壇數據庫、系統文件安全等方面都采用MD5算法來進行文件校驗。

(四)登陸認證

MD5算法還廣泛地用在軟件的登陸認證上。用戶在創建密碼時,軟件通過MD5算法將用戶的登陸密碼運算成MD5值,并存儲與數據庫或文件系統中。當用戶再次登錄軟件時,軟件會把用戶當前輸入的密碼再次進行MD5運算,得到的MD5值再去和保存在數據庫或文件系統中的MD5值進行比較,從而確定用戶輸入的密碼是否正確。

四、總結

如今,互聯網作為龐大的信息共享系統的載體,網絡安全作為互聯網中一個綜合性的課題,不僅僅在立法、管理、技術等方面上,還在信息和數據的安全等問題上。MD5作為互聯網安全的一小部分,但是,MD5在當代的意義也是不可小覷的。通過采用儀器自動控制領域成熟的編程平臺LabVIEW,使得MD5算法安全應用于此領域,也在提高趨向工業自動化和工業4.0安全的發展和重視。

參考文獻:

[1]王育民,劉建偉.通信網的安全—理論與技術[M].西安電子科技大學出版社,2013.

[2]段鋼.加密與解密[M].電子工業出版社,2008.

[3]戴棟,楊穎.基于虛擬儀器的網絡測控技術研究[J].科技風,2011(22):21.

[4]Rivest R.The MD5 messagedigest lgorithm[EB/OL].1995.

主站蜘蛛池模板: 四虎成人精品| 日本高清成本人视频一区| 精品无码国产自产野外拍在线| 午夜限制老子影院888| 欧美精品H在线播放| 成年人国产视频| 青青草91视频| 亚洲高清资源| 亚洲无码免费黄色网址| 九色视频线上播放| 狠狠躁天天躁夜夜躁婷婷| 精品国产乱码久久久久久一区二区| 免费女人18毛片a级毛片视频| 国产精品私拍在线爆乳| 亚洲欧美另类日本| 波多野结衣无码中文字幕在线观看一区二区 | 五月婷婷中文字幕| 欧美一级在线| 亚洲男人在线天堂| 精品五夜婷香蕉国产线看观看| 亚洲av无码专区久久蜜芽| 国产成人亚洲日韩欧美电影| 国产一区二区三区在线精品专区| 日韩国产无码一区| 国产高清在线丝袜精品一区| 亚洲欧美日韩中文字幕一区二区三区| 欧美性精品不卡在线观看| 日本不卡在线播放| 九色视频在线免费观看| 国产欧美专区在线观看| 激情综合网激情综合| a毛片免费观看| 欧美色图久久| 日韩精品成人网页视频在线| 69视频国产| 精品视频第一页| 五月婷婷欧美| 香蕉久久国产超碰青草| 激情爆乳一区二区| 色网站在线免费观看| 国产导航在线| 亚洲欧美日韩色图| 青草91视频免费观看| 激情六月丁香婷婷| 玩两个丰满老熟女久久网| 日本尹人综合香蕉在线观看 | 欧美一区二区三区不卡免费| 亚洲精品片911| 四虎精品黑人视频| 日本不卡在线播放| 精品欧美视频| 五月婷婷亚洲综合| 亚洲人成高清| 91亚洲精选| 大陆精大陆国产国语精品1024| 亚洲色图综合在线| 国产精品蜜芽在线观看| 国产在线精品香蕉麻豆| 久久99蜜桃精品久久久久小说| 国产精品jizz在线观看软件| 久久一色本道亚洲| 亚洲色欲色欲www在线观看| AV片亚洲国产男人的天堂| 欧美日韩专区| 成人国产精品视频频| 欧美高清视频一区二区三区| 久久99精品久久久久久不卡| 99在线观看国产| 中文字幕亚洲另类天堂| 无码在线激情片| 午夜视频日本| 99re精彩视频| 国产手机在线小视频免费观看 | 精品无码国产一区二区三区AV| 99视频只有精品| 精品福利视频网| 国产亚洲视频中文字幕视频| 国产美女在线观看| 国产av一码二码三码无码 | 中文字幕啪啪| 亚洲成年人网| 女人18毛片一级毛片在线 |