(既然點(diǎn)進(jìn)來了就看完吧?。?!稍微有點(diǎn)長(zhǎng))
目錄
No.1 幾種常見密碼形式
No.2 一些其它的密碼形式
No.3 密碼印象
一、幾種常見密碼形式:
1、柵欄密碼(The rail fence cipher)
即把將要傳遞的信息中的字母交替排成上下兩行,再將下面一行字母排在上面一行的后邊,從而形成一段密碼。
舉例:
TEOGSDYUTAENNHLNETAMSHVAED
解:
將字母分截開排成兩行,如下
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再將第二行字母分別放入第一行中,得到以下結(jié)果
THE LONGEST DAY MUST HAVE AN END.
加密時(shí)不一定非用兩欄,舉個(gè)例子,密文為:
PFEE SESN RETM MFHA IRWE OOIG MEEN NRMA ENET SHAS DCNS IIAA IEER BRNK FBLE LODI
去掉空格:PFEESESNRETMMFHAIRWEOOIGMEENNRMAENETSHASDCNSIIAAIEERBRNKFBLELODI
共64個(gè)字符,以8個(gè)字符為一欄,排列成8*8的方陣(凱撒方陣):
P F E E S E S N
R E T M M F H A
I R W E O O I G
M E E N N R M A
E N E T S H A S
D C N S I I A A
I E E R B R N K
F B L E L O D I
從上向下豎著讀:PRIMEDIFFERENCEBETWEENELEMENTSRESMONSIBLEFORHIROSHIMAANDNAGASAKI
插入空格:PRIME DIFFERENCE BETWEEN ELEMENTS RESMONSIBLE FOR HIROSHIMA AND NAGASAKI (廣島和長(zhǎng)崎的×××轟炸的最主要區(qū)別)
柵欄密碼也可以用于中文,不過比較容易破解。
明文: 這是中文的柵欄密碼
密文(3*3方陣):這文欄是的密中柵碼
由于中文用規(guī)則的柵欄比較容易破解,所以產(chǎn)生了一些變體,例如道家心法密籍《天仙金丹心法》中的一段加密方法。密文如下:
○ 茫 天 : 摹 然 月 終 為 鼎 半 是 真 滅 器 輪 假 不 但 伸 凈 著 定 分 泥 萬 ○ 無 ○ 光 人 經(jīng) 法 一 從 塵 色 返 我 權(quán) 自 法 中 妙 大 空 照 生 屈 來 好 路 形 神 海 ○ 便 還 未 歸
○ 茫
天 : 摹
然 月 終 為
鼎 半 是 真 滅
器 輪 假 不 但 伸
凈 著 定 分 泥 萬 ○
無 ○ 光 人 經(jīng) 法 一 從
塵 色 返 我 權(quán) 自 法 中 妙
大 空 照 生 屈 來 好 路 形 神
海 ○ 便 還 未 歸
明文(從上向下豎著讀):天然鼎器凈無塵,大海茫茫月半輪。著色空摹終是假,定光返照便為真。不分人我生還滅,但泥經(jīng)權(quán)屈未伸。萬法自來歸一法,好從中路妙形神。
2、凱撒密碼(Caesar Shifts, Simple Shift)
凱撒密碼又稱為單表代替法。比如讓a=d,b=e,c=f……以此類推。
這在密碼史上產(chǎn)生了重要的影響,不能不說是一個(gè)經(jīng)典。
也稱凱撒移位,是最簡(jiǎn)單的加密方法之一,相傳是古羅馬愷撒大帝用來保護(hù)重要軍情的加密系統(tǒng),它是一種替代密碼。
加密公式:密文 = (明文 + 位移數(shù)) Mod 26
解密公式:明文 = (密文 - 位移數(shù)) Mod 26
也就是一種最簡(jiǎn)單的錯(cuò)位法,將字母表前移或者后錯(cuò)幾位,例如:
明碼表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密碼表:DEFGHIJKLMNOPQRSTUVWXYZABC
這就形成了一個(gè)簡(jiǎn)單的密碼表,如果我想寫frzy(即明文),那么對(duì)照上面密碼表編成密碼也就是iucb(即密文)了。密碼表可以自己選擇移幾位,移動(dòng)的位數(shù)也就是密鑰。
凱撒移位也可以用于中文加密。
就是按照中文字在Unicode編碼表中的順序進(jìn)行移位,可以用來加密中文的信息。
例:[中文凱撒移位]
轉(zhuǎn)換成Unicode編碼:中文凱撒移位
移1位后成為: 丮斈凰撓秼低
轉(zhuǎn)換成中文:[丮斈凰撓秼低]
3、進(jìn)制轉(zhuǎn)換密碼
比如給你一堆數(shù)字,乍一看頭暈暈的,你可以觀察數(shù)字的規(guī)律,將其轉(zhuǎn)換為10進(jìn)制數(shù)字,然后按照每個(gè)數(shù)字在字母表中的排列順序,
拼出正確字母。
舉例:110 10010 11010 11001
解:
很明顯,這些數(shù)字都是由1和0組成,那么你很快聯(lián)想到什么?二進(jìn)制數(shù),是不是?嗯,那么就試著把這些數(shù)字轉(zhuǎn)換成十進(jìn)制試試,得到數(shù)字6 18 26 25,對(duì)應(yīng)字母表,破解出明文為frzy,呵呵~
4、摩爾斯密碼(Morse Code)
翻譯不同,有時(shí)也叫摩爾密碼或摩斯密碼。*表示滴,-表示噠,如下表所示比如滴滴噠就表示字母U,滴滴滴滴滴就表示數(shù)字5。另外請(qǐng)大家不要被滴噠的形式所困,我們實(shí)際出密碼的時(shí)候,有可能轉(zhuǎn)換為很多種形式,例如用0和1表示,迷惑你向二進(jìn)制方向考慮,等等。摩爾斯是我們生活中非常常見的一種密碼形式,例如電報(bào)就用的是這個(gè)哦。下次再看戰(zhàn)爭(zhēng)片,里面有發(fā)電報(bào)的,不妨自己試著破譯一下電報(bào)內(nèi)容,看看導(dǎo)演是不是胡亂弄個(gè)密碼蒙騙觀眾哈~
電碼表
字母
A *- B -*** C -*-* D -** E * F **-* G --*
H **** I ** J *--- K -*- L *-** M -- N -*
O --- P *--* Q --*- R *-* S *** T -
U **- V ***- W *-- X -**- Y -*-- Z --**
數(shù)字
0 ----- 1 *---- 2 **--- 3 ***-- 4 ****-
5 ***** 6 -**** 7 --*** 8 ---** 9 ----*
常用標(biāo)點(diǎn)
句號(hào) *-*-*- 逗號(hào) --**-- 問號(hào) **--**
長(zhǎng)破折號(hào) -***- 連字符 -****- 分?jǐn)?shù)線 -**-*
5、字母頻率密碼
關(guān)于詞頻問題的密碼,我在這里提供英文字母的出現(xiàn)頻率給大家,其中數(shù)字全部是出現(xiàn)的百分比:
a 8.2 b 1.5 c 2.8 d 4.3
e 12.7 f 2.2 g 2.0 h 6.1
i 7.0 j 0.2 k 0.8 l 4.0
m 2.4 n 6.7 o 7.5 p 1.9
q 0.1 r 6.0 s 6.3 t 9.1
u 2.8 v 1.0 w 2.4 x 0.2
y 2.0 z 0.1
詞頻法其實(shí)就是計(jì)算各個(gè)字母在文章中的出現(xiàn)頻率,然后大概猜測(cè)出明碼表,最后驗(yàn)證自己的推算是否正確。這種方法由于要統(tǒng)計(jì)字母出現(xiàn)頻率,需要花費(fèi)時(shí)間較長(zhǎng),本人在此不舉例了,有興趣的話,參考《跳舞的小人》和《金甲蟲》。
6、維吉尼亞密碼
維吉尼亞密碼(又譯維熱納爾密碼)是使用一系列凱撒密碼組成密碼字母表的加密算法,屬于多表密碼的一種簡(jiǎn)單形式,以簡(jiǎn)單易用而著稱。 該算法出現(xiàn)于1553年書籍《吉奧萬?巴蒂斯塔?貝拉索先生的密碼》中,但在19世紀(jì)時(shí)被誤傳為是法國外交官布萊斯?德?維吉尼亞(Blaise De Vigenère)所創(chuàng)造,因此被稱為“維吉尼亞密碼”。
上面所說的頻率分析,很容易破解較長(zhǎng)篇幅的密文,于是有人繼承前人的經(jīng)驗(yàn),創(chuàng)造出了這個(gè)維吉尼亞密碼,從而克服了詞頻分析輕易能夠破解密碼的弊端,成為一種較為強(qiáng)大的密碼編譯形式。
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
2 C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
3 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
4 E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
5 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
6 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
25 Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
以上就是維熱納爾方陣,它由明碼表(第一行的字母)、密碼表(下面26行)和密鑰組成,下面我舉個(gè)例子說明。
舉例:
密鑰:frzy
密碼:qfuc
解:第一個(gè)字母,看以f開頭第五行,對(duì)應(yīng)明碼表查找q字母所標(biāo)示的字母為l。以此類推找出后面字母。所得明文為love。
只要有密鑰,再復(fù)雜的密碼也能查出來,就是個(gè)查表的問題~
7.Polybius密碼(Polybius Cipher)
也稱棋盤密碼,是利用波利比奧斯方陣(Polybius Square)進(jìn)行加密的密碼方式,產(chǎn)生于公元前兩世紀(jì)的希臘,相傳是世界上最早的一種密碼。
假設(shè)我們需要發(fā)送明文訊息 “Attack at once”, 用一套秘密混雜的字母表填滿波利比奧斯方陣,像是這樣:
A D F G X
A b t a l p
D d h o z k
F q f v s n
G g j c u x
X m r e w y
i和j視為同一個(gè)字,使字母數(shù)量符合 5 × 5 格。之所以選擇這五個(gè)字母,是因?yàn)樗鼈冏g成摩斯密碼時(shí)不容易混淆,可以降低傳輸錯(cuò)誤的機(jī)率。使用這個(gè)方格,找出明文字母在這個(gè)方格的位置,再以那個(gè)字母所在的欄名稱和列名稱代替這個(gè)字母??蓪⒃撚嵪⑥D(zhuǎn)換成處理過的分解形式。
明文:A T T A C K A T O N C E
密文:AF AD AD AF GF DX AF AD DF FX GF XF
A,D,F,G,X也可以用數(shù)字1,2,3,4,5來代替,這樣密文就成了:
13 12 12 13 43 25 13 12 23 35 43 53
8.ADFGX/ADFGVX密碼(ADFGX/ADFGVX Cipher)
ADFGX
1918年,第一次世界大戰(zhàn)將要結(jié)束時(shí),法軍截獲了一份德軍電報(bào),電文中的所有單詞都由A、D、F、G、X五個(gè)字母拼成,因此被稱為ADFGX密碼。ADFGX密碼是1918年3月由德軍上校Fritz Nebel發(fā)明的,是結(jié)合了Polybius密碼和置換密碼的雙重加密方案。A、D、F、G、X即Polybius方陣中的前5個(gè)字母。
明文:A T T A C K A T O N C E
經(jīng)過Polybius變換:AF AD AD AF GF DX AF AD DF FX GF XF
下一步,利用一個(gè)移位密鑰加密。假設(shè)密鑰是“CARGO”,將之寫在新格子的第一列。再將上一階段的密碼文一列一列寫進(jìn)新方格里。
C A R G O
_________
A F A D A
D A F G F
D X A F A
D D F F X
G F X F X
最后,密鑰按照字母表順序“ACGOR”排序,再按照此順序依次抄下每個(gè)字母下面的整列訊息,形成新密文。如下:
FAXDF ADDDG DGFFF AFAXX AFAFX
在實(shí)際應(yīng)用中,移位密鑰通常有兩打字符那么長(zhǎng),且分解密鑰和移位密鑰都是每天更換的。
ADFGVX
在1918年6月,再加入一個(gè)字V擴(kuò)充。變成以6×6格共36個(gè)字符加密。這使得所有英文字母(不再將I和J視為同一個(gè)字)以及數(shù)字0到9都可混合使用。這次增改是因?yàn)橐栽瓉淼募用芊òl(fā)送含有大量數(shù)字的簡(jiǎn)短信息有問題
9.乘法密碼(Multiplication Cipher)
乘法密碼也是一種簡(jiǎn)單的替代密碼,與凱撒密碼相似,凱撒密碼用的是加法,而乘法密碼用的自然是乘法。這種方法形成的加密信息保密性比較低。
加密公式:密文 = (明文 * 乘數(shù)) Mod 26
對(duì)于乘數(shù)密碼,只有當(dāng)乘數(shù)與26互質(zhì)時(shí),加密之后才會(huì)有唯一的解,因此乘數(shù)只可能有如下11種的選擇:
乘數(shù) = 3,5,7,9,11,15,17,19,21,23,25
仿射密碼和希爾密碼因?yàn)槎加玫搅顺朔ǎ猿藬?shù)也受到相同的局限。
10.仿射密碼(Affine Shift)
仿射密碼就是凱撒密碼和乘法密碼的結(jié)合。
加密公式:密文 = (明文 * 乘數(shù) + 位移數(shù)) Mod 26
11.希爾密碼(Hill Cipher)
希爾密碼就是矩陣乘法密碼,運(yùn)用基本矩陣論原理的替換密碼。每個(gè)字母當(dāng)作26進(jìn)制數(shù)字:A=0, B=1, C=2... 一串字母當(dāng)成n維向量,跟一個(gè)n×n的密鑰矩陣相乘,再將得出的結(jié)果模26。希爾密碼的優(yōu)點(diǎn)是完全隱藏了字符的頻率信息,弱點(diǎn)是容易被已知明文擊破。
加密
例如:密鑰矩陣
1 3
0 2
明文:HI THERE
去空格,2個(gè)字母一組,根據(jù)字母表順序換成矩陣數(shù)值如下,末尾的E為填充字元:
HI TH ER EE
8 20 5 5
9 8 18 5
HI 經(jīng)過矩陣運(yùn)算轉(zhuǎn)換為 IS,具體算法參考下面的說明:
|1 3| 8 e1*8+3*9=35 MOD26=9 =I
|0 2| 9 e0*8+2*9=18 MOD26=18=S
用同樣的方法把“HI THERE”轉(zhuǎn)換為密文“IS RPGJTJ”,注意明文中的兩個(gè)E分別變?yōu)槊芪闹械腉和T。
解密
解密時(shí),必須先算出密鑰的逆矩陣,然后再根據(jù)加密的過程做逆運(yùn)算。
逆矩陣算法公式:
|A B| = 1/(AD-BC) * | D -B|
|C D| |-C A|
例如密鑰矩陣=
|1 7|
|0 3|
AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9
因此
|1 7| 的逆矩陣為: 9 * |3 -7|
|0 3| |0 1|
假設(shè)密文為“FOAOESWO”
FO AO ES WO
6 1 5 23
15 15 19 15
9* |3 -7| | 6| = 9*(3*6-7*15)=-783 mod26 = 23=W
|0 1| |15| = 9*(0*6+1*15)= 135 mod26 = 5 =E
所以密文“FOAOESWO”的明文為“WEREDONE”
12.培根密碼(Bacon’s cipher)
培根密碼,又名倍康尼密碼(英語:Bacon’s cipher)是由法蘭西斯?培根發(fā)明的一種隱寫術(shù)。
特點(diǎn):
培根密碼本質(zhì)上是將二進(jìn)制信息通過樣式的區(qū)別,加在了正常書寫之上。培根密碼所包含的信息可以和用于承載其的文章完全無關(guān)。培根密碼實(shí)際上就是一種替換密碼,根據(jù)所給表一一對(duì)應(yīng)轉(zhuǎn)換即可加密解密 。它的特殊之處在于:可以通過不明顯的特征來隱藏密碼信息,比如大小寫、正斜體等,只要兩個(gè)不同的屬性,密碼即可隱藏。
實(shí)現(xiàn)
培根密碼實(shí)際上就是一種替換密碼,一般有兩種加密方式,所以相互對(duì)應(yīng)就可以了
13.日歷密碼
原則: (1) 1- -26代表a- -z26個(gè)英文字母; (2) M, T1,W, T2,F, S1, S2分別代表周-到周日七天(英文首字母代替,1, 2為了有別,也人為增加密度) ; (3) 密鑰即密碼表以2007年11月份的日歷為密碼表,我們來加密這個(gè)單詞: dictionary
第一步,用數(shù)字代替明文中的字母,即DI CTIONAR
4932091514118第二步,寫密文。
方法:例如單詞首字母D用4代替,則在日歷中找到4號(hào),發(fā)現(xiàn)是本月第- -個(gè)星期日,所以用S21表示;又如第七個(gè)字母N用數(shù)字14代表,找到14號(hào),發(fā)現(xiàn)是本月第二個(gè)星期三,用W2代表。如此類推,得到密文如下:
S21 F2 S11 T13 F2 T23 W2 T21 S23 S24此類密碼的解法如下:
(1)首先要知道密鑰,即密碼表;
(2)其次分解密碼中的星期i,即變成星期+數(shù)字的形式
(3)去尋找對(duì)應(yīng)的是第幾個(gè)出現(xiàn)的星期i,對(duì)應(yīng)日期;
(4)對(duì)應(yīng)字母,練成單詞,短語或句子。
14.普萊菲爾密碼
具體編寫密碼的步驟有3步,1. 編寫密碼表2. 整理明文3. 編寫密文(1)編寫密碼表
德文中也是講i和j看做-一個(gè)字母,法文消去的是k或者w,意文因?yàn)橹挥?1個(gè)字母,英文則一般會(huì)省略去
密碼表可以加入密匙,如密匙crazy a dog,省略去z,重復(fù)字母(如a)只保留第一個(gè),則有: craydog
表中其他格子里分別按順序填入ABC... XY,但密匙中有的字母要去掉。(當(dāng)然, 你也可以亂填,只要你能記得住就行... )原則:提取明文的不重復(fù)字母,例如明文為culture,即CULTURE.編寫密碼表,即將剩余的25個(gè)字母出去已有字母依次寫下(同樣是五乘五方格)
(2)整理明文。
原則:兩個(gè)字母- -組,若同一組字母中兩字母相同,在兩字母中加入X,再重新分組,直到不再出現(xiàn)相同字母?;蛘咦詈笾挥?下一個(gè)字母,也加一個(gè)字母X作補(bǔ)充,使之成對(duì)。
如:
communist ===》co mm un is t ===》co mx me nt st
又如: prettys ===》 pr et ty sx (t t不再同一-組中,無需家X )(3)寫密文。
現(xiàn)在將一明文加密
明文: where there is life, there is hope (流的的青山在,不拍沒柴燒) ===》wherethereislifethereishopex
密匙: crazy a dog ===》即用步驟1中密碼表
先加密wh,在密碼表中,分別在w、h. 上畫十字架,兩十字架交于k、t兩點(diǎn),w、k同橫行,h、t也同一橫行,則密文為kt
若明文在同一-列,如li,則將表中明文向下移動(dòng)- -位,即用h代替1,j代替i,得密文hj若明文在同一-行,則將表中明文向右移動(dòng)- -位...
再將密文分為5個(gè)一組:
得密文: ktygw ookgy nlhjo fcmyg kglmm bwf
15.豬圈密碼(pigpen cipher)
豬圈密碼(亦稱朱高密碼、共濟(jì)會(huì)暗號(hào)、共濟(jì)會(huì)密碼或共濟(jì)會(huì)員密碼),是一種以格子為基礎(chǔ)的簡(jiǎn)單替代式密碼。即使使用符號(hào),也不會(huì)影響密碼分析,亦可用在其它替代式的方法。
1.傳統(tǒng)豬圈密碼:
下圖為對(duì)應(yīng)的密碼表:
2.變種1:
對(duì)應(yīng)的密碼表:
3.變種2:
對(duì)應(yīng)的密碼表:
4.變種3:
5.變種4:圣堂武士密碼
二、一些其它的密碼形式:
1、利用鍵盤
無論是計(jì)算機(jī)鍵盤,還是手機(jī)鍵盤,都是出密碼的好工具哦,可以用錯(cuò)位、或者排列形狀等。使用手機(jī)鍵盤和這個(gè)同理。另外手機(jī)鍵盤還可以在鍵盤的字母上做文章,例如你可以用51表示字母j,用73表示字母r等。
舉例:
r4a6
這個(gè)密碼利用計(jì)算機(jī)鍵盤,將明文字母分別向上移動(dòng)一個(gè)位置,得到密文。破解結(jié)果為frzy。
852 74123 741236987 42697 8974123456 7412369
這排數(shù)字是不是很暈?其實(shí)很簡(jiǎn)單,對(duì)照小鍵盤,依次打這些字母,看組成的形狀就行了。答案是I L O V E U
2、字母形狀
本人曾經(jīng)收到過這樣一條密碼短信,不幸被破解,導(dǎo)致發(fā)短信人被我非常嚴(yán)肅地奚落了一番
前面我不記得了,只記得后面是hep poo6。這個(gè)你可以從手機(jī)里打出來,然后把手機(jī)倒過來看,形成了密碼的明文,good day~~~
三、密碼印象
Case 1 達(dá)?芬奇密碼
13-3-2-21-1-1-8-5
O Draconian devil !(啊,嚴(yán)酷的魔王?。?
Oh Lame Saint !(噢,瘸腿的圣徒?。?
這是小說《達(dá)?芬奇密碼》里面出現(xiàn)的第一段密碼。在故事中,盧浮宮博物館館長(zhǎng)被人殺害,臨死前用隱寫筆在地上寫下了這樣一段令人費(fèi)解的文字,其中隱藏了重要的信息。
主角是如何破譯這段密碼的呢?他通過分析發(fā)現(xiàn)開頭的“13-3-2-21-1-1-8-5”是解密的關(guān)鍵所在。將這一串?dāng)?shù)字從小到大重新排列,得到“1-1-2-3-5-8-13-21”,恰好是數(shù)學(xué)中著名的斐波那契數(shù)列。這就暗示著,謎題中的文字也是經(jīng)過亂序排列的。于是,經(jīng)過對(duì)文字的重新排序,主角得到了明文:
Leonardo da Vinci !(萊昂納多?達(dá)?芬奇?。?
The Mona Lisa !(蒙娜麗莎?。?
故事在這里終于出現(xiàn)了轉(zhuǎn)機(jī),讀者從此開始了驚心動(dòng)魄的密碼之旅。真是給人一種茅塞頓開的感覺。
當(dāng)然,這只是浩如煙海的密碼世界的一個(gè)比較典型的例子。下面,就讓我們切入正題。
Case 2 密碼釋義
使用電腦多了的人,聽到“密碼”一詞總會(huì)想到password。其實(shí)在英語中,主要有兩種對(duì)密碼的解釋。一個(gè)就是password,還有一個(gè)是 code。后者比較不常用一點(diǎn),不過程序員(coder)對(duì)這個(gè)詞還是有著比較深的感情的(笑)。
其實(shí)password和code在含義上是有著本質(zhì)的區(qū)別的。對(duì)于password,我覺得稱它為“口令”似乎更貼切一些。比如Windows 的開機(jī)密碼,比如FTP的登陸口令,等等。其特征是把輸入的一個(gè)字符串與標(biāo)準(zhǔn)答案進(jìn)行比對(duì),根據(jù)其結(jié)果來決定是否授予通過的權(quán)限。這個(gè)比對(duì)的工作是一次性的,而且原理簡(jiǎn)單。而code就不同。對(duì)于code,主要體現(xiàn)的是“翻譯”的過程,牽涉到對(duì)信息的編碼和譯碼。比如凱撒密鑰,比如RSA算法,等等。這里面牽涉到很多數(shù)學(xué)的東西,比如對(duì)字符的分解和重組等。當(dāng)然,從廣義的角度講,code的編碼和譯碼也可以往數(shù)學(xué)以外的方面延伸,這又涉及到很多典故,在此按下不表。
Case 3 初見密碼
20.8.1.14.11/25.15.21/
9/12.15.22.5/25.15.21/
這是我第一次接觸密碼這種事物時(shí),所遇到的一段code。原文我忘了,在這里我用相同的加密方式寫了一段話。
解密的方法很簡(jiǎn)單,只要把a(bǔ)=1,b=2,… z=26代入code,就可以非常容易地得到明文:
Thank you , I love you .
怎么樣,是不是很容易?不過如果將四則運(yùn)算加入譯碼(比如讓a=2等),破譯時(shí)就有一定的難度了。
這是一種很典型的古典密碼。
Case 4 珍珠港
還記得電影《珍珠港》中的戰(zhàn)火和硝煙么?在日本偷襲珍珠港之前,美國的情報(bào)部門破譯了日本的外交電報(bào)密碼,但是由于當(dāng)局沒有重視,最后還是沒能阻止悲劇的發(fā)生。
1942年4月和5月期間,在美軍截獲的日軍通訊中,有一個(gè)“AF”名稱出現(xiàn)的頻率和次數(shù)明顯增多,羅奇福特少校領(lǐng)導(dǎo)的情報(bào)小組絞盡腦汁,終于在堆積如山的偵抄電文中找到一份日軍偷襲珍珠港時(shí)的電報(bào),電文曾提到“AF”,說一架日軍水上飛機(jī)需要在“AF”附近的一個(gè)小珊瑚島上加油。因此羅奇福特推斷,“AF”只能是指中途島。為進(jìn)一步證實(shí)這一推斷的準(zhǔn)確性,駐中途島上美軍奉命用淺顯的明碼拍發(fā)了一份作為誘餌的無線電報(bào),謊稱中途島上的淡水設(shè)備發(fā)生了故障。果然不久,美軍截獲一份日軍密電,電文中說:AF可能缺少淡水。一切立時(shí)真相大白了。羅奇福特小組以此為突破口,一下子破譯了反映日軍艦隊(duì)作戰(zhàn)計(jì)劃的所有通訊。這樣,尼米茲不僅清楚掌握了日軍奪取中途島的戰(zhàn)略企圖,而且還查明了其參戰(zhàn)兵力、數(shù)量、進(jìn)攻路線和作戰(zhàn)時(shí)間,甚至連對(duì)方各艦長(zhǎng)的名子都了如指掌。(注:這段文字摘自網(wǎng)絡(luò))
日軍當(dāng)時(shí)使用的密碼體系代號(hào)為JN25,比較復(fù)雜。但是美軍破譯這個(gè)密碼的手法卻是一種非常經(jīng)典的解密技術(shù)。其基本方法是,直接分析密文,根據(jù)字符出現(xiàn)的頻率分布逆推出密碼表。比如研究證明,英語文章里面26個(gè)字母的出現(xiàn)頻率總是固定的,于是我們就可以根據(jù)統(tǒng)計(jì)得來的數(shù)據(jù)解析出原始的密碼表。因此,單純以字母替換為基礎(chǔ)的密碼體系是非常脆弱的,可以說是形同虛設(shè)。
Case 5 電影中的密碼
與間諜或偵探有關(guān)的電影中,總會(huì)出現(xiàn)各種各樣的密碼。
在電影中,似乎password的出現(xiàn)次數(shù)比code要多得多。在電影中,經(jīng)常會(huì)有敵方的黑客在筆記本電腦上破解密碼的場(chǎng)面出現(xiàn)。比如《對(duì)抗性游戲》里,罪犯甚至可以通過破解旅館電腦系統(tǒng)的密碼來鎖住所有房間的門。需要指出的是,電影里黑客所使用電腦的界面往往都非常的人性化,要么是畫面華麗精美,要么可以識(shí)別自然語言。不知導(dǎo)演是怎么想的。呵呵,這是題外話。
至于電影中的code,給我印象比較深的是《神秘拼圖》等。這里面的code與通常的code不同。因?yàn)橐紤]到觀眾的理解能力,電影中的 code的密鑰往往與一些典故有關(guān),比如在一本書里(比如圣經(jīng)),或者在一幅畫中。這些因素總是使得懸疑的情節(jié)散發(fā)出濃厚的人文氣息。有時(shí)候,電影中的 code干脆就以字謎或畫謎的形式出現(xiàn),這本質(zhì)上是一種隱喻。
當(dāng)然,不僅僅是電影,在小說、游戲等其他藝術(shù)領(lǐng)域,密碼也經(jīng)常出現(xiàn),并且總是能成為推動(dòng)情節(jié)發(fā)展的關(guān)鍵動(dòng)力。比如《達(dá)?芬奇密碼》,比如福爾摩斯的一些探案故事。
Case 6 午夜兇鈴
如果提到恐怖小說,不能不提到《午夜兇鈴》。這是一本長(zhǎng)篇恐怖小說?!段缫箖粹彙肥侨毡局≌f家鈴木光司的作品,共有四部。其情節(jié)我就不再贅述了。需要指出的是,在小說的第二部《兇鈴再現(xiàn)》中,作者以相當(dāng)?shù)钠鑼懥艘环N基于DNA的極度匪夷所思的密碼。
大致的情節(jié)是:午夜兇鈴的受害者由于受到怨念的影響,體內(nèi)的基因產(chǎn)生突變。經(jīng)過染色體的變異,四個(gè)堿基A,G,T,C(腺嘌呤、鳥嘌呤、胸腺嘧啶、胞嘧啶)經(jīng)過組合竟然表達(dá)出了非同一般的信息。這種以染色體堿基序列作為加密載體的方式,我還真是聞所未聞。不禁對(duì)鈴木光司那天馬行空般的想象力感到深深的佩服。
Case 7 生命之歌
中國著名科幻小說作家王晉康曾經(jīng)寫過一部非常經(jīng)典的小說《生命之歌》,也是關(guān)于DNA密碼的。當(dāng)時(shí)曾經(jīng)引發(fā)了科幻界的大討論,給我印象很深刻。
故事提出的假設(shè)是,既然DNA包含了生命的密碼,那么機(jī)器如果洞悉了其中的奧秘,會(huì)不會(huì)發(fā)展成足以和人類競(jìng)爭(zhēng)的生命形式呢?小說里面還加入了音樂的要素,即把DNA的序列編制成了旋律,即生命之歌。這個(gè)是有一定科學(xué)依據(jù)的。因?yàn)闅v史上確實(shí)有過把DNA序列譜寫成音樂的先例(好像是個(gè)日本的演奏家,具體的我給忘了)。
這似乎又是一個(gè)隱喻。也或是,諷刺?
Case 8 密寫術(shù)
這個(gè)話題似乎跟密碼沒什么關(guān)系。但是因?yàn)閷?shí)在很有趣,我就寫下來了。
所謂密寫,就是用特殊的方式寫信息,然后只能用特殊的方式才能看到。記得中學(xué)語文里有一篇關(guān)于魯迅的課文,提到一種用米湯進(jìn)行的密寫方式。即用毛筆或手指蘸著米湯寫字,只有紙張浸水后才能看到。后來看了一些影視作品,經(jīng)常出現(xiàn)的場(chǎng)面是一張羊皮紙?jiān)谛苄艿幕鹬鞋F(xiàn)出字跡。最夸張的是漫畫《城市獵人》中有一節(jié),居然是在鏡子的背面進(jìn)行密寫,然后將鏡子反光在墻上投影,從中就會(huì)顯現(xiàn)出字樣。
下面介紹一種非常簡(jiǎn)單的密寫方法。首先,準(zhǔn)備兩張白紙和一盆水。將其中的一張白紙?jiān)谂鑳?nèi)浸濕,鋪開在桌面,攤平。將另外一張干燥的白紙覆蓋在濕的那張紙上,然后在其上書寫文字。寫完后,將干燥的紙張拿走,毀掉,然后把那張浸濕的紙曬干。好了,曬干后的那張紙看上去將仍然是一張白紙,可是一旦浸濕,就會(huì)顯現(xiàn)出字樣。密寫成功。
這個(gè)方法我以前時(shí)玩過多次,屢試不爽。
Case 9 矩陣博士
《科學(xué)美國人》的專欄作家馬丁?加德納曾經(jīng)寫過一本書,寫矩陣博士的把戲。書名叫《矩陣博士的魔法數(shù)》,有興趣的不妨找來一讀。
書中寫矩陣博士的職業(yè)是“數(shù)學(xué)巫師”,就是通過數(shù)學(xué)來搞一些玄學(xué)的東西,比如算命等等。此人數(shù)學(xué)天賦極高,可惜沒有用在正道上。他有很多騙術(shù),比如,他使用一個(gè)環(huán)形的字母表來給人測(cè)字,或是對(duì)人夢(mèng)中出現(xiàn)的數(shù)字給予玄妙的解釋(舉例:有個(gè)人夢(mèng)中經(jīng)常出現(xiàn)7734這個(gè)數(shù),矩陣博士給它倒過來寫,結(jié)果變成了hell,即地獄)。他可以通過一美元紙幣的隱喻預(yù)測(cè)肯尼迪的被刺。他宣稱開發(fā)出了可以寫詩的電腦程序。他還曾因?yàn)榉欠ㄗ冊(cè)烀涝泿牛ㄍㄟ^特殊的裁剪粘貼使得14張20美元紙幣變?yōu)?5張)而遭到通緝。最后他的數(shù)學(xué)“天才”終于引起了當(dāng)局的注意,被招安到了中央情報(bào)局,從事密碼方面的研究。
Case 10 圣經(jīng)密碼
上個(gè)世紀(jì)在西方世界鬧得沸沸揚(yáng)揚(yáng)的一本書《圣經(jīng)密碼》,將密碼的故事推演到了極致。
90年代,美國《華盛頓郵報(bào)》記者德羅斯寧出版了一本叫作《圣經(jīng)密碼》的書,記述了有關(guān)圣經(jīng)密碼的破譯方法,及密碼對(duì)過去一些重大歷史事件的印證和對(duì)未來世界的聳人聽聞的預(yù)測(cè)。圣經(jīng)密碼的發(fā)現(xiàn)者在1994年預(yù)測(cè)拉賓遇刺,結(jié)果1995年悲劇果然發(fā)生了。當(dāng)時(shí)在全世界引發(fā)了轟動(dòng),也引發(fā)了科學(xué)界與宗教界的激烈辯論。
所謂圣經(jīng)密碼,就是采取均衡間字法可以發(fā)現(xiàn)圣經(jīng)中隱藏的信息,即“上帝的啟示”。 研究人員首先將原版希伯萊文的《圣經(jīng)》舊約輸入計(jì)算機(jī),去掉所有的標(biāo)點(diǎn),使之成為一整篇由344805個(gè)希伯萊文字母組成的文字,然后運(yùn)用均衡間字法對(duì)整篇經(jīng)文進(jìn)行搜尋,結(jié)果獲得驚人的發(fā)現(xiàn)。神奇的圣經(jīng)密碼不僅印證了許多重大的歷史事件,甚至似乎還可以預(yù)測(cè)未來世界。比如,使用計(jì)算機(jī)對(duì)圣經(jīng)密碼進(jìn)行分析,搜索“第二次世界大戰(zhàn)”,可以找到“希特勒”的名字,而且周圍還環(huán)繞著諸如“納粹”、“屠殺”等字眼。讓人感覺十分的匪夷所思。
這真的是來自上帝的啟示嗎?《圣經(jīng)密碼》一出版就招致了各方面的異議和指責(zé),至今仍然是科學(xué)界與宗教界備受爭(zhēng)議的話題。不過歷史最后必將作出公正的判斷。 |