密碼學

密碼學可分為古典密碼學和現代密碼學。在西方語文中，密碼學一詞源於希臘語--“隱藏的”，和--“書寫”。古典密碼學主要關注資訊的保密書寫和傳遞，以及與其相對應的破譯方法。而現代密碼學不只關注資訊保密問題，還同時涉及資訊完整性驗證、以及在分散式計算中產生的內部和外部的攻擊的所有資訊保安問題。古典密碼學與現代密碼學的重要區別在於，古典密碼學的編碼和破譯通常依賴於設計者和敵手的創造力與技巧，作為一種實用性藝術存在，並沒有對於密碼學原件的清晰定義。而現代密碼學則起源於20世紀末出現的大量相關理論，這些理論使得現代密碼學成為了一種可以系統而嚴格地學習的科學。密碼學是數學和計算機科學的分支，同時其原理大量涉及資訊理論。著名的密碼學者羅納德·李維斯特解釋道：「密碼學是關於如何在敵人存在的環境中通訊」，自工程學的角度，這相當於密碼學與純數學的差異。密碼學的發展促進了計算機科學，特別是在於電腦與網路安全所使用的技術，如存取控制與資訊的機密性。密碼學已被應用在日常生活：包括自動櫃員機的晶片卡、電腦使用者存取密碼、電子商務等等。術語.直到現代以前，密碼學幾乎專指加密演算法：將普通訊息的過程；解密演算法則是其相反的過程：由密文轉換回明文；加解密包含了這兩種演算法，一般加密即同時指稱加密與解密的技術。加解密的具體運作由兩部分決定：一個是演算法，另一個是金鑰。金鑰是一個用於加解密演算法的秘密引數，通常只有通訊者擁有。歷史上，金鑰通常未經認證或完整性測試而被直接使用在加解密上。密碼協議是使用密碼技術的通訊協議。近代密碼學者多認為除了傳統上的加解密演演算法，密碼協議也一樣重要，兩者為密碼學研究的兩大課題。在英文中，“--”和“--”都可代表密碼學，前者又稱密碼術。但更嚴謹地說，前者的速度。量子計算的潛在效應已經是部份密碼學家的焦點。現代密碼學.現代密碼學大致可被區分為數個領域。對稱金鑰密碼學指的是傳送方與接收方都擁有相同的金鑰。直到1976年這都還是唯一的公開加密法。現代密碼學重視分組密碼與流密碼的研究及應用。區塊加密法在某種意義上是阿伯提的多字元加密法的現代化。區塊加密法取用明文的一個區塊和金鑰，輸出相同大小的密文區塊。由於訊息通常比單一區塊還長，因此有了各種方式將連續的區塊編織在一起。DES和AES是美國聯邦政府核定的區塊加密法標準，被使用在非常多的應用上，從自動交易機、電子郵件到遠端存取。也有許多其他的區塊加密被發明、釋出，品質與應用上各有不同，其中不乏被破解者。串流加密法，相對於區塊加密，製造一段任意長的金鑰原料，與明文依位元或字元結合，有點類似一次性密碼本。輸出的串流根據加密時的內部狀態而定。在一些串流加密法上由金鑰控制狀態的變化。RC4是相當有名的串流加密法。密碼雜湊函式發生的機率非常小。訊息認證碼或押碼很類似密碼雜湊函式，除了接收方額外使用秘密金鑰來認證雜湊值。公鑰密碼學.公開金鑰密碼學，簡稱公鑰密碼學，又稱非對稱金鑰密碼學，相對於對稱金鑰密碼學，最大的特點在於加密和解密使用不同的金鑰。在對稱金鑰密碼學中，加密和解密使用相同的金鑰，也許對不同的訊息使用不同的金鑰，但都面臨金鑰管理的難題。由於每對通訊方都必須使用異於他組的金鑰，當網路成員的數量增加時，金鑰數量成二次方增加。更尷尬的難題是：當安全的通道不存在於雙方時，如何建立一個共有的金鑰以利安全的通訊？如果有通道可以安全地建立金鑰，何不使用現有的通道。這個矛盾是長年以來密碼學無法在真實世界應用的阻礙。1976年，惠特菲爾德·迪菲與馬丁·赫爾曼發表開創性的論文，提出公開金鑰密碼學的概念：一對不同值但數學相關的金鑰，公開金鑰。在公鑰系統中，由公開金鑰推算出配對的私密金鑰於計算上是不可行的。歷史學者這樣描述公開金鑰密碼學；「從文藝復興的多字元取代法後最革命性的概念。」在公鑰系統中，公鑰可以隨意流傳，但私鑰只有該人擁有。典型的用法是，其他人用公鑰來加密給該接受者，接受者使用自己的私鑰解密。Diffie與Hellman也展示瞭如何利用公開金鑰密碼學來達成迪菲-赫爾曼金鑰交換協定。1978年，麻省理工學院的羅納德·李維斯特、阿迪·薩莫爾和倫納德·阿德曼發明另一個公開金鑰系統，RSA。直到1997年的公開檔案中大眾才知道，早在1970年代早期，英國情報機構政府通訊總部的數學家便已發明非對稱金鑰密碼學，而且Diffie-Hellman與RSA都曾被與分別發明於前。這兩個最早的公鑰系統提供優良的加密法基礎，因而被大量使用。其他公鑰系統還有、El Gamal、以及橢圓曲線密碼學等等。除了加密外，公開金鑰密碼學最顯著的成就是實現了數位簽章。數位簽章名副其實是普通簽章的數位化，他們的特性都是某人可以輕易製造簽章，但他人卻難以仿冒。數位簽章可以永久地與被簽署訊息結合，無法自訊息上移除。數位簽章大致包含兩個演演算法：一個是簽署，使用私密金鑰處理訊息或訊息的雜湊值而產生簽章；另一個是驗證，使用公開金鑰驗證簽章的真實性。RSA和DSA是兩種最流行的數位簽章機制。數位簽章是公開金鑰基礎建設的基礎。公開金鑰演演算法大多基於計算複雜度上的難題，通常來自於數論。例如，RSA源於整數因數分解問題；DSA源於離散對數問題。近年發展快速的橢圓曲線密碼學則基於和橢圓曲線相關的數學難題，與離散對數相當。由於這些底層的問題多涉及模數乘法或指數運算，相對於區塊加密法需要更多計算資源。因此，公開金鑰系統通常是複合式的，內含一個高效率的對稱金鑰演演算法，用以加密訊息，再以公開金鑰加密對稱金鑰系統所使用的金鑰，以增進效率。密碼分析.密碼分析又稱破密術。密碼分析的目的是發現密碼機制的弱點，從事者可能是意圖顛覆系統惡意的攻擊者或評估系統弱點的設計人。在現代，密碼演演算法與協定必須被仔細檢查和測試，確定其保證的安全性。大眾普遍誤解認為所有加密法都可以被破解。夏農在二戰時的工作就已證明只要金鑰是完全隨機，不重覆使用，對外絕對保密，與訊息等長或比訊息更長的一次一密是不可能破解的。除了一次一密以外的多數加密法都可以以暴力攻擊法破解，但是破解所需的努力可能是金鑰長度的指數成長。密碼分析的方式有很多，因此有數個分類。一個常見的分別法則是攻擊者知曉多少資訊。在唯密文攻擊中，密碼分析者只能存取密文，好的現代密碼系統對這種情況通常是免疫的。在已知明文攻擊中，密碼分析者可以存取多個明文、密文對。在選擇明文攻擊中，密碼分析者可以自選任意明文，並被賦予相對應的密文，例如二戰時佈列顛所使用的園藝法。最後，選擇密文攻擊中，密碼分析者可以自選任意密文，並被賦予相對應的明文對稱金鑰加密的密碼分析通常旨在尋找比已知最佳破解法更有效率的方式。例如，以最簡單的暴力法破解DES需要一個已知明文與255解密運算，嘗試近半數可能的金鑰。線性分析攻擊法對DES需要243已知明文與243 DES運算，顯然比暴力法有效。公開金鑰演演算法則基於多種數學難題，其中最有名的是整數分解和離散對數問題。許多公開金鑰密碼分析在研究如何有效率地解出這些計算問題的數值演演算法。例如，已知解出基於橢圓曲線的離散對數問題比相同金鑰大小的整數因數分解問題更困難。因此，為了達到相等的安全強度，基於因數分解的技術必須使用更長的金鑰。由於這個因素，基於橢圓曲線的公開金鑰密碼系統從1990年代中期後逐漸流行。當純粹的密碼分析著眼於演演算法本身時，某些攻擊則專注於密碼裝置執行的弱點，稱為副通道攻擊。如果密碼分析者可以存取到裝置執行加密或回報通行碼錯誤的時間，它就可能使用時序攻擊法破解密碼。攻擊者也可能研究訊息的模式與長度，得出有用的資訊，稱為流量分析，對機敏的敵人這相當有效。當然，社會工程與其它針對人事、社交的攻擊與破密術一併使用時可能是最有力的攻擊法。密碼學原型.多數的密碼學理論研究在探討密碼學原型：具備基本密碼學特質的演演算法以及和其他問題的關連。例如，容易正向運算卻難以逆向運算的單向函式。通常而言，密碼應用如果要安全，就必須保證單向函式存在。然而，如果單向函式存在，就表示P ≠ NP。既然目前P與NP問題仍是未解，我們就無從得知單向函式是否存在。如果單向函式存在，那安全的準亂數產生器與準亂數函式就存在。目前已知的密碼學原型僅提供基本的機能。通常是機密、訊息完整、認證、和不可否認。任何其他機能都是基本演演算法的組合與延伸，這類組合稱為密碼系統。例如PGP、SSH、SSL/TLS、公開金鑰基礎建設和數位簽章等。其他密碼原型還有加密演演算法本身、單向排列、暗門排列等。密碼協議.在許多狀況，密碼技術涉及通訊的雙方或多方。密碼協議已經擴充套件到涵蓋多種議題，像是互動證明、秘密分享與零知識，更複雜的有電子鈔票和安全多方計算。當一個好的密碼系統的安全失效時，很少是密碼學原型出現漏洞。大部分的弱點都發生於協定設計、系統實作、或是某些人為錯誤。許多密碼學協定都在非系統化的過程中發展出來，很少有安全上的証明。一些正規分析協定安全的方式都本於數學邏輯或近期的具體安全原則，這些都是數十年來研究人員的主題。很不幸的，這些工具都相當的笨重也無法用於複雜的設計。如何實現與整合密碼學的應用本身是截然不同的領域，碼學工程與安全工程。與密碼學有關的法律議題.禁令.密碼學長期以來都是情報或司法機構的興趣。由於這些單位的隱密性以及禁令後個人隱私的減少，密碼學也是人權支持者關心的焦點。環繞密碼學的法律議題已有很長的歷史，特別是在可以執行高品質密碼的廉價計算機問世後。在某些國家甚至本國性的密碼學也受限制。直到1999年，法國仍然限制國內密碼學的使用。許多國家有更嚴格的限制，例如白俄羅斯、哈薩克、蒙古、巴基斯坦、俄羅斯、新加坡、突尼西亞、委內瑞拉和越南。在美國，國內的使用是合法的，但仍然有許多法律衝突。一個特別重要的議題是密碼軟體與硬體的出口管制。由於密碼分析在二戰時期扮演的重要角色，也期待密碼學可以持續在國家安全上效力，許多西方國家政府嚴格規範密碼學的出口。二戰之後，在美國散佈加密科技到國外曾是違法的。事實上，加密技術曾被視為軍需品，就像坦克與核武。直到個人電腦和網際網路問世後情況才改變。好的密碼學與壞的密碼學對絕大部分使用者來說是沒有差別的，其實多數情況下，大部分現行密碼技術普遍緩慢而且易出錯。然而當網際網路與個人電腦日益成長，優良的加密技術逐漸廣為人知。可見出口管制將成為商務與研究上的阻礙。出口管制.在1990年代發生了數件挑戰美國出口規範的事件。其中一件是菲爾·齊默爾曼的PGP加密程式，於1991年6月在美國連原始碼一併釋出於網際網路。在RSA Security公司提出抗議後，Zimmermann被商務部和聯邦調查局偵訊達數年。接著，柏克萊加州大學的研究生發起了對美國政府的法律訴訟，以言論自由挑戰禁令的某些觀點。1995年的案例促成了在1999年判決印出密碼演演算法的原始碼屬美國憲法言論自由保障範圍內。在1996年，39個國家簽訂處理軍武出口的華沙公約。該公約約定使用短金鑰長度。Mozilla Thunderbird和微軟Outlook電子郵件使用者端程式可以用TLS連結至IMAP或Pop伺服器，並以S/MIME收送加密的電子郵件。許多網路使用者並不知曉他們的基本應用內含大量的密碼系統。這些瀏覽器與郵件程式如此普及，甚至試圖規範市民使用密碼學使用的政府單位也無力從事有效的限制。美國國家安全域性介入.另一個密碼學的爭議點是美國國家安全域性在加密法發展的介入。國家安全域性考量到將其制訂為國家表準局的聯邦標準，曾介入於IBM發展的DES。DES是NSA與IBM為了剋制強力的差分分析法而制定，這個攻擊直到1980年代晚期才公開。根據所說，IBM曾重新發現差分分析法，但被NSA下禁口令。這個攻擊法直到Biham與在數年後再次發現才公開。這些事情顯示了決定攻擊者擁有哪些資源或知識的困難。還有1993年，NSA涉入用在計劃的加密微晶片。Clipper飽受密碼學者的批評，其一是因為其加密演演算法被列為機密，NSA可能蓄意設計較弱的加密法以達成情報目的；其二是整個計畫案違反柯克霍夫原則，由於這機制使用到一個特別的只有政府才有的委任金鑰，難保沒有竊聽的可能。數位智慧財產權管理.數位智慧財產權管理又稱數位智財權密碼學是數位智慧財產權的核心，有許多技術被應用在保障版權資料的使用。1998年，美國總統比爾·克林頓，明定特定破密技術的重製或散佈屬犯罪行為，特別是某些迴避DRM者。這對密碼學研究社群造成了相當嚴重的潛在衝擊，因為任何逆向解碼技術都可以被用於破解DRM從而被認定為違反DMCA。考慮到這些爭議，美國聯邦調查局與司法部並未嚴格執行DMCA。一位密碼學者曾公開陳述受DMCA的影響，他將不會釋出部分研究給英特爾安全設計。Linux核心的第二號發展人物艾倫·考克斯與普林斯頓大學教授都曾受到這法案的相關困擾。在從俄羅斯到美國訪問時曾因違反該法案被監禁達數月，但違反DMCA的作品實際上發生於俄羅斯，而且在俄羅斯是合法行為。類似的事情發生在許多國家。例如歐盟所制定的。在2007年，負責數碼多功能影音光碟與HD DVD防偽的金鑰被發現且是出在網際網路上，同時，美國電影協會發出多個違DMCA的告示，導致大量網際網路使用者回擊，也引出了公平使用與言論自由的議題。