資源描述:
《《凱撒加密算法》word版》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、凱撒加密算法替代加密算法是將明文中的每一個(gè)字符用另一個(gè)字符替換為密文中的一個(gè)字符。除接受者外,其他人不理解其間的替代。接受者對(duì)密文作反向替換后恢復(fù)成明文。著名的凱撒加密算法就是一種簡(jiǎn)單的替代加密法,它是將明文中每一個(gè)字符用右移3位并以26個(gè)字符為模的替代(A由D替代,B由E替代,··…—,W由Z替代,X由A替代,Y由B替代,Z由C替代)。維吉尼亞密碼人們?cè)趩我粣鹑雒艽a的基礎(chǔ)上擴(kuò)展出多表密碼,稱(chēng)為“維吉尼亞”密碼。它是由16世紀(jì)法國(guó)亨利三世王朝的布萊瑟·維吉尼亞發(fā)明的。維吉尼亞密碼引入了“密鑰”的概念,即根據(jù)密鑰來(lái)決定用哪一行的密表
2、來(lái)進(jìn)行替換,以此來(lái)對(duì)抗字頻統(tǒng)計(jì)。維吉尼亞密碼的密鑰空間大小為26m,所以即使m的值很小,使用窮盡密鑰搜索方法也需要很長(zhǎng)的時(shí)間。例如,當(dāng)m=5時(shí),密鑰空間大小超過(guò)1.1*107,這樣的密鑰量已經(jīng)超出了使用手算進(jìn)行窮盡搜索的能力范圍。將26個(gè)愷撒密表合成一個(gè),見(jiàn)下表: ABCDEFGHIJKLMNOPQRSTUVWXYZ A-ABCDEFGHIJKLMNOPQRSTUVWXYZ B-BCDEFGHIJKLMNOPQRSTUVWXYZA C-CDEFGHIJKLMNOPQRSTUVWXYZAB D-DEFGHIJKLMNOPQ
3、RSTUVWXYZABC E-EFGHIJKLMNOPQRSTUVWXYZABCD F-FGHIJKLMNOPQRSTUVWXYZABCDE G-GHIJKLMNOPQRSTUVWXYZABCDEF H-HIJKLMNOPQRSTUVWXYZABCDEFG I-IJKLMNOPQRSTUVWXYZABCDEFGH J-JKLMNOPQRSTUVWXYZABCDEFGHI K-KLMNOPQRSTUVWXYZABCDEFGHIJ L-LMNOPQRSTUVWXYZABCDEFGHIJK M-MNOPQRSTUVWX
4、YZABCDEFGHIJKL N-NOPQRSTUVWXYZABCDEFGHIJKLM O-OPQRSTUVWXYZABCDEFGHIJKLMN P-PQRSTUVWXYZABCDEFGHIJKLMNO Q-QRSTUVWXYZABCDEFGHIJKLMNOP R-RSTUVWXYZABCDEFGHIJKLMNOPQ S-STUVWXYZABCDEFGHIJKLMNOPQR T-TUVWXYZABCDEFGHIJKLMNOPQRS U-UVWXYZABCDEFGHIJKLMNOPQRST V-VWXYZABCDE
5、FGHIJKLMNOPQRSTU W-WXYZABCDEFGHIJKLMNOPQRSTUV X-XYZABCDEFGHIJKLMNOPQRSTUVW Y-YZABCDEFGHIJKLMNOPQRSTUVWX Z-ZABCDEFGHIJKLMNOPQRSTUVWXY加密方法 維吉尼亞密碼引入了“密鑰”的概念,即根據(jù)密鑰來(lái)決定用哪一行的密表來(lái)進(jìn)行替換,以此來(lái)對(duì)抗字頻統(tǒng)計(jì)。假如以上面第一行代表明文字母,左面第一列代表密鑰字母,對(duì)如下明文加密: TOBEORNOTTOBETHATISTHEQUESTION 當(dāng)選定RELATI
6、ONS作為密鑰時(shí),加密過(guò)程是:明文一個(gè)字母為T(mén),第一個(gè)密鑰字母為R,因此可以找到在R行中代替T的為K,依此類(lèi)推,得出對(duì)應(yīng)關(guān)系如下: 密鑰:RELATIONSRELATIONSRELATIONSREL 明文:TOBEORNOTTOBETHATISTHEQUESTION 密文:KSMEHZBBLKSMEMPOGAJXSEJCSFLZSY 歷史上以維吉尼亞密表為基礎(chǔ)又演變出很多種加密方法,其基本元素?zé)o非是密表與密鑰,并一直沿用到二戰(zhàn)以后的初級(jí)電子密碼機(jī)上?! 」?6世紀(jì)晚期,想要獲得更高的保密度的人獲得了一種設(shè)計(jì)更加精細(xì)的密碼
7、表。密碼技術(shù)實(shí)驗(yàn)(愷撒加密&維吉尼亞加密)#include"stdio.h"#include"string.h"#include"ctype.h"#include"stdlib.h"#defineN50voidmenu();/*顯示菜單*/char*inputPandK();/*輸入明文和密鑰*/voidcaesar();/*愷撒加密算法*/voidvigenere();/*維吉尼亞加密算法*/intmain(){menu();system("PAUSE");return0;}voidmenu(){inti=0;printf("C
8、lssicalencrptionprogram:");printf("****0-----------EXIT****");printf("****1-----------Keasar****");printf("****2------