TW201702864A - 加密計算方法、裝置以及電腦軟體產品 - Google Patents

加密計算方法、裝置以及電腦軟體產品 Download PDF

Info

Publication number
TW201702864A
TW201702864A TW105101507A TW105101507A TW201702864A TW 201702864 A TW201702864 A TW 201702864A TW 105101507 A TW105101507 A TW 105101507A TW 105101507 A TW105101507 A TW 105101507A TW 201702864 A TW201702864 A TW 201702864A
Authority
TW
Taiwan
Prior art keywords
modulus
operand
montgomery
product
remainder
Prior art date
Application number
TW105101507A
Other languages
English (en)
Other versions
TWI553548B (zh
Inventor
卡路茲尼 厄瑞
Original Assignee
華邦電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 華邦電子股份有限公司 filed Critical 華邦電子股份有限公司
Application granted granted Critical
Publication of TWI553548B publication Critical patent/TWI553548B/zh
Publication of TW201702864A publication Critical patent/TW201702864A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7247Modulo masking, e.g. A**e mod (n*r)

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

一種加密計算方法、裝置以及電腦軟體產品。此方法在具有預定義區塊大小的蒙哥馬利乘法器電路中接收一對運算元A和B以及模數M以用於計算A和B的蒙哥馬利乘積對M求餘數。規定將用於計算的預定義區塊大小的數量n的區塊。計算盲化模數M'為模數M乘以隨機因數R的倍數,M'=R*M,同時選擇R使得M'的長度小於區塊大小的n倍至少兩位元。操作蒙哥馬利乘法器電路以計算和輸出A和B的蒙哥馬利乘積對M'求餘數。

Description

加密計算方法、裝置以及電腦軟體產品
本發明大體上涉及計算電路和方法,並且尤其涉及高效模乘。
許多重要的密碼系統,例如,RSA和DSA,使用模算術,包含通過較大模值的求冪和乘法。計算模組化產品的經典方法涉及首先倍增運算元為非模組化整數並且隨後獲取結果的模數,被稱作“模約簡(modular reduction)”。然而,模約簡在計算上是昂貴的,相當於長除法。
出於此原因,現在在加密計算中的慣例是使用已知為蒙哥馬利模乘(或簡單地為蒙哥馬利乘法)的更有效的方法。為了執行蒙哥馬利乘法,使用已知為蒙哥馬利約簡的演算法將運算元轉換成專門的蒙哥馬利形式。蒙哥馬利形式的運算元的乘法避免了常規算術中模約簡的需要(然而如果得到的乘積大於模數則仍然需要較簡單的條件性約簡)。蒙哥馬利約簡和乘法演算法例如由Menezes等人描述於應用密碼學手冊(Handbook of Applied Cryptography)(1996)的章節14.3.2、第600到603頁中,其以引用的方式併入本文中。
在加密操作中通常應用盲化技術以便減少對嘗試提取用於計算的秘密值的攻擊的易損性。各種盲化技術已經應用於模組化計算中,包含蒙哥馬利乘法。舉例來說,第8,422,671號美國專利描述了一種方法,其中多個蒙哥馬利乘法用於模冪運算以使用秘密金鑰解密密文。通過使密文乘以亂數而使密文盲化,並且使最終值乘以逆元素以移除盲化。美國專利8,738,927類似地描述了一種盲化與蒙哥馬利約簡相結合的技術。
下文中描述的本發明的實施例提供用於簡化蒙哥馬利乘法的性能且同時增強其抗攻擊能力的方法和設備。
因此,根據本發明的一個實施例提供用於計算的方法,所述方法包含在具有預定義區塊大小的蒙哥馬利乘法器電路中接收一對運算元A和B以及模數M以用於計算A和B的蒙哥馬利乘積對M求餘數。預定義區塊大小的數量n的區塊被規定用於計算中。盲化模數M'計算為模數M乘以隨機因數R的倍數,M'=R*M,同時選擇R使得M'的長度小於區塊大小的n倍至少兩位元。蒙哥馬利乘法器電路經操作以計算和輸出A和B的蒙哥馬利乘積對M'求餘數。
通常,操作蒙哥馬利乘法器電路包含執行計算回路的n次疊代以便在n次疊代的結論上生成相當於A和B的蒙哥馬利乘積對M'求餘數的結果而無需執行結果的條件性模約簡。在一些實施例中,結果作為運算元傳遞到蒙哥馬利乘法器電路以用於進一步運算而無需執行條件性模約簡。
在本發明的一個實施例中,所述方法包含選擇至少一個其它隨機因數R',並且對運算元A和B中的至少一個進行盲化,方法是將盲化值R'*M添加到其上,所述盲化值等於至少一個其它隨機因數R'與模數M的乘積。
根據本發明的一個實施例,還提供了一種計算裝置,所述計算裝置包含輸入端,其經配置以接收一對運算元A和B以及模數M;以及蒙哥馬利乘法器電路,其具有預定義區塊大小並且經配置以接收所述對運算元A和B以及模數M作為輸入並且使用蒙哥馬利乘積的計算中預定義區塊大小的規定數量n的區塊產生等於A和B的蒙哥馬利乘積對M求餘數的輸出。蒙哥馬利乘法器電路包含乘法器,所述乘法器經配置以計算盲化模數M'為模數M與隨機因數R的乘積,M'=R*M,其中R經選擇使得M'的長度小於區塊大小的n倍至少兩位元,並且蒙哥馬利乘法器電路經操作以計算和輸出A和B的蒙哥馬利乘積對M'求餘數。
根據本發明的一個實施例額外地提供一種電腦軟體產品,所述電腦軟體產品包含非暫時性電腦可讀媒體,在所述非暫時性電腦可讀媒體中儲存有程式指令,當通過具有預定義區塊大小的可程式設計處理器讀取所述指令時使得所述處理器接收一對運算元A和B以及模數M以用於使用預定義區塊大小的規定數量n的區塊計算A和B的蒙哥馬利乘積對M求餘數,以計算盲化模數M'作為模數M乘以隨機因數R的倍數,M'=R*M,同時選擇R使得M'的長度小於區塊大小的n倍至少兩位元,並且計算和輸出A和B的蒙哥馬利乘積對M'求餘數。
通過結合附圖的本發明的實施例的以下詳細描述將更全面地理解本發明。
常規蒙哥馬利乘法涉及位元的連續區塊上的結果的疊代計算,隨後是在最高有效區塊的計算之後的條件性約簡:如果結果大於指定模數M,那麼通過從結果中減去模數來減小它。此條件性約簡增添了計算複雜性並且還已經發現增大了執行對邊通道攻擊的計算的裝置的易損性。
本文中描述的本發明的實施例提供了改進的蒙哥馬利乘法技術以及實施此類技術的裝置,所述技術和裝置緩解了對條件性約簡的最終步驟的需要。這些技術借助通過合理地選擇的隨機因數的盲化,並且由此促進了計算的安全性並且簡化了乘法器的設計。
在本發明的實施例中,蒙哥馬利乘法器電路具有預定義的區塊大小,例如,32位元,並且接收一對運算元A和B以及模數M作為輸入以用於計算A和B的蒙哥馬利乘積對M求餘數。蒙哥馬利乘法器電路經配置以在預定義區塊大小的規定數量n的區塊上執行計算(即,使用長度m=n*區塊大小的整數,或在本發明的實例中的專門地m=32n位元)。出於盲化的目的,電路計算盲化模數M',所述模數是規定的模數M乘以整數隨機因數R的倍數,M'=R*M,並且通過對M'求餘數執行計算。最終結果可以簡單明瞭的方式減小到對M求餘數,並且不受中間計算中的盲化模數M'的使用的影響。
加密計算通常設計為利用全部可供使用的位元,以便增大攻擊的難度。然而,在本發明的實施例中,針對每個計算選擇隨機因數R使得M'的長度小於區塊大小的n倍至少兩位元。(同樣,在本發明實例中,此要求意味著M'中的位元數目不超過m-2=32n-2。)蒙哥馬利乘法器電路隨後計算和輸出A和B的蒙哥馬利乘積對M'求餘數。具體來說,電路執行計算回路的n次疊代以便在n次疊代的結論上生成結果,其相當於A和B的蒙哥馬利乘積對M求餘數。鑒於隨機因數R的適當的選擇以限制M'的長度,不存在對結果的條件性模約簡的需要。
更確切地說,只要M'的位元長度不超過m-2,那麼運算元A和B具有不超過m-1的位元長度,它可以表示為: (1)計算回路的每個疊代處的中間計算結果的長度將不會超過m;以及 (2)最終結果的長度將超過m-1位元的機率是可忽視地較小的(機率小於2-128 )。
以上第一點意味著需要在電路中分配不超過m個位元以用於中間計算結果的儲存,並且不存在檢查和處理計算中的溢出位元的需要。第二點意味著計算的結果可以回饋為到蒙哥馬利乘法器電路的運算元以用於進一步計算而無需執行任何類別的條件性模約簡。此後一點例如在求冪運算中是重要的,所述運算需要多個連續乘法。
最終結果將超過m-1位元的機率很小且在本發明所揭露的技術的實際應用中是不顯著的。加密系統通常設計為具有對可能由於雜訊或甚至嘗試錯誤注入攻擊而出現的誤差的一定程度的容限。在本文中描述的蒙哥馬利乘法器電路的簡化設計造成明顯錯誤的那些罕見的場合(具有2-128 的機率)中,系統將通常調用重複計算。重複計算將通過不同隨機因數R執行,使得重複錯誤的機率是無窮小的。
圖1是根據本發明的一個實施例示意性地說明加密裝置20中的電路元件的方塊圖。圖中所示的電路元件通常實施為積體電路(integrated circuit,IC)裝置中的硬體邏輯電路,但是可以替代地在合適的可程式設計處理器上的軟體中實施。所描繪的電路執行可以多種不同配置和應用整合到加密裝置中的蒙哥馬利乘法函數,以執行例如與加密、解密和/或認證相關聯的運算。在圖中僅示出了裝置20中與本發明改進的蒙哥馬利乘法直接有關的元件,並且這些元件與裝置20的其它元件的集成對於所屬領域的技術人員而言將是顯而易見的。
裝置20包括蒙哥馬利乘法器22,所述乘法器是相對於本領域中已知的乘法器修改的,以用於上文所述的類別的簡化運算。具體來說,在此實施例中模數的盲化通過所選擇的隨機因數應用使得結果的條件性約簡不需要。
乘法器22具有:一對運算元輸入端24、26(例如,實施為記憶體陣列中的位置)以接收運算元A和B,如上文所定義,所述運算元可以是多達m-1位元的任何長度;以及模數輸入端28,其接收模數M的值,所述模數將用於計算蒙哥馬利乘積A⊙B=A∗B∗2-m %M。(所述符號“%”在本發明描述和圖式中使用以表示“模數”。)乘法器22輸出計算結果到輸出端30(例如記憶體陣列中的另一位置),其內容可以輸送到裝置20的其它元件或回饋至輸入端24、26中的一或兩者以用於隨後的計算,例如,用於求冪的多個連續的乘法。
乘法器22包括算術電路,包含至少一個加法器32和至少一個乘法器34,所述加法器和乘法器是適當的互連的以用於執行下文中所描述的疊代計算。加法器和乘法器通常在預定義大小的區塊上操作,例如,32位元大小。乘法器22包括一個或多個內部陣列36(可能地是與輸入和輸出相同的記憶體陣列的一部分),以保存盲化模數M'和中間計算值。陣列36通常保存規定區塊長度的n個區塊37,使得陣列36的總長度是m位元,其中在本發明實例中,如上文所指出,m=32n。
乘法器22使用盲化模數M'=R*M執行A⊙B的計算,其中R是由隨機生成器38所選擇的亂數。隨機生成器經配置以限制R,使得給定模數輸入端28中的M的值,乘積R*M將不超過m-2位元長。(換句話說,M'的最高有效區塊中的至少兩個最高有效位元將是零。)隨機生成器38還可以生成一個或多個其它隨機因素R',所述隨機因素在運算元A和B中的一或兩者的盲化中使用,方法是將形式R'*M的盲化值添加到其上。
圖2是根據本發明的一個實施例示意性地說明用於模乘的方法的流程圖。為了清楚和便利性起見,下文中參考圖1中所示的裝置20的元件描述此方法。替代地,所述方法可以加以適當修正在其它硬體設定或軟體中執行,如上文所指出。所有此類替代性實施方案被視作在本發明的範圍內。
最初,在輸入步驟40處,乘法器22接收運算元A和B以及模數M到輸入端24、26和28中。運算元是整數的形式:
其中係數ai 和bi 是規定區塊長度的位元的區塊(在本發明實例中是32位元),並且w=232 。模數M是通過乘以隨機值R而進行盲化的,其被限制為不超過適當的界限值(取決於M的值),使得在模數盲化步驟42處盲化值M'不含大於m-2位元。盲化模數具有以下形式:
其中係數mi 類似地是32位元的區塊。
任選地,為了裝置20的安全性的進一步增強,在運算元盲化步驟44處,運算元A和B是通過將形式R'*M的對應的值添加到其上而進行盲化的,其中R'是一些其它隨機值。隨機值R'通常是受到限制的使得實際上用於乘法中的運算元不超過m-1位元長,即,至少運算元的最高有效位元是零。
乘法器22通過運算元的區塊和中間結果上的疊代運算計算乘積A⊙B。開始時,在參數設置步驟46處將起始結果參數C0 和模數參數μ設定為值C0 =0;。在初始化步驟48處,將疊代指數i設定為1。乘法器22隨後針對i=1, ..., n的每個值順序地執行以下步驟: 步驟50:步驟52:步驟54:
在每個疊代之後,在步驟56處,乘法器檢查i的值,並且隨後在步驟58處,遞增i,直至疊代在i=n處完成。
在完成疊代之後,在輸出步驟60處,乘法器22將結果C=Cn輸出到輸出端30。如上文所解釋,不需要執行條件性約簡,並且值C的長度在很高的機率下不超過m-1。
如較早提到的,在本發明的替代實施例中,上文所述的步驟和運算是通過適當的可程式設計處理器在軟體程式指令的控制下執行的。所述軟體可以電子形式下載到處理器,例如,在網路上。額外地或替代地,所述軟體可以儲存在有形的非暫時性電腦可讀媒體上,例如,光學、磁性或電子存儲媒體。
應瞭解,上文所述的實施例借助於實例被引用,並且本發明不限於上文已經具體示出並描述的內容。實際上,本發明的範圍包含上文所描述的各種特徵的組合和子組合兩者,以及所屬領域的技術人員在閱讀上述描述之後將想到與並未在現有技術中公開的本發明的變化和修改。
20‧‧‧加密裝置
22‧‧‧蒙哥馬利乘法器
24、26、28‧‧‧輸入端
30‧‧‧輸出端
32‧‧‧加法器
34‧‧‧乘法器
36‧‧‧內部陣列
37‧‧‧區塊
38‧‧‧隨機生成器
40、42、44、46、48、50、52、54、56、58、60‧‧‧步驟
A‧‧‧運算元
B‧‧‧運算元
C0‧‧‧起始結果參數
i‧‧‧疊代指數
M'‧‧‧盲化模數
M‧‧‧模數
R'‧‧‧其它隨機因數
R‧‧‧隨機因數
μ‧‧‧模數參數
圖1是根據本發明的一個實施例示意性地說明加密裝置中的電路元件的方塊圖。 圖2是根據本發明的一個實施例示意性地說明用於模乘的方法的流程圖。
40、42、44、46、48、50、52、54、56、58、60‧‧‧步驟

Claims (12)

  1. 一種加密計算方法,包括: 在具有預定義區塊大小的蒙哥馬利乘法器電路中接收一對第一、第二運算元以及模數以用於計算所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述模數求餘數; 規定將用於所述計算的預定義區塊大小的數量n的區塊,其中n為大於1的整數; 計算盲化模數為所述模數乘以隨機因數的倍數,同時選擇所述隨機因數使得所述盲化模數的長度小於所述區塊大小的n倍至少兩位元;以及 操作所述蒙哥馬利乘法器電路以計算和輸出所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述盲化模數求餘數。
  2. 如申請專利範圍第1項所述的方法,其中操作所述蒙哥馬利乘法器電路包括: 執行計算回路的n次疊代以便在所述n次疊代的結論上生成相當於所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述模數求餘數的結果而無需執行所述結果的條件性模約簡。
  3. 如申請專利範圍第2項所述的方法,更包括: 將所述結果作為運算元饋送到所述蒙哥馬利乘法器電路以用於進一步運算而無需執行所述條件性模約簡。
  4. 如申請專利範圍第1項所述的方法,更包括: 選擇至少一個其它隨機因數;以及 對所述第一運算元和所述第二運算元中的至少一個進行盲化,方法是將盲化值添加到其上,所述盲化值等於所述至少一個其它隨機因數與所述模數的乘積。
  5. 一種加密計算裝置,包括: 輸入端,其經配置以接收一對第一、第二運算元以及模數;以及 蒙哥馬利乘法器電路,其具有預定義區塊大小並且經配置以接收一對所述第一運算元和所述第二運算元以及所述模數作為輸入並且使用所述蒙哥馬利乘積的計算中預定義區塊大小的規定數量n的區塊產生等於所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述模數求餘數的輸出,其中n為大於1的整數, 其中所述蒙哥馬利乘法器電路包括乘法器,所述乘法器經配置以計算盲化模數作為所述模數與隨機因數的乘積,其中所述隨機因數經選擇使得所述盲化模數的長度小於所述區塊大小的n倍至少兩位元,並且所述蒙哥馬利乘法器電路經操作以計算和輸出所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述盲化模數求餘數。
  6. 如申請專利範圍第5項所述的裝置,其中所述蒙哥馬利乘法器電路經配置以執行計算回路的n次疊代以便在所述n次疊代的結論上生成相當於所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述模數求餘數的結果而無需執行所述結果的條件性模約簡。
  7. 如申請專利範圍第6項所述的裝置,其中所述蒙哥馬利乘法器電路經配置以將所述結果作為運算元饋送到所述輸入端中的至少一個以用於通過所述裝置的進一步運算而無需執行所述條件性模約簡。
  8. 如申請專利範圍第5項所述的裝置,其中所述蒙哥馬利乘法器電路經配置以對所述第一運算元和所述第二運算元中的至少一個進行盲化,方法是將盲化值添加到其上,所述盲化值等於至少一個其它隨機因數與所述模數的乘積。
  9. 一種電腦軟體產品,所述電腦軟體產品包括非暫時性電腦可讀媒體,在所述非暫時性電腦可讀媒體中儲存有程式指令,當通過具有預定義區塊大小的可程式設計處理器讀取所述指令時使得所述處理器接收一對第一、第二運算元以及模數以用於使用預定義區塊大小的規定數量n的區塊計算所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述模數求餘數,以計算盲化模數作為所述模數乘以隨機因數的倍數,同時選擇所述隨機因數使得所述盲化模數的長度小於所述區塊大小的n倍至少兩位元,並且計算和輸出所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述盲化模數求餘數,其中n為大於1的整數。
  10. 如申請專利範圍第9項所述的電腦軟體產品,其中所述指令使得所述處理器執行計算回路的n次疊代以便在所述n次疊代的結論上生成相當於所述第一運算元和所述第二運算元的蒙哥馬利乘積對所述模數求餘數的結果而無需執行所述結果的條件性模約簡。
  11. 如申請專利範圍第10項所述的電腦軟體產品,其中所述指令使得所述處理器將所述結果作為運算元饋送到另一蒙哥馬利乘法而無需執行所述條件性模約簡。
  12. 如申請專利範圍第9項所述的電腦軟體產品,其中所述指令使得所述處理器對所述第一運算元和所述第二運算元中的至少一個進行盲化,方法是將盲化值添加到其上,所述盲化值等於至少一個其它隨機因數與所述模數的乘積。
TW105101507A 2015-07-09 2016-01-19 加密計算方法、裝置以及電腦軟體產品 TWI553548B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IL239880A IL239880B (en) 2015-07-09 2015-07-09 Simplified montgomery multiplication

Publications (2)

Publication Number Publication Date
TWI553548B TWI553548B (zh) 2016-10-11
TW201702864A true TW201702864A (zh) 2017-01-16

Family

ID=55646348

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105101507A TWI553548B (zh) 2015-07-09 2016-01-19 加密計算方法、裝置以及電腦軟體產品

Country Status (6)

Country Link
US (1) US20170010866A1 (zh)
EP (1) EP3115887B1 (zh)
CN (1) CN106339204B (zh)
ES (1) ES2681507T3 (zh)
IL (1) IL239880B (zh)
TW (1) TWI553548B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI695292B (zh) * 2018-12-28 2020-06-01 新唐科技股份有限公司 使用訊息盲化的密碼裝置及其密碼處理方法
TWI702505B (zh) * 2018-03-01 2020-08-21 鈺創科技股份有限公司 收集與分析資料的方法與相關的裝置
TWI801690B (zh) * 2018-11-12 2023-05-11 南韓商三星電子股份有限公司 乘法器及相乘第一運算元及第二運算元的方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10367637B2 (en) * 2016-07-22 2019-07-30 Qualcomm Incorporated Modular exponentiation with transparent side channel attack countermeasures
US10509651B2 (en) * 2016-12-22 2019-12-17 Intel Corporation Montgomery multiplication processors, methods, systems, and instructions
CN112230886B (zh) * 2020-09-11 2022-11-08 清华大学 免除Toom-Cook的处理装置和基于其的模乘获取方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3709553B2 (ja) * 2000-12-19 2005-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 演算回路および演算方法
DE10219158B4 (de) * 2002-04-29 2004-12-09 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
US7532720B2 (en) * 2003-10-15 2009-05-12 Microsoft Corporation Utilizing SIMD instructions within montgomery multiplication
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
JP5179358B2 (ja) 2005-06-29 2013-04-10 イルデト アイントホーフェン ベー フェー 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法
FR2895609A1 (fr) * 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
US8024391B2 (en) * 2006-11-06 2011-09-20 Atmel Rousset S.A.S. Modular multiplication method with precomputation using one known operand
US8280041B2 (en) * 2007-03-12 2012-10-02 Inside Secure Chinese remainder theorem-based computation method for cryptosystems
JP5456766B2 (ja) * 2008-05-12 2014-04-02 クゥアルコム・インコーポレイテッド プログラム可能なプロセッサにおける随意選択的なガロア域計算の実行
KR101610917B1 (ko) 2010-03-08 2016-04-11 삼성전자주식회사 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
ITMI20111992A1 (it) * 2011-11-03 2013-05-04 St Microelectronics Srl Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI702505B (zh) * 2018-03-01 2020-08-21 鈺創科技股份有限公司 收集與分析資料的方法與相關的裝置
TWI801690B (zh) * 2018-11-12 2023-05-11 南韓商三星電子股份有限公司 乘法器及相乘第一運算元及第二運算元的方法
TWI695292B (zh) * 2018-12-28 2020-06-01 新唐科技股份有限公司 使用訊息盲化的密碼裝置及其密碼處理方法

Also Published As

Publication number Publication date
CN106339204A (zh) 2017-01-18
US20170010866A1 (en) 2017-01-12
CN106339204B (zh) 2019-01-08
TWI553548B (zh) 2016-10-11
ES2681507T3 (es) 2018-09-13
EP3115887B1 (en) 2018-07-04
IL239880B (en) 2018-08-30
EP3115887A1 (en) 2017-01-11

Similar Documents

Publication Publication Date Title
TWI553548B (zh) 加密計算方法、裝置以及電腦軟體產品
JP5378579B2 (ja) フォールディングを用いるモジュール削減
US10361854B2 (en) Modular multiplication device and method
EP3559811B1 (en) Protecting parallel multiplication operations from external monitoring attacks
US7908641B2 (en) Modular exponentiation with randomized exponent
US20100011047A1 (en) Hardware-Based Cryptographic Accelerator
US10721056B2 (en) Key processing method and device
CN110309665B (zh) 一种sm2数字签名的快速生成方法和装置
JP2019515353A (ja) 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策
CN111385092B (zh) 使用信息盲化的密码装置及其密码处理方法
TWI602119B (zh) 用於蒙哥馬利域的計算方法、計算裝置和電腦軟體產品
US20090028325A1 (en) Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation
US20100061547A1 (en) Method of and apparatus for the reduction of a polynomial in a binary finite field, in particular in the context of a cryptographic application
KR101977873B1 (ko) 하드웨어 구현된 모듈러 역원 모듈
TWI630545B (zh) 非模數乘法器、用於非模數乘法的方法及計算裝置
KR101707334B1 (ko) 효율적인 타원곡선 암호화 연산 장치 및 그 방법
KR101805840B1 (ko) 암호 계산을 위한 방법, 장치 및 비일시적이고 컴퓨터로 독출가능한 매체
JP2024502190A (ja) サイドチャネル攻撃に対して複数の点の乗算演算をセキュアにするための方法
US20170353294A1 (en) Electronic calculating device
Hodjat et al. A scalable and high performance elliptic curve processor with resistance to timing attacks
US10318245B2 (en) Device and method for determining an inverse of a value related to a modulus
EP4258594A1 (en) Method for performing polynomial multiplication operations
EP3419213A1 (en) Computer implemented method, computer system and computer readable computer program product
EP4340293A1 (en) Method for performing polynomial multiplication operations
JP2012242539A (ja) セキュリティシステム及びマイクロコンピュータ