本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,具體涉及一種大素?cái)?shù)的測(cè)試方法及裝置。
背景技術(shù):
目前,攻擊者一般可以通過(guò)采集密碼系統(tǒng)、加密芯片等硬件設(shè)備在進(jìn)行加密、解密或簽名操作時(shí)所泄露的功耗等信息,利用密碼學(xué)、概率、統(tǒng)計(jì)學(xué)原理,分析和破譯密鑰信息。
例如,在利用RSA公鑰加密算法進(jìn)行密鑰生成操作的硬件設(shè)備中,攻擊者可以通過(guò)采集大素?cái)?shù)判斷過(guò)程中產(chǎn)生的功耗信息,來(lái)推測(cè)出所產(chǎn)生的素?cái)?shù),從而可以破解該硬件設(shè)備的密鑰。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問(wèn)題是如何提高需要秘密產(chǎn)生大素?cái)?shù)的設(shè)備的安全性。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種大素?cái)?shù)的測(cè)試方法,所述方法包括:
獲取待測(cè)試的奇數(shù)w,其中,w=1+2am,m為奇數(shù),a為滿足w=1+2am的最大整數(shù)值,w為正整數(shù);
根據(jù)循環(huán)因子j的值及第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試,包括:
獲取隨機(jī)數(shù)b及r,1<b<w,且b及r均為正整數(shù);計(jì)算第一值y,所述第一值y為包含所述隨機(jī)數(shù)r的數(shù)學(xué)式;令循環(huán)因子j初始值等于0,計(jì)算第二值z(mì),所述第二值z(mì)為對(duì)by進(jìn)行運(yùn)算后的值,j為整數(shù)且j≥0;依次增加所述循環(huán)因子j的值,并根據(jù)所述循環(huán)因子j的值及所述第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行第i次拉賓米勒測(cè)試,i為正整數(shù);當(dāng)所述待測(cè)試的奇數(shù)w通過(guò)預(yù)設(shè)次數(shù)的拉賓米勒測(cè)試時(shí),判定所述待測(cè)試的奇數(shù)w為大素?cái)?shù)。
可選地,所述第一值y=r*m。
可選地,所述第一值y=m+r(w-1)。
可選地,所述第一值y=m-r;
所述計(jì)算第二值z(mì),包括:計(jì)算第三值x1,所述第三值x1為bm-r再對(duì)所述待測(cè)試的素?cái)?shù)w取模后的值;計(jì)算第四值x2,所述第四值x2=br mod w;將所述第三值x1與第四值x2的乘積再對(duì)所述待測(cè)試的奇數(shù)w取模后的值作為所述第二值z(mì)。
本發(fā)明實(shí)施例還提供了一種加/解密算法中大素?cái)?shù)的測(cè)試裝置,所述裝置包括:
獲取單元,適于獲取待測(cè)試的奇數(shù)w,其中,w=1+2am,m為奇數(shù),a為滿足w=1+2am的最大整數(shù)值,w正整數(shù);
測(cè)試單元,適于根據(jù)循環(huán)因子j的值及第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試,包括:
獲取子單元,適于獲取隨機(jī)數(shù)b及r,1<b<w,且b及r均為正整數(shù);
第一計(jì)算子單元,適于計(jì)算第一值y,所述第一值y為包含所述隨機(jī)數(shù)r的數(shù)學(xué)式;
第二計(jì)算子單元,適于令循環(huán)因子j初始值等于0,計(jì)算第二值z(mì),所述第二值z(mì)為對(duì)by進(jìn)行運(yùn)算后的值;
測(cè)試子單元,適于依次增加所述循環(huán)因子j的值,并根據(jù)所述循環(huán)因子j的值及所述第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行第i次拉賓米勒測(cè)試,并在所述待測(cè)試的奇數(shù)w通過(guò)預(yù)設(shè)次數(shù)的拉賓米勒測(cè)試時(shí),判定所述待測(cè)試的奇數(shù)w為大素?cái)?shù),i為正整數(shù)。
可選地,所述第一計(jì)算子單元適于將r*m的值作為所述第一值y。
可選地,所述第一計(jì)算子單元適于將m+r(w-1)的值作為所述第一值y。
可選地,所述第一計(jì)算子單元適于將m-r的值作為所述第一值y;
所述第二計(jì)算子單元包括:第一計(jì)算模塊,適于計(jì)算第三值x1,所述第 三值x1=bm-r mod w;第二計(jì)算模塊,適于計(jì)算第四值x2,所述第四值x2=br mod w;第三計(jì)算模塊,適于將所述第三值x1與第四值x2的乘積再對(duì)所述待測(cè)試的大素?cái)?shù)w取模后的值作為所述第二值z(mì)。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下有益效果:
在根據(jù)循環(huán)因子j的值及第二值z(mì),對(duì)待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試時(shí),通過(guò)計(jì)算第一值y,進(jìn)而可以根據(jù)所述第一值y計(jì)算第二值z(mì),最終根據(jù)循環(huán)因子j的值及第二值z(mì)對(duì)待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試。由于所述第一值y為包含隨機(jī)數(shù)r的數(shù)學(xué)式,從而可以在每次計(jì)算第二值z(mì)時(shí),隨機(jī)數(shù)b的指數(shù)都是變化的,因此可以防止攻擊者采用功耗分析的方法推測(cè)出奇數(shù)w,也就可以防止攻擊者破解密鑰,有效提高需要秘密產(chǎn)生大素?cái)?shù)的設(shè)備的安全性。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例中一種加/解密算法中大素?cái)?shù)的測(cè)試方法流程圖;
圖2是本發(fā)明實(shí)施例中一種拉賓米勒測(cè)試方法流程圖;
圖3是本發(fā)明實(shí)施例中一種加/解密算法中大素?cái)?shù)的測(cè)試裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
目前,在通過(guò)拉賓米勒測(cè)試方法來(lái)測(cè)試大素?cái)?shù)w是否為大素?cái)?shù)時(shí),通常需要進(jìn)行多次的模冪運(yùn)算。由于多次模冪運(yùn)算的指數(shù)絕大部分高比特位會(huì)相同,因此,攻擊者通??梢岳霉姆治龅姆绞剑瑏?lái)獲得模冪運(yùn)算指數(shù)的高比特位,從而推測(cè)出所述奇數(shù)w,最終破解密鑰,導(dǎo)致需要秘密產(chǎn)生大素?cái)?shù)的設(shè)備的安全性較低。
針對(duì)上述問(wèn)題,本發(fā)明實(shí)施例提供了一種加/解密算法中大素?cái)?shù)的判斷方法,應(yīng)用所述方法,在根據(jù)循環(huán)因子j的值及第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試時(shí),由于模冪運(yùn)算的指數(shù)即第一值y為包含隨機(jī)數(shù)r的數(shù)學(xué)式,因此可以使得每次模冪運(yùn)算的指數(shù)均不同,以此來(lái)防止攻擊者可以利用功耗分析的方式推測(cè)出所述奇數(shù)w,有效提高秘密產(chǎn)生大素?cái)?shù)的設(shè)備的安 全性。
為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)地說(shuō)明。
如圖1所示,本發(fā)明實(shí)施例提供了一種加/解密算法中大素?cái)?shù)的測(cè)試方法,所述方法可以包括如下步驟:
步驟11,獲取待測(cè)試的奇數(shù)w,其中,w=1+2am,m為奇數(shù),a為滿足w=1+2am的最大整數(shù)值,w為正整數(shù)。
在具體實(shí)施中,所獲取到的待測(cè)試的奇數(shù)w通常較大,具體數(shù)值不受限制,只要滿足w=1+2am即可。
步驟12,根據(jù)循環(huán)因子j的值及第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試。
如圖2所示,在本發(fā)明的一實(shí)施例中,可以采用如下方法對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試,所述方法包括:
步驟20,獲取隨機(jī)數(shù)b及r,1<b<w,且b及r均為正整數(shù)。
在每次拉賓米勒測(cè)試過(guò)程中,均會(huì)產(chǎn)生隨機(jī)數(shù)b及r。
步驟21,計(jì)算第一值y。
在具體實(shí)施中,所述第一值y為包含所述隨機(jī)數(shù)r的數(shù)學(xué)式??梢岳斫獾氖?,所述包含所述隨機(jī)數(shù)r的數(shù)學(xué)式可以存在多種表現(xiàn)形式,例如,y=r*m,y=m+r(w-1),y=m-r等等,只要當(dāng)w為素?cái)?shù)時(shí),根據(jù)所述第一值y可以推導(dǎo)得出第二值z(mì)=bm mod w即可。由于所述第一值y中帶有隨機(jī)數(shù)r,因此,在將所述第一值y作為隨機(jī)數(shù)b的指數(shù)參與運(yùn)算時(shí),可以使得隨機(jī)數(shù)b的指數(shù)隨機(jī)化,也就可以使得每次模冪運(yùn)算時(shí)的指數(shù)不同,從而可以達(dá)到防止攻擊的目的。
步驟22,令循環(huán)因子j初始值等于0,計(jì)算第二值z(mì),所述第二值z(mì)為對(duì)by進(jìn)行運(yùn)算后的值,j為整數(shù)且j≥0。
在具體實(shí)施中,當(dāng)j=0時(shí),計(jì)算第二值z(mì)。其中,所述第二值z(mì)可以為對(duì)by進(jìn)行運(yùn)算后的值。例如,當(dāng)y=r*m或y=m+r(w-1)時(shí),z=by mod w。當(dāng) y=m-r時(shí),可以先計(jì)算第三值x1,再計(jì)算第四值x2,再將所述第三值x1與第四值x2的乘積再對(duì)w取模后的值作為所述第二值z(mì),其中,x1=bm-r mod w,x2=br mod w,z=x1*x2mod w。當(dāng)y為其他數(shù)學(xué)式時(shí),可以參照上述方法對(duì)by進(jìn)行運(yùn)算,只要當(dāng)w為素?cái)?shù)時(shí),對(duì)by進(jìn)行運(yùn)算后的結(jié)果為bm mod w即可。
依次增加所述循環(huán)因子j的值,并根據(jù)所述循環(huán)因子j的值及所述第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行第i次拉賓米勒測(cè)試。具體地,當(dāng)j=0且z=1,或z=w-1,執(zhí)行步驟23。當(dāng)j>0且z=1時(shí),執(zhí)行步驟24。其他情況下,即除執(zhí)行步驟23及24外的情況下,執(zhí)行步驟26。
步驟23,判斷i是否小于預(yù)設(shè)次數(shù)n。
當(dāng)i<n時(shí),執(zhí)行步驟28,進(jìn)行第i+1次測(cè)試,否則執(zhí)行步驟29。
步驟24,判定所述待測(cè)試的奇數(shù)w非大素?cái)?shù)。
步驟25,j=j(luò)+1。
步驟26,判斷j是否小于a。
當(dāng)j<a時(shí),執(zhí)行步驟27,否則執(zhí)行步驟24。
步驟27,令z=z2mod w。
步驟28,i++。
步驟29,判定所述待測(cè)試的奇數(shù)w為大素?cái)?shù)。
執(zhí)行步驟27后,繼續(xù)根據(jù)所述循環(huán)因子j的值及所述第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行第i次拉賓米勒測(cè)試。
需要說(shuō)明的是,本發(fā)明實(shí)施例中所述大素?cái)?shù)的測(cè)試方法,既可以適用于應(yīng)用RSA算法產(chǎn)生密鑰的過(guò)程中,也可以適用于其它需要秘密產(chǎn)生大素?cái)?shù)的應(yīng)用中。具體無(wú)論將所述大素?cái)?shù)的測(cè)試方法如何應(yīng)用,均不構(gòu)成對(duì)本發(fā)明的限制,且均在本發(fā)明的保護(hù)范圍之內(nèi)。
由上述內(nèi)容可知,由于模冪運(yùn)算的指數(shù)即第一值y為包含所述隨機(jī)數(shù)r的數(shù)學(xué)式,因此可以使得每次模冪運(yùn)算的指數(shù)均不同,由此可以防止攻擊者可以利用功耗分析的方式推測(cè)出所述奇數(shù)w,有效提高需要秘密產(chǎn)生大素?cái)?shù) 的設(shè)備的安全性。
為了使本領(lǐng)域技術(shù)人員更好地理解和實(shí)現(xiàn)本發(fā)明,以下對(duì)上述加/解密算法中大素?cái)?shù)的測(cè)試方法對(duì)應(yīng)的裝置進(jìn)行詳細(xì)描述。
如圖3所示,本發(fā)明實(shí)施例還提供了一種大素?cái)?shù)的測(cè)試裝置。所述裝置可以包括獲取單元31以及測(cè)試單元32。其中,所述獲取單元31適于獲取待測(cè)試的奇數(shù)w,其中,w=1+2am,m為奇數(shù),a為滿足w=1+2am的最大整數(shù)值,w為正整數(shù)。所述測(cè)試單元32根據(jù)循環(huán)因子j的值及第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行拉賓米勒測(cè)試。
在具體實(shí)施中,所述測(cè)試單元32可以包括:獲取子單元321,第一計(jì)算子單元322,第二計(jì)算子單元323以及測(cè)試子單元324。其中:
所述獲取子單元321適于獲取隨機(jī)數(shù)b及r,1<b<w,且b及r均為正整數(shù)。所述第一計(jì)算子單元322適于計(jì)算第一值y,所述第一值y為包含所述隨機(jī)數(shù)r的數(shù)學(xué)式。所述第二計(jì)算子單元323適于令循環(huán)因子j初始值等于0,計(jì)算第二值z(mì),所述第二值z(mì)為對(duì)by進(jìn)行運(yùn)算后的值。所述測(cè)試子單元324適于依次增加所述循環(huán)因子j的值,并根據(jù)所述循環(huán)因子j的值及所述第二值z(mì),對(duì)所述待測(cè)試的奇數(shù)w執(zhí)行第i次拉賓米勒測(cè)試,并在所述待測(cè)試的奇數(shù)w通過(guò)預(yù)設(shè)次數(shù)的拉賓米勒測(cè)試時(shí),判定所述待測(cè)試的素?cái)?shù)w為大素?cái)?shù),i為正整數(shù)。
在具體實(shí)施中,所述第一計(jì)算子單元322可以令所述第一值y=r*m,也可以令所述第一值y=m+r(w-1),還可以令所述第一值y=m-r。
當(dāng)y=r*m或y=m+r(w-1)時(shí),所述第二計(jì)算子單元323適于將bymod w的值作為所述第二值z(mì)。當(dāng)y=m-r時(shí),所述第二計(jì)算子單元323可以包括:第一計(jì)算模塊、第二計(jì)算模塊以及第三計(jì)算模塊(未示出)。其中,所述第一計(jì)算模塊適于計(jì)算第三值x1,其中,x1=bm-r mod w。所述第二計(jì)算模塊適于計(jì)算第四值x2,其中,x2=br mod w。所述第三計(jì)算模塊適于將所述第三值x1與第四值x2的乘積再對(duì)w取模后的值作為所述第二值z(mì),即z=x1*x2mod w。
需要說(shuō)明的是,所述第一值y還可以為具有其他表現(xiàn)形式的數(shù)學(xué)式,此處不作限制,只要當(dāng)w為素?cái)?shù)時(shí),根據(jù)所述第一值y可以推導(dǎo)得出第二值z(mì)=bm mod w即可。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。