資源描述:
《置換矩陣在置換密碼中的應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、置換矩陣在置換密碼中的應(yīng)用北京交通大學(xué)14目錄一.摘要3二.置換密碼31.概念32.實(shí)際應(yīng)用舉例43.關(guān)于置換矩陣的深入思考44.程序源代碼6三.小結(jié)13四.參考文獻(xiàn)及網(wǎng)站1414一.摘要受到思源1004姜力文同學(xué)論文的啟發(fā),本文也主要針對(duì)高等代數(shù)學(xué)在密碼學(xué)中的應(yīng)用,其中重點(diǎn)是置換矩陣在置換密碼中的應(yīng)用。本文可作為蔣同學(xué)論文的有效補(bǔ)充。置換密碼是密碼學(xué)中相對(duì)簡(jiǎn)單的一種加密方法,但是在密碼學(xué)中占據(jù)重要地位,是很多復(fù)雜加密方法的基礎(chǔ)。所以,研究置換密碼是必要的。當(dāng)然,限于水平有限,本文的切入點(diǎn)尚且比較淺顯,還有很多不足之處。如發(fā)現(xiàn)不足之處,請(qǐng)多多指正。關(guān)
2、鍵詞:高等代數(shù);密碼學(xué);置換矩陣;置換密碼二.置換密碼1.概念置換是一個(gè)簡(jiǎn)單的換位,每個(gè)置換都可以用一個(gè)置換矩陣Ek來(lái)表示。每個(gè)置換都有一個(gè)與之對(duì)應(yīng)的逆置換Dk。置換密碼的特點(diǎn)是僅有一個(gè)發(fā)送方和接受方知道的加密置換(用于加密)及對(duì)應(yīng)的逆置換(用于解密)。它是對(duì)明文L14長(zhǎng)字母組中的字母位置進(jìn)行重新排列,而每個(gè)字母本身并不改變。2.實(shí)際應(yīng)用舉例假設(shè)明文為“Amanisnotoldaslongasheisseekingsomething.”將該“字符串”刪去所有空格與標(biāo)點(diǎn)符號(hào),將大寫(xiě)字母全部換為小寫(xiě)字母,變?yōu)椤癮manisnotoldaslongashe
3、isseekingsomething”,將字母分為5個(gè)字母一組,即“amani”;“snoto”;“l(fā)dasl”;“ongas”“heiss”;“eekin”;“gsome”;“thing”。將每組字符串中的字符按順序編號(hào)為(0,1,2,3,4)。假設(shè)加密置換矩陣為Ek=(3,0,4,2,1),即在新的字符串中,3號(hào)字符為首字符,0號(hào)字符為第二個(gè)字符,以此類(lèi)推。于是,我們得到了新的字符串:“naiam”;“tsoon”;“sllad”;“aosgn”;“shsie”;“ienke”;“mgeos”;“ntgih”。則最終經(jīng)過(guò)置換后的密文即為:“nai
4、amtsoonslladaosgnshsieienkemgeosntgih”。而解密的過(guò)程與加密的過(guò)程類(lèi)似,即用解密置換矩陣Dk=(1,4,3,0,2)依照上述類(lèi)似方法操作密文,即得到明文。143.關(guān)于置換矩陣的深入思考A.置換矩陣的變化在上面的的舉例中,Ek和Dk都是1*5的矩陣。事實(shí)上,若將Ek變?yōu)?*n(n為一大于5的自然數(shù))的矩陣,即改變?cè)撓蛄康木S數(shù),那么能得到多種經(jīng)過(guò)加密后的密碼。且維數(shù)越高,相對(duì)破譯難度越大。(當(dāng)然,以現(xiàn)在的技術(shù)水平,破譯如此簡(jiǎn)單的密碼十分容易。)同理,若將Ek改為2*5的矩陣,甚至n*5的矩陣,即含有5個(gè)字符的不同字符串
5、按不同法則進(jìn)行加密,那么破譯難度又會(huì)加大。B.由加密置換矩陣得到解密置換矩陣的方法由上例,Ek=(3,0,4,2,1),則將所有元素加“1”,得到E=(4,1,5,3,2)。給上述5個(gè)元素編號(hào),即數(shù)字4為“1”號(hào),以此類(lèi)推。另D=(d1,d2,d3,d4,d5)。由于數(shù)字4為“1”號(hào),則令d4=1。由此,我們可以得到:D=(2,5,4,1,3)。將D所有元素減一,得到dk=(1,4,3,0,2),即為解密置換矩陣。C.關(guān)于置換密碼的破譯問(wèn)題事實(shí)上,置換密碼十分容易破譯。限于篇幅有限,在此不贅述破譯方法。所以,一些重要的信息如需加密還應(yīng)該選擇更為高級(jí)的
6、加密方法。14D.關(guān)于引例的說(shuō)明與補(bǔ)充引例中恰好含有5n個(gè)字符,故能正好被分為n組。事實(shí)上,若字符數(shù)不為5的倍數(shù),可在該字符串后加入適當(dāng)個(gè)字符“1”,使其成為5的倍數(shù)。則解密時(shí)將后綴的若干個(gè)“1”剔除掉便可得到我們想要的明文。4.程序源代碼以下是進(jìn)行加密,解密的程序代碼。#includeintmenu();voidaddmatrix(intb[],intc[]);voidencrypt(intx[]);voiddecipher(intx[]);intmain(void){inta;intb[5],c[5];while(1){a=me
7、nu();14getchar();if(a){switch(a){case1:addmatrix(b,c);break;case2:encrypt(b);break;case3:decipher(c);break;default:printf("您輸入了錯(cuò)誤的選項(xiàng)!");break;}}else{printf("感謝您的使用!");break;}}return0;}intmenu()14{inta;printf("****************************************************");printf("
8、請(qǐng)您選擇如下選項(xiàng):");printf("1.輸入置換矩陣(1*5):");printf("2.輸入要