《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種改進(jìn)的Montgomery階梯算法及其實(shí)現(xiàn)
一種改進(jìn)的Montgomery階梯算法及其實(shí)現(xiàn)
來(lái)源:微型機(jī)與應(yīng)用2013年第11期
袁仕繼,李博章,孫慧慧,張廣吉
(中國(guó)人民解放軍63888部隊(duì),河南 濟(jì)源 454650)
摘要: 提出了利用Montgomery階梯算法實(shí)現(xiàn)快速模冪運(yùn)的兩種方案。第一種是將每個(gè)時(shí)鐘周期內(nèi)乘法和平方并行執(zhí)行,且使用2×2正交變換器選擇輸出,使Montgomery階梯算法簡(jiǎn)單、高效;第二種是使用循環(huán)展開(kāi)技術(shù)將循環(huán)數(shù)減少一半,且只需要一半的時(shí)鐘,運(yùn)算效率得到更大的提高。
Abstract:
Key words :

摘  要: 提出了利用Montgomery階梯算法實(shí)現(xiàn)快速模冪運(yùn)的兩種方案。第一種是將每個(gè)時(shí)鐘周期內(nèi)乘法和平方并行執(zhí)行,且使用2×2正交變換器選擇輸出,使Montgomery階梯算法簡(jiǎn)單、高效;第二種是使用循環(huán)展開(kāi)技術(shù)將循環(huán)數(shù)減少一半,且只需要一半的時(shí)鐘,運(yùn)算效率得到更大的提高。
關(guān)鍵詞: 模冪運(yùn)算標(biāo)量乘;Montgomery階梯算法

 大數(shù)模冪運(yùn)算在Diffie-Hellman和RSA系統(tǒng)中得到了廣泛應(yīng)用[1]。所謂模冪運(yùn)算,就是已知大數(shù)a、x、m,求解ax(mod m)。這里的a、x、m一般為幾百比特甚至上千比特的大整數(shù),m一般為素?cái)?shù),因此在此過(guò)程中需要做大量的乘法運(yùn)算和模運(yùn)算(即除法運(yùn)算)。在計(jì)算機(jī)運(yùn)行處理過(guò)程中,乘法運(yùn)算是很耗時(shí)的運(yùn)算,而除法運(yùn)算更是乘法的幾倍之多。因此,在計(jì)算ax(mod m)的過(guò)程中,如何減少乘法,尤其是模運(yùn)算的次數(shù)便成為提高模冪運(yùn)算速度的關(guān)鍵。參考文獻(xiàn)[2]對(duì)常用算法進(jìn)行了分析和總結(jié)。
 經(jīng)典Montgomery[3]階梯算法是將模運(yùn)算轉(zhuǎn)化為乘法運(yùn)算和移位運(yùn)算,從而避免計(jì)算模運(yùn)算,在RSA[4]和ECC[5]中得到廣泛應(yīng)用。在該算法中執(zhí)行運(yùn)算的次數(shù)等于冪的二元進(jìn)制長(zhǎng)度,且平方運(yùn)算是每步都要執(zhí)行,僅當(dāng)冪為1時(shí)才執(zhí)行乘法運(yùn)算[6]。這種在不同步中運(yùn)算數(shù)量的差異導(dǎo)致系統(tǒng)易受邊道攻擊[7]。在Diffie-Hellman和RSA系統(tǒng)中的模冪運(yùn)算中,冪為其密鑰。一個(gè)成功的SCA攻擊可以計(jì)算模冪運(yùn)算的冪,從而導(dǎo)致整個(gè)系統(tǒng)密鑰的丟失。本文利用循環(huán)展開(kāi)技術(shù),將兩個(gè)循環(huán)同時(shí)進(jìn)行并行處理,提高了運(yùn)算速度和效率。同時(shí),根據(jù)Montgomery階梯算法原理,設(shè)計(jì)了該算法的硬件實(shí)現(xiàn)。
1 Montgomery階梯算法
1.1 經(jīng)典Montgomery階梯算法

 算法1描述的過(guò)程即為經(jīng)典Montgomery階梯算法流程。
 算法1:
 Input:M,k=(kn-1…k1 k0)2
 Output:C=Mk
 (1)Set R0←1,R1←M;
 (2)For i=n-1 to 0 Step-1
 ①If(ki=0)
      Then{Set R1←R0×R1,R0←R02}
 ②If(ki=1)
      Then{Set R0←R0×R1,R1←R12}
 (3)Return(C=R0)
 由該算法可知,將一次平方運(yùn)算認(rèn)為是一次乘法運(yùn)算,可以完成一次求冪運(yùn)算,經(jīng)典MPL算法至少將運(yùn)用2logk次乘法運(yùn)算,而平方乘的平均運(yùn)算量達(dá)到3/2logk。參考文獻(xiàn)[8]指出MPL算法支持并行運(yùn)算,用一個(gè)雙核處理器,在同一時(shí)鐘內(nèi)將乘法運(yùn)算和平方運(yùn)算同時(shí)進(jìn)行,運(yùn)算速度將提高一倍。基于以上考慮,本文將設(shè)計(jì)實(shí)現(xiàn)一種經(jīng)典Montgomery階梯算法。
1.2 MPL算法的快速實(shí)現(xiàn)
 算法1的快速實(shí)現(xiàn)如圖1所示,變量R0和R1分別初始化為1和M,分別存儲(chǔ)在存儲(chǔ)器R0和R1中。設(shè)R0和R1可存儲(chǔ)大數(shù)Mk。指數(shù)k存儲(chǔ)在二進(jìn)制移位寄存器中,該寄存器每次循環(huán)左移一位。算法硬件實(shí)現(xiàn)還包括一個(gè)模乘法器、模平方單元、一個(gè)混合器和一個(gè)2×2正交變換器。
 

 設(shè)計(jì)工作原理如下:首先,將R0和R1分別初始化為1和M。在第j(j=0,1,2,…,n-1)輪循環(huán),指數(shù)中比特kn-1-j是移位寄存器最左邊的比特,由它控制混合器運(yùn)算和2×2正交變換。如果kn-1-j=0,則由R0輸出R0,并作乘法運(yùn)算和平方運(yùn)算,其中,平方運(yùn)算生成R0;如果kn-1-j=1,則由R1輸出R1,并作乘法運(yùn)算和平方運(yùn)算,其中,平方運(yùn)算生成R1。
 2×2正交變換器工作原理:在第j(j=0,1,2,…n-1)輪循環(huán),如果kn-1-j=0,即控制端輸入E=1,變換表現(xiàn)為交叉關(guān)系,這時(shí)乘法器和平方單元的輸出分別輸入R0和R1中;如果kn-1-j=1,即控制端的輸入為E=0, 變換表現(xiàn)為平行關(guān)系,這時(shí)乘法器和平方單元的輸出分別為R0和R1中。
在第j(j=0,1,2…,n-1)輪循環(huán)中,運(yùn)行算法1中i=j的步驟。進(jìn)行n輪循環(huán)后,存儲(chǔ)器R0中的值即為C=Mk。
 設(shè)計(jì)包含了一個(gè)模乘法運(yùn)算,一個(gè)模平方運(yùn)算,3個(gè)混合運(yùn)算和2個(gè)存儲(chǔ)器過(guò)程。算法時(shí)間復(fù)雜度為:
 T=max{Tmultiplier,Tsquarer+Tmux}+T2×2
  =max{Tmultiplier+Tmux,Tsquarer+2Tmux}
 從圖2中可以看出,2×2正交變換等價(jià)于一個(gè)混合器。由于是對(duì)大數(shù)的運(yùn)算,可以認(rèn)為Tmultiplier>>Tsquarer,則一次循環(huán)耗時(shí)T=Tmultiplier+Tmux。整個(gè)模冪運(yùn)算耗時(shí)nT=n(Tmultiplier+Tmux)。
2 一種改進(jìn)的MPL算法及實(shí)現(xiàn)
2.1 一種改進(jìn)的MPL算法

 經(jīng)典MPL算法是從k2的最高位循環(huán)到最低位,而且是單位循環(huán)。為了提高運(yùn)算速度,需對(duì)經(jīng)典MPL算法進(jìn)行改進(jìn)。將循環(huán)展開(kāi)技術(shù)應(yīng)用于MPL算法,并將兩個(gè)循環(huán)合并,得到如下改進(jìn)算法:
 算法2:
 Input:M,k= (kn-1…k1 k0)2
 Output:C=Mk
 (1)Set  m←(n-2)/2 if n is even
       otherwise set m←(n-1)/2 and kn←0
 (2)Set R0←1, R1←M;
 (3)For i=m to 0 step-1
 ①If(k2i+1k2i=00)
      Then{Set R1←R0×R1,R0←R02,
       R1←R0×R1,R0←R02 }
 ②If(k2i+1k2i=01)
      Then{Set R1←R0×R1,R0←R02,
       R0←R0×R1,R1←R12 }
 ③If(k2i+1k2i=10)
      Then{Set R0←R0×R1,R1←R12,
       R1←R0×R1,R0←R02 }
 ④If(k2i+1k2i=11)
      Then{Set R0←R0×R1,R1←R12,
       R0←R0×R1,R1←R12 }
 (4)Return(C=R0)
 以上算法與M-ary算法中為m=4的情況類似。
2.2 改進(jìn)MPL算法的實(shí)現(xiàn)
 實(shí)現(xiàn)算法2的設(shè)計(jì)如圖3所示。變量R0和R1分別初始化為1和M,存儲(chǔ)在存儲(chǔ)器R0和R1中。設(shè)R0和R1可存儲(chǔ)大數(shù)N-1(N為模數(shù))。
 如圖4所示,二進(jìn)制指數(shù)k存儲(chǔ)在移位寄存器中。n為偶數(shù)時(shí),寄存器K有n比特,k2m+1=kn-1,即m=n/2-1;n為奇數(shù)時(shí),寄存器K有n+1比特,k2m=kn-1,即m=(n-1)/2。寄存器K每循環(huán)一次,有兩個(gè)比特輸出。一個(gè)比特用來(lái)控制圖3上方的混合器和2×2的正交變換;另一個(gè)比特用來(lái)控制圖3下方的混合器和2×2正交變換。除寄存器外,改進(jìn)MPL設(shè)計(jì)還包括兩個(gè)乘法器,兩個(gè)平方單元,兩個(gè)混合器和兩個(gè)2×2正交變換。
這種設(shè)計(jì)可以分成上下兩部分。兩部分結(jié)構(gòu)都與圖1結(jié)構(gòu)類似。不同之處在于,上方部分2×2正交變換的輸出分別為下方部分乘法器和平方單元的輸入。
 分析該算法的實(shí)現(xiàn),算法時(shí)間復(fù)雜度為:
  T=max{2TMultiplier+2T2×2,Tmultiplier+Tsquarer+2T2×2+Tmux,2Tsquarer+2T2×2+2Tmux}
 

 


 大數(shù)模冪運(yùn)算是公約密碼體質(zhì)研究的熱點(diǎn)內(nèi)容之一。本文結(jié)合經(jīng)典Montgomery階梯算法能并行處理的特點(diǎn),首先設(shè)計(jì)實(shí)現(xiàn)出經(jīng)典Montgomery階梯算法;然后結(jié)合循環(huán)展開(kāi)技術(shù),提出了一種改進(jìn)Montgomery階梯算法,設(shè)計(jì)并實(shí)現(xiàn)了該算法。分析表明,該方法能將經(jīng)典Montgomery階梯算法的循環(huán)次數(shù)降低一半,使得該算法能在ECC和其他領(lǐng)域得到廣泛應(yīng)用。
參考文獻(xiàn)
[1] DIFFIE W, HELLMAN M. New directions in cryptography[J]. IEEE tans. Inform. Theory, 1976(22):644-654.
[2] 朱兆國(guó),任忠保,桂祚勤.大數(shù)模冪運(yùn)算的快速算法[J].高性能計(jì)算技術(shù),2006(2):45-48.
[3] MONTGOMERY P L. Modular multiplication without trial division[J]. Mathmatics of Computation,1985,44(170):519-521.
[4] 王平水.公鑰密碼體制及其安全性分析研究[D].合肥:合肥工業(yè)大學(xué),2006.
[5] 左平,龐世春,華宏圖,等.安全的并行橢圓曲線Montgomery階梯算法[J].吉林大學(xué)學(xué)報(bào)(物理版),2011,49(4):690-692.
[6] GORDON D M. A survey of fast exponentiation methods[J]. Algorithms, 1998,27(1):129-146.
[7] MESSERGES T S, DABBISH E A, SLOAN R H. Power analysis attacks of modular exponentiation in Smartcards[C]. CHES′99, 1999: 144-157.
[8] WELSCHENBACH M.密碼編碼學(xué)-加密方法的C與C++實(shí)現(xiàn)[M].趙振江,等譯.北京:電子工業(yè)出版社,2003.
(收稿日期:2013-03-09)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日本簧片| 国产精品一区二区三区成人| 99riav1国产精品视频| 亚洲一区精彩视频| 在线精品一区| 国产午夜亚洲精品羞羞网站| 欧美日韩一区二区三区| 免费一级欧美在线大片| 欧美一区二区三区在| a91a精品视频在线观看| 亚洲级视频在线观看免费1级| 亚洲影音先锋| 99视频精品全部免费在线| 亚洲高清影视| 狠狠色丁香婷婷综合久久片| 国产精品一区二区三区久久久| 欧美日产一区二区三区在线观看| 久久九九免费| 西西人体一区二区| 9色国产精品| 亚洲精品久久久久久下一站| 久久激情一区| 午夜精品久久久久久久白皮肤| 一区二区三区高清在线| 亚洲精品乱码久久久久久蜜桃麻豆| 黄色成人av网| 韩国欧美国产1区| 国产一区深夜福利| 国产无一区二区| 国产精品亚洲аv天堂网| 欧美视频精品在线| 欧美日韩国产区一| 欧美精品一区二区在线播放| 欧美ed2k| 欧美国产第二页| 欧美韩国一区| 欧美精品一区二区三区四区 | 午夜视频在线观看一区二区三区| 亚洲一区视频在线观看视频| 国产精品99久久久久久久久| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 久久精品日韩一区二区三区| 欧美中文字幕在线视频| 久久精品久久综合| 久久精品一区二区三区中文字幕| 久久久精品国产一区二区三区| 久久久久网址| 欧美成人久久| 欧美日韩另类视频| 国产精品成人免费视频| 国产精品美女久久久久久久| 国产精自产拍久久久久久蜜| 国产亚洲欧洲一区高清在线观看| 狠狠操狠狠色综合网| 亚洲狠狠丁香婷婷综合久久久| 亚洲欧洲视频| 亚洲视频欧洲视频| 午夜精品久久久久久久99水蜜桃 | 欧美亚洲一区二区在线观看| 久久精精品视频| 欧美成人黑人xx视频免费观看| 欧美精品日韩综合在线| 国产精品99免费看 | 久久精品国产亚洲一区二区三区 | 亚洲欧洲日韩女同| 一区二区三区精密机械公司 | 亚洲无亚洲人成网站77777 | 亚洲一区二区免费看| 午夜精品在线看| 久久久蜜臀国产一区二区| 蜜桃精品一区二区三区 | 欧美黄色免费网站| 国产精品久久久久久久久果冻传媒| 国产日韩在线视频| 亚洲黄色三级| 夜夜嗨一区二区| 欧美一区二区三区另类| 亚洲精品一二| 欧美一区=区| 免费在线成人| 国产精品免费视频xxxx| 韩日成人av| 在线视频日本亚洲性| 欧美尤物巨大精品爽| 99精品久久久| 久久精品国产精品 | 欧美激情精品久久久久久变态| 国产精品久久久久影院色老大| 精品成人一区二区三区四区| 夜色激情一区二区| 欧美一二三区在线观看| 日韩亚洲欧美一区二区三区| 欧美一进一出视频| 欧美激情综合网| 国产亚洲一区二区在线观看| 亚洲美女91| 亚洲电影第1页| 午夜精品一区二区三区电影天堂 | 最新日韩av| 久久av一区| 欧美视频免费在线观看| 黄网动漫久久久| 亚洲专区在线| 夜夜嗨av一区二区三区中文字幕 | 亚洲欧美国产视频| 日韩亚洲欧美成人一区| 亚洲欧美日韩综合| 欧美激情免费在线| 激情久久一区| 篠田优中文在线播放第一区| 一区二区日韩免费看| 美女久久一区| 国产一区二区精品丝袜| 亚洲午夜精品久久| 在线视频精品一区| 免费一级欧美在线大片| 国产亚洲欧洲| 国产亚洲观看| 亚洲一区免费视频| 亚洲调教视频在线观看| 欧美高清影院| 亚洲大胆女人| 亚洲国产99| 久久久久久久97| 国产无一区二区| 亚洲欧美中文字幕| 午夜精品福利一区二区三区av| 欧美成人午夜激情在线| 狠狠色综合网站久久久久久久| 亚洲一区欧美| 午夜精品久久久久久久久| 欧美四级在线观看| 亚洲精选一区二区| 99精品久久久| 欧美女同在线视频| 伊甸园精品99久久久久久| 欧美亚洲在线播放| 久久aⅴ国产紧身牛仔裤| 国产精品视频xxxx| 亚洲一区视频在线观看视频| 亚洲在线中文字幕| 欧美视频精品在线观看| 日韩一级大片| 亚洲一区二区三区精品动漫| 欧美三日本三级少妇三2023| 99re视频这里只有精品| 一区二区三区毛片| 欧美激情综合亚洲一二区| 在线日本欧美| 亚洲人成网站精品片在线观看 | 久久午夜国产精品| 在线看视频不卡| 亚洲人成精品久久久久| 在线视频日韩| 国产农村妇女精品一区二区| 亚洲第一在线综合在线| 欧美日本不卡视频| 亚洲欧美另类在线| 老司机aⅴ在线精品导航| 日韩视频在线观看国产| 欧美中文在线观看| 亚洲国产清纯| 午夜精品久久久久影视| 有码中文亚洲精品| 亚洲午夜激情免费视频| 国产日韩欧美电影在线观看| 91久久中文字幕| 国产精品永久免费观看| 亚洲日本视频| 国产精品日日做人人爱| 最新69国产成人精品视频免费| 国产精品久久久久久久久久ktv| 久久av二区| 欧美午夜性色大片在线观看| 久久精品1区| 国产精品草草| 亚洲人成久久| 国产精品婷婷| 99re66热这里只有精品3直播 | 亚洲国产一区二区三区在线播| 欧美色中文字幕| 亚洲国产高清自拍| 国产精品女主播一区二区三区| 亚洲精品国精品久久99热一| 国产精品亚洲综合| 99精品欧美一区二区蜜桃免费| 国产午夜精品全部视频播放 | 国产欧美一区二区精品秋霞影院| 亚洲日本中文| 国产一区亚洲| 亚洲综合色丁香婷婷六月图片| 在线精品亚洲| 久久精品午夜| 亚洲在线国产日韩欧美| 欧美激情视频一区二区三区免费| 欧美一区1区三区3区公司| 欧美亚洲第一区| 99国产一区| 在线观看一区| 久久久久久网站|