一種rsa模冪運算方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)安全的技術(shù)領(lǐng)域,特別涉及一種RSA模冪運算方法和裝置。
【背景技術(shù)】
[0002]在現(xiàn)有的RSA公鑰加密算法模冪運算中,對底數(shù)m加入了隨機(jī)化掩碼,使實際參與模冪運算的底數(shù)由已知變成未知,由固定變成可變,從而避免功耗分析攻擊。
[0003]例如,在解密或簽名運算執(zhí)行前,選擇一個隨機(jī)的數(shù)字對(Vi, Vd),使其滿足Vd =(Vr1)dIi1d N,將作為明文的底數(shù)m進(jìn)行隨機(jī)化掩蓋后的偽底數(shù)為:m’= InViIi1d N,那么在模冪運算結(jié)束后,對m’作為底數(shù)所得到的相應(yīng)模冪運算結(jié)果,即對偽結(jié)果S’進(jìn)行S = S’VdmodN的處理,以恢復(fù)出真實的結(jié)果S。
[0004]通常情況下,為了避免模冪運算,數(shù)字對會選為ΑιΛι.—1),但是由于S’ Vdmod N =(rem) V^od N,因此,在進(jìn)行S = S,Vdmod N運算的處理過程中,涉及到r' (-l)mod N的運算。然而由于計算r~(-l)mod N時間開銷大,會影響RSA加密處理的效率。
[0005]因此,需要提出一種新的RSA模冪運算方法和裝置,以提高RSA加密處理的效率。
【發(fā)明內(nèi)容】
[0006]本發(fā)明解決的問題是提出一種新的RSA模冪運算方法和裝置,能用較小的開銷來實現(xiàn)對RSA的底數(shù)隨機(jī)化,從而避免功耗分析攻擊。
[0007]本發(fā)明的實施例提供了一種RSA模冪運算方法,所述方法包括:獲取信息m、模數(shù)N、隨機(jī)數(shù)r、公鑰e和私鑰d ;計算第一值mO,所述第一值mO為I.6—1和信息m的乘積對N取模后的值;計算第二值ml,所述第二值ml為所述第一值mO和所述隨機(jī)數(shù)r的乘積對N取模后的值;計算第三值SI,所述第三值SI為(ml) η對N取模后的值;獲取信息m對應(yīng)的RSA加密結(jié)果S,所述結(jié)果S為第三值SI和所述第一值mO的乘積對N取模的結(jié)果。
[0008]本發(fā)明的實施例還提供了一種RSA模冪運算裝置,所述裝置包括:獲取單元,用于獲取信息m、模數(shù)N、隨機(jī)數(shù)r、公鑰e和私鑰d ;第一運算單元,用于計算第一值mO,所述第一值mO為f-1和信息m的乘積對N取模后的值;第二運算單元,用于計算第二值ml,所述第二值ml為所述第一值mO和所述隨機(jī)數(shù)r的乘積對N取模后的值;第三運算單元,用于計算第三值SI,所述第三值SI為(ml/—1對N取模后的值;第四運算單元,用于獲取信息m對應(yīng)的RSA加密結(jié)果S,所述結(jié)果S為第三值SI和所述第一值mO的乘積對N取模的結(jié)果。
[0009]與現(xiàn)有技術(shù)相比,本發(fā)明的實施例具有以下優(yōu)點:
[0010]在上述技術(shù)方案中,不僅滿足了 RSA模冪運算的底數(shù)隨機(jī)化的需求,避免對RSA進(jìn)行功耗分析攻擊,而且也不涉及N的運算,也就是說避免了模逆運算,這將節(jié)省RSA加密處理的時間,因此可以提高RSA加密處理的效率。
【附圖說明】
[0011]圖1是本發(fā)明實施例中RSA模冪運算方法的流程圖;
[0012]圖2是本發(fā)明實施例中RSA模冪運算裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0013]為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,下面結(jié)合附圖對本發(fā)明的【具體實施方式】做詳細(xì)的說明。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是本發(fā)明還可以采用其他不同于在此描述的其它方式來實施,因此本發(fā)明不受下面公開的具體實施例的限制。
[0014]圖1是本發(fā)明實施例中RSA模冪運算方法的流程圖。如圖1所示,所述方法包括步驟SlOl至S105。
[0015]步驟S101,獲取信息m、模數(shù)N、隨機(jī)數(shù)r、公鑰e和私鑰d。
[0016]在本發(fā)明的實施例中,所述隨機(jī)數(shù)r是隨機(jī)的、可變的,也就是說,在每次RSA模冪運算過程中,所述隨機(jī)數(shù)r可以發(fā)生變化。加入所述隨機(jī)數(shù)r的目的是為了使得后續(xù)進(jìn)行RSA模冪運算的底數(shù)是一個隨機(jī)化的結(jié)果,這消除了算法執(zhí)行過程中的信息m和泄露信息(隨機(jī)化后的底數(shù)相關(guān)的信息)之間的對應(yīng)關(guān)系,從而使得攻擊者很難直接獲取信息m。
[0017]步驟S102,計算第一值m0,所述第一值mO為I.6—1和信息m的乘積對N取模后的值。
[0018]在本發(fā)明的實施例中,通過所述步驟S102,所述第一值為mO = (re_1.m)mod N。
[0019]步驟S103,計算第二值ml,所述第二值ml為所述第一值mO和所述隨機(jī)數(shù)r的乘積對N取模后的值。
[0020]在本發(fā)明的實施例中,通過所述步驟S103,所述第二值ml為所述第一值mO和所述隨機(jī)數(shù)r的乘積對N取模后的值,那么所述第二值為ml = (m0.r)mod N。
[0021]步驟S104,計算第三值SI,所述第三值SI為Hiltw對N取模后的值;
[0022]在本發(fā)明的實施例中,通過所述步驟S104,獲得的第三值SI為:S1 = ml^'mod N。
[0023]步驟S105,獲取信息m對應(yīng)的RSA加密結(jié)果S,所述結(jié)果S為第三值SI和所述第一值mO的乘積對N取模的結(jié)果。
[0024]在本發(fā)明的實施例中,通過所述步驟S105,獲取信息m對應(yīng)的RSA加密結(jié)果S為:S = (S1.m0)mod N。
[0025]需要說明的是,一方面,在計算第一值mO、第二值ml和第三值SI的時候都不涉及r^mod N的運算。Pmod N的運算主要有兩種方法:一種為通過擴(kuò)展的歐幾里得算法,然而這需要額外的硬件電路;另一種是利用費馬小定理來計算,但是時間開銷較大。從以上運算過程可以看出,在本發(fā)明的實施例中,不涉及i^mod N的運算,因此可以為RSA加密運算帶來較大的便捷,從而提高了加密效率。
[0026]另一方面,根據(jù)RSA加密算法的固有性質(zhì):redmod N = r,那么可以進(jìn)行如下推導(dǎo):
[0027]S = mdmod N = redmdr_1mod N = (rem) dr_1mod N
[0028]進(jìn)一步進(jìn)行如下推導(dǎo):
[0029]S= (rem) dr_1mod N = ( (rem)N
[0030]令(re_1m)modN 等于 mO, (m0.r)mod N 等于 ml, mlHmod N 等于 SI,可以獲得:
[0031]S= (rem) dr_1mod N = (N= (ml) d_1m0mod N
[0032]根據(jù)上述推到可知,所述底數(shù)隨機(jī)化后的RSA模冪運算結(jié)果和隨機(jī)化前的RSA模冪運算結(jié)果仍然保持一致。
[0033]本發(fā)明的實施例還提供了一種RSA模冪運算裝置,請參考圖2,所述RSA模冪運算裝置200包括:
[0034]獲取單元210,用于獲取信息m、模數(shù)N、隨機(jī)數(shù)r、公鑰e和私鑰d ;
[0035]第一運算單元220,用于計算第一值m0,所述第一值mO為I.6—1和信息m的乘積對N取模后的值;
[0036]第二運算單元230,用于計算第二值ml,所述第二值ml為所述第一值和所述隨機(jī)數(shù)r的乘積對N取模后的值;
[0037]第三運算單元240,用于計算第三值SI,所述第三值SI為!!!廣1對N取模后的值;
[0038]第四運算單元250,用于獲取信息m對應(yīng)的RSA加密結(jié)果S,所述結(jié)果S為第三值SI和所述第一值mO的乘積對N取模的結(jié)果。
[0039]在本發(fā)明的實施例中,所述第一運算單元220包括模冪運算器和模乘運算器,所述第二運算單元230可以為模乘運算器,所述第三運算單元240可以為模冪運算器,所述第四運算單元250可以為模乘運算器。
[0040]本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0041 ] 雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。
【主權(quán)項】
1.一種RSA模冪運算方法,其特征在于,包括: 獲取信息m、模數(shù)N、隨機(jī)數(shù)r、公鑰e和私鑰d ; 計算第一值mO,所述第一值mO為廣1和信息m的乘積對N取模后的值; 計算第二值ml,所述第二值ml為所述第一值mO和所述隨機(jī)數(shù)r的乘積對N取模后的值; 計算第三值SI,所述第三值SI為(ml) η對N取模后的值; 獲取信息m對應(yīng)的RSA加密結(jié)果S,所述結(jié)果S為第三值SI和所述第一值mO的乘積對N取模的結(jié)果。
2.—種RSA模冪運算裝置,其特征在于,包括: 獲取單元,用于獲取信息m、模數(shù)N、隨機(jī)數(shù)r、公鑰e和私鑰d ; 第一運算單元,用于計算第一值mO,所述第一值mO為I.6—1和信息m的乘積對N取模后的值; 第二運算單元,用于計算第二值ml,所述第二值ml為所述第一值mO和所述隨機(jī)數(shù)r的乘積對N取模后的值; 第三運算單元,用于計算第三值SI,所述第三值SI為(ml) η對N取模后的值;第四運算單元,用于獲取信息m對應(yīng)的RSA加密結(jié)果S,所述結(jié)果S為第三值SI和所述第一值mO的乘積對N取模的結(jié)果。
【專利摘要】本發(fā)明提供了一種RSA模冪運算方法和裝置,其中,所述方法包括:獲取信息m、模數(shù)N、隨機(jī)數(shù)r、公鑰e和私鑰d;計算第一值m0,所述第一值m0為re-1和信息m的乘積對N取模后的值;計算第二值m1,所述第二值m1為所述第一值m0和所述隨機(jī)數(shù)r的乘積對N取模后的值;計算第三值S1,所述第三值S1為(m1)d-1對N取模后的值;獲取信息m對應(yīng)的RSA加密結(jié)果S,所述結(jié)果S為第三值S1和所述第一值m0的乘積對N取模的結(jié)果。所述方法和裝置能用較小的開銷來實現(xiàn)對RSA的底數(shù)隨機(jī)化,從而避免功耗分析攻擊。
【IPC分類】H04L9-30
【公開號】CN104660399
【申請?zhí)枴緾N201310608755
【發(fā)明人】王立輝, 張志敏, 鄭業(yè)揚, 閆守禮, 魏長征, 郭麗敏
【申請人】上海復(fù)旦微電子集團(tuán)股份有限公司
【公開日】2015年5月27日
【申請日】2013年11月25日