基于FPGA的Montgomery模乘器的高效實現(xiàn)
發(fā)布時間:2019-08-26 11:35
【摘要】:為了提高橢圓曲線密碼處理器的模乘速度,提出了一種更有效且更適合硬件實現(xiàn)的Montgomery算法。改進的算法分析了基于CSA加法器的Montgomery模乘算法,提出了多步CSA加法器的Montgomery算法,該算法能夠在一個時鐘內(nèi)做多次CSA迭代運算,可以有效地降低時鐘個數(shù),進而提高模乘速度。通過ModelSim仿真工具仿真,正確完成一次256位的Montgomery模乘運算只需要16個時鐘周期。在Altera EP3SL200F1517C2 FPGA中的運行結(jié)果表明,71.5 MHz的時鐘頻率下,完成一次256位的模乘運算僅需要0.22μs。
【圖文】:
罰嘌釼看蔚仌次迭代運算都是在t次循環(huán)下(即t個時鐘)進行的,故經(jīng)過s步迭代運算后就應(yīng)該進入到剩余步數(shù)r是否大于0的判斷,如果r>0,則還需要多一個時鐘執(zhí)行完剩余的r位數(shù)據(jù)處理,這樣才能全部處理完k位數(shù)據(jù),最后輸出結(jié)果z=xyR-1modm;反之,直接跳轉(zhuǎn)到輸出結(jié)果,即可結(jié)束運算。圖2給出的是每次迭代運算的電路結(jié)構(gòu)圖,,可以看出,該電路結(jié)構(gòu)主要包括與門、加法器、數(shù)據(jù)選擇器以及移位寄存器等幾個器件單元。圖2的目的主要是計算每處理1bit的輸入數(shù)據(jù)x與y的結(jié)果,而圖1中的迭代運算指的是每次處理多位的輸入數(shù)據(jù)。圖1Montgomery模乘硬件實現(xiàn)流程圖圖2迭代單次電路結(jié)構(gòu)4仿真結(jié)果與性能分析對于本文所設(shè)計的Montgomery模乘器結(jié)構(gòu),本文采用Verilog語言進行編程,并在ModelsimSE10.1a中驗證了其正確性,仿真結(jié)果如圖3所示,是256bitMontgomery模乘的運算結(jié)果,測試數(shù)據(jù)為m:256'HFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF;x:256'H7FE0BB5B55741B27F619CF03E1878F77C42943766A3F808C4EAAF9642B0A9411;y:256'HAE155036DC8FD3F05BB05800BCD0B6526D2B2B88E4A995070220E8368C50B2EF;得到的結(jié)果為M(x,y)=256’HD72933ED20DC83F41AD27B9ACB6EA970D452C40BAA8238FF7442327D68255DF7圖3256bitMontgomery模乘的運算結(jié)果為了更好地分析本文Montgomery模乘的性能,在功能仿真得到驗證后,又利用Altera對此設(shè)計進行綜合,選用StriaxIII系列的EP3SL200F1517C2器件,結(jié)果表明:計算256bit模乘,選取步數(shù)s=4時,綜合后的器件頻率為193.15MHz,面積為6237ALUTs(adaptivelook-uptables,自適應(yīng)查找表),需要耗費64個時鐘,完成一次256bit的Montgomery模乘需要0.22μs;選取步數(shù)s=16時,綜合后的頻率71.5MHz,面積為1870
腦慫憬峁鉖囝兄
本文編號:2529260
【圖文】:
罰嘌釼看蔚仌次迭代運算都是在t次循環(huán)下(即t個時鐘)進行的,故經(jīng)過s步迭代運算后就應(yīng)該進入到剩余步數(shù)r是否大于0的判斷,如果r>0,則還需要多一個時鐘執(zhí)行完剩余的r位數(shù)據(jù)處理,這樣才能全部處理完k位數(shù)據(jù),最后輸出結(jié)果z=xyR-1modm;反之,直接跳轉(zhuǎn)到輸出結(jié)果,即可結(jié)束運算。圖2給出的是每次迭代運算的電路結(jié)構(gòu)圖,,可以看出,該電路結(jié)構(gòu)主要包括與門、加法器、數(shù)據(jù)選擇器以及移位寄存器等幾個器件單元。圖2的目的主要是計算每處理1bit的輸入數(shù)據(jù)x與y的結(jié)果,而圖1中的迭代運算指的是每次處理多位的輸入數(shù)據(jù)。圖1Montgomery模乘硬件實現(xiàn)流程圖圖2迭代單次電路結(jié)構(gòu)4仿真結(jié)果與性能分析對于本文所設(shè)計的Montgomery模乘器結(jié)構(gòu),本文采用Verilog語言進行編程,并在ModelsimSE10.1a中驗證了其正確性,仿真結(jié)果如圖3所示,是256bitMontgomery模乘的運算結(jié)果,測試數(shù)據(jù)為m:256'HFFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF;x:256'H7FE0BB5B55741B27F619CF03E1878F77C42943766A3F808C4EAAF9642B0A9411;y:256'HAE155036DC8FD3F05BB05800BCD0B6526D2B2B88E4A995070220E8368C50B2EF;得到的結(jié)果為M(x,y)=256’HD72933ED20DC83F41AD27B9ACB6EA970D452C40BAA8238FF7442327D68255DF7圖3256bitMontgomery模乘的運算結(jié)果為了更好地分析本文Montgomery模乘的性能,在功能仿真得到驗證后,又利用Altera對此設(shè)計進行綜合,選用StriaxIII系列的EP3SL200F1517C2器件,結(jié)果表明:計算256bit模乘,選取步數(shù)s=4時,綜合后的器件頻率為193.15MHz,面積為6237ALUTs(adaptivelook-uptables,自適應(yīng)查找表),需要耗費64個時鐘,完成一次256bit的Montgomery模乘需要0.22μs;選取步數(shù)s=16時,綜合后的頻率71.5MHz,面積為1870
腦慫憬峁鉖囝兄
本文編號:2529260
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2529260.html
最近更新
教材專著