国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于蒙哥馬利模乘的數(shù)據(jù)處理方法、模乘運算方法和裝置與流程

      文檔序號:11917462閱讀:594來源:國知局
      基于蒙哥馬利模乘的數(shù)據(jù)處理方法、模乘運算方法和裝置與流程

      本發(fā)明涉及數(shù)據(jù)加密的技術領域,具體涉及一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法、模乘運算方法和裝置。



      背景技術:

      RSA、ECC和SM2是目前廣泛使用的公鑰密碼算法。其中,RSA算法中的模冪運算、ECC和SM2算法中的點乘運算,都會大量使用到大數(shù)模乘??梢哉f,大數(shù)模乘是上述公鑰加密算法中的核心運算,直接決定了上述公鑰加密算法的性能。

      蒙哥馬利模乘是目前主流的大數(shù)模乘實現(xiàn)方法。相對于對輸入數(shù)據(jù)直接進行模乘運算,蒙哥馬利模乘不僅可以節(jié)省一倍的存儲空間,還可以避免除法運算,通過移位的方式達到取模的效果,有效提高數(shù)據(jù)的處理效率。

      然而,目前在實現(xiàn)任意長度的蒙哥馬利模乘運算時,計算量仍然較大,導致計算效率較低。



      技術實現(xiàn)要素:

      本發(fā)明解決的技術問題是如何降低蒙哥馬利模乘器運算的計算量,提高計算效率。

      為解決上述技術問題,本發(fā)明實施例提供一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法,所述方法包括:

      當接收到模數(shù)N時,計算第一值s2,以根據(jù)所述第一值s2,調(diào)用蒙哥馬利模乘器,對待處理的數(shù)據(jù)執(zhí)行模乘運算;采用如下步驟計算所述第一值s2:

      獲取第一存儲器的初始值s10,所述初始值s10的位長為n,且高n-c位為0,低c位為1,w為所述蒙哥馬利模乘器的位長,k為滿足k*w≥c的最小整數(shù),n=k*w,c為所述模數(shù)N的位長,c、k及N均為正整數(shù);

      將所述初始值s10與模數(shù)N的差再與1求和,得到計算結(jié)果s11,并將所 述計算結(jié)果s11寫入所述第一存儲器;對所述第一存儲器的值s11執(zhí)行n-c次模加運算,得到計算結(jié)果s1n-c+1;將計算結(jié)果s1n-c+1對N取模后的結(jié)果s1寫入至所述第一存儲器;

      對所述第一存儲器的值s1執(zhí)行一次模加運算,獲得計算結(jié)果s21,并將所述計算結(jié)果s21作為第二存儲器的初始值寫入至所述第二存儲器;調(diào)用所述蒙哥馬利模乘器對所述第二存儲器的初始值執(zhí)行n-1次模乘運算,并將第n-1次模乘運算的結(jié)果R2mod N作為所述第一值s2輸出,其中R=2n。

      本發(fā)明實施例還提供了一種模乘運算方法,所述方法包括:

      按照上述的基于蒙哥馬利模乘的數(shù)據(jù)處理方法計算獲得第一值s2;

      當接收到待處理的數(shù)據(jù)A及B時,根據(jù)所述第一值s2,對所述待處理的數(shù)據(jù)A與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y1,以及計算所述待處理的數(shù)據(jù)B與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y2;

      對運算結(jié)果y1和y2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y3;

      對運算結(jié)果y3與數(shù)值1執(zhí)行蒙哥馬利模乘運算,獲得所述待處理的數(shù)據(jù)A及B的模乘運算結(jié)果y。

      本發(fā)明實施例還提供了一種基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,所述裝置包括:

      第一計算單元,適于當接收到模數(shù)N時,計算第一值s2,以根據(jù)所述第一值s2,調(diào)用蒙哥馬利模乘器,對待處理的數(shù)據(jù)執(zhí)行模乘運算,所述第一計算單元包括:

      獲取子單元,適于獲取第一存儲器的初始值s10,所述初始值s10的位長為n,且高n-c位為0,低c位為1,w為所述蒙哥馬利模乘器的位長,k為滿足k*w≥c的最小整數(shù),n=k*w,c為所述模數(shù)N的位長,c、k及N均為正整數(shù);

      第一計算子單元,適于將所述初始值s10與模數(shù)N的差再與1求和,得到計算結(jié)果s11,并將所述計算結(jié)果s11寫入所述第一存儲器;對所述第一存儲器的值s11執(zhí)行n-c次模加運算,得到計算結(jié)果s1n-c+1;將計算結(jié)果s1n-c+1對 N取模后的結(jié)果s1寫入至所述第一存儲器;

      第二計算子單元,適于對所述第一存儲器的值s1執(zhí)行一次模加運算,獲得計算結(jié)果s21,并將所述計算結(jié)果s21作為第二存儲器的初始值寫入至所述第二存儲器;調(diào)用所述蒙哥馬利模乘器對所述第二存儲器的初始值執(zhí)行n-1次模乘運算,并將第n-1次模乘運算的結(jié)果R2mod N作為所述第一值s2輸出,其中R=2n。

      本發(fā)明實施例還提供了一種模乘運算裝置,所述裝置包括:

      上述的基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,通過所述數(shù)據(jù)處理裝置獲得所述第一值s2;

      第二計算單元,適于當接收到待處理的數(shù)據(jù)A及B時,根據(jù)所述第一值s2,對所述待處理的數(shù)據(jù)A與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y1,以及計算所述待處理的數(shù)據(jù)B與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y2;

      第三計算單元,適于對運算結(jié)果y1和y2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y3;

      第四計算單元,適于對運算結(jié)果y3與數(shù)值1執(zhí)行蒙哥馬利模乘運算,獲得所述待處理的數(shù)據(jù)A及B的模乘運算結(jié)果y。

      與現(xiàn)有技術相比,本發(fā)明實施例的技術方案具有以下有益效果:

      在基于蒙哥馬利模乘計算s1時,通過設置第一存儲器的初始值s10的位長為n,且高n-c位為0,低c位為1,進而可以在獲得s11后,僅通過n-c次模加運算即能獲得s1的值,由此可以根據(jù)s1獲得第一值s2。相對于現(xiàn)有技術中的方案,可以有效減少計算量,提高計算效率。并且,由于c為任意值,因此,應用所述方法可以實現(xiàn)任意長度的蒙哥馬利模乘運算。

      附圖說明

      圖1是本發(fā)明實施中一種模乘運算方法的流程圖;

      圖2是本發(fā)明實施例中一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法的流程圖;

      圖3是本發(fā)明實施中一種基于蒙哥馬利模乘的數(shù)據(jù)處理裝置的結(jié)構示意圖;

      圖4是本發(fā)明實施中一種模乘運算裝置的結(jié)構示意圖。

      具體實施方式

      目前,在基于蒙哥馬利模乘計算s1時,通常令s10=0xFF…F-N+1,其中,0xFF…F的位長為n,n為機器字長的整數(shù)倍,N為模數(shù),進而可以通過0xFF…F與模數(shù)N之間的模減運算來獲得s1的值,此時s1的位長為n。因此,上述方法僅能實現(xiàn)機器字長整數(shù)倍的蒙哥馬利模乘運算。并且,由于硬件實現(xiàn)模減運算時,如果兩數(shù)相減的結(jié)果超過硬件的位長即溢出,則需要對兩數(shù)相減的結(jié)果再與模數(shù)N相減,直至與模數(shù)相減后的結(jié)果沒有溢出,并將此時與模數(shù)相減后的結(jié)果作為兩數(shù)模減運算的結(jié)果,因此,在基于蒙哥馬利模乘計算s1時,通常需要進行2n-c次減法運算,才能獲得s1的值,導致模乘運算的計算量仍然較大,計算效率較低。

      針對上述問題,本發(fā)明實施例提供了一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法,所述方法在基于蒙哥馬利模乘計算s1時,通過設置第一存儲器的初始值s10的位長為n,且高n-c位為0,低c位為1,進而可以在對s11執(zhí)行n-c次模加運算后,獲得位長為n的s11,從而可以根據(jù)s11獲得s1的值,最終根據(jù)s1的值對待處理的數(shù)據(jù)進行后續(xù)的模乘運算。由于c為任意值,因此,利用所述方法可以幫助實現(xiàn)任意位長的蒙哥馬利模乘運算。并且,相對于現(xiàn)有技術中的方案,僅通過n-c次模加運算即可獲得s1的值,因此,在實現(xiàn)任意位長的蒙哥馬利模乘運算過程中,可以有效減少計算量,提高計算效率。

      為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細的說明。

      如圖1所示,本發(fā)明實施例提供了一種模乘運算方法,所述方法可以包括如下步驟:

      步驟11,計算第一值s2。

      在具體實施中,所述第一值s2的值為R2mod N,位長為c。其中,R=2n,w通常為機器字長的蒙哥馬利模乘器的位長,例如,w的值通常為8bit,16bit或32bit等。k為滿足k*w≥c的最小整數(shù),n=k*w,c為所述模數(shù)N的位長,c、k及N均為正整數(shù)。

      需要說明的是,在接收到模數(shù)N的值時,即可計算第一值s2。這樣,在接收到待處理的數(shù)據(jù)時,即可根據(jù)所述第一值s2將待處理的數(shù)據(jù)由實數(shù)域轉(zhuǎn)換為蒙哥馬利域,以對待處理的數(shù)據(jù)進行模乘運算。

      步驟12,當接收到待處理的數(shù)據(jù)A及B時,根據(jù)所述第一值s2,對所述待處理的數(shù)據(jù)A與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y1,以及計算所述待處理的數(shù)據(jù)B與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y2。

      在具體實施中,當接收到待處理的數(shù)據(jù)A時,對所述待處理的數(shù)據(jù)A與R2執(zhí)行蒙哥馬利模乘運算,即計算M(A,R2,R,N),獲得運算結(jié)果y1=A*R2*R-1mod N=A*R mod N。當接收到待處理的數(shù)據(jù)B時,對所述待處理的數(shù)據(jù)B與R2執(zhí)行蒙哥馬利模乘運算,即計算M(B,R2,R,N),獲得運算結(jié)果y2=B*R2*R-1mod N=B*R mod N。

      步驟13,對運算結(jié)果y1和y2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y3。

      在具體實施中,對運算結(jié)果y1和y2執(zhí)行蒙哥馬利模乘運算,即計算M(A*R,B*R,R,N),獲得運算結(jié)果y3=(A*R)*(B*R)*R-1mod N=A*B*R mod N。

      步驟14,對運算結(jié)果y3與數(shù)值1執(zhí)行蒙哥馬利模乘運算,獲得所述待處理的數(shù)據(jù)A及B的模乘運算結(jié)果y。

      在具體實施中,對運算結(jié)果y3與數(shù)值1執(zhí)行蒙哥馬利模乘運算,即計算M(A*B*R,1,R,N)mod N,獲得運算結(jié)果y=A*B*R*1*R-1mod N=A*B mod N,且y的位長為c。

      在具體實施中,可以采用多種方法計算第一值s2,以根據(jù)所述第一值s2,調(diào)用蒙哥馬利模乘器,對待處理的數(shù)據(jù)執(zhí)行模乘運算。為了降低計算量,在本發(fā)明的一實施例中,可以采用如圖2所示的方法計算第一值s2。具體地,所述方法可以包括如下步驟:

      步驟21,獲取第一存儲器的初始值s10,所述初始值s10的位長為n,且高n-c位為0,低c位為1。

      也就是說,當獲得n以及模數(shù)N的位長c后,根據(jù)所述n及c的值,可 以獲得s10。例如,當n=5,c=3時,s10=00111。當n=8,c=7時,s10=01111111。

      步驟22,將所述初始值s10與模數(shù)N的差再與1求和,得到計算結(jié)果s11,并將所述計算結(jié)果s11寫入所述第一存儲器;對所述第一存儲器的值s11執(zhí)行n-c次模加運算,得到計算結(jié)果s12;將計算結(jié)果s12對N取模后的結(jié)果s1寫入至所述第一存儲器。

      在具體實施中,令s11=s10-N+1。

      對s11執(zhí)行1次模加運算后,獲得s12=(s11+s11)mod N;

      對s12執(zhí)行1次模加運算后,獲得s13=(s12+s12)mod N;

      對s13執(zhí)行1次模加運算后,獲得s14=(s13+s13)mod N;

      ……

      依此類推,直至執(zhí)行模加運算的次數(shù)為n-c次,獲得第n-c次模加運算的結(jié)果s1n-c+1=(s1n-c+s1n-c)mod N。令s1=s1n-c+1mod N,將s1寫入至所述第一存儲器。由于s1是根據(jù)s10獲得的,因此所述s1的位長為c。

      步驟23,對所述第一存儲器的值s1執(zhí)行一次模加運算,獲得計算結(jié)果s21,并將所述計算結(jié)果s21作為第二存儲器的初始值寫入至所述第二存儲器;調(diào)用所述蒙哥馬利模乘器對所述第二存儲器的初始值執(zhí)行n-1次模乘運算,并將第n-1次模乘運算的結(jié)果R2mod N作為所述第一值s2輸出。

      在具體實施中,令s21=(s1+s1)mod N,并將s21作為第二存儲器的初始值。

      調(diào)用蒙哥馬利模乘器對s21執(zhí)行1次模乘運算,獲得計算結(jié)果s22=M(s21,s21,R,N);

      調(diào)用蒙哥馬利模乘器對s22執(zhí)行1次模乘運算,獲得計算結(jié)果s23=M(s22,s22,R,N);

      調(diào)用蒙哥馬利模乘器對s23執(zhí)行1次模乘運算,獲得計算結(jié)果s24=M(s23,s23,R,N);

      ……

      依此類推,直至執(zhí)行蒙哥馬利模乘運算的次數(shù)為n-1次,獲得計算結(jié)果s2=s2n=M(s2n-1,s2n-1,R,N)=R2mod N,即獲得第一值。此時可以將所述第一值s2輸出。

      由于所述s2也是根據(jù)s10獲得的,因此s2的位長也為n。

      由上述內(nèi)容可知,采用圖2中所示實施例的方法計算s1時,通過設置s10的位長為n,且高n-c位為0,低c位為1,因此,對s11執(zhí)行n-c次模加運算后,即可獲得位長為c的s1,并可以利用位長為c的s1直接進行后續(xù)的模乘運算。相對于通過執(zhí)行2n-c次減法運算來獲得s1的值,可以有效減少計算量,尤其在n>c時,效果更加明顯。并且,由于c為任意值,因此應用上述方法可以實現(xiàn)任意位長的蒙哥馬利模乘運算。

      為了使本領域技術人員更好地理解和實現(xiàn)本發(fā)明,以下對上述方法對應的裝置進行詳細描述。

      如圖3所示,本發(fā)明實施例提供了一種基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,所述裝置可以包括:第一計算單元31。其中,所述第一計算單元31適于當接收到模數(shù)N時,計算第一值s2,以根據(jù)所述第一值s2,調(diào)用蒙哥馬利模乘器,對待處理的數(shù)據(jù)執(zhí)行模乘運算。

      在具體實施中,所述第一計算單元31可以包括:獲取子單元310,第一計算子單元311以及第二計算子單元312。其中:

      所述獲取子單元310適于獲取第一存儲器的初始值s10,所述初始值s10的位長為n,且高n-c位為0,低c位為1,n為蒙哥馬利模乘的位長,且n=k*w,w為所述蒙哥馬利模乘器的位長,k為滿足k*w≥c的最小整數(shù),c為所述模數(shù)N的位長,c、k及N均為正整數(shù)。

      所述第一計算子單元311適于將所述初始值s10與模數(shù)N的差再與1求和,得到計算結(jié)果s11,并將所述計算結(jié)果s11寫入所述第一存儲器;對所述第一存儲器的值s11執(zhí)行n-c次模加運算,得到計算結(jié)果s1n-c+1;將計算結(jié)果s1n-c+1對N取模后的結(jié)果s1寫入至所述第一存儲器。

      所述第二計算子單元312適于對所述第一存儲器的值s1執(zhí)行一次模加運算,獲得計算結(jié)果s21,并將所述計算結(jié)果s21作為第二存儲器的初始值寫入 至所述第二存儲器;調(diào)用所述蒙哥馬利模乘器對所述第二存儲器的初始值執(zhí)行n-1次模乘運算,并將第n-1次模乘運算的結(jié)果R2mod N作為所述第一值s2輸出,其中R=2n

      如圖4所示,本發(fā)明實施例還提供了一種模乘運算裝置40,所述裝置40可以包括上述基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,第二計算單元41,第三計算單元42,第四計算單元43。其中:

      通過所述第一計算單元31獲得所述第一值s2后,所述第二計算單元41當接收到待處理的數(shù)據(jù)A及B時,根據(jù)所述第一值s2,對所述待處理的數(shù)據(jù)A與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y1,以及計算所述待處理的數(shù)據(jù)B與R2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y2。

      所述第三計算單元42適于對運算結(jié)果y1和y2執(zhí)行蒙哥馬利模乘運算,獲得運算結(jié)果y3。

      所述第四計算單元43適于對運算結(jié)果y3與數(shù)值1執(zhí)行蒙哥馬利模乘運算,獲得所述待處理的數(shù)據(jù)A及B的模乘運算結(jié)果y。

      由上述內(nèi)容可以看出,通過本發(fā)明實施例中基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,可以在實現(xiàn)任意位長的蒙哥馬利模乘運算的同時,有效降低計算量,提高計算效率。

      本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。

      雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領域技術人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應當以權利要求所限定的范圍為準。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1