第一章 從零開始做加密
本章的話題會涵蓋以下的內容:
什么是密碼學?
編碼和加密
Caesar加密
加密輪子
St. Cyr輪換
用紙筆做一個加密器
“雙長度”加密
除了監聽之外我什么也做不來,那是因為我已經被監聽了。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-----------Anonymous
(上面的Anonymous不是某個匿名者,而是大名鼎鼎的黑客軍團)
什么是密碼學?
先看看下面兩段文字(英文)
右邊就是坑爹的亂碼,對!沒錯,就是亂碼,隨機生成的字符,木有實際的內容隱含在里頭。加密的目的是為了讓你寫出別人看不懂的東西,即使他們能拿到你加密過的消息,因為這些消息看起來和隨機亂寫的文字一樣。
密碼學就是一門研究如何隱藏消息的科學,密碼學人(我曾經就是LoL)就是那些專門研究如何隱藏消息的人,本書會教你如何變成一個秘密學人。密碼分析學人(我曾經也是,是不是忽然感覺我高大上很多,其實很多人都是,囧)就是那些專門搞破解密文的人,通俗的說就是用非尋常方法讀到密文中隱藏信息的人,所以這樣的人也被稱作破解者(看到這里,劉慈欣的粉絲是不是很高興,這這不就是破壁者么,呵呵)或者黑客。不過不幸的是,你在本書學到的破解方法是不足以讓你惹來法律上的麻煩,實際上,我想表達的是你狠幸運(我其實很討厭這種西洋幽默,關鍵是那幫大胡子在笑,我怎么都笑不出來)。間諜,軍人,黑客,海盜,皇族,商人,暴君,政治活躍人士,網絡購物者以及所有需要將某些信息隱藏起來交換給他人的時候都會用到密碼學的技術來保障這個過程的安全。
編碼和加密
19世紀早期,隨著電報技術的發展,大陸間的通訊已經已經可以通過電線實現即時傳輸了。這比起用馬來傳遞書信的方式快的不是一點半點。然而,電報不能直接發送寫在紙上的文字,必須傳輸電脈沖,短脈沖用點表示,長脈沖用橫線顯示。(說到這里有點枯燥,請注意,諜戰片發報的時候帶著耳機“滴滴滴滴”的東西說的就是這個了,是不是瞬間生動很多)
(我說的,不信看看特米尼克的自傳,囧,你問我特米尼克是誰,好吧,線下問!)
為了將這些點啊橫線啊轉換成英文字母(為什么不是中文!因為摩斯他講的是英文LoL),因此編碼系統應運而生,將脈沖的組合和英文對應起來。從英文字母到電脈沖稱編碼,從電脈沖到英文字母叫解碼,從這個偉大的發明叫做摩斯電碼,是Samuel Morse和Alfred Vail共同發明的。通過一個鍵,對,只有一個鍵的發報機,發報員可以實時的和世界另一邊的人用英文交流!(試想星際穿越的劇情,甚至可以和另外一個維度的生命交流,orz)如果你對摩斯電碼產生了濃厚的興趣,請自己到http://invpy.com/morse這里看看,相信不會讓你失望的。
編碼很重要,因為基于編碼,消息傳遞的發送方和接收方才能明白對方什么意思。任何人都可以從這個系統里頭了解如何加密和解密一個消息。