freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

md5加密算法探究及其應用(已修改)

2025-04-28 06:40 本頁面
 

【正文】 MD5加密算法探究及其應用引言MD5加密算法作為一種免費的加密算法,廣泛地應用于計算機,數(shù)據(jù)安全傳輸,數(shù)字簽名認證等安全領域.MD5的全稱是MessageDigest Algorithm 5(信息摘要算法),是由Ron Rivest (RSA 算法的發(fā)明人之一,于2002年獲得圖靈獎)于90年代初提出,經(jīng)MD2,MD3和MD4發(fā)展而來的.Rivest 最早于1989年提出了MD2算法針對8位計算機做了優(yōu)化,為了提高算法的安全性與穩(wěn)定性,Rivest在1990年又開發(fā)出MD4算法,但人們很快發(fā)現(xiàn)了MD4算法的漏洞.隨后在1991年,Rivest開發(fā)出來技術上更加穩(wěn)定安全更趨于成熟的MD5算法.1993年,美國國家標準和技術協(xié)會(NIST)提出了安全散列算法(SHA).1995年又發(fā)布了一個修訂版,所以彼此很相似.相應的,它們的強度和其他特征也是相似的.2004年8月17日于美國加州圣巴巴拉召開的國際密碼學會議(Crypto 2004)上,來自山東大學的王小云教授做了破譯MD5,HAVAL128,MD4和RIPEMD算法的報告,宣告了MD系列算法的破解.對于一個進行身份認證的摘要算法來說,MD5已經(jīng)是不安全了,但是很多實際的應用領域MD5還有它的使用價值的,所以我們分析探究它的加密原理,我們在此基礎上對它的加密進行改進利用,對于我們今后的加密安全工作還是很有幫助的. Hash函數(shù)Hash函數(shù)是一種將任意長度的信息壓縮到某一固定長度的消息摘要的函數(shù),又稱Hash算法.Hash函數(shù)必須滿足一定的安全條件.這里主要介紹三個主要的方面:單向性,弱抗碰撞性,強碰撞性.單向性是指對Hash函數(shù)h而言,又x計算h(x)是容易的,但從h(x)計算x是不可行的.一個弱碰撞的Hash函數(shù)是滿足下列條件的一個函數(shù)h: h的輸入 可以是任意長度的消息或文件ph的輸出長度是固定的給定h和M,計算h(p)是很容易的給定h和一個隨機選擇的消息p1,找到另一個消息p2,p1p2使得h(p1)=h(p2)計算上是不可行的.一個強碰撞的Hash函數(shù)是滿足下列條件的一個函數(shù)h:h的輸入 可以是任意長度的消息或文件ph的輸出長度是固定的給定h和M,計算h(p)是很容易的給定h,找到兩個不同的消息p1,p2 ,使得h(p1)=h(p2)在計算上是不可行的.(如果有兩個不同的消息M,M,使得h(M)=h(M),我們就說這兩個消息是碰撞的) 16進制的相關知識十六進制在數(shù)學中是一種逢16進1的進位制,一般用數(shù)字0到9和字母A到F表示(AF表示1015).十六進制轉(zhuǎn)換成二進制的比特流(第一列16進制,第二列2進制)0123456789ABCDEF0000000100100011010001010110011110001001101010111100110111101111例如:十六進制為9FD,那么在計算機中二進制表示100111111101(9=1001,F(xiàn)=1111,D=1101) 邏輯運算① 邏輯“與”運算,用“”表示真值表表示為pq111100010000二進制按位邏輯“與”運算,即逐位進行邏輯“與”運算,并將逐位邏輯運算的結(jié)果進行組合得到的結(jié)果.例如①:如果 ,那么例如②:如果,那么首先把轉(zhuǎn)換為二進制為;其次把轉(zhuǎn)換而二進制位;最后按位進行邏輯“與”運算結(jié)果為② 邏輯“或”運算,用“|”表示真值表表示為:pq|111101011000③ 邏輯“異或”運算,用“”表示真值表表示為:pq110101011000④ 邏輯“取反”運算二進制數(shù)的所有0改為,1改為0,這個過程叫“取反”例如:如果,那么 模運算基本概念給定一個正整數(shù),任意一個整數(shù),一定存在等式 ;其中是整數(shù),且,稱為除以的商,為除以的余數(shù).對于正整數(shù)和整數(shù),定義如下運算:   模加法: ,其結(jié)果是算術和除以的余數(shù),也就是說,則例如:,那么(注這里“+”是模加法運算)首先將轉(zhuǎn)換為二進制為;其次將轉(zhuǎn)換為二進制為 然后逐位相加結(jié)果為22111111121011212021021102121110因為實行的是二進制數(shù)據(jù),逢2向前一位進1,所以最終結(jié)果為:111000000001100100110001111001110,這個結(jié)果的十進制是:,然后模,結(jié)果為,它的二進制表示為:110000000011001001100011110011102. MD5加密算法的原理簡單的說,MD5加密以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過一系列的處理后,算法的輸出有4個32位分組組成,將這4個32位分組級聯(lián)后將生成一個128位散列值.第一步:消息的填充如果輸入的消息的長度(以bit位單位)對512求余的結(jié)果不等于448,就需要填充使得對512求余的結(jié)果等于448,填充的方法是附加一個“1”在消息后面,再補充多個“0”,然后在其后附上64比特的消息長度(填充前)的二進制表示.這兩步的作用是使最終填充后的消息恰好是512比特的整倍長,同時確保不同的消息在填充后不會相同.第二步:記錄消息長度用64位來存儲填充前消息長度,這64位加在第一步結(jié)果的后面,這樣消息長度就變?yōu)镹*512+448+64=(N+1)*512(bits).第三步:加載初始標準數(shù)據(jù)算法中使用了四個32比特的變量A,B,C,D,先將這四個變量初始化為: 稱它們?yōu)殒溄幼兞浚又M行算法的主循環(huán),循環(huán)的次數(shù)是消息中512比特的塊的數(shù)目.將上面四個標準變量復制到另外四個變量中:A到a,B到b,C到c,D到d第四步:四輪循環(huán)運算循環(huán)的次數(shù)是分組的個數(shù)(N+1),每輪循環(huán)都很相似,每次操作對abcd中的其中三個作一次非線性函數(shù)運算,然后將所得的結(jié)果加上第四個變量,文本的一個子分組和一個常數(shù),再將所得結(jié)果向左位移一個不定的數(shù),并加上a,b,c,d中之一,最后用該結(jié)果取代a,b,c,d中之一.設XY表示輸入的塊,下面描述一些運算:(1)表示與按位邏輯“與”運算(2)表示與按位邏輯“或”運算(3)表示與按位邏輯“異或”運算(4)表示的按位邏輯取“反”(5)+表示整數(shù)模加法運算(6)表示將循環(huán)左移個單位有四個非線性函數(shù),每輪一個這四個函數(shù)的說明:如果,,的對應的位是獨立和均勻的,那么結(jié)果的每一位也應該是均勻的.其中是一個逐位運算的函數(shù),即,如果,那么,否則.函數(shù)是逐位奇偶操作符.(其中“”是邏輯“與”運算,“|”是邏輯“或”運算,“”邏輯“異或”運算,“”邏輯“取反”運算)四輪運算是:假設表示消息的第個子分組(從0到15),表示循環(huán)左移位表示表示表示表示  這四輪(64步)是:第一輪⑴ ⑵ ⑶ ⑷ ⑸    ⑹ ⑺ ⑻ ?、汀 ? ⑽ ⑾ ⑿ ?、选 ? ⒁ ⒂ ⒃ 第二輪⑴ ⑵⑶ ⑷?、伞  ? ⑹⑺ ⑻⑼ ⑽⑾ ⑿⒀ ⒁⒂ ⒃第三輪⑴ ⑵⑶ ⑷⑸ ⑹⑺ ⑻⑼ ⑽⑾ ⑿⒀ ⒁⒂ ⒃第四輪⑴ ⑵ ⑶  ⑷⑸ ⑹⑺ ⑻⑼ ⑽⑾ ⑿⒀ ⒁⒂ ⒃其中常數(shù)可以如下選擇:在第步中,是的整數(shù)部分,的單位是弧度.等于的次方.所有這些完成之后,將A、B、C、D分別加上a、b、c、d.然后用下一分組數(shù)據(jù)繼續(xù)運行算法,最后的輸出是A、B、C和D的級聯(lián).例如:計算解: 不妨假設:要加密的信息為abc,其比特串為01100001 01100010 01100011它的長度是24位,于是添加1個“1”,423個“0”,再加上64比特串(24)=00000000 00000018即x=01100001 01100010 01100011 1 0…0 00000000 00000018,共512比特,只有16分組為,所以有=00000000=00000018首先計算出A==0000 0001 0010 0011 0100 0101 0110 0111=B==1000 1001 1010 1011 1100 1101 1110 1111=C==1111 1110 1101 1100 1011 1010 1001 1000=D==0111 0110 0101 0100 0011 0010 000
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1