一種rsa模冪運算方法和裝置的制造方法
【技術領域】
[0001]本發明涉及數據安全的技術領域,特別涉及一種RSA模冪運算方法和裝置。
【背景技術】
[0002]在現有技術中,攻擊者一般可以通過采集密碼系統、加密芯片等硬件設備在進行加密、解密或簽名操作時產生的功耗等泄露信息,利用密碼學、概率、統計學原理、分析和破譯密鑰信息。例如,在RSA公鑰加密算法的模冪運算方法中,當密鑰d直接作為模冪運算的指數進行運算時,攻擊者便可能通過上述分析直接獲取所述密鑰d,并通過所述密鑰d破譯被加密的數據。
[0003]因此,需要提出一種新的RSA模冪運算方法和裝置,以提高數據的安全性。
【發明內容】
[0004]本發明解決的問題是提出一種新的RSA模冪運算方法和裝置,以提高數據的安全性。
[0005]本發明的實施例提供了一種RSA模冪運算方法,所述方法包括:獲取隨機數r、公鑰e和私鑰d ;計算第一值,所述第一值為公鑰e和私鑰d的乘積減去I后的值;計算第二值,所述第二值為所述隨機數r和所述第一值的乘積;計算第三值,所述第三值為所述第二值和私鑰d的和;將所述第三值作為RSA模冪運算的指數進行所述RSA模冪運算。
[0006]本發明的實施例還提供了一種RSA模冪運算裝置,所述裝置包括:獲取單元,用于獲取隨機數r、公鑰e和私鑰d ;第一運算單元,用于計算第一值,所述第一值為公鑰e和私鑰d的乘積減去I后的值;第二運算單元,用于計算第二值,所述第二值為所述隨機數r和所述第一值的乘積;第三運算單元,用于計算第三值,所述第三值為所述第二值和私鑰d的和;模冪運算單元,用于將所述第三值作為RSA模冪運算的指數進行所述RSA模冪運算。
[0007]與現有技術相比,本發明的實施例具有以下優點:
[0008]在上述技術方案中,私鑰d并沒有直接作為RSA模冪運算的指數,而是通過加入了隨機數r,將所述私鑰d進行隱藏,從而消除了算法執行過程中的中間值和泄露信息之間的對應關系,也就是說攻擊者很難直接獲取私鑰d,因此也就不容易對加密數據進行破解,故可以提高數據的安全性。
【附圖說明】
[0009]圖1是本發明實施例中RSA模冪運算方法的流程圖;
[0010]圖2是本發明實施例中RSA模冪運算裝置的結構示意圖。
【具體實施方式】
[0011]為詳細說明本發明的技術內容、構造特征、所實現目的及效果,下面結合附圖對本發明的【具體實施方式】做詳細的說明。在下面的描述中闡述了很多具體細節以便于充分理解本發明,但是本發明還可以采用其他不同于在此描述的其它方式來實施,因此本發明不受下面公開的具體實施例的限制。
[0012]圖1是本發明實施例中RSA模冪運算方法的流程圖。如圖1所示,所述方法包括步驟SlOl至S105。
[0013]步驟SlOl,獲取隨機數r、公鑰e和私鑰d。
[0014]在本發明的實施例中,所述隨機數r是可變隨機數,也就是說,在每次RSA模冪運算過程中,所述隨機數r可以發生變化。加入所述隨機數r的目的是為了使后續進行RSA模冪運算的指數是一個隨機化的結果,這消除了算法執行過程中的中間值(私鑰d)和泄露信息(隨機化后的指數相關的信息)之間的對應關系,從而使得攻擊者很難直接獲取私鑰山因此也就不容易對加密數據進行破解。
[0015]下面將通過步驟S102至S104來獲取隨機化后的RSA模冪運算的指數。
[0016]步驟S102,計算第一值,所述第一值為公鑰e和私鑰d的乘積減去I后的值。
[0017]通過步驟S102,獲得的第一值為ed-1。
[0018]步驟S103,計算第二值,所述第二值為所述隨機數r和所述第一值的乘積。
[0019]通過步驟S103,所述第二值為所述隨機數r和所述第一值ed-Ι的乘積,S卩:所述第二值為r (ed-Ι)。
[0020]步驟S104,計算第三值,所述第三值為所述第二值和私鑰d的和。
[0021]通過步驟S104,所述第三值為所述第二值r (ed-Ι)和私鑰d的和,即:所述第三值為 d+r (ed-1)。
[0022]步驟S105,將所述第三值作為RSA模冪運算的指數進行所述RSA模冪運算。
[0023]在本發明的實施例中,通過步驟S104,將第三值d+r (ed_l)作為RSA模冪運算的指數。那么,以所述第三值為指數的RSA模冪運算得到的值為:S = md+r (ed-°mod N。
[0024]如前所述,一方面,以所述第三值為指數,所述指數中帶有隨機數r,這消除了算法執行過程中的中間值(私鑰d)和泄露信息(隨機化后的指數相關的信息)之間的對應關系,從而使得攻擊者很難直接獲取私鑰d。
[0025]另一方面,根據RSA加解密算法的固有性質:med)mod N = m,可以進行如下推導:,
[0026]S = md+r (ed_nmod N = (mdmredm_r) mod N = (mdmrm_1) mod N = mdmod N,
[0027]由上述推到可知,所述指數隨機化后的RSA模冪運算結果和隨機化前的RSA模冪運算結果仍然保持一致。
[0028]本發明的實施例還提供了一種RSA模冪運算裝置。請參考圖2,所述種RSA模冪運算裝置200包括:
[0029]獲取單元210,用于獲取隨機數r、公鑰e和私鑰d ;
[0030]第一運算單元220,用于計算第一值,所述第一值為公鑰e和私鑰d的乘積減去I后的值;
[0031]第二運算單元230,用于計算第二值,所述第二值為所述隨機數r和所述第一值的乘積;
[0032]第三運算單元240,用于計算第三值,所述第三值為所述第二值和私鑰d的和;
[0033]模冪運算單元250,用于將所述第三值作為RSA模冪運算的指數進行所述RSA模冪運算。
[0034]在本發明的實施例中,所述第一運算單元220可以包括乘法器和減法器,所述第二運算單元230可以為乘法器,所述第三運算單元240可以為加法器,所述模冪運算單元250可以為模冪運算器。
[0035]本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:ROM、RAM、磁盤或光盤等。
[0036]雖然本發明披露如上,但本發明并非限定于此。任何本領域技術人員,在不脫離本發明的精神和范圍內,均可作各種更動與修改,因此本發明的保護范圍應當以權利要求所限定的范圍為準。
【主權項】
1.一種RSA模冪運算方法,其特征在于,包括:獲取隨機數r、公鑰e和私鑰d ;計算第一值,所述第一值為公鑰e和私鑰d的乘積減去I后的值;計算第二值,所述第二值為所述隨機數r和所述第一值的乘積;計算第三值,所述第三值為所述第二值和私鑰d的和;將所述第三值作為RSA模冪運算的指數進行所述RSA模冪運算。
2.—種RSA模冪運算裝置,其特征在于,包括:獲取單元,用于獲取隨機數r、公鑰e和私鑰d ;第一運算單元,用于計算第一值,所述第一值為公鑰e和私鑰d的乘積減去I后的值;第二運算單元,用于計算第二值,所述第二值為所述隨機數r和所述第一值的乘積;第三運算單元,用于計算第三值,所述第三值為所述第二值和私鑰d的和;模冪運算單元,用于將所述第三值作為RSA模冪運算的指數進行所述RSA模冪運算。
【專利摘要】本發明提供了一種RSA模冪運算方法和裝置,其中,所述方法包括:獲取隨機數r、公鑰e和私鑰d;計算第一值,所述第一值為公鑰e和私鑰d的乘積減去1后的值;計算第二值,所述第二值為所述隨機數r和所述第一值的乘積;計算第三值,所述第三值為所述第二值和私鑰d的和;將所述第三值作為RSA模冪運算的指數進行所述RSA模冪運算。所述方法和裝置能夠提高數據的安全性。
【IPC分類】H04L9-30
【公開號】CN104660400
【申請號】CN201310608764
【發明人】王立輝, 張志敏, 鄭業揚, 閆守禮, 單偉君, 劉丹
【申請人】上海復旦微電子集團股份有限公司
【公開日】2015年5月27日
【申請日】2013年11月25日