




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、現(xiàn)代密碼學(xué)實驗報告院系:理學(xué)院班級:信安二班姓名:學(xué)號:前言 密碼學(xué)(Cryptology)是研究秘密通信的原理和破譯秘密信息的方法的一門學(xué)科。密碼學(xué)的基本技術(shù)就是對數(shù)據(jù)進(jìn)行一組可逆的數(shù)學(xué)變換,使未授權(quán)者不能理解它的真實含義。密碼學(xué)包括密碼編碼學(xué)(Cryptography)和密碼分析學(xué)(Cryptanalyst)兩個既對立又統(tǒng)一的主要分支學(xué)科。研究密碼變化的規(guī)律并用之于編制密碼以保護(hù)信息安全的科學(xué),稱為密碼編碼學(xué)。研究密碼變化的規(guī)律并用之于密碼以獲取信息情報的科學(xué),稱為密碼分析學(xué),也叫密碼破譯學(xué)。 密碼學(xué)在信息安全中占有非常重要的地位,能夠為信息安全提供關(guān)鍵理論與技術(shù)。密碼學(xué)是一門古老而深奧的
2、學(xué)問,按其發(fā)展進(jìn)程,經(jīng)歷了古典密碼和現(xiàn)代密碼學(xué)兩個階段?,F(xiàn)代密碼學(xué)(Modern Cryptology)通常被歸類為理論數(shù)學(xué)的一個分支學(xué)科,主要以可靠的數(shù)學(xué)方法和理論為基礎(chǔ),為保證信息的機密性、完整性、可認(rèn)證性、可控性、不可抵賴性等提供關(guān)鍵理論與技術(shù)。 古典密碼算法實驗在密碼編碼體制中有兩種 基本也是 古老的編碼體制一直沿用至今,它們是代替密碼和置換密碼,其歷史悠久并且是現(xiàn)代密碼體制的基本組成部分,在密碼學(xué)中占有重要地位。古典密碼是密碼學(xué)發(fā)展的一個階段,也是近代密碼學(xué)產(chǎn)生的淵源,一般把 Shannon 在 1949 年發(fā)表“保密系統(tǒng)的通信理論”之前的時期稱為古典密碼時期。盡管古典密碼大多比較簡
3、單,一般可用手工或機械方式實現(xiàn),且都可用統(tǒng)計分析方法破譯,目前已很少采用。但是,古典密碼所采用的代替技術(shù)和置換技術(shù)仍然是現(xiàn)代分組密碼算法設(shè)計的基礎(chǔ),了解它們的設(shè)計原理,有助于理解、設(shè)計和分析現(xiàn)代密碼。 一、 實驗?zāi)康?通過編程實現(xiàn)經(jīng)典的代替密碼算法和置換密碼,包括移位密碼、維吉尼亞密碼、周期置換密碼、列置換密碼,加深對代替技術(shù)的了解,為現(xiàn)代分組密碼實驗奠定基礎(chǔ)。 二、 實驗原理 代替(Substitution)是古典密碼中 基本的處理技巧,就是將明文字母由其他字母表中的字母替換的一種方法。代替密碼(Substitution Cipher)就是使用代替法進(jìn)行加解密的密碼算法。代替密碼的密鑰是一個
4、替換表,它表示了明文字母與密文字母的對應(yīng)關(guān)系。加密時,通過查表,明文字母被逐個替換后,生成看似無任何意義的字母串,即密文。解密時,逆向使用替換表,將密文字母逐個替換為明文字母。 按照一個明文字母是否總是被一個固定的字母代替進(jìn)行劃分,代替密碼可分為兩類: (1) 單表代替密碼(Monoalphabetic Substitution Cipher):明文中出現(xiàn)的同一個字母,不管它出現(xiàn)在什么位置,在加密時都用相同的字母來代替。移位密碼就是單表代替密碼。 (2) 多表代替密碼(Polyalphabetic Substitution Cipher):明文中出現(xiàn)的同一個字母,在加密時不是完全被相同的字母代
5、替,而會根據(jù)其出現(xiàn)的位置次序用不同的字母代替。維吉利亞密碼就是多表代替密碼。 1 移位密碼 移位密碼(Shift Cipher)是一種典型的單表替代密碼,也稱為加法密碼。 移位密碼的加密方法就是將明文中的每個字母用其在字母表后面的第 k 個字母替代,它的加密過程可以表示為: c = (m + k) mod n其中,m 為明文字母在字母表中的位置數(shù);n 為字母表中的字母總數(shù);k 為密鑰;c 為密文字母在字母表中對應(yīng)的位置數(shù)。相應(yīng)的,移位密碼的解密過程可以表示為:m = (c - k) mod n實驗代碼:#include#includeusing namespace std;/定義一些全局變量c
6、har str100; /用于存儲處理前字符串char enstr100; /用于存儲處理后字符串int num=0; /用于累計字符數(shù)量char * p; /用于指向處理字符串int key;/加密void encrypt()while(*p!=0) *p=(*p-97+key)%26+97;p+;cout”CRYPT_OK”endl;cout加密后字符:strendlendl;/解密void decrypt()while(*p!=0)*p=(*p-71-key)%26+97;p+;Cout”CRYPT_OK”endl;cout解密后字符:strendlendl;void main()int
7、 ord;while(1)cout1.加密n2.解密n3.退出endl;p=str;coutord;if(ord=1)cout請輸入待處理字符串:str;p=str; coutkey;encrypt();if(ord=2) cout請輸入待處理字符串:str;p=str; coutkey;decrypt();if(ord=3) break; 實驗結(jié)果: 2 維吉尼亞密碼 維吉尼亞密碼(Vigenere Cipher)是一種多表代替密碼,其本質(zhì)是周期移位密碼。 維吉尼亞密碼的(用戶)密鑰為一含有 d 個字母的有限字母序列 k = k0k1kd-1加密時,首先將用戶密鑰進(jìn)行周期擴展(周期為 d),
8、擴展后的無限字母序列稱為工作密鑰,記為 K = K0K1Ki 其中 Ki = Ki mod d ,i=0,1, 當(dāng) d=1 時,維吉尼亞密碼就是移位密碼。對于含有 l 個字母的明文,維吉尼亞加密過程可以表示為: ci = (miKi ) mod n其中,M = m0m1miml-1 為明文,C = c0c1cicl-1 為密文,K = K0K1KiKl-1 為工作鑰, n 為明文字母表的長度,l 為明文長度(含有字母的數(shù)目)。 例如,使用用戶鑰 cat,對明文“vigenere cipher” 進(jìn)行維吉尼亞加密。此時,n=26(對應(yīng)英文字母表),用戶鑰 c=3、a=0、t=19,得到的密文為“
9、xizgnxtevkpagr”。實驗代碼: #includeusing namespace std;int main()while(1)char choice;coutendl-維吉尼亞加密解密-endl;cout輸入1進(jìn)行加密,輸入2進(jìn)行解密,輸入3退出choice;if(choice=1)char arra100=,arrb100=,arrc100=;int i=0;char a,b,c;coutarrb;coutarra;int an=strlen(arra);int bn=strlen(arrb);if(anbn)for(i=an;ibn;i+)arrai=arrai%an;for(i
10、=0;i90)c=char(64+c%90);arrci=c;elsearrci=char(c);cout加密后密文為:;for(i=0;istrlen(arrc);i+)coutarrci;else if(choice=2)char arra100=,arrb100=,arrc100=;int i=0;char a,b,c;coutarrc;coutarra;/coutsizeof(arra)endl;/coutstrlen(arra);int an=strlen(arra);int cn=strlen(arrc);if(ancn)for(i=an;icn;i+)arrai=arrai%an
11、;for(i=0;icn;i+)c=arrci;a=arrai;b=c-a+97;if(b97) b=b+26; arrbi=char(b); else arrbi=char(b);cout解密后明文為:;for(i=0;istrlen(arrb);i+)coutarrbi;else if(choice=3)return 0;elsecoutendlerror,輸入不符!endl;實驗結(jié)果:3 列置換密碼 列置換密碼也稱為矩陣置換密碼。其加解密方法如下:把明文字符以固定的寬度 m(分組長度)水平地(按行)寫在一張紙上,按 1,2,m 的一個置換交換列的位置次序,再按垂直方向(即按列)讀出即得密
12、文。解密就是將密文按相同的寬度 m 垂直在寫在紙上,按置換的逆置換 1 交換列的位置次序,然后水平地讀出得到明文。置換就是密鑰。實驗代碼:主函數(shù)main();#include #include #include #include int main(int argc)char *str1,*key,*str3,c; str1=(char *)malloc(500); key=(char *)malloc(500); str3=(char *)malloc(500);printf(Column permutation cipher Encryption & Decryptionn-n Please
13、 select which type n E:Encriptionn D:Decriptionn Q:Quitn-n); c=getchar();while(c!=q&c!=Q)if(c=E|c=e)getchar(); 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 Encrypti
14、on & Decryptionn-n Please select which type n E:Encriptionn D:Decriptionn Q:Quitn-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); Decryption(key,str3);printf(Column permutation cipher Enc
15、ryption & Decryptionn-n Please select which type n E:Encriptionn D:Decriptionn Q:Quitn-n);c=getchar();free(str1);free(key);free(str3);return 0;加密函數(shù):void Encryption(char str1,char key)int i,j;char num300;int plen=strlen(str1);int len=strlen(key);for(i=0;ilen;i+)numi=1;for(j=0;jlen;j+)if(keyjkeyi)numi+;for(j=0;ji;j+)if(keyj = keyi)numi=numi+1; printf(n); for(i=0;ilen;i+) for(j=0;jplen/len;j+) printf(%c,str1j*len+numi-1); printf( ); printf(n);解密函數(shù):void Decryption(char key,char str3)int i,j;char num500;char cnum500;int clen=strlen(str3);int len=strlen(key);for
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年份三月份裝修合同墻漆色差判定標(biāo)準(zhǔn)與賠償機制
- 2025年江蘇省職業(yè)院校技能大賽中職組(護(hù)理技能)參考試題(附答案)
- 計算機二級考試知識圖譜試題及答案
- 口腔診所后勤人員年度總結(jié)
- 幼兒園德育工作年終總結(jié)
- 2025深圳的勞動合同模板
- 高中學(xué)業(yè)規(guī)劃咨詢服務(wù)合同范本
- 民間個人借款擔(dān)保合同范本
- 材料采購合同樣本
- ppp項目合同標(biāo)準(zhǔn)文本6
- 2024年中國林蛙油市場調(diào)查研究報告
- PANTONE潘通色卡TPX顏色在線查詢(1-2部分)
- 2021《超星爾雅》舞蹈鑒賞章節(jié)測試答案
- 精益生產(chǎn)知識學(xué)習(xí)考試復(fù)習(xí)題庫300題(含答案)
- 第三單元第1課 標(biāo)志設(shè)計 課件 2024-2025學(xué)年人教版(2024)初中美術(shù)七年級上冊
- 賽力斯招聘在線測評題
- 學(xué)做麥糊燒課件
- 內(nèi)蒙古師范大學(xué)定向協(xié)議書
- T-CTSS 86-2024 原味茶飲料標(biāo)準(zhǔn)
- 13.福建-現(xiàn)場說課教學(xué)設(shè)計-金屬的性質(zhì)-黃毓
- 關(guān)于鎮(zhèn)三資工作的調(diào)研報告
評論
0/150
提交評論