現(xiàn)代密碼學(xué)-古典密碼 實(shí)驗(yàn)報(bào)告材料

上傳人:無*** 文檔編號(hào):83448120 上傳時(shí)間:2022-05-01 格式:DOC 頁數(shù):17 大?。?5.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
現(xiàn)代密碼學(xué)-古典密碼 實(shí)驗(yàn)報(bào)告材料_第1頁
第1頁 / 共17頁
現(xiàn)代密碼學(xué)-古典密碼 實(shí)驗(yàn)報(bào)告材料_第2頁
第2頁 / 共17頁
現(xiàn)代密碼學(xué)-古典密碼 實(shí)驗(yàn)報(bào)告材料_第3頁
第3頁 / 共17頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《現(xiàn)代密碼學(xué)-古典密碼 實(shí)驗(yàn)報(bào)告材料》由會(huì)員分享,可在線閱讀,更多相關(guān)《現(xiàn)代密碼學(xué)-古典密碼 實(shí)驗(yàn)報(bào)告材料(17頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、word 現(xiàn)代密碼學(xué) 實(shí) 驗(yàn) 報(bào) 告 院系:理學(xué)院 班級(jí):信安二班 : 學(xué)號(hào): 前言 密碼學(xué)〔Cryptology〕是研究秘密通信的原理和破譯秘密信息的方法的一門學(xué)科。密碼學(xué)的根本技術(shù)就是對(duì)數(shù)據(jù)進(jìn)展一組可逆的數(shù)學(xué)變換,使未授權(quán)者不能理解它的真實(shí)含義。密碼學(xué)包括密碼編碼學(xué)〔Cryptography〕和密碼分析學(xué)〔Cryptanalyst〕兩個(gè)既對(duì)立又統(tǒng)一的主要分支學(xué)科。研究密碼變化的規(guī)律并用之于編制密碼以保護(hù)信息安全的科學(xué),稱為密碼編碼學(xué)。研究密碼變化的規(guī)律并用之于密碼以獲取信息情報(bào)的科學(xué),稱為密碼分析學(xué),也叫密碼破譯學(xué)。 密碼學(xué)在信息安全中占有非常重

2、要的地位,能夠?yàn)樾畔踩峁╆P(guān)鍵理論與技術(shù)。密碼學(xué)是一門古老而深?yuàn)W的學(xué)問,按其開展進(jìn)程,經(jīng)歷了古典密碼和現(xiàn)代密碼學(xué)兩個(gè)階段?,F(xiàn)代密碼學(xué)〔Modern Cryptology〕通常被歸類為理論數(shù)學(xué)的一個(gè)分支學(xué)科,主要以可靠的數(shù)學(xué)方法和理論為根底,為保證信息的性、完整性、可認(rèn)證性、可控性、不可抵賴性等提供關(guān)鍵理論與技術(shù)。 古典密碼算法實(shí)驗(yàn) 在密碼編碼體制中有兩種 根本也是 古老的編碼體制一直沿用至今,它們是代替密碼和置換密碼,其歷史悠久并且是現(xiàn)代密碼體制的根本組成局部,在密碼學(xué)中占有重要地位。古典密碼是密碼學(xué)開展的一個(gè)階段,也是近代密碼學(xué)產(chǎn)

3、生的淵源,一般把 Shannon 在 1949 年發(fā)表“系統(tǒng)的通信理論〞之前的時(shí)期稱為古典密碼時(shí)期。盡管古典密碼大多比擬簡(jiǎn)單,一般可用手工或機(jī)械方式實(shí)現(xiàn),且都可用統(tǒng)計(jì)分析方法破譯,目前已很少采用。但是,古典密碼所采用的代替技術(shù)和置換技術(shù)仍然是現(xiàn)代分組密碼算法設(shè)計(jì)的根底,了解它們的設(shè)計(jì)原理,有助于理解、設(shè)計(jì)和分析現(xiàn)代密碼。 一、 實(shí)驗(yàn)?zāi)康? 通過編程實(shí)現(xiàn)經(jīng)典的代替密碼算法和置換密碼,包括移位密碼、維吉尼亞密碼、周期置換密碼、列置換密碼,加深對(duì)代替技術(shù)的了解,為現(xiàn)代分組密碼實(shí)驗(yàn)奠定根底。 二、 實(shí)驗(yàn)原理 代替〔Substitution〕是古典密碼中 根本的處理技巧,就是將明文字母由其他字

4、母表中的字母替換的一種方法。代替密碼〔Substitution Cipher〕就是使用代替法進(jìn)展加解密的密碼算法。代替密碼的密鑰是一個(gè)替換表,它表示了明文字母與密文字母的對(duì)應(yīng)關(guān)系。加密時(shí),通過查表,明文字母被逐個(gè)替換后,生成看似無任何意義的字母串,即密文。解密時(shí),逆向使用替換表,將密文字母逐個(gè)替換為明文字母。 按照一個(gè)明文字母是否總是被一個(gè)固定的字母代替進(jìn)展劃分,代替密碼可分為兩類: (1) 單表代替密碼〔Monoalphabetic Substitution Cipher〕:明文中出現(xiàn)的同一個(gè)字母,不管它出現(xiàn)在什么位置,在加密時(shí)都用一樣的字母來代替。移位密碼就是單表代替密碼。 (2)

5、多表代替密碼〔Polyalphabetic Substitution Cipher〕:明文中出現(xiàn)的同一個(gè)字母,在加密時(shí)不是完全被一樣的字母代替,而會(huì)根據(jù)其出現(xiàn)的位置次序用不同的字母代替。維吉利亞密碼就是多表代替密碼。 1.移位密碼 移位密碼〔Shift Cipher〕是一種典型的單表替代密碼,也稱為加法密碼。 移位密碼的加密方法就是將明文中的每個(gè)字母用其在字母表后面的第 k 個(gè)字母替代,它的加密過程可以表示為: c = (m + k) mod n 其中,m 為明文字母在字母表中的位置數(shù);n 為字母表中的字母總數(shù);k 為密鑰;c 為密文字母在字母表中對(duì)應(yīng)的位置數(shù)。相應(yīng)的,移位密碼的解密

6、過程可以表示為: m = (c - k) mod n 實(shí)驗(yàn)代碼: #include #include using namespace std; //定義一些全局變量 char str[100]; //用于存儲(chǔ)處理前字符串 char enstr[100]; //用于存儲(chǔ)處理后字符串 int num=0; //用于累計(jì)字符數(shù)量 char * p; //用于指向處理字符串 int key; //加密 void encrypt() { while(*p!='\0')

7、{ *p=(*p-97+key)%26+97; p++; } cout<<〞CRYPT_OK〞<

8、密\n3.退出"<>ord; if(ord==1) { cout<<"請(qǐng)輸入待處理字符串:"<>str; p=str; cout<<"請(qǐng)輸入密鑰:"; cin>>key; encrypt(); } if(ord==2) { cout<<"請(qǐng)輸入待處理字符串:"<>str; p=str; cout<<"請(qǐng)輸入密鑰:"; cin>>key; decrypt(); } if(ord==

9、3) break; } } 實(shí)驗(yàn)結(jié)果: 2.維吉尼亞密碼 維吉尼亞密碼〔Vigenere Cipher〕是一種多表代替密碼,其本質(zhì)是周期移位密碼。 維吉尼亞密碼的〔用戶〕密鑰為一含有 d 個(gè)字母的有限字母序列 k = k0k1…kd-1 加密時(shí),首先將用戶密鑰進(jìn)展周期擴(kuò)展〔周期為 d〕,擴(kuò)展后的無限字母序列稱為工作密鑰,記為 K = K0K1…Ki…其中 Ki = Ki mod d,i=0,1,… 當(dāng) d=1 時(shí),維吉尼亞密碼就是移位密碼。對(duì)于含有 l 個(gè)字母的明文,維吉尼亞加密過程可以表示為: ci = (mi+Ki ) mod n 其中,M = m0m1…

10、mi…ml-1 為明文,C= c0c1…ci…cl-1 為密文,K = K0K1…Ki…Kl-1 為工作鑰, n 為明文字母表的長度,l 為明文長度〔含有字母的數(shù)目〕。 例如,使用用戶鑰 cat,對(duì)明文“vigenere cipher〞 進(jìn)展維吉尼亞加密。此時(shí),n=26〔對(duì)應(yīng)英文字母表〕,用戶鑰 c=3、a=0、t=19,得到的密文為“xizgnxtevkpagr〞。 實(shí)驗(yàn)代碼: #include using namespace std; int main() { while(1) { char choice; cout<

11、-----維吉尼亞加密解密------------------"<>choice; if(choice=='1') { char arra[100]="",arrb[100]="",arrc[100]=""; int i=0; char a,b,c; cout<<"請(qǐng)輸入明文:"; cin>>arrb; cout<<"請(qǐng)輸入密鑰:"; cin>>arra; int an=strlen(arra); int bn=strlen(arrb); if(an

12、r(i=an;i90) { c=char(64+c%90); arrc[i]=c; } else arrc[i]=char(c); } cout<<"加密后密文為:"; for(i=0;i

13、00]=""; int i=0; char a,b,c; cout<<"請(qǐng)輸入密文:"; cin>>arrc; cout<<"請(qǐng)輸入密鑰:"; cin>>arra; //cout<

14、 { b=b+26; arrb[i]=char(b); } else arrb[i]=char(b); } cout<<"解密后明文為:"; for(i=0;i

15、m 的一個(gè)置換π交換列的位置次序,再按垂直方向(即按列)讀出即得密文。解密就是將密文按一樣的寬度 m 垂直在寫在紙上,按置換π的逆置換π?1 交換列的位置次序,然后水平地讀出得到明文。置換π就是密鑰。 實(shí)驗(yàn)代碼: 主函數(shù)main(); #include #include #include #include int main(int argc) { char *str1,*key,*str3,c; str1=(char *)malloc(500); key=(char *)m

16、alloc(500); str3=(char *)malloc(500); printf("Column permutation cipher Encryption & Decryption\n----------------------------\n Please select which type \n E:Encription\n D:Decription\n Q:Quit\n----------------------------\n"); c=getchar(); while(c!='q'&&c!='Q') { if(c=='E'||c=='e') { ge

17、tchar(); printf("Please input the plaintext:\n"); gets(str1); printf("Please input the Encrption Key:\n"); gets(key); printf("The cipher is:\n"); Encryption(str1,key); printf("Column permutation cipher Encryption & Decryption\n----------------------------\n Please select w

18、hich type \n E:Encription\n D:Decription\n Q:Quit\n----------------------------\n"); c=getchar(); } else { getchar(); printf("Please input the Decryption Key:\n"); gets(key); printf("Please input the ciphertext:\n"); gets(str3); printf("The plaintext is:\n"); Decr

19、yption(key,str3); printf("Column permutation cipher Encryption & Decryption\n----------------------------\n Please select which type \n E:Encription\n D:Decription\n Q:Quit\n----------------------------\n"); c=getchar(); free(str1); free(key); free(str3); } } return 0; } 加密函數(shù): void Encryp

20、tion(char str1[],char key[]) { int i,j; char num[300]; int plen=strlen(str1); int len=strlen(key); for(i=0;i

21、 for(j=0;j

22、for(i=0;i

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!