


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、無關(guān)于凱撒密碼的實(shí)現(xiàn)原理關(guān)于凱撒密碼的實(shí)現(xiàn)原理班級(jí):姓名:學(xué)號(hào):指導(dǎo)老師:一、一、設(shè)計(jì)要求說明設(shè)計(jì)要求說明1、 設(shè)計(jì)一個(gè)凱撒密碼的加密和解密的程序設(shè)計(jì)一個(gè)凱撒密碼的加密和解密的程序,要求輸入一段字符和密碼要求輸入一段字符和密碼,輸出相應(yīng)的密文輸出相應(yīng)的密文,完成加密過程完成加密過程;若輸入被加密的密文及解密密鑰,能還原出原文,完成解密。若輸入被加密的密文及解密密鑰,能還原出原文,完成解密。2、 語言不限,工具不限,獨(dú)立完成,參加答辯。語言不限,工具不限,獨(dú)立完成,參加答辯。3、 嚴(yán)格按照格式的要求完成文檔,在第六部分的運(yùn)行結(jié)果分析中,要求抓圖說明。嚴(yán)格按照格式的要求完成文檔,在第六部分的運(yùn)行結(jié)
2、果分析中,要求抓圖說明。二、二、基礎(chǔ)知識(shí)介紹基礎(chǔ)知識(shí)介紹凱撒密碼的歷史凱撒密碼的歷史凱撒密碼(caeser)是羅馬擴(kuò)張時(shí)期朱利斯凱撒(Julius Caesar)創(chuàng)造的,用于加密通過信使傳遞的作戰(zhàn)命令。它將字母表中的字母移動(dòng)一定位置而實(shí)現(xiàn)加密。古羅馬隨筆作家修托尼厄斯在他的作品中披露,凱撒常用一種“密表”給他的朋友寫信。這里所說的密表,在密碼學(xué)上稱為“凱撒密表”。用現(xiàn)代的眼光看,凱撒密表是一種相當(dāng)簡單的加密變換,就是把明文中的每一個(gè)字母用它在字母表上位置后面的第三個(gè)字母代替。古羅馬文字就是現(xiàn)在所稱的拉丁文,其字母就是我們從英語中熟知的那 26 個(gè)拉丁字母。因此,凱撒密表就是用 d 代 a,用
3、e 代 b,用 z 代 w。這些代替規(guī)則也可用一張表格來表示,所以叫“密表”?;驹砘驹碓诿艽a學(xué)中存在著各種各樣的置換方式,但所有不同的置換方式都包含 2 個(gè)相同的元素。密鑰和協(xié)議(算法)。凱撒密碼的密鑰是 3,算法是將普通字母表中的字母用密鑰對(duì)應(yīng)的字母替換。置換加密的優(yōu)點(diǎn)就在于它易于實(shí)施卻難于破解. 發(fā)送方和接收方很容易事先商量好一個(gè)密鑰,然后通過密鑰從明文中生成密文,即是敵人若獲取密文,通過密文直接猜測其代表的意義,在實(shí)踐中是不可能的。凱撒密碼的加密算法極其簡單。其加密過程如下:在這里,我們做此約定:明文記為 m,密文記為 c,加密變換記為 E(k1,m)(其中 k1 為密鑰) ,解
4、密變換記為 D(k2,m)(k2 為解密密鑰) (在這里 k1=k2,不妨記為 k) 。凱撒密碼的加密過程可記為如下一個(gè)變換:cm+k mod n(其中 n 為基本字符個(gè)數(shù))同樣,解密過程可表示為:mc+k mod n(其中 n 為基本字符個(gè)數(shù))對(duì)于計(jì)算機(jī)而言,n 可取 256 或 128,m、k、c 均為一個(gè) 8bit 的二進(jìn)制數(shù)。顯然,這種加密算法極不安全,即使采用窮舉法,最多也只要 255 次即可破譯。當(dāng)然,究其本身而言,仍然是一個(gè)單表置換,因此,頻率分析法對(duì)其仍是有效的。加密解密算法加密解密算法愷撒密碼的替換方法是通過排列明文和密文字母表,密文字母表示通過將明文字母表向左或向右移動(dòng)一個(gè)
5、固定數(shù)目的位置。例如,當(dāng)偏移量是左移 3 的時(shí)候(解密時(shí)的密鑰就是 3) :明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用時(shí),加密者查找明文字母表中需要加密的消息中的每一個(gè)字母所在位置,并且寫下密文字母表中對(duì)應(yīng)的字母。需要解密的人則根據(jù)事先已知的密鑰反過來操作,得到原來的明文。例如:明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ愷撒密碼的加密、解密方法還能夠通過同余數(shù)的數(shù)學(xué)
6、方法進(jìn)行計(jì)算。首先將字母用數(shù)字代替,A=0,B=1,.,Z=25。此時(shí)偏移量為 n 的加密方法即為:無E (x)= (x+n) mod 2解密就是:D (x)= (x-n) mod 2三、三、環(huán)境介紹環(huán)境介紹編程語言編程語言C 語言編譯環(huán)境編譯環(huán)境Microsoft Visual Studio 2010操作系統(tǒng)操作系統(tǒng)Windows ,四、四、思路以及算法分析思路以及算法分析定義兩個(gè)字符數(shù)組 char p1000和 char c1000,用來存放明文和密文。定義一個(gè) key,表示移位的個(gè)數(shù)。這是加密解密的關(guān)鍵。綜合考慮到在密表尾部的字母加密或解密的時(shí)候會(huì)循環(huán)移動(dòng)到密表頭部, 所以加密、 解密語
7、句分別為:ci=(pi-a+key)%26+a向后移動(dòng) keypi=z-(z+key-ci)%26向前移動(dòng) key五、五、源程序代碼源程序代碼#includevoid main()char p1000;char c1000;int key,i,m;key=5;/*定義一個(gè)移位個(gè)數(shù)為 5,即加密向右移 5 位,解密則相反*/printf(please input the Plaintext: n);gets(p);/*讀取字符串,直至接受到換行符停止,并將讀取的結(jié)果存放在 p1000中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為 null 值,并由此來結(jié)束字符串。*/for(i=0;pi!=
8、0;i+)ci=(pi-a+key)%26+a;/*加密算法,所有明文符號(hào)由向右移 5 位的密文代替*/ci=0;printf(the Ciphertext is:n%sn,c);/*輸出加密后的密文*/printf(please input the Ciptertext:n);gets(c);/*讀取字符串,直至接受到換行符停止,并將讀取的結(jié)果存放在 c1000中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為 null 值,并由此來結(jié)束字符串。*/for(i=0;ci!=0;i+)pi=z-(z+key-ci)%26;/*解密算法,所有明文符號(hào)由向左移 5 位的明文代替*/pi=0;pri
9、ntf(the Plaintext is:n%sn,p);/*輸出解密后的明文*/無return;六、六、運(yùn)行結(jié)果分析運(yùn)行結(jié)果分析試對(duì)明文試對(duì)明文 security 進(jìn)行加密,再將其解密:進(jìn)行加密,再將其解密:輸入明文 security:回車后,輸出加密后的密文:xjhzwnyd無輸入 security 的密文“xjhzwnyd” :回車后出現(xiàn)解密后的明文 security:無七、七、總結(jié)與不足總結(jié)與不足程序是在幾個(gè)小時(shí)內(nèi)測試運(yùn)行成功的。凱撒密碼是密碼學(xué)中,一種最簡單的加密算法。原理并不復(fù)雜,只要理解了,實(shí)現(xiàn)起來并不困難。程序并不長,基本實(shí)現(xiàn)了對(duì)于凱撒密碼的加密和解密過程。但其中還存在很多不足,比如,這段代碼并沒有給出當(dāng)遇到空格或者別的符號(hào)的處理方法,又比如代碼只給出了當(dāng)字符是在 a 到 z 的情況下的解決方法,而從 A 到 Z 則沒有給出等等。因此,還有很多地方還可以進(jìn)行改進(jìn):1.可以在開始設(shè)置一個(gè)選擇,是進(jìn)行加密還是解密;2.可以將 key 設(shè)為一個(gè)整型變量,在程序運(yùn)行開始時(shí),需要用戶輸入 key 值,再根據(jù) key 值進(jìn)行加密解密。這樣,凱撒密碼就可以變得更加靈活??傮w來說,從開始編寫、修改凱撒密碼的程序到最終調(diào)試成功,還算比較順利,也體會(huì)到了一點(diǎn)密碼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高級(jí)審計(jì)中的法律風(fēng)險(xiǎn)管理試題及答案
- 2025年護(hù)士考試心理健康試題及答案
- 2025年團(tuán)員心理素質(zhì)的評(píng)估與提高試題及答案
- 初級(jí)審計(jì)師考試中遇到的難點(diǎn)試題及答案
- 探索審計(jì)案例分析試題及答案
- 如何高效復(fù)習(xí)初級(jí)審計(jì)相關(guān)法規(guī)試題及答案
- 醫(yī)療科技引領(lǐng)全生命周期健康管理方案設(shè)計(jì)與實(shí)施
- 從法律視角看醫(yī)療安全與不良事件管理
- 醫(yī)療器械不良事件處理的倫理與法律
- 區(qū)塊鏈技術(shù)版權(quán)保護(hù)的新動(dòng)力
- 2024年注冊(cè)消防工程師題庫(全國通用)
- 靜脈留置針使用及維護(hù)培訓(xùn)課件
- 小學(xué)字母組合發(fā)音(課件)人教PEP版英語六年級(jí)下冊(cè)
- 食堂食材配送服務(wù)方案及服務(wù)承諾
- 《暖通空調(diào)自動(dòng)控制》課件
- 企業(yè)職業(yè)健康工作總結(jié)報(bào)告
- 警務(wù)保障各項(xiàng)管理制度
- 2023年江蘇南京農(nóng)業(yè)大學(xué)專職輔導(dǎo)員招聘30人筆試參考題庫(共500題)答案詳解版
- 哮喘患者的護(hù)理常規(guī) 課件
- 養(yǎng)殖場獸醫(yī)診斷與用藥制度范本
- 12-漏纜卡具安裝技術(shù)交底
評(píng)論
0/150
提交評(píng)論