![密碼學(xué)實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/1/ecffc107-88ad-4dc9-b2cd-d5147642d7bf/ecffc107-88ad-4dc9-b2cd-d5147642d7bf1.gif)
![密碼學(xué)實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/1/ecffc107-88ad-4dc9-b2cd-d5147642d7bf/ecffc107-88ad-4dc9-b2cd-d5147642d7bf2.gif)
![密碼學(xué)實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/1/ecffc107-88ad-4dc9-b2cd-d5147642d7bf/ecffc107-88ad-4dc9-b2cd-d5147642d7bf3.gif)
![密碼學(xué)實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/1/ecffc107-88ad-4dc9-b2cd-d5147642d7bf/ecffc107-88ad-4dc9-b2cd-d5147642d7bf4.gif)
![密碼學(xué)實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-10/1/ecffc107-88ad-4dc9-b2cd-d5147642d7bf/ecffc107-88ad-4dc9-b2cd-d5147642d7bf5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、哈爾濱工程大學(xué)實(shí) 驗(yàn) 報(bào) 告實(shí) 驗(yàn) 名 稱(chēng): DES加密 班 級(jí): 學(xué) 號(hào): 姓 名: 實(shí) 驗(yàn) 時(shí) 間: 2015.6.15 成 績(jī): 指 導(dǎo) 教 師: 實(shí)驗(yàn)室名稱(chēng): 哈爾濱工程大學(xué)實(shí)驗(yàn)室與資產(chǎn)管理處 制一、實(shí)驗(yàn)名稱(chēng)MD5加密二、實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)編程實(shí)現(xiàn)MD5加密的算法設(shè)計(jì),并加深對(duì)其的了解。三、實(shí)驗(yàn)環(huán)境(實(shí)驗(yàn)所使用的器件、儀器設(shè)備名稱(chēng)及規(guī)格)WindowXP系統(tǒng)計(jì)算機(jī) ,Dev C+四、實(shí)驗(yàn)任務(wù)及其要求根據(jù)實(shí)驗(yàn)原理部分對(duì)MD5加密的介紹,自己創(chuàng)建明文信息,并選擇一個(gè)密鑰,編寫(xiě)MD5加密的實(shí)現(xiàn)程序,實(shí)現(xiàn)加密和解密操作。五、實(shí)驗(yàn)設(shè)計(jì)(包括原理圖、真值表、分析及簡(jiǎn)化過(guò)程、卡諾圖、源代碼等)#inclu
2、de#includeusing namespace std;#define shift(x, n) (x) (32-(n)/右移的時(shí)候,高位一定要補(bǔ)零,而不是補(bǔ)充符號(hào)位#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、長(zhǎng)度unsigned int strlength;/A,B,C,D的臨時(shí)變量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)滿(mǎn)足bits448(
8、mod512),字節(jié)就是bytes56(mode64)*填充方式為先加一個(gè)1,其它位補(bǔ)零*最后加上64位的原來(lái)長(zhǎng)度*/unsigned int* add(string str) unsigned int num=(str.length()+8)/64)+1;/以512位,64個(gè)字節(jié)為一組 unsigned int *strByte=new unsigned intnum*16; /64/4=16,所以有16個(gè)整數(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 一個(gè)unsigned int對(duì)應(yīng)4個(gè)字節(jié),保存4個(gè)字符信息 strBytestr.length()2|=0x80(str.length()%4)*8);/尾部添加1 一個(gè)unsigned int保存4個(gè)字符信息,所以用128左移 /* *添加原長(zhǎng)度,長(zhǎng)度指位的長(zhǎng)度,所以要乘8,然后是小端序,所以放在倒數(shù)第二個(gè),這里長(zhǎng)度只用了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; /逆序處理每個(gè)字節(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;六、實(shí)驗(yàn)步驟Md5的全稱(chēng)是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory For Computer Science和Rsa Data Security Inc的Ronaldl.rivest開(kāi)發(fā)出來(lái),經(jīng)md2、md3和md4發(fā)展而來(lái)。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格式,即將一個(gè)任意長(zhǎng)度的“字節(jié)串”通過(guò)一個(gè)不可逆的字符串變換算法變換成一個(gè)128bit的串。MD5是一個(gè)安全的散列算法,輸入兩個(gè)不同的明
12、文不會(huì)得到相同的輸出值,根據(jù)輸出值,不能得到原始的明文,即其過(guò)程不可逆;所以要解密MD5沒(méi)有現(xiàn)成的算法,只能用窮舉法,把可能出現(xiàn)的明文,用MD5算法散列之后,把得到的散列值和原始的數(shù)據(jù)形成一個(gè)一對(duì)一的映射表,通過(guò)比在表中比破解密碼的MD5算法散列值,通過(guò)匹配從映射表中找出破解密碼所對(duì)應(yīng)的原始明文七、實(shí)驗(yàn)過(guò)程與分析八、實(shí)驗(yàn)結(jié)果總結(jié)通過(guò)這次實(shí)驗(yàn)了解到哈希函數(shù)的特點(diǎn):壓縮性、容易計(jì)算、抗修改性、弱抗碰撞、強(qiáng)抗碰撞。而這次實(shí)驗(yàn)的主要目的是驗(yàn)證MD5算法,雖然在課堂上做實(shí)驗(yàn)的時(shí)間有限,MD5算法又很繁雜,但是在老師的講解下還是能懂的。其實(shí)要驗(yàn)證MD5算法最主要是要計(jì)算機(jī)的輔助,因?yàn)槿斯び?jì)算的可能性不大,通過(guò)計(jì)算機(jī)的計(jì)算,我們可以容易進(jìn)行求和運(yùn)算,當(dāng)完成了最后一個(gè)明文分組運(yùn)算時(shí),A,B,C,D中的數(shù)值就是最后的散列函數(shù)值。九、心得體會(huì)通過(guò)本次實(shí)驗(yàn),我了解了DES加密算法的編譯以及通過(guò)DES對(duì)于密碼的明文加密和密文解密的流程,并為以后的密碼算法編程打好基礎(chǔ)。更加熟悉的了解c+環(huán)境的編程方式。學(xué)生自評(píng)項(xiàng)目評(píng)定內(nèi)容評(píng)定結(jié)果預(yù)習(xí)情況1、 實(shí)驗(yàn)準(zhǔn)備情況2、 預(yù)習(xí)報(bào)告完整性()優(yōu)秀()良好()中等()及格()不及格實(shí)驗(yàn)表現(xiàn)1、 實(shí)驗(yàn)規(guī)范性2、 實(shí)驗(yàn)原理掌握3、 調(diào)試排錯(cuò)能力4、 操作熟練
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 研究歷程與成果
- DB61T-市場(chǎng)監(jiān)管行風(fēng)建設(shè)指南地方標(biāo)準(zhǔn)編制說(shuō)明
- 初級(jí)銀行業(yè)法律法規(guī)與綜合能力-2020年初級(jí)銀行從業(yè)資格考試《法律法規(guī)與綜合能力》真題匯編
- 壓力容器考試審核考試題庫(kù)(容標(biāo)委氣體協(xié)會(huì)聯(lián)合)
- 企業(yè)數(shù)據(jù)轉(zhuǎn)換管理規(guī)范制度
- DB2201-T 23-2022 農(nóng)安籽鵝標(biāo)準(zhǔn)規(guī)范
- DB2113-T 0008-2023 地理標(biāo)志產(chǎn)品 龍?zhí)毒G豆粉絲
- 2024-2025學(xué)年安徽省合肥市高一上學(xué)期期末復(fù)習(xí)綜合素養(yǎng)提升訓(xùn)練(三)物理試題(解析版)
- 100以?xún)?nèi)加減乘除基礎(chǔ)知識(shí)1000題(可打印)
- 2025年春季學(xué)期學(xué)校德育工作計(jì)劃及安排表
- 2024年05月浙江金華成泰農(nóng)商銀行員工招考筆試歷年參考題庫(kù)附帶答案詳解
- 帶看協(xié)議書(shū)范本(2篇)
- 2025-2030年中國(guó)科教玩具行業(yè)發(fā)展動(dòng)態(tài)及前景趨勢(shì)分析報(bào)告新版
- 馬匹寄養(yǎng)協(xié)議書(shū)
- 股權(quán)投資項(xiàng)目建議書(shū)
- 2025年高考作文專(zhuān)練(25道真題+審題立意+范文)- 2025年高考語(yǔ)文作文備考總復(fù)習(xí)
- 四年級(jí)數(shù)學(xué)脫式計(jì)算練習(xí)題100道
- 第一課 追求向上向善的道德(課時(shí)1)(課件)
- 2024年新蘇教版六年級(jí)下冊(cè)科學(xué)全冊(cè)精編課件
- NB-T 47013.1-2015 承壓設(shè)備無(wú)損檢測(cè) 第1部分-通用要求
評(píng)論
0/150
提交評(píng)論