欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

模乘運(yùn)算的處理方法、數(shù)據(jù)加解密處理的方法、裝置的制作方法

文檔序號:6572172閱讀:261來源:國知局
專利名稱:模乘運(yùn)算的處理方法、數(shù)據(jù)加解密處理的方法、裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)領(lǐng)域,尤其涉及計算機(jī)數(shù)據(jù)處理中的 一種模乘運(yùn)算的處理方法、^:據(jù)加解密處理的方法、裝置。
技術(shù)背景大數(shù)模乘算法是目前使用的各類公開密鑰密碼系統(tǒng)的核心單元,比如 RSA算法。RSA算法是目前比較安全且使用最廣泛的一種加解密方法,而且 使用該算法可以進(jìn)行數(shù)據(jù)簽名和身份驗(yàn)證,該算法對數(shù)據(jù)的處理最主要是通 過模冪計算完成的,而其中模冪計算是通過大數(shù)模乘運(yùn)算來完成。目前較好的模乘算法是Montgomery模乘算法。Montgomery模乘算法的 基本思想是,通過Montgomery變換將大數(shù)變換成以余數(shù)的形式表示,將變換 后的結(jié)果作為操作數(shù)參與模乘運(yùn)算,運(yùn)算結(jié)束后再通過適當(dāng)?shù)淖儞Q將最終計 算結(jié)果以正常的形式表示出來。對于單純的一次模乘運(yùn)算,這并不算是一種 高效的算法,但是如果將其應(yīng)用于模冪運(yùn)算等需要反復(fù)進(jìn)行模乘運(yùn)算的計算 當(dāng)中,無論在軟件實(shí)現(xiàn)還是在硬件實(shí)現(xiàn)方面,Motgomery算法已顯示出了其 高效性的優(yōu)點(diǎn)?;贛ontgomery模乘法的RSA加解密處理過程主要由3個過程組成 映射過程,模冪乘過程,反映射過程。該3個過程均可用Montgomery模乘 算法來實(shí)現(xiàn)。映射過程即將輸入數(shù)據(jù)M映射成^:M"mod7V,再對^進(jìn)行才莫 冪乘運(yùn)算得到M卜modiV 。反映射過程是將M modiV轉(zhuǎn)換成MEmod7V ,即去 掉模冪乘結(jié)構(gòu)中的整數(shù)因子r,最后得到期望的結(jié)果,即M五mod7V。這里r-r,n為模數(shù)N的二進(jìn)制數(shù)位寬。這里設(shè)MonPro(fl,6)-^6.^modW,模乘運(yùn)算是實(shí) 現(xiàn)Montgomery模冪運(yùn)算法的關(guān)鍵步驟,在模冪乘計算中會反復(fù)用到。目前大數(shù)模乘硬件實(shí)現(xiàn)比較流行的方法是在一個處理器內(nèi)以脈動陣列結(jié) 構(gòu)處理高基數(shù)數(shù)據(jù)實(shí)現(xiàn)Montgomery模乘。以器件Xilinx公司的XC2V 4000FPGA為例,實(shí)現(xiàn)基于高基(比如基為16)的Montgomery模乘運(yùn)算,做 一次1024位的模乘運(yùn)算需要用(1024 x2 + 1024) x2048個時鐘周期,若整個 系統(tǒng)的時鐘頻率為150MHz ,則一次運(yùn)算需要50ms。采用該種方法雖然能夠處理高基的模乘運(yùn)算,但是由于脈動陣列結(jié)構(gòu)采 用流水線的作業(yè)方式,造成該方法的實(shí)現(xiàn)效率低。發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種數(shù)據(jù)加解密處理的方法,能夠提高對數(shù)據(jù)加解密 的處理速度,提高處理數(shù)據(jù)的吞吐量。本發(fā)明實(shí)施例還提供另 一種數(shù)據(jù)加解密處理的方法,能夠提高對數(shù)據(jù)加 解密的處理速度,提高處理數(shù)據(jù)的吞吐量。本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理裝置,能夠提高對模乘運(yùn)算的處理速 度,提高數(shù)據(jù)處理效率。本發(fā)明實(shí)施例還提供一種模乘運(yùn)算的處理方法,能夠提高對模乘運(yùn)算的 處理速度,提高數(shù)據(jù)運(yùn)算處理效率。本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加解密處理的方法,包括一種數(shù)據(jù)加解密處理的方法,其特征是,包括獲取由待處理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算,其中所述待處理的數(shù)據(jù)為待加 密的數(shù)據(jù)、或待解密的數(shù)據(jù);將所述模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán);將所述模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的加數(shù)、被加數(shù)分 別按照從低位到高位的順序、等位數(shù)地分塊分別得到所述加數(shù)、被加數(shù)的各 對應(yīng)子塊,各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法運(yùn) 算獲取各對應(yīng)子塊的運(yùn)算結(jié)果,根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果獲取所述加 數(shù)、被加數(shù)的加法運(yùn)算的結(jié)果;在所述模乘運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述模乘運(yùn)算的循環(huán)結(jié)果獲取所述 模冪運(yùn)算的結(jié)果;根據(jù)所述模冪運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為加 密數(shù)據(jù)、或解密數(shù)據(jù)。在本發(fā)明實(shí)施例的方法中,可選地,在將所述待處理的模冪運(yùn)算轉(zhuǎn)化為 模乘運(yùn)算的循環(huán)之前,還包括計算并存儲X承N、 r2modN,其中,所述X為不大于(2n-l)的自然數(shù),所述2。為Booth算法的基, 所述N為模數(shù),所述r等于2n',所述n,為'.對所述模數(shù)N進(jìn)行位擴(kuò)展后的位 數(shù),且所述n,為基于Booth算法的基的二進(jìn)制位數(shù)的倍數(shù);在將所述待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)過程中,或者在將所 述待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)過程中,當(dāng)需要用到所述X*N、 r2modN,讀取所存儲的X*N、 r2modN代入計算。本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)加解密處理的方法,包括獲取由待處理的數(shù)據(jù)構(gòu)成的模乘運(yùn)算,其中所述待處理的數(shù)據(jù)為待加 密的數(shù)據(jù)、或待解密的數(shù)據(jù);將所述模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的加數(shù)、被加數(shù)分別按照從低位到高位的順序、等位數(shù)地分塊分別得到所述加數(shù)、被加數(shù)的各 對應(yīng)子塊,各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法運(yùn) 算獲取各對應(yīng)子塊的運(yùn)算結(jié)果,根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果獲取所述加數(shù)、被加數(shù)的加法運(yùn)算的結(jié)果;在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán)結(jié)果獲取所述 模乘運(yùn)算的結(jié)果;根據(jù)所述模乘運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為加 密數(shù)據(jù)、或解密數(shù)據(jù)。在本發(fā)明實(shí)施例的方法中,可選地,在將所述待處理的模乘運(yùn)算轉(zhuǎn)化為 模加法運(yùn)算的循環(huán)之前,還包括計算并存儲X*N,其中所述X為不大于(2n -1 )的自然數(shù),所述2"為 Booth算法的基,所述N為模數(shù),在將所述待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)過程中,當(dāng)需要用到 所述X+N,讀取所存儲的XfN代入計算。本發(fā)明實(shí)施例提供的數(shù)據(jù)處理裝置,包括第一映射單元,用于將待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);分塊單元,用于在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的 加數(shù)、被加數(shù)分別按照從低位到高位的順序、等位數(shù)地分塊,分別得到所述 加數(shù)、被加數(shù)的各對應(yīng)子塊;至少兩個加法處理器,所述各加法處理器,用于在每次進(jìn)行所述加數(shù)、 和所述被加數(shù)的加法運(yùn)算過程中,對所述分塊單元獲取的所述加數(shù)、被加數(shù) 的各對應(yīng)子塊進(jìn)行加法運(yùn)算,獲取所述各對應(yīng)子塊的運(yùn)算結(jié)果;主處理器,用于執(zhí)行循環(huán)控制,以及根據(jù)所述各加法處理器獲取的所述 各對應(yīng)子塊的運(yùn)算結(jié)果獲取最終運(yùn)算結(jié)果,其中所述循環(huán)控制包括控制由所述第一映射單元轉(zhuǎn)化得到的所述加法運(yùn)算的循環(huán),所述根據(jù)所述各加法處理器獲取的所述各對應(yīng)子塊的運(yùn)算結(jié)果獲取最終 運(yùn)算結(jié)果包括根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果,獲取所述加數(shù)、被加數(shù)的加法運(yùn)算的 結(jié)果,在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán)結(jié)果獲取所述 模乘運(yùn)算的結(jié)果。在本發(fā)明實(shí)施例的裝置中,可選地,所述待處理的模乘運(yùn)算為由待處理 的數(shù)據(jù)構(gòu)成的模乘運(yùn)算,所述待處理的數(shù)據(jù)為待加密數(shù)據(jù)、或待解密數(shù)據(jù);所述主處理器執(zhí)行的根據(jù)所述各加法處理器獲取的所述各對應(yīng)子塊的運(yùn) 算結(jié)果獲取最終運(yùn)算結(jié)果還包括根據(jù)所述模乘運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為解 密數(shù)據(jù)、或加密數(shù)據(jù)。在本發(fā)明實(shí)施例的裝置中,可選地,所述裝置還包括第二映射單元,用于將待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán),將各 模乘運(yùn)算傳遞至所述第一映射,以供所述第一映射單元將所述模乘運(yùn)算轉(zhuǎn)化 為所迷加法運(yùn)算的循環(huán);所述主處理器執(zhí)行的循環(huán)控制還包括控制所述第二映射單元轉(zhuǎn)化得到的所述模乘運(yùn)算的循環(huán);所述主處理執(zhí)行的根據(jù)所述各加法處理器獲取的所述各對應(yīng)子塊的運(yùn)算 結(jié)果獲取最終運(yùn)算結(jié)果還包括在所述模乘運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述模乘運(yùn)算的循環(huán)結(jié)果獲取所述 模冪運(yùn)算的結(jié)果。在本發(fā)明實(shí)施例的裝置中,可選地,所述待處理的模冪運(yùn)算為由待處理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算,所述待處理的數(shù)據(jù)為待加密數(shù)據(jù)、或待解密數(shù)據(jù);所述主處理器執(zhí)行的根據(jù)所述各加法處理器獲取的所述各對應(yīng)子塊的運(yùn) 算結(jié)果獲取最終運(yùn)算結(jié)果還包括根據(jù)所述模冪運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為解 密數(shù)據(jù)、或加密數(shù)據(jù)。在本發(fā)明實(shí)施例的裝置中,可選地,所述裝置還包括計算單元,用于計算XfN、 r2modN,其中,所述X為不大于(2n-l)的自然數(shù),所述2"為Booth算法的基, 所述N為模數(shù),所述r等于2"',所述n,為對所述;f莫數(shù)N進(jìn)行位擴(kuò)展后的位 數(shù),且所述n,為基于Booth算法的基的二進(jìn)制位數(shù)的倍數(shù);存儲單元,用于存儲數(shù)據(jù),所述數(shù)據(jù)包括所述計算單元獲取的X*N、 r2modN;查詢單元,用于查詢所述存儲單元,獲取所存儲的X承N、 r2modN。 本發(fā)明實(shí)施例提供的模乘運(yùn)算的處理方法,包括 確定待處理的模乘運(yùn)算; 將所述模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的加數(shù)、被加數(shù)分 別按照從低位到高位的順序、等位數(shù)地分塊,分別得到所述加數(shù)、被加數(shù)的 各對應(yīng)子塊,各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法 運(yùn)算獲取各對應(yīng)子塊的運(yùn)算結(jié)果,根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果,獲取所 述加數(shù)、被加數(shù)的加法運(yùn)算的結(jié)果;在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán)結(jié)果獲取所述 模乘運(yùn)算的結(jié)果。在本發(fā)明實(shí)施例的方法中,可選地,在確定待處理的模乘運(yùn)算之前,還包括將待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán); 所述確定待處理的模乘運(yùn)算,具體是將所述模乘運(yùn)算的循環(huán)內(nèi)的各模乘運(yùn)算作為所述待處理的模乘運(yùn)算; 在獲取所述模乘運(yùn)算的結(jié)果之后,還包括在所述模乘運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述模乘運(yùn)算的循環(huán)結(jié)果獲取所述 模冪運(yùn)算的結(jié)果。在本發(fā)明實(shí)施例的方法中,可選地,在將所述待處理的模冪運(yùn)算轉(zhuǎn)化為 模乘運(yùn)算的循環(huán)之前,還包括計算并存儲X承N、 r2modN,其中,其中,所述X為不大于(2n-l)的自然數(shù),所述2n為Booth算法 的基,所述N為模數(shù),所述r等于2n',所述n,為對所述模數(shù)N進(jìn)行位擴(kuò)展 后的位數(shù),且所述n,為基于Booth算法的基的二進(jìn)制位數(shù)的倍數(shù);在將所述待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)過程中,或者在將所 述待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)過程中,當(dāng)需要用到所述X*N、 r2modN,讀取所存儲的X*N、 r2modN代入計算。由上可見,應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,由于在每次進(jìn)行所述加法運(yùn) 算過程中,對加數(shù)、被加數(shù)進(jìn)行分塊處理,由各個加法處理器并行的處理各 對應(yīng)子塊的加法運(yùn)算,再根據(jù)各對應(yīng)子塊的運(yùn)算結(jié)果,獲取所述加數(shù)、被加 數(shù)的加法運(yùn)算的結(jié)果,能夠提高各次所述加數(shù)、被加數(shù)的加法運(yùn)算的速度, 從而能夠更快的完成加法運(yùn)算的循環(huán)而得到模乘運(yùn)算的結(jié)果,完成模乘運(yùn)算。 即應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,能夠提高對模乘運(yùn)算的處理速度,提高處 理模乘運(yùn)算的效率。在數(shù)據(jù)加解密領(lǐng)域中,只要該數(shù)據(jù)加解密處理過程中包含模乘運(yùn)算的處 理,則應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案能夠提高數(shù)據(jù)加解密處理的速度,提高 處理數(shù)據(jù)的吞吐量。


此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的 一部分,并不構(gòu)成對本發(fā)明的不當(dāng)限定,在附圖中圖1為本發(fā)明實(shí)施例l提供的一種模乘運(yùn)算的實(shí)現(xiàn)方法的流程示意圖;圖2為本發(fā)明實(shí)施例1提供的一種加法分塊計算方法的示意圖;圖3為本發(fā)明實(shí)施例2提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例2提供的另一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例2提供的又一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例2提供的由多個數(shù)據(jù)處理構(gòu)成的并列加解密處理器 陣列;圖7為本發(fā)明實(shí)施例3提供的一種數(shù)據(jù)加解密方法的流程示意圖; 圖8為本發(fā)明實(shí)施例4提供的一種數(shù)據(jù)加解密方法的流程示意圖。
具體實(shí)施方式
下面將結(jié)合附圖以及具體實(shí)施例來詳細(xì)說明本發(fā)明,再次本發(fā)明的示意 性實(shí)施例以及說明用來解釋本發(fā)明,但并不作為對本發(fā)明的限定。實(shí)施例1:圖1為本實(shí)施例提供的模乘運(yùn)算的實(shí)現(xiàn)方法的流程示意圖,如圖l所示, 該方法包4舌步驟101:確定待處理的模乘運(yùn)算。輸入待處理的模乘運(yùn)算,該模乘運(yùn)算可以為用戶輸入的模乘運(yùn)算;或者,在加解密應(yīng)用中,該模乘運(yùn)算可以為由計算機(jī)根據(jù)加解密算法 得到的由待加解密數(shù)據(jù)構(gòu)成的模乘運(yùn)算;或者,該模乘運(yùn)算也可以為當(dāng)前計算機(jī)在處理數(shù)據(jù)加解密過程中產(chǎn)生 的模乘運(yùn)算;或者,該模乘運(yùn)算也可以為計算機(jī)在處理模冪運(yùn)算過程中,由模冪運(yùn) 算轉(zhuǎn)化成的模乘運(yùn)算的循環(huán)中的任意一次模乘運(yùn)算。該模冪運(yùn)算可以為數(shù)據(jù) 加解密過程中,由待處理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算。如果該模乘運(yùn)算為由模冪運(yùn)算轉(zhuǎn)化成的模乘運(yùn)算的循環(huán)中的任意一次 模乘運(yùn)算,其中將模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)可以采用以下的技術(shù)方案以下以基8Booth算法16進(jìn)制算法的模冪算法為例,說明在本實(shí)施例中 將模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)的技術(shù)方案在本實(shí)施例中,基于Booth算法的基的二進(jìn)制位數(shù)為3,設(shè)當(dāng)前的模冪運(yùn) 算為il^modJV,其中,M為待處理數(shù)據(jù)、N為已知的模數(shù)且要求其為奇數(shù), MmodA^0, E為冪指數(shù),E的取值范圍可以為任意正整數(shù)。將模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)可以使用以下描述方案第一步,確定n,的取值,計算C-^modiV-(2"')2modA^其中C為整數(shù)因子,r = 2"', n,為對模數(shù)N進(jìn)行位擴(kuò)展后的位數(shù),且所述n,為基于Booth 算法的基的二進(jìn)制位數(shù)的倍數(shù)。第二步,初始化Preo-l,并計算Pre產(chǎn)MonPro—Booth—R8(M,C,N),存儲 Pre0 、 Pre!,其中MonPro—Booth—R8(M,C,N)表示基8Booth算法的模乘運(yùn)算 M*CmodN。使用以下循環(huán)計算Prei,并存儲各次得到的Pre;,其中j為2、3、 4...15。for i=2; i<= 15; i++{ Pre; = MonPro_Booth_R8( Pre;—i, Pre!, N );〃 MonPro—Booth—R8(PreH, Preb N)表示Prei匿,PretmodN的基8Booth?!ǔ诉\(yùn)算第三步,計算并存儲X+N,其中X分別取值1, 2,…,7,在后續(xù)計算 需要使用到N、 2N、 3N、 4N、 5N、 6N、 7N時,可以直接讀取本步存儲的值, 而避免重復(fù)計算,有利于加快數(shù)據(jù)處理速度,提高運(yùn)算的效率。第四步,對冪指數(shù)E進(jìn)行分組E = (ek—!ek—2…e,eo),得到(Fs-!Fs-2…Fi F0)。其中,E的位寬為k,對k進(jìn)行位擴(kuò)展并保證位擴(kuò)展后的k,為4的倍數(shù)(往 高位補(bǔ)"O,,),對(ek—2 ei eo)分組得到(Fs—,Fs—2…FJo),分組數(shù)s = k,/4; 每組4個bit, Fi的取值為0至15的任意整數(shù)。第五步,《0 =尸"尸,根據(jù)F分組的最高位取得相應(yīng)的預(yù)計算值。>y—1第六步進(jìn)行以下的循環(huán)計算模冪乘中間變量K卜p在本實(shí)施例中該計 算迭代需要4次for i —— 1; i<= s - 1 ; i++forj-l; j<=4;j++ , 〃這里冪16的模乘計算 a 4 a2 — a4 4 cj8 — a16 o KH-MonPro—Booth—R8(K卜h Kh, N );Kj= Ki-i;if Fs十廣0 , K產(chǎn)MonPrO-Booth一R8(Ki, PreU, N)〃其中MonPro_Booth—R8(Ki, Pre(Fs—卜O, N)表示基8Booth算法的模乘運(yùn) 〃算Ki*Pre(Fs-H)modN。第七步,計算x = MonPro一Booth一R8( Ks - 1, N ), 其中 MonPro—Booth—R8(KS—,, 1, N)表示基8Booth算法的模乘運(yùn)算Ks-lmodN。第八步,返回x。 結(jié)束。按照上述的方案可以完成將模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)。除了上述 本實(shí)施例提供的方案外,也可以使用現(xiàn)有技術(shù)的其他技術(shù)方案來完成將模冪 運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán),在此不一一列舉。步驟102:將模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)。根據(jù)Montgomery算法,將待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)。以下以基8Booth算法的模乘算法為例,說明在本實(shí)施例中如何根據(jù) Montgomery算法將待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)設(shè)當(dāng)前的模乘運(yùn)算為A*B*r—1 modN,其中,A、 B分別為該模乘運(yùn)算的 乘數(shù)、被乘數(shù),A、 B的取值范圍可以為任意正整數(shù),r為模乘因子、N為模 數(shù)且要求其為奇數(shù)。第一步,判斷執(zhí)行條件,不符合則返回,判定條件是N為奇數(shù)。第二步,求位寬n,的取值對模數(shù)N進(jìn)行位擴(kuò)展后的位數(shù),且所述n, 為基于Booth算法的基的二進(jìn)制位數(shù)的倍數(shù)。需要說明的是,如果該模乘運(yùn)算為由模冪運(yùn)算轉(zhuǎn)化得到的模乘運(yùn)算循環(huán)中的任意一個模乘運(yùn)算的話,那么n,可以在將模冪轉(zhuǎn)化為模乘的過程中得 到。第三步,初始置零二進(jìn)制中間變量P, q: P(;wWW.."o) =0, q第四步,由〃=S 得到7V—其中7V—Z幼3為模數(shù)N的低三位。/=0 z - -第五步,計算并預(yù)存儲X4B,其中X分別取值-4, -3, -2, -1, 1, 2, 3, 4。第六步,根據(jù)Booth編碼將乘數(shù)A分解為基8形式輸出A=Booth—R8(A,n,) = {c"73,c"'/3-l,C"'/3-2,...,Cl,c0} °第七步,進(jìn)行以下循環(huán)for(i = 0 ; i<=n,/3—l ; i = i++)《.=(尸.+匚*5)1110(18; 〃計算并存儲力。 尸丄1 =(尸.+ c,. * 5 + Sel一R , iV—* A0 / 8;〃計算并存儲^.+1,其中Sel—R8取值為0至7 , SeLR8,W可以在模冪轉(zhuǎn)模 〃乘的第三步計算得到并存儲好,在進(jìn)行到本步驟時,從預(yù)存值中直接讀 〃取既可。第八步,返回/^,/3值。在本實(shí)施例中,可以執(zhí)行第五步的步驟計算并預(yù)存儲X*B (X分別取值 4, -3, -2, -1, 1, 2, 3, 4),從而使得在第七步計算力和Pi+1時不需要每次都計算c,5 ,而只需要通過查詢讀取第五步預(yù)存的相應(yīng)值即可。由上可見,根據(jù)Montgomery算法,可以將模乘運(yùn)算A*B*r—imodN轉(zhuǎn) 化為加法運(yùn)算巧+1 二(巧+c^5 + SeLR8(力,iV—丄幼3)承A0/8的循環(huán)。除了本實(shí)施例提供的上述方案外,也可以使用現(xiàn)有技術(shù)的其他技術(shù)方案 來完成將模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán),在此不——列舉。步驟103:循環(huán)計算由模乘運(yùn)算轉(zhuǎn)化為各加法運(yùn)算。在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的加數(shù)、被加數(shù)分 別按照從低位到高位的順序、等位數(shù)地分塊,分別得到所述加數(shù)、被加數(shù)的 各子塊;各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法運(yùn)算 獲取各對應(yīng)子塊的運(yùn)算結(jié)果;再根據(jù)所述各加法處理器得到的各對應(yīng)子塊的 運(yùn)算結(jié)果,獲取當(dāng)前所述加數(shù)、被加數(shù)的加法運(yùn)算的結(jié)果。如果加法處理器 在子塊的加法運(yùn)算中產(chǎn)生了進(jìn)位,則將低位塊所進(jìn)行加法運(yùn)算產(chǎn)生的進(jìn)位值 進(jìn)位到高位塊所進(jìn)行加法運(yùn)算得到的運(yùn)算結(jié)果。假設(shè)當(dāng)前的進(jìn)行加法的加數(shù)、被加數(shù)分別為1024位的大數(shù)C、 D,上述 分塊以及計算過程可以具體如下如圖2所示,把兩個1024位的大數(shù)C、 D分別等位數(shù)地分為4塊Cl、 C2、 C3、 C4和D1、 D2、 D3、 D4,每塊256位。各對應(yīng)子塊分別相加,即 Cl與Dl、 C2與D2、 C3與D3、 C4與D4相加,對應(yīng)的加法處理器分別為 PC201、 PC202、 PC203、 PC204,產(chǎn)生結(jié)果CD1、 CD2、 CD3、 CD4和對應(yīng)的進(jìn)位E1、 E2、 E3、 E4。主處理器PC200先判斷El和E3是否真的存在進(jìn) 位,如果存在進(jìn)位,則主處理器PC200需要再次調(diào)用加法處理器PC202和 PC204把進(jìn)位加到相應(yīng)的后一個塊的相加結(jié)果中,即El與CD2、 E3與CD4, 從而得到兩個512位的數(shù)CD12和CD34,以及進(jìn)位D12和E34。主處理器200 再通過判斷E12來決定是否需要調(diào)用加法處理器PC205來加上進(jìn)位C12,這 樣就得到了兩個1024位大數(shù)C與D相加的最終結(jié)果Y。需要說明的是,在本實(shí)施例中,加法處理器PC201、 PC202、 PC203、 PC204 做256位的加法運(yùn)算,根據(jù)處理器的運(yùn)算能力對兩個256位數(shù)據(jù)進(jìn)行分塊, 設(shè)本發(fā)明實(shí)施例采用的處理器每次進(jìn)行16位運(yùn)算,則可以分成256/16=16塊, 即做一次256位的大數(shù)加法運(yùn)算,需要進(jìn)行16次帶進(jìn)位的加法操作。同時, 加法處理器PC202、 PC204對于其加數(shù)為1,被加數(shù)為256位大數(shù)的情況做了 優(yōu)化處理,只要加法運(yùn)算不產(chǎn)生進(jìn)位則運(yùn)算結(jié)束。加法處理器PC204做512 位的加法運(yùn)算,其中一個加數(shù)只有l(wèi)位。上述對將加數(shù)、被加數(shù)進(jìn)行分塊,并分別對各自對應(yīng)塊進(jìn)行運(yùn)算進(jìn)行了 示例性的描述,但是在實(shí)際應(yīng)用中,對加數(shù)、被加數(shù)的分塊并不拘限于上述 的方案,用戶可以根據(jù)實(shí)際情況進(jìn)行具體分塊,甚至可以任意分塊,只要保 證分塊為按照從低位到高位的順序、等位數(shù)分塊即可。需要說明的是,本實(shí)施例中的加法處理器PC201、 PC202、 PC203、 PC204 以及主處理器PC200可以使用并行陣列處理器來實(shí)現(xiàn)。按照上述的技術(shù)方案可以處理由所述模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)內(nèi) 的每個加法運(yùn)算。步驟104:在加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)加法運(yùn)算的循環(huán)結(jié)果獲取該模 乘運(yùn)算的結(jié)果。由上可見,在本實(shí)施例中,由于在每次進(jìn)行所述加法運(yùn)算過程中,通過 對加數(shù)、被加數(shù)進(jìn)行分塊處理,并由各個加法處理器并行的處理各對應(yīng)子塊的加法運(yùn)算,根據(jù)各對應(yīng)子塊的運(yùn)算結(jié)果,獲取所述加數(shù)、被加數(shù)的加法運(yùn) 算的結(jié)果,能夠提高各次所述加數(shù)、被加數(shù)的加法運(yùn)算的速度,從而能夠更 快地完成加法運(yùn)算的循環(huán),而得到模乘運(yùn)算的結(jié)果完成模乘運(yùn)算。即應(yīng)用本 發(fā)明實(shí)施例的技術(shù)方案,能夠提高對模乘運(yùn)算的處理速度,提高處理模乘運(yùn) 算的效率。另外的,還可以將本發(fā)明實(shí)施例的技術(shù)方案應(yīng)用到對模冪運(yùn)算的處理中 通過將待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán),再對每個模乘運(yùn)算應(yīng)用本 發(fā)明實(shí)施例的技術(shù)方案,由于應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,能夠提高對各 次模乘運(yùn)算的處理效率提高了 ,能夠更快地完成模乘運(yùn)算的循環(huán)得到模冪運(yùn) 算的結(jié)果,因此應(yīng)用本發(fā)明實(shí)施例提供的技術(shù)方案能夠提高處理模冪運(yùn)算的 效率。另外的,如果當(dāng)前的加密算法為模乘運(yùn)算,即當(dāng)前處理的模乘運(yùn)算為由 待加密數(shù)據(jù)(明文)構(gòu)成的模乘運(yùn)算,則還可以根據(jù)該模乘運(yùn)算的結(jié)果獲取 加密數(shù)據(jù)(加密后的數(shù)據(jù),密文),完成對數(shù)據(jù)的加密。如果當(dāng)前的解密算法 為模乘運(yùn)算,即當(dāng)前處理的模乘運(yùn)算為由加密數(shù)據(jù)(密文)構(gòu)成的模乘運(yùn)算, 則還可以根據(jù)該模乘運(yùn)算的結(jié)果獲取解密數(shù)據(jù)(解密后的數(shù)據(jù),明文),完成 對數(shù)據(jù)的解密。如果當(dāng)前的加密算法為模冪運(yùn)算,即當(dāng)前處理的模乘運(yùn)算為 由待加密數(shù)據(jù)(明文)構(gòu)成的模冪運(yùn)算,則可以在加密過程中,將模冪運(yùn)算 轉(zhuǎn)化成模乘運(yùn)算的循環(huán),在對各模乘運(yùn)算應(yīng)用本發(fā)明實(shí)施例的方法,最后得 到模冪運(yùn)算的結(jié)果,根據(jù)該模幕運(yùn)算的結(jié)果可以獲取加密數(shù)據(jù)(密文),完成 對數(shù)據(jù)的加密。如果當(dāng)前的加密算法為模冪運(yùn)算,即當(dāng)前處理的模乘運(yùn)算為 由加密數(shù)據(jù)(密文)構(gòu)成的模冪運(yùn)算,則可以在解密過程中,將模冪運(yùn)算轉(zhuǎn) 化成模乘運(yùn)算的循環(huán),在對各^t乘運(yùn)算應(yīng)用本發(fā)明實(shí)施例的方法,最后得到 模冪運(yùn)算的結(jié)果,則根據(jù)該模冪運(yùn)算的結(jié)果可以獲取解密數(shù)據(jù)(明文),完成 對數(shù)據(jù)的解密。可見,將本實(shí)施例應(yīng)用到數(shù)據(jù)加解密領(lǐng)域中,如果當(dāng)前的加 密、或解密算法中包含有模乘運(yùn)算、或模冪運(yùn)算,那么在加密、或解密過程中應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,能夠提高對數(shù)據(jù)的加密、或解密速度,提 高處理數(shù)據(jù)的吞吐量。實(shí)施例2:如圖3所示為本實(shí)施例的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,如圖是,該 裝置可以包括第一映射單元301,用于將由待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)。 該具體轉(zhuǎn)換方案可以參見本發(fā)明實(shí)施例1中步驟102中的相應(yīng)描述。分塊單元302,用于在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中 的加數(shù)、被加數(shù)分別按照從低位到高位的順序、等位數(shù)地分塊,分別得到所 述加數(shù)、被加數(shù)的各對應(yīng)子塊。其具體分塊方法可以參見本發(fā)明實(shí)施例1中 步驟103中的相應(yīng)描述。至少兩個加法處理器303,所述各加法處理器303,用于在每次進(jìn)行所述 加數(shù)、和所述被加數(shù)的加法運(yùn)算過程中,對所述分塊單元302獲取的所述加 數(shù)、被加數(shù)的各對應(yīng)子塊分別進(jìn)行加法運(yùn)算,獲取各對應(yīng)子塊的運(yùn)算結(jié)果, 其具體分塊方法可以參見本發(fā)明實(shí)施例1中步驟103中的相應(yīng)描述。本實(shí)施例中的加法處理器303可以為本發(fā)明實(shí)施例1中的加法處理器 PC201、 PC202、 PC203、 PC204。主處理器304,用于執(zhí)行循環(huán)控制,以及根據(jù)所述各加法處理器獲取的所 述各對應(yīng)子塊的運(yùn)算結(jié)果獲取最終運(yùn)算結(jié)果。在本實(shí)施例中,主處理器304執(zhí)行的循環(huán)控制包括具體包括控制第一映射單元301轉(zhuǎn)化得到的所述加法運(yùn)算的循環(huán)循環(huán)控制單元 302根據(jù)所述加法循環(huán)的循環(huán)次數(shù),控制所述加法運(yùn)算的循環(huán)。主處理器304執(zhí)行的根據(jù)各加法處理器303獲取的所述各對應(yīng)子塊的運(yùn) 算結(jié)果獲取最終運(yùn)算結(jié)果包括主處理器304根據(jù)各加法處理器303的運(yùn)算結(jié)果,獲取所述加數(shù)、被加 數(shù)的加法運(yùn)算的結(jié)果;主處理器304在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán) 結(jié)果獲取所述模乘運(yùn)算的結(jié)果。在本實(shí)施中,主處理器304、以及各加法處理器303可以使用并行陣列處 理器實(shí)現(xiàn)。由上可見,在本發(fā)明實(shí)施例中,采用圖3所示的裝置,裝置中的第一映 射單元301將待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán),再對所轉(zhuǎn)化成的各 加法運(yùn)算,使用分塊單元302將加數(shù)、被加數(shù)各等分成若干個子塊,在分別 由各加法處理器分別對各對應(yīng)子塊進(jìn)行加法運(yùn)算,在各加法處理對各對應(yīng)子 塊進(jìn)行加法運(yùn)算后,由主處理器304根據(jù)各加法處理器的運(yùn)算結(jié)果得到各次 循環(huán)的加法運(yùn)算結(jié)果,加法運(yùn)算循環(huán)結(jié)束后可以得到模乘運(yùn)算的結(jié)果。由于 各加法處理器303并行地處理各對應(yīng)子塊的加法運(yùn)算,主處理器304根據(jù)各 對應(yīng)子塊的運(yùn)算結(jié)果,計算所述加數(shù)、被加數(shù)的加法運(yùn)算,每次加法運(yùn)算的 處理速度提高了,那么完成該加法循環(huán)的速度相應(yīng)能夠提高,即獲取模乘運(yùn) 算的結(jié)果的速度提高。可見應(yīng)用本發(fā)明實(shí)施例的裝置能夠提高對模乘運(yùn)算的 處理速度,提高了處理模乘運(yùn)算的效率。另外的,可以將圖3所示結(jié)構(gòu)的裝置應(yīng)用于數(shù)據(jù)加解密的處理,如果當(dāng) 前待處理的模冪運(yùn)算為由待處理的數(shù)據(jù)構(gòu)成的模乘運(yùn)算,該待處理的數(shù)據(jù) 為待加密數(shù)據(jù)、或待解密數(shù)據(jù);主處理器304執(zhí)行的根據(jù)各加法處理器303獲取的所述各對應(yīng)子塊的運(yùn) 算結(jié)果獲取最終運(yùn)算結(jié)果還包括根據(jù)所述模乘運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為解 密數(shù)據(jù)、或加密數(shù)據(jù)。將圖3所示結(jié)構(gòu)的裝置應(yīng)用于包含^^乘運(yùn)算的凝:據(jù)加解密處理時,由于對加法處理的速度、效率提高了,從而能夠提高對模乘運(yùn)算的處理速度、效 率,從而提高對數(shù)據(jù)加解密的處理效率,提高數(shù)據(jù)處理的吞吐量。另外,如圖4所示,本發(fā)明實(shí)施例的裝置還可以包括第二映射單元401,用于將待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán),將 各模乘運(yùn)算傳遞至所述第一映射301,以供所述第一映射單元301將所述模乘 運(yùn)算轉(zhuǎn)化為所述加法運(yùn)算的循環(huán)。相應(yīng)的,主處理器402執(zhí)行的循環(huán)控制還包括控制第二映射單元401轉(zhuǎn)化得到的所述模乘運(yùn)算的循環(huán);主處理402執(zhí)行的根據(jù)各加法處理器303獲取的各對應(yīng)子塊的運(yùn)算結(jié)果 獲取最終運(yùn)算結(jié)果還包括在模乘運(yùn)算的循環(huán)結(jié)束后,根據(jù)模乘運(yùn)算的循環(huán)結(jié)果獲取所述模冪運(yùn)算 的結(jié)果??梢?,如圖4所示的裝置,還可以應(yīng)用于處理模冪運(yùn)算,并且由于處理 模乘運(yùn)算的速度提高了 ,相應(yīng)的能夠更快地完成模乘運(yùn)算的循環(huán)從而得到模 冪運(yùn)算的結(jié)果,即應(yīng)用如圖4所示的裝置,能夠提高處理模冪運(yùn)算的速度。另外的,可以將圖4所示結(jié)構(gòu)的裝置應(yīng)用于數(shù)據(jù)加解密的處理,比如RSA 加解密。如果當(dāng)前待處理的模冪運(yùn)算為由待處理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算,該待 處理的數(shù)據(jù)為待加密數(shù)據(jù)、或待解密數(shù)據(jù)。主處理器402執(zhí)行的根據(jù)各加法處理器303獲取的所述各對應(yīng)子塊的運(yùn) 算結(jié)果獲取最終運(yùn)算結(jié)果還包括根據(jù)所述模冪運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為解 密數(shù)據(jù)、或加密數(shù)據(jù)??梢姡瑢D4所示結(jié)構(gòu)的裝置應(yīng)用于包含模冪運(yùn)算的it據(jù)加解密處理時,由于對加法處理的速度、效率提高了,從而能夠提高對模乘運(yùn)算的處理速度, 從而提高模冪運(yùn)算的處理速度,從而提高對數(shù)據(jù)加解密的處理效率,提高數(shù) 據(jù)處理的吞吐量。如圖5所示,本發(fā)明實(shí)施例的數(shù)據(jù)處理裝置還可以包括計算單元501,用于計算X承N、 r2modN,其中X為不大于(2n-l)的自 然數(shù),2n為Booth算法的基,N為模數(shù),n,為對模數(shù)N進(jìn)行位擴(kuò)展后的位 數(shù),且n,為基于Booth算法的基的二進(jìn)制位數(shù)的倍數(shù)。存儲單元502,用于存儲數(shù)據(jù),所述數(shù)據(jù)包括所述計算單元307獲取的 X*N、 r2modN。查詢單元503,用于在運(yùn)算過程中,每需用到所述X申N、 一modN時,查 詢所述存儲單元502獲取所存儲的X *N、 r2modN。查詢單元503可以與各個 加法處理器303相連接。應(yīng)用圖5所示的裝置,可以將運(yùn)算處理過程中頻繁用到的參數(shù)(X*N、 r2modN)預(yù)先計算并存儲在存儲單元502中,在每次計算需要時,只需要有 查詢單元503查詢存儲單元502讀取即可,而無需在每次需要時都進(jìn)行計算, 能夠減少計算的次數(shù),有利于提高運(yùn)算效率。需要說明的是,在本實(shí)施例中,圖4中的第一映射單元301、第二映射單 元401既可以獨(dú)立設(shè)計,也可以集成設(shè)計;圖5中的計算單元501、以及主處 理器304既可以獨(dú)立設(shè)計,也可以集成設(shè)計;或者圖5中的第一映射單元301、 第二映射單元401、計算單元501、主處理器304既可以獨(dú)立設(shè)計,也可以集 成設(shè)計。另外的,在加解密的應(yīng)用中,比如RSA加解密的應(yīng)用中,需要并行運(yùn) 行多個數(shù)據(jù)加解密處理,應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,可以設(shè)置多個數(shù)據(jù) 處理的裝置601 (該數(shù)據(jù)處理裝置601可以為如圖3、圖4或圖5所示的數(shù) 據(jù)處理的裝置)配置構(gòu)成由多個數(shù)據(jù)處理構(gòu)成的并列加解密處理器陣列(如圖6所示),用戶可以同時調(diào)用多個裝置進(jìn)行數(shù)據(jù)加解密處理,提高處理數(shù)據(jù) 的吞吐量。需要說明的是,在本發(fā)明實(shí)施例中的數(shù)據(jù)處理裝置可以為由硬件構(gòu)成的 獨(dú)立的設(shè)備或硬件模塊,亦可以為以軟件的形式存儲在一個計算機(jī)可讀存儲 介質(zhì)中的功能模塊。實(shí)施例3:如圖7所示為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加解密方法的流程示意圖, 如圖示,該方法包括步驟701:獲取待處理的數(shù)據(jù)。獲取待處理的數(shù)據(jù),其中所述待處理的數(shù)據(jù)為待加密的數(shù)據(jù)、或待解密 的數(shù)據(jù)。步驟702:獲取由待處理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算。設(shè)當(dāng)前的待處理數(shù)據(jù)為M,模數(shù)為N,冪指數(shù)為E,則獲取由所述待處 理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算為ME*rmodN,其中r為映射因子。步驟703:將該模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)??梢愿鶕?jù)現(xiàn)有技術(shù)的各種技術(shù)方案將所述模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循 環(huán)??梢詤⒁妼?shí)施例1中步驟101中的相應(yīng)描述。步驟703:將各模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)??梢詤⒁妼?shí)施例1中的步驟102中的相應(yīng)描述。步驟704:循環(huán)計算由模乘運(yùn)算轉(zhuǎn)化為各加法運(yùn)算??梢詤⒁妼?shí)施例1中的步驟103中的相應(yīng)描述。步驟705:在模乘運(yùn)算的循環(huán)結(jié)束后,得到模冪運(yùn)算的結(jié)果,根據(jù)模冪運(yùn) 算的結(jié)果獲取處理后的數(shù)據(jù)加密數(shù)據(jù)、或解密數(shù)據(jù)。得到模冪運(yùn)算的處理結(jié)果后,去掉模冪結(jié)構(gòu)中的映射因子r得到處理后的 數(shù)據(jù)(即期望的數(shù)據(jù),即加密后的數(shù)據(jù)、或解密后的數(shù)據(jù))。由上可見,應(yīng)用本發(fā)明實(shí)施例的裝置,由于在每次進(jìn)行所述加法運(yùn)算過 程中,通過對加數(shù)、被加數(shù)進(jìn)行分塊處理,并由各個加法處理器并行的處理 各對應(yīng)子塊的加法運(yùn)算,提高了各次加法運(yùn)算的速度,從而能夠更快地得到 模乘運(yùn)算的結(jié)果,更快的完成每次模乘運(yùn)算,從而能夠更快的完成模乘運(yùn)算 的循環(huán)得到模冪運(yùn)算的結(jié)果,從而可以更快地根據(jù)模冪運(yùn)算的結(jié)果得到處理 后的數(shù)據(jù)??梢姂?yīng)用本實(shí)施例的技術(shù)方案可以提高數(shù)據(jù)加解密處理的速度、 能夠提高處理數(shù)據(jù)的吞吐量。實(shí)施例4:圖8為步驟801:獲取待處理的數(shù)據(jù)。獲取待處理的數(shù)據(jù),其中所述待處理的數(shù)據(jù)為待加密的數(shù)據(jù)、或待解密 的數(shù)據(jù)。步驟802:獲取由所述待處理的數(shù)據(jù)構(gòu)成的模乘運(yùn)算。設(shè)當(dāng)前的待處理數(shù)據(jù)為M,模數(shù)為N,則由所述待處理的數(shù)據(jù)構(gòu)成的模 乘運(yùn)算可以為M*CmodN,其中C為預(yù)定的才莫乘運(yùn)算參數(shù)。步驟803:將模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)??梢詤⒁妼?shí)施例1中的步驟102中的相應(yīng)描述。步驟804:循環(huán)計算由模乘運(yùn)算轉(zhuǎn)化為各加法運(yùn)算??梢詤⒁妼?shí)施例1中的步驟103中的相應(yīng)描述。步驟805:在加法運(yùn)算的循環(huán)結(jié)束后,得到模乘運(yùn)算的結(jié)果,再根據(jù)模乘 運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù)加密數(shù)據(jù)、或解密數(shù)據(jù)。由上可見,應(yīng)用本發(fā)明實(shí)施例的裝置,由于在每次進(jìn)行所述加法運(yùn)算過程中,通過對加數(shù)、被加數(shù)進(jìn)行分塊處理,并由各個加法處理器并行的處理 各對應(yīng)子塊的加法運(yùn)算,提高了各次加法運(yùn)算的速度,從而能夠更快地得到 模乘運(yùn)算的結(jié)果,從而可以更快地根據(jù)模乘運(yùn)算的結(jié)果得到處理后的數(shù)據(jù)。 可見應(yīng)用本實(shí)施例的技術(shù)方案可以提高數(shù)據(jù)加解密處理的速度、能夠提高處 理數(shù)據(jù)的吞吐量。以上對本發(fā)明實(shí)施例提供的技術(shù)方案進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具 體個例對本發(fā)明實(shí)施例的原理以及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明實(shí)施例的方法以及原理;同時,對于本領(lǐng)域的一半 技術(shù)人員,依辨本發(fā)明實(shí)施例,在具體實(shí)施方式
以及應(yīng)用范圍上均會有改變 之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1、一種數(shù)據(jù)加解密處理的方法,其特征是,包括獲取由待處理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算,其中所述待處理的數(shù)據(jù)為待加密的數(shù)據(jù)、或待解密的數(shù)據(jù);將所述模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán);將所述模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的加數(shù)、被加數(shù)分別按照從低位到高位的順序、等位數(shù)地分塊分別得到所述加數(shù)、被加數(shù)的各對應(yīng)子塊,各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法運(yùn)算獲取各對應(yīng)子塊的運(yùn)算結(jié)果,根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果獲取所述加數(shù)、被加數(shù)的加法運(yùn)算的結(jié)果;在所述模乘運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述模乘運(yùn)算的循環(huán)結(jié)果獲取所述模冪運(yùn)算的結(jié)果;根據(jù)所述模冪運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為加密數(shù)據(jù)、或解密數(shù)據(jù)。
2、 一種數(shù)據(jù)加解密處理的方法,其特征是,包括獲取由待處理的數(shù)據(jù)構(gòu)成的模乘運(yùn)算,其中所述待處理的數(shù)據(jù)為待加 密的數(shù)據(jù)、或待解密的數(shù)據(jù);將所述模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的加數(shù)、被加數(shù)分 別按照從低位到高位的順序、等位數(shù)地分塊分別得到所述加數(shù)、被加數(shù)的各 對應(yīng)子塊,各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法運(yùn) 算獲取各對應(yīng)子塊的運(yùn)算結(jié)果,根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果獲取所述加 數(shù)、被加數(shù)的加法運(yùn)算的結(jié)果;在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán)結(jié)果獲取所述模乘運(yùn)算的結(jié)果;根據(jù)所述模乘運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為加 密數(shù)據(jù)、或解密數(shù)據(jù)。
3、 一種數(shù)據(jù)處理裝置,其特征是,所述裝置包括第一映射單元,用于將待處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);分塊單元,用于在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的 加數(shù)、被加數(shù)分別按照從低位到高位的順序、等位數(shù)地分塊,分別得到所述 加數(shù)、被加數(shù)的各對應(yīng)子塊;至少兩個加法處理器,所述各加法處理器,用于在每次進(jìn)行所述加數(shù)、 和所述被加數(shù)的加法運(yùn)算過程中,對所述分塊單元獲取的所述加數(shù)、被加數(shù) 的各對應(yīng)子塊進(jìn)行加法運(yùn)算,獲取所述各對應(yīng)子塊的運(yùn)算結(jié)果;主處理器,用于執(zhí)行循環(huán)控制,以及根據(jù)所述各加法處理器獲取的所述 各對應(yīng)子塊的運(yùn)算結(jié)果獲取最終運(yùn)算結(jié)果,其中所述循環(huán)控制包括控制由所述第 一映射單元轉(zhuǎn)化得到的所述加法運(yùn)算的循環(huán),所述根據(jù)所述各加法處理器獲取的所述各對應(yīng)子塊的運(yùn)算結(jié)果獲取最終 運(yùn)算結(jié)果包括根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果,獲取所述加數(shù)、被加數(shù)的加法運(yùn)算的 結(jié)果,在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán)結(jié)果獲取所述 模乘運(yùn)算的結(jié)果。
4、 根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理裝置,其特征是,所述待處理的模乘 運(yùn)算為由待處理的數(shù)據(jù)構(gòu)成的模乘運(yùn)算,所述待處理的數(shù)據(jù)為待加密數(shù)據(jù)、 或待解密數(shù)據(jù);所述主處理器執(zhí)行的根據(jù)所述各加法處理器荻取的所述各對應(yīng)子塊的運(yùn)算結(jié)果獲取最終運(yùn)算結(jié)果還包括根據(jù)所述模乘運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為解 密數(shù)據(jù)、或加密數(shù)據(jù)。
5、 根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理裝置,其特征是,所述裝置還包括第二映射單元,用于將待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán),將各 模乘運(yùn)算傳遞至所述第一映射,以供所述第一映射單元將所述模乘運(yùn)算轉(zhuǎn)化 為所述加法運(yùn)算的循環(huán);所述主處理器執(zhí)行的循環(huán)控制還包括控制所述第二映射單元轉(zhuǎn)化得到的所述模乘運(yùn)算的循環(huán);所述主處理執(zhí)行的根據(jù)所述各加法處理器獲取的所述各對應(yīng)子塊的運(yùn)算 結(jié)果獲取最終運(yùn)算結(jié)果還包括在所述模乘運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述模乘運(yùn)算的循環(huán)結(jié)果獲取所述 模冪運(yùn)算的結(jié)果。
6、 根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理裝置,其特征是,所述待處理的模冪 運(yùn)算為由待處理的數(shù)據(jù)構(gòu)成的模冪運(yùn)算,所述待處理的數(shù)據(jù)為待加密數(shù)據(jù)、 或待解密數(shù)據(jù);所述主處理器執(zhí)行的根據(jù)所述各加法處理器獲取的所述各對應(yīng)子塊的運(yùn) 算結(jié)果獲取最終運(yùn)算結(jié)果還包括根據(jù)所述模冪運(yùn)算的結(jié)果獲取處理后的數(shù)據(jù),所述處理后的數(shù)據(jù)為解 密數(shù)據(jù)、或加密數(shù)據(jù)。
7、 根據(jù)權(quán)利要求3至5之任一所述的數(shù)據(jù)處理裝置,其特征是,所述裝 置還包括計算單元,用于計算X+N、 r2modN,其中,所述X為不大于(2n-l)的自然數(shù),所述2。為Booth算法的基, 所述N為模數(shù),所述r等于2"',所述n,為對所述模數(shù)N進(jìn)行位擴(kuò)展后的位 數(shù),且所述n,為基于Booth算法的基的二進(jìn)制位數(shù)的倍數(shù);存儲單元,用于存儲數(shù)據(jù),所述數(shù)據(jù)包括所述計算單元獲取的X*N、 r modNj查詢單元,用于查詢所述存儲單元,獲取所存儲的X氺N、 r2modN。
8、 一種模乘運(yùn)算的處理方法,其特征是,包括 確定待處理的模乘運(yùn)算; 將所述模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);在每次進(jìn)行所述加法運(yùn)算過程中,將所述加法運(yùn)算中的加數(shù)、被加數(shù)分 別按照從低位到高位的順序、等位數(shù)地分塊,分別得到所述加數(shù)、被加數(shù)的 各對應(yīng)子塊,各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法 運(yùn)算獲取各對應(yīng)子塊的運(yùn)算結(jié)果,根據(jù)所述各對應(yīng)子塊的運(yùn)算結(jié)果,獲取所 述加數(shù)、^皮加數(shù)的加法運(yùn)算的結(jié)果;在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán)結(jié)果獲取所述 模乘運(yùn)算的結(jié)果。
9、 根據(jù)權(quán)利要求8所述的模乘運(yùn)算的處理方法,其特征是,在確定待處 理的模乘運(yùn)算之前,還包括將待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán);所述確定待處理的模乘運(yùn)算,具體是將所述模乘運(yùn)算的循環(huán)內(nèi)的各模乘運(yùn)算作為所述待處理的模乘運(yùn)算; 在獲取所述模乘運(yùn)算的結(jié)果之后,還包括在所述模乘運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述模乘運(yùn)算的循環(huán)結(jié)果獲取所述 模冪運(yùn)算的結(jié)果。
10、根據(jù)權(quán)利要求9所述的模乘運(yùn)算的處理方法,其特征是,在將所述 待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)之前,還包括計算并存儲乂<formula>formula see original document page 6</formula>,其中,其中,所述X為不大于(2n-l)的自然數(shù),所述2n為Booth算法 的基,所述N為模數(shù),所述r等于2n',所述n,為對所述模數(shù)N進(jìn)行位擴(kuò)展 后的位數(shù),且所述n,為基于Booth算法的基的二進(jìn)制位數(shù)的倍數(shù);在將所述待處理的模冪運(yùn)算轉(zhuǎn)化為模乘運(yùn)算的循環(huán)過程中,或者在將所述待 處理的模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán)過程中,當(dāng)需要用到所述X*N、 r2modN,讀取所存儲的X*N、 r2modN代入計算。
全文摘要
本發(fā)明涉及計算機(jī)領(lǐng)域,本發(fā)明實(shí)施例公開了一種模乘運(yùn)算的處理方法、數(shù)據(jù)加解密處理的方法、裝置,該模乘運(yùn)算的處理方法包括確定待處理的模乘運(yùn)算;將模乘運(yùn)算轉(zhuǎn)化為加法運(yùn)算的循環(huán);在每次進(jìn)行所述加法運(yùn)算過程中,將該加法運(yùn)算中的加數(shù)、被加數(shù)分別按照從低位到高位的順序、等位數(shù)地分塊,分別得到所述加數(shù)、被加數(shù)的各對應(yīng)子塊,各加法處理器分別對所述加數(shù)、被加數(shù)的各對應(yīng)子塊進(jìn)行加法運(yùn)算獲取各對應(yīng)子塊的運(yùn)算結(jié)果,根據(jù)各對應(yīng)子塊的運(yùn)算結(jié)果,獲取所述加數(shù)、被加數(shù)的加法運(yùn)算的結(jié)果;在所述加法運(yùn)算的循環(huán)結(jié)束后,根據(jù)所述加法運(yùn)算的循環(huán)結(jié)果獲取所述模乘運(yùn)算的結(jié)果。應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案能夠提高運(yùn)算速度,提高運(yùn)算處理效率。
文檔編號G06F7/72GK101216754SQ200710032940
公開日2008年7月9日 申請日期2007年12月27日 優(yōu)先權(quán)日2007年12月27日
發(fā)明者劉軍林, 張永強(qiáng), 凡 林 申請人:廣州杰賽科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
静安区| 苗栗市| 巴东县| 汾西县| 洛扎县| 工布江达县| 揭阳市| 库车县| 昌吉市| 石楼县| 福建省| 永胜县| 乌审旗| 丰台区| 福贡县| 大安市| 札达县| 望奎县| 天门市| 同德县| 老河口市| 西吉县| 桑日县| 綦江县| 麻江县| 红河县| 长顺县| 宿迁市| 博野县| 隆尧县| 什邡市| 新沂市| 刚察县| 光泽县| 凉山| 太湖县| 安福县| 漳平市| 台湾省| 彭山县| 龙川县|