雷 詠, 楊世平
(貴州大學(xué) a.計算機(jī)科學(xué)與信息學(xué)院;b.明德學(xué)院,貴州 貴陽 550025)
信息安全指通過計算機(jī)技術(shù),網(wǎng)絡(luò)技術(shù),密碼技術(shù)和網(wǎng)絡(luò)安全技術(shù)等保護(hù)網(wǎng)絡(luò)信息在傳輸、交換和存儲過程中的機(jī)密性、完整性、可用性、可控性和不可抵賴性等,如:①機(jī)密性是指網(wǎng)絡(luò)信息只為授權(quán)用戶使用,不能泄露給非授權(quán)的用戶、實(shí)體或進(jìn)程,不能被非法利用,采用的技術(shù)手段是加密傳輸,數(shù)據(jù)的保密存儲等;②完整性指網(wǎng)絡(luò)信息未經(jīng)授權(quán)不能進(jìn)行改變的特性,即信息在傳輸或存儲過程中,不能被偶然或蓄意地修改、刪除、偽造、重排、插入等破壞和丟失的特性。簡單地說,完整性就是要求網(wǎng)絡(luò)信息保存原樣不變;③可用性就是保證信息及服務(wù)可被授權(quán)用戶使用的特性;④可控性是指網(wǎng)絡(luò)信息的信息流向、信息傳播和信息內(nèi)容等具有可控制能力的特性;⑤不可抵賴性也稱作不可否認(rèn)性,是指網(wǎng)絡(luò)用戶不能否認(rèn)或抵賴自己的操作和作出的承諾,包括信息發(fā)送方不能否認(rèn)已經(jīng)發(fā)過的信息,信息接收方不能否認(rèn)已經(jīng)接收的信息[1]。為了滿足以上五方面的要求,產(chǎn)生了各種相關(guān)方面的技術(shù),加密技術(shù)和簽名技術(shù)則是其中最為典型的兩大技術(shù)。
數(shù)字簽名技術(shù)是信息化建設(shè)中的關(guān)鍵安全機(jī)制之一[2], 數(shù)據(jù)加密、數(shù)字簽名方案是保障通訊數(shù)據(jù)真實(shí)可靠的關(guān)鍵[3],它們各自實(shí)現(xiàn)不同的安全需求。
加密技術(shù)是一種將原始信息經(jīng)過相應(yīng)的“規(guī)則”轉(zhuǎn)換成“亂碼”,到達(dá)目的地后再用相同的規(guī)則還原出原始信息的一種安全保密手段。包括兩個基本元素,算法和密鑰。結(jié)合算法和密鑰即可將容易理解的信息即明文轉(zhuǎn)換為不可理解的亂碼即密文。算法是將普通可以理解的信息與一串?dāng)?shù)字(密鑰)結(jié)合,產(chǎn)生不可理解的密文的步驟。密鑰是用來對數(shù)據(jù)進(jìn)行編碼和解碼的一種算法。密鑰加密技術(shù)的密碼體制分為對稱密鑰體制和非對稱密鑰體制兩種。相應(yīng)地,對數(shù)據(jù)加密的技術(shù)分為兩類,即對稱加密(私人密鑰加密)和非對稱加密(公開密鑰加密)。對稱加密的加密密鑰和解密密鑰相同,密鑰必須保密。而非對稱加密的加密密鑰和解密密鑰不同,加密密鑰可以公開而解密密鑰需要保密。對稱加密以數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,Data Encryption Standard)算法為典型代表,非對稱加密通常以RSA(Rivest Shamir Ad1eman)算法為代表。由于除了發(fā)送方和接受方知道公共的加密算法和密鑰,因此加密技術(shù)很好的保證了信息的機(jī)密性。
簽名技術(shù)則是保證不可抵賴性的有效手段。眾所周知,在人們的生活中,通過簽字,印章等保證信息的不可抵賴性。簽名能防止通信雙方發(fā)生如否認(rèn)、偽造、冒充以及篡改等行為。在公鑰密碼學(xué)中,密鑰是有公開密鑰和私有密鑰組成的密鑰對。數(shù)字簽名就是發(fā)送方用私有密鑰進(jìn)行加密,接收方用公開密鑰進(jìn)行解密。這一過程與加密過程剛好相反。由于私鑰是個人秘密所有,用其公鑰能正確解密則證明該消息是此人簽名的。由于其他人沒有該私鑰,則簽名個人無法抵賴其發(fā)送過的消息。同時,從公開密鑰不能推算出私有密鑰,因此公開密鑰不會損害私有密鑰的安全。基于公鑰密碼體制和私鑰密碼體制都可以獲得數(shù)字簽名,目前主要是基于公鑰密碼體制的數(shù)字簽名。包括普通數(shù)字簽名和特殊數(shù)字簽名。普通數(shù)字簽名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir數(shù)字簽名算法、Des/DSA,橢圓曲線數(shù)字簽名算法和有限自動機(jī)數(shù)字簽名算法等。特殊數(shù)字簽名有盲簽名、代理簽名、群簽名、不可否認(rèn)簽名、公平盲簽名、門限簽名、具有消息恢復(fù)功能的簽名等。數(shù)字簽名保證了信息傳遞過程中的完整性,身份認(rèn)證和防抵賴。
要想同時保證數(shù)據(jù)的機(jī)密性,完整性,可認(rèn)證性和防抵賴性,傳統(tǒng)的方法就是先對消息進(jìn)行簽名,然后再把簽名后的消息進(jìn)行加密處理,這種方法被稱之為“先簽名后加密”。但是這種方法的計算量比較大,效率低,同時其通信成本也比較高。從而產(chǎn)生了數(shù)字簽密。數(shù)字簽密具有更高的效率,更高的安全性,同時降低了通信成本等,因此得到了廣泛的應(yīng)用。根據(jù)公鑰認(rèn)證方法,目前比較合理的劃分方式是將簽密體制分為基于PKI的簽密體制、基于身份的簽密體制和無證書的簽密體制。如果與特殊的簽名或者加密方案相結(jié)合便形成特殊的簽密方案,如代理簽密,環(huán)簽密,盲簽密等等。
基于PKI的簽密體制在很好地提供機(jī)密性、完整性、認(rèn)證和不可否認(rèn)性的同時,能較好地提高效率和成本,同時易于實(shí)現(xiàn)。
公鑰基礎(chǔ)設(shè)施(PKI,Public Key Infrastructure)的核心的技術(shù)基礎(chǔ)是基于公鑰密碼學(xué)的”加密”和”簽名”技術(shù)。通過”解密”和”簽名”技術(shù)的結(jié)合試用就可解決網(wǎng)絡(luò)的問題:①身份認(rèn)證;②信息傳輸、存儲的完整性,信息傳輸、存儲的機(jī)密性;③操作的不可否認(rèn)性[4]。
PKI的加密解密和簽名驗(yàn)證過程如圖1、圖2所示。
圖2 PKI簽名、驗(yàn)證過程
發(fā)送方用公鑰對消息原文進(jìn)行加密從而得到消息密文,由于除發(fā)送方與接收方以外的其他人不知道加密算法,沒有解密私鑰,因此只有擁有私鑰的接收方才能正確“翻譯”出原始信息,從而保證了信息的安全性和機(jī)密性。
而簽名驗(yàn)證過程則正好與加密解密過程相反,簽名方通過摘要運(yùn)算從消息原文中提取出摘要,用私鑰對摘要進(jìn)行加密形成簽名后將消息原文與簽名一起發(fā)送給接收方,接收方用相同的摘要運(yùn)算從消息原文中生成摘要,同時用公鑰對簽名進(jìn)行解密,若解密出來的摘要與運(yùn)算生成的摘要一致則證明消息為發(fā)送方發(fā)送。
PKI能夠?qū)崿F(xiàn)加密和簽名,但是將加密和簽名分開運(yùn)算使得通信成本高,計算效率低。簽密能同時完成加密和簽名,效率和成本都得到很大提高。
如圖3所示,左側(cè)表示發(fā)送方在發(fā)送之前對消息明文所做的加密和簽名,經(jīng)過網(wǎng)絡(luò)傳輸后接受方接受到的為消息密文。接受者要知道消息的內(nèi)容、消息的發(fā)送者是誰以及消息是否完整等等就必須對消息密文進(jìn)行解密與驗(yàn)證。在圖中,加密和解密的算法可以根據(jù)實(shí)際的需要合理的選擇。對稱加密算法具有效率高,但是密鑰的傳輸安全性差等特點(diǎn),而非對稱加密算法安全性高于對稱加密算法,但其加密的效率卻遠(yuǎn)遠(yuǎn)低于加密算法。因此,可以結(jié)合不同算法的優(yōu)點(diǎn),設(shè)計出混合的簽密方案,從而提高各方面的性能。
農(nóng)村經(jīng)濟(jì)發(fā)展在當(dāng)前改革發(fā)展中有了更為明確的方向,供給側(cè)結(jié)構(gòu)性改革工作的開展給農(nóng)業(yè)經(jīng)濟(jì)發(fā)展工作更是帶來了全新的動力和幫助。
圖3 基于PKI的簽密體制
不管是安全性,機(jī)密性,完整性等等,都是通過某些算法來實(shí)現(xiàn)的?;赑KI的簽密方案應(yīng)由三個算法構(gòu)成:密鑰生成算法,用于產(chǎn)生發(fā)送方和接收方的公鑰/私鑰對;簽密算法,該算法用于將消息明文轉(zhuǎn)換為密文;解簽密算法,該算法用于還原出消息原文。三個算法必須滿足簽密體制的一致性約束。三個算法具體作用詳見圖4。
圖4 PKI簽密算法
密鑰生成算法:在密碼系統(tǒng)中,密鑰是整個密碼系統(tǒng)中的關(guān)鍵元素,是保證信息安全性,機(jī)密性和通信雙方不可抵賴性的重要依據(jù)。所有的過程都必須有密鑰的參與才能進(jìn)行,是系統(tǒng)必不可缺的組成部分,是整個簽密系統(tǒng)的基礎(chǔ)。
密鑰生成算法是用于產(chǎn)生密鑰的算法,從圖4中可以清楚的知道密鑰生成算法的作用。該算法需要輸入一個參數(shù),通過此參數(shù)計算生成發(fā)送方和接收方的公鑰/私鑰對。發(fā)送方的私鑰和接收方的公鑰用于對消息的簽密,而發(fā)送方的公鑰和接收方的私鑰則用于對簽密密文的解簽密。
簽密算法:簽密算法能同時完成加密和簽名兩個步驟。此算法需要輸入三個參數(shù):發(fā)送方私鑰、消息明文、接收方公鑰,輸出簽密成功后的密文。發(fā)送方用自己的私鑰與接收方的公鑰對消息明文進(jìn)行簽密,形成除接收方外無法被還原理解的密文。
解簽密算法:解簽密算法輸入一個簽密過的密文,發(fā)送方的公鑰以及接收方的私鑰,經(jīng)算法計算,輸出一個消息明文。接收方用自己的私鑰與發(fā)送方的公鑰對消息密文進(jìn)行解簽密,驗(yàn)證消息的正確性和消息完整性。解簽密算法需要同時具有解密和驗(yàn)證簽名兩個功能。
簽密體制的一致性約束是指持有密鑰對的通信雙方,如果發(fā)送方能用簽密算法簽密一個消息,那接收方一定能用對應(yīng)的解簽密算法還原出消息原文[5]。只要通信雙方擁有正確的密鑰,那簽密算法與解簽密算法就具有可逆性。
現(xiàn)以基于橢圓曲線密碼體制的簽密方案[6]為例說明幾個算法的作用。
該方案分為三個階段: 系統(tǒng)初始化階段、簽密階段和簽密消息驗(yàn)證恢復(fù)階段。它由一個可信中心CA、簽密者A和接收者B來實(shí)施。
(1)系統(tǒng)初始化階段
1)可信中心CA選取有限域qF上一條安全的橢圓曲線E(qF),保證該橢圓曲線的離散對數(shù)問題是難解的。在E(qF)上選一基點(diǎn)G,G的階數(shù)為n(n為一個大素數(shù))。
2)簽密者A和接收者B為系統(tǒng)中的兩個用戶。A和B分別選取作為私鑰,計算作為公鑰, 并發(fā)送給CA。
3)CA公開(qF),G, n,AY,BY 。
(2)簽密階段
簽密者A對消息M簽密并發(fā)送給指定的接收者B。首先簽密者A選取隨機(jī)數(shù)并計算1V K G=?,這里是取橢圓曲線上點(diǎn)的X坐標(biāo)的函數(shù);然后計算簽密消息(,)r s如下:
A發(fā)送1(,,)V r s給B,這里的(,)r s是M的簽密消息,因?yàn)橄⒈浑[藏在r中。
(3)簽密消息的驗(yàn)證恢復(fù)階段
接收者B接收到簽密消息(,)r s及1V后,計算:是否成立來驗(yàn)證簽密消息(,)r s的有效性,因?yàn)槿绻灻芟?,)r s有效,則有:
首先通過驗(yàn)證
本文對信息安全中的加密技術(shù),簽名技術(shù)等做了簡單的介紹,對比指出簽密的好處;詳細(xì)地說明了基于PKI的簽密體制的特點(diǎn)以及算法描述;并以基于橢圓曲線密碼體制的簽密方案舉例說明s基于PKI的簽密體制中的算法的重要作用。
[1] 趙澤茂.數(shù)字簽名[M].北京:科學(xué)出版社,2007.
[2] 龍芳.數(shù)字簽名算法研究[J].信息安全與通信保密,2002(05):143-145.
[3] 肖龍,華云,王雁濤.一種基于環(huán)Zn上圓錐曲線的新型數(shù)字簽名方案[J].通信技術(shù),2008,41(01):127-128.
[4] 關(guān)振勝.公鑰基礎(chǔ)設(shè)施PKI和認(rèn)證機(jī)構(gòu)CA[M].北京:電子工業(yè)出版社,2002.
[5] 李發(fā)根,鐘笛.數(shù)字簽密綜述[J].理論研究,2011(12):1-8.
[6] 戴元軍,楊成.基于橢圓曲線密碼體制的(t,n)門限簽密方案[J].計算機(jī)應(yīng)用研究,2004(09):142-143.
[7] 張軍和,趙方,彭亞雄.基于PKI的CA系統(tǒng)在企業(yè)辦公系統(tǒng)的應(yīng)用[J].通信技術(shù),2011,44(12):93-94,97.
[8] 劉華春.基于PKI的IPSec-VPN的研究與設(shè)計[J].通信技術(shù),2009,42(01):259-260,263.