一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)加密的技術(shù)領(lǐng)域,特別涉及一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法和裝置。
【背景技術(shù)】
[0002]在數(shù)據(jù)的加密處理過程中,往往會涉及兩個長整數(shù)的乘積運算,在現(xiàn)有技術(shù)中,一般直接通過軟件進行乘積運算,然而,由于長整數(shù)的位長較大,那么在計算兩個位長較大的整數(shù)的乘積時將消耗較長的運算時間,這將直接影響加密處理的效率。
[0003]因此,需要提出一種新的基于蒙哥馬利模乘的數(shù)據(jù)處理方法和裝置,以提高加密處理的效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決的問題是提出一種新的基于蒙哥馬利模乘的數(shù)據(jù)處理方法和裝置,以提高加密處理的效率。
[0005]本發(fā)明的實施例提供了一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法,所述方法包括:分別獲取第一存儲器中的第一數(shù)A的位長a和第二存儲器中的第二數(shù)B的位長b ;根據(jù)所述位長a和b確定模數(shù)N,并將所述模數(shù)N寫入第一運算寄存器,其中,N的位長η大于或等于a與b的和;調(diào)用蒙哥馬利模乘器來執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算,所述模乘運算的模數(shù)為所述第一運算寄存器的值;將所述模乘運算的結(jié)果作為所述第一數(shù)A和第二數(shù)B的乘積輸出。
[0006]可選地,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算公鑰的大素數(shù)P和Q0
[0007]可選地,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算歐拉函數(shù)的大素數(shù)P-1 和 Q-1。
[0008]本發(fā)明的實施例還提供了一種基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,所述裝置包括:位長獲取器,用于分別獲取第一存儲器中的第一數(shù)A的位長a和第二存儲器中的第二數(shù)B的位長b ;處理器,用于根據(jù)所述位長a和b確定模數(shù)N,并將所述模數(shù)N寫入第一運算寄存器,其中,N的位長η大于或等于a與b的和;蒙哥馬利模乘器,用于執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算,所述模乘運算的模數(shù)為所述第一運算寄存器的值;輸出單元,用于將所述模乘運算的結(jié)果作為所述第一數(shù)A和第二數(shù)B的乘積輸出。
[0009]可選地,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算公鑰的大素數(shù)P和Q0
[0010]可選地,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算歐拉函數(shù)的大素數(shù)P-1 和 Q-1。
[0011]與現(xiàn)有技術(shù)相比,本發(fā)明的實施例具有以下優(yōu)點:在上述方案中,利用蒙哥馬利模乘器執(zhí)行第一數(shù)A和第二數(shù)B的模乘運算,以獲取所述第一數(shù)A和第二數(shù)B的乘積,這避免直接通過軟件進行乘積運算,減少了獲取所述第一數(shù)A和第二數(shù)B的乘積的時間,從而提高了加密處理的效率。
【附圖說明】
[0012]圖1是本發(fā)明實施例中基于蒙哥馬利模乘的數(shù)據(jù)處理方法的流程圖;
[0013]圖2是本發(fā)明實施例中基于蒙哥馬利模乘的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0014]為詳細說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,下面結(jié)合附圖對本發(fā)明的【具體實施方式】做詳細的說明。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是本發(fā)明還可以采用其他不同于在此描述的其它方式來實施,因此本發(fā)明不受下面公開的具體實施例的限制。
[0015]圖1是本發(fā)明實施例中基于蒙哥馬利模乘的數(shù)據(jù)處理方法的流程圖。如圖1所示,所述方法包括步驟SlOl至S104。
[0016]步驟S101,分別獲取第一存儲器中的第一數(shù)A的位長a和第二存儲器中的第二數(shù)B的位長b。
[0017]在本發(fā)明的一個實施例中,所述第一數(shù)A和第二數(shù)B可以分別為RSA加密算法中計算公鑰的大素數(shù)P和Q。
[0018]在本發(fā)明的另一個實施例中,所述第一數(shù)A和第二數(shù)B也可以分別為RSA加密算法中計算歐拉函數(shù)的大素數(shù)P-1和Q-1。
[0019]步驟S102,根據(jù)所述位長a和b確定模數(shù)N,并將所述模數(shù)N寫入第一運算寄存器。
[0020]在本發(fā)明的實施例中,模數(shù)N等于2n_l,所述模數(shù)N的位長η可以大于a與b的和,也可以等于a與b的和,例如N = 2a+b_l。
[0021]需要說明的是,由于A小于或等于2a_l,B小于或等于2b_l,那么當所述模數(shù)N的位長η可以大于或等于a和b的和時,A和B的乘積將小于N。
[0022]步驟S103,調(diào)用蒙哥馬利模乘器來執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算,所述模乘運算的模數(shù)為所述第一運算寄存器的值。
[0023]在本發(fā)明的實施例中,需要計算所述第一存儲器的值和第二存儲器的值之間的乘積,即所述第一數(shù)A和第二數(shù)B的乘積,那么可以調(diào)用蒙哥馬利模乘器來計算A和B的乘積,具體地,所述蒙哥馬利模乘運算的模數(shù)為所述第一運算寄存器的值,即所述模乘運算的模數(shù)為N。
[0024]如前所述,當所述模數(shù)N的位長η可以大于或等于a和b的和時,A和B的乘積將小于N,那么A和B的乘積對N取模的結(jié)果仍為A和B的乘積。
[0025]由此可見,調(diào)用蒙哥馬利模乘器來執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算所獲得的結(jié)果實際上就是A和B的乘積。但是,調(diào)用蒙哥馬利模乘器來獲取A和B的乘積相對于現(xiàn)有技術(shù)中直接通過軟件相乘來獲取A和B的乘積效率更高,計算時間更短。
[0026]需要說明的是,所述模乘運算的模參數(shù)W等于I。具體地,在本發(fā)明的實施例中,因為計算大數(shù)乘法時,模為全1,對應的NO (NO是模的最低32位)為OxFFFFFFFF,此時模參數(shù)W= (-N(T1Ii1c^32)=U
[0027]后續(xù)可以通過步驟S104將所述模乘運算的結(jié)果輸出。
[0028]具體地,步驟S104,將所述模乘運算的結(jié)果作為所述第一數(shù)A和第二數(shù)B的乘積輸出。
[0029]本發(fā)明的實施例還提供了一種基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,請參考圖2,所述基于蒙哥馬利模乘的數(shù)據(jù)處理裝置200包括:位長獲取器210,用于分別獲取第一存儲器中的第一數(shù)A的位長a和第二存儲器中的第二數(shù)B的位長b ;處理器220,用于根據(jù)所述位長a和b確定模數(shù)N,并將所述模數(shù)N寫入第一運算寄存器,其中,N的位長η大于或等于a和b的和;蒙哥馬利模乘器230,用于執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算,所述模乘運算的模數(shù)為所述第一運算寄存器的值;輸出單元240,用于將所述模乘運算的結(jié)果作為所述第一數(shù)A和第二數(shù)B的乘積輸出。
[0030]在本發(fā)明的一個實施例中,所述第一數(shù)A和第二數(shù)B可以分別為RSA加密算法中計算公鑰的大素數(shù)P和Q。
[0031]在本發(fā)明的另一個實施例中,所述第一數(shù)A和第二數(shù)B也可以分別為RSA加密算法中計算歐拉函數(shù)的大素數(shù)P-1和Q-1。
[0032]本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0033]雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應當以權(quán)利要求所限定的范圍為準。
【主權(quán)項】
1.一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法,其特征在于,包括: 分別獲取第一存儲器中的第一數(shù)A的位長a和第二存儲器中的第二數(shù)B的位長b; 根據(jù)所述位長a和b確定模數(shù)N,并將所述模數(shù)N寫入第一運算寄存器,其中,N的位長η大于或等于a與b的和; 調(diào)用蒙哥馬利模乘器來執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算,所述模乘運算的模數(shù)為所述第一運算寄存器的值; 將所述模乘運算的結(jié)果作為所述第一數(shù)A和第二數(shù)B的乘積輸出。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算公鑰的大素數(shù)P和Q。
3.如權(quán)利要求1所述的方法,其特征在于,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算歐拉函數(shù)的大素數(shù)P-1和Q-1。
4.一種基于蒙哥馬利模乘的數(shù)據(jù)處理裝置,其特征在于,包括: 位長獲取器,用于分別獲取第一存儲器中的第一數(shù)A的位長a和第二存儲器中的第二數(shù)B的位長b; 處理器,用于根據(jù)所述位長a和b確定模數(shù)N,并將所述模數(shù)N寫入第一運算寄存器,其中,N的位長η大于或等于a與b的和; 蒙哥馬利模乘器,用于執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算,所述模乘運算的模數(shù)為所述第一運算寄存器的值; 輸出單元,用于將所述模乘運算的結(jié)果作為所述第一數(shù)A和第二數(shù)B的乘積輸出。
5.如權(quán)利要求4所述的裝置,其特征在于,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算公鑰的大素數(shù)P和Q。
6.如權(quán)利要求4所述的裝置,其特征在于,所述第一數(shù)A和第二數(shù)B分別為RSA加密算法中計算歐拉函數(shù)的大素數(shù)P-1和Q-1。
【專利摘要】本發(fā)明提供了一種基于蒙哥馬利模乘的數(shù)據(jù)處理方法和裝置,其中,所述方法包括:分別獲取第一存儲器中的第一數(shù)A的位長a和第二存儲器中的第二數(shù)B的位長b;根據(jù)所述位長a和b確定模數(shù)N,并將所述模數(shù)N寫入第一運算寄存器,其中,N的位長n大于或等于a與b的和;調(diào)用蒙哥馬利模乘器來執(zhí)行第一存儲器的值和第二存儲器的值之間的模乘運算,所述模乘運算的模數(shù)為所述第一運算寄存器的值;將所述模乘運算的結(jié)果作為所述第一數(shù)A和第二數(shù)B的乘積輸出。所述方法和裝置能夠提高加密處理的效率。
【IPC分類】G06F7-523
【公開號】CN104750455
【申請?zhí)枴緾N201310754369
【發(fā)明人】李清, 張志敏, 閆守禮, 張綱, 魏長征, 劉丹
【申請人】上海復旦微電子集團股份有限公司
【公開日】2015年7月1日
【申請日】2013年12月31日