武警河北省總隊綜合信息保障中心 王偉然 劉志波
本研究通過文獻(xiàn)分析法,從歷史的角度將密碼學(xué)歸納為三個階段:古典密碼學(xué)階段、現(xiàn)代密碼學(xué)的對稱密碼階段、現(xiàn)代密碼學(xué)的公鑰密碼階段。文章分別闡述了不同發(fā)展階段的“加解密”算法,以及各類算法的優(yōu)缺點。我們認(rèn)為密碼學(xué)的可持續(xù)發(fā)展,離不開數(shù)學(xué)以及通訊信息技術(shù)的基礎(chǔ)性支持,從而針對不同領(lǐng)域的密碼技術(shù)需求,做出不同的發(fā)展戰(zhàn)略。
密碼學(xué)(源于希臘語kryptós“隱藏的”),主要是研究如何隱密地傳遞信息的學(xué)科。著名密碼學(xué)家Ron Rivest曾經(jīng)直白、生動的將密碼學(xué)歸納定義為“如何實現(xiàn)在敵人存在的環(huán)境中通訊”。這一定義顯然是旨在軍事領(lǐng)域的信息傳遞,避免被敵方截獲與破解。但是,在互聯(lián)網(wǎng)與大數(shù)據(jù)時代,密碼學(xué)不僅僅應(yīng)用于軍事領(lǐng)域,同時強(qiáng)有力地滲透到人們生活的方方面面,如商業(yè)領(lǐng)域與政府治理領(lǐng)域。密碼學(xué)的發(fā)展與計算機(jī)科學(xué)技術(shù)的發(fā)展相輔相成,彼此促進(jìn),大數(shù)據(jù)背景下,公民、法人及組織的各方面公共事務(wù)與私人事務(wù),均需要網(wǎng)絡(luò)安全技術(shù),這對密碼學(xué)的發(fā)展提出了更高的要求。
嚴(yán)格意義上講,密碼學(xué)包括兩個部分:一是編碼學(xué),即致力于編制密碼,從而達(dá)到保密的效果;二是破譯學(xué),主要是通過破譯密碼的手段與技術(shù),截獲通信情報。隨著科學(xué)技術(shù)的不斷突破與發(fā)展,密碼學(xué)中的加密算法與密鑰性能也在不斷提升,從而大大地增加了信息傳遞的安全與保密程度。大體上,密碼學(xué)的發(fā)展經(jīng)歷了以下三個階段[1]如圖1所示。
圖1 密碼學(xué)的發(fā)展歷程Fig.1 The history of cryptography
第一階段:古典密碼階段(1949年前)。
在這個階段算法和密鑰都是保密的,但是密鑰空間較小。信息傳遞過程的安全性主要依賴于加密和解密的算法保密。古典密碼加密階段經(jīng)歷漫長的發(fā)展歷史,最大的特點就是依靠算法進(jìn)行手工加密和解密。因此,這一階段也稱之為手工加密時代。
第二階段:對稱密碼階段(1949—1975年)。
這段時間,也稱之為現(xiàn)代密碼學(xué)的階段,和古典密碼階段的主要區(qū)別在于這個階段的加密和解密算法無需保密,但信息的安全性主要依賴于對密鑰的保密。這一階段,也稱之為現(xiàn)代密碼學(xué)的傳統(tǒng)密碼算法。對稱加密指加密和解密使用相同密鑰的加密算法。即一方面,加密密鑰可以從解密密鑰中計算出來,同時解密密鑰也可以從加密密鑰中推演出來。由此,加密密鑰和解密密鑰是相同的,稱之為“對稱密碼階段”或者“單鑰密碼階段”。信息的發(fā)送與接收雙方應(yīng)該協(xié)商好密鑰,如果雙方任何一方保存密鑰不謹(jǐn)慎(或者故意泄露),那么傳遞信息將存在不安全性。
第三階段:公鑰密碼階段(1976年—至今)。
在公鑰密碼階段,加密密鑰(公鑰)可以公開,僅對解密密鑰(私鑰)保密,基于一些數(shù)學(xué)難題保證很難通過公鑰推出私鑰。1976年,美國學(xué)者Dime和Heman提出發(fā)送信息與接收信息雙方在交換信息,可以在不安全環(huán)境下的媒體上進(jìn)行,這種方法為 “非對稱加密算法”。與對稱加密體制下的算法不同,非對稱加密算法在信息傳遞的過程中,需要兩個密鑰:一個是公開密鑰(Public Key);;另一個是私有密鑰(Private Key)。公私兩個密鑰之間的關(guān)系可以簡單的總結(jié)為“一對”。公私兩種密鑰之間的具體的關(guān)系可以解釋為:一是,如果用公開密鑰對需要傳遞的信息與數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私有密鑰才能解密;相反,如果用私有密鑰對需要傳遞的信息與數(shù)據(jù)進(jìn)行加密,那么信息的接收方必須用對應(yīng)的公開密鑰進(jìn)行解密。由此可見,在這一階段,加密和解密需要使用的是兩個不同的密鑰,由此稱之為非對稱加密算法。
在此階段,非對稱加密安全性更好,非對稱在加密與解密的過程中使用的是“一對密鑰”,一個用來信息傳遞方對數(shù)據(jù)進(jìn)行加密,另一個信息接收方對數(shù)據(jù)進(jìn)行解密。此外,非對稱加密的另一個優(yōu)勢是:公鑰是公開的,私鑰是自己保存的,不需要像對稱加密那樣在通信之前要先同步密鑰。在對稱密鑰時代,由于雙方共享使用的是相同的密鑰,如果一方泄露,信息將存在被盜取、泄密的風(fēng)險[2]。非對稱密鑰大大地規(guī)避了這種風(fēng)險的存在。
對稱加密雖然相比較非對稱加密存在劣勢,但是依舊廣泛的應(yīng)用的電腦與信息技術(shù)中。目前主要的對稱加密的算法有:DES、3DES、AES、IDEA等[3]。對稱加密體制下算法分析表如表1所示。
表1 對稱加密體制下算法分析表Tab.1 Algorithm analysis table under symmetric encryption system
(1)DES算法,是最傳統(tǒng)的對稱加密體制下的算法,奠定了對稱加密算法的基礎(chǔ)。但是目前為止,DES算法已經(jīng)被全面破解,由此該算法不再安全,甚至已經(jīng)基本放棄使用。例如,在企業(yè)商務(wù)領(lǐng)域,基本上沒有企業(yè)應(yīng)用了。
(2)3DES(3重DES,Triple DES,DEsede),在DES被破解之后,DEsede用于代替DES的使用。對一塊數(shù)據(jù)用三個不同的密鑰進(jìn)行三次加密,相比較DES強(qiáng)度更高。該加密技術(shù)計算密鑰時間長、加密效率低下,隨著計算機(jī)科學(xué)技術(shù)的發(fā)展,直至今日也基本上被棄用了。
(3)AES,也是在對稱加密體制下被利用的頻率最高的算法。這種算法密鑰建立時間短、靈敏性高、內(nèi)存占用少、安全性高。在實際使用中,工作模式通常是CTR,引用16個字節(jié)數(shù)組的IV參數(shù),密鑰長度128/192/256。
(4)IDEA,相比較DES與3DES,加密速度更快,安全性更好,常用于電子郵件的加密。IDEA密鑰長度為128位,數(shù)據(jù)塊大小為64bit,是一種“輪次加密”技術(shù),密鑰經(jīng)過多輪擴(kuò)展參加“加解密”流程。從理論上講,IDEA屬于“強(qiáng)”加密算法,具有較高的安全性。
非對稱加密技術(shù)相比較對稱加密具有很大的優(yōu)勢,保密效果好,算法相對復(fù)雜[4]。目前為止,主要的算法有RSA、DSA、ECC等[5]。非對稱加密體制下算法列表如表2所示。
表2 非對稱加密體制下算法列表Tab.2 List of algorithms under asymmetric encryption
(1)RSA是目前最具影響力的公鑰加密方法,該算法基于將兩大素數(shù)相乘,但是對其乘積所得進(jìn)行因式分解很復(fù)雜。由此可見,通過兩個素數(shù)乘積公開作為加密密鑰操作簡單,即公鑰,兩大素數(shù)的組合稱之為私鑰。但是不可否認(rèn)的是,在同樣安全級別條件下,RSA相對于對稱加密算法速度慢很多,相當(dāng)于1/1000左右。
(2)DSA(全稱Digital Signature Algorithm),是一種更加高級的驗證方式,其主要特點是不單單有公鑰、私鑰,還有數(shù)字簽名。私鑰加密生成數(shù)字簽名,公鑰需要同時驗證數(shù)據(jù)與簽名,如果數(shù)據(jù)或者簽名與私鑰不匹配,被認(rèn)為驗證失敗。
(3)ECC(稱之為橢圓加密算法),是一種公鑰加密算法,采用的數(shù)學(xué)基礎(chǔ)理論是利用橢圓曲線上的有理點構(gòu)成Abel加法群上橢圓離散對數(shù)的計算困難性。其主要優(yōu)勢是使用更小的密鑰,提供更高級別的安全性。例如,160位的橢圓密鑰與1024位的RSA密鑰安全性相同。此外,ECC的處理速度要比RSA更快,存儲空間更小。
縱觀密碼學(xué)的發(fā)展,我們發(fā)現(xiàn):(1)密碼算法得到了快速發(fā)展,提升了信息傳遞的安全性。(2)我們應(yīng)該看到不同的密碼體制,以及不同密碼加密解密算法,在不同領(lǐng)域得到了應(yīng)用。我們應(yīng)該繼續(xù)深入基礎(chǔ)性研究,如密碼學(xué)算法的數(shù)學(xué)基礎(chǔ),發(fā)展數(shù)學(xué)等基礎(chǔ)性學(xué)科,扎實投入,從而為密碼學(xué)算法的可持續(xù)發(fā)展提供理論與學(xué)科基礎(chǔ)。(3)不同領(lǐng)域,如軍事領(lǐng)域、企業(yè)商務(wù)領(lǐng)域、政府行政管理領(lǐng)域、個人信息傳遞領(lǐng)域,對密碼學(xué)中加密解密技術(shù)的需求不同,由此密碼學(xué)的各種算法,應(yīng)該針對不同領(lǐng)域需求的差異性,并找尋不同的發(fā)展方向、制定不同的發(fā)展策略。