'密碼學初探:隱藏信息的藝術——區塊鏈技術引卷之十一'

"

密碼學(Cryptography),是一門將信息進行加密處理與傳遞,以及分析加密信息的學科。根據以RSA為代表的公鑰加密體系的出現,可以將密碼學的發展過程分為古典密碼學與現代密碼學兩部分。古典密碼學以“置換法”與“替換法”為基礎,多應用於軍事與情報領域;現代密碼學則建立在數學、計算機與通信科學的基礎上,除了加密信息之外,數字簽名、數據完整性、身份認證等也是現代密碼學的研究課題。

摘要

置換法依照一定的規則,改變原始信息中的字母排列順序;替換法將原始信息中的字母按照一定的規則替換成其他字母。置換法與替換法的安全性較差,古阿拉伯的學者們開創了破譯加密信息的科學——密碼分析學,通過頻率分析的方法破解替換式加密法。

在長達一千多年的時間裡,古典密碼學以置換法與替換法為基礎不斷演進。以維吉尼亞密碼為代表的多字母表替換式加密法輪流使用多個不同的替換式密碼錶,依次對明文中的字母進行加密。第二次世界大戰時德軍使用的“恩尼格瑪”是一種基於複雜的多表替換加密原理的機械式密碼機,但最終由於自身加密算法的缺陷,被圖靈設計的“炸彈”攻克。

置換式與替換式加密法的弱點在於沒能完全消除密文中有關明文的某些特徵,保留了明文中的某些信息。奧古斯特·柯克霍夫在19世紀提出的柯克霍夫原則(Kerckhoff's Principle)概括性地總結了加密算法應遵循的設計原則:即使加密系統的各個環節都是公開知識(Public knowledge),只要密鑰未被洩漏,加密系統都應該是安全的。

加密算法的安全性問題本質在於:如何降低攻擊者在瞭解加密算法,並擁有足夠長的密文片段的前提下,猜測出正確密鑰的可能性?1948年,香農創立了信息論,並在次年的一篇論文中從數學的角度討論了加密系統,人們開始從科學的角度探究密碼學的奧祕。

風險提示:量子計算技術的潛在威脅

目錄

1 隱匿法

2 加密法

3 持續千年的智力競賽:加密與解密

4 古典密碼學的聖盃

5 攻克“恩尼格瑪”

正文

密碼學(Cryptography),是一門將信息進行加密處理與傳遞,以及分析加密信息的學科。“密碼學”一詞的詞源來自古希臘語“隱藏”(Kryptós)和“書寫”(Graphein),意為“祕密書寫”,其歷史幾乎與人類有文字記載的文明一樣悠久。古希伯來學者在公元前六世紀左右就掌握了“單字母表替換式加密法”,在之後的兩千五百多年裡,古典密碼學在替換式加密法的基礎之上不斷髮展演進。古典密碼學多應用於軍事與情報領域,而微型計算機與現代密碼學的發展能夠保護普通人的日常通信免受第三方的窺探。現代密碼學建立在數學、計算機科學與通信科學的基礎上,除了信息的加密與解密之外,數字簽名、數據完整性、身份認證等也是現代密碼學的研究課題。今天人們日常生活中的網絡支付、電子商務、電子貨幣等都是密碼學這一人類兩千多年來智慧結晶的應用。

密碼學的概念與人們平時登陸網站、使用銀行賬戶的“密碼”並不相同。這些用於身份認證的“密碼”,更準確的翻譯是“通行詞”或“通行碼”(password),它是現代密碼學的諸多應用之一,請讀者注意區分兩者的區別。

受限於篇幅,有關密碼學以及密碼學在區塊鏈中應用的內容將分兩篇專題介紹。

1

隱匿法

隱匿法的歷史非常久遠,可以追溯到公元前5世紀古希臘與波斯帝國的戰爭年代。公元前480年,波斯艦隊在“萬王之王”薛西斯一世的率領下祕密集結,準備對希臘發起進攻,然而這一祕密行動被一位遭到流放、居住在波斯的希臘人狄馬圖拉斯發現了。他將波斯軍隊準備進攻希臘的消息寫在木板上,並用一層蠟將文字遮住,成功騙過了路途中的波斯衛兵,將信息傳回了希臘。希臘城邦聯合起來,抵禦住了波斯人的突襲。而遭遇挫敗之後,曾經盛極一時的波斯阿契美尼德王朝也開始走向衰退。

儘管簡單地“將信息隱藏起來”與我們今天熟知的密碼學相差甚遠,被稱為“隱匿法”的祕密書寫方式卻標誌著人們開始探索信息保密的方式。

2

加密法

隱匿法僅僅將信息藏匿起來,一旦藏匿的方式暴露,或是負責傳達信息的信使叛變,信息安全也無從保證。加密法則注重隱藏信息本身的含義,信息的發出方與接收方事先約定,將信息按照一定的規則進行轉譯(encipher),接收方在收到後遵循約定的規則就可以還原原始信息,而即使信息被第三方截獲,如果不知道轉譯規則,也無法還原出原始信息。

加密法的出現標誌著古典密碼學的開端。在上面的例子中,未經加密的原始信息稱為明文(plaintext),按照特定的規則對明文進行轉譯後得到的信息稱為密文(ciphertext),這個規則稱為加密算法。古典密碼學的加密算法大多是以字母、單詞或是短語為基本單位,又可分為置換法(Transposition ciphers)和替換法(Substitution ciphers)兩大類。

置換法依照一定的規則,改變原始信息中的字母排列順序。公元前5世紀,斯巴達軍隊採用一種名為“密碼棒”(Scytale)的工具對信息進行加密。發信人將長條形的羊皮紙帶纏繞在一根木棒上,將信息橫向書寫,最後將羊皮紙解下。收信人將信紙纏繞在同樣直徑的木棒上,就能夠還原信息。而羊皮紙上的文字看起來是無意義的,並且用尺寸不相同的木棒也無法還原出原始信息。

但只要瞭解這種密碼的加密方式,就能很容易地解讀密文。從密文的第一個字母開始,每數到它之後的第N個字母,記下該字母。記錄到密文結尾後,再從第二個字母開始重複這樣的操作,以此類推,很快就可以還原明文信息。其中N取決於木棒的直徑,寫下N個字母后,紙帶正好繞木棒一圈,選擇不同的N,同樣的明文經過加密得到的密文也不相同。發信人和收信人要事先約定好同樣的N,收信人才能還原密文。同時N不能被第三方知曉,才能保證加密通信的安全。這裡的N稱為密鑰,是加密通信的參與方共同享有的祕密知識(secretary knowledge),用於加密和解密信息。

替換法將原始信息中的字母按照一定的規則替換成其他字母。據傳,凱撒大帝使用替換式加密法寫作書信。凱撒大帝將信息中的每個字母后移三位,例如A替換成D,Y替換成B,這種加密法稱為凱撒挪移式加密法(Caesar cipher)。在這個例子中,密文相比明文,每個字母都被後移了3位,密鑰可以用3表示。密鑰可能的取值範圍為1~25的自然數(密鑰為0時,密文與原文相同),稱為密鑰空間。明文裡所有可能出現的字母的集合稱為明文空間,密文裡可能出現的字母集合稱為密文空間,替換法中的密鑰可以表示為明文空間到密文空間的一個映射,在古典密碼學中又稱為密碼錶。密文空間可以與明文空間相同,例如凱撒密碼中,密文的字母仍然是26個拉丁字母。密文空間也可以是明文空間的超集,例如在密文中混入一些無效字符,以干擾試圖破譯密碼的行動。密文空間還可以與明文空間完全不相關,例如在柯南道爾所著的福爾摩斯系列的《跳舞的人》(the Adventure of Dancing Men)中,罪犯用26種形態各異的跳舞的小人來替換英文字母。

公元8世紀,阿拉伯哈里發帝國的第二個世襲王朝——阿拔斯王朝在巴格達定都,其建立之初的一百年是伊斯蘭文明的黃金時代。據記載,阿拔斯王朝的官員們使用替換式加密法保護機密的行政事務、稅收數據,相信這能夠幫助他們建立一個廉潔、高效的政府。巴士拉的語言學家卡里爾(Al-Khalil)撰寫了《加密信息手冊》(Book of Cryptographic Messages),使用排列組合對阿拉伯語單詞的加密法進行分析。此外,阿拉伯的學者們還開創了破譯加密信息的科學——密碼分析學(Cryptanalysis)。

3

持續千年的智力競賽:加密與解密

古典密碼學多用於軍事、政治、外交領域重要情報的傳遞,希望刺探這些祕密的人自然不在少數。阿拉伯學者們在統計語言學資料時發現,在樣本容量較大,有意義的阿拉伯語文本中,每個字母出現的頻率是不一樣的。字母a和字母l在阿拉伯語中出現頻率最高(這裡用阿拉伯語字母的拉丁轉寫表示),因為“al”是阿拉伯語中的定冠詞,相當於英語的“the”,此外,元音的出現頻率也比較高。這些成果很快被運用到密文分析中。

之前介紹的替換式加密法中,明文中的所有字母都遵循同一套規則(密鑰)進行替換,這樣的加密法稱為單字母表替換式加密法。公元9世紀,阿拉伯科學家肯迪(Al-Kindi)在《解譯加密信息》(Manuscript for the Deciphering Cryptographic Messages)一書中闡述了對這種加密法的解譯方式。如果能確定原文所使用的語言,首先列舉出密文中出現的所有字母(或字符),統計它們各自出現的頻率並排序,對照該語言中字母出現的頻率順序,就可以開始嘗試對密文進行分析,這種方法稱為頻率分析法。頻率分析還可統計某種語言中特定的字母組合出現的頻率,如英文中的“ee”,以及某個字母前後特定字母出現的頻率,如英文中字母“q”之後一定跟隨”u”等。直到數百年後,中世紀的歐洲學者才掌握這一方法,並且決定了兩位女王的命運。

1586年,英格蘭政府對天主教的迫害日益加劇,安東尼·貝平頓(Anthony Babington)與幾位同黨密謀策反,計劃救出被伊麗莎白女王軟禁的蘇格蘭女王、伊麗莎白女王的表妹、信仰天主教的瑪麗女王,並暗殺伊麗莎白女王。貝平頓通過密使傳遞使用替換式加密法加密的書信,與瑪麗女王商討暗殺計劃。貝平頓設計的更加複雜的替換式加密法使用23個符號替換除j、v、w之外的英文字母,4個不具有任何意義的混淆符號,表示下一個字母連續出現兩次的“dowbleth”符號,以及若干個符號替換常用的單詞,以儘量減少遭到頻率分析法破譯的可能。

"

密碼學(Cryptography),是一門將信息進行加密處理與傳遞,以及分析加密信息的學科。根據以RSA為代表的公鑰加密體系的出現,可以將密碼學的發展過程分為古典密碼學與現代密碼學兩部分。古典密碼學以“置換法”與“替換法”為基礎,多應用於軍事與情報領域;現代密碼學則建立在數學、計算機與通信科學的基礎上,除了加密信息之外,數字簽名、數據完整性、身份認證等也是現代密碼學的研究課題。

摘要

置換法依照一定的規則,改變原始信息中的字母排列順序;替換法將原始信息中的字母按照一定的規則替換成其他字母。置換法與替換法的安全性較差,古阿拉伯的學者們開創了破譯加密信息的科學——密碼分析學,通過頻率分析的方法破解替換式加密法。

在長達一千多年的時間裡,古典密碼學以置換法與替換法為基礎不斷演進。以維吉尼亞密碼為代表的多字母表替換式加密法輪流使用多個不同的替換式密碼錶,依次對明文中的字母進行加密。第二次世界大戰時德軍使用的“恩尼格瑪”是一種基於複雜的多表替換加密原理的機械式密碼機,但最終由於自身加密算法的缺陷,被圖靈設計的“炸彈”攻克。

置換式與替換式加密法的弱點在於沒能完全消除密文中有關明文的某些特徵,保留了明文中的某些信息。奧古斯特·柯克霍夫在19世紀提出的柯克霍夫原則(Kerckhoff's Principle)概括性地總結了加密算法應遵循的設計原則:即使加密系統的各個環節都是公開知識(Public knowledge),只要密鑰未被洩漏,加密系統都應該是安全的。

加密算法的安全性問題本質在於:如何降低攻擊者在瞭解加密算法,並擁有足夠長的密文片段的前提下,猜測出正確密鑰的可能性?1948年,香農創立了信息論,並在次年的一篇論文中從數學的角度討論了加密系統,人們開始從科學的角度探究密碼學的奧祕。

風險提示:量子計算技術的潛在威脅

目錄

1 隱匿法

2 加密法

3 持續千年的智力競賽:加密與解密

4 古典密碼學的聖盃

5 攻克“恩尼格瑪”

正文

密碼學(Cryptography),是一門將信息進行加密處理與傳遞,以及分析加密信息的學科。“密碼學”一詞的詞源來自古希臘語“隱藏”(Kryptós)和“書寫”(Graphein),意為“祕密書寫”,其歷史幾乎與人類有文字記載的文明一樣悠久。古希伯來學者在公元前六世紀左右就掌握了“單字母表替換式加密法”,在之後的兩千五百多年裡,古典密碼學在替換式加密法的基礎之上不斷髮展演進。古典密碼學多應用於軍事與情報領域,而微型計算機與現代密碼學的發展能夠保護普通人的日常通信免受第三方的窺探。現代密碼學建立在數學、計算機科學與通信科學的基礎上,除了信息的加密與解密之外,數字簽名、數據完整性、身份認證等也是現代密碼學的研究課題。今天人們日常生活中的網絡支付、電子商務、電子貨幣等都是密碼學這一人類兩千多年來智慧結晶的應用。

密碼學的概念與人們平時登陸網站、使用銀行賬戶的“密碼”並不相同。這些用於身份認證的“密碼”,更準確的翻譯是“通行詞”或“通行碼”(password),它是現代密碼學的諸多應用之一,請讀者注意區分兩者的區別。

受限於篇幅,有關密碼學以及密碼學在區塊鏈中應用的內容將分兩篇專題介紹。

1

隱匿法

隱匿法的歷史非常久遠,可以追溯到公元前5世紀古希臘與波斯帝國的戰爭年代。公元前480年,波斯艦隊在“萬王之王”薛西斯一世的率領下祕密集結,準備對希臘發起進攻,然而這一祕密行動被一位遭到流放、居住在波斯的希臘人狄馬圖拉斯發現了。他將波斯軍隊準備進攻希臘的消息寫在木板上,並用一層蠟將文字遮住,成功騙過了路途中的波斯衛兵,將信息傳回了希臘。希臘城邦聯合起來,抵禦住了波斯人的突襲。而遭遇挫敗之後,曾經盛極一時的波斯阿契美尼德王朝也開始走向衰退。

儘管簡單地“將信息隱藏起來”與我們今天熟知的密碼學相差甚遠,被稱為“隱匿法”的祕密書寫方式卻標誌著人們開始探索信息保密的方式。

2

加密法

隱匿法僅僅將信息藏匿起來,一旦藏匿的方式暴露,或是負責傳達信息的信使叛變,信息安全也無從保證。加密法則注重隱藏信息本身的含義,信息的發出方與接收方事先約定,將信息按照一定的規則進行轉譯(encipher),接收方在收到後遵循約定的規則就可以還原原始信息,而即使信息被第三方截獲,如果不知道轉譯規則,也無法還原出原始信息。

加密法的出現標誌著古典密碼學的開端。在上面的例子中,未經加密的原始信息稱為明文(plaintext),按照特定的規則對明文進行轉譯後得到的信息稱為密文(ciphertext),這個規則稱為加密算法。古典密碼學的加密算法大多是以字母、單詞或是短語為基本單位,又可分為置換法(Transposition ciphers)和替換法(Substitution ciphers)兩大類。

置換法依照一定的規則,改變原始信息中的字母排列順序。公元前5世紀,斯巴達軍隊採用一種名為“密碼棒”(Scytale)的工具對信息進行加密。發信人將長條形的羊皮紙帶纏繞在一根木棒上,將信息橫向書寫,最後將羊皮紙解下。收信人將信紙纏繞在同樣直徑的木棒上,就能夠還原信息。而羊皮紙上的文字看起來是無意義的,並且用尺寸不相同的木棒也無法還原出原始信息。

但只要瞭解這種密碼的加密方式,就能很容易地解讀密文。從密文的第一個字母開始,每數到它之後的第N個字母,記下該字母。記錄到密文結尾後,再從第二個字母開始重複這樣的操作,以此類推,很快就可以還原明文信息。其中N取決於木棒的直徑,寫下N個字母后,紙帶正好繞木棒一圈,選擇不同的N,同樣的明文經過加密得到的密文也不相同。發信人和收信人要事先約定好同樣的N,收信人才能還原密文。同時N不能被第三方知曉,才能保證加密通信的安全。這裡的N稱為密鑰,是加密通信的參與方共同享有的祕密知識(secretary knowledge),用於加密和解密信息。

替換法將原始信息中的字母按照一定的規則替換成其他字母。據傳,凱撒大帝使用替換式加密法寫作書信。凱撒大帝將信息中的每個字母后移三位,例如A替換成D,Y替換成B,這種加密法稱為凱撒挪移式加密法(Caesar cipher)。在這個例子中,密文相比明文,每個字母都被後移了3位,密鑰可以用3表示。密鑰可能的取值範圍為1~25的自然數(密鑰為0時,密文與原文相同),稱為密鑰空間。明文裡所有可能出現的字母的集合稱為明文空間,密文裡可能出現的字母集合稱為密文空間,替換法中的密鑰可以表示為明文空間到密文空間的一個映射,在古典密碼學中又稱為密碼錶。密文空間可以與明文空間相同,例如凱撒密碼中,密文的字母仍然是26個拉丁字母。密文空間也可以是明文空間的超集,例如在密文中混入一些無效字符,以干擾試圖破譯密碼的行動。密文空間還可以與明文空間完全不相關,例如在柯南道爾所著的福爾摩斯系列的《跳舞的人》(the Adventure of Dancing Men)中,罪犯用26種形態各異的跳舞的小人來替換英文字母。

公元8世紀,阿拉伯哈里發帝國的第二個世襲王朝——阿拔斯王朝在巴格達定都,其建立之初的一百年是伊斯蘭文明的黃金時代。據記載,阿拔斯王朝的官員們使用替換式加密法保護機密的行政事務、稅收數據,相信這能夠幫助他們建立一個廉潔、高效的政府。巴士拉的語言學家卡里爾(Al-Khalil)撰寫了《加密信息手冊》(Book of Cryptographic Messages),使用排列組合對阿拉伯語單詞的加密法進行分析。此外,阿拉伯的學者們還開創了破譯加密信息的科學——密碼分析學(Cryptanalysis)。

3

持續千年的智力競賽:加密與解密

古典密碼學多用於軍事、政治、外交領域重要情報的傳遞,希望刺探這些祕密的人自然不在少數。阿拉伯學者們在統計語言學資料時發現,在樣本容量較大,有意義的阿拉伯語文本中,每個字母出現的頻率是不一樣的。字母a和字母l在阿拉伯語中出現頻率最高(這裡用阿拉伯語字母的拉丁轉寫表示),因為“al”是阿拉伯語中的定冠詞,相當於英語的“the”,此外,元音的出現頻率也比較高。這些成果很快被運用到密文分析中。

之前介紹的替換式加密法中,明文中的所有字母都遵循同一套規則(密鑰)進行替換,這樣的加密法稱為單字母表替換式加密法。公元9世紀,阿拉伯科學家肯迪(Al-Kindi)在《解譯加密信息》(Manuscript for the Deciphering Cryptographic Messages)一書中闡述了對這種加密法的解譯方式。如果能確定原文所使用的語言,首先列舉出密文中出現的所有字母(或字符),統計它們各自出現的頻率並排序,對照該語言中字母出現的頻率順序,就可以開始嘗試對密文進行分析,這種方法稱為頻率分析法。頻率分析還可統計某種語言中特定的字母組合出現的頻率,如英文中的“ee”,以及某個字母前後特定字母出現的頻率,如英文中字母“q”之後一定跟隨”u”等。直到數百年後,中世紀的歐洲學者才掌握這一方法,並且決定了兩位女王的命運。

1586年,英格蘭政府對天主教的迫害日益加劇,安東尼·貝平頓(Anthony Babington)與幾位同黨密謀策反,計劃救出被伊麗莎白女王軟禁的蘇格蘭女王、伊麗莎白女王的表妹、信仰天主教的瑪麗女王,並暗殺伊麗莎白女王。貝平頓通過密使傳遞使用替換式加密法加密的書信,與瑪麗女王商討暗殺計劃。貝平頓設計的更加複雜的替換式加密法使用23個符號替換除j、v、w之外的英文字母,4個不具有任何意義的混淆符號,表示下一個字母連續出現兩次的“dowbleth”符號,以及若干個符號替換常用的單詞,以儘量減少遭到頻率分析法破譯的可能。

密碼學初探:隱藏信息的藝術——區塊鏈技術引卷之十一

但可惜的是,貝平頓信任的密使其實是一位雙面間諜,背地裡將他與瑪麗女王的密函交給伊麗莎白女王的國務大臣、間諜頭子沃爾辛厄姆,後者先打開信封,抄寫一份密文,再重新偽造封緘,並將密文交給密碼學家托馬斯·菲利普分析。菲利普通過頻率分析法破譯了密碼,並在瑪麗女王寄出的一封信件後附加了一段偽造的密文,誘使貝平頓說出參與計劃的同夥的名字。暗殺計劃暴露後,瑪麗女王、貝平頓以及其密黨都遭到處決。

以上是一個過於信任加密方法的安全性,以致造成悲劇結局的例子。如何衡量加密通信安全與否是一個重要的問題,加密通信的過程可以劃分為選擇加密方式、約定密鑰、加密明文、傳輸加密信息、還原明文幾個步驟。古典密碼學中,絕大多數加密方式都是替換法、置換法或者兩者的結合,因此加密方式幾乎不是祕密,試圖對密文進行分析的人可以通過嘗試所有可能的密鑰進行解譯,當某個密鑰還原出的明文出現了有意義的單詞,就說明找到了正確密鑰。因此,密鑰空間越大,意味著破譯者需要嘗試的密鑰數就越多,密碼就越安全。凱撒挪移式加密法只有25個可能的密鑰,安全性非常差。

奧古斯特·柯克霍夫在19世紀提出的柯克霍夫原則(Kerckhoff's Principle)概括性地總結了加密算法應遵循的設計原則:即使加密系統的各個環節都是公開知識(Public knowledge),只要密鑰未被洩漏,加密系統都應該是安全的。換一個方式來說,加密系統的安全性應依賴於密鑰的保密,而不是加密算法的保密。

除此之外,加密算法自身可能也存在安全性漏洞,雖然密鑰空間非常龐大,但破譯者也能夠通過分析密文的某些特徵,縮小可能的密鑰範圍。明文的目的一般是傳遞某些信息,因而是有意義的,存在某些語言學或統計學上的特徵,而密文則一定程度地保留了這些特徵,如單字母表替換式加密法保留了不同字母出現的頻率特徵。為了消除這些頻率特徵,一些增強的替換式加密法被髮明出來,但仍未能解決替換式加密法的缺陷。例如同音替換式加密法(homophonic substitution cipher)將出現頻率較高的字母對應多個不同的密文,從而使密文中各個字母出現的頻率相近,但字母組合的頻率信息仍然沒有完全消除,仍存在被破譯的可能。法國國王路易十四用來加密機密文件的“大密碼”(Grand Chiffre)採用替換字母對的方式,兩個世紀以來都沒有遭到破譯。19世紀末,人們發現大密碼的密文中出現的數字數量接近676,即兩個字母組成的字母對可能的數量,從而猜到了其加密方式,並用頻率分析破譯了它。

瑪麗女王的例子還說明,信息傳遞的途徑並非絕對安全。由於通信的雙方需要事先約定同樣的密鑰,如果傳遞密鑰的方式不安全,整個加密通信系統也形同虛設,信息安全保衛戰就是“密鑰保衛戰”。

早在15世紀初,文藝復興時期的佛羅倫薩藝術家阿爾伯蒂已經認識到了單字母表加密法在頻率分析法面前不堪一擊,他提出了一套新的加密方法,即輪流使用多張密碼錶,依次對明文中的字母進行加密。這一方法由法國外交官維吉尼亞所發揚光大,發明了“維吉尼亞加密法”。維吉尼亞加密法採用26套不同的密碼錶,對應密鑰為0~25的凱撒挪移式密碼錶,並以從A~Z的英文字母表示。加密的過程是,選擇一個密鑰單詞(keyword),例如KEY,然後按照密鑰單詞中的字母順序,依次對明文字母按照相應的密碼錶進行加密,第一個字母使用“K”對應的密碼錶替換,第二個字母使用“E”,第三個用“Y”,第四個再回到“K”,以此循環直至加密結束。這一類加密法稱為多字母表替換式加密法,同樣的明文字母可能會被加密成不同的密文,相同的密文字母不一定對應相同的明文,給破譯者帶來很大的干擾。維吉尼亞加密法的密鑰空間幾乎是無限的,一度被視為不可破譯的,是一千年以來古典密碼學的重大突破。

但英國發明家查理`巴貝奇(Charles Babbage)不認為破譯維吉尼亞密碼是一項不可能完成的任務。當人們開始瞭解維吉尼亞密碼的加密算法,它的致命弱點也隨之浮現。維吉尼亞密碼用於加密的基礎密碼錶只有26種,而且都是已知的凱撒密碼錶。維吉尼亞密碼加密明文使用密碼錶的順序是固定的,因此同一個明文單詞,被加密成的密文僅有有限種可能。可能的密文種類數取決於密鑰單詞的長度。並且位置相差密鑰單詞長度的所有字母都是使用同一張密碼錶進行替換的。巴貝奇發現,維吉尼亞密碼的密文每過一部分,就會出現重複的字母組合,這意味著兩個可能:一,不同的明文片段被密鑰單詞的不同部分加密成了相同的密文;二、同樣的明文片段恰好由密鑰單詞在同樣的起始位置進行加密,形成了相同的密文。如果重複的字母組合足夠長,第一種情形出現的可能性就遠遠小於第二種。第二種情況還揭露一個事實:密鑰單詞長度一定是重複的字母組合位置相差數的因子。巴貝奇記錄下所有重複的密文字母組合位置之差,以及它們的所有因子,其中出現最多的因子(以及它自身的因子)就是密鑰單詞可能的長度。合位置之差,以及它們的所有因子,其中出現最多的因子(以及它自身的因子)就是密鑰單詞可能的長度。

知道了密鑰單詞長度(記為N)這一重要信息,巴貝奇把密文分成N組分別由N個單字母表加密的片段。儘管這些零散的片段對應的明文是沒有意義的,但只要這個片段出自完整的、有意義的信息,那麼它的字母頻率分佈仍然遵守書寫信息所使用語言的規律。使用頻率分析法,維吉尼亞密碼就可以被破譯。加密者為了方便記憶,通常喜歡選取有意義的密鑰單詞,但這也使密碼變得更加不安全。

4

古典密碼學的聖盃

維吉尼亞密碼法看起來擁有龐大的密鑰空間,如果使用26個英文字母的排列組合作為密鑰單詞,僅長度為6的密鑰單詞就有超過3億種可能,為什麼還是能夠被破解呢?維吉尼亞密碼法的缺陷就是循環使用固定的密碼錶對明文加密,一旦循環長度被破譯者分析出來,整個加密算法就變的和單密碼錶加密無異。為了增強維吉尼亞密碼的安全性,可以選用非常長的密鑰單詞,這樣一來,密文中出現重複字母組合的可能性就降低了很多,並且使用同一套密碼錶加密的字母個數也隨之減少,猜測密鑰單詞長度和頻率分析法就失效了。

將這個理論發揮到極致,就是著名的“一次一密”加密法(one-time pad cipher),這種加密法廣泛地運用在外交、軍事等需要不計代價地保證通信祕密的場合。“一次一密”,即每發送一條信息,就更換一個新的密鑰單詞,密鑰單詞的長度和要發送信息的長度相當,而且是隨機生成的,不包含任何有意義的單詞。祕密通信的雙方各持有一本密碼本,每進行一次通信,就撕下密碼本的一頁,使用下一頁的密鑰。從理論上來說,只要密碼本沒有洩露,即使破譯者截獲了某次通信的明文和密文,仍然無法破譯下次通信的密文,“一次一密”是真正安全的加密方式,被譽為古典密碼學的聖盃。

"

相關推薦

推薦中...