資源描述:
《現(xiàn)代密碼學課程設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學術(shù)論文-天天文庫。
1、現(xiàn)代密碼學課程(設(shè)計)題目:現(xiàn)代密碼學課程設(shè)計姓名:學號:192102-16院(系):計算機學院專業(yè):信息安全指導教師:職稱:評閱人:職稱:2012年12月19學校代碼:本科生學號:2中現(xiàn)代密碼學課程設(shè)計現(xiàn)代密碼學課程設(shè)計本學科專業(yè):信息安全二〇一二年十二月19第一章、引言5第二章、經(jīng)典密碼加密系統(tǒng)62.1仿射加密62.2Playfair加密72.3Vigenere加密92.4Hill密碼11第三章、ElGamal加密和簽名123.1算法資料123.2程序與算法133.3運行結(jié)果14第四章、Rabin加密和簽名144.1
2、算法資料144.2程序與算法154.3運行結(jié)果15第五章、RSA加密與解密165.1算法資料175.2程序與算法185.3運行結(jié)果第六章、結(jié)束語2019引言本文詳細敘述了古典密碼包括仿射密碼、Hill密碼、Vigenere密碼、Playfaire密碼,以及基于公鑰密碼的加密和簽名體制的內(nèi)在結(jié)構(gòu)并予以程序?qū)崿F(xiàn)。19實驗一經(jīng)典密碼加密系統(tǒng)2.1仿射密碼2.1.1算法資料加法密碼和乘法密碼結(jié)合就構(gòu)成仿射密碼,仿射密碼的加密和解密算法是: C=Ek(m)=(k1m+k2)modn M=Dk(c)=k3(c-k2)modn(其
3、中(k3×k1)mod26=1) 仿射密碼具有可逆性的條件是gcd(k1,n)=1。當k1=1時,仿射密碼變?yōu)榧臃艽a,當k2=0時,仿射密碼變?yōu)槌朔艽a。仿射密碼中的密鑰空間的大小為nφ(n),當n為26字母,φ(n)=12,因此仿射密碼的密鑰空間為12×26=312。2.1.2程序與算法//加密intjiami(intk1,intk2,intm,intg){intf=k1*g+k2;f=f%m;returnf;}//解密intjiemi(intk1,intk2,intm,intn){intf=niyuan(m,k1
4、)*(n-k2);f=f%m;returnf;}2.1.3運行結(jié)果192.2Playfair2.2.1算法資料Playfai算法r根據(jù)下列規(guī)則一次對明文的兩個字母進行加密。這兩個字母構(gòu)成一對。其加密規(guī)則如下:(1)一對明文字母如果是重復的,則在這對明文字母中間插入一個填充字符,如x。因此,單詞session將被分割成:sesssion.(2)如果分割后的明文字母對在矩陣的同一行中都出現(xiàn),則分別用矩陣中其右側(cè)的字母代替.行的最后一個字母山行的E第一個字母代替。例如,on被加密成qo.而st被加密為tn。(3)如果分割后的明
5、文字母對在矩陣的一列中都出現(xiàn),則分別用矩陣中其下方的字母代替.列的最后一個字母由列的第一個字母代替。例如,en被加密成nU.而aW被加密成ba。
(4)如果分割后的明文字母對既不在矩陣的同一列中都出現(xiàn)也不在矩陣的同一行中都出現(xiàn).密文是這兩個字母所在的長方形的另兩個頂點。例如,8e被加密成nk,而cu被加密成ix(或ix)。(5)如果明文有奇數(shù)個字母,末尾加一個無效字母。
2.2.2程序與算法19上述代碼主要是用來填充矩陣,首先將明文矩陣進行填充,也就是第一張圖片所顯示的,這是算法的關(guān)鍵,也是第一步所在。然后上面的算法中還
6、有因為是將明文兩兩分組,即每兩個明文分為一組,那么當明文為奇數(shù)的時候,就需要添加一個無關(guān)字符,使它可以達到偶數(shù)個,以方便分組。在算法設(shè)計過程中,我一共設(shè)計了兩個函數(shù),即decrypt()加密函數(shù),encrypt()解密函數(shù),main()主函數(shù)。主函數(shù)中調(diào)用加密函數(shù)和解密函數(shù),使程序可以比較順利的進行。1.34運行結(jié)果192.3Vigenere加密2.3.1算法資料1.首先使用維吉尼亞方陣,它的基本方陣是26列26行。方陣的第一行是a到z按正常順序排列的字母表,第二行是第一行左移循環(huán)一位得到得,其他各行依次類推。2.加密時
7、,按照密鑰字的指示,決定采用哪一個單表。例如密鑰字是bupt,加密時,明文的第一個字母用與附加列上字母b相對應的密碼表進行加密,明文的第二個字母用與附加列的字母u相對應的密碼表進行加密,依次類推。3.令英文字母a,b,…,z對應于從0到25的整數(shù)。設(shè)明文是n個字母組成的字符串,即m=m1m2m3m4…mn密鑰字周期性地延伸就給出了明文加密所需的工作密鑰K=k1k2…kn,E(m)=C=c1c2…cn加密:Ci=mi+kimod26解密:mi=ci-kimod26,i=1,2,3,…,n2.3.2程序與算法19加密算法的關(guān)
8、鍵是給出初始密鑰,例如第一個密鑰字母是e,對第一個明文字母p進行加密時,選用左邊附加列上的字母e對應的那一行作為代替密碼表,查處與p相對應的密文字母是T,依次類推即可得出明文。上述代碼中的生成密鑰部分為核心代碼,只有密鑰更長,才能保證密碼算法的可靠性。解密算法和加密算法只需要減去密鑰繼續(xù)模26即可得到。1.24運行結(jié)