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