(小非整理)
一.維吉尼亞密碼
維吉尼亞密碼引入了“密鑰”的概念,即根據(jù)密鑰來(lái)決定用哪一行的密表來(lái)進(jìn)行替換,以此來(lái)對(duì)抗字頻統(tǒng)計(jì)。假如以上面第一行代表明文字母,左面第一列代表密鑰字母,對(duì)如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
當(dāng)選定RELATIONS作為密鑰時(shí),加密過(guò)程是:明文一個(gè)字母為T,第一個(gè)密鑰字母為R,因此可以找到在R行中代替T的為K,依此類推,得出對(duì)應(yīng)關(guān)系如下:
密鑰:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
歷史上以維吉尼亞密表為基礎(chǔ)又演變出很多種加密方法,其基本元素?zé)o非是密表與密鑰,并一直沿用到二戰(zhàn)以后的初級(jí)電子密碼機(jī)上。
三.柵欄加密法
柵欄加密法是一種比較簡(jiǎn)單快捷的加密方法。柵欄加密法就是把要被加密的文件按照一上一下的寫法寫出來(lái),再把第二行的文字排列到第一行的后面。相應(yīng)的,破譯方法就是把文字從中間分開,分成2行,然后插入。柵欄加密法一般配合其他方法進(jìn)行加密。例:加密information 分行 i f r a i n n o m t o 合并 ifrainnomto 完成~
五.RSA算法
RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA算法是一種非對(duì)稱密碼算法,所謂非對(duì)稱,就是指該算法需要一對(duì)密鑰,使用其中一個(gè)加密,則需要用另一個(gè)才能解密。 RSA的算法涉及三個(gè)參數(shù),n、e1.e2。 其中,n是兩個(gè)大質(zhì)數(shù)p、q的積,n的二進(jìn)制表示時(shí)所占用的位數(shù),就是所謂的密鑰長(zhǎng)度。 e1和e2是一對(duì)相關(guān)的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質(zhì)(互質(zhì):兩個(gè)正整數(shù)只有公約數(shù)1時(shí),他們的關(guān)系叫互質(zhì));再選擇e2,要求(e2*e1)mod((p-1)*(q-1))=1。 (n及e1),(n及e2)就是密鑰對(duì)。 RSA加解密的算法完全相同,設(shè)A為明文,B為密文,則:A=B^e1 mod n;B=A^e2 mod n; e1和e2可以互換使用,即: A=B^e2 mod n;B=A^e1 mod n
七.四方密碼
四方密碼用4個(gè)5×5的矩陣來(lái)加密。每個(gè)矩陣都有25個(gè)字母(通常會(huì)取消Q或?qū),J視作同一樣,或改進(jìn)為6×6的矩陣,加入10個(gè)數(shù)字)。 首先選擇兩個(gè)英文字作密匙,例如example和keyword。對(duì)于每一個(gè)密匙,將重復(fù)出現(xiàn)的字母去除,即example要轉(zhuǎn)成exampl,然后將每個(gè)字母順序放入矩陣,再將余下的字母順序放入矩陣,便得出加密矩陣。 將這兩個(gè)加密矩陣放在右上角和左下角,余下的兩個(gè)角放a到z順序的矩陣: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y WO a b c d e R D A BC f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 加密的步驟: 兩個(gè)字母一組地分開訊息:(例如hello world變成he ll ow or ld) 找出第一個(gè)字母在左上角矩陣的位置 a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 同樣道理,找第二個(gè)字母在右下角矩陣的位置: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 找右上角矩陣中,和第一個(gè)字母同行,第二個(gè)字母同列的字母: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u NO R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 找左下角矩陣中,和第一個(gè)字母同列,第二個(gè)字母同行的字母: a b c d e E X A M P f g h i j L B C D F k l m n o G H I J K p r s t u N O R S T v w x y z U V W Y Z K E Y W O a b c d e R D A B C f g h i j F G H I J k l m n o L M N P S p r s t u T U V X Z v w x y z 這兩個(gè)字母就是加密過(guò)的訊息。 he lp me ob iw an ke no bi的加密結(jié)果: FY GM KY HO BX MF KK KI MD 二方密碼 二方密碼(en:Two-square_cipher)比四方密碼用更少的矩陣。 得出加密矩陣的方法和四方密碼一樣。 例如用「example」和「keyword」作密匙,加密lp。首先找出第一個(gè)字母(L)在上方矩陣的位置,再找出第二個(gè)字母(D)在下方矩陣的位置: E X A M P L B C D F G H I J K N O R S T U V W Y Z K E Y W O R D A B C F G H I J L M N P S T U V X Z 在上方矩陣找第一個(gè)字母同行,第二個(gè)字母同列的字母;在下方矩陣找第一個(gè)字母同列,第二個(gè)字母同行的字母,那兩個(gè)字母就是加密的結(jié)果: E X A M P L B C D F G H I J K N O R S T U V W Y Z K E Y W O R D A B C F G H I J L M N P S T U V X Z help me的加密結(jié)果: he lp me HE DL XW 這種加密法的弱點(diǎn)是若兩個(gè)字同列,便采用原來(lái)的字母,例如he便加密作HE。約有二成的內(nèi)容都因此而暴露。
十一.ADFGVX密碼
假設(shè)我們需要發(fā)送明文訊息 "Attack at once", 用一套秘密混雜的字母表填滿 Polybius 方格,像是這樣: 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)換成處理過(guò)的分解形式。 A T T A C K A T O N C E 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」依次抄下該字下整行訊息,形成新密文。如下: 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ái)的加密法發(fā)送含有大量數(shù)字的簡(jiǎn)短信息有問(wè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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 著名的維熱納爾方陣由密碼學(xué)家維熱納爾編制,大體與凱撒加密法類似。即二人相約好一個(gè)密鑰(單詞),然后把加密后內(nèi)容給對(duì)方,之后對(duì)方即可按密碼表譯出明文。密鑰一般為一個(gè)單詞,加密時(shí)依次按照密鑰的每個(gè)字母對(duì)照明碼行加密。例如:我的密鑰是who,要加密的內(nèi)容是I love you,則加密后就是E SCRL MKB.即加密I,就從密鑰第一個(gè)字母打頭的w那行找明碼行的I對(duì)應(yīng)的字母,即E。加密l,就從密鑰第2個(gè)字母打頭的h那行找明碼l對(duì)應(yīng)的字母,S。加密o,從密鑰第三個(gè)字母O打頭的那行找到明碼行中o對(duì)應(yīng)的字母,C。加密v,就又從密鑰第一個(gè)字母w打頭的那行找到明碼行中v對(duì)應(yīng)的字母,R。 依此類推。所以由維熱納爾方陣加密的密碼,在沒(méi)有密鑰的情況下給破譯帶來(lái)了不小的困難。維熱納爾方陣很完美的避開了概率算法(按每個(gè)語(yǔ)種中每個(gè)字母出現(xiàn)的概率推算。例如英語(yǔ)中最多的是e),使當(dāng)時(shí)的密碼破譯師必須重新找到新方法破譯。
十四.埃特巴什碼 埃特巴什碼是一個(gè)系統(tǒng):最后一個(gè)字母代表第一個(gè)字母,倒數(shù)第二個(gè)字母代表第二個(gè)字母。 在羅馬字母表中,它是這樣出現(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 密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A 這種密碼是由熊斐特博士發(fā)現(xiàn)的。熊斐特博士為庫(kù)姆蘭《死海古卷》的最初研究者之一,他在《圣經(jīng)》歷史研究方面最有名氣的著作是《逾越節(jié)的陰謀》。他運(yùn)用這種密碼來(lái)研究別人利用其他方法不能破解的那些經(jīng)文。這種密碼被運(yùn)用在公元1世紀(jì)的艾賽尼/薩多吉/拿撒勒教派的經(jīng)文中,用以隱藏姓名。其實(shí)早在公元前500年,它就被抄經(jīng)人用來(lái)寫作《耶利米書》〔1〕耶利米是活動(dòng)在公元前627-前586年間的猶太先知,圣經(jīng)舊約書中有許多關(guān)于他的記載。在他離世前,猶太領(lǐng)土已被巴比倫人占領(lǐng)?!?〕。它也是希伯來(lái)文所用的數(shù)種密碼系統(tǒng)之一。 白金特、雷伊和林肯在《彌賽亞的遺產(chǎn)》中寫道,熊斐特博士于《艾賽尼派的奧德賽》一書中描述他如何對(duì)圣殿騎士們崇拜的鮑芙默神癡迷,又如何用埃特巴什碼分析這個(gè)詞。令他驚奇的是,破譯出的詞“Sophia”為希臘語(yǔ)中的“智慧”。 在希伯來(lái)語(yǔ)中,“Baphomet”一詞拼寫如下——要記住,希伯來(lái)語(yǔ)句必須從右向左讀: 〔 taf 〕 〔 mem 〕 〔 vav 〕 〔 pe 〕 〔 bet 〕 將埃特巴什碼用于上述字母,熊斐特博士得到如下結(jié)果: 〔 alef 〕 〔 yud 〕 〔 pe 〕 〔 vav 〕 〔 shin 〕 即為用希伯來(lái)語(yǔ)從右向左書寫的希臘詞“Sophia”。 Sophia的詞義不僅限于“智慧”。它還是一位女神的名字——這位女神照說(shuō)應(yīng)該是上帝的新娘。許多人相信,圣殿騎士們崇拜這位女神?!?〕作者引用的是諾斯替學(xué)派的神話:“不可知解”的至尊上帝,“源化”出最早的幾位亞神,最后一位就是索菲亞——“智慧”。她極求得到對(duì)上帝“神質(zhì)”的“真知”——她名字第二意義的來(lái)源,而這種不合神性的欲望“孕生”了邪神,即創(chuàng)造宇宙的另一位“上帝”。諾斯替派將他等同于舊約中的上帝,來(lái)解釋亞當(dāng)夏娃墮降塵間和大洪水的事件?!?〕 圣殿騎士們通曉埃特巴什碼的事實(shí),強(qiáng)烈表明有些來(lái)自一個(gè)拿撒勒教派的人置身于圣殿騎士中間。 丹·布朗關(guān)于英語(yǔ)是“最純潔的”語(yǔ)言的觀念可能是空想的,但并不是什么新理論。萊納堡附近有個(gè)叫做萊納浴泉的村莊,那里的神父亨利·布德寫過(guò)一本名為《真實(shí)的凱爾特語(yǔ)》的書,也聲稱英語(yǔ)是一種神圣的語(yǔ)言,或許在“巴比倫塔”〔2〕用方舟拯救人類的諾亞,有一支后代在巴比魯尼亞定居。他們?cè)谑芳{爾平原建造高塔,試圖攀登天界。惱怒的上帝分化了在此之前統(tǒng)一使用的語(yǔ)言,*而交流不通引發(fā)的混亂和爭(zhēng)執(zhí)使人前功盡棄。〔2〕墮毀前就已得到使用。據(jù)說(shuō),這本書從字面上是不能理解的,它是用密碼寫成的,傳達(dá)一個(gè)不同的信息。我們還應(yīng)該記住,與其他的一些歐洲語(yǔ)言一樣,英語(yǔ)的許多詞匯源于拉丁。正如翠茜·特威曼在《達(dá)戈貝特復(fù)仇記》雜志中指出的那樣,英語(yǔ)因?yàn)橛?6個(gè)字母,可以完美地用于埃特巴什碼。其他歐洲語(yǔ)言所用的字母則不成偶數(shù)。此外,她始終認(rèn)為郇山隱修會(huì)偏愛(ài)英語(yǔ)