最先的密碼實例之一是凱撒密碼。尤里烏斯.凱撒(Julius Caesar)在其做品《高盧戰記》中首先介紹。密碼中從A到W的每一個字母在加密時用字母表中位於其後三位的那個字母代替,字母X,Y,Z則分別被替換成A,B,C。安全
凱撒對字母進行了3移位,但從1到25中的任意數的移位都能產生相似的效果。任一種移位如今一般都被視爲使用了凱撒密碼。工具
外面的環能夠自由轉動。若是從外環的字母A對應於內環的A開始,經2次移位外環的C就到了內環A處。共有26中移位方式。其加密密鑰與解密密鑰都是用來移位數來決定的。this
利用凱撒輪做爲工具對凱撒密碼的描述能夠改換成用數學的方式來定義。咱們注意到26移位與0移位是相同的。這是由於26移位恰是凱撒輪旋轉了一整圈。這一推理能夠應用至其餘移位,即任一移位等價於0到25之間的某個數的移位。例如37移位,是經過凱撒輪轉一整圈而後再通過11移位獲得。那麼37移位等價於11移位,這種說法就能夠寫成37=11(mod 26)編碼
這就是使用了模26的算術,其中26稱爲模。模算術-除了26之外還有不少其餘的模,在一些密碼學領域裏起着關鍵做用。加密
凱撒密碼有時也稱爲加法密碼。只需以以下方式爲各個字母分派一個整數值:設計
A=0,B=1,...,Z=253d
用y移位的凱撒密碼進行加密,就是用數x+y(mod 26)來替代數x。例如N是字母表中第14個字母,因此N=13。用15位移對N加密,那麼x=13,y=15。加密後的N是13+15=28=2(mod 26),因此N就被加密成了C。blog
製做一個簡單代換密碼,能夠在一個嚴格按字母順序排列的字母表下面,寫下一個按隨機順序排列的字母表。數學
該密碼的加密密鑰與解密密鑰是相同的,就是粗體字母的次序。加密規則是「將每一個字母替換爲位於它下面的字母」,解密規則是相反的程序。擴展
簡單代換密碼的密鑰個數,等於字母表中26個字母可按不一樣順序排列的方法數,它被稱爲26的階乘,記爲26!,也就是 26*25*24*...*3*2*1。等於
沒有人會用窮舉搜索法去尋找密鑰。
問題1,很難記住
問題2,若是被看見或偷去,就會危及這個系統的安全。
爲了不這種風險,使用者試圖找到可以產生容易記憶的密鑰的方法。
一種常見的方法是:想出一個密鑰短語,去掉全部重複字母,讓它們做爲密鑰的開頭,而後按字母表的順序加上還沒有出現過的字母,使之擴展成完整的密鑰。
例如,設密鑰短語爲「We hope you enjoy this book」,去掉重複字母后即變爲"wehopyunjtisbk",那麼密鑰就是
顯然當限制密鑰只能從密鑰短語中導出時,密鑰的數目會大大縮減,由於在26!種可能的簡單代換密鑰中,至關大的比例是不可能由一個英文短語用上述方式導出的。
第二個問題是:極可能存在許多不一樣的密鑰將同一信息加密成同一密文的狀況。
例如:信息爲「MEET ME TONIGHT」,使用上面密鑰加密則密文爲:"FTTP FT PREYZSP"。
可是這種密鑰個數多達:18!=6,402,373,705,728,000
普萊費爾密碼是查爾斯.惠特斯通(Charles Wheatstone)爵士與萊昂.普萊費爾(Lyon Playfair)男爵於1854年發明的,在英國戰爭部一直使用到20世紀初,包括在布爾戰爭期間。它是「雙字母組」密碼的一個例證,意味着字母是成對而不是單個加密的。密鑰是一個5行5列的方陣(內含25個字母,即在字母表中刪去J以後剩下的字母),密鑰個數達到25!
在用普萊費爾密碼加密以前,信息必須稍稍從新排列一下,方法以下
1.用I代替J
2.將信息寫成字母對的形式
3.避免出現一樣的字母組成的字母對,若是出現,則在他們之間插入Z
4.若是寫出的字母個數是奇數,則在結尾處加上Z
爲了解釋該密碼運做方式,選取一個具體的密鑰
一旦信息獲得了適當的從新排列,便給出了加密規則。將原來的密鑰擴充爲6*6.第六行與第一行相同,第六列與第一列相同。
加密規則以下:
1.若是兩個字母位於密鑰的同一行,則每一個字母都替換爲擴充後的密鑰中位於它右側的字母
2.若是兩個字母位於密鑰的同一列,則每一個字母都替換爲擴充後的密鑰中位於它下方的字母
3.若是兩個字母既不在同一行,也再也不同一列,則第一個字母替換爲與它同行,但列數與第二個字母相同的字母,第二個字母替換爲與剛使用過的三個字母造成矩陣的那個字母
加密下面的信息:GOOD BROOMS SWEEP CLEAN
信息中沒有字母J,只須在用字母對的形式寫這條信息時適當地加入字母Z,便獲得
GO OD BR OZ OM SZ SW EZ EP CL EA NZ
根據加密規則,所有密文變爲
FP UT EC UW PO DV TV BV CM BG CS DY
解密規則與加密規則相反。
例如:解密MBOUBTZE
解爲:BOREDOMZ
改進簡單替換密碼,使得明文中諸如E這樣的字母能用不止一個密文符號來表達。
每一個密文數字僅表明惟一一個明文字母,但字母A,E,N,O,R,T中任何一個都由兩個不一樣的數字來表明。
THEETH這個有兩對重複字母的詞,能夠寫成24 27 13 08 31。
利用維熱納爾方陣來進行加密。這個方陣最座標(密鑰)列是英文字母表,對此列的每個字母,與它相對應的哪一行是字母表的一個循環,並以該字母爲循環的起始字母,與它相對應的哪一行是字母表的一個循環,並以該字母爲循環的起始字母。
最左邊這列上的每一個字母實際上都對應着一個凱撒密碼,其移位由該字母所肯定。
設計密碼最經常使用的一個方法是選擇一個無重複字母的密鑰詞或短語。若是明文信息比密鑰詞長,那麼就重複密鑰次數視須要而定。
例如當信息是PLAINTEXT而密鑰詞是fred時,獲得
下面利用該方陣來加密這條信息
加密字母P,要用位於它下面的密鑰字母f,從f對應的哪行中讀取出位於P下方的字母,即U。
密文爲:U C E L S L I A Y
基於改換字母書寫次序的密碼。
密鑰是一個很小的數。用5做爲密鑰,在利用這個密鑰加密信息時,先將信息按4個字母一行寫好,加密時則從第一個列字母開始寫,而後寫第二列字母。若是這個信息的長度不是5的倍數,那麼加密前須要在信息的末端加上適當個數的Z。
好比,加密WHAT WAS THE WETAHER LIKE NO FRIDAY
由於密鑰是5,加密過程的第一步是將信息寫爲5個字母一行的形式
而後依次按列的順序讀下密文
WAWEEIHSERODATALANATHTIFYWEHKRZ
組合兩個或多個弱的密碼能夠得出比原來任一個都強的密碼。稱爲超級加密。
通訊這所能期望的最好結果是當第三方設法攔截時,其攔截到的東西不能給他們帶來任何有助於瞭解信息真實內容的狀況。密碼系統應該博士截獲密文的人仍要去猜想信息的內容。
達到上述目的的系統便可被認爲提供了徹底保密。
#