武警河北省總隊綜合信息保障中心 王偉然 劉志波
本研究通過文獻分析法,從歷史的角度將密碼學歸納為三個階段:古典密碼學階段、現代密碼學的對稱密碼階段、現代密碼學的公鑰密碼階段。文章分別闡述了不同發展階段的“加解密”算法,以及各類算法的優缺點。我們認為密碼學的可持續發展,離不開數學以及通訊信息技術的基礎性支持,從而針對不同領域的密碼技術需求,做出不同的發展戰略。
密碼學(源于希臘語kryptós“隱藏的”),主要是研究如何隱密地傳遞信息的學科。著名密碼學家Ron Rivest曾經直白、生動的將密碼學歸納定義為“如何實現在敵人存在的環境中通訊”。這一定義顯然是旨在軍事領域的信息傳遞,避免被敵方截獲與破解。但是,在互聯網與大數據時代,密碼學不僅僅應用于軍事領域,同時強有力地滲透到人們生活的方方面面,如商業領域與政府治理領域。密碼學的發展與計算機科學技術的發展相輔相成,彼此促進,大數據背景下,公民、法人及組織的各方面公共事務與私人事務,均需要網絡安全技術,這對密碼學的發展提出了更高的要求。
嚴格意義上講,密碼學包括兩個部分:一是編碼學,即致力于編制密碼,從而達到保密的效果;二是破譯學,主要是通過破譯密碼的手段與技術,截獲通信情報。隨著科學技術的不斷突破與發展,密碼學中的加密算法與密鑰性能也在不斷提升,從而大大地增加了信息傳遞的安全與保密程度。大體上,密碼學的發展經歷了以下三個階段[1]如圖1所示。

圖1 密碼學的發展歷程Fig.1 The history of cryptography
第一階段:古典密碼階段(1949年前)。
在這個階段算法和密鑰都是保密的,但是密鑰空間較小。信息傳遞過程的安全性主要依賴于加密和解密的算法保密。古典密碼加密階段經歷漫長的發展歷史,最大的特點就是依靠算法進行手工加密和解密。因此,這一階段也稱之為手工加密時代。
第二階段:對稱密碼階段(1949—1975年)。
這段時間,也稱之為現代密碼學的階段,和古典密碼階段的主要區別在于這個階段的加密和解密算法無需保密,但信息的安全性主要依賴于對密鑰的保密。這一階段,也稱之為現代密碼學的傳統密碼算法。對稱加密指加密和解密使用相同密鑰的加密算法。即一方面,加密密鑰可以從解密密鑰中計算出來,同時解密密鑰也可以從加密密鑰中推演出來。由此,加密密鑰和解密密鑰是相同的,稱之為“對稱密碼階段”或者“單鑰密碼階段”。信息的發送與接收雙方應該協商好密鑰,如果雙方任何一方保存密鑰不謹慎(或者故意泄露),那么傳遞信息將存在不安全性。
第三階段:公鑰密碼階段(1976年—至今)。
在公鑰密碼階段,加密密鑰(公鑰)可以公開,僅對解密密鑰(私鑰)保密,基于一些數學難題保證很難通過公鑰推出私鑰。1976年,美國學者Dime和Heman提出發送信息與接收信息雙方在交換信息,可以在不安全環境下的媒體上進行,這種方法為 “非對稱加密算法”。與對稱加密體制下的算法不同,非對稱加密算法在信息傳遞的過程中,需要兩個密鑰:一個是公開密鑰(Public Key);;另一個是私有密鑰(Private Key)。公私兩個密鑰之間的關系可以簡單的總結為“一對”。公私兩種密鑰之間的具體的關系可以解釋為:一是,如果用公開密鑰對需要傳遞的信息與數據進行加密,只有用對應的私有密鑰才能解密;相反,如果用私有密鑰對需要傳遞的信息與數據進行加密,那么信息的接收方必須用對應的公開密鑰進行解密。由此可見,在這一階段,加密和解密需要使用的是兩個不同的密鑰,由此稱之為非對稱加密算法。
在此階段,非對稱加密安全性更好,非對稱在加密與解密的過程中使用的是“一對密鑰”,一個用來信息傳遞方對數據進行加密,另一個信息接收方對數據進行解密。此外,非對稱加密的另一個優勢是:公鑰是公開的,私鑰是自己保存的,不需要像對稱加密那樣在通信之前要先同步密鑰。在對稱密鑰時代,由于雙方共享使用的是相同的密鑰,如果一方泄露,信息將存在被盜取、泄密的風險[2]。非對稱密鑰大大地規避了這種風險的存在。
對稱加密雖然相比較非對稱加密存在劣勢,但是依舊廣泛的應用的電腦與信息技術中。目前主要的對稱加密的算法有:DES、3DES、AES、IDEA等[3]。對稱加密體制下算法分析表如表1所示。

表1 對稱加密體制下算法分析表Tab.1 Algorithm analysis table under symmetric encryption system
(1)DES算法,是最傳統的對稱加密體制下的算法,奠定了對稱加密算法的基礎。但是目前為止,DES算法已經被全面破解,由此該算法不再安全,甚至已經基本放棄使用。例如,在企業商務領域,基本上沒有企業應用了。
(2)3DES(3重DES,Triple DES,DEsede),在DES被破解之后,DEsede用于代替DES的使用。對一塊數據用三個不同的密鑰進行三次加密,相比較DES強度更高。該加密技術計算密鑰時間長、加密效率低下,隨著計算機科學技術的發展,直至今日也基本上被棄用了。
(3)AES,也是在對稱加密體制下被利用的頻率最高的算法。這種算法密鑰建立時間短、靈敏性高、內存占用少、安全性高。在實際使用中,工作模式通常是CTR,引用16個字節數組的IV參數,密鑰長度128/192/256。
(4)IDEA,相比較DES與3DES,加密速度更快,安全性更好,常用于電子郵件的加密。IDEA密鑰長度為128位,數據塊大小為64bit,是一種“輪次加密”技術,密鑰經過多輪擴展參加“加解密”流程。從理論上講,IDEA屬于“強”加密算法,具有較高的安全性。
非對稱加密技術相比較對稱加密具有很大的優勢,保密效果好,算法相對復雜[4]。目前為止,主要的算法有RSA、DSA、ECC等[5]。非對稱加密體制下算法列表如表2所示。

表2 非對稱加密體制下算法列表Tab.2 List of algorithms under asymmetric encryption
(1)RSA是目前最具影響力的公鑰加密方法,該算法基于將兩大素數相乘,但是對其乘積所得進行因式分解很復雜。由此可見,通過兩個素數乘積公開作為加密密鑰操作簡單,即公鑰,兩大素數的組合稱之為私鑰。但是不可否認的是,在同樣安全級別條件下,RSA相對于對稱加密算法速度慢很多,相當于1/1000左右。
(2)DSA(全稱Digital Signature Algorithm),是一種更加高級的驗證方式,其主要特點是不單單有公鑰、私鑰,還有數字簽名。私鑰加密生成數字簽名,公鑰需要同時驗證數據與簽名,如果數據或者簽名與私鑰不匹配,被認為驗證失敗。
(3)ECC(稱之為橢圓加密算法),是一種公鑰加密算法,采用的數學基礎理論是利用橢圓曲線上的有理點構成Abel加法群上橢圓離散對數的計算困難性。其主要優勢是使用更小的密鑰,提供更高級別的安全性。例如,160位的橢圓密鑰與1024位的RSA密鑰安全性相同。此外,ECC的處理速度要比RSA更快,存儲空間更小。
縱觀密碼學的發展,我們發現:(1)密碼算法得到了快速發展,提升了信息傳遞的安全性。(2)我們應該看到不同的密碼體制,以及不同密碼加密解密算法,在不同領域得到了應用。我們應該繼續深入基礎性研究,如密碼學算法的數學基礎,發展數學等基礎性學科,扎實投入,從而為密碼學算法的可持續發展提供理論與學科基礎。(3)不同領域,如軍事領域、企業商務領域、政府行政管理領域、個人信息傳遞領域,對密碼學中加密解密技術的需求不同,由此密碼學的各種算法,應該針對不同領域需求的差異性,并找尋不同的發展方向、制定不同的發展策略。