數(shù)學建模實驗報告古典密碼與破譯_第1頁
數(shù)學建模實驗報告古典密碼與破譯_第2頁
數(shù)學建模實驗報告古典密碼與破譯_第3頁
數(shù)學建模實驗報告古典密碼與破譯_第4頁
數(shù)學建模實驗報告古典密碼與破譯_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEwilyes11收集博客(與學習無關):/u/1810231802古典密碼與破譯一、實驗目的及意義本實驗主要涉及代數(shù),利用模運算意義下的矩陣乘法、求逆矩陣、線性無關、線性空間與線性變換等概念和運算,學習古典密碼體制的加密、解密和破譯過程.二、實驗內容1.Hill2加密;2.Hill2解密。三、實驗步驟1.開啟軟件平臺——MATLAB,開啟MATLAB編輯窗口;2.根據(jù)加密解密算法步驟編寫M文件保存文件并運行;觀察運行結果(數(shù)值或圖形);根據(jù)觀察到的結果和體會寫出實驗報告。四、實驗要求與任務根據(jù)實驗內容和步驟,完成以下實驗,要求寫出實驗報告。1.實際問題(甲)的修正:按照甲方與乙方的約定,他們之間的密文通信采用Hill2密碼,密鑰為二階矩陣且漢語拼音的26個字母以及空格(字母A~Z的表值為1~26,空格的表值為0)與0~26之間的整數(shù)建立一一對應的關系,稱之為字母的表值,試修正表1、表2以及附錄中的程序,以給出模27意義下矩陣可逆的判別方法和具體求法.2.若將你姓名的拼音作為明文,例如:趙本山(ZHAOBENSHAN,含空格),密鑰等參見練習1,求其在模27意義下的Hill2密文.3.若將你姓名的拼音作為Hill2密文,例如:趙本山(ZHAOBENSHAN,含空格),密鑰等參見練習1,求其在模27意義下的明文.五.程序代碼及運行結果(經調試后正確的源程序)1.實際問題(甲)的修正:按照甲方與乙方的約定,他們之間的密文通信采用Hill2密碼,密鑰為二階矩陣且漢語拼音的26個字母以及空格(字母A~Z的表值為1~26,空格的表值為0)與0~26之間的整數(shù)建立一一對應的關系,稱之為字母的表值,試修正表1、表2以及附錄中的程序,以給出模27意義下矩陣可逆的判別方法和具體求法.表1明文字母的表值空格ABCDEFGH012345678IJKLMNOPQ91011121314151617RSTUVWXYZ181920212223242526表2模27倒數(shù)表a124578101113141617192022232526a-1114711417195252228102316201326表2可用①中程序求得:求模27倒數(shù)表(prog1_MOD27.m)程序代碼:m=27;fora=1:mfori=1:mifmod(a*i,m)==1fprintf('%d的模%d倒數(shù)是:%d\n',a,m,i);break;end;end;end運行結果:1的模27倒數(shù)是:12的模27倒數(shù)是:144的模27倒數(shù)是:75的模27倒數(shù)是:117的模27倒數(shù)是:48的模27倒數(shù)是:1710的模27倒數(shù)是:1911的模27倒數(shù)是:513的模27倒數(shù)是:2514的模27倒數(shù)是:216的模27倒數(shù)是:2217的模27倒數(shù)是:819的模27倒數(shù)是:1020的模27倒數(shù)是:2322的模27倒數(shù)是:1623的模27倒數(shù)是:2025的模27倒數(shù)是:1326的模27倒數(shù)是:26判斷二階矩陣在模27意義下是否可逆,可逆則求其逆(prog1.m)程序代碼:m=27;aa=input('輸入一個2×2的矩陣,格式:[a11a12;a21a22]:')whilesize(aa)~=[22]aa=input('輸入一個2×2的矩陣,格式:[a11a12;a21a22]:')enda=det(aa);bb=aa;ifgcd(m,a)~=1disp('該矩陣不可逆')elsefori=1:mifmod(a*i,m)==1antaa=i;break;endendastar=[aa(2,2)-aa(1,2);-aa(2,1)aa(1,1)];invaa=mod(antaa*astar,m);disp(['原矩陣是:',mat2str(aa),',它的逆矩陣(mod',num2str(m),')是:',mat2str(invaa)])end運行結果:輸入一個2×2的矩陣,格式:[a11a12;a21a22]:[12;04]aa=1204原矩陣是:[12;04],它的逆矩陣(mod27)是:[113;07]2.若將你姓名的拼音作為明文,例如:趙本山(ZHAOBENSHAN,含空格),密鑰等參見練習1,求其在模27意義下的Hill2密文.程序代碼:(prog2.m)m=27;enmat=[12;04];demat=[113;07];ZERO=64;c=[];en=[];fprintf('本組成員的姓名為吳亞山李杰趙傳來,拼音為:\n')fprintf('WUYASHANLIJIEZHAOCHUANLAI\n')fprintf('以[12;04]為密鑰對此拼音串加密\n')astr=['WUYASHANLIJIEZHAOCHUANLAI'];an=double(astr);ifmod(length(an),2)==1an=[an,an(length(an))];endan=an-ZERO;fori=1:length(an)ifan(i)==-32an(i)=0;endendc=reshape(an,2,length(an)/2);dn=mod(enmat*c,m);en=reshape(dn,1,length(an));en=en+ZERO;fori=1:length(en)ifen(i)==64en(i)=32;endenden=en(1:length(an));disp(['密文是:',char(en)])運行結果:本組成員的姓名為吳亞山李杰趙傳來,拼音為:WUYASHANLIJIEZHAOCHUANLAI以[12;04]為密鑰對此拼音串加密密文是:KCWSAHEBBXUIAIEOEDFFLWCBBXUSI3.若將你姓名的拼音作為Hill2密文,例如:趙本山(ZHAOBENSHAN,含空格),密鑰等參見練習1,求其在模27意義下的明文.程序代碼:(prog3.m)m=27;enmat=[12;04];demat=[113;07];ZERO=64;c=[];en=[];fprintf('本組成員的姓名為吳亞山李杰趙傳來,拼音密文為:\n')fprintf('KCWSAHEBBXUIAIEOEDFFLWCBBXUSI\n')fprintf('以[113;07]為密鑰對此拼音串密文解密\n')astr=['KCWSAHEBBXUIAIEOEDFFLWCBBXUSI'];an=double(astr);ifmod(length(an),2)==1an=[an,an(length(an))];endan=an-ZERO;fori=1:length(an)ifan(i)==-32an(i)=0;endendc=reshape(an,2,length(an)/2);dn=mod(demat*c,m);en=reshape(dn,1,length(an));en=en+ZERO;fori=1:length(en)ifen(i)==64en(i)=32;endenden=en(1:length(an));disp(['明文是:',char(en)])運行結果:本組成員的姓名為吳亞山李杰趙傳來,拼音密文為:KCWSAHEBBXUIAIEOEDFFLWCBBXUSI以[113;07]為密鑰對此拼音串密文解密明文是:WUYASHANLIJIEZHAOCHUANLAI六.實驗總結本實驗主要涉及代數(shù),利用模運算意義下的矩陣乘法、求逆矩陣、線性無關、線性空間與線性變換等概念和運算,學習古典密碼體制的加密、解密和破譯過程.實驗中解決了如下問題:求模27倒數(shù)表;判斷二階矩陣在模27意義下是否可逆,可逆則求其逆;求明文字符串在模27意義下的Hill2密文;求密文字符串在模27意義下的Hill2密文。在測試求密文的程序時,我發(fā)現(xiàn)按照文中表1給定的明文字母表值無法加密每個字母都用空格分隔的字符串(第一個字符為字母),如:"ABCDEFG",經過分析,我覺得是因為空格的明文為0,經過密鑰左乘后對原始數(shù)據(jù)沒有影響,故沒實現(xiàn)加密。

溫馨提示

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

評論

0/150

提交評論