擊裝置40連接的第一運算單元和第二運算單元(未示出)。
[0101]在具體實施中,所述第一運算單元與所述讀取單元408連接,用于在所述要判斷的數(shù)據(jù)位的值等于第二值時,對所述要判斷的數(shù)據(jù)位的值作平方運算,再對平方運算的結(jié)果作乘法運算。所述第二運算單元與所述讀取單元連接,用于在所述要判斷的數(shù)據(jù)位的值等于第一值時,對所述要判斷的數(shù)據(jù)位的值作平方運算。
[0102]實施例三
[0103]參考圖5,本實施例提供了一種RSA模冪運算電路,所述RSA模冪運算電路可以包括:處理器50、與所述處理器50連接的第一寄存器510、與所述處理器50連接的第二寄存器520,以及與所述處理器50連接的乘法器530。
[0104]在具體實施中,所述處理器可以包括:
[0105]第一寫入單元502,與所述第一寄存器510連接,用于將所要判斷的數(shù)據(jù)位的值寫入所述第一寄存器510,并將所述第一寄存器510的其他數(shù)據(jù)位的值置為第一值,所述數(shù)據(jù)位的值為第一值或第二值;
[0106]判斷單元504,與所述第一寄存器510連接,用于判斷所述第一寄存器510中數(shù)據(jù)位的值為第二值的個數(shù)是否為奇數(shù);
[0107]第二寫入單元506,與所述判斷單元504及所述第二寄存器520連接,用于在所述數(shù)據(jù)位的值為第二值的個數(shù)為奇數(shù)時,向所述第二寄存器520中寫入第二值,在所述數(shù)據(jù)位的值為第二值的個數(shù)為偶數(shù)時,向所述第二寄存器520中寫入第一值;
[0108]讀取單元508,與所述第二寄存器520及所述乘法器530連接,用于讀取所述第二寄存器520的值,將所述第二寄存器520的值作為所述要判斷的數(shù)據(jù)位的值輸入至所述乘法器530 ;
[0109]所述乘法器530,用于當所述要判斷的數(shù)據(jù)位的值等于第二值時,先對所述要判斷的數(shù)據(jù)位的值作平方運算,再對平方運算的結(jié)果作乘法運算;當所述要判斷的數(shù)據(jù)位的值等于低于值時,對所要判斷的數(shù)據(jù)位的值作平方運算。
[0110]其中,所述第一寄存器510可以為ACC寄存器,所述第二寄存器520可以為P寄存器。
[0111]當所述第一值為O時,所述第二值為1,當所述第一值為I時,所述第二值為O。
[0112]本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:R0M、RAM、磁盤或光盤等。
[0113]雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應(yīng)當以權(quán)利要求所限定的范圍為準。
【主權(quán)項】
1.一種數(shù)據(jù)的防攻擊方法,其特征在于,包括: 將數(shù)據(jù)中所要判斷的數(shù)據(jù)位的值寫入第一寄存器,所述數(shù)據(jù)位的值為第一值或第二值,并將所述第一寄存器的其他數(shù)據(jù)位的值置為第一值; 判斷所述第一寄存器中數(shù)據(jù)位的值為第二值的個數(shù)是否為奇數(shù); 當所述數(shù)據(jù)位的值為第二值的個數(shù)為奇數(shù)時,向第二寄存器中寫入第二值; 當所述數(shù)據(jù)位的值為第二值的個數(shù)為偶數(shù)時,向所述第二寄存器中寫入第一值; 讀取所述第二寄存器的值,將所述第二寄存器的值作為所述要判斷的數(shù)據(jù)位的值。
2.如權(quán)利要求1所述的數(shù)據(jù)的防攻擊方法,其特征在于,所述第一值為O,所述第二值為I ;或者,所述第一值為1,所述第二值為O。
3.如權(quán)利要求1或2所述的數(shù)據(jù)的防攻擊方法,其特征在于,所述第一寄存器為ACC寄存器,所述第二寄存器為P寄存器。
4.一種RSA模冪運算方法,其特征在于,包括: 將數(shù)據(jù)中所要判斷的數(shù)據(jù)位的值寫入第一寄存器,所述數(shù)據(jù)位的值為第一值或第二值,并將所述第一寄存器的其他數(shù)據(jù)位的值置為第一值; 判斷所述第一寄存器中數(shù)據(jù)位的值為第二值的個數(shù)是否為奇數(shù); 當所述數(shù)據(jù)位的值為第二值的個數(shù)為奇數(shù)時,向第二寄存器中寫入第二值; 當所述數(shù)據(jù)位的值為第二值的個數(shù)為偶數(shù)時,向所述第二寄存器中寫入第一值;讀取所述第二寄存器的值,將所述第二寄存器的值作為所述要判斷的數(shù)據(jù)位的值;當所述要判斷的數(shù)據(jù)位的值等于第二值時,對所述數(shù)據(jù)位的值作平方運算,再對平方運算的結(jié)果作乘法運算;當所述要判斷的數(shù)據(jù)位的值等于第一值時,對所述要判斷的數(shù)據(jù)位的值作平方運算。
5.如權(quán)利要求4所述的RSA模冪運算方法,其特征在于,所述第一值為O,所述第二值為I;或者,所述第一值為1,所述第二值為O。
6.如權(quán)利要求4所述的RSA模冪運算方法,其特征在于,所述第一寄存器為ACC寄存器,所述第二寄存器為P寄存器。
7.一種數(shù)據(jù)的防攻擊裝置,其特征在于,包括: 第一寫入單元,用于將數(shù)據(jù)中所要判斷的數(shù)據(jù)位的值寫入第一寄存器,所述數(shù)據(jù)位的值為第一值或第二值,并將所述第一寄存器的其他數(shù)據(jù)位的值置為第一值; 判斷單元,用于判斷所述第一寄存器中數(shù)據(jù)位的值為第二值的個數(shù)是否為奇數(shù);第二寫入單元,用于在所述數(shù)據(jù)位的值為第二值的個數(shù)為奇數(shù)時,向第二寄存器中寫入第二值,在所述數(shù)據(jù)位為第二值的個數(shù)為偶數(shù)時,向所述第二寄存器中寫入第一值; 讀取單元,用于讀取所述第二寄存器的值,將所述第二寄存器的值作為所述要判斷的數(shù)據(jù)位的值。
8.如權(quán)利要求7所述的數(shù)據(jù)的防攻擊裝置,其特征在于,所述第一寄存器為ACC寄存器,所述第二寄存器為P寄存器。
9.一種RSA模冪運算裝置,其特征在于,包括: 第一寫入單元,用于將數(shù)據(jù)中所要判斷的數(shù)據(jù)位的值寫入第一寄存器,所述數(shù)據(jù)位的值為第一值或第二值,并將所述第一寄存器的其他數(shù)據(jù)位的值置為第一值; 判斷單元,用于判斷所述第一寄存器中數(shù)據(jù)位的值為第二值的個數(shù)是否為奇數(shù); 第二寫入單元,用于在所述數(shù)據(jù)位的值為第二值的個數(shù)為奇數(shù)時,向第二寄存器中寫入第二值,在所述數(shù)據(jù)位為第二值的個數(shù)為偶數(shù)時,向所述第二寄存器中寫入第一值; 讀取單元,用于讀取所述第二寄存器的值,將所述第二寄存器的值作為所述要判斷的數(shù)據(jù)位的值; 第一運算單元,用于在所述要判斷的數(shù)據(jù)位的值等于第二值時,對所述要判斷的數(shù)據(jù)位的值作平方運算,再對平方運算的結(jié)果作乘法運算; 第二運算單元,用于在所述要判斷的數(shù)據(jù)位的值等于第一值時,對所述要判斷的數(shù)據(jù)位的值作平方運算。
10.一種RSA模冪運算電路,其特征在于,包括:處理器、與所述處理器連接的第一寄存器、與所述處理器連接的第二寄存器,以及與所述處理器連接的乘法器,所述處理器包括: 第一寫入單元,與所述第一寄存器連接,用于將所要判斷的數(shù)據(jù)位的值寫入所述第一寄存器,所述數(shù)據(jù)位的值為第一值或第二值,并將所述第一寄存器的其他數(shù)據(jù)位的值置為第一值; 判斷單元,與所述第一寄存器連接,用于判斷所述第一寄存器中數(shù)據(jù)位的值為第二值的個數(shù)是否為奇數(shù); 第二寫入單元,與所述判斷單元及所述第二寄存器連接,用于在所述數(shù)據(jù)位的值為第二值的個數(shù)為奇數(shù)時,向所述第二寄存器中寫入第二值,在所述數(shù)據(jù)位的值為第二值的個數(shù)為偶數(shù)時,向所述第二寄存器中寫入第一值; 讀取單元,與所述第二寄存器及所述乘法器連接,用于讀取所述第二寄存器的值,將所述第二寄存器的值作為所述要判斷的數(shù)據(jù)位的值輸入至所述乘法器; 所述乘法器,用于當所述要判斷的數(shù)據(jù)位的值等于第二值時,先對所述要判斷的數(shù)據(jù)位的值作平方運算,再對平方運算的結(jié)果作乘法運算;當所述要判斷的數(shù)據(jù)位的值等于第一值時,對所述要判斷的數(shù)據(jù)位的值作平方運算。
11.如權(quán)利要求10所述的冪運算電路,其特征在于,所述第一寄存器為ACC寄存器,所述第二寄存器為P寄存器。
【專利摘要】一種數(shù)據(jù)的防攻擊方法和裝置。所述方法包括:將數(shù)據(jù)中所要判斷的數(shù)據(jù)位的值寫入第一寄存器,所述數(shù)據(jù)位的值為第一值或第二值,并將所述第一寄存器的其他數(shù)據(jù)位的值置為第一值;判斷所述第一寄存器中數(shù)據(jù)位的值為第二值的個數(shù)是否為奇數(shù);當所述數(shù)據(jù)位的值為第二值的個數(shù)為奇數(shù)時,向第二寄存器中寫入第二值;當所述數(shù)據(jù)位的值為第二值的個數(shù)為偶數(shù)時,向所述第二寄存器中寫入第一值;讀取所述第二寄存器的值,將所述第二寄存器的值作為所述要判斷的數(shù)據(jù)位的值。應(yīng)用所述的數(shù)據(jù)防攻擊方法,可以有效地減小執(zhí)行不同的數(shù)據(jù)位的值而引起的功耗差異,降低攻擊者通過分析功耗的變化獲得RSA算法的關(guān)鍵信息的可能,提高應(yīng)用RSA算法的運算電路的安全性。
【IPC分類】G06F21-62
【公開號】CN104573544
【申請?zhí)枴緾N201310517938
【發(fā)明人】閆守禮, 張志敏, 王立輝, 單偉君, 李清, 張綱, 劉楓
【申請人】上海復旦微電子集團股份有限公司
【公開日】2015年4月29日
【申請日】2013年10月28日