




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、哈爾濱工程大學(xué)實 驗 報 告實 驗 名 稱: DES加密 班 級: 學(xué) 號: 姓 名: 實 驗 時 間: 2015.6.15 成 績: 指 導(dǎo) 教 師: 實驗室名稱: 哈爾濱工程大學(xué)實驗室與資產(chǎn)管理處 制一、實驗名稱MD5加密二、實驗?zāi)康耐ㄟ^編程實現(xiàn)MD5加密的算法設(shè)計,并加深對其的了解。三、實驗環(huán)境(實驗所使用的器件、儀器設(shè)備名稱及規(guī)格)WindowXP系統(tǒng)計算機 ,Dev C+四、實驗任務(wù)及其要求根據(jù)實驗原理部分對MD5加密的介紹,自己創(chuàng)建明文信息,并選擇一個密鑰,編寫MD5加密的實現(xiàn)程序,實現(xiàn)加密和解密操作。五、實驗設(shè)計(包括原理圖、真值表、分析及簡化過程、卡諾圖、源代碼等)#inclu
2、de#includeusing namespace std;#define shift(x, n) (x) (32-(n)/右移的時候,高位一定要補零,而不是補充符號位#define F(x, y, z) (x) & (y) | (x) & (z) #define G(x, y, z) (x) & (z) | (y) & (z)#define H(x, y, z) (x) (y) (z)#define I(x, y, z) (y) (x) | (z)#define A 0x#define B 0xefcdab89#define C 0x98badcfe#define D 0x/strBaye的
3、長度unsigned int strlength;/A,B,C,D的臨時變量unsigned int atemp;unsigned int btemp;unsigned int ctemp;unsigned int dtemp;/常量ti unsigned int(abs(sin(i+1)*(2pow32)const unsigned int k= 0xd76aa478,0xe8c7b756,0xdb,0xc1bdceee, 0xf57c0faf,0x4787c62a,0xa,0xfd,0xd8, 0x8b44f7af,0xffff5bb1,0x895cd7be,0x6b,0xfd, 0xae
4、,0x49b40821,0xf61e2562,0xc040b340,0x265e5a51, 0xe9b6c7aa,0xd62f105d,0x,0xd8a1e681,0xe7d3fbc8, 0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed,0xa9e3e905, 0xfcefa3f8,0x676f02d9,0x8d2a4c8a,0xfffa3942,0x8771f681, 0x6d9d6122,0xfde5380c,0xa4beea44,0x4bdecfa9,0xf6bb4b60, 0xbebfbc70,0x289b7ec6,0xeaa127fa,0xd4e
5、f3085,0x04881d05, 0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665,0xf, 0x432aff97,0xab9423a7,0xfc93a039,0x655b59c3,0x8f0ccc92, 0xffeff47d,0x85845dd1,0x6fa87e4f,0xfe2ce6e0,0xa, 0x4e0811a1,0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391;/向左位移數(shù)const unsigned int s=7,12,17,22,7,12,17,22,7,12,17,22,7, 12,17,22,5
6、,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20, 4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10, 15,21,6,10,15,21,6,10,15,21,6,10,15,21;const char str16=abcdef;void mainLoop(unsigned int M) unsigned int f,g; unsigned int a=atemp; unsigned int b=btemp; unsigned int c=ctemp; unsigned int d=dtemp; for (unsign
7、ed int i = 0; i 64; i+) if(i16) f=F(b,c,d); g=i; else if (i32) f=G(b,c,d); g=(5*i+1)%16; else if(i48) f=H(b,c,d); g=(3*i+5)%16; else f=I(b,c,d); g=(7*i)%16; unsigned int tmp=d; d=c; c=b; b=b+shift(a+f+ki+Mg),si); a=tmp; atemp=a+atemp; btemp=b+btemp; ctemp=c+ctemp; dtemp=d+dtemp;/*填充函數(shù)*處理后應(yīng)滿足bits448(
8、mod512),字節(jié)就是bytes56(mode64)*填充方式為先加一個1,其它位補零*最后加上64位的原來長度*/unsigned int* add(string str) unsigned int num=(str.length()+8)/64)+1;/以512位,64個字節(jié)為一組 unsigned int *strByte=new unsigned intnum*16; /64/4=16,所以有16個整數(shù) strlength=num*16; for (unsigned int i = 0; i num*16; i+) strBytei=0; for (unsigned int i=0;
9、 i 2|=(stri)2表示i/4 一個unsigned int對應(yīng)4個字節(jié),保存4個字符信息 strBytestr.length()2|=0x80(str.length()%4)*8);/尾部添加1 一個unsigned int保存4個字符信息,所以用128左移 /* *添加原長度,長度指位的長度,所以要乘8,然后是小端序,所以放在倒數(shù)第二個,這里長度只用了32位 */ strBytenum*16-2=str.length()*8; return strByte;string changeHex(int a) int b; string str1; string str=; for(int
10、 i=0;ii*8)%(18)&0xff; /逆序處理每個字節(jié) for (int j = 0; j 2; j+) str1.insert(0,1,str16b%16); b=b/16; str+=str1; return str;string getMD5(string source) atemp=A; /初始化 btemp=B; ctemp=C; dtemp=D; unsigned int *strByte=add(source); for(unsigned int i=0;istrlength/16;i+=16) unsigned int num16; for(unsigned int j
11、=0;jss; string s=getMD5(ss); couts; return 0;六、實驗步驟Md5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory For Computer Science和Rsa Data Security Inc的Ronaldl.rivest開發(fā)出來,經(jīng)md2、md3和md4發(fā)展而來。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格式,即將一個任意長度的“字節(jié)串”通過一個不可逆的字符串變換算法變換成一個128bit的串。MD5是一個安全的散列算法,輸入兩個不同的明
12、文不會得到相同的輸出值,根據(jù)輸出值,不能得到原始的明文,即其過程不可逆;所以要解密MD5沒有現(xiàn)成的算法,只能用窮舉法,把可能出現(xiàn)的明文,用MD5算法散列之后,把得到的散列值和原始的數(shù)據(jù)形成一個一對一的映射表,通過比在表中比破解密碼的MD5算法散列值,通過匹配從映射表中找出破解密碼所對應(yīng)的原始明文七、實驗過程與分析八、實驗結(jié)果總結(jié)通過這次實驗了解到哈希函數(shù)的特點:壓縮性、容易計算、抗修改性、弱抗碰撞、強抗碰撞。而這次實驗的主要目的是驗證MD5算法,雖然在課堂上做實驗的時間有限,MD5算法又很繁雜,但是在老師的講解下還是能懂的。其實要驗證MD5算法最主要是要計算機的輔助,因為人工計算的可能性不大,通過計算機的計算,我們可以容易進行求和運算,當(dāng)完成了最后一個明文分組運算時,A,B,C,D中的數(shù)值就是最后的散列函數(shù)值。九、心得體會通過本次實驗,我了解了DES加密算法的編譯以及通過DES對于密碼的明文加密和密文解密的流程,并為以后的密碼算法編程打好基礎(chǔ)。更加熟悉的了解c+環(huán)境的編程方式。學(xué)生自評項目評定內(nèi)容評定結(jié)果預(yù)習(xí)情況1、 實驗準(zhǔn)備情況2、 預(yù)習(xí)報告完整性()優(yōu)秀()良好()中等()及格()不及格實驗表現(xiàn)1、 實驗規(guī)范性2、 實驗原理掌握3、 調(diào)試排錯能力4、 操作熟練
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒春風(fēng)活動方案
- 幼兒園翰墨飄香活動方案
- 幼兒游戲活動方案
- 幼兒小義工活動方案
- 廣場招商活動方案
- 教師教育技術(shù)能力提升計劃
- 電信工程質(zhì)量管理措施
- 風(fēng)電工程危險源識別及設(shè)備檢修預(yù)防措施
- 座位操評比活動方案
- 幼兒園教室生活活動方案
- 外研版初中英語九年級下冊教案 全冊
- 租賃轉(zhuǎn)購買設(shè)備協(xié)議
- 精裝修工程主要分項工程施工方案
- 地震災(zāi)害與防震減災(zāi)培訓(xùn)課件
- 機械制圖-形成性任務(wù)4-國開(ZJ)-參考資料
- 2024年輸配電及用電工程職稱評審題庫-單選
- 工廠防汛安全培訓(xùn)
- 三年級(下冊)西師版數(shù)學(xué)全冊重點知識點
- ASTMD638-03中文版塑料拉伸性能測定方法
- 第五章 消費金融資產(chǎn)證券化
- 云南省紅河市2025屆數(shù)學(xué)高一上期末統(tǒng)考試題含解析
評論
0/150
提交評論