利用蒙哥馬利乘法結(jié)果的分區(qū)和分散式存儲(chǔ)的模冪運(yùn)算的制作方法
【專利摘要】描述用于邊信道保護(hù)的模冪運(yùn)算的技術(shù)和系統(tǒng)的實(shí)施例。在實(shí)施例中,在模冪運(yùn)算計(jì)算期間,產(chǎn)生蒙哥馬利乘法(“MM”)結(jié)果。將這些MM結(jié)果分散在表上以用于存儲(chǔ),以使這些值的存儲(chǔ)不可導(dǎo)致私密指數(shù)值被間諜過程通過邊信道攻擊發(fā)現(xiàn)??梢詧?zhí)行該分散以便減少每次MM結(jié)果存儲(chǔ)或檢索期間執(zhí)行的每結(jié)果的存儲(chǔ)器操作的次數(shù)。在實(shí)施例中,可以在模冪運(yùn)算中使用4的窗口大小,連同將MM結(jié)果分區(qū)成32位分區(qū)值,且將這些分區(qū)值按64個(gè)字節(jié)偏移來分散。在實(shí)施例中,雖然使用4的窗口大小可能導(dǎo)致模冪運(yùn)算期間較其他窗口大小額外的MM計(jì)算,但是存儲(chǔ)器操作的減少可以提供正面性能補(bǔ)償。
【專利說明】利用蒙哥馬利乘法結(jié)果的分區(qū)和分散式存儲(chǔ)的模冪運(yùn)算
[0001]相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求2011年9月22日提交的美國(guó)專利申請(qǐng)?zhí)?3/241,137,標(biāo)題為“MODULAR EXPONENTIATION WITH PARTITIONED AND SCATTERED STORAGE OF MONTGOMERYMULTIPLICATION RESULTS”的優(yōu)先權(quán),其全部公開通過引用并入本文。
【技術(shù)領(lǐng)域】
[0002]本申請(qǐng)涉及數(shù)據(jù)處理的【技術(shù)領(lǐng)域】,更確切地來說涉及利用蒙哥馬利乘法(montgomery multiplication)結(jié)果的分區(qū)和分散式存儲(chǔ)的模冪運(yùn)算(modularexponentiation)ο
【背景技術(shù)】
[0003]本文提供的【背景技術(shù)】描述是為了概括性地闡述本公開的上下文。當(dāng)前提名的發(fā)明人就此【背景技術(shù)】部分中所描述的范圍而言的工作,以及提交日時(shí)可不另外取得現(xiàn)有技術(shù)資格的描述的多個(gè)方面,既不明示地也不暗示地承認(rèn)視為與本公開抵觸的現(xiàn)有技術(shù)。除非本文中另行指示,否則此部分中的描述的方法對(duì)本公開的權(quán)利要求不是現(xiàn)有技術(shù),且不因包含在此部分中而承認(rèn)視為現(xiàn)有技術(shù)。
[0004]許多加密操作,如Rivest、Shamir和Adleman (“RSA”)加密過程可能依賴于一個(gè)或多個(gè)模冪運(yùn)算。模冪運(yùn)算可以包括用于確定對(duì)輸入值a、Z和《的Zmod ?的值的操作。在多種技術(shù)中,可以基于“窗口大小”值#來執(zhí)行“窗口化”取冪過程。在這種w-ary模冪運(yùn)算中,在取冪結(jié)果的計(jì)算期間,循環(huán)可以在多組#位中的指數(shù)位迭代。
[0005]例如,下文的w-ary模冪運(yùn)算過程使用稱為蒙哥馬利乘法(或“MM”)的公知計(jì)算來確定模冪運(yùn)算結(jié)果。該過程可以取值》、a(其可以小于》)以及私密指數(shù)(secret exponent)值Z為輸入來計(jì)算Zmod 作為輸出,可以基于窗口大小參數(shù)#將z表示為
其中(Ι?.Ι.ι-£2 + - L該過程還可以依賴于蒙哥馬利參數(shù)以及預(yù)先計(jì)算的值
C、2 1 咖d m ο
[0006]該過程可以表示為如下。在該過程的表示中,將蒙哥馬利乘法稱為“MM”。
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,其包括: 由計(jì)算設(shè)備將所述計(jì)算設(shè)備的存儲(chǔ)器中的表初始化,所述表具有大??; 由所述計(jì)算設(shè)備執(zhí)行第一多次蒙哥馬利乘法; 由所述計(jì)算設(shè)備將所述第一多次蒙哥馬利乘法的結(jié)果存儲(chǔ)到所述表中,將每個(gè)結(jié)果存儲(chǔ)到所述表中包括: 將所述特定結(jié)果分區(qū)成多個(gè)分區(qū)值;以及將所述特定結(jié)果的所述分區(qū)值分散在所述表中來進(jìn)行存儲(chǔ);以及由所述計(jì)算設(shè)備使用分散在所述表中存儲(chǔ)的所述第一多次蒙哥馬利乘法的結(jié)果的分區(qū)值來執(zhí)行第二多次蒙哥馬利乘法; 其中將所述表初始化包括,將所述表的大小選擇為在執(zhí)行所述第二多次蒙哥馬利乘法期間,至少減小檢索分散在所述表中存儲(chǔ)的所述第一多次蒙哥馬利乘法的結(jié)果的分區(qū)值期間執(zhí)行的存儲(chǔ)器訪問的次數(shù)。
2.如權(quán)利要求1所述的方法,其中選擇所述表的大小還包括,將所述表的大小選為減少所述第二多次蒙哥馬利乘法中執(zhí)行的蒙哥馬利乘法的次數(shù)。
3.如權(quán)利要求1或2中任一項(xiàng)所述的方法,其中: 將所述第一和第二多次蒙哥馬利乘法作為模冪運(yùn)算計(jì)算的一部分來執(zhí)行;以及 選擇所述表的大小包括,選擇所述表的大小還部分地基于所述模冪運(yùn)算計(jì)算的窗口大小。
4.如權(quán)利要求3所述的方法,還包括由所述計(jì)算設(shè)備來將所述窗口大小設(shè)置為4。
5.如權(quán)利要求1或2中任一項(xiàng)所述的方法,將所述表初始化包括將所述表初始化為保存蒙哥馬利乘法的16個(gè)結(jié)果。
6.如權(quán)利要求5所述的方法,其中所述第一和第二多次蒙哥馬利乘法的結(jié)果包括512位值。
7.如權(quán)利要求6所述的方法,其特征在于: 將蒙哥馬利乘法的特定結(jié)果分區(qū)包括,將特定蒙哥馬利乘法結(jié)果分區(qū)成32位分區(qū)值;以及 將特定蒙哥馬利乘法結(jié)果的所述分區(qū)值分散在所述表中來進(jìn)行存儲(chǔ)包括,將特定蒙哥馬利乘法結(jié)果的每個(gè)分區(qū)值按與特定蒙哥馬利乘法結(jié)果的另一個(gè)分區(qū)值至少64個(gè)字節(jié)的偏移來進(jìn)行存儲(chǔ)。
8.如權(quán)利要求1或2中任一項(xiàng)所述的方法,其中: 所述存儲(chǔ)器包括高速緩存的存儲(chǔ)器;以及 將特定蒙哥馬利乘法結(jié)果的所述分區(qū)值分散在所述表中來進(jìn)行存儲(chǔ)包括,將所述特定蒙哥馬利乘法結(jié)果的所述分區(qū)值寫入到所述高速緩存的存儲(chǔ)器。
9.一種裝置,包括: 計(jì)算機(jī)可讀存儲(chǔ)器; 耦合所述存儲(chǔ)器的一個(gè)或多個(gè)計(jì)算機(jī)處理器; 蒙哥馬利乘法結(jié)果存儲(chǔ)模塊,所述蒙哥馬利乘法結(jié)果存儲(chǔ)模塊配置成由所述一個(gè)或多個(gè)計(jì)算機(jī)處理器操作以將蒙哥馬利乘法結(jié)果的分區(qū)值分散在存儲(chǔ)器中的表中來進(jìn)行存儲(chǔ);蒙哥馬利乘法結(jié)果收集模塊,所述蒙哥馬利乘法結(jié)果收集模塊配置成由所述一個(gè)或多個(gè)計(jì)算機(jī)處理器操作以從分散在所述表中對(duì)應(yīng)存儲(chǔ)的分區(qū)值重構(gòu)蒙哥馬利乘法結(jié)果;以及初始化例程,所述初始化例程由所述一個(gè)或多個(gè)計(jì)算機(jī)處理器來操作且配置成將所述表初始化,其中所述初始化模塊配置成以某種方式將所述表初始化,所述方式使得所述蒙哥馬利乘法結(jié)果收集模塊在基于所述蒙哥馬利乘法結(jié)果存儲(chǔ)模塊存儲(chǔ)且分散在表中的對(duì)應(yīng)分區(qū)值重構(gòu)蒙哥馬利乘法結(jié)果期間執(zhí)行的存儲(chǔ)器操作被減少。
10.如權(quán)利要求9所述的設(shè)備,還包括模冪運(yùn)算模塊,所訴模冪運(yùn)算模塊配置成由所述一個(gè)或多個(gè)計(jì)算機(jī)處理器來操作執(zhí)行如下操作: 執(zhí)行第一蒙哥馬利乘法結(jié)果以生成蒙哥馬利乘法結(jié)果以由所述蒙哥馬利乘法結(jié)果存儲(chǔ)模塊存儲(chǔ); 從所述蒙哥馬利乘法結(jié)果收集模塊請(qǐng)求所述第一蒙哥馬利乘法結(jié)果;以及基于所述蒙哥馬利乘法結(jié)果收集模塊返回的所述第一蒙哥馬利乘法結(jié)果,執(zhí)行第二蒙哥馬利乘法以計(jì)算模冪運(yùn)算值。
11.如權(quán)利要求10所述的裝置,其中所述初始化例程還配置成以使得將所述模冪運(yùn)算模塊執(zhí)行以計(jì)算所述模冪運(yùn)算值的第二蒙哥馬利乘法的次數(shù)減少的方式來將所述表初始化。
12.如權(quán)利要求10所述的裝置,其中所述初始化例程還配置成基于所述模冪運(yùn)算模塊使用來計(jì)算所述模冪運(yùn)算值的窗口大小將所述表初始化到一定大小。
13.如權(quán)利要求9-12中任一項(xiàng)所述的裝置,其中: 所述蒙哥馬利乘法結(jié)果包括512位值; 所述初始化例程配置成將所述表初始化為保存16個(gè)蒙哥馬利乘法結(jié)果;以及 所述蒙哥馬利乘法結(jié)果模塊配置成: 將要存儲(chǔ)的每個(gè)蒙哥馬利乘法結(jié)果分區(qū)成32位分區(qū)值;以及將特定蒙哥馬利乘法結(jié)果的每個(gè)分區(qū)值與特定蒙哥馬利乘法結(jié)果的另一個(gè)分區(qū)值偏移至少64個(gè)字節(jié)來存儲(chǔ)所述表中。
14.如權(quán)利要求13所述的裝置,其中: 所述存儲(chǔ)器包括高速緩存的存儲(chǔ)器;以及 所述初始化例程配置成將所述高速緩存的存儲(chǔ)器中的所述表初始化。
15.一個(gè)或多個(gè)非暫時(shí)計(jì)算機(jī)可讀介質(zhì),其包含響應(yīng)被計(jì)算設(shè)備執(zhí)行而促使所述計(jì)算設(shè)備執(zhí)行包括如下的一個(gè)或多個(gè)操作的指令: 將所述計(jì)算設(shè)備的存儲(chǔ)器中的表初始化,所述表具有大小; 執(zhí)行第一多次蒙哥馬利乘法; 將所述第一多次蒙哥馬利乘法的結(jié)果存儲(chǔ)到所述表中,將每個(gè)結(jié)果存儲(chǔ)到所述表中包括: 將所述特定結(jié)果分區(qū)成多個(gè)分區(qū)值;以及將所述特定結(jié)果的所述分區(qū)值分散在所述表中來進(jìn)行存儲(chǔ);以及使用分散在所述表中存儲(chǔ)的所述第一多次蒙哥馬利乘法的結(jié)果的分區(qū)值來執(zhí)行第二多次蒙哥馬利乘法; 其中將所述表初始化包括,將所述表的大小選擇為在執(zhí)行所述第二多次蒙哥馬利乘法期間,至少減小檢索分散在所述表中存儲(chǔ)的所述第一多次蒙哥馬利乘法的結(jié)果的分區(qū)值期間執(zhí)行的存儲(chǔ)器訪問的次數(shù)。
16.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其中選擇所述表的大小還包括,將所述表的大小選為減少所述多個(gè)第二蒙哥馬利乘法中執(zhí)行的蒙哥馬利乘法的次數(shù)。
17.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其中: 將所述第一和第二多次蒙哥馬利乘法作為模冪運(yùn)算計(jì)算的一部分來執(zhí)行;以及 選擇所述表的大小包括,選擇所述表的大小還部分地基于所述模冪運(yùn)算計(jì)算的窗口大小。
18.如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述操作還包括將所述窗口大小設(shè)置為4。
19.如權(quán)利要求15-18中任一項(xiàng)所述的計(jì)算機(jī)可讀介質(zhì),其中: 所述第一和第二多次蒙哥馬利乘法的結(jié)果包括512位值; 將所述表初始化包括將所述表初始化為保存蒙哥馬利乘法的16個(gè)結(jié)果; 將蒙哥馬利乘法的特定結(jié)果分區(qū)包括,將所述相應(yīng)蒙哥馬利乘法結(jié)果分區(qū)成32位分區(qū)值;以及 將特定蒙哥馬利乘法結(jié)果的所述分區(qū)值分散在所述表中來進(jìn)行存儲(chǔ)包括,將特定蒙哥馬利乘法結(jié)果的每個(gè)分區(qū)值按與特定蒙哥馬利乘法結(jié)果的另一個(gè)分區(qū)值至少64個(gè)字節(jié)的偏移來進(jìn)行存儲(chǔ)。
20.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其中: 所述存儲(chǔ)器包括高速緩存的存儲(chǔ)器;以及 將特定蒙哥馬利乘法結(jié)果的所述分區(qū)值分散在所述表中來進(jìn)行存儲(chǔ)包括,將所述特定蒙哥馬利乘法結(jié)果的所述分區(qū)值寫入到所述高速緩存的存儲(chǔ)器。
【文檔編號(hào)】G06F9/06GK103814370SQ201280046186
【公開日】2014年5月21日 申請(qǐng)日期:2012年9月10日 優(yōu)先權(quán)日:2011年9月22日
【發(fā)明者】S.格倫, V.克拉斯諾夫 申請(qǐng)人:英特爾公司