◆陳曼
基于蒙哥馬利域的ECC算法的優(yōu)化
◆陳曼
(山東大學數(shù)學學院 山東 250013)
由于現(xiàn)代社會通訊技術(shù)的發(fā)展,使得消息的傳遞更加方便,但同時伴隨著消息被竊聽,泄露,篡改的危險。為了安全的傳遞消息,許多加密算法隨即被提出。本文主要討論基于離散對數(shù)問題的橢圓曲線加密方案,通過結(jié)合幾何與代數(shù)的思想來討論橢圓曲線的運算規(guī)律,提出基于蒙哥馬利域設(shè)計運行橢圓曲線加密解密程序,其相對于一般數(shù)域程序結(jié)果大概快了10倍。
橢圓曲線;蒙哥馬利算法;加密算法
為了解決上述難題,Neal Koblitz 和Victor Miller 兩人在1985年分別獨立地提出了橢圓曲線加密算法。橢圓曲線加密方案相比于RSA加密算法,它運用了較高深的數(shù)學知識——橢圓曲線離散對數(shù)問題,這能夠減少對密鑰長度的要求,即橢圓曲線安全傳輸消息允許使用較短長度的密鑰。橢圓曲線密碼由于使用更短長度的密鑰,具有更小存儲容量,更慢帶寬的優(yōu)勢,能夠廣泛應(yīng)用在線上支付,手機智能卡,無線傳遞信息。經(jīng)過幾十年的發(fā)展,橢圓曲線加密算法被各大國際組織機構(gòu)廣泛的使用,許多國際組織如ANSI、IEEE、ISO將橢圓曲線標準化。到目前為止,橢圓曲線數(shù)字簽名機制ECDSA已成為經(jīng)濟貿(mào)易傳輸信息的加密標準。因此,針對橢圓曲線密碼研究有效的優(yōu)化算法,具有重要的實際用處和發(fā)展前景。
稱為點乘運算,或為標量積。
設(shè)橢圓曲線是如下方程
可以推出橢圓曲線是齊次方程,且滿足
圖1 橢圓曲線運算法則
并且
(1)例如Alice選擇一條橢圓曲線,選擇橢圓曲線上p(3.10)作為橢圓曲線上的基點,且基點的階數(shù)是28。
(4)Bob需要計算
(5)Bob再將消息傳遞給Alice,因此Alice根據(jù)
人活著,并不會一切順利如意,但如果我們都有小草那種頑強拼搏,無私奉獻的精神,那我們的祖國必將充滿無限的生機與活力。
能夠得到M的值。
3 基于蒙哥馬利域上ECC算法的實現(xiàn)
橢圓曲線加密系統(tǒng)主要在于倍點運算。蒙哥馬利算法[4]利用完全剩余系的性質(zhì),在計時避免了的除法運算,能夠有效地提高模乘運算的速度。Montgomery算法的基本思想是:計算;設(shè),,;,通常?。皇莚模n的逆,即;。因為,所以mod r、都可以通過簡單的移位操作實現(xiàn),從而消去了最復(fù)雜的除法運算。
圖3 流程圖
計算
算法:
Step 1
具備烘干功能的洗烘一體機,已經(jīng)在大眾消費者當中形成一部分固定需求,并引領(lǐng)出一種新興的生活方式,在線上線下均呈現(xiàn)出高速增長。中怡康監(jiān)測數(shù)據(jù)顯示,2018年1-9月,洗烘一體機線上零售額同比增長41.5%,線下同比增長49.2%。
Step 2
Step 3 if then
return
else return
基于網(wǎng)絡(luò)爬蟲的調(diào)查數(shù)據(jù)一般都會存在不可避免的“硬傷”。網(wǎng)絡(luò)信息繁多而雜亂,有效信息占比過少而導致調(diào)查數(shù)據(jù)存在較大偏誤,本次探索性調(diào)查存在以下幾個缺陷:(1)有效招聘信息比例較低。大量招聘信息由于不規(guī)范或不完整,而被視為無效信息剔除。本文通過網(wǎng)絡(luò)爬蟲共采集了招聘信息17 346條,經(jīng)過數(shù)據(jù)清理后的有效招聘只有6 826條,有效率不到四成。(2)無法獲取珠三角企業(yè)通過其他途徑發(fā)布的招聘信息。如企業(yè)委托獵頭公司引進高端人才或者在國外網(wǎng)站發(fā)布的招聘信息,都無法獲取。(3) “隱形”招聘需求無法獲取。由于國內(nèi)外籍人才數(shù)量太少,大多特定領(lǐng)域的外籍人才幾乎不可能在國內(nèi)找到,從而沒有發(fā)布招聘信息。
藝術(shù)家每次創(chuàng)作出的女性題材的畫面,應(yīng)該充滿視覺的動力、極強手感性的大筆觸與大色域,創(chuàng)造出很有視覺的“摩擦力”,發(fā)出個性化的特殊藝術(shù)語言。當創(chuàng)作畫面時可用不多的書寫性線條或色塊創(chuàng)作出“近似形象”,而不需要達到很細微。這樣可使色塊或線條成為產(chǎn)生特定效果的刺激物,成為耐人尋味的主體,也即轉(zhuǎn)化成為畫中事、畫中物,這些色彩和線條組合即為“視覺力”的強有力場。
大數(shù)bitmap的實現(xiàn):在C語言中,我們通過本來利用一般的思想的是一個數(shù)組位存一位數(shù),存儲1024bit的大數(shù)需要初始化數(shù)組,但是可以利用更節(jié)省空間的方法。C語言unsigned int 的范圍是,一個數(shù)組位就可以存32bit(1個int = 4Byte.s = 4*8bit = 32 bit),1024比特用初始化數(shù)組可以儲存。在本程序中,我用a[0]代表實際數(shù)組的長度,因此1024比特位的大數(shù)需要用數(shù)組存儲。
橢圓曲線參數(shù)的方程:
q:B640000002A3A6F1D603AB4FF58EC74521F2934B1A7AEEDBE56F9B27E351457D
橢圓曲線上的點
:93DE051D62BF718FF5ED0704487D01D6E1E4086909DC3280E8C4E4817C66DDDD
:21FE8DDA4F21E607631065125C395BBC1C1C00CBFA6024350C464CD70A3EA616
:02E65B0762D042F51F0D23542B13ED8CFA2E9A0E7206361E013A283905E31F
計算所得。
比較直接用除法做運算以及選擇蒙哥馬利域的運算結(jié)果(圖4、圖5)。
圖4 所用時間
圖5 實驗結(jié)果比較圖
實驗結(jié)果表明基于蒙哥馬利域的橢圓曲線算法比一般數(shù)域下的速度快了10倍左右,其主要原因是一般除法太耗時間,而蒙哥馬利算法通過位移就可以實現(xiàn)除法。
4 結(jié)束語
橢圓曲線是具有深厚歷史,結(jié)合代數(shù)與幾何知識的加密方案。本文簡單介紹橢圓曲線的方程,運算性質(zhì),加密算法以及數(shù)字簽名。本文利用數(shù)組bitmap思想實現(xiàn)大數(shù)存儲,實現(xiàn)基于蒙哥馬利域下的橢圓曲線算法。
參考文獻:
[1]張方國.橢圓曲線在密碼中的應(yīng)用:過去,現(xiàn)在,將來…[J].山東大學學報(理學版),2013,48(05):1-3.
[2]陳恭亮.信息安全數(shù)學基礎(chǔ)[M].北京:清華大學出版社,2004:109-204.
[3]Andres.Elliptic curves and their application to crytography.Germany:University Augsburg,2001:11.
[4]賀令亞.蒙哥馬利算法在RSA中的應(yīng)用研究[J].現(xiàn)代計算機(專業(yè)版),2014(29):7-9.