1.一種方法,包括:
在電子電路的模冪計(jì)算的執(zhí)行期間,使用第一寄存器和第二寄存器并通過以下步驟來保護(hù)電子電路免受攻擊:
連續(xù)地針對所述計(jì)算的指數(shù)的每個(gè)比特:
將所述第一寄存器和所述第二寄存器中的一個(gè)寄存器的內(nèi)容存儲在第三寄存器中,所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器基于所述指數(shù)的當(dāng)前比特的狀態(tài);
將所述第一寄存器和所述第二寄存器中的另一個(gè)寄存器的內(nèi)容乘以所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器的內(nèi)容,并且將所述乘法的結(jié)果存儲在所述第一寄存器和所述第二寄存器中的所述另一個(gè)寄存器中;
將所述第三寄存器的內(nèi)容存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中;以及
對所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器的內(nèi)容求平方,并且將所述求平方的結(jié)果存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中。
2.根據(jù)權(quán)利要求1所述的方法,其中所述寄存器中的所述一個(gè)寄存器是針對狀態(tài)1處的所述指數(shù)的所述比特的所述第一寄存器。
3.根據(jù)權(quán)利要求2所述的方法,其中所述模冪計(jì)算的結(jié)果被包含在所述第二寄存器中。
4.根據(jù)權(quán)利要求1所述的方法,包括:
將所述第二寄存器初始化為值1;
將所述第一寄存器初始化為要提交給所述模冪計(jì)算的數(shù)的值;
連續(xù)地針對所述指數(shù)的每個(gè)比特;
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是1:
則將所述第一寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第二寄存器的內(nèi)容乘以所述第一寄存器的內(nèi)容并且 將所述乘法的結(jié)果存儲在所述第二寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第一寄存器中;以及
對所述第一寄存器的內(nèi)容求平方并且將所述求平方的結(jié)果存儲在所述第一寄存器中;以及
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是0:
則將所述第二寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第一寄存器的內(nèi)容乘以所述第二寄存器的內(nèi)容并且將所述乘法的結(jié)果存儲在所述第一寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第二寄存器中;以及
對所述第二寄存器的內(nèi)容求平方并且將所述求平方的結(jié)果存儲在所述第二寄存器中;以及
當(dāng)已經(jīng)處理所述指數(shù)的所有比特時(shí),輸出所述第二寄存器的內(nèi)容。
5.根據(jù)權(quán)利要求1所述的方法,其中所述模冪計(jì)算以RSA算法實(shí)施。
6.一種裝置,包括:
多個(gè)寄存器;以及
電路裝置,所述電路裝置耦合到所述多個(gè)寄存器,所述電路裝置在操作時(shí)通過以下操作執(zhí)行模冪計(jì)算,連續(xù)地針對所述計(jì)算的指數(shù)的每個(gè)比特:
將第一寄存器和第二寄存器中的一個(gè)寄存器的內(nèi)容存儲在第三寄存器中,所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器基于所述指數(shù)的當(dāng)前比特的狀態(tài);
將所述第一寄存器和所述第二寄存器中的另一個(gè)寄存器的內(nèi)容乘以所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器的內(nèi)容,并且將所述乘法的結(jié)果存儲在所述第一寄存器和所述第二寄存器中的所述另一個(gè)寄存器中;
將所述第三寄存器的內(nèi)容存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中;以及
對所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器的內(nèi)容求平方,并且將所述求平方的結(jié)果存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中。
7.根據(jù)權(quán)利要求6所述的裝置,其中所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器是針對狀態(tài)1處的所述指數(shù)的比特的所述第一寄存器。
8.根據(jù)權(quán)利要求7所述的裝置,其中所述模冪計(jì)算的結(jié)果被包含在所述第二寄存器中。
9.根據(jù)權(quán)利要求6所述的裝置,其中所述電路裝置在操作時(shí):
將所述第二寄存器初始化為值1;
將所述第一寄存器初始化為要提交給所述模冪計(jì)算的數(shù)的值;
連續(xù)地針對所述指數(shù)的每個(gè)比特;
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是1:
則將所述第一寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第二寄存器的內(nèi)容乘以所述第一寄存器的內(nèi)容并且將所述乘法的結(jié)果存儲在所述第二寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第一寄存器中;以及
對所述第一寄存器的內(nèi)容求平方并且將所述求平方的結(jié)果存儲在所述第一寄存器中;以及
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是0:
則將所述第二寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第一寄存器的內(nèi)容乘以所述第二寄存器的內(nèi)容并且將所述乘法的結(jié)果存儲在所述第一寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第二寄存器中;以及
對所述第二寄存器的內(nèi)容求平方并且將所述求平方的 結(jié)果存儲在所述第二寄存器中;以及
當(dāng)已經(jīng)處理所述指數(shù)的所有比特時(shí),輸出所述第二寄存器的內(nèi)容。
10.根據(jù)權(quán)利要求6所述的裝置,其中所述模冪計(jì)算以RSA算法實(shí)施。
11.一種系統(tǒng),包括:
一個(gè)或多個(gè)存儲器;以及
電路裝置,所述電路裝置耦合到所述一個(gè)或多個(gè)存儲器并且被配置為執(zhí)行模冪計(jì)算,其中所述電路裝置連續(xù)地針對所述計(jì)算的指數(shù)的每個(gè)比特:
將第一寄存器和第二寄存器中的一個(gè)寄存器的內(nèi)容存儲在第三寄存器中,所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器基于所述指數(shù)的當(dāng)前比特的狀態(tài);
將所述第一寄存器和所述第二寄存器中的另一個(gè)寄存器的內(nèi)容乘以所述第一寄存器和所述第二寄存器的所述一個(gè)寄存器的內(nèi)容;
將所述乘法的結(jié)果存儲在所述第一寄存器和所述第二寄存器的另一個(gè)寄存器中;
將所述第三寄存器的內(nèi)容存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中;
對所述第一寄存器和所述第二寄存器的所述一個(gè)寄存器的內(nèi)容求平方;以及
將所述求平方的結(jié)果存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器是針對狀態(tài)1處的所述指數(shù)的比特的所述第一寄存器。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述模冪計(jì)算的結(jié)果被包含在所述第二寄存器中。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述電路裝置在操作時(shí):
將所述第二寄存器初始化為值1;
將所述第一寄存器初始化為要提交給所述模冪計(jì)算的數(shù)的值;
連續(xù)地針對所述指數(shù)的每個(gè)比特;
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是1:
則將所述第一寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第二寄存器的內(nèi)容乘以所述第一寄存器的內(nèi)容并且將所述乘法的結(jié)果存儲在所述第二寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第一寄存器中;以及
對所述第一寄存器的內(nèi)容求平方并且將所述求平方的結(jié)果存儲在所述第一寄存器中;以及
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是0:
則將所述第二寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第一寄存器的內(nèi)容乘以所述第二寄存器的內(nèi)容并且將所述乘法的結(jié)果存儲在所述第一寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第二寄存器中;以及
對所述第二寄存器的內(nèi)容求平方并且將所述求平方的結(jié)果存儲在所述第二寄存器中;以及
當(dāng)已經(jīng)處理所述指數(shù)的所有比特時(shí),輸出所述第二寄存器的內(nèi)容。
15.根據(jù)權(quán)利要求12所述的系統(tǒng),包括集成電路,所述集成電路包括所述電路裝置。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述集成電路包括所述第一寄存器、所述第二寄存器和所述第三寄存器。
17.一種系統(tǒng),包括:
多個(gè)寄存器;以及
耦合到所述多個(gè)寄存器的、用于執(zhí)行模冪計(jì)算的裝置,其中執(zhí)行所述模冪計(jì)算包括連續(xù)地針對所述計(jì)算的指數(shù)的每個(gè)比特:
將第一寄存器和第二寄存器中的一個(gè)寄存器的內(nèi)容存儲在第三寄存器中,所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器基于所述指數(shù)的當(dāng)前比特的狀態(tài);
將所述第一寄存器和所述第二寄存器中的另一個(gè)寄存器的內(nèi)容乘以所述第一寄存器和所述第二寄存器的所述一個(gè)寄存器的內(nèi)容;
將所述乘法的結(jié)果存儲在所述第一寄存器和所述第二寄存器的另一個(gè)寄存器中;
將所述第三寄存器的內(nèi)容存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中;
對所述第一寄存器和所述第二寄存器的所述一個(gè)寄存器的內(nèi)容求平方;以及
將所述求平方的結(jié)果存儲在所述第一寄存器和所述第二寄存器中的所述一個(gè)寄存器中。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中用于執(zhí)行的裝置包括以下各項(xiàng)中的至少一項(xiàng):
狀態(tài)機(jī);
微處理器;
可編程邏輯電路;以及
布線邏輯。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中用于執(zhí)行的裝置在操作時(shí):
將所述第二寄存器初始化為值1;
將所述第一寄存器初始化為要提交給所述模冪計(jì)算的數(shù)的值;
連續(xù)地針對所述指數(shù)的每個(gè)比特;
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是1:
則將所述第一寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第二寄存器的內(nèi)容乘以所述第一寄存器的內(nèi)容并且將所述乘法的結(jié)果存儲在所述第二寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第一寄存器中;以及
對所述第一寄存器的內(nèi)容求平方并且將所述求平方的結(jié)果存儲在所述第一寄存器中;以及
如果所述指數(shù)的所述當(dāng)前比特的所述狀態(tài)是0:
則將所述第二寄存器的內(nèi)容傳送到所述第三寄存器中;
將所述第一寄存器的內(nèi)容乘以所述第二寄存器的內(nèi)容并且將所述乘法的結(jié)果存儲在所述第一寄存器中;
將所述第三寄存器的內(nèi)容傳送到所述第二寄存器中;以及
對所述第二寄存器的內(nèi)容求平方并且將所述求平方的結(jié)果存儲在所述第二寄存器中;以及
當(dāng)已經(jīng)處理所述指數(shù)的所有比特時(shí),輸出所述第二寄存器的內(nèi)容。
20.根據(jù)權(quán)利要求17所述的系統(tǒng),包括集成電路,所述集成電路包括用于執(zhí)行的裝置、所述第一寄存器、所述第二寄存器和所述第三寄存器。