詞語解釋
著名的密碼學者Ron Rivest解釋道:“密碼學是關於如何在敵人存在的環境中通訊”,自工程學的角度,這相當於密碼學與純數學的異同。
簡介
密碼學是
信息安全等相關議題,如
認證、
訪問控制的核心。密碼學的首要目的是隱藏
信息的涵義,並不是將隱藏信息的存在。密碼學也促進了計算機科學,特別是在於電腦與
網路安全所使用的技術,如訪問控制與
信息的機密性。密碼學已被套用在日常生活:包括自動櫃員機的晶片卡、電腦使用者存取密碼、電子商務等等。
術語
直到現代以前,密碼學幾乎專指
加密算法:將普通
信息(明文)轉換成難以理解的資料(密文)的過程;解密算法則是其相反的過程:由密文轉換回明文;密碼機(cipher或cypher)包含了這兩種算法,一般加密即同時指稱
加密與解密的技術。 密碼機的具體運作由兩部分決定:一個是算法,另一個是鑰匙。鑰匙是一個用於密碼機算法的秘密參數,通常只有通訊者擁有。歷史上,鑰匙通常未經認證或完整性測試而被直接使用在密碼機上。
密碼協定
(cryptographic protocol)是使用密碼技術的
通信協定(communication protocol)。近代密碼學者多認為除了傳統上的加解密算法,密碼協定也一樣重要,兩者為密碼學研究的兩大課題。在英文中,cryptography和cryptology都可代表密碼學,前者又稱密碼術。但更嚴謹地說,前者(cryptography)指密碼技術的使用,而後者(cryptology)指研究密碼的學科,包含
密碼術與
密碼分析。
密碼分析
(cryptanalysis)是研究如何破解密碼學的學科。但在實際使用中,通常都稱密碼學(英文通常稱cryptography),而不具體區分其含義。
口語上,
編碼(code)常意指加密或隱藏
信息的各種方法。然而,在密碼學中,
編碼有更特定的意義:它意指以碼字(code word)取代特定的明文。例如,以‘蘋果派’(apple pie)替換‘拂曉攻擊’(attack at dawn)。
編碼已經不再被使用在嚴謹的密碼學,它在
信息論或通訊原理上有更明確的意義。
在漢語口語中,
電腦系統或網路使用的個人帳戶口令 (password)也常被以密碼代稱,雖然口令亦屬密碼學研究的範圍,但學術上口令與密碼學中所稱的鑰匙(key)並不相同,即使兩者間常有密切的關連。
密碼學
現代密碼學大致可被區分為數個領域。 對稱鑰匙密碼學指的是傳送方與接收方都擁有相同的鑰匙。直到1976年這都還是唯一的公開加密法。
現代的研究主要在
分組密碼(Block Cipher)與流密碼(Stream Cipher)及其套用。
分組密碼在某種意義上是阿伯提的多
字元加密法的現代化。
分組密碼
分組密碼取用明文的一個區塊和鑰匙,輸出相同大小的密文區塊。由於
信息通常比單一區塊還長,因此有了各種方式將連續的區塊編織在一起。 DES和AES是
美國聯邦政府核定的
分組密碼標準(AES將取代DES)。儘管將從標準上廢除,DES依然很流行(triple-DES變形仍然相當安全),被使用在非常多的套用上,從自動交易機、
電子郵件到遠端存取。也有許多其他的區塊加密被發明、釋出,品質與套用上各有不同,其中不乏被破解者。
流密碼
流密碼,相對於區塊加密,製造一段任意長的鑰匙原料,與明文依位元或
字元結合,有點類似一次墊(one-time pad)。輸出的串流根據加密時的內部狀態而定。在一些流密碼上由鑰匙控制狀態的變化。RC4是相當有名的流密碼。
密碼雜湊函式(有時稱作
訊息摘要函式,雜湊函式又稱散列函式或哈希函式)不一定使用到鑰匙,但和許多重要的
密碼算法相關。它將輸入資料(通常是一整份檔案)輸出成較短的固定長度雜湊值,這個過程是單向的,逆向操作難以完成,而且碰撞(兩個不同的輸入產生相同的雜湊值)發生的機率非常小。
信息認證碼或押碼(Message authentication codes, MACs)很類似密碼雜湊函式,除了接收方額外使用秘
密鑰匙來認證雜湊值。
公開密碼
名詞解釋
公開密鑰密碼體系,簡稱公鑰密碼體系,又稱非對稱密鑰密碼體系,相對於對稱密鑰密碼體系,最大的特點在於加密和解密使用不同的密鑰。
概述
在對稱
密鑰密碼體系中,加密和解密使用相同的密鑰,也許對不同的
信息使用不同的密鑰,但都面臨
密鑰管理的難題。由於每對通訊方都必須使用異於他組的
密鑰,當網路成員的數量增加時,密鑰數量成二次方增加。更尷尬的難題是:當安全的通道不存在於雙方時,如何建立一個共有的
密鑰以利安全的通訊?如果有通道可以安全地建立密鑰,何不使用現有的通道。這個‘雞生蛋、蛋生雞’的矛盾是長年以來密碼學無法在真實世界套用的阻礙。
1976年,
美國學者Whitfield Diffie與Martin Hellman發表開創性的論文,提出
公開密鑰密碼體系的概念:一對不同值但數學相關的密鑰,公開鑰匙(或
公鑰, public key)與私密鑰匙(
私鑰,private key or secret key)。在
公鑰系統中,由
公開密鑰推算出配對的私密密鑰於計算上是不可行的。歷史學者David Kahn這樣描述
公開密鑰密碼學;“從文藝復興的多字元取代法後最革命性的概念。”在
公鑰系統中,公鑰可以隨意流傳,但
私鑰只有該人擁有。典型的用法是,其他人用
公鑰來加密給該接受者,接受者使用自己的
私鑰解密。Diffie與Hellman也展示了如何利用公開鑰匙密碼學來達成Diffie-Hellman鑰匙交換協定。
1978年,MIT的Ron Rivest、Adi Shamir和Len Adleman發明另一個
公開密鑰系統,RSA。
直到1997年的公開檔案中大眾才知道,早在1970年代早期,英國情治單位GCHQ的數學家James H. Ellis便已發明非對稱
密鑰密碼學,而且Diffie-Hellman與RSA都曾被Malcolm J. Williamson與Clifford Cocks分別發明於前。 這兩個最早的
公鑰系統提供優良的加密法基礎,因而被大量使用。其他
公鑰系統還有Cramer-Shoup、
Elgamal、以及橢圓曲線密碼學等等。
基礎建設(public key infranstructures, PKI)以及許多
網路安全機制(SSL/TLS, VPNs等)的基礎。
公開密鑰的算法大多基於計算複雜度上的難題,通常來自於數論。例如,RSA源於整數因子分解問題;DSA源於離散對數問題。近年發展快速的橢圓曲線密碼學則基於和橢圓曲線相關的數學難題,與離散對數相當。由於這些底層的問題多涉及模數乘法或指數運算,相對於
分組密碼需要更多計算資源。因此,
公開密鑰系統通常是複合式的,內含一個高效率的對稱密鑰算法,用以加密信息,再以
公開密鑰加密對稱鑰匙系統所使用的鑰匙,以增進效率。
它們須滿足條件:
(1)D是E的逆,即D[E(X)]=X;
(2)E和D都容易計算。
(3)由E出發去求解D十分困難。
體制比較
對稱鑰匙加密系統是加密和解密均採用同一把秘
密鑰匙,而且通信雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。
對稱密碼系統的安全性依賴於以下兩個因素。第一,
加密算法必須是足夠強的,僅僅基於密文本身去解密
信息在實踐上是不可能的;第二,加密方法的安全性依賴於
密鑰的秘密性,而不是算法的秘密性,因此,我們沒有必要確保算法的秘密性,而需要保證密鑰的秘密性。
對稱加密系統的算法實現速度極快,從AES候選算法的測試結果看,軟體實現的速度都達到了每秒數兆或數十兆比特。對稱密碼系統的這些特點使其有著廣泛的套用。因為算法不需要保密,所以製造商可以開發出低成本的晶片以實現
數據加密。這些晶片有著廣泛的套用,適合於大規模生產。
對稱加密系統最大的問題是
密鑰的分發和管理非常複雜、代價高昂。比如對於具有n個用戶的網路,需要n(n-1)/2個
密鑰,在用戶群不是很大的情況下,
對稱加密系統是有效的。但是對於大型網路,當用戶群很大,分布很廣時,
密鑰的分配和保存就成了大問題。
對稱加密算法另一個缺點是不能實現數字簽名。
公開密鑰加密系統採用的加密鑰匙(
公鑰)和解密鑰匙(
私鑰)是不同的。由於加
密鑰匙是公開的,密鑰的分配和管理就很簡單,比如對於具有n個用戶的網路,僅需要2n個密鑰。
公開密鑰加密系統還能夠很容易地實現
數字簽名。因此,最適合於電子商務套用需要。在實際套用中,公開密鑰加密系統並沒有完全取代對稱密鑰加密系統,這是因為公開密鑰加密系統是基於尖端的數學難題,計算非常複雜,它的安全性更高,但它實現速度卻遠趕不上對稱密鑰加密系統。在實際套用中可利用二者的各自優點,採用
對稱加密系統加密檔案,採用
公開密鑰加密系統加密“加密檔案”的密鑰(會話密鑰),這就是混合加密系統,它較好地解決了運算速度問題和密鑰分配管理問題。因此,公鑰
密碼體制通常被用來加密關鍵性的、核心的機密數據,而對稱密碼體制通常被用來加密大量的數據。
標準概述
傳統的加密方法是加密、解密使用同樣的
密鑰,由傳送者和接收者分別保存,在加密和解密時使用,採用這種方法的主要問題是密鑰的生成、注入、
存儲、管理、分發等很複雜,特別是隨著用戶的增加,密鑰的需求量成倍增加。在
網路通信中,大量
密鑰的分配是一個難以解決的問題。
例如,若系統中有n個用戶,其中每兩個用戶之間需要建立密碼通信,則系統中每個用戶須掌握(n-1)個
密鑰,而系統中所需的密鑰總數為n*(n-1)/2個。對10個用戶的情況,每個用戶必須有9個
密鑰,系統中密鑰的總數為45個。對100個用戶來說,每個用戶必須有99個
密鑰,系統中密鑰的總數為4950個。這還僅考慮用戶之間的通信只使用一種會話
密鑰的情況。如此龐大數量的
密鑰生成、管理、分發確實是一個難處理的問題。
標準特點
從上述條件可看出,
公開密鑰密碼體制下,加密密鑰不等於解密密鑰。加密
密鑰可對外公開,使任何用戶都可將傳送給此用戶的
信息用
公開密鑰加密傳送,而該用戶唯一保存的私人
密鑰是保密的,也只有它能將密文復原、解密。雖然解密
密鑰理論上可由加密密鑰推算出來,但這種算法設計在實際上是不可能的,或者雖然能夠推算出,但要花費很長的時間而成為不可行的。所以將加密
密鑰公開也不會危害密鑰的安全。
數學上的單向陷門函式的特點是一個方向求值很容易,但其逆向計算卻很困難。許多形式為Y=f(x)的函式,對於給定的自變數x值,很容易計算出函式Y的值;而由給定的Y值,在很多情況下依照函式關係f(x)計算x值十分困難。例如,兩個大素數p和q相乘得到乘積n比較容易計算,但從它們的乘積n分解為兩個大素數p和q則十分困難。如果n為足夠大,當前的算法不可能在有效的時間內實現。
標準歷史
正是基於這種理論,1978年出現了著名的
RSA算法。這種算法為公用網路上
信息的加密和鑑別提供了一種基本的方法。它通常是先生成一對RSA
密鑰,其中之一是保密
密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在
網路伺服器中註冊。為提高保密強度,RSA
密鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送
信息時,常採用傳統加密方法與公開密鑰加密方法相結合的方式,即信息採用改進的DES或IDEA對話密鑰加密,然後使用RSA密鑰加密對話密鑰和信息摘要。對方收到
信息後,用不同的
密鑰解密並可核對信息摘要。
RSA算法的加密密鑰和
加密算法分開,使得密鑰分配更為方便。它特別符合計算機網路環境。對於網上的大量用戶,可以將加密
密鑰用電話簿的方式印出。如果某用戶想與另一用戶進行
保密通信,只需從
公鑰簿上查出對方的加密
密鑰,用它對所傳送的
信息加密發出即可。對方收到
信息後,用僅為自己所知的解密
密鑰將信息脫密,了解
報文的內容。由此可看出,RSA算法解決了大量網路用戶
密鑰管理的難題。
RSA並不能替代DES,它們的優缺點正好互補。RSA的
密鑰很長,加密速度慢,而採用DES,正好彌補了RSA的缺點。即DES用於明文加密,RSA用於DES
密鑰的加密。由於DES加密速度快,適合加密較長的
報文;而RSA可解決DES
密鑰分配的問題。
美國的保密增強郵件(PEM)就是採用了RSA和DES結合的方法,目前已成為E-MAIL保密通信標準。
密碼體系
在1984年以色列科學家Shamir提出了基於標識的密碼系統的概念(IBC)。在基於標識的系統中,每個實體具有一個標識。該標識可以是任何有意義的字元串。但和傳統
公鑰系統最大的不同是,在基於標識的系統中,實體的標識本身就是實體的
公開密鑰。由於標識本身就是實體的
公鑰,這類系統就不再依賴證書和證書管理系統如PKI,從而極大地簡化了管理密碼系統的複雜性。在提出IBC概念的同時,Shamir提出了一個採用RSA算法的基於標識的簽名算法(IBS)。但是基於標識的
加密算法(IBC)長時期未能找到有效解決方法。
在2000年,三位日本密碼學家R. Sakai, K. Ohgishi 和 M. Kasahara提出了使用橢圓曲線上的pairing設計基於標識的密碼系統的思路。在該論文中他們提出了一種無互動的基於標識的
密鑰生成協定. 在該系統中,他們設計了一種可用於基於標識的密碼系統中的
系統初始化方法和密碼生成算法。
在2001年,D. Boneh和M. Franklin , R. Sakai, K. Ohgishi 和 M. Kasahara 以及C. Cocks 分別提出了三個基於標識的
加密算法。前兩個都是採用橢圓曲線上pairing的算法。第三種算法利用平方剩餘難問題。前兩種算法都採用了與中相同的思路初試化系統並生成用戶的
私鑰。由於D. Boneh和M. Franklin提出的IBC (BF-IBC)的安全性可以證明並且有較好的效率,所以引起了極大的反響。
基於標識的密碼技術在過去幾年中得到快速發展。研究人員設計了大量的新密碼系統。隨著套用的逐漸廣泛,相應算法的標準化工作也在逐步展開。IEEE P1363.3的基於標識的密碼技術工作組正在進行相關算法的標準化工作 。ISO/IEC已經標準化了兩個基於標識的簽名算法。
標準規範
2007年,中國國家密碼局組織了國家標識密碼體系IBC標準規範( Identity-Based Cryptograph, IBC)的編寫和評審工作。由五位院士和來自黨政軍、科研院所的密碼專家組成了
評審組,對該標準規範在安全性、可靠性、實用性和創新性等方面進行了多次嚴格審查, 2007年12月16日國家IBC標準正式通過了評審。專家們一致認定,該標準擁有獨立智慧財產權,屬於國內首創,達到了國際領先水平,並已逐步開始套用在智慧型
密鑰、
加密郵件、
網路安全設備等產品中中。
法律禁令
密碼技術長期以來都是情報或司法機構的興趣。由於這些單位的隱密性以及禁令後個人隱私的減少,密碼技術也是人權支持者關心的焦點。環繞密碼技術的法律議題已有很長的歷史,特別是在可以執行高品質密碼的廉價計算機問世後。
在某些國家甚至本國的密碼技術套用也受到了限制:
直到1999年,法國仍然限制國內密碼技術的使用。
在中國,使用密碼技術需要申請執照。
許多國家有更嚴格的限制,例如
白俄羅斯、哈薩克、蒙古、巴基斯坦、俄羅斯、新加坡、突尼西亞、委內瑞拉和越南。
在
美國,國內密碼技術的使用是合法的,但仍然有許多法律衝突。
出口管制
一個特別重要的議題是密碼軟體與硬體的出口管制。由於密碼分析在二戰時期扮演的重要腳色,也期待密碼學可以持續在國家安全上效力,許多西方國家政府嚴格規範密碼學的出口。二戰之後,在
美國散布加密科技到國外曾是違法的。事實上,加密技術曾被視為軍需品,就像坦克與核武。直到個人電腦和網際網路問世後情況才改變。好的密碼學與壞的密碼學對絕大部分使用者來說是沒有差別的,其實多數情況下,大部分現行密碼技術普遍緩慢而且易出錯。然而當網際網路與個人電腦日益成長,優良的加密技術逐漸廣為人知。可見出口管制將成為商務與研究上的阻礙。
中國發展
我國
信息網路安全研究歷經了通信保密、數據保護兩個階段,正在進入
網路信息安全研究階段,現已開發研製出
防火牆、安全路由器、
安全網關、
黑客入侵檢測、系統脆弱性掃描軟體等。但因
信息網路安全領域是一個綜合、交叉的學科領域它綜合了利用數學、物理、生化信息技術和計算機技術的諸多學科的長期積累和最新發展成果,提出系統的、完整的和協同的解決信息網路安全的方案,目前應從安全體系結構、
安全協定、現代密碼理論、信息分析和監控以及信息安全系統五個方面開展研究,各部分相互協同形成有機整體。