仿射密碼實驗報告

仿射密碼實驗報告

ID:24932289

大?。?5.50 KB

頁數:4頁

時間:2018-11-17

仿射密碼實驗報告_第1頁
仿射密碼實驗報告_第2頁
仿射密碼實驗報告_第3頁
仿射密碼實驗報告_第4頁
資源描述:

《仿射密碼實驗報告》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫

1、實驗報告姓名:1111學號:22222班級:2222日期:2013211古典密碼(仿射密碼)一、實驗環(huán)境1.硬件配置:處理器:Corei5M450@2.40GHZ,內存2GB,主硬盤320G2.使用軟件:(1)操作系統(tǒng):win7(2)軟件工具:MicrosoftVisualC++6.0二、實驗設計的相關概念或基本原理1.仿射密碼的基本思想:加法密碼和乘法密碼結合就構成仿射密碼,仿射密碼的加密和解密算法是:  C=Ek(m)=(k1m+k2)modn  M=Dk(c)=k1(c-k2)modn o仿射密碼具有可逆性的條件是gcd(k,n

2、)=1。當k1=1時,仿射密碼變?yōu)榧臃艽a,當k2=0時,仿射密碼變?yōu)槌朔艽a。 o仿射密碼中的密鑰空間的大小為nφ(n),當n為26字母,φ(n)=12,因此仿射密碼的密鑰空間為12×26=312。三、實驗內容根據實驗原理的介紹,創(chuàng)建一個明文信息,再確定k1,k2,編寫實現程序,實現加密和解密操作。實驗流程圖:四、實驗總結分析關鍵代碼:1.輾轉相除法求y,z的最大公因數:intgcd(inty,intz){intk=0;do{k=y%z;y=z;z=k;}while(k!=0);returny;}2.求a相對于b的逆intNi(in

3、ta,intb){inti=0;while(a*(++i)%b!=1);returni;}1.加密算法if(a[i]>96&&a[i]<123)b[i]=(k1*(a[i]-97)+k2)%26+65;elseif(a[i]>64&&a[i]<91)b[i]=(k1*(a[i]-65)+k2)%26+65;2.解密算法if(b[i]>64&&b[i]<91)tmp=Ni(k1,26)*((b[i]-65)-k2);if(tmp<0)a[i]=tmp%26+26+97;elsea[i]=tmp%26+97;結果顯示:5.小結仿射密碼的加

4、密較一般的古典密碼更難以破解一些,因為它的密鑰空間相對較大。在研究加密思想的過程中,我編程遇到的主要難題是如何求逆元的過程。我在不斷查詢各種資料,復習了線性代數的相關知識以后,決定將幾種求法都上機調試了一遍,并參考了前人編寫的各種代碼實現方法,最終選定了其中一種我認為簡單易行的方法。由于我設置了要求輸入明文或者密文時以“#”號結尾,故當我嘗試著故意忘記輸入結尾符號時,發(fā)現程序出現不可預知的錯誤,會跳出亂碼。由此我體會到,一個好的開發(fā)軟件必須從用戶的角度,考慮各種用戶可能輸入的各種情況,進行報錯或者修正,這樣才具有可靠性。

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。