版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-密碼那些事

中國科普作家協(xié)會
原創(chuàng)
對科普科幻青年創(chuàng)作人才進(jìn)行遴選和培訓(xùn)指導(dǎo),支持青年人的創(chuàng)作
收藏

每個人都會有自己的秘密。在人類文明不斷向前發(fā)展的過程中,每個個體都會越來越注重對自己秘密的守護(hù)。從最開始的將物品隱藏,到后來伴隨文字發(fā)展而出現(xiàn)的密碼,再到后來計算機(jī)密碼的出現(xiàn)與普及,密碼的一步步發(fā)展像一串活潑的音符跳躍在人類文明的五線譜上,那些里程碑式的著名加密方法與機(jī)器,更是散發(fā)著先人智慧的光芒。如今,我們的生活已離不開密碼,例如與我們個人利益息息相關(guān)的銀行卡密碼、社交賬號密碼等等。人們使用密碼來守護(hù)自己的秘密,防止信息被他人利用。但密碼的樣子可不是只一串小黑點(diǎn),密碼家族成員的形態(tài)可謂是千變?nèi)f化,而當(dāng)我們了解它們的產(chǎn)生過程后,定會贊嘆設(shè)計者超人的智慧。

一、密碼的由來

據(jù)史料記載,最早的密碼出現(xiàn)在希臘。公元前404年,斯巴達(dá)國(今希臘)的信使為掩敵人耳目,將情報寫在皮帶上送給了北路軍司令萊山得,使自己的部隊脫離了險境。公元四世紀(jì),希臘開始出現(xiàn)隱藏書信內(nèi)容的初級密碼;八世紀(jì),羅馬教徒為了傳播新教,創(chuàng)立了“圣經(jīng)密碼”。中世紀(jì)末,西班牙的青年男女為擺脫封建階級制度的束縛,追求平等自由的戀愛,采取了種種密信的通信方式,產(chǎn)生了各種原始密碼。

公元8~9世紀(jì),阿拉伯人發(fā)明密碼分析,以用來破譯密碼。19世紀(jì),無線電密碼出現(xiàn),密碼通訊已十分發(fā)達(dá)。時至今日,密碼技術(shù)更趨完善。

二、代碼還是密碼

“代碼”一詞仿佛也經(jīng)常出現(xiàn)在我們的生活中,可是你有沒有思考過,“代碼”和“密碼”到底有什么不同呢?從廣義上來講,代碼和密碼都是指“密碼”,只是它們對于信息的加工方式不同。代碼通常是由其它的詞或字母代替原來的詞,而密碼則是用符號代替單個的字母或聲音,也可以改變字母的順序。下面讓我們通過幾個例子來具體解釋一下。

假如一位特工想向自己的組織發(fā)送一份秘密情報,他會怎么做呢?

他可以將要發(fā)送的文字隱藏在一大段無關(guān)緊要的文字中,再告訴要破譯的人閱讀這段文字的正確方法;他也可以將這段信息轉(zhuǎn)化為旗語、火光的閃爍等等,以另一種感知形態(tài)將信息傳遞出去。以上的幾種方式就是加密的過程,呈現(xiàn)出的信息便是“密碼”。

他也可以將要發(fā)送的文字用一些其它的詞代替,比如,用“毛毛蟲”代替“可樂”,“楊柳”代替“二月的風(fēng)”等等,以特工與組織之前約定好的代替規(guī)則來將這些信息“加碼”,這樣所展現(xiàn)出來的形態(tài)便是代碼了。

那從破譯的角度來說,是不是代碼比密碼更容易被識破呢?在一般情況下,密碼比代碼更加隱秘一些,不仔細(xì)觀察的話難以發(fā)覺。代碼所展現(xiàn)出來的只是一段雜亂無章的文字,仿佛直接告訴別人:這一段奇怪的文字里面有特殊的信息。但在破譯的難度上來講,如果我們不知道代碼的加碼方式,即使知道里面有特殊的信息,我們也是無能為力。例如以前土匪了寨間常用的黑話便是代碼的一種應(yīng)用。我們在看這些奇怪的語句時,如果沒有熟悉它們的人幫忙做翻譯的話,和在聽一種國外的語言沒什么兩樣。

三、信息的隱藏

(1)讓文字“隱身”:轉(zhuǎn)換信息載體

為避免文字被別人直接看到,人們通常會使用“隱形墨水”來書寫信息。隱形墨水的材料非常簡單,只是普通的檸檬汁和醋。用這種墨水寫出的字在紙張干燥的情況下不易被看到,濕潤后則顯而易見。

還有一種方法便是將重要的信息隱藏在大量無關(guān)的信息中,最常見的便是藏頭詩了。比如在小說《水滸傳》中,梁山好漢為了拉盧俊義入伙,吳用和宋江便生出一段“吳用智賺玉麒麟”的故事來。他們利用盧俊義為了躲避“血光之災(zāi)”的恐慌心理,編了四句卦歌:“蘆花叢中一扁舟,俊杰俄從此地游。義士若能知此理,反躬難逃可無憂。”將每一句的第一個字連在一起便是“盧俊義反”四字。依照此例,關(guān)鍵字也可以是每句話的第二、三字。當(dāng)此種書信不易書寫時,也可直接將關(guān)鍵字做標(biāo)注,比如在關(guān)鍵字下扎一個小孔,讀信人迎著太陽光便可知道信息。

(2)給信息加密:那些經(jīng)典的密碼

1.豬舍密碼:

豬舍密碼已流傳百年,它將26個英文字母放到固定的格子中,進(jìn)而以格子的形狀來代替字母。具體實例如插圖。

例如,若要表示字母T,便可用“>”表示。上述圖二所表達(dá)的信息分別是:x marks

The spot

由于太過經(jīng)典,這種密碼已不常用了。

2.將字母重新排序

此種加密的方法即是將我們要傳達(dá)的信息填到特定的表格中,再按照表格豎行的順序?qū)⒆帜赴l(fā)出。例如,信息的內(nèi)容是:I will see you in Lincoln park tomorrow afternoon

將這段文字輸入下面的表格

I W I L L
S E E Y O
U I N L I
N C O L N
P A R K T
O M O R R
O W A F T
E R N O O
N

那么下一步發(fā)送出去的內(nèi)容即變成了 ISUNP OOENW EICAM WRIEN OROAN LYLLK RFOLO INTRT O 如此一來我們便完成了對信息的一次加密。

3.關(guān)鍵詞存在的加密方式

以medicinal為關(guān)鍵詞,則在這個單詞中將各個字母按字母表順序編號:843526917,共九個數(shù)字,所以我們列出一個有九列的表格,第一行為關(guān)鍵詞的數(shù)字,還是將上述信息填入。

8 4 3 5 2 6 9 1 7
I W I L L S E E Y
O U I N L I N C O
L N P A R K T O M
O R R O W A F T E
R N O O N

然而,當(dāng)我們發(fā)送信息時則按照第一行數(shù)字的順序,將各列字母列出:ECOTLLRWNIIPROWUNRNLNAOOSIKAYOMEIOLORENTF 再將這串字母五個一組發(fā)出:

ECOTL LRWNI IPROW UNRNL NAOOS IKAYO MEIOL ORENT F即完成加密。

也可在關(guān)鍵詞存在的條件下將字母重新排序。例如,我們選擇goodtime為關(guān)鍵詞,將其列在密碼表的開頭位置。如關(guān)鍵詞中有重復(fù)的字母,即次關(guān)鍵詞中的o,則將其省略掉其中一個。然后從關(guān)鍵詞的最后一個字母開始,完成字母表剩余的部分。具體如下表:

a b c d e f g h i g k l m n o p q r s t u v w x y z
G O D T I M E F H J K L N P Q R S U V W X Y Z A B C

這樣我們就完成了一份密碼表。需要注意的是,密碼表的第二行不能有重復(fù)的字母。用此種方法進(jìn)行加密,雖說關(guān)鍵詞使信息被破解的可能性大大降低,但人們通??梢酝ㄟ^一般情況下字母出現(xiàn)的概率來推測密碼表的結(jié)構(gòu)。例如統(tǒng)計發(fā)現(xiàn),文章中出現(xiàn)概率最高的字母為“e”,這便是破譯的一條線索。但整片文章中不出現(xiàn)字母“e”的可能性也是有的。

4.欺騙譯碼人

從上面的例子來看,譯碼人在破譯密碼時最常用的方法是頻率分析法。所以我們在保證信息安全時,可以通過一些手段給譯碼人制造一些假象,破壞頻率分析法。例如,用多個符號來代替常用的字母,還可以加入一些沒有意義的符號作為空符。具體的做法是在關(guān)鍵詞的后面再加上幾個其它的符號,然后將剩下的字母移到常用字母(a,e,o,t)的下一行對應(yī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
G O D T I M E 1 2 3 4 F H J K L N P Q R S U V W X Y
Z A B C

這樣一來,常用詞的對應(yīng)密碼變成了兩個,例如我們在表達(dá)“THE”這個單詞時就可以有四種表現(xiàn)方式了“R1I”、“R1A”、“C1I”、“C1A”。這就大大提高了破譯密碼的難度。

雖說此種方式可以在一定程度上擾亂譯碼人的視聽,但是譯碼人還是可以通過經(jīng)常出現(xiàn)的且連在一起的兩個字母,或是連在一起的重復(fù)字母而有所發(fā)現(xiàn)。那么,有沒有一種方法可以用兩個乃至多個字母來代表信息中的字母呢?由此想法,我們的先人們想出了將多個字母表結(jié)合到一起進(jìn)行加密的方法。最著名的一種方法應(yīng)該算是16世紀(jì)后半期出現(xiàn)的維吉那正方形:

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
A B C D E F G H I G K 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 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 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 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 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 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 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 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 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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 M N O P Q R S T U V W X Y Z

實際上,字母表很簡單,就是將26個字母寫成一個正方形,依次用了26種凱撒移位。而它的復(fù)雜之處就在于每個密碼字母都可能代表26個原始字母,所以很難破譯。

現(xiàn)在,我們來看一下如何使用這種密碼。

首先,我們還是需要一個關(guān)鍵詞。還以MEDICINCAL為關(guān)鍵詞,I will see you in Lincoln park tomorrow afternoon為信息。我們需要將關(guān)鍵詞重復(fù)的寫在信息的上方:

MEDICINALMEDICINALMEDICINALMEDICINALMEDIC

iwillseeyouinlincolnparktomorrowafternoon

下面我們開始對信息進(jìn)行加密。信息的第一個字母為i,它所對應(yīng)的關(guān)鍵詞字母是M,那么我們在維吉那正方形中的最左邊一列中找到“M”,然后在它所在的橫行中找到與“i”對應(yīng)的字母“V”。所以加密后的第一個字母為“V”。依次類推,將信息中的字母全部替代掉,就可以得到一封完整的密碼信了。從加密的方式來看,關(guān)鍵詞越長,加密的復(fù)雜性越高。同時,如果我們將關(guān)鍵詞進(jìn)行二次加密,則破譯難度將會更大。

看過了以上幾個典型的加密方式,你是否感到驚嘆與神奇?也許在學(xué)習(xí)了這些方法之后,我們可以輕松的加密自己的信息,可是如果給我們一封雜亂無章的密碼信,我們是否又能在千千萬萬的加密方法中找到正確的那個并且準(zhǔn)確的破譯呢?想想就會讓人頭大吧……如果你想要真正掌握這些加密與解密的方法的話,最有效的辦法便是注重在實際生活中對這些方法的使用。當(dāng)你真正可以熟練的運(yùn)用它們,它們才能算是真正為你所用了。

此外,以上所介紹的幾種方法現(xiàn)在也很少有人使用了,一方面是由于方法陳舊、太多人知曉了,另一方面,更多更新鮮實用巧妙的方法在不斷的被發(fā)明出來,先前的方法被逐漸淘汰。密碼的發(fā)展展現(xiàn)出了欣欣向榮的前景。

四、保密的機(jī)器

用來加密或破譯密碼的機(jī)器可以幫助編碼人或譯碼人減輕工作上的負(fù)擔(dān)。任何機(jī)器的發(fā)展都是由簡單到復(fù)雜的,最早的保密機(jī)器只是一根木棍。斯巴達(dá)人首先將羊皮紙纏在一根木棍上,再沿著木棍寫上信息。在羊皮紙上加上其它無用信息后,展開的羊皮紙上雜亂無章,信息就會被隱藏起來。讀信人只有用同樣粗細(xì)的木棍才能將信息再次顯示出來。

在15世紀(jì),編碼人利昂?巴提斯塔?愛波提,他首先提出了用多字母進(jìn)行編碼,發(fā)明的機(jī)器也與多字母表編碼有關(guān)。此機(jī)器由兩個圓形的銅盤組成,一大一小,小的銅盤可以轉(zhuǎn)動。大圓盤的邊緣寫著普通的字母,而小盤邊緣則寫著密碼字母表的符號。通過旋轉(zhuǎn)小盤,我們就可以得到26種不同的密碼字母表。

18世紀(jì)90年代,杰弗遜又發(fā)明了一種更為方便的密碼輪。這種密碼輪由26個轉(zhuǎn)盤組成,每個轉(zhuǎn)盤的邊緣都寫有全部的26個字母,但是字母的排列順序是各不相同的。當(dāng)你要發(fā)送信息時,在第一個轉(zhuǎn)盤上依次轉(zhuǎn)動到相應(yīng)的字母上,在26個轉(zhuǎn)盤上會顯示26個不同的字母。此時你只需要選擇其中一個轉(zhuǎn)盤上的字母為加密后的信息發(fā)送出去,收信者只需用同樣的機(jī)器便可得出原信息。

隨著技術(shù)的進(jìn)步,保密機(jī)器經(jīng)歷機(jī)械化、電氣化,演化出眾多十分精巧的形式。我們在影視中??吹降碾妶蟊銓⒚艽a生成的過程大大簡化,為情報的傳遞提供了極大的便利?;氐浆F(xiàn)在,計算機(jī)密碼則在此基礎(chǔ)上有了更大更復(fù)雜的發(fā)展。計算機(jī)可通過ASCII系統(tǒng)將所有的字母轉(zhuǎn)化成二進(jìn)制的數(shù)字,再通過編碼軟件將其轉(zhuǎn)換成極其復(fù)雜的密碼。此過程雖然計算量大,但利用計算機(jī)極高的計算速度,已成為人們生活中普遍使用的加密方法。

由上述可見,我們印象中的那串黑點(diǎn)是密碼文化發(fā)展到今日的便捷產(chǎn)物,密碼的產(chǎn)生和發(fā)展標(biāo)示著人類智慧的進(jìn)步,同時也是需要我們?nèi)鞒械奈幕z產(chǎn)。而在我們自小至大的成長過程中,與密碼有關(guān)的知識我們可能只有在課外科普與偵探小說中才能了解的到,很多人并沒有這方面的知識儲備。在我看來,青少年了解密碼的加密與解密的方法,不僅可以開闊視野,更重要的是在這個學(xué)習(xí)的過程中,我們可以鍛煉自己的思維,鍛煉觀察與聯(lián)想的能力,進(jìn)而在生活的其它方面得到幫助。

總而言之,密碼那些事兒里有無窮無盡的奧秘,感興趣的小伙伴快帶著自己的求知心一探究竟吧。

內(nèi)容資源由項目單位提供