專利名稱:Rsa模冪電路及rsa安全加密芯片的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路,特別是涉及RSA安全加密芯片。
背景技術(shù):
RSA安全加密芯片廣泛應(yīng)用于社會(huì)各個(gè)領(lǐng)域,例如智能卡和銀行口令卡。因此,保護(hù)芯片中的秘密信息具有極其重大的意義。RSA公鑰加密算法是一種非常著名且應(yīng)用廣泛的公鑰系統(tǒng)。RSA的安全性的基礎(chǔ)是大整數(shù)的素因子難以求解,至今任然沒(méi)有人提出有效的數(shù)學(xué)方法來(lái)有效的解決這一個(gè)問(wèn)題。目前,針對(duì)安全芯片實(shí)施旁路攻擊成為竊取芯片中密鑰的一種常見(jiàn)手段。功耗分析是旁路攻擊中的一種,它對(duì)安全芯片構(gòu)成極大的威脅。Kocher等人提出了簡(jiǎn)單功耗分析,并于之后被人成功使用功耗分析攻擊RSA算法。簡(jiǎn)單功耗攻擊是一種簡(jiǎn)單的攻擊方法,它要求攻擊者熟悉密碼算法實(shí)現(xiàn)的具體過(guò)程。在密碼部件運(yùn)行時(shí),攻擊者對(duì)部件的功耗情況進(jìn)行采樣來(lái)獲取功耗軌跡曲線。然后,攻擊者就能通過(guò)曲線猜測(cè)部件在特定的時(shí)間段進(jìn)行什么操作以及這些操作所涉及的參數(shù)。模乘操作是RSA公鑰加密算法中非常重要的步驟。加密部件進(jìn)行模乘運(yùn)算時(shí)會(huì)產(chǎn)生較大的功耗。RSA算法根據(jù)密鑰每一位的取值來(lái)判斷是否進(jìn)行模乘操作,那么攻擊者通過(guò)分析功耗軌跡曲線,就能判斷加密部件是否進(jìn)行模乘操作,從而輕易的竊取沒(méi)有任何防護(hù)的RSA部件中的密鑰。在模冪算法中引入冗余操作或者虛假操作成為一種抵抗功耗分析的方法。它通過(guò)冗余操作來(lái)產(chǎn)生額外的功耗,使得模冪運(yùn)算不會(huì)因?yàn)槊荑€指數(shù)的各位的差異在功耗曲線顯現(xiàn)出來(lái)。但是,這種方法會(huì)受到一種稱為安全錯(cuò)誤的手段的攻擊。由于冗余運(yùn)算的結(jié)果不會(huì)影響模冪結(jié)果的正確性,那么人為的造成冗余運(yùn)算出錯(cuò)也會(huì)得到正確的加密結(jié)果,從而可以切取 鑰??梢?jiàn),現(xiàn)有的RSA安全加密芯片由于針對(duì)硬件實(shí)施旁路攻擊可能被有效地竊取密鑰,從而使密鑰的安全存在隱患。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題在于克服上述現(xiàn)有技術(shù)的不足,而提出一種RSA模冪電路,能夠有效地抵抗功耗分析攻擊和安全錯(cuò)誤攻擊,可以確保RSA安全加密芯片內(nèi)部密鑰的安全。本發(fā)明解決上述技術(shù)問(wèn)題采用的技術(shù)方案包括,提出一種RSA模冪電路,包括:模冪控制器、模乘控制器和脈動(dòng)陣列;其中,模冪控制器可以控制模冪運(yùn)算的整個(gè)過(guò)程,包括模乘控制器的啟動(dòng)以及脈動(dòng)陣列的數(shù)據(jù)輸入輸出;模乘控制器可以控制脈動(dòng)陣列完成模乘運(yùn)算;脈動(dòng)陣列實(shí)現(xiàn)模乘運(yùn)算,并將數(shù)據(jù)輸出給模冪控制器。不論RSA加密的密鑰當(dāng)前比特位是I還是0,該模冪控制器都會(huì)啟動(dòng)該模乘控制器,該模乘控制器都會(huì)控制脈動(dòng)陣列進(jìn)行模乘運(yùn)算。該脈動(dòng)陣列進(jìn)行的是蒙哥馬利模乘運(yùn)算。
該模冪控制器存在有四個(gè)數(shù)據(jù)寄存器CT、Parameter, P和N,其中,數(shù)據(jù)寄存器CT用于存儲(chǔ)模乘運(yùn)算的結(jié)果以及模冪運(yùn)算的結(jié)果,數(shù)據(jù)寄存器P用于存儲(chǔ)明文以及模方運(yùn)算的結(jié)果。該數(shù)據(jù)寄存器N保存的是模乘中的模數(shù);該數(shù)據(jù)寄存器parameter保存的是(2n+2mod N),η為數(shù)據(jù)的二進(jìn)制位數(shù)。η 值為 2048。該數(shù)據(jù)寄存器CT、P、N和parameter均為2049位。在RSA加密的密鑰當(dāng)前比特位是I時(shí),該模冪控制器會(huì)將數(shù)據(jù)寄存器CT、P和N保存的值輸送給該脈動(dòng)陣列,該脈動(dòng)陣列會(huì)將模乘運(yùn)算的結(jié)果返回該模冪控制器的數(shù)據(jù)寄存器CT。在RSA加密的密鑰當(dāng)前比特位是O時(shí),該模冪控制器會(huì)將數(shù)據(jù)寄存器CT、parameter和N保存的值輸送給該脈動(dòng)陣列,該脈動(dòng)陣列會(huì)將模乘運(yùn)算的結(jié)果返回該模冪控制器的數(shù)據(jù)寄存器CT。本發(fā)明解決上述技術(shù)問(wèn)題采用的技術(shù)方案還包括,提出一種RSA安全加密芯片,其包括上述的RSA模冪電路。與現(xiàn)有技術(shù)相比,本發(fā)明的RSA模冪電路及RSA安全加密芯片,能夠有效地抵抗功耗分析攻擊和安全錯(cuò)誤攻擊,可以確保RSA安全加密芯片內(nèi)部密鑰的安全。
圖1是本發(fā)明的RSA模冪電路的結(jié)構(gòu)示意。圖2是本發(fā)明的RSA模冪電路實(shí)施例中的相關(guān)信號(hào)傳遞圖。圖3是本發(fā)明的RSA模冪電路在密鑰當(dāng)前比特位是I時(shí),模冪控制器和脈動(dòng)陣列的數(shù)據(jù)傳遞示意。圖4是本發(fā)明的RSA模冪電路在密鑰當(dāng)前比特位是O時(shí),模冪控制器和脈動(dòng)陣列的數(shù)據(jù)傳遞示意。
具體實(shí)施例方式以下結(jié)合附圖所示之最佳實(shí)施例作進(jìn)一步詳述。參見(jiàn)圖1,本發(fā)明的RSA模冪電路結(jié)構(gòu)大致包括:模冪控制器1、模乘控制器2和脈動(dòng)陣列3三大模塊。其中,模冪控制器I可以控制模冪運(yùn)算的整個(gè)過(guò)程,包括模乘控制器2的啟動(dòng)以及脈動(dòng)陣列3的數(shù)據(jù)輸入輸出。模乘控制器2可以控制脈動(dòng)陣列3完成模乘運(yùn)算。脈動(dòng)陣列3實(shí)現(xiàn)模乘運(yùn)算,并將數(shù)據(jù)輸出給模冪控制器I。優(yōu)選地,該脈動(dòng)陣列3實(shí)現(xiàn)的是蒙哥馬利模乘運(yùn)算。在其他實(shí)施例中,該脈動(dòng)陣列3也可以是實(shí)現(xiàn)其它算法的模乘運(yùn)算。模冪控制器I中設(shè)置有CT、parameter、P、和N四個(gè)數(shù)據(jù)寄存器,其中,CT、P、N和parameter是2049bit的寄存器,數(shù)據(jù)寄存器CT用以保存計(jì)算結(jié)果;數(shù)據(jù)寄存器P初始化為明文并保存模方運(yùn)算的結(jié)果;數(shù)據(jù)寄存器N是常數(shù),為模乘中的模數(shù);數(shù)據(jù)寄存器parameter值設(shè)定為(2n+2 mod N), η等于2048。在一次模冪運(yùn)算中,數(shù)據(jù)寄存器P和N的值不會(huì)發(fā)生變化。在本實(shí)例中規(guī)定的數(shù)據(jù)寄存器長(zhǎng)度和η值均可以隨RSA算法的位長(zhǎng)而變化,例如:當(dāng)RSA算法采用1024位時(shí),上述四個(gè)數(shù)據(jù)寄存器的長(zhǎng)度是1025bit,η是1024 ;當(dāng)RSA算法采用3096位時(shí),上述四個(gè)數(shù)據(jù)寄存器的長(zhǎng)度是3097bit,η是3096。參見(jiàn)圖2所示的本發(fā)明的RSA模冪電路實(shí)施例的信號(hào)傳遞,其中,CT、P、N和parameter為四個(gè)數(shù)據(jù)寄存器,其他的信號(hào)為控制信號(hào)。當(dāng)本發(fā)明的RSA模冪電路初始化時(shí),模冪控制器I中會(huì)寫(xiě)入密鑰,并對(duì)上述四個(gè)寄存器賦初值,數(shù)據(jù)寄存器CT賦值I,數(shù)據(jù)寄存器P為明文,數(shù)據(jù)寄存器N是模數(shù),數(shù)據(jù)寄存器parameter賦值為(2n+2 mod N), η等于2048,接著根據(jù)密鑰各比特位是O還是I,會(huì)將不同
的信號(hào)量置I。當(dāng)運(yùn)算開(kāi)始時(shí),modstart信號(hào)會(huì)被置為1,持續(xù)一個(gè)周期后,被置為O。當(dāng)密鑰當(dāng)前比特位是I時(shí),insel、mul信號(hào)會(huì)被置1,pow信號(hào)置0,模乘控制器2根據(jù)這些信號(hào),輸出信號(hào)inselc置Umulwr置Upowwr置O。模冪控制器I輸出到脈動(dòng)陣列3的數(shù)據(jù)分別是數(shù)據(jù)寄存器CT、P和N的值。當(dāng)脈動(dòng)陣列3完成運(yùn)算后,會(huì)根據(jù)mulwr信號(hào)為I和powwr信號(hào)為0,而將運(yùn)算結(jié)果寫(xiě)入模冪控制器I的CT寄存器。當(dāng)密鑰當(dāng)前比特位是O時(shí),信號(hào)量的賦值均如同上述當(dāng)密鑰當(dāng)前比特位是I時(shí)的賦值,不同的是模冪控制器I輸出到脈動(dòng)陣列3的數(shù)據(jù)分別是數(shù)據(jù)寄存器CT、N和parameter 的值。當(dāng)本發(fā)明的RSA模冪電路完成模方運(yùn)算時(shí),信號(hào)量的賦值為modstart、pow置1,mul、insel置O,模乘控制器2輸出信號(hào)inselc和mulwr置O, powwr置I。模冪控制器I輸出到脈動(dòng)陣列3的數(shù)據(jù)是P、P和N。脈動(dòng)陣列3根據(jù)powwr置Umulwr置0,將運(yùn)算的結(jié)果輸入到寄存器P中。當(dāng)整個(gè)模冪運(yùn)算完成時(shí),moddone信號(hào)會(huì)被置1,持續(xù)一個(gè)周期后,被置為O。模冪控制器I的工作流程包括:
判斷密鑰指數(shù)e的當(dāng)前比特位是否為1,如果是1,執(zhí)行第一種模冪處理,否則,執(zhí)行第
二種模冪處理。參見(jiàn)圖3,執(zhí)行第一種模冪處理時(shí),模冪控制器I將數(shù)據(jù)寄存器CT、P和N中的值輸送到脈動(dòng)陣列3,并且啟動(dòng)模乘控制器2,由模乘控制器2控制脈動(dòng)陣列3的模乘運(yùn)算過(guò)程,模乘運(yùn)算過(guò)程結(jié)束時(shí),模乘運(yùn)算的結(jié)果則會(huì)由脈動(dòng)陣列3輸出到CT,模乘控制器2會(huì)給模冪控制器I發(fā)反向的控制信息。參見(jiàn)圖4,執(zhí)行第二種模冪處理時(shí),模冪控制器I將數(shù)據(jù)寄存器CKparameter和N中的值輸送到脈動(dòng)陣列3,并且啟動(dòng)模乘控制器2,由模乘控制器2控制脈動(dòng)陣列3的模乘運(yùn)算過(guò)程,模乘運(yùn)算過(guò)程結(jié)束時(shí),模乘運(yùn)算的結(jié)果則會(huì)由脈動(dòng)陣列3輸出到CT,模乘控制器2會(huì)給模冪控制器I發(fā)反向的控制信息。本發(fā)明的RSA模冪電路,當(dāng)密鑰當(dāng)前比特位是I時(shí),模乘控制器2和脈動(dòng)陣列3都會(huì)啟動(dòng),數(shù)據(jù)寄存器CT、P和N中的值輸送到脈動(dòng)陣列3中進(jìn)行計(jì)算:CT X P mod N,計(jì)算結(jié)果返回到模冪控制器I的數(shù)據(jù)寄存器CT中。當(dāng)密鑰當(dāng)前比特位是O時(shí),模乘控制器2和脈動(dòng)陣列3也都會(huì)啟動(dòng),數(shù)據(jù)寄存器CT、parameter和N中的值輸送到脈動(dòng)陣列3中進(jìn)行計(jì)算:CT X 2n+2 mod N,計(jì)算結(jié)果返回到模冪控制器I的數(shù)據(jù)寄存器CT中。由于脈動(dòng)陣列3實(shí)現(xiàn)的是蒙哥馬利模乘運(yùn)算,所以CT X 2n+2 mod N運(yùn)算后,數(shù)據(jù)寄存器CT中的值不會(huì)發(fā)生變化,從而不會(huì)影響模冪運(yùn)算的進(jìn)行。
本發(fā)明的RSA模冪電路,對(duì)應(yīng)于密鑰當(dāng)前比特位是I和O時(shí)分別執(zhí)行運(yùn)算CT X Pmod N和CT X 2n+2 mod N,并且這兩種情況下的運(yùn)算結(jié)果都會(huì)存儲(chǔ)到數(shù)據(jù)寄存器CT,因此數(shù)據(jù)寄存器CT在任何時(shí)候出現(xiàn)錯(cuò)誤都將導(dǎo)致最后的模冪結(jié)果出現(xiàn)錯(cuò)誤。本發(fā)明的RSA安全加密芯片,集成有上述的RSA模冪電路。與現(xiàn)有技術(shù)相比,本發(fā)明的RSA模冪電路及RSA安全加密芯片,不論密鑰各位是I還是0,算法都會(huì)啟動(dòng)脈動(dòng)陣列,以使兩種情況產(chǎn)生的功耗大致相同,從而可以有效抵抗功耗分析攻擊;另外,在密鑰位是O時(shí),由于數(shù)據(jù)寄存器CT始終要參加下一輪的循環(huán),一旦出現(xiàn)人為造成的錯(cuò)誤必將導(dǎo)致模冪運(yùn)算的結(jié)果是錯(cuò)誤的,使得引入的虛假操作不會(huì)遭受安全錯(cuò)誤攻擊,從而可以有效抵抗安全錯(cuò)誤攻擊。以上,僅為本發(fā)明之較佳實(shí)施例,意在進(jìn)一步說(shuō)明本發(fā)明,而非對(duì)其進(jìn)行限定。凡根據(jù)上述之文字和附圖所公開(kāi)的內(nèi)容進(jìn)行的簡(jiǎn)單的替換,都在本專利的權(quán)利保護(hù)范圍之列。
權(quán)利要求
1.一種RSA模冪電路,其特征在于,包括:模冪控制器、模乘控制器和脈動(dòng)陣列;其中,模冪控制器可以控制模冪運(yùn)算的整個(gè)過(guò)程,包括模乘控制器的啟動(dòng)以及脈動(dòng)陣列的數(shù)據(jù)輸入輸出;模乘控制器可以控制脈動(dòng)陣列完成模乘運(yùn)算;脈動(dòng)陣列實(shí)現(xiàn)模乘運(yùn)算,并將數(shù)據(jù)輸出給模冪控制器。
2.如權(quán)利要求1所述的RSA模冪電路,其特征在于,不論RSA加密的密鑰當(dāng)前比特位是I還是O,該模冪控制器都會(huì)啟動(dòng)該模乘控制器,該模乘控制器都會(huì)控制脈動(dòng)陣列進(jìn)行模乘運(yùn)算。
3.如權(quán)利要求2所述的RSA模冪電路,其特征在于,該脈動(dòng)陣列進(jìn)行的是蒙哥馬利模乘運(yùn)算。
4.如權(quán)利要求3所述的RSA模冪電路,其特征在于,該模冪控制器存在有四個(gè)數(shù)據(jù)寄存器CT、Parameter、P和N,其中,數(shù)據(jù)寄存器CT用于存儲(chǔ)模乘運(yùn)算的結(jié)果以及模冪運(yùn)算的結(jié)果,數(shù)據(jù)寄存器P用于存儲(chǔ)明文以及模方運(yùn)算的結(jié)果。
5.如權(quán)利要求4所述的RSA模冪電路,其特征在于,該數(shù)據(jù)寄存器N保存的是模乘中的模數(shù);該數(shù)據(jù)寄存器parameter保存的是(2n+2 mod N),η為數(shù)據(jù)的二進(jìn)制位數(shù)。
6.如權(quán)利要求5所述的RSA模冪電路,其特征在于,η值為2048。
7.如權(quán)利要求6所述的RSA模冪電路,其特征在于,該數(shù)據(jù)寄存器CT、P、N和parameter均為2049位。
8.如權(quán)利要求4所述的RSA模冪電路,其特征在于,在RSA加密的密鑰當(dāng)前比特位是I時(shí),該模冪控制器會(huì)將數(shù)據(jù)寄存器CT、P和N保存的值輸送給該脈動(dòng)陣列,該脈動(dòng)陣列會(huì)將模乘運(yùn)算的結(jié)果返回該模冪控制器的數(shù)據(jù)寄存器CT。
9.如權(quán)利要求4所述的RSA模冪電路,其特征在于,在RSA加密的密鑰當(dāng)前比特位是O時(shí),該模冪控制器會(huì)將數(shù)據(jù)寄存器CT、parameter和N保存的值輸送給該脈動(dòng)陣列,該脈動(dòng)陣列會(huì)將模乘運(yùn)算的結(jié)果返回該模冪控制器的數(shù)據(jù)寄存器CT。
10.一種RSA安全加密芯片,其特征在于,包括如權(quán)利要求1至9任一項(xiàng)所述的RSA模幕電路。
全文摘要
一種RSA模冪電路及RSA安全加密芯片,包括模冪控制器、模乘控制器和脈動(dòng)陣列;其中,模冪控制器可以控制模冪運(yùn)算的整個(gè)過(guò)程,包括模乘控制器的啟動(dòng)以及脈動(dòng)陣列的數(shù)據(jù)輸入輸出;模乘控制器可以控制脈動(dòng)陣列完成模乘運(yùn)算;脈動(dòng)陣列實(shí)現(xiàn)模乘運(yùn)算,并將數(shù)據(jù)輸出給模冪控制器。本發(fā)明能夠有效地抵抗功耗分析攻擊和安全錯(cuò)誤攻擊,可以確保RSA安全加密芯片內(nèi)部密鑰的安全。
文檔編號(hào)G06F7/72GK103164187SQ20111040806
公開(kāi)日2013年6月19日 申請(qǐng)日期2011年12月9日 優(yōu)先權(quán)日2011年12月9日
發(fā)明者劉彥, 首南青, 宋丹, 李肯立, 秦云川, 沈案 申請(qǐng)人:深圳市證通電子股份有限公司