密碼學入門知識

weixin_30646315發表於2013-04-22

一、幾種常見密碼形式: 

1、柵欄易位法。 

即把將要傳遞的資訊中的字母交替排成上下兩行,再將下面一行字母排在上面一行的後邊,從而形成一段密碼。 

舉例: 

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 
再將第二行字母分別放入第一行中,得到以下結果 
THE LONGEST DAY MUST HAVE AN END. 

課後小題:請破解以下密碼 
Teieeemrynwetemryhyeoetewshwsnvraradhnhyartebcmohrie 



2、愷撒移位密碼。 

也就是一種最簡單的錯位法,將字母表前移或者後錯幾位,例如: 
明碼錶:ABCDEFGHIJKLMNOPQRSTUVWXYZ 
密碼錶:DEFGHIJKLMNOPQRSTUVWXYZABC 
這就形成了一個簡單的密碼錶,如果我想寫frzy(即明文),那麼對照上面密碼錶編成密碼也就是iucb(即密文)了。密碼錶可以自己選擇移幾位,移動的位數也就是金鑰。 

課後小題:請破解以下密碼 
dtzwkzyzwjijujsixtsdtzwiwjfrx 



3、進位制轉換密碼。 

比如給你一堆數字,乍一看頭暈暈的,你可以觀察數字的規律,將其轉換為10進位制數字,然後按照每個數字在字母表中的排列順序, 

拼出正確字母。 
舉例:110 10010 11010 11001 
解: 
很明顯,這些數字都是由1和0組成,那麼你很快聯想到什麼?二進位制數,是不是?嗯,那麼就試著把這些數字轉換成十進位制試試,得到數字6 18 26 25,對應字母表,破解出明文為frzy,呵呵~ 

課後小題:請破解以下密碼 
11 14 17 26 5 25 



4、摩爾斯密碼。 

翻譯不同,有時也叫摩爾密碼。*表示滴,-表示噠,如下表所示比如滴滴噠就表示字母U,滴滴滴滴滴就表示數字5。另外請大家不要被滴噠的形式所困,我們實際出密碼的時候,有可能轉換為很多種形式,例如用0和1表示,迷惑你向二進位制方向考慮,等等。摩爾斯是我們生活中非常常見的一種密碼形式,例如電報就用的是這個哦。下次再看戰爭片,裡面有發電報的,不妨自己試著破譯一下電報 

內容,看看導演是不是胡亂弄個密碼矇騙觀眾哈~由於這密碼也比較簡單,所以不出小題。 
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 --** 
數字 
0 ----- 1 *---- 2 **--- 3 ***-- 4 ****- 
5 ***** 6 -**** 7 --*** 8 ---** 9 ----* 
常用標點 
句號 *-*-*- 逗號 --**-- 問號 **--** 
長破折號 -***- 連字元 -****- 分數線 -**-* 



5、字母頻率密碼。 

關於詞頻問題的密碼,我在這裡提供英文字母的出現頻率給大家,其中數字全部是出現的百分比: 
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 
詞頻法其實就是計算各個字母在文章中的出現頻率,然後大概猜測出明碼錶,最後驗證自己的推算是否正確。這種方法由於要統計字母出現頻率,需要花費時間較長,本人在此不舉例和出題了,有興趣的話,參考《跳舞的小人》和《金甲蟲》。 



6、維熱納爾方陣。 

上面所說的頻率分析,很容易破解較長篇幅的密文,於是維熱納爾繼承前人的經驗,創造出了這個維熱納爾方陣,從而克服了詞頻分析輕易能夠破解密碼的弊端,成為一種較為強大的密碼編譯形式。 
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行)和金鑰組成,下面我舉個例子說明。 

舉例: 
金鑰:frzy 
密碼:qfuc 
解:第一個字母,看以f開頭第五行,對應明碼錶查詢q字母所標示的字母為l。以此類推找出後面字母。所得明文為love。 
這個也不出小題了,只要有金鑰,再複雜的密碼也能查出來,就是個查表的問題~ 

二、一些新興的密碼形式: 

1、利用鍵盤 

無論是計算機鍵盤,還是收集鍵盤,都是出密碼的好工具哦,可以用錯位、或者排列形狀等。使用手機鍵盤和這個同理。另外手機鍵盤還可以在鍵盤的字母上做文章,例如你可以用51表示字母j,用73表示字母r等。 

舉例: 
r4a6 
這個密碼利用計算機鍵盤,將明文字母分別向上移動一個位置,得到密文。破解結果為frzy。 
852 74123 741236987 426978974123456 7412369 
這排數字是不是很暈?其實很簡單,對照小鍵盤,依次打這些字母,看組成的形狀就行了。答案是I L O V E U。 

課後小題:請破解以下密碼 
18 29 19 34 13 17 



2、字母形狀 

本人曾經收到過這樣一個密碼簡訊,不幸被破解,導致發簡訊人被我非常嚴肅地奚落了一番! 

前面我不記得了,只記得後面是hep poo6。這個你可以從手機裡打出來,然後把手機倒過來看,形成了密碼的明文,good day~~~ 

課後小題:請破解以下密碼 
AnnAW T2UL 
THpin boop YA2 
T99W2 A 9VAH 
MA37b 

三、密碼印象 

(本文寫於2004年的學生時代) 

前言:本文是一篇人文性質的文章,並非技術文章。對密碼學感興趣的讀者,可以去圖書館查閱相關的書籍,或者去報考我校密碼學權威——楊義先教授的研究生。本篇重在宣揚人文理念,主要講述了我這些年對密碼方面的一些瞭解和隨想,古典的味道比較濃。好了,諸位看官,我們開始。 

Case 1 達·芬奇密碼 

13-3-2-21-1-1-8-5 
O Draconian devil !(啊,嚴酷的魔王!) 
Oh Lame Saint !(噢,瘸腿的聖徒!) 

這是暢銷小說《達·芬奇密碼》裡面出現的第一段密碼。在故事中,盧浮宮博物館館長被人殺害,臨死前用隱寫筆在地上寫下了這樣一段令人費解的文字,其中隱藏了重要的資訊。 

主角是如何破譯這段密碼的呢?他通過分析發現開頭的“13-3-2-21-1-1-8-5”是解密的關鍵所在。將這一串數字從小到大重新排列,得到“1-1-2-3-5-8-13-21”,恰好是數學中著名的斐波那契數列。這就暗示著,謎題中的文字也是經過亂序排列的。於是,經過對文字的重新排序,主角得到了明文: 

Leonardo da Vinci !(萊昂納多·達·芬奇!) 
The Mona Lisa !(蒙娜麗莎!) 

故事在這裡終於出現了轉機,讀者從此開始了驚心動魄的密碼之旅。真是給人一種茅塞頓開的感覺。 

當然,這只是浩如煙海的密碼世界的一個比較典型的例子。下面,就讓我們切入正題。 

Case 2 密碼釋義 

使用電腦多了的人,聽到“密碼”一詞總會想到password。其實在英語中,主要有兩種對密碼的解釋。一個就是password,還有一個是 code。後者比較不常用一點,不過程式設計師(coder)對這個詞還是有著比較深的感情的(笑)。 

其實password和code在含義上是有著本質的區別的。對於password,我覺得稱它為“口令”似乎更貼切一些。比如Windows 的開機密碼,比如FTP的登陸口令,等等。其特徵是把輸入的一個字串與標準答案進行比對,根據其結果來決定是否授予通過的許可權。這個比對的工作是一次性的,而且原理簡單。而code就不同。對於code,主要體現的是“翻譯”的過程,牽涉到對資訊的編碼和譯碼。比如凱撒金鑰,比如RSA演算法,等等。這裡面牽涉到很多數學的東西,比如對字元的分解和重組等。當然,從廣義的角度講,code的編碼和譯碼也可以往數學以外的方面延伸,這又涉及到很多典故,在此按下不表。 

本文主要講述的,基本上是關於code的內容。 

Case 3 初見密碼 

20.8.1.14.11/25.15.21/ 
9/12.15.22.5/25.15.21/ 

這是我小學二年級第一次接觸密碼這種事物時,所遇到的一段code。當時腦筋急轉彎之類的東西還沒有引進到大陸,我是在一本香港出版的智力遊戲書籍中發現這個密碼的。原文我忘了,在這裡我用相同的加密方式寫了一段話。 

解密的方法很簡單,只要把a=1,b=2,… z=26代入code,就可以非常容易地得到明文: 

Thank you , I love you . 

怎麼樣,是不是很容易?不過如果將四則運算加入譯碼(比如讓a=2等),破譯時就有一定的難度了。 

這是一種很典型的古典密碼。 

Case 4 凱撒金鑰 

提到古典密碼,就不能不提到著名的凱撒金鑰。基本上每一本密碼學方面的基礎教材在提到古典密碼時,都會舉出凱撒金鑰的例子。凱撒金鑰的加密公式是: 

c≡ m + k mod 26 

凱撒金鑰又稱為單表代替法。其中m為明文的資料,c為加密後的資料,而k是金鑰。 

當年凱撒指導軍團作戰,使用的就是這套密碼體系。比如讓a=d,b=e,c=f……依此類推。 

這在密碼史上產生了重要的影響,不能不說是一個經典。 

Case 5 珍珠港 

還記得電影《珍珠港》中的戰火和硝煙麼?在日本偷襲珍珠港之前,美國的情報部門破譯了日本的外交電報密碼,但是由於當局沒有重視,最後還是沒能阻止悲劇的發生。 

1942年4月和5月期間,在美軍截獲的日軍通訊中,有一個“AF”名稱出現的頻率和次數明顯增多,羅奇福特少校領導的情報小組絞盡腦汁,終於在堆積如山的偵抄電文中找到一份日軍偷襲珍珠港時的電報,電文曾提到“AF”,說一架日軍水上飛機需要在“AF”附近的一個小珊瑚島上加油。因此羅奇福特推斷,“AF”只能是指中途島。為進一步證實這一推斷的準確性,駐中途島上美軍奉命用淺顯的明碼拍發了一份作為誘餌的無線電報,謊稱中途島上的淡水裝置發生了故障。果然不久,美軍截獲一份日軍密電,電文中說:AF可能缺少淡水。一切立時真相大白了。羅奇福特小組以此為突破口,一下子破譯了反映日軍艦隊作戰計劃的所有通訊。這樣,尼米茲不僅清楚掌握了日軍奪取中途島的戰略企圖,而且還查明瞭其參戰兵力、數量、進攻路線和作戰時間,甚至連對方各艦長的名子都瞭如指掌。(注:這段文字摘自網路) 

日軍當時使用的密碼體系代號為JN25,比較複雜。但是美軍破譯這個密碼的手法卻是一種非常經典的解密技術。其基本方法是,直接分析密文,根據字元出現的頻率分佈逆推出密碼錶。比如研究證明,英語文章裡面26個字母的出現頻率總是固定的,於是我們就可以根據統計得來的資料解析出原始的密碼錶。因此,單純以字母替換為基礎的密碼體系是非常脆弱的,可以說是形同虛設。 

Case 6 電影中的密碼 

與間諜或偵探有關的電影中,總會出現各種各樣的密碼。隨著電影的發展,以電腦叛客為題材的科幻電影就更是將這一點發揮到了極致。 

在電影中,似乎password的出現次數比code要多得多。在警匪片中,經常會有敵方的黑客在膝上型電腦上開著算號器破解密碼的場面出現。比如《對抗性遊戲》裡,罪犯甚至可以通過破解旅館電腦系統的密碼來鎖住所有房間的門。需要指出的是,電影裡黑客所使用電腦的介面往往都非常的人性化,要麼是畫面華麗精美,要麼可以識別自然語言。不知導演是怎麼想的。嗬嗬,這是題外話:-p。 

至於電影中的code,給我印象比較深的是《神祕拼圖》等。這裡面的code與通常的code不同。因為要考慮到觀眾的理解能力,電影中的 code的金鑰往往與一些典故有關,比如在一本書裡(比如聖經),或者在一幅畫中。這些因素總是使得懸疑的情節散發出濃厚的人文氣息。有時候,電影中的 code乾脆就以字謎或畫謎的形式出現,這就是我在前面提到的,在數學以外領域的延伸,本質上是一種隱喻。 

當然,不僅僅是電影,在小說、遊戲等其他藝術領域,密碼也經常出現,並且總是能成為推動情節發展的關鍵動力。比如《達·芬奇密碼》,比如福爾摩斯的一些探案故事。 

Case 7 The RING 

如果提到恐怖小說,不能不提到《午夜凶鈴》。這也是我唯一完整讀完的長篇恐怖小說。《午夜凶鈴》是日本著名小說家鈴木光司的作品,共有四部。其情節我就不再贅述了。需要指出的是,在小說的第二部《凶鈴再現》中,作者以相當的篇幅描寫了一種基於DNA的極度匪夷所思的密碼。 

大致的情節是:午夜凶鈴的受害者由於受到怨念的影響,體內的基因產生突變。經過染色體的變異,四個鹼基A,G,T,C(腺嘌呤、鳥嘌呤、胸腺嘧啶、胞嘧啶)經過組合竟然表達出了非同一般的資訊。這種以染色體鹼基序列作為加密載體的方式,我還真是聞所未聞。不禁對鈴木光司那天馬行空般的想象力感到深深的佩服。 



Case 8 生命之歌 

中國著名科幻小說作家王晉康曾經寫過一部非常經典的小說《生命之歌》,也是關於DNA密碼的。當時曾經引發了科幻界的大討論,給我印象很深刻。 

故事提出的假設是,既然DNA包含了生命的密碼,那麼機器如果洞悉了其中的奧祕,會不會發展成足以和人類競爭的生命形式呢?小說裡面還加入了音樂的要素,即把DNA的序列編製成了旋律,即生命之歌。這個是有一定科學依據的。因為歷史上確實有過把DNA序列譜寫成音樂的先例(好像是個日本的演奏家,具體的我給忘了)。 

這似乎又是一個隱喻。抑或是,諷刺? 

Case 9 密寫術 

這個話題似乎跟密碼沒什麼關係。但是因為實在很有趣,我就寫下來了。 

所謂密寫,就是用特殊的方式寫資訊,然後只能用特殊的方式才能看到。記得中學語文裡有一篇關於魯迅的課文,提到一種用米湯進行的密寫方式。即用毛筆或手指蘸著米湯寫字,只有紙張浸水後才能看到。後來看了一些影視作品,經常出現的場面是一張羊皮紙在熊熊的火中現出字跡。最誇張的是漫畫《城市獵人》中有一節,居然是在鏡子的背面進行密寫,然後將鏡子反光在牆上投影,從中就會顯現出字樣。 

下面介紹一種非常簡單的密寫方法。首先,準備兩張白紙和一盆水。將其中的一張白紙在盆內浸溼,鋪開在桌面,攤平。將另外一張乾燥的白紙覆蓋在溼的那張紙上,然後在其上書寫文字。寫完後,將乾燥的紙張拿走,毀掉,然後把那張浸溼的紙曬幹。好了,曬幹後的那張紙看上去將仍然是一張白紙,可是一旦浸溼,就會顯現出字樣。密寫成功。 

這個方法我在初中玩過多次,屢試不爽。 

Case 10 矩陣博士 

差點忘了,談論密碼就不能不提到一位美國人,大名鼎鼎的矩陣博士。他的真名我忘了,不過他在美國應該是家喻戶曉。《科學美國人》雜誌曾經對他做過長期的採訪。矩陣博士的職業是“數學巫師”,就是通過數學來搞一些玄學的東西,比如算命等等。此人數學天賦極高,可惜沒有用在正道上。《科學美國人》對他的專訪也是揭露了很多他的騙術。比如,他使用一個環形的字母表來給人測字,或是對人夢中出現的數字給予玄妙的解釋(舉例:有個人夢中經常出現7734這個數,矩陣博士給它倒過來寫,結果變成了hell,即地獄)。他可以通過一美元紙幣的隱喻預測肯尼迪的被刺。他甚至宣稱開發出了可以寫詩的電腦程式。他還曾因為非法變造美元貨幣(通過特殊的裁剪貼上使得14張20美元紙幣變為15張)而遭到通緝。最後他的數學“天才”終於引起了當局的注意,被招安到了中央情報局,從事密碼方面的研究。 

《科學美國人》的專欄作家馬丁·加德納為此曾經專門寫過一本書,介紹陣圖博士的把戲。我看的是80年代的中譯本,取名居然叫《科學算命之謎》,現在的譯本改為《矩陣博士的魔法數》,有興趣的讀者不妨找來一讀。 

Case 11 聖經密碼 

上個世紀在西方世界鬧得沸沸揚揚的一本書《聖經密碼》,將密碼的故事推演到了極致。此書可能是因為意識形態的原因在大陸沒有出版,因此我只能讀到盜版的臺譯本。 

90年代,美國《華盛頓郵報》記者德羅斯寧出版了一本叫作《聖經密碼》的書,記述了有關聖經密碼的破譯方法,及密碼對過去一些重大歷史事件的印證和對未來世界的聳人聽聞的預測。聖經密碼的發現者在1994年預測拉賓遇刺,結果1995年悲劇果然發生了。當時在全世界引發了轟動,也引發了科學界與宗教界的激烈辯論。 

所謂聖經密碼,就是採取均衡間字法可以發現聖經中隱藏的資訊,即“上帝的啟示”。 研究人員首先將原版希伯萊文的《聖經》舊約輸入計算機,去掉所有的標點,使之成為一整篇由344805個希伯萊文字母組成的文字,然後運用均衡間字法對整篇經文進行搜尋,結果獲得驚人的發現。神奇的聖經密碼不僅印證了許多重大的歷史事件,甚至似乎還可以預測未來世界。比如,使用計算機對聖經密碼進行分析,搜尋“第二次世界大戰”,可以找到“希特勒”的名字,而且周圍還環繞著諸如“納粹”、“屠殺”等字眼。讓人感覺十分的匪夷所思。 

這真的是來自上帝的啟示嗎?《聖經密碼》一出版就招致了各方面的異議和指責,至今仍然是科學界與宗教界備受爭議的話題。不過歷史最後必將作出公正的判斷。 

今年年初,《聖經密碼2》終於出版,我不由期待中文版的面世。當然,大陸的正版看來是沒有指望了(笑)。 

Case 12 一道題目 

12.6.7.9.19.23.9.12/9.20/3.16.17.15/ 
9.21/9.20/20.9.22.23.12/ 

文章的結尾給大家出一道題目。請破譯上面的兩行密碼。這是前面提到的古典密碼的一個強化版本,有興趣的朋友可以試試身手。由於密碼的原理很簡單,我就不給提示了。 

轉載於:https://www.cnblogs.com/qihongshuo/archive/2013/04/22/3035777.html

相關文章