劉 軍, 賈松浩, 楊 彩
(南陽師范學院 計算機與信息技術學院,河南 南陽 473061)
安全性高、算法實現性能更好的橢圓曲線公鑰系統(tǒng)[1](Elliptic Curve Cryptography,ECC)是基于離散對數問題,使用的是有限域上橢圓曲線的有理點群[2]。但是至今人們尚未找到有限域上橢圓曲線上有理點群的離散對數問題的亞指數算法[3],而且目前的研究結果表明構造出這樣的亞指數算法的可能性不大[4]。近20年的公鑰密碼和相關數論的研究表明,研究整數分解問題的一個進展往往可以被改造用來研究離散對數問題,因為這兩個問題的難解程度被認為相當[5]。因此,可以利用已知的最好算法解決的整數分解問題來處理離散對數問題和橢圓曲線離散對數問題[6]。ECC比RSA的每比特所蘊涵的安全性 (比特級安全性)要高很多,而且隨著密鑰規(guī)模的擴大,這種比特級安全性的優(yōu)勢在擴大[7]。
假設用戶A欲將明文m加密后發(fā)送給B,A需執(zhí)行以下的操作:① 用戶A選定一條橢圓曲線E,并取橢圓曲線上一點作為基點G;② 用戶A選擇一個私有密鑰k,并生成公開密鑰K=kG;③ 用戶A將E、點G和公開密鑰K傳給用戶B;④ 用戶B接到信息后,將待傳輸的明文編碼到E上一點M,并產生隨機整數r(r 圖1 橢圓曲線加/解密示意圖 根據已有的橢圓曲線數字簽名算法,本文做了進一步的改進,使其運算負擔減少、速度提高[8]。在現有的橢圓曲線加密或者簽名過程中,求逆是主要的運算負擔,如在驗證簽名中,w=s-1(modn)這個運算是很慢的,在此構造一種新的簽名方程,在改進的ECC算法的計算過程中不需要求逆的步驟,因此效率較高[9]。具體闡述如下:① 簽名者確認Hash函數,以生成信息摘要;② 簽名者確定橢圓曲線參數F=(P,a,h,g,n,h)或(m,f(x),a,h,g,n,h);③ 簽名者向驗證者傳送所確定的Hash函數,橢圓曲線域參數;④ 簽名者在有限域G(P)與橢圓曲線點群選定的基礎上選擇密鑰x,由公開基點g得公鑰y=xg并公開y;⑤ 簽名者選隨機數K,1≤K≤n-1;⑥ 計算r=kg,如果r=0,則轉向第⑤步;⑦ 計算s=mrx-k;⑧ 所得(s,r)作為對m的簽名,并將(s,r)連同m發(fā)送給驗證者;⑨ 驗證者計算r′=sg+mry的值;⑩ 驗證者判斷r′=r,相等則簽名成立,否則拒絕簽名。 改進的算法減輕了運算的負擔,提高了整個運算速度,這種方案在提供相同安全性的前提下,對系統(tǒng)資源的要求更低,更有實用價值[10]。 本系統(tǒng)設計時,提供公共接口,滿足系統(tǒng)的可擴展性,為用戶發(fā)布兩種不同功能類型的數字證書:簽名證書和加密證書,可以保證更好的安全性[11]。數字認證中心系統(tǒng)采用MVC結構,采用JAVA EE實現,使用SQL Server2005數據庫存儲各種信息[12]。服務器端實現了CA(Certificate Authority)中心的操作,采用圖形化界面,其操作簡單易用,實現了一個認證中心系統(tǒng)的全部功能。 數字認證中心系統(tǒng)的設計過程中,對CA的結構進行簡化和補充:① 考慮到本文研究認證中心CA時,側重于對非對稱加密算法的加密和簽名的應用,因而涉及用戶使用的證書數量較少,并且涉及實現的認證功能相對簡單。在本系統(tǒng)在實現中,CA同時完成RA(Register Authority)的功能,CA發(fā)布證書。② 本系統(tǒng)涉及到兩個數據庫:一是證書庫,存儲了用戶的信息、用戶的證書信息和撤銷列表信息等;二是私鑰庫,是對用戶私鑰的備份。系統(tǒng)結構如圖2所示。 圖2 數字認證中心系統(tǒng)的結構 其中,CA后臺管理實現了一個認證中心CA的證書頒發(fā)、證書查詢、證書更新和證書撤銷等全部功能;系統(tǒng)客戶端實現的是證書擁有用戶對數字證書的各種操作。 公鑰證書即是一個用戶的公鑰和他的身份的綁定,在綁定前由一個可以信任的證書權威機構(CA)來證實用戶的身份,然后這個可信任CA對證明該綁定的證書進行數字簽名?;贓CC公鑰體制中,如果一個用戶想要申請一個證書,將采取下列步驟:① 任何人(如用戶A)想要申請證書必須個人向CA申請,因為CA要檢驗這個人的身份。 ② 用戶A可以直接向計算機輸入他的個人信息與相應的口令。③ CA存貯這些數據到一個臨時目錄。④ 在這個階段,將生成一個密鑰對(隨機生成一個私鑰s及與其相對的公鑰S=sG)。⑤ 生成密鑰對后,發(fā)送這個公鑰(一個橢圓曲線上的點)到CA服務器。⑥ CA對用戶A的公鑰及其它一些與該用戶有關的信息,如個人姓名、電子郵件地址等進行數字簽名,形成一個數字證書。⑦ 生成證書以后,CA負責把該證書拷貝到智能卡中,發(fā)送給用戶A。 數字認證中心系統(tǒng)CA的根證書和私鑰是所有CA系統(tǒng)的核心。用戶的證書信息和公鑰信息都是需要經過CA的私鑰進行簽名,CA的數字簽名和算法是數字證書的重要內容。用戶驗證時,必須擁有CA的公鑰才能解開證書中的CA簽名,所以也必須在瀏覽器中先安裝CA根證書,得到CA的公鑰。有了數字認證中心系統(tǒng)的根證書和私鑰,就可以頒發(fā)證書和對證書進行各種操作。 (1) 證書頒發(fā)模塊。頒發(fā)證書的過程是一個將審核通過的用戶申請信息經過復雜的編碼、解碼和簽名的過程。證書頒發(fā)的流程如圖3所示。 圖3 證書頒發(fā)的流程 (2) 證書撤銷模塊。在證書有效期內,數字認證中心系統(tǒng)接受用戶申請或按照有關國家機關要求廢除證書。證書作廢后認證中心都需要對證書撤銷列表進行更新及維護。 (3) 證書查詢模塊。證書查詢包括查看所有已頒發(fā)的證書信息、查詢特定的用戶證書和證書撤銷列表信息。按照一定的查詢條件從數據庫表中查詢出CA簽發(fā)的用戶證書信息,為管理員進行查看或其它操作提供參考。查看所有已頒發(fā)的證書信息和查詢特定的用戶證書時,可查詢數據庫表。 (4) 證書更新模塊。認證中心CA所產生的證書都有一定的有效期限。所有證書中都有明確的證書生存期,表明該證書的產生日期與失效日期。用戶應在證書過期前更換新證書并在數據庫中做相應的更改。本數字認證中心系統(tǒng)采用人工更新證書的方法,在證書將要到期前,管理員發(fā)Email提示用戶證書將要到期,是否需要更新證書,用戶向認證中心提交更新請求,管理員審核合格后向CA發(fā)出簽發(fā)請求,CA頒發(fā)新證書后將證書送到認證中心,管理員發(fā)Email通知用戶證書已成功更新,用戶可到指定的網址去下載自己的新證書。在證書更新時,不需要再次審核用戶信息,本系統(tǒng)的證書更新過程是在撤銷原有證書的基礎上,為用戶重新頒發(fā)證書[13]。 由于計算量小和處理速度快,改進ECC的實現可以選取比RSA小得多的大數,實現速度要比RSA、DSA快得多。存儲空間占用小,密鑰尺寸和系統(tǒng)參數與RSA、DSA相比要小得多。160位ECC與1 024位RSA、DSA具有相同的安全強度。 改進ECC算法的安全性基于橢圓曲線點群上離散對數問題(ECDLP)的難解性,基于模運算的整數因式分解問題和離散對數問題是存在亞指數時間復雜度的運算法。同時,改進ECC把實數域上的乘法運算、指數運算等映射成橢圓曲線上的加法運算,比其他公鑰密碼體系更快,更容易實現,成本更低。 改進ECC算法還具有一些更高級的安全特性,如在設計前向保密的密碼方案、抵抗密碼實現中的計算錯誤等方面比RSA具有優(yōu)勢。 為了解決數字認證中心系統(tǒng)的安全認證問題,研究了 ECC算法,并和RSA算法、DSA算法進行了安全性分析和比較。把改進的ECC算法運用到數字認證中心系統(tǒng)的實現過程中,設計了一個認證中心CA——數字認證中心系統(tǒng),實現數字證書的管理功能:證書的頒發(fā)、證書的更新、證書的查詢和證書的撤銷等功能,能夠比較完整的實現一個用戶從最初的注冊到獲得數字證書,到對擁有證書進行各種操作的過程。同時,本系統(tǒng)為用戶發(fā)布兩種不同功能類型的數字證書:簽名證書和加密證書。算法分析說明改進的ECC算法安全性更好,更容易實現,成本也更低。 [1] 秦志光. 密碼算法的現狀與發(fā)展研究[J]. 計算機應用, 2004, 24(2):3-4. QIN Zhi-guang. Cryptography Algorithm—Survey Trends[J]. Computer Applications,2004,24(2):3-4. [2] 姬 睿,申 輝. 基于信息安全領域的密碼技術[J].實驗室研究與探索, 2010,29(9):67-72. JI Rui, SHEN Hui.The Research of Public-key Cryptography in Information Security Teachnology[J].RESEARCD AND EXPLORATION lN LABORATORY, 2010,29(9):67-72. [3] 劉 鐸,戴一齊.計算橢圓曲線上多標量乘的快速算法[J]. 計算機學報,2008, 31(7):1131-1138. LIU Duo, DAI Yi-qi. A New Algorithm of Elliptic Curve Multi-Scalar Multiplication[J].CHINESE JOURNAL OF COMPUTERS, 2008, 31(7):1131-1138. [4] 寧國強,李謝華,尹張飛.一種安全的即時通信解決方案[J]. 計算機工程與應用,2011, 47(3):82-83,93. NING Guo-qiang, LI Xie-hua, YIN Zhang-fei. Solution to secure instant messaging[J].Computer Engineering and Applications,2011,47(3):82-83,93. [5] 李 楠,谷 山,蘇錦海. SAKI方案的分析及改進[J]. 計算機工程,2010,36(23):116-118. LI Nan, GU Shan, SU Jin-hai. Analysis and Improvement of Separable and Anonymous Identity-based Private Key Issuing Scheme[J]. Computer Engineering,2010,36(23):116-118. [6] 劉 巧,彭新光.基于ECC的嵌入式系統(tǒng)的一次性口令方案[J].計算機工程與設計,2013,34(4):1212-1216. LIU Qiao, PENG Xin-guang. One-Time Password Scheme of emhedded system based on ECC[J].COMPUTER ENGINEERING AND DESIGN,2013,34(4):1212-1216. [7] 李 浪,楊 柳,李肯立,等.一種橢圓曲線密碼算法ECC旁路攻擊方法研究[J].計算機應用研究,2013,30(3):889-890. LI lang, YANG Liu, LI Ken-li,etal. Research on side-channel attack methods of ECC[J].Application Research of Computers,2013,30(3):889-890. [8] 魏先民. 改進的ECC算法在網絡信息安全中的研究[J].計算機科學,2013,40(1):136-138. WEI Xian-min. Research on Improved ECC Algorithm in Network and Information Security[J].Computer Science, 2013,40(1):136-138. [9] 肖自金,周 海,吳麗珍. 基于橢圓曲線ElGamal代理加密機制的MANET組密鑰分發(fā)方案[J].計算機應用與軟件,2013,30(3):139-144. XIAO Zi-jin, ZHOU Hai, WU Li-zhen. A New ECC Elgamal Proxy Eneryption-based Group Key Distribution Scheme for Manet[J].Computer Applications and Software, 2013,30(3):139-144. [10] 吳學慧,牛志華,王 潮. 基于橢圓曲線密碼的RFID安全協議[J]. 計算機工程與設計,2010, 31(24): 5165-5167,5182. WU Xue-hui, NIU Zhi-hua, WANG Chao. Security protocol of RFID based elliptic curve cryptography[J].Computer Engineering and Design, 2010, 31(24): 5165-5167,5182. [11] 劉 淳,張鳳元,張其善.基于智能卡的RSA與ECC算法的比較與實現[J]. 計算機工程與應用,2007,43(4):96-98,118. LIU Chun, ZHANG Feng-yuan, ZHANG Qi-shan. Comparing and implementation of ECC and RSA algorithms on Smartcard[J]. Computer Engineering and Applications, 2007,43(4):96-98,118. [12] 康鴻雁.基于ECC的RFID組證明協議分析及改進[J]. 計算機工程,2013,39(1):153-156,163. KANG Hong-yan. Analysis and Improvement of Grouping-proof Protocol for RFID Based on ECC[J]. Computer Engineering, 2013,39(1):153-156,163. [13] 姚劍波,張 濤. 抗側信道攻擊的安全有效橢圓加密算法[J]. 計算機應用研究,2012,29(12):4639-4643. YAO Jian-bo, ZHANG Tao. Safe and effective elliptic encryption algorithm resistance against side-channel attack[J]. Application Research of Computers, 2012,29(12):4639-4643. [14] 楊同豪,郁 濱. 基于身份的ZigBee節(jié)點認證方案[J]. 計算機工程與設計,2012,33(11):4127-4130. YANG Tong-hao, YU Bin. Identity-based authentication Scheme for ZigBee nodes[J]. Computer Engineering and Design, 2012,33(11):4127-4130. [15] 陳丹偉,薛青晗,章 韻. 基于ECC的RDP認證機制研究[J]. 南京郵電大學學報(自然科學版),2012,32(5):32-37. CHEN Dan-wei, XUE Qing-han, ZHANG Yun. Research of RDP authentication system based on ECC[J].Journal of Nanjing University of Posts and Telecommunications(Natural Science), 2012,32(5):32-37.2 改進的ECC算法
3 算法在數字認證中心系統(tǒng)的應用
3.1 數字認證中心系統(tǒng)的結構
3.2 基于算法的證書請求與生成
3.3 認證中心各模塊的設計與實現
3.4 安全性分析
4 結 語