TWI686722B - 用於加密操作之指數分拆技術 - Google Patents

用於加密操作之指數分拆技術 Download PDF

Info

Publication number
TWI686722B
TWI686722B TW104132617A TW104132617A TWI686722B TW I686722 B TWI686722 B TW I686722B TW 104132617 A TW104132617 A TW 104132617A TW 104132617 A TW104132617 A TW 104132617A TW I686722 B TWI686722 B TW I686722B
Authority
TW
Taiwan
Prior art keywords
value
register
sharing
shared
encryption operation
Prior art date
Application number
TW104132617A
Other languages
English (en)
Other versions
TW201629829A (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 美商密碼研究公司
Publication of TW201629829A publication Critical patent/TW201629829A/zh
Application granted granted Critical
Publication of TWI686722B publication Critical patent/TWI686722B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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/723Modular exponentiation
    • 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/7242Exponent masking, i.e. key masking, e.g. A**(e+r) mod n; (k+r).P

Abstract

可接收一第一分擔值及一第二分擔值。該第一分擔值與該第二分擔值之一組合可對應於一指數值。使用基於該第一分擔值及該第二分擔值之一第一方程式來更新一第一暫存器之值,且使用基於該第二分擔值之一第二方程式來更新一第二暫存器之值。基於該第二分擔值之一位元值而選擇該第一暫存器之該值或該第二暫存器之該值中之一者。

Description

用於加密操作之指數分拆技術
本發明係關於用於加密操作之指數分拆技術。
本發明藉由引用方式併入以下專利:US7536011、US8243920、US8369514、US8422671、US8638927、US8670557、US20120207298及EP1648111B1。
本發明亦藉由引用方式併入以下非專利技術:(1)Beno^ıt Chevallier-Mames,Self-Randomized Exponentiation Algorithms,T.Okamoto編輯,Topics in Cryptology- CT-RSA 2004,Lecture Notes in Computer Science,第2964卷,第236頁至第249頁,Springer-Verlag,2004年;(2)Karine Gandolfi-Villegas及Nabil Hamzi,Dynamic Runtime Methods to Enhance Private Key Blinding;(3)Eike Kiltz Krzysztof Pietrzak,Leakage-Resilient ElGamal;(4)Hideyo MAMIYA、Atsuko MIYAJI及Hiroaki MORIMOTO,Secure Elliptic Curve Exponentiation against RPA,ZRA,DPA,and SPA,IEEE TRANS.FUNDAMENTALS,第E89-A卷,第8期,2006年8月;(5)E.Smith及C.Gebotys,SCA Countermeasures for ECC over Binary Fields on a VLIW DSP Core;(6)Da-Zhi Sun、Jin-Peng Huai、Ji-Zhou Sun、Zhen-Fu Cao,An Efficient Modular Exponentiation Algorithm against Simple Power Analysis Attacks,IEEE Transactions on Consumer Electronics,第53卷,第4期,2007年11月;(7)Michael Tunstall,Random Order m-ary Exponentiation;(8)Michael Tunstall及Marc Joye,Coordinate Blinding over Large Prime Fields,S.Mangard及F.-X.Standaert編輯,Cryptographic Hardware and Embedded Systems-CHES 2010,Lecture Notes in Computer Science,第6225卷,第443頁至455頁,Springer,2010年。
在本發明之實施例中,一種方法包括:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;使用基於該第一分擔值及該第二分擔值之一第一方程式來更新一第一暫存器之一值;使用基於該第二分擔值之一第二方程式來更新一第二暫存器之一值;及基於該第二分擔值之一位元值而由一處理裝置選擇該第一暫存器之該值或該第二暫存器之該值中之一者。
在本發明之實施例中,一種系統包括:一第一暫存器及一第二暫存器,其用以儲存一數學群之元素;及一處理裝置,其耦合至該第一暫存器及該第二暫存器且用以:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;使用基於該第一分擔值及該第二分擔值之一第一方程式來更新一第一暫存器之一值;使用基於該第二分擔值之一第二方程式來更新一第二暫存器之一值;及基於該第二分擔值之一位元值而由一處理裝置選擇該第一暫存器之該值或該第二暫存器之該值中之一者。
在本發明之實施例中,一種非暫時性電腦可讀媒體包含在由一處理裝置存取時致使該處理裝置執行包括以下各項之操作之資料:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;使用基於該第一分擔值及該第二分擔值之一第一方程式來更新一第一暫存器之一值;使用基於該第二分擔值之 一第二方程式來更新一第二暫存器之一值;及基於該第二分擔值之一位元值而選擇該第一暫存器之該值或該第二暫存器之該值中之一者。
在本發明之實施例中,一種方法包括:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;基於該第一分擔值而修改一第一暫存器及一第二暫存器;基於該第二分擔值而修改該第一暫存器及該第二暫存器;及基於該經修改第一暫存器及該經修改第二暫存器而由一處理裝置選擇該第一暫存器之一值或該第二暫存器之一值中之一者。
100‧‧‧裝置
111‧‧‧指數分拆器
112‧‧‧記憶體
113‧‧‧裝置組件
310‧‧‧記憶體
311‧‧‧暫存器/第一暫存器
312‧‧‧暫存器/第二暫存器
313‧‧‧暫存器
314‧‧‧暫存器
320‧‧‧指數分拆器
322‧‧‧輸出信號
323‧‧‧隨機數產生器模組
324‧‧‧方程式邏輯模組
325‧‧‧暫存器選擇模組
330‧‧‧加密操作組件
331‧‧‧輸出信號
600‧‧‧電腦系統/實例性電腦系統
602‧‧‧處理裝置
604‧‧‧主記憶體
606‧‧‧靜態記憶體
608‧‧‧網路介面裝置
610‧‧‧視訊顯示單元
612‧‧‧文數輸入裝置
614‧‧‧游標控制裝置
616‧‧‧信號產生裝置
618‧‧‧資料儲存裝置
620‧‧‧網路
622‧‧‧圖形處理單元
624‧‧‧機器可讀儲存媒體/電腦可讀媒體
626‧‧‧指令/指令集/軟體
628‧‧‧視訊處理單元
630‧‧‧匯流排
632‧‧‧音訊處理單元
將自下文所給出之詳細說明及自本發明之各種實施方案之附圖更完全地理解本發明。
圖1圖解說明根據某些實施例之包含一指數分拆器之一實例性裝置。
圖2係根據本發明之某些實施例之用以基於分拆一指數值而執行一加密操作之一實例性方法之一流程圖。
圖3係根據某些實施例之更新暫存器之值且提供暫存器之值中之一者以用於一加密操作之一指數分拆器之一方塊圖。
圖4係根據某些實施例之用以選擇多個暫存器中之一者之一值以用作對應於一加密操作之一群取冪中之一指數值之一實例性方法之一流程圖。
圖5係根據某些實施例之用以基於一最低有效位元而選擇一暫存器之一值之一實例性方法之一流程圖。
圖6圖解說明其中本發明之某些實施例可操作之一電腦系統之一實施例之一方塊圖。
本發明之態樣係針對用於加密操作之指數分拆技術。可在一加密操作中使用一指數之一值,該加密操作使用一取冪方法以基於一指數之該值而編碼一訊息。舉例而言,可基於一指數之該值來編碼明文(例如,一發送者希望傳輸至一接收者之資訊)以產生一密文(例如,經加密資訊)。作為一實例,密文(例如,y)可等於明文(例如,x)自乘至指數k之值之冪(例如,y=xk)。
因此,指數值可用以編碼明文且指數值之倒數可用以解碼明文。舉例而言,一發送者可將密文(例如,y)傳輸至一接收者且該接收者可藉由使用指數值之倒數(例如,x=y-k)而解碼密文以擷取明文。因此,指數值可視為用以編碼明文之一密鑰(例如,一公開密鑰)且指數值之倒數可視為用以解碼密文之一密鑰(例如,一私有密鑰)。
指數值可由一積體電路產生且由該積體電路使用以執行一加密操作。由積體電路產生及使用指數值可導致積體電路對其中一攻擊者可獲得該指數值之一側通道攻擊之易感性。一側通道攻擊之一實例包含(但並不限於)差動功率分析(DPA),其中當指數值經產生以在一加密操作中使用時,試圖自積體電路獲得該指數值之一攻擊者可研究積體電路之功率消耗。一攻擊者可係一未經授權實體,該未經授權實體可藉由以下操作自該積體電路獲得該指數值:在指數值經產生及/或在加密操作中使用時分析積體電路在一段時間內之功率消耗量測。因此,當發送者將密文傳輸至一接收者時,攻擊者可能夠藉由使用對積體電路之DPA來獲得指數值而解碼密文以擷取明文。
可產生及/或使用指數值來防止一DPA攻擊能夠擷取指數值。舉例而言,指數值之計算可包含用以有效地隱藏由一積體電路使用之指數值之隨機計算。舉例而言,可將指數值分拆成至少經部分地隨機表示之兩個值(稱為分擔值)。兩個分擔值之組合效應可等效於期望指數值。對應於指數值之兩個分擔值之使用可稱為指數分拆技術。可在一 群取冪中使用指數值。
在某些實施例中,積體電路可包含用以儲存一第一值之一第一暫存器及用以儲存一第二值之一第二暫存器。可基於一期望指數值之特定位元而更新第一值及第二值。可針對第一分擔值及第二分擔值之每一位元更新第一暫存器之第一值及第二暫存器之第二值,直至達到該等分擔值之最低有效位元為止。可基於該等分擔值中之一者之最低有效位元之值而將取冪方法之結果儲存於第一暫存器或第二暫存器中。此外,一第一方程式可用以更新第一暫存器之第一值且一第二方程式可用以更新第二暫存器之第二值。觀察用以實施用以更新第一暫存器及第二暫存器之第一值及第二值之第一方程式及第二方程式之積體電路之某一側通道可不導致一DPA攻擊者獲得指數之值,此乃因該等暫存器中之一者可包含使用該指數值之一群取冪之結果且另一暫存器包含已由與額外功率消耗相關聯之額外計算產生之一值。因此,一DPA攻擊者將不能擷取指數值。
圖1圖解說明包含一指數分拆器之一實例性裝置。一般而言,裝置100可包含與一指數分拆器111、一記憶體112及各種裝置組件113相關聯之一積體電路。該積體電路之指數分拆器111可產生一指數值以供在一加密操作中使用。
圖1中所展示,裝置100可包含一指數分拆器111。在某些實施例中,指數分拆器111可使用對應於一指數值之一第一分擔值及一第二分擔值且可基於該第一分擔值及該第二分擔值(例如,其中該第一分擔值及該第二分擔值係隨機按位元表示)而更新記憶體112。第一分擔值及第二分擔值之互斥或(XOR)可產生指數值。在某些實施例中,記憶體112可包含多個暫存器。可基於不同方程式或公式更新暫存器之值,該等方程式或公式基於第一分擔值及第二分擔值。此外,指數分拆器111可選擇來自記憶體112之暫存器中之一者,其中該選定暫存 器之值含有使用一指數值之一群取冪之結果。裝置組件113可隨後在一加密操作中利用使用該指數值之該群取冪之該結果。此等加密操作之實例包含(但並不限於):產生用於一訊息之一簽章,其中該訊息可用以允許存取裝置100之特定功能性或允許裝置100執行一特定操作。與一裝置相關聯之功能性或操作之實例包含(但並不限於):該裝置之某些硬體能力之存取、對該裝置之除錯或診斷狀態之存取及至與該裝置相關聯之一記憶體之寫入。因此,在某些實施例中,基於指數值之群取冪可用以產生用於可允許存取裝置之至少某些功能性或操作之一訊息之一簽章。具有一有效簽章(例如,基於使用指數值之群取冪)之一訊息可允許存取裝置之一功能性或操作,且不具有一有效簽章之一訊息不可允許存取裝置之功能性或操作。
當來自發送者之一訊息伴隨有藉由一加密操作產生之一有效簽章時,可允許該訊息之發送者存取裝置100之功能性或操作。此等加密操作之實例包含(但並不限於):產生與橢圓曲線數位簽章演算法(ECDSA)、不對稱密碼(RSA)演算法等相關聯之一簽章,其中該簽章用於一公私密鑰密碼系統中。在某些實施例中,一群取冪方法用作提供一加密安全之手段。在某些實施例中,加密操作可使用一群取冪中之指數值來產生一簽章。在某些實施例中,群取冪可係一模取冪(例如,對以一經選擇整數為模之整數執行之一取冪)或基於橢圓曲線算術之一群取冪或任何其他數式。
圖2係用以基於分拆一指數值而執行一加密操作之一實例性方法200之一流程圖。一般而言,方法200可由處理邏輯執行,該處理邏輯可包括硬體(例如,處理裝置、電路、專用邏輯、可程式化邏輯、微碼、一裝置之硬體等)、軟體(例如,在一處理裝置上運行或執行之指令)或其一組合。在某些實施例中,方法200可由圖1之指數分拆器111執行。
圖2中所展示,方法200可以處理邏輯接收對一期望指數值之一識別(方塊210)開始。舉例而言,可接收將在一加密操作之一群取冪中使用之一指數之值。處理邏輯可進一步將期望指數值分拆成一第一分擔值及一第二分擔值(方塊220)。在某些實施例中,第一分擔值及第二分擔值中之每一者可係對應於期望指數值之不同值或按位元表示。舉例而言,第一分擔值及第二分擔值之互斥或(XOR)可產生期望指數值。當對應於第一分擔值之一位元及第二分擔值之一位元之兩個輸入位元不同(例如,該兩個分擔值之一個位元係一「0」且該兩個分擔值之另一位元係一「1」)時,XOR運算可輸出一真值(例如,「1」),且當對應於第一分擔值之位元及第二分擔值之位元之兩個輸入位元相同(例如,兩個位元皆係一「0」或兩個位元皆係一「1」)時,XOR運算可輸出一假值(例如,「0」)。因此,第一分擔值與第二分擔值之組合可產生期望指數值。此外,儘管在本發明中闡述XOR運算,但可使用其中第一分擔值與第二分擔值之組合產生期望指數值的任何類型之邏輯或算術運算。舉例而言,可使用一加法運算(例如,指數值=A+B,其中A及B係第一分擔值及第二分擔值)。處理邏輯可進一步基於第一分擔值及第二分擔值而更新一第一暫存器及一第二暫存器之值(方塊230)。舉例而言,處理邏輯可基於一第一方程式而更新第一暫存器之一值且基於一第二方程式而更新第二暫存器之值,其中該第一方程式及該第二方程式基於第一分擔值及第二分擔值之特定位元之值。在某些實施例中,第一方程式及第二方程式中之一者可包含額外計算,可使用該等額外計算以使得用以更新第一暫存器之功率消耗及用以更新第二暫存器之功率消耗不可允許自一DPA攻擊擷取指數值。結合圖4闡述關於此等方程式之進一步細節。處理邏輯可進一步選擇來自第一暫存器或第二暫存器之值中之一者以用作指數值(方塊240)。舉例而言,可基於第二分擔值之最低有效位元或最高 有效位元之值而選擇第一暫存器之一值或第二暫存器之一值,如結合圖4所進一步闡述。此外,處理邏輯可基於選定暫存器之值而執行一加密操作(方塊250)。舉例而言,可在選定暫存器之值係基於指數值之一群取冪之情況下產生一簽章。在某些實施例中,在一加密操作中,群取冪可對應於一簽章及/或一私有密鑰。
圖3係更新暫存器之值且提供暫存器之值中之一者以用於一加密操作之一指數分拆器320之一方塊圖。一般而言,指數分拆器320可對應於圖1之指數分拆器111,記憶體310可對應於圖1之記憶體112,且加密操作組件330可對應於圖1之裝置組件113。
圖3中所展示,指數分拆器320可包含一隨機數產生器模組323、一方程式邏輯模組324及一暫存器選擇模組325。在替代實施例中,可組合或劃分該等模組中之一或多者之功能性。此外,可在硬體(例如,處理裝置、電路、專用邏輯、可程式化邏輯、微碼、一裝置之硬體等)、軟體(例如,在一處理裝置上運行或執行之指令)或其一組合中實施該等模組中之每一者。指數分拆器320可接收可分拆成一第一分擔值及一第二分擔值之一期望指數值之一指示。
隨機數產生器模組323可產生處於0或1之一值之一隨機位元。在某些實施例中,隨機數產生器模組323可每當將產生一指數值時產生隨機數。可將對應於隨後經更新之一值(例如,對應於b’之一值,如關於圖4所進一步詳細闡述)之隨機數儲存於記憶體310之一記憶體位置中。因此,所產生之隨機數可係用於一暫存器之初始值。方程式邏輯模組324可包含邏輯或執行邏輯運算以更新記憶體310之第一暫存器311及第二暫存器312(例如,R0及R1暫存器,如關於圖4所進一步闡述)之值。在某些實施例中,方程式邏輯模組324可提供用以執行XOR邏輯運算、算術運算及/或模乘法之功能性。暫存器選擇器模組325可選擇暫存器311(例如,R0)或暫存器312(例如,R1)中之一者且將選定 暫存器之值提供至加密操作組件330。舉例而言,若分擔值中之一者之最低有效位元處於0之一值,則暫存器選擇器模組325可選擇暫存器311,或若分擔值之最低有效位元處於1之一值,則暫存器選擇模組325可選擇暫存器312。在替代實施例中,若分擔值中之一者之最高有效位元處於0之一值,則暫存器選擇器模組325可選擇暫存器311,或若分擔值之最高有效位元處於1之一值,則可選擇暫存器312。輸出信號322可包含選定暫存器之值且可對應於基於期望指數值之一群取冪之結果。
圖3中所展示,加密操作組件330可接收基於儲存於暫存器311或暫存器312中之一者之期望指數值之群取冪且可基於該群取冪而執行一加密操作。舉例而言,加密操作組件330可藉由使用基於指數值之群取冪而產生一簽章或一私有密鑰。該簽章或私有密鑰可包含於輸出信號331中。
記憶體310可包含暫存器311、312、313及314。暫存器311(例如,R0)及暫存器312(例如,R1)可由指數分拆器320之方程式邏輯模組324更新。此外,暫存器313及314(例如,U0及U1)可用以儲存在群取冪(例如,一整數群、模數群等)中使用之一數學群之元素及其倒數。在某些實施例中,暫存器311及312可最初儲存亦儲存於暫存器313中之數學群之元素。舉例而言,暫存器311、312及313可儲存數學群之元素且暫存器314可儲存數學群之元素之倒數。結合圖4闡述關於暫存器之進一步細節。
圖4係用以選擇多個暫存器中之一者之一值以用作對應於一加密操作之一群取冪中之一指數值之一實例性方法400之一流程圖。一般而言,方法400可由處理邏輯執行,該處理邏輯可包括硬體(例如,處理裝置、電路、專用邏輯、可程式化邏輯、微碼、一裝置之硬體等)、軟體(例如,在一處理裝置上運行或執行之指令)或其一組合。在 某些實施例中,方法400可由圖1之指數分拆器111或圖3之指數分拆器320執行。
方法400可稱為一盲化蒙哥馬利階梯法(Blinded Montgomery Ladder)且可使用兩個分擔值(例如,一第一分擔值及一第二分擔值),其中該第一分擔值與該第二分擔值之一組合產生將在用於一加密操作之群取冪中使用之一期望指數值。舉例而言,第一分擔值及第二分擔值之XOR可等於期望指數值。方法400可進一步需要期望指數值之每位元兩個群運算。在某些實施例中,群運算之部分可包含隨機化數學運算,使得對應於一第一群運算(例如,用以更新一第一暫存器之一值之一第一方程式)及一第二群運算(例如,用以更新一第二暫存器之一值之一第二方程式)之功率消耗可不導致因對該兩個群運算之功率消耗之觀察而易受一DPA攻擊之指數值之產生。
在某些實施例中,方法400可執行以下方法,其中x表示一群(例如,一整數集、模數集等),A=(an-1、an-2、...a0)2且B=(bn-1、bn-2、...b0)2
Figure 104132617-A0202-12-0010-11
其中Rb0含有群取冪之結果,xA ⊕ B
在某些實施例中,x可表示一數學群之元素(例如,在一群取冪中 所使用之整數群或模數群),A可係包含位元an-1至a0之一第一分擔值且B可係包含位元bn-1至b0之一第二分擔值。因此,第一分擔值及第二分擔值兩者皆可包含n個位元。此外,R0可對應於一第一暫存器且R1可對應於一第二暫存器。另外,U0可對應於一第三暫存器且U1可對應於一第四暫存器。在某些實施例中,在方法之初始部分處b’可係0或1之一隨機位元且可隨後針對n個位元中之每一者用第二分擔值之一位元之一值來更新。此外,如上文所展示,第一分擔值及第二分擔值可各自包含對應於期望指數值之若干個位元之若干個位元(例如,n個位元)。針對第一分擔值及第二分擔值中之每一者之每一位元,可基於第一方程式及第二方程式而更新R0及R1暫存器值。舉例而言,R0方程式可基於使用第二分擔值之當前位元之當前值(例如,處於n之一指數值)及第二分擔值之先前位元之值(例如,處於n+1之一指數值)的XOR及乘法運算(例如,模乘法)。此外,R1方程式可基於儲存於R0暫存器中之值及儲存於基於第二分擔值之當前位元之值而選擇的U暫存器中之一者(例如,若第二分擔值之當前位元之值係一0,則選擇U0,且若第二分擔值之當前位元之值係一1,則選擇U1)中之值。此外,可將b’值更新為第二分擔值(例如,b i )之當前位元之值。在某些實施例中,在R0及R1方程式中所使用之數學運算(亦即,點運算)可係一群運算,諸如一橢圓曲線算術運算或任何其他群運算。一旦達到第一分擔值及第二分擔值之最終位元(例如,最低或最高有效位元),便可基於第二分擔值(例如,b0)之最低有效位元之值而選擇暫存器中之一者之值。
參考圖4,用以執行上文所闡述之方法之方法400可藉由處理邏輯接收對應於一指數值之一第一分擔值(例如,A)及一第二分擔值(例如,B)(方塊410)而開始。舉例而言,第一分擔值及第二分擔值之XOR可產生一加密操作所期望之指數值。在某些實施例中,第一分擔 值可等於一第一值(例如,k1)與一隨機數(例如,r)之間的一XOR運算,且第二分擔值可等於一第二值(例如,k2)與隨機數(例如,r)之間的一XOR運算。在相同或替代實施例中,可將值k1及k2儲存於一裝置之一積體電路中(例如,記憶體中)且可在將產生指數值時判定隨機數。處理邏輯可進一步將一數學群之元素(例如,整數、模數或其他數學單元)之一值儲存於一第一暫存器(例如,R0)、第二暫存器(例如,R1)及一第三暫存器(例如,U0)中(方塊420)。此外,可將同一群之元素之倒數儲存於一第四暫存器(例如,U1)中(方塊430)。處理邏輯可進一步產生一隨機數(例如,b’)(方塊440)。舉例而言,處理邏輯可產生一隨機0或一1且將該隨機0或1指派給另一暫存器。處理邏輯可進一步更新第一暫存器(R0)之一值及第二暫存器(R1)之一值(方塊450)。在某些實施例中,第一暫存器之值可基於上文所闡述之方程式,且第二暫存器之值可基於額外所闡述之方程式。在某些實施例中,可基於第一分擔值及第二分擔值之一特定位元而更新暫存器之值。此外,如關於圖5所進一步闡述,可自第一位元(例如,最高有效位元)連續地更新第一暫存器及第二暫存器之值,直至已處理分擔值之最後位元(例如,最低有效位元)為止。另一選擇係,可自最低有效位元連續地更新第一暫存器及第二暫存器之值,直至已處理分擔值之最高有效位元(例如,針對i=0最高達n-1)為止。
圖4中所展示,處理邏輯可進一步基於第二分擔值(B)之最後位元而選擇第一暫存器或第二暫存器中之一者之一值(方塊460)。舉例而言,基於對應於第二分擔值(B)之最低有效位元之b0之值而選擇第一暫存器或者選擇第二暫存器。舉例而言,若b0之值係一0,則可選擇第一暫存器(例如,R0),且若b0之值係一1,則可選擇第二暫存器(例如,R1)。另一選擇係,可基於對應於第二分擔值(B)之最高有效位元之值而選擇第一暫存器或第二暫存器。舉例而言,若bn-1之值係一 0,則可選擇第一暫存器(例如,R0),且若bn-1之值係一1,則可選擇第二暫存器(例如,R1)。選定暫存器之值可用以計算作為對應於一加密操作之一群取冪之一部分之一群運算。
圖5係用以基於一最低有效位元而選擇一暫存器之一值之一實例性方法500之一流程圖。一般而言,方法500可由處理邏輯執行,該處理邏輯可包括硬體(例如,處理裝置、電路、專用邏輯、可程式化邏輯、微碼、一裝置之硬體等)、軟體(例如,在一處理裝置上運行或執行之指令)或其一組合。在某些實施例中,方法500可由圖1之指數分拆器111或圖3之指數分拆器320執行。
圖5中所展示,方法500可藉由處理邏輯接收對應於一指數值之一分擔值之一位元(方塊510)而開始。舉例而言,可接收處於一第一分擔值之一特定指數值(例如,n)之一第一位元及處於一第二分擔值之同一指數值之一第二位元。可基於一第一方程式及處於該指數值之第一分擔值及第二分擔值之位元值而更新一第一暫存器(R0)之值(方塊520)。此外,在某些實施例中,可基於處於第二分擔值之一先前指數值(例如,n+1)的一位元之一值而進一步更新第一暫存器之值。處理邏輯可基於一第二方程式而進一步更新一第二暫存器(例如,R1)之一值,該第二方程式對應於基於處於當前指數值之第二分擔值之位元值之值而選擇之第一暫存器之值與另一暫存器(例如,U0或U1)之值之間的一乘法運算(方塊530)。處理邏輯可進一步判定第一分擔值及第二分擔值之指數值是否對應於分擔值之最後位元(例如,最低有效位元或最高有效位元)(方塊540)。若第一分擔值及第二分擔值之指數值不對應於第一分擔值及第二分擔值之最後位元,則處理邏輯可繼續接收處於第一分擔值及第二分擔值之下一個(例如,n-1或n+1)指數值之一分擔值之一位元。然而,若第一分擔值及第二分擔值之指數值不對應於第一分擔值及第二分擔值之最後位元(例如,一指數值為0使得 i=0),則可基於第二分擔值之最後位元之一值而選擇第一暫存器之值或第二暫存器之值(方塊550)。舉例而言,若第二分擔值(例如,b0)之最低有效位元處於0之一值,則可選擇第一暫存器(例如,R0)之值,且若第二分擔值之最低有效位元之值處於1之一值,則可選擇第二暫存器(例如,R1)之值。另一選擇係,如先前所闡述,可基於最高有效位元之值而替代地選擇第一暫存器之值或第二暫存器之值。
在某些實施例中,可使用多個暫存器且可一次讀取指數值之多個位元。在此一實施例中,可基於第一分擔值及第二分擔值而更新暫存器。另外,可基於分擔值而修改或更新暫存器之內容。舉例而言,可基於儲存一第二分擔值之一值之第二暫存器而更新儲存一第一分擔值之一值之一第一暫存器。此外,可選擇暫存器中之一者之值,如先前所闡述(例如,在修改或更新第一暫存器及第二暫存器之後)。在某些實施例中,在選擇暫存器中之一者之後,可改變暫存器之次序或內容,使得後續分擔值(例如,稍後第一分擔值及第二分擔值)可用於作為對應於一加密操作之另一群取冪之一部分之一後續群運算。在相同或替代實施例中,可將暫存器之內容交換成後續分擔值。
圖6圖解說明一電腦系統600之一實例性機器,可在該電腦系統內執行用於致使該機器執行本文中所論述之方法中之任何一或多者之一指令集。在替代實施方案中,可將該機器連接(例如,網路連接)至一LAN、一內部網路、一外部網路及/或網際網路中之其他機器。該機器可以客戶端-伺服器網路環境中之一伺服器或一客戶端機器之能力操作為一同級間(或分散式)網路環境中之一同級機器或一雲端計算基礎設施或環境中之一伺服器或一客戶端機器。
該機器可係一個人電腦(PC)、一平板PC、一機上盒(STB)、一個人數位助理(PDA)、一蜂窩式電話、一web器具、一伺服器、一網絡路由器、一交換機或橋接器或能夠執行指定將由彼機器採取之動作之 一指令集(順序的或其他)的任何機器。此外,雖然圖解說明一單個機器,但術語「機器」亦應視為包含個別地或聯合地執行用以執行本文中所論述之方法中之任何一或多者之一指令集(或多個指令集)之機器之任何集合。
實例性電腦系統600包含一處理裝置602、一主記憶體604(例如,唯讀記憶體(ROM)、快閃記憶體、諸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)之動態隨機存取記憶體(DRAM)等)、一靜態記憶體606(例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等)及一資料儲存裝置618,該等裝置經由一匯流排630彼此通信。
處理裝置602表示一或多個一般用途處理裝置(諸如,一微處理器、一中央處理單元或諸如此類)。更特定而言,該處理裝置可係複雜指令集計算(CISC)微處理器、精簡指令集計算(RISC)微處理器、極長指令字(VLIW)微處理器或實施其他指令集之處理器或者實施指令集之一組合之處理器。處理裝置602亦可係一或多個特殊用途處理裝置(諸如,一特殊應用積體電路(ASIC)、一場可程式化閘陣列(FPGA)、一數位信號處理器(DSP)、網路處理器或諸如此類)。處理裝置602經組態以執行用於執行本文中所論述之操作及步驟之指令626。
電腦系統600可進一步包含一網路介面裝置608以經由網路620通信。電腦系統600亦可包含一視訊顯示單元610(例如,一液晶顯示器(LCD)或一陰極射線管(CRT))、一文數輸入裝置612(例如,一鍵盤)、一游標控制裝置614(例如,一滑鼠)、一圖形處理單元622、一信號產生裝置616(例如,一揚聲器)、視訊處理單元628及音訊處理單元632。
資料儲存裝置618可包含其上儲存有體現本文中所闡述之方法或功能中之任何一或多者之一或多個指令集或軟體626之一機器可讀儲存媒體624(亦稱作一電腦可讀媒體)。指令626亦可在由電腦系統600 執行其期間完全地或至少部分地駐存於主記憶體604及/或處理裝置602內,主記憶體604及處理裝置602亦構成機器可讀儲存媒體。
在一項實施方案中,指令626包含用以實施對應於一指數分拆器(例如,圖1之指數分拆器111或圖3之指數分拆器320)之功能性之指令。雖然在一實例性實施方案中將機器可讀儲存媒體624展示為一單個媒體,但術語「機器可讀儲存媒體」應視為包含儲存一或多個指令集之一單個媒體或多個媒體(例如,一集中式或分散式資料庫及/或相關聯快取記憶體及伺服器)。術語「機器可讀儲存媒體」亦應視為包含能夠儲存或編碼用於由機器執行之一指令集且致使機器執行本發明之方法中之任何一或多者之任何媒體。因此,術語「機器可讀儲存媒體」應視為包含(但並不限於)固態記憶體、光學媒體及磁性媒體。
已在演算法及對一電腦記憶體內之資料位元之操作之符號表示方面呈現前述詳細說明之某些部分。此等演算法說明及表示係由熟習資料處理技術者用以最有效地將其工作之實質傳達至其他熟習此項技術者之方法。此處且一般而言,將一演算法設想為達到一期望結果之一自洽操作順序。該等操作係需要對實體量之實體操縱之彼等操作。通常(但未必),此等量採取能夠被儲存、組合、比較及以其他方式加以操縱之電信號或磁信號之形式。已證明,主要出於常用之原因,將此等信號稱作位元、值、元素、符號、字元、項、數字或諸如此類有時比較方便。
然而,應記住,所有此等及類似術語將與適當實體量相關聯且僅係應用於此等量之方便標籤。除非如自以上論述顯而易見另有具體陳述,否則應瞭解,在本說明通篇中,利用諸如「識別」或「判定」或「執行(executing)」或「執行(performing)」或「收集」或「形成」或「發送」或諸如此類之術語之論述係指一電腦系統或類似電子計算裝置之動作及程序,其對表示為電腦系統之暫存器及記憶體內之實體 (例如,電子)量之資料進行操縱並將其變換成類似地表示為電腦系統記憶體或暫存器或其他此等資訊儲存裝置內之實體量之其他資料。
本發明亦係關於一種用於執行本文中之操作之設備。此設備可具體針對預期目的而構造,或其可包括一通用電腦,該通用電腦由儲存於該電腦中之一電腦程式來選擇性地啟動或重新組態。此一電腦程式可儲存於一電腦可讀儲存媒體中,諸如(但並不限於)任何類型之碟(包含軟碟、光碟、CD-ROM及磁光碟)、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁卡或光卡或適合於儲存電子指令之任何類型之媒體,其各自耦合至一電腦系統匯流排。
本文中所呈現之演算法及顯示器並不與任何特定電腦或其他設備內在地相關。各種通用系統可與根據本文中之教示之程式一起使用,或可證明構造用以執行方法之一更專門化設備為方便的。用於各種此等系統之結構將顯現為在下文中之說明中所陳述。另外,並非參考任何特定可程式化語言而闡述本發明。將瞭解,可使用各種可程式化語言來實施如本文中所闡述之本發明之教示。
本發明可提供為一電腦程式產品或軟體,該電腦程式產品或軟體可包含其上儲存有指令之一機器可讀媒體,該等指令可用以程式化一電腦系統(或其他電子裝置)以執行根據本發明之一程序。一機器可讀媒體包含用於以由一機器(例如,一電腦)可讀之一形式儲存資訊之任何機構。舉例而言,一機器可讀(例如,電腦可讀)媒體包含一機器(例如,一電腦)可讀儲存媒體,諸如一唯讀記憶體(「ROM」)、隨機存取記憶體(「RAM」)、磁盤儲存媒體、光學儲存媒體、快閃記憶體裝置等。
在前述說明書中,已參考本發明之具體實例性實施方案闡述本發明之實施方案。將顯而易見,在不背離如以下申請專利範圍書中所陳述之本發明之實施方案之較寬廣精神及範疇之情況下,可對本發明 做出各種修改。因此,應將本說明書及圖式視為具有一說明性意義而非一限制性意義。

Claims (19)

  1. 一種用於加密操作之方法,其包括:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;使用基於該第一分擔值及該第二分擔值之一第一方程式來更新一第一暫存器之一值;使用基於該第二分擔值之一第二方程式來更新一第二暫存器之一值;及基於該第二分擔值之一位元值而由一處理裝置選擇待用於一加密操作中之該第一暫存器之該值或該第二暫存器之該值中之一者,其中回應於該第二分擔值之該位元值處於一第一值時,選擇該第一暫存器之該值以在該加密操作中使用,且回應於該第二分擔值之該位元值處於不同於該第一值之一第二值時,選擇該第二暫存器之該值以在該加密操作中使用。
  2. 如請求項1之方法,其中對應於該指數值的該第一分擔值與該第二分擔值之該組合係該第一分擔值與該第二分擔值之間的一邏輯或算術運算。
  3. 如請求項1之方法,其進一步包括:基於該第一暫存器或該第二暫存器之該選定值而執行該加密操作。
  4. 如請求項3之方法,其中該第一暫存器或第二暫存器之該選定值對應於基於對應於該第一分擔值及該第二分擔值之該指數值的一群取冪,且其中該加密操作進一步基於該群取冪。
  5. 如請求項1之方法,其中該第二分擔值之該位元值係該第二分擔值之最低有效位元或最高有效位元。
  6. 如請求項1之方法,其中該第一方程式及該第二方程式各自與功率消耗相關聯以減小對一差動功率分析(DPA)攻擊之易感性。
  7. 一種用於加密操作之系統,其包括:一第一暫存器及一第二暫存器,其用以儲存一數學群之元素;及一處理裝置,其耦合至該第一暫存器及該第二暫存器且用以:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;使用基於該第一分擔值及該第二分擔值之一第一方程式來更新一第一暫存器之一值;使用基於該第二分擔值之一第二方程式來更新一第二暫存器之一值;及基於該第二分擔值之一位元值而由一處理裝置選擇待用於一加密操作中之該第一暫存器之該值或該第二暫存器之該值中之一者,其中回應於該第二分擔值之該位元值處於一第一值時,選擇該第一暫存器之該值以在該加密操作中使用,且回應於該第二分擔值之該位元值處於不同於該第一值之一第二值時,選擇該第二暫存器之該值以在該加密操作中使用。
  8. 如請求項7之系統,其中對應於該指數值的該第一分擔值與該第二分擔值之該組合係該第一分擔值與該第二分擔值之間的一邏輯或算術運算。
  9. 如請求項7之系統,其中該處理裝置進一步用以:基於該選定第一暫存器或該選定第二暫存器之該值而執行該加密操作。
  10. 如請求項9之系統,其中該第一暫存器或該第二暫存器之該選定 值對應於基於對應於該第一分擔值及該第二分擔值之該指數值的一群取冪,且其中該加密操作進一步基於該群取冪。
  11. 如請求項7之系統,其中該第二分擔值之該位元值係該第二分擔值之最低有效位元或最高有效位元。
  12. 如請求項7之系統,其中該第一方程式及該第二方程式各自與功率消耗相關聯以減小對一差動功率分析(DPA)攻擊之易感性。
  13. 一種非暫時性電腦可讀媒體,其包含在由一處理裝置存取時致使該處理裝置執行包括以下各項之操作之資料:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;使用基於該第一分擔值及該第二分擔值之一第一方程式來更新一第一暫存器之一值;使用基於該第二分擔值之一第二方程式來更新一第二暫存器之一值;及基於該第二分擔值之一位元值而選擇待用於一加密操作中之該第一暫存器之該值或該第二暫存器之該值中之一者,其中回應於該第二分擔值之該位元值處於一第一值時,選擇該第一暫存器之該值以在該加密操作中使用,且回應於該第二分擔值之該位元值處於不同於該第一值之一第二值時,選擇該第二暫存器之該值以在該加密操作中使用。
  14. 如請求項13之非暫時性電腦可讀媒體,其中對應於該指數值的該第一分擔值與該第二分擔值之該組合係該第一分擔值與該第二分擔值之間的一邏輯或算術運算。
  15. 如請求項13之非暫時性電腦可讀媒體,其中該等操作進一步包括:基於該選定第一暫存器或該選定第二暫存器之該值而執行該 加密操作。
  16. 如請求項15之非暫時性電腦可讀媒體,其中該第一暫存器或該第二暫存器之該選定值對應於基於對應於該第一分擔值及該第二分擔值之該指數值的一群取冪,且其中該加密操作進一步基於該群取冪。
  17. 如請求項13之非暫時性電腦可讀媒體,其中該第一方程式及該第二方程式各自與功率消耗相關聯以減小對一差動功率分析(DPA)攻擊之易感性。
  18. 一種用於加密操作之方法,其包括:接收一第一分擔值及一第二分擔值,其中該第一分擔值與該第二分擔值之一組合對應於一指數值;基於該第一分擔值而修改一第一暫存器及一第二暫存器;基於該第二分擔值而修改該第一暫存器及該第二暫存器;及基於該經修改的第一暫存器及該經修改的第二暫存器而由一處理裝置選擇待用於一加密操作中之該第一暫存器之一值或該第二暫存器之一值中之一者,其中回應於該修改的第一暫存器之一位元值處於一第一值時,選擇該第一暫存器之該值以在該加密操作中使用,且回應於該修改的第二暫存器之一位元值處於不同於該第一值之一第二值時,選擇該第二暫存器之該值以在該加密操作中使用。
  19. 如請求項18之方法,其中對該第一暫存器及該第二暫存器之該修改包括:修改該第一暫存器之一位址及該第二暫存器之一位址或修改該第一暫存器之該值及該第二暫存器之該值。
TW104132617A 2014-10-03 2015-10-02 用於加密操作之指數分拆技術 TWI686722B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462059477P 2014-10-03 2014-10-03
US62/059,477 2014-10-03

Publications (2)

Publication Number Publication Date
TW201629829A TW201629829A (zh) 2016-08-16
TWI686722B true TWI686722B (zh) 2020-03-01

Family

ID=54266661

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104132617A TWI686722B (zh) 2014-10-03 2015-10-02 用於加密操作之指數分拆技術

Country Status (5)

Country Link
US (3) US10389520B2 (zh)
EP (1) EP3202079B1 (zh)
CN (1) CN106716344B (zh)
TW (1) TWI686722B (zh)
WO (1) WO2016053792A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3069671A1 (fr) 2017-07-25 2019-02-01 Stmicroelectronics (Rousset) Sas Protection d'un calcul iteratif contre des attaques horizontales
EP3579493A1 (fr) 2018-06-08 2019-12-11 STMicroelectronics (Rousset) SAS Protection d'un calcul itératif
EP3579492A1 (fr) 2018-06-08 2019-12-11 STMicroelectronics (Rousset) SAS Protection d'un calcul itératif
FR3094522B1 (fr) 2019-03-29 2021-11-19 St Microelectronics Rousset Protection d’un calcul itératif

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1691501A1 (en) * 1998-01-02 2006-08-16 Cryptography Research Inc. Leak-resistant cryptography method an apparatus
TW200822665A (en) * 2006-11-09 2008-05-16 Matsushita Electric Ind Co Ltd Encryption calculation circuit
TW201141173A (en) * 2009-12-04 2011-11-16 Cryptography Res Inc Verifiable, leak-resistant encryption and decryption

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675649A (en) * 1995-11-30 1997-10-07 Electronic Data Systems Corporation Process for cryptographic key generation and safekeeping
US5987131A (en) * 1997-08-18 1999-11-16 Picturetel Corporation Cryptographic key exchange using pre-computation
WO2002077929A2 (en) * 2001-03-24 2002-10-03 Votehere, Inc. Verifiable secret shuffles and their application to electronic voting
WO2004055756A1 (ja) 2002-12-18 2004-07-01 Fujitsu Limited 秘密鍵を用いた耐タンパ楕円曲線暗号処理
WO2005008955A1 (ja) 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
CN1985458B (zh) * 2003-11-16 2013-05-08 桑迪斯克以色列有限公司 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
US7290023B2 (en) * 2003-11-20 2007-10-30 International Business Machines Corporation High performance implementation of exponent adjustment in a floating point design
WO2007048430A1 (en) 2005-10-28 2007-05-03 Telecom Italia S.P.A. A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems
DE102006014353B4 (de) 2006-03-28 2007-11-22 Siemens Ag Verfahren zum sicheren Ermitteln von Daten
US8670557B2 (en) 2007-09-10 2014-03-11 Spansion Llc Cryptographic system with modular randomization of exponentiation
WO2009118795A1 (ja) 2008-03-28 2009-10-01 富士通株式会社 サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
KR101610917B1 (ko) 2010-03-08 2016-04-11 삼성전자주식회사 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
US9400636B2 (en) 2011-02-11 2016-07-26 Infineon Technologies Ag Apparatus and method for calculating a result in a scalar multiplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1691501A1 (en) * 1998-01-02 2006-08-16 Cryptography Research Inc. Leak-resistant cryptography method an apparatus
TW200822665A (en) * 2006-11-09 2008-05-16 Matsushita Electric Ind Co Ltd Encryption calculation circuit
TW201141173A (en) * 2009-12-04 2011-11-16 Cryptography Res Inc Verifiable, leak-resistant encryption and decryption

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Yiruo He, "Highly secure cryptographic computations against side-channel attacks", Electronic Theses and Dissertations.,2012/10/19 *
Yiruo He, "Highly secure cryptographic computations against side-channel attacks", Electronic Theses and Dissertations.,2012/10/19。

Also Published As

Publication number Publication date
US20200076569A1 (en) 2020-03-05
US10389520B2 (en) 2019-08-20
EP3202079A1 (en) 2017-08-09
CN106716344B (zh) 2021-04-30
US11032060B2 (en) 2021-06-08
US11658799B2 (en) 2023-05-23
TW201629829A (zh) 2016-08-16
EP3202079B1 (en) 2020-07-08
US20210391975A1 (en) 2021-12-16
US20170257210A1 (en) 2017-09-07
WO2016053792A1 (en) 2016-04-07
CN106716344A (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
US20200274691A1 (en) Multiplicative blinding for cryptographic operations
US11620109B2 (en) Converting a boolean masked value to an arithmetically masked value for cryptographic operations
US20230379133A1 (en) Multiplicative masking for cryptographic operations
US11658799B2 (en) Exponent splitting for cryptographic operations
US11902432B2 (en) System and method to optimize generation of coprime numbers in cryptographic applications
WO2020092257A1 (en) Constant time secure arithmetic-to-boolean mask conversion
US11101981B2 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
US11418334B2 (en) Protecting modular inversion operation from external monitoring attacks
US20220085999A1 (en) System and method to optimize decryption operations in cryptographic applications
CN111712816A (zh) 使用密码蒙蔽以用于高效地使用蒙哥马利乘法
US20220085998A1 (en) System and method to generate prime numbers in cryptographic applications
JP2009130871A (ja) 鍵共有方法、第1装置、第2装置、及びそれらのプログラム
CN115730295A (zh) 椭圆曲线密码学过程的安全执行
Wei et al. The Study of Password Authentication System Based on Elliptic Curve Cryptosystem