◆趙夢婷 李斌勇 李文皓 閻澤誠 高家奇 齊佳昕 廖懷凱
?
ECC加密算法分析及應用研究
◆趙夢婷 李斌勇 李文皓 閻澤誠 高家奇 齊佳昕 廖懷凱
(成都信息工程大學網絡空間安全學院 四川 610225)
橢圓曲線加密算法是建立在基于橢圓曲線離散對數問題上的非對稱密碼體制,憑借其密鑰短的優(yōu)勢得到了廣泛應用。本文首先從數學角度分析了橢圓曲線加密算法的原理,然后對銀行間通信數據加密原理展開了研究。在此基礎上,結合ECC算法剖析了數據通信的步驟,并給出了相應的加密通信流程。最后結合USB key的制作及驗證流程,研究了ECC算法在網銀通信交互過程的加密應用。本文所開展的研究,為保障數據通信安全提供了一種可行的技術方案。
密鑰;ECC;橢圓曲線;加密通信
隨著信息化以及數字化社會的發(fā)展,用戶對信息安全和保密的重要性的認識不斷地提高。由此,許多加密算法應運而生,如對稱加密算法DES、非對稱算法RSA、散列算法等。需要明確的是,數據安全是相對的,隨著硬件、網絡以及各方面的發(fā)展,目前常用的加密算法都可能在短時間內被破解,為此需要不斷改進密鑰或算法才能在接下來的一段時間中保證數據安全。
橢圓曲線加密算法(ECC)是基于橢圓曲線數學的一種非對稱密碼算法,是建立在基于橢圓曲線的離散對數問題上的密碼體制。隨著分解大整數方法的進步以及各方面的完善,RSA算法漸漸不能滿足現(xiàn)狀,ECC算法的需求性逐漸增大。ECC以其明顯的“短密鑰”優(yōu)勢得到了廣泛應用,并逐漸被確定為許多編碼方式的數字簽名標準。誠然,ECC還有許多未解決的問題,不過這種引用了豐富數學理論的算法,也印證了將更多數學有較大可行性理論應用到密碼學這一領域中。
首先從數學角度闡釋算法加密原理,其橢圓曲線方程如下:
其中,系數ai定義在某個域上(密碼算法中需要把之前連續(xù)曲線變?yōu)橛邢抻蛏系狞c,故ai也定義在有限域中)。曲線上所有點和一個無窮遠點構成一個集合連同定義上的加法(eg:a+b≡c (mod p))構成阿貝爾群。由于曲線上每一點都是非奇異點,故可在橢圓曲線上找到兩點P、Q,且存在如下關系式:
由此可見,已知m、P求Q較為容易,反之由Q逆向求m、P難度卻較大,橢圓曲線密碼正是基于該機制來展開設計及應用。
隨著支付寶、微信等線上支付等方式的發(fā)展,越來越多的貨幣交易也向著網絡化,信息化深度發(fā)展。因此保證網絡上傳遞資金信息的安全性,用戶信息數據的安全性也逐漸成為銀行網絡信息化建設的主要目標。
為此,嘗試將ECC算法運用于其中,鑒于銀行系統(tǒng)較為復雜,且不同的模塊使用不同的加密方式。研究之后發(fā)現(xiàn)在銀行間的信息通信加密可以通過ECC算法進行優(yōu)化。
首先,研究銀行間通信數據加密的原理
通過研究發(fā)現(xiàn)銀行柜臺間使用專線網絡,被攻擊的可能性較小。然而銀行間的數據交互使用公共網絡,此時可使用ECC算法進行數據加密。
如圖1所示為銀行加密示意圖,通過采用ECC算法完成上述數據通信,具體步驟如下:
Step2:A端選擇一條橢圓曲線Ep(a,b),并取曲線上一點為基點G;
Step3:A端選擇一個私有秘鑰k,生成公鑰K=kG(正如上述原理所說知道K求k較為困難);
Step4:A端將曲線方程Ep(a,b),K,G等信息傳給B;
Step5:B端接收數據并計算 C1=M+rK(r為隨機數),C2=rG;
Step6:B端返回C1、C2給A;
Step7:A端計算C1-kC2=M,計算表達式為:
其加密通信流程如圖2所示。
圖2 加密通信流程
通過上述論述不難發(fā)現(xiàn)影響到加密算法安全性的條件有:
(1)p需要其值越大越好,然而當p過大時會影響計算速率,一般200位左右就可以滿足一般的安全需求;
(2)p≠n*h;
(3)pt≠(1modn),1≤t<20;
(5)n為素數,因為分解成非素數相對容易,大整數做素數分解是比較難的,安全性更高;
(6)h≤4;
通過上述過程發(fā)現(xiàn),若有攻擊者H,此時攻擊者只能得到Ep(a,b),K,G,C1,C2,得到k、M是非常困難的。銀行間通信由此完成加密,而相較于RSA算法加密,ECC具有抗攻擊性強、CPU占用少,網絡消耗低、加密速度快的優(yōu)點。
用戶除了直接前往銀行處理業(yè)務外,還可通過網上銀行來進行業(yè)務處理,保證用戶數據信息就是重中之重。目前大部分網銀采用USB key作為證書,USB key是包含用戶個人身份信息、公鑰和數字簽名的一個特殊的電子文件的一種數字證書。USB Key之所有是較為安全的系統(tǒng),是因為產生公私密鑰對的程序是研制者直接燒制在芯片中的,公鑰密碼算法程序也是燒制在芯片中。公私密鑰產生后,公鑰可以導出到USB Key外,而私鑰則存儲于密鑰區(qū),不允許外部訪問。
現(xiàn)將ECC算法加入到USB key的制作中,應用ECC算法,通過其簽名和認證模塊的相對獨立性和安全性往往可使數據得到更好的加密。相應的序列號制作及驗證流程如圖3所示。
圖3 序列號制作及驗證流程
針對用戶加密,其算法步驟如下:
Step1:用戶A選擇一條橢圓曲線Ep1(a,b),和基點G1;銀行B選擇一條橢圓曲線Ep2(a,b),和基點G2;
Step2:A選擇私有密鑰k1(k1 Step3:A對數據M首先進行哈希加密,M=HASH(M); Step4:A、B隨機產生r1,r2; Step5:先用用戶A私鑰k1 對消息進行加密,消息M=r 1- M* k1 (mod n1); Step6:為防止數據不會傳遞到錯誤地方,再用銀行B公鑰K2對消息進行加密;M=r 2- M* K2 (mod n2),隨后將加密消息連同之前的哈希值傳遞給銀行B; 銀行解密算法步驟如下: Step1:銀行B收到消息后先用自己的私鑰k2解密,M=M*G2+Hash*k2 (mod p2); Step2:銀行B再利用用戶A的公鑰解密,M=M*G1+Hash*K1 (mod p1); Step3:將最后得到的哈希值與之前的哈希值信息比較,若相等則表明數據沒有被中途篡改,可以繼續(xù)通信。 本文主要研究了ECC算法的原理以及在銀行系統(tǒng)中的簡單應用。文中提出了將ECC加密算法應用于銀行間數據通信,以及網上銀行的加密過程中,為保證數據通信的安全提供了一種可行的技術方案。未來研究中,力求將進一步完善這一算法在應用中的具體實現(xiàn)。 [1]田文章. 網絡系統(tǒng)安全中混合加密技術研究[D].南京郵電大學,2017. [2]王全福. 基于ECC的同態(tài)加密算法研究與改進[D].中北大學,2017. [3]黃榮梅.基于橢圓曲線加密算法的信息安全系統(tǒng)[J].內江師范學院學報,2017. [4]王惠,朱驥.國密算法在網銀系統(tǒng)中的應用實踐[J].金融電子化,2015. [5]張永建. RSA算法和SM2算法的研究[D].江西理工大學,2015. [6]陳飛. ECC公鑰加密算法的研究與實現(xiàn)[D].華中科技大學,2015. 國家自然科學青年基金項目(71701026)、四川省科技計劃項目(2018GZ0307)、四川省教育廳重點項目(17ZA0069)、成都市科技局軟科學項目(2016-RK00-00089-ZF)、成都信息工程大學科研基金資助項目(KYTZ201618)。4 結束語