TW201909593A - 用於模糊化裝置操作的系統、方法、及設備 - Google Patents

用於模糊化裝置操作的系統、方法、及設備 Download PDF

Info

Publication number
TW201909593A
TW201909593A TW107117781A TW107117781A TW201909593A TW 201909593 A TW201909593 A TW 201909593A TW 107117781 A TW107117781 A TW 107117781A TW 107117781 A TW107117781 A TW 107117781A TW 201909593 A TW201909593 A TW 201909593A
Authority
TW
Taiwan
Prior art keywords
cryptographic
parameters
program
processor
random number
Prior art date
Application number
TW107117781A
Other languages
English (en)
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 TW201909593A publication Critical patent/TW201909593A/zh

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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]
    • 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/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本揭露的實施例大致上關於用於模糊化裝置操作的系統和方法,具體來說關於時序和功率消耗資訊。

Description

用於模糊化裝置操作的系統、方法、及設備 【相關申請案之交互參照】
本申請案依35 U.S.C.§119(e)主張2017年5月26日申請之美國臨時專利申請案第62/511,734號之優先權,其揭露係以全文引用方式併入本文中。
本揭露的實施例大致上關於用於模糊化裝置操作的系統和方法,具體來說關於時序和功率消耗資訊。
在密碼術中使用了許多計算,包括計算私密金鑰,子金鑰和公開金鑰。執行此類計算的裝置用於促進裝置之間的安全和可信通訊。
依據本發明之一實施例,係特地提出一種在一第一裝置與一第二裝置之間通訊的方法,該方法包含:產生一模糊化參數;從該第一裝置提供該模糊化參數連同一或多個密碼參數至該第二裝置;及,回應於利用該一或多個密碼參數和該模糊化參數作為輸入的一密碼程序而接收一第一結果。
100‧‧‧安全系統
110‧‧‧處理器
111‧‧‧驗證/簽章
112‧‧‧RSA驗證/簽章
113‧‧‧AES CFB密碼/反密碼
114‧‧‧CRT RSA加密/解密
115‧‧‧填充資料
116、117‧‧‧共享記憶體
120‧‧‧數學引擎
130‧‧‧隨機數產生器
140‧‧‧周邊介面
150‧‧‧記憶體
302、304、306、308、310、312、314、316、318‧‧‧操作
400、450‧‧‧功率波形
所屬技術領域中具有通常知識者可自發明內容結合以下附圖瞭解本揭露之實施例之目的及優點:圖1繪示根據本揭露的實施例的實施各種程序的安全系統。
圖2繪示經組態以根據本揭露的實施例執行各種程序的處理器。
圖3繪示根據本揭露的實施例之藉由圖1的系統執行密碼程序的方法流程圖。
圖4A和圖4B繪示根據本揭露的實施例所執行的兩個密碼程序之間的功率消耗差異。
下文實施方式將參考形成其部分之附圖,且其中利用圖解方式展示本揭露可實踐於其中之實施例的具體實例。充分詳細描述這些實施例以使所屬技術領域中具有通常知識者能夠實踐本揭露。然而,可利用其他實施例,並且可進行結構、材料及程序變更,而未脫離本揭露之範疇。本文中呈現之圖解闡釋非意指係任何特定方法、系統、裝置、或結構之實際視圖,而僅是經採用以描述本揭露之實施例的理想化表示。本文中呈現之圖式非必然按比例繪製。為了讀者便利,在各種圖式中之相似結構或組件可保持相同或相似編號;然而,編號之相似性非意謂結構或組件之大小、組成、組態、或任何其他性質必然相同。
應易於明白,如本文中大致上描述及圖式中所繪示之實施例之組件可依各式各樣不同組態予以排列及設計。因此,下文描述之各種實施例非意圖限制本揭露之範疇,而僅是表示各種實施例。雖 然在圖式中可呈現實施例之各種態樣,然而該等圖式非必然按比例繪製,除非具體指示。
另外,所展示及描述之具體實施方案僅係實例且不應解讀為實施本揭露之唯一方式,除非本文中另有指明。元件、電路、及功能可依方塊圖形式予以展示,以免不必要的細節混淆本揭露。反之,所展示及描述之具體實施方案僅係例示性且不應解讀為實施本揭露之唯一方式,除非本文中另有指明。另外,區塊定義及各種區塊之間之邏輯分割係一具體實施方案之例示。所屬技術領域中具有通常知識者將易於明白,可藉由許多其他分割解決方案實踐本揭露。在絕大多數情況中,已省略關於時序及類似者考量之細節,其中此類細節不是徹底瞭解本揭露所必須者且係在相關技術領域中具有通常知識者之能力內。
所屬技術領域中具有通常知識者將瞭解可使用任何各式各樣不同科技及技術來表示資訊及信號。例如,可藉由電壓、電流、電磁波、磁場或粒子、光學場或粒子、或其等之任何組合來表示本說明書通篇中所引用的資料、指令、命令、資訊、信號、位元、符號、及碼片(chip)。為了清楚呈現及說明,一些圖式可將信號繪示為一單一信號。所屬技術領域中具有通常知識者將理解,該信號可表示一匯流排之信號,其中該匯流排可具有各式各樣位元寬度,並且本揭露可實施在任何數目個資料信號,包括一單一資料信號。
可用一般用途處理器、特殊用途處理器、數位信號處理器(DSP)、積體電路(IC)、特殊應用積體電路(ASIC)、場可程式化閘陣 列(FPGA)或經設計以執行本文描述之功能的其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件、或其等之任何組合來實施或執行結合本文中揭示之實施例所描述的各種說明性邏輯區塊、模組、及電路。一般用途處理器(本文中亦可稱為主機處理器或簡單地稱為主機)可係一微處理器,但是在替代方案中,該處理器可係任何習知處理器、控制器、微控制器、或狀態機。一處理器亦可實作為運算裝置之一組合,諸如一DSP與一微處理器之一組合、複數個微處理器、一或多個微處理器與一DSP核心結合,或任何其他此類組態。一般用途電腦包括視為特殊用途電腦之處理器,而該一般用途電腦經組態以執行與本揭露之實施例相關的運算指令(例如,軟體程式碼)。
可就經描繪為一流程圖(flowchart)、一流程圖示(flow diagram)、一結構圖、或一方塊圖的一程序而論來描述實施例。雖然一流程圖可描述操作動作為一序列程序,但是許多這些動作可依另一序列、平行、或實質上同時實施。此外,可重新排列動作順序。一程序可對應於一方法、一執行緒、一函式、一程序、一副常式、一副程式等。另外,本文中揭示之方法可以硬體、軟體、或兩者實作。若以軟體實作,則函式可作為在電腦可讀取媒體上之一或多個指令或程式碼予以儲存或傳輸。電腦可讀取媒體包括電腦儲存媒體及通訊媒體兩者,包括促進在不同地點之間傳送一電腦程式的任何媒體。
本文中使用諸如「第一(first)」、「第二(second)」等標號對一元件的任何指涉非限制該等元件之數量或順序,除非明確指明此類限制。反而是,本文中可使用這些標號作為區別兩個或更多個元 件或一元件之例項的便利方法。因此,對第一元件及第二元件的指涉非意謂可採用僅兩個元件,亦非意謂該第一元件必須以某種方式在該第二元件之前。此外,除非另有指明,否則一組元件可包含一或多個元件。
本文描述之元件可包括相同元件之多個例項。這些元件可大致上藉由一數值指示項(例如,110)予以指示及藉由該數值指示符後續接著一字母指示項(例如,110A)或之前有一「破折號」之一數值指示項(例如,110-1)予以具體指示。為了易於下文說明,在絕大多數情況中,元件符號指示符以簡介或最充分論述元件之圖式的圖號開始。因此,例如,在圖1上之元件識別項將大部分係以數值格式1xx及在圖4之元件識別項將大部分係以4xx。
如本文中所使用,對一給定參數、性質、或條件引用用語「實質上(substantially)」意指且包括所屬技術領域中具有通常知識者將瞭解該給定參數、性質、或條件在小變化程度內符合例如諸如可接受之製造容限內的程度。舉實例而言,取決於實質上符合的特定參數、性質、或條件,該參數、性質、或條件可係至少90%符合、至少95%符合、或甚至至少99%符合。
如本文所用,提及「密碼程序(cryptographic process)」是指操作,包括形成與執行加密和解密相關的部分或全部協定的計算,解析金鑰、子金鑰、或執行與密碼相關的任何其他步驟或計算。密碼程序可由裝置執行,例如基於韌體或軟體執行協定的一些部分的密碼處理器或一般用途處理器。
一旦理解到計算是在裝置處執行(其包括模反元素計算(modular inverse calculations)),舉非限制性實例,可透過觀察執行此類計算的裝置的特性來揭露裝置的時序/功率消耗。更具體地講,如果輸入與時間/功率特徵之間的關係是已知的,則可能由在計算期間之裝置的時序/功率特徵判定對設備的輸入。例如,如果裝置使用私密金鑰來解密資料,觀察解密期間裝置的時序/功率特徵可揭露有關於向設備所提供並且用於這些計算的私密金鑰或其他密碼參數的資訊。
本文所述的各種實施例相關於用於模糊化裝置之外部可觀察特性的技術,該等技術包括但不限於可應用於涉及判定最大公因數的任何計算的技術。此類技術可(但不限於)模糊化執行此類計算的裝置的時序資訊和功率消耗資訊。作為一個具體實例,本文所述的技術應用於延伸歐氏最大公因數演算法(Extended Euclidean Greatest Common Divisor Algorithm,XGCD)。
如本文所用,「模糊化裝置特性(obfuscating device characteristics)」或類似用語是指使裝置的任何外部可觀察特性模糊或不清晰,包括但不限於操作期間裝置的特性。此類特性可包括但不限於:功率消耗、時序資訊、磁場資訊;熱特徵資訊,其他特性類似的資訊以及其組合。模糊化(obfuscation)並不意味著資訊為不可觀察,但這可能是結果,並且有意包括使此類資訊變得較不可用或需要更多的處理來使此類資訊變得可用。
在密碼術中使用模反元素計算,包括計算私密金鑰、子金鑰、和公開金鑰。計算利用了以下關係: A*A-1=k*m+1
其中「m」為模數,並且「k」為整數。
且因此,A*A-1≡1。可使用模反元素關係從幾個基礎金鑰中計算出一或多個私密金鑰和子金鑰。
XGCD是一種使用歐式演算法判定「模數m」的反元素的技術(該算法解出了最大公因數),接著以逆代法(back substitution)解出貝祖等式(Bezout’s Identity)。XGCD用於密碼術和公開/私密金鑰加密/解密方法。
各種實施例關於一種用於計算模反元素的更安全技術,在一個實施例中,其藉由使用安全二元XGCD演算法(SB-XGCD)。各種實施例是基於以下理解而建立:用於從功率和時序特徵導出私密金鑰的許多技術依賴於對多個迭代的觀察,例如,在觀察下執行多次計算的裝置。因此,各種實施例利用隨機元素作為各計算中的模糊化參數,使得連續迭代之間的關係被模糊化。這使得其數量級更難以從執行計算的設備的功率和時序特徵判定輸入值。
下文描述了使用SB-XGCD的技術之一個實施例(也稱為「SB-XGCD技術」)。SB-XGCD技術始於瞭解關係GCD(x,y)=GCD(x,y+r*x)=1。表達式確認了若x<y,「y+r*x」不應影響x與y的GCD計算。因此,至少一個密碼參數(該情況中為「x」)可與所產生的隨機數成比例地修改。將此代入貝祖等式以定義方程式1中所述的關係,其應滿足: a*x+b*(y+r*x)=GCD(x,y)=1 (方程式1)
「r」是隨機數。
「a」和「b」為整數。
「x」和「y」為正整數,其中x<y,GCD(x,y)=GCD(x,y%x)=1。
在一些實施例中,隨機數r可以是具有12位元前導零的32位元字組。可將12位元零儲存在記憶體中以避免XGCD溢位。因此,在此實施例中的實際隨機效應可為20位元(32位元減去12位元)。當然,還設想了其他字組大小。此外,亦設想取決於所預期之最大借位/進位而調整保留作為前導零的位數,以避免溢位情況。
可執行二元XGCD來判定滿足方程式1的a和b。在電腦上執行此計算時存在一些約束,其中之一是可能發生溢位進而導致a和b為負。可以執行檢查以確定是否發生溢位。方程式1重新整理為方程式2,如下:(a+b*r)*x+b*y=1 (方程式2)
可以執行檢查以確定是否b0。如果b<0,則有a和b的值之方程式2重新整理為方程式3,如下:(a+(b+m*y)*r)*x+(b+n*x)*y=1 (方程式3)
其中「m」和「n」為使b+m*y和b+n*x兩者均為正的最小正整數。m和n的判定是一迭代程序,其執行直到在與b相加時n和m導致正整數為止。
執行一進一步檢查以判定是否(a+(b+m*y)*r)0。如果(a+(b+m*y)*r)<0,則方程式3之左式重新整理為方程式4,如下:(a+(b+m*y)*r+w*y)*x+(b+n*x)*y=1 (方程式4)
其中「w」為使a+(b+m*y)*r+w*y為>0的最小正整數。w的判定亦是一迭代程序,其執行直到在與a相加時w導致正整數為止。
一旦約束滿足,可將方程式4重新整理成模反元素方程式5和方程式6:x-1%y=a+(b+m*y)*r+w*y (方程式5)
y-1%x=b+n*x (方程式6)
所述技術可應用於依賴於GCD計算的任何計算,諸如歐氏演算法。
應用此技術至密碼環境,對於CRT RSA(應用中國餘數定理之RSA演算法(Rivest,Shamir,Adleman algorithm implementing Chinese remainder theorem)),P和Q為私密金鑰,且dp,dq,P-1及Q-1為子金鑰。用於判定此等金鑰的模反元素方程式可如下:dP=e-1%(p-1)
dq=e-1%(p-1)
pinv=p-1%q
qinv=q-1%p
對於CRT RSA而言,舉非限制性實例,由於在晶片中的記憶體限制,子金鑰dP及dq以及pinv及qinv可非預先計算並儲存在記憶體中的。僅儲存金鑰p和q,並且在每次需要子金鑰時,使用基於p和q的子金鑰運算來即時計算子金鑰。因此,執行該計算的裝置的時序和功率特徵易受觀察,並且金鑰p和q若被遞送作為參數,則容易推斷。
圖1繪示利用上述SB-XGCD技術的實施例的安全系統100。在一個實施例中,安全系統100可以是安全密碼處理器,諸如可信賴平臺模組(Trusted Platform Module,TPM)。安全系統100包括處理器110,該處理器可操作地耦合到數學引擎(math engine)120、隨機數產生器130、周邊介面、和記憶體150(例如,快閃記憶體)。在一個實施例中,處理器110為RISC(精簡指令集電腦(reduced instruction set computer))處理器,諸如ARM®處理器。
隨機數產生器130可經組態以產生隨機數(例如,真隨機數、偽隨機數等)。如本文所用,用語「隨機數(random number)」可以是真隨機數或偽隨機數。舉非限制性實例,隨機數產生器130可以是晶片上的非遞迴隨機數產生器、線性反饋移位暫存器、或隨機數產生軟體。若隨機數產生器130被呼叫,則向處理器110提供一隨機數。
數學引擎120可為處理器110之一韌體延伸模組或一分開的特殊用途微控制器。數學引擎120經組態以執行本文所述的SB-XGCD技術的實施例。數學引擎120接受作為參數p、q和r作為對SB-XGCD技術的函數呼叫的輸入。數學引擎120將所執行的計算結果送回至處理器110,其可包括子金鑰或其他私密金鑰。在一個實施例中,可在處理器110和數學引擎120兩者均可存取的共享記憶體空間中提供結果。
周邊介面140可使得安全系統100能夠與利用密碼金鑰的任何數量的裝置通訊,包括圖2中所繪示的CRT RSA簽章/驗證113。
圖2繪示根據本揭露的實施例之處理器110。處理器110經組態以與多種密碼方案一起使用,包括以下之一或多者:數位簽章方案諸如ECD(橢圓曲線數位簽章)驗證/簽章111、CRT RSA驗證/簽章112、加密/解密方案AES CFB(高級加密標準密碼反饋)密碼/反密碼113、和CRT RSA加密/解密114。每個此類方案被識別為處理器110中的模組。在各種實施例中,處理器110與數學引擎120結合可判定子金鑰、簽章、加密/解密結果及類似者。資料的填充(padding)115可包括對參數字組(例如,隨機數)加上前導零。
處理器110可包括用於提供操作及可由數學引擎120存取之函數資料的共享記憶體116。在一個實施例中,處理器110對數學引擎120提供資料和操作在共享記憶體116中的位址。處理器110可包括可由數學引擎120存取的另一共享記憶體117,用於向處理器 110提供操作的結果。在一個實施例中,數學引擎120向處理器110提供所請求操作的結果在共享記憶體117中的位址。
安全系統100的實施例可在安全密碼系統中實施,所述安全密碼系統利用歐氏演算法以產生金鑰,例如金鑰鍊符記(key fob token)(例如RSA SecurID)、自動櫃員機、包括金鑰、硬體鎖、軟體執照等的金融交易。在一個實施例中,安全系統100可被實施以鑑認裝置(諸如行動裝置的印表機墨水匣或周邊設備)為真品而不是OEM(原廠代工製造)。
圖3繪示根據本揭露的實施例的圖1的安全系統100的操作流程圖。實施例可包括產生用於加密及/或解密操作的金鑰。一些實施例還可包括驗證由另一個裝置接收的簽章,此可有助於驗證數學引擎在金鑰產生期間是否使用模糊化參數。當處理器110在操作302處接收請求時,此程序可開始。在一些實施例中,請求可以是加密請求、解密請求、及/或驗證請求。在操作304處,處理器110回應於請求而判定操作,其可包括產生一經儲存私密金鑰以判定所接收公開金鑰是否為真實。在操作306處,作為待執行的操作的一部分,處理器110向數學引擎120提供函數資料和所請求操作。在操作308處,由數學引擎120接收的函數資料包括一隨機產生數,其是個別地或是併入到隨機數和金鑰的乘積中。在操作310處,數學引擎120回應於函數資料產生所需的(若干)私密金鑰,並且在操作312處,向處理器110提供所產生的(若干)金鑰。私密金鑰是使用如上所述的SB-XGCD產生且用於驗證簽章。由於操作資料包括隨機產生的資料(例 如,由隨機數產生器產生的隨機數),因此每次當使用SB-XGCD產生一私密金鑰,使用一不同隨機數作為輸入之一。在一些實施例中,隨機產生的資料可由數學引擎120而不是處理器110產生。
在操作314處,處理器110接收所產生的金鑰。在操作316處,對於包括簽章驗證的操作,處理器110可分析和解讀外部偵測到的簽章以回應於所產生的金鑰而判定其是否正確/通過驗證。所偵測到的簽章可與可能已從先前操作偵測到的經儲存簽章進行比較。在操作318處,處理器110回應於其對簽章的解讀而返回真(true)或偽(false)。若事實上所偵測到的簽章係實質上不同,可能表示一隨機變數已被插入數學引擎120內的加密或解密操作中作為一模糊化參數。
所屬技術領域中具有通常知識者將理解,結合圖3所述的程序僅僅是本文所述技術的一個實施例,並且可用於其他程序,其中觀察裝置的外部特性可揭露有關裝置性能的資訊,包括但不限於其他密碼程序。
圖4A和圖4B是功率波形400、450,其等繪示回應於向數學引擎120提供的隨機產生參數的連續操作之間的功率波形變化。例如,功率波形400可由第一操作產生,該第一操作具有加到操作中的第一隨機變數,並且第二功率波形450可由第二操作產生,該第二操作具有加到操作中的第二隨機變數。因此,產生不同功率波形400、450所涉入的計算可能不同,儘管所產生的金鑰相同。在模糊化輸入之後,所偵測到的功率波形400、450可實質上不同,因此,時序/功率資訊不直接相關於密碼參數。
本說明書中描述之許多功能單元可經繪示、描述、或標示為模組、執行緒(thread)、或程式設計程式碼之其他隔離,以更特別強調其等實施方案獨立性。模組可係至少部分以硬體、以某種或另一種形式實作。例如,一模組可實作為一硬體電路,包含自訂VLSI電路或閘陣列、現用半導體,諸如邏輯晶片、電晶體、或其他離散組件。一模組亦可以可程式化硬體裝置實作,諸如場可程式化閘陣列、可程式化陣列邏輯、可程式化邏輯裝置、或類似者。模組亦可使用軟體或韌體實施、儲存在一實體儲存裝置(例如,一電腦可讀取儲存媒體)上、儲存在記憶體中、或其等之一組合,以供各種類型處理器執行。
可執行程式碼之一所識別模組可例如包含電腦指令之一或多個實體或邏輯區塊,其可例如組織為一執行緒、物件、程序、或函式。然而,一所識別模組之可執行碼不需要實體定位在一起,而是可包含儲存在不同位置中之散指令,當該等散指令邏輯上聯合在一起時,該等散指令包含該模組且達成針對該模組之所述用途。
的確,可執行程式碼之一模組可係一單一指令、或許多指令,且可甚至分散遍及數個不同程式碼片段、分散在不同程式之中,及跨數個儲存裝置或記憶體裝置。相似地,在本文中可在模組內識別及繪示操作資料,並且操作資料可依任何合適的形式體現及組織在任何合適類型資料結構內。操作資料可經收集為一單一資料集,或可分散遍及不同位置(包括分散遍及不同儲存裝置),且可至少部分僅僅作為在一系統或網路上的電子信號而存在。在一模組或一模組之 部分以軟體實作的情況中,該等軟體部分儲存在一或多個實體裝置(在本文中稱為電腦可讀取媒體)上。
在一些實施例中,該等軟體部分以一非暫時性狀態予以儲存,使得該等軟體部分或其等之表示保存在相同實體位置中達一段時期。另外,在一些實施例中,該等軟體部分儲存在一或多個非暫時性儲存裝置上,包括能夠儲存表示該等軟體部分之非暫時性狀態及/或信號之硬體元件,即使該等非暫時性儲存裝置之其他部分可能夠改變及/或傳輸信號。非暫時性儲存裝置的實例係快閃記憶體及隨機存取記憶體(RAM)。非暫時性儲存裝置之另一實例包括唯讀記憶體(ROM),其能儲存表示該等軟體部分之信號及/或狀態達一段時期。然而,儲存該等信號及/或狀態的能力不會被傳輸相同於或表示該等儲存之信號及/或狀態的信號之進一步功能性而減弱。例如,一處理器可存取ROM以獲得表示該等儲存之信號及/或狀態的信號,以執行對應之軟體指令。
額外的非限制性實施例包括:
實施例1.一種在一第一裝置與一第二裝置之間通訊的方法,該方法包含:產生一模糊化參數;從該第一裝置提供該模糊化參數連同一或多個密碼參數至該第二裝置;以及回應於利用該一或多個密碼參數和該模糊化參數作為輸入的一密碼程序而接收一第一結果。
實施例2.如實施例1之方法,其中產生該模糊化參數包含產生一隨機數。
實施例3.如實施例2之方法,其進一步包含與所產生的該隨機數成比例地修改該等密碼參數中的至少一者。
實施例4.如實施例3之方法,其進一步包含將該至少一個密碼參數乘以該隨機數。
實施例5.如實施例1至4中任一項之方法,其進一步包含:產生一第二模糊化參數;從該第一裝置提供該第二模糊化參數連同該一或多個密碼參數至該第二裝置;以及回應於利用該一或多個密碼參數和該模糊化參數作為輸入的一密碼程序來接收一第二結果,其中該第一第二結果實質上與該第一結果相同。
實施例6.如實施例5之方法,其中產生該第二模糊化參數包含產生一第二隨機數。
實施例7.如實施例5之方法,其進一步包含:偵測與該第一密碼程序相關聯的一第一簽章;偵測與該第二密碼程序相關聯的一第二簽章;及判定該第一簽章和該第二簽章實質上不同,儘管來自該密碼程序的該第一結果和該第二結果實質上相同。
實施例8.如實施例1至7中任一項之方法,其中該密碼程序包括加密。
實施例9.如實施例1至8中任一項之方法,其中該密碼程序包括解密。
實施例10.如實施例1至9中任一項之方法,其中該密碼程序包括解析金鑰。
實施例11.如實施例1至11中任一項之方法,其中該密碼程序包括解析子金鑰。
實施例12.一種用於執行一密碼程序的系統,該系統包含:一第一處理器,其經組態以執行一第一密碼程序;及一第二處理器,其耦合至該第一處理器並且經組態以藉由向該第一處理器提供具有至少一些隨機產生的元素的一或多個密碼參數而起始該第一密碼程序,在執行該第一密碼程序時該等隨機產生的元素影響該第一處理器的一或多個外部可觀察特性。
實施例13.如實施例12之系統,其中該一或多個外部可觀察特性,功率消耗、時序資訊、磁場資訊、熱特徵資訊、或其一組合之至少一者。
實施例14.如實施例12或實施例13之系統,其中該密碼程序包括計算該一或多個密碼參數中之兩者的一最大公因數。
實施例15.如實施例14之系統,其中該密碼程序是模反元素計算。
實施例16.如實施例15之系統,其中該模反元素計算包括延伸歐氏最大公因數(XGCD)技術。
實施例17.如實施例15之系統,其中該XGCD技術包括安全二元XGCD技術。
實施例18.如實施例12至17中任一項之系統,其進一步包含一隨機數產生器。
實施例19.一種密碼裝置,其包含:一第一處理器,其經組態以回應於一第一組密碼參數而執行一密碼程序;及一第二處理器,其經組態以藉由提供不可與該第一組密碼參數直接相關的一第二組密碼參數來起始該第一處理器處的該密碼程序。
實施例20.如實施例19之密碼裝置,其進一步包含一隨機數產生器。
實施例21.如實施例20之密碼裝置,其中該第二處理器經組態以在各計算中將該第一組密碼參數與來自該隨機數產生器的一隨機數組合為一模糊化參數以產生該第二組密碼參數。
雖然本文中已關於某些所繪示之實施例描述本揭露,但是所屬技術領域中具有通常知識者將理解及明白,本發明不如此受限制。反而是,可對所繪示及描述之實施例進行許多新增、刪除及修改,而未脫離本發明之範疇,如下文申請專利範圍連同其法律均等物。此外,來自一實施例之特徵可與另一實施例之特徵組合,然而仍然涵蓋在本發明之範疇內,如發明人所預期。

Claims (21)

  1. 一種在一第一裝置與一第二裝置之間通訊的方法,該方法包含:產生一模糊化參數;從該第一裝置提供該模糊化參數連同一或多個密碼參數至該第二裝置;及回應於利用該一或多個密碼參數和該模糊化參數作為輸入的一密碼程序而接收一第一結果。
  2. 如請求項1之方法,其中產生該模糊化參數包含產生一隨機數。
  3. 如請求項2之方法,其進一步包含與所產生的該隨機數成比例地修改該等密碼參數中的至少一者。
  4. 如請求項3之方法,其進一步包含將該至少一個密碼參數乘以該隨機數。
  5. 如請求項1之方法,其進一步包含:產生一第二模糊化參數;從該第一裝置提供該第二模糊化參數連同該一或多個密碼參數至該第二裝置;及回應於利用該一或多個密碼參數和該模糊化參數作為輸入的一密碼程序來接收一第二結果,其中該第一第二結果實質上與該第一結果相同。
  6. 如請求項5之方法,其中產生該第二模糊化參數包含產生一第二隨機數。
  7. 如請求項5之方法,其進一步包含: 偵測與該第一密碼程序相關聯的一第一簽章;偵測與該第二密碼程序相關聯的一第二簽章;及判定該第一簽章和該第二簽章實質上不同,儘管來自該密碼程序的該第一結果和該第二結果實質上相同。
  8. 如請求項1之方法,其中該密碼程序包括加密。
  9. 如請求項1之方法,其中該密碼程序包括解密。
  10. 如請求項1之方法,其中該密碼程序包括解析金鑰。
  11. 如請求項1之方法,其中該密碼程序包括解析子金鑰。
  12. 一種用於執行一密碼程序的系統,該系統包含:一第一處理器,其經組態以執行一第一密碼程序;及一第二處理器,其耦合至該第一處理器並且經組態以藉由向該第一處理器提供具有至少一些隨機產生的元素的一或多個密碼參數而起始該第一密碼程序,在執行該第一密碼程序時該等隨機產生的元素影響該第一處理器的一或多個外部可觀察特性。
  13. 如請求項12之系統,其中該一或多個外部可觀察特性,功率消耗、時序資訊、磁場資訊、熱特徵資訊、或其一組合之至少一者。
  14. 如請求項12之系統,其中該密碼程序包括計算該一或多個密碼參數中之兩者的一最大公因數。
  15. 如請求項14之系統,其中該密碼程序是模反元素計算(modular inverse calculation)。
  16. 如請求項15之系統,其中該模反元素計算包括延伸歐氏最大公因數(XGCD)技術。
  17. 如請求項15之系統,其中該XGCD技術包括安全二元XGCD技術。
  18. 如請求項12之系統,其進一步包含一隨機數產生器。
  19. 一種密碼裝置,其包含:一第一處理器,其經組態以回應於一第一組密碼參數而執行一密碼程序;及一第二處理器,其經組態以藉由提供不可與該第一組密碼參數直接相關的一第二組密碼參數來起始該第一處理器處的該密碼程序。
  20. 如請求項19之密碼裝置,其進一步包含一隨機數產生器。
  21. 如請求項20之密碼裝置,其中該第二處理器經組態以在各計算中將該第一組密碼參數與來自該隨機數產生器的一隨機數組合為一模糊化參數以產生該第二組密碼參數。
TW107117781A 2017-05-26 2018-05-24 用於模糊化裝置操作的系統、方法、及設備 TW201909593A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762511734P 2017-05-26 2017-05-26
US62/511,734 2017-05-26

Publications (1)

Publication Number Publication Date
TW201909593A true TW201909593A (zh) 2019-03-01

Family

ID=62530538

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107117781A TW201909593A (zh) 2017-05-26 2018-05-24 用於模糊化裝置操作的系統、方法、及設備

Country Status (5)

Country Link
US (1) US11444760B2 (zh)
CN (1) CN110710154B (zh)
DE (1) DE112018002723B4 (zh)
TW (1) TW201909593A (zh)
WO (1) WO2018217535A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7155173B2 (ja) * 2017-10-18 2022-10-18 クリプトグラフィ リサーチ, インコーポレイテッド 外部監視攻撃からモジュラーインバージョン演算を保護すること
EP3800951A1 (en) * 2019-10-02 2021-04-07 Bayerische Motoren Werke Aktiengesellschaft Method, computer program and wireless communication device
WO2021126379A1 (en) * 2019-12-17 2021-06-24 Microchip Technology Incorporated Obfuscating cryptographic parameters used in elliptical curve cryptography, and related systems and devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346160B2 (en) 2003-04-23 2008-03-18 Michaelsen David L Randomization-based encryption apparatus and method
GB0313666D0 (en) * 2003-06-13 2003-07-16 Hewlett Packard Development Co RSA cryptographic method and system
WO2008149496A1 (ja) * 2007-05-30 2008-12-11 Panasonic Corporation 情報セキュリティ装置
US8290151B2 (en) * 2007-10-12 2012-10-16 Infineon Technologies Ag Device and method for determining an inverse of a value related to a modulus
US7907724B2 (en) * 2007-10-25 2011-03-15 Infineon Technologies Ag Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem
FR2926651B1 (fr) * 2008-01-23 2010-05-21 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique
JP5548218B2 (ja) * 2009-03-06 2014-07-16 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
DE102010055699A1 (de) * 2010-12-22 2012-06-28 Giesecke & Devrient Gmbh Kryptographisches Verfahren
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
EP3012817A4 (en) 2013-06-18 2017-02-22 Hitachi, Ltd. Storage count verification system
FR3015076B1 (fr) * 2013-12-17 2016-02-05 Oberthur Technologies Generation de cles cryptographiques
US9680647B2 (en) * 2014-03-24 2017-06-13 Infineon Technologies Ag Method of using a token in cryptography
EP3195521B1 (en) * 2014-08-29 2020-03-04 Visa International Service Association Methods for secure cryptogram generation
BR112017012092A2 (pt) 2014-12-12 2018-01-16 Koninklijke Philips Nv dispositivo e método de geração eletrônicos, e programa de computador
SG10201502401XA (en) 2015-03-26 2016-10-28 Huawei Internat Pte Ltd Method of obfuscating data
US10461925B2 (en) * 2016-09-01 2019-10-29 Cryptography Research, Inc. Hardware masked substitution box for the data encryption standard

Also Published As

Publication number Publication date
CN110710154A (zh) 2020-01-17
US11444760B2 (en) 2022-09-13
WO2018217535A1 (en) 2018-11-29
US20180343119A1 (en) 2018-11-29
DE112018002723B4 (de) 2023-12-14
DE112018002723T5 (de) 2020-02-20
CN110710154B (zh) 2024-04-19

Similar Documents

Publication Publication Date Title
US11251935B2 (en) Multiplicative blinding for cryptographic operations
US8139763B2 (en) Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks
US8472621B2 (en) Protection of a prime number generation for an RSA algorithm
US8402287B2 (en) Protection against side channel attacks
EP2273718B1 (en) Cryptographic key generation using a stored input value and a count value stored for later regeneration
US10678707B2 (en) Data processing device and method for cryptographic processing of data
US8509429B2 (en) Protection of a prime number generation against side-channel attacks
EP2332040B1 (en) Countermeasure securing exponentiation based cryptography
US9680647B2 (en) Method of using a token in cryptography
US20210152331A1 (en) Protecting polynomial hash functions from external monitoring attacks
US11902432B2 (en) System and method to optimize generation of coprime numbers in cryptographic applications
TW201909593A (zh) 用於模糊化裝置操作的系統、方法、及設備
US20220085999A1 (en) System and method to optimize decryption operations in cryptographic applications
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
TWI512610B (zh) 利用模數的特殊形式之模組約化
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
US20220085998A1 (en) System and method to generate prime numbers in cryptographic applications
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
US7454625B2 (en) Method and apparatus for protecting a calculation in a cryptographic algorithm
US7496758B2 (en) Method and apparatus for protecting an exponentiation calculation by means of the chinese remainder theorem (CRT)
EP3461053A1 (en) Fault attacks counter-measures for eddsa
JP6262085B2 (ja) データ処理装置及び復号処理方法
Shoufan A fault attack on a hardware-based implementation of the secure hash algorithm SHA-512
CN115801284A (zh) 一种数字签名验证方法、装置、电子设备及存储介质
JP2014145958A (ja) 半導体装置