TW202324967A - 用大整數值進行編碼的白箱處理 - Google Patents
用大整數值進行編碼的白箱處理 Download PDFInfo
- Publication number
- TW202324967A TW202324967A TW111141833A TW111141833A TW202324967A TW 202324967 A TW202324967 A TW 202324967A TW 111141833 A TW111141833 A TW 111141833A TW 111141833 A TW111141833 A TW 111141833A TW 202324967 A TW202324967 A TW 202324967A
- Authority
- TW
- Taiwan
- Prior art keywords
- encoded
- secret
- output
- input
- bytes
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/723—Modular exponentiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Abstract
揭露一種用於根據一或多個已編碼機密安全地處理輸入以產生輸出的方法及設備。在一實施例中,該方法包括由多個機密
s
1, s
2,..., s
n 組成的一組機密
S,基於第一機密
s
1 的隨機編碼產生第一資料結構,且根據輸入及已編碼機密
s
2,..., s
n 執行多個密碼運算以根據白箱實施中的每一機密計算輸出,白箱實施具有在隨機地機密上運算的至少一個進一步的資料結構。
Description
本揭露有關於用於執行密碼運算的系統及方法,特別是用於安全地處理輸入的系統及方法,以產生用於密碼處理(例如加密及解密)的輸出。
多數密碼學的目的是以防止向未經授權的實體進行揭露的方式來允許資訊的傳播。此目的已使用密碼系統及通訊協定 (例如進階加密標準 (AES)、資料加密標準 (DES)及三重資料加密標準(TDES)、Rivest–Shamir–Adleman (RSA)、橢圓曲線密碼學(ECC))來達成。
在實施此類密碼系統的系統中,假設攻擊者只能存取執行密碼運算的演算法的輸入及輸出,而實際處理是在「黑箱」中不可避免地執行。為使此類模型符合要求,黑箱必須提供安全處理環境。此網域中的主動研究包括改良的及專用的密碼系統(例如,輕量型區塊加密、驗證方案、同型公開金鑰演算法)及其加密分析。
雖然這類系統很有效,但仍容易遭到攻擊。例如,通訊協定可能部署在錯誤的環境中,不當地實施的演算法或不合適的參數,可能給攻擊者引來進入點。
新的密碼分析技術,包含在執行加密演算法期間可觀察到的額外側道資訊;執行時機、電磁輻射及功耗等資訊。降低此類側道攻擊是一種挑戰,因為很難將這側道資訊從機密金鑰的運算上解除相互關聯。此外,平台通常會強加尺寸及性能要求,這使得難以部署保護技術。
進一步加劇上述問題,在具有通用處理器(例如,個人電腦、筆記型電腦、平板電腦及智慧型手機)的開放式裝置上執行更多應用程式,而不是在具有安全處理器的裝置上。
為回應上述問題,許多系統使用「白箱」技術,其中假設攻擊者擁有對密碼演算法的軟體實施的完整存取權:二進位檔完全可見且可由攻擊者修改;且攻擊者對執行平台擁有完整的控制權(CPU呼叫、記憶體暫存器等)。在此類系統中,實施本身就是唯一的防線。
白箱密碼首次由Chow等人發表。(Stanley Chow、Philip A. Eisen、Harold Johnson以及Paul C. van Oorschot。用於DRM應用的白箱DES實施。在數位版權管理中的安全及隱私上的ACM研討會的公報中(DRM 2002),電腦科學中的講義的第2696卷,第 1-15 頁。施普林格,2002,在此作為參考併入本文)。白箱密碼學的核心概念是數學上地修改程式,使得程式直接運作在加密及編碼的機密上,而不需要以明文形式呈現。由於這些機密從未以明文形式出現,因此攻擊者可以完全掌握並控制應用程式,且仍無法利用應用程式或從應用程式獲得任何益處。白箱可以是靜態的或動態的。靜態白箱具有固定機密,在建置時以硬式編碼。動態白箱 (如圖示) 可以在執行時間接收已編碼機密。
表格為基礎的白箱轉換構成具有應用程式的函數的隨機對射。這些構成以查詢表(LUT)的形式發表,以便隱藏白箱實施中的潛在機密及其他狀態值。
現今白箱實施中使用的查詢表(LUT)對可保護的運算之字元尺寸強加實際限制。通常,這是 8位元字元的階數,適用於例如AES 的加密。但是,ECC 及 RSA 演算法使用非常大的整數運算。例如,ECC 通常在 256位元或更高的整數上運算,而 RSA 通常在2048位元或更高的整數上運算。要完全支援這些整數上的白箱運算,不是需要過大的記憶體來儲存查找表,就是不切實際地慢速。
為了因應上述要求,本文件揭露根據一或多個編碼的機密來安全地處理輸入以產生輸出之系統及方法。在一實施例中,該方法接受具有
n個單元
s
1, s
2,..., s
n 的一已編碼機密
s’,並在白箱實施中根據該輸入及該編碼的機密單元
s
1, s
2,..., s
n 執行複數個密碼運算以計算該輸出,根據至少一資料結構所執行的該密碼運算包含至少一部分地已編碼查找表。另一實施例藉由根據一或多個編碼的機密安全地處理一輸入以產生一輸出之設備來證明,該設備包含一處理器及通訊耦接至該處理器的一記憶體,該記憶體儲存處理器指令,包括用於執行前述運算的處理器指令。
已討論之特徵、功能及優點可在本發明之各種具體例中獨立地達成,或可在其他具體例中組合,其進一步細節可參考以下描述及圖式來瞭解。
在下文中,參考形成本文一部分的附圖,且藉由說明顯示幾個實施例。應瞭解,可使用其他實施例且可在不背離本發明範疇下進行結構變更。
白箱密碼系統
白箱系統藉由編碼資料元素(例如機密金鑰)來運算,使得攻擊者無法以明文形式來復原。白箱實施以數學上改變的函數產生,直接在編碼資料元素上運算而無需解碼。這保證機密會隨時保持編碼,因此在完整存取及控制執行環境下保護實施對抗攻擊者。例如,這在上文所引用之Chow文獻中描述。
圖1A及1B為處理輸入訊息以產生輸出訊息的密碼系統的圖,及其對應的白箱實施。
如圖1A所繪示,在提供輸入及機密
S時演算法執行函數
f
1, f
2 及
f
n (分別是102A、102B 及102N)。
在圖 1B中,具有輸入訊息m與機密
S的原始演算法中
的每個運算
f
1, f
2, ... , f
n 編碼為在那演算法的典型白箱實施中之查找表
T
1, T
2, ..., T
n (104A, 104B及104N)。產生編碼作為應用到每個運算的輸入及輸出的兩序列隨機對射
δ
1, δ
2, ... , δ
n+1 ,其中,
ρ(S)代表已編碼機密(例如私密金鑰),不是靜態地連結至白箱實施就是動態地提供至白箱實施。
在圖1B顯示的白箱實施中,其實施是藉由將作為輸入的對射
δ
1 及
ρ(S)應用到查找表
T
1 以獲得中間輸出,將中間輸出及
ρ(S)應用到查找表
T
2 以產生第二中間輸出,然後將第二個中間輸出及
ρ(S)提供至查找表
T
3 以產生輸出
。查找表
T
1 將輸入的對射
δ
1 反轉
,將
S (ρ(S))的對射
ρ反轉
,應用
f
1 ,然後應用對射
δ
2 以產生第一個中間輸出。類似地,查找表
T
2 將第一個中間輸入的對射
δ
2 反轉
,將
S (ρ(S))的對射
ρ反轉
,應用
f
2 ,然後應用對射
δ
3 以產生第一個中間輸出。通常,最終查找表
T
n 將第 n-1 個中間輸入的對射
δ
n 反轉
,將
S (ρ(S))的對射
ρ反轉
,應用
f
n ,然後應用對射
δ
n+1 以產生中間輸出
。
概觀
本文揭露與標準白箱編碼相容的ECC及RSA金鑰保護方法。這些實現可快速又安全對抗攻擊者限於實施的側道存取。該方法涉及利用可以直接從相關的演算法調用的白箱運算來隱藏私密金鑰。
白箱技術旨在從密碼實施中使金鑰提取變得困難。我們提出在ECC及RSA演算法中保護私密金鑰的方法,其中攻擊者擁有已編碼機密金鑰ρ(s),並且假設只能用側道存取來實施。
私密金鑰
s儲存為排列位元組的列表。由於
s的長度通常為1024-4096位元組,因此它需要128-512位元組的儲存空間。在進行白箱程式時,首先創建一個具有256個條目(每個條目為一位元組)的查找表。該表定義了位元組排列。給定表示
s的位元組列表,我們在應用排列後將每個位元組替換為其結果。因此,儲存值
ρ (s)= (
ρ (s
1)
,
ρ (s
2)
, ...,
ρ (s
n)
) 其中每個
s
i 是一個位元組並且
ρ是排列。然後將該位元組列表儲存在白箱程式中。可能排列的數量是 256!,大約是2
1678,這提供了高度的安全性。由於攻擊者不知道查找表,因此位元組列表似乎是完全隨機的。
在適用於RSA密碼過程的實施例中,對於私密金鑰
s及 模數
m,我們希望計算加密訊息
x的RSA解密,使得解密訊息
y = x
s mod
m。訊息
x可以包括例如文件、電子郵件訊息、金鑰、安全資料或諸如視聽資訊的部份媒體內容。為了隱藏私密金鑰
s,使用標準白箱編碼來計算已編碼金鑰
s’ = ρ (s)。在不受信任的環境中,使用已編碼金鑰
s’代替
s。由於原始金鑰
s是均勻隨機的,並且由於
ρ是隨機選擇的對射,因此已編碼金鑰
s’也將具有均勻隨機分佈,這意味著從已編碼金鑰
s’恢復私密金鑰
s在計算上是不可行的,假如對射
ρ是保密的,永遠不會在安全網路之外發送(沒有必要這樣做)。考慮到金鑰的編碼,修改了RSA 演算法以合併兩個白箱運算,
wbIsOdd及
pwbIsOdd。
第一個運算是
pwbIsOdd。
pwbIsOdd運算是部分地已編碼白箱運算,如果已編碼位元組為奇數則傳回 1,如果已編碼位元組為偶數則傳回 0。第二個運算是
wbRotateRight。
wbRotateRight運算是完全地已編碼白箱運算,進行已編碼位元組的循環右位元移位。這種已修改演算法允許RSA使用已編碼私密金鑰
s’計算解密,而無需直接將
s’的位元組解碼為明文。
在具有白箱已編碼私密金鑰的ECC中使用的第二個實施例中,對於私密金鑰
s及點P,本發明希望計算ECC點乘法運算
Q = s·
P。計算 ECC點乘法運算允許從加密訊息中產生解密訊息。
為了隱藏私密金鑰
s,使用標準白箱編碼來計算已編碼金鑰
s’ = ρ (s)。在不受信任的環境中,使用已編碼金鑰
s’代替
s。同樣,由於原始金鑰
s是均勻隨機的,並且由於
ρ隨機選擇的對射,所以已編碼金鑰
s’也將具有均勻隨機分佈,這意味著從已編碼金鑰
s’恢復私密金鑰
s在計算上是不可行的,假如對射
ρ是保密的,並且永遠不會在安全網路之外發送(沒有必要這樣做)。
ECC點乘法演算法修改為結合兩個白箱運算。第一個這樣的運算是
pwbIsOdd。
pwbIsOdd運算是部分地已編碼白箱運算,如果已編碼位元組為奇數則傳回 1,如果已編碼位元組為偶數則傳回 0。第二個這樣的運算是
wbRotateLeft。
wbRotateLeft運算是完全地已編碼白箱運算,進行已編碼位元組的循環左位元移位。由於點乘法演算法是引用私密金鑰的ECC的唯一部分,因此這種已修改的演算法允許ECC使用已編碼私鑰
s’執行,而無需直接將
s’的位元組解碼為明文。
查找表wbIsOdd及pwbIsOdd
若令P
even為區間[0,2
w-1]內的隨機產生的偶數整數的集合的排列,且,令P
odd為區間[0,2
w-1]內隨機產生的奇數整數的集合的排列。令
T= {0,1}
w是有限的非空字母表,其中
w指的是已編碼機密單元的尺寸(以位元為單位)。對於典型的實施,
w= 8 對應於稱為位元組的 8 位元字元。對於ECC機密金鑰,通常為
n 32,並且對於RSA機密金鑰,通常為
n 256。基線查找表isOdd定義為
isOdd: T→ T,作為由交錯排列P
even及 P
odd組成的尺寸2w的零索引查找表,每個尺寸為
2w-1,使得對於所有
x T存在一個
y T使得當 x 為奇數時
y = isOdd(x)是奇數,並且當x為偶數且Pr[
isOdd(x) = x]
xϵT 2
-w時
y = isOdd(x)是偶數。為增加多樣性,
isOdd的多個版本在構建時可以藉由白箱編譯器產生。
圖2為繪示在建立時將編碼應用至
isOdd之白箱編譯器的示意圖。
isOdd基線202是具有隨機機密編碼ρ的已編碼查找表。完全地已編碼表
wbIsOdd查找表206具有藉由白箱編譯器在構建時所產生的隨機輸出對射
。部分地已編碼表
pwbIsOdd204反而將按位元的 AND(1)運算應用到
isOdd的輸出,其中 AND:T→T,使得
pwbIsOdd傳回不是0就是1的整數值,其可用於非白箱運算中或條件邏輯中。關於
wbIsOdd查找表206,機密編碼ρ去除機密s與已編碼表中的索引之間的相關性。輸出編碼
消除已編碼輸出的奇數與原始值的奇數之間的任何相關性,因此完全地已編碼查找表
wbIsOdd不會向攻擊者提供有關任何給定輸入或輸出值的值的訊息。部分地已編碼查找表
pwbIsOdd傳回基礎已編碼值的奇數,使得對於所有已編碼輸入
x T,存在一個
y T使得
y=pwbIsOdd(x)=AND(
-1(wbIsOdd(x)),1)=AND(isOdd(ρ
-1(x)),1)
在這種情況下,輸出值y是一個整數真值(0 或 1),表示基礎輸入ρ
-1(
x)的奇數。由於
isOdd基線的隨機實施,當
pwbIsOdd單獨使用時,不會洩露有關
x的其他訊息。不建議省略或取消白箱編碼,因為它允許白箱攻擊者獲取有關基礎資料的訊息。此外,在白箱實施中使用條件邏輯有助於側道攻擊的使用,這可能會進一步降低攻擊難度。然而,我們確實注意到,出於實際原因,這些妥協可能被認為是必要的。
查找表 wbRotateRight 及 wbRotateLeft
本發明將
rotateRight及
rotateLeft基線定義為每個尺寸2
w 的零索引查找表,分別代表二進制右循環移位運算及左循環移位運算,針對所有 x = (x
w-1, x
w-2, ..., x
0)
2,成為
rotateRight(x) := (x
0, x
w-1, ..., x
1)
2 rotateLeft(x) := (x
w-2, x
w-3, ..., x
w-1)
2
圖3為繪示分別編碼成查找表
wbRotateRight及
wbRotateLeft之
rotateRight及
rotateLeft基線之白箱實施的圖,其中,具有藉由白箱編譯器在構建時所產生的隨機對射g
1, g
2: T → T。
輸入編碼g
1消除輸入值 x與已編碼表中的索引之間的相關性。輸出編碼 g
2消除旋轉已編碼輸出及原始旋轉輸入之間的任何相關性,因此已編碼查找表
wbRotateRight及
wbRotateLeft不會為攻擊者提供有關任何給定輸入或輸出值的值的訊息。
不像
pwbIsOdd,沒有理由省略或取消這些運算的輸出編碼。然而,應注意,當這些運算與
pwbIsOdd的實施結合使用時,將使無約束的白箱攻擊者能夠完全恢復任何受保護的值,只需在同一方向移動 w 次,基於pwbIsOdd的輸出設置克隆值的位元。
圖4為描繪可用於根據具有
n個單元
s
1, s
2,..., s
n,
的已編碼機密
s’安全地處理輸入以產生輸出之例示性運算的圖。在方塊202中,接受具有
n個單元
s
1, s
2,..., s
n 的已編碼機密
s’。在一實施例中,已編碼機密
s
1, s
2,..., s
n 以位元組為單位。
在步驟404中,白箱實施根據訊息
m及已編碼機密
s
1, s
2,..., s
n 執行多個密碼運算。在一實施例中,這是根據包括至少一部分地已編碼查找表的至少一種資料結構來執行的。
具有白箱已編碼私密金鑰的RSA
在第一實施例中,當應用RSA解密或加密運算時,複數個密碼運算根據關係
來計算輸出
y。在該實施例中,可以使用疊代平方及還原演算法,其包括判定機密
s的已編碼位元組的每個位元是否為奇數。例如,如果機密
s包括n個位元組,並且
是機密
s的第i個位元組,則根據訊息
m及已編碼機密執行多個密碼運算的步驟包括產生第一個進一步的資料結構
作為部分地已編碼查找表,其將按位元AND函數應用於根據隨機排列所產生的
查找表的輸出,並產生包括已編碼查找表的第二個進一步的資料結構
,該已編碼查找表具有循環位元移位運算的隨機對射。
圖5為繪示在使用
、
及
資料結構的白箱實施中用於關係
之計算的虛擬碼的實施例的圖。如所指示的,向白箱實施提供輸入,使得從RSA私密金鑰
s產生白箱已編碼RSA秘密金鑰
。白箱已編碼RSA秘密金鑰
。在第1行,我們將
k定義為
m的大小(以位元為單位)。在第2行,根據
定義變數m,其中
表示地板函數。在第 3 行,因子
y被初始化為1,在第 4 行,因子
z被設置為
。內部 do 循環執行第 6-12 行的運算,針對機密
s的第 i 個位元組的每一位。這些運算包括計算
,如第 7 行所示,計算
,如第8行所示,計算
,如第9行所示,計算
,如第10行所示,計算
,如第11行所示。第 5-13 行的外部 do循環針對已編碼機密
s’的n個位元組中的每一第i個位元組重複第6-12行的運算。第14行傳回結果
y。
給定x及m,巴雷特(Barrett)還原演算法計算
。該演算法根據
需要數量 m的預計算,並且如果用單個模數執行多次還原,則該演算法是有利的。例如,一個實體的每次RSA加密/解密都需要按模對該實體的公開金鑰模數進行還原。預計算需要固定的工作量,這對於模數冪的成本可以忽略不計。通常,根
b選擇為接近處理器的字元尺寸(在我們的例子中為 2)。
圖6為顯示使用巴雷特(Barrett)之還原演算法用於計算給定x及m之
的虛擬碼的一個實施例的圖。假設x= (x
2k-1... x
1x
0)
2及m = (m
k-1... m
1m
0)
2是正整數,使得m
k-1≠ 0 及
。步驟 1-8計算值
r=
xmod
m。
ECC 點乘法的計算
在第二實施例中,多個密碼運算共同執行ECC點乘運算,該運算根據
Q = s · P計算輸出,其中s是機密,P是輸入(橢圓曲線上的第一點),並且
Q是輸出(橢圓曲線上的第二個點)。
橢圓曲線密碼學(ECC)是基於有限域上橢圓曲線的代數結構的公鑰密碼學的方法。 針對相同的安全級別,ECC能夠使用比其他形式的公開金鑰密碼學更小的金鑰,因此為設計人員提供一種系統,該系統提供更高安全性或更小金鑰的可選組合。ECC 在金鑰協議、數位簽名、虛擬隨機產生器以及其他密碼任務中都有應用。
圖7為繪示用於執行該計算的虛擬代碼的一實施例的圖。如指示的,向白箱實施提供輸入,使得從ECC機密金鑰
s產生白箱已編碼ECC機密金鑰
。白箱已編碼ECC機密金鑰
。第 1-8 行計算
Q=
s•
P。
在第 1 行,將
Q初始化為零。第 3-7 行中繪示的 do循環針對已編碼機密s’的第i個位元組中的每個位元計算第5-6行的運算。第4行計算
,將已編碼字元
向左旋轉一位元。第5行計算
,且第6行計算
。包含在第 2-8 行中的Do循環執行針對
i= 1 to
n的上述do循環,其中
n是機密
s中的位元組的數目,
是已編碼機密
s的第i個位元組。結果就是Q的值。
硬體環境
圖8繪示可用於實施上述揭露的處理元件的例示性電腦系統800,包括訊息或資料的加密器或解密器。電腦802包括處理器804及記憶體,例如隨機存取記憶體(RAM)806。電腦802可操作地耦接到顯示器822,顯示器822在圖形使用者界面818B上向用戶呈現諸如視窗的圖像。電腦802可以耦接到其他裝置,例如鍵盤814、滑鼠裝置816、印表機828等。當然,本領域技術人員將認識到上述組件的任何組合,或任何數量的不同組件、周邊設備及其他裝置可以與電腦 802 一起使用。
通常,電腦802在儲存於記憶體806中的作業系統808的控制下運行,並且與使用者界接以接受輸入及命令並通過圖形使用者界面(GUI)模組818A呈現結果。雖然GUI模組818B描繪為單獨的模組,但是執行GUI功能的指令可以常駐或分佈在作業系統808、電腦程式810中,或者用專用記憶體及處理器來實現。電腦802也實現編譯器812,其允許應用程式810以程式語言,如COBOL、C++、FORTRAN或翻譯成處理器804可讀代碼的其他語言來編寫。完成後,應用程式810使用編譯器812產生的關係及邏輯存取以及運用儲存在電腦802的記憶體806 中的資料。電腦 802還可選地包括外部通訊裝置,例如數據機、衛星鏈路、以太網卡或其他用於與其他電腦通訊的裝置。
在一實施例中,實現作業系統808、電腦程式810及編譯器812的指令有形地體現在電腦可讀媒體中,例如資料儲存裝置820,其可以包括一個或多個固定或可移動資料儲存裝置,例如壓縮磁碟、軟碟機 824、硬碟、光碟機、磁帶機等。此外,作業系統 808及電腦程式810 由指令組成,這些指令在藉由電腦802執行或讀取時,使電腦802執行這裡描述的運算。電腦程式810及/或運算指令也可以有形地體現在記憶體806及/或資料通訊裝置830中,從而製造電腦程式產品或製品。因此,本文使用的術語「製品」、「程式儲存裝置」及「電腦程式產品」旨在涵蓋可從任何電腦可讀裝置或媒體存取的電腦程式。
本領域技術人員將認識到可以對這種配置進行許多修改而不脫離本揭露的範圍。例如,本領域技術人員將認識到,可以使用上述組件的任何組合,或任何數量的不同組件、周邊設備及其他裝置。
前述揭露一種用於安全地處理輸入
m以產生輸出的方法、設備及系統。一實施例體現在一種方法中,該方法包括接受具有
n個單元
s
1, s
2,..., s
n 的已編碼機密
s’,並且在白箱實施中根據輸入及已編碼機密單元
s
1, s
2,..., s
n 執行複數個密碼運算以計算輸出,根據包括至少一資料結構執行的該密碼運算包括至少一部分地已編碼查找表。
實施方式可以包括以下特徵中的一個或多個:
上述方法的任一個,其中,該已編碼機密單元
s
1, s
2,..., s
n 以位元組為單位。
上述方法的任一個,其中,該已編碼機密
s’係藉由隨機排列來隨機編碼的。
上述方法的任一個,其中,該編碼機密
s’包括n個位元組;
i是該已編碼機密
s’的一第i個位元組;在該白箱實施中,根據該輸入及該已編碼機密單元
s
1, s
2,..., s
n 執行該複數個密碼運算以計算該輸出包含產生一第一資料結構
作為該部分地已編碼查找表,該部分地已編碼查找表將一按位元的AND函數應用到根據一按隨機排列所產生的一
查找表的一輸出,以傳回一基礎編碼值的奇,產生包含一已編碼查找表之一第二資料結構
,該已編碼查找表具有一右圓形位元移位運算之隨機對射;以及該疊代平方及還原過程包括設定
,其中,k是
的幅度,設定
,其中
表示一地板函數,設定
,設定y
;針對該已編碼機密
s’的該n個位元組的每一第i個位元組:針對該已編碼機密
s’的該第i個位元組中的每一位元計算
;計算
;設定
;設定
,設定
;其中:
係輸入
及
的巴雷特還原計算。
上述方法中的任一個,其中,該複數個密碼運算共同包含一ECC點乘法,ECC點乘法根據
Q= s•
P計算該輸出,其中,
P為該輸入且
Q為該輸出。
上述方法中的任一個,其中:該已編碼機密
s’包含n個位元組;
是該已編碼機密
s’的一第i個位元組;在該白箱實施中,根據該輸入及該已編碼機密單元
s
1, s
2,..., s
n 執行該複數個密碼運算以計算該輸出包含:設定
;針對該已編碼機密
s’的該
n個位元組的每一第i個位元組:針對該已編碼機密
s’的該第i個位元組中的每一位元:計算
計算
;計算
;傳回
Q;其中:
wbRotateLeft表示將該已編碼機密的該第i個位元組的第j個位元向左旋轉一個位元;
係一索引查找表,代表一個二進位的左循環位元移位;以及
eccPointDouble(Q) 表示計算 Q+Q 的點數。
另一實施例藉由用於安全地處理輸入
m以產生輸出的設備來證明。該設備包含一處理器及通訊耦接至該處理器的一記憶體,該記憶體儲存處理器指令,包括用於執行下列的處理器指令,接受具有
n個單元
s
1, s
2,..., s
n 之一已編碼機密
s’;以及在一白箱實施中,根據該輸入及該已編碼機密單元
s
1, s
2,..., s
n 執行複數個密碼運算以計算該輸出,根據至少一資料結構執行的該密碼運算包含至少一部分地已編碼查找表。
實施方式可以包括以下特徵中的一個或多個:
上述的任一設備,其中,該已編碼機密單元
s
1, s
2,..., s
n 以位元組為單位。
上述的任一設備,其中,該已編碼機密
s’係藉由隨機排列來隨機編碼的。
上述的任一設備,其中:該編碼機密
s’包括n個位元組;
i是該已編碼機密
s’的一第i個位元組;在該白箱實施中,根據該輸入及該已編碼機密單元
s
1, s
2,..., s
n 執行該複數個密碼運算以計算該輸出包含產生一第一資料結構
作為該部分地已編碼查找表,該部分地已編碼查找表將一按位元的AND函數應用到根據一按隨機排列所產生的一
查找表的一輸出,以傳回一基礎編碼值的奇,產生包含一已編碼查找表之一第二資料結構
,該已編碼查找表具有一右圓形位元移位運算之隨機對射;以及該疊代平方及還原過程包括設定
,其中,k是
的幅度,設定
,其中
表示一地板函數,設定
,設定y
;針對該已編碼機密
s’的該n個位元組的每一第i個位元組:針對該已編碼機密
s’的該第i個位元組中的每一位元計算
;計算
;設定
;設定
,設定
;其中:
係輸入
及
的巴雷特還原計算。
上述的任一設備,其中,該複數個密碼運算共同包含一ECC點乘法,ECC點乘法根據
Q= s•
P計算該輸出,其中,
P為該輸入且
Q為該輸出。
上述的任一設備,其中:該已編碼機密
s’包含n個位元組;
是該已編碼機密
s’的一第i個位元組;在該白箱實施中,根據該輸入及該已編碼機密單元
s
1, s
2,..., s
n 執行該複數個密碼運算以計算該輸出包含:設定
;針對該已編碼機密
s’的該
n個位元組的每一第i個位元組:針對該已編碼機密
s’的該第i個位元組中的每一位元:計算
計算
;計算
;傳回
Q;其中:
wbRotateLeft表示將該已編碼機密的該第i個位元組的第j個位元向左旋轉一個位元;
係一索引查找表,代表一個二進位的左循環位元移位;以及
eccPointDouble(Q) 表示計算 Q+Q 的點數。
結論
此總結本發明的較佳實施例的描述。
為了說明及描述的目的,已經呈現較佳實施例的前述描述。並非旨在詳盡無遺的或將本揭露限制為所揭露的精確形式。鑑於上述教示,許多修改及變化都是可能的。意味著權利範圍不受此詳細描述限制,而是受所附申請專利範圍限制。
102A、102B:102N:函數
104A、104B:104N:查找表
202:基線
204:已編碼表
206:查找表
402:步驟
404:步驟
800:電腦系統
802:電腦
804:處理器
804A:通用處理器
804B:專用處理器
806:記憶體/隨機存取記憶體
808:作業系統
810:電腦程式/應用程式
812:編譯器
814:鍵盤
816:滑鼠裝置
818A:圖形使用者介面模組
818B:圖形使用者介面
820:儲存裝置
822:顯示器
824:軟碟機
828:印表機
830:資料通訊裝置
現參考圖式,其中類似的符號代表全文中的對應零件:
圖1A及1B為處理輸入訊息以產生輸出訊息的密碼系統之圖;
圖2為繪示在建立時將編碼應用至
isOdd之白箱編譯器的示意圖;
圖3為繪示分別編碼成查找表
wbRotateRight及
wbRotateLeft之
rotateRight及
rotateLeft基線之白箱實施的圖;
圖4為描繪可用於安全地處理輸入以產生輸出之例示性運算的圖;
圖7為繪示用於執行ECC點乘法計算之虛擬碼的實施例的圖;以及
圖8繪示可用於實施地理位置系統的處理元件的例示性電腦系統。
104A、104B...104N:查找表
Claims (20)
- 一種安全地處理一輸入 m以產生一輸出之方法,包含: 接受具有 n個單元 s 1, s 2,..., s n 之一已編碼機密 s’;以及 在一白箱實施中,根據該輸入及該已編碼機密單元 s 1, s 2,..., s n 執行複數個密碼運算以計算該輸出,根據至少一資料結構執行的該密碼運算包含至少一部分地已編碼查找表。
- 如請求項1之方法,其中,該已編碼機密單元 s 1, s 2,..., s n 以位元組為單位。
- 如請求項2之方法,其中,該已編碼機密 s’係藉由隨機排列來隨機編碼的。
- 如請求項5之方法,其中: 已編碼機密 s’包含 n個位元組; i是該已編碼機密 s’的一第i個位元組; 在該白箱實施中,根據該輸入及該已編碼機密單元 s 1, s 2,..., s n 執行該複數個密碼運算以計算該輸出包含: 產生一第一資料結構 作為該部分地已編碼查找表,該部分地已編碼查找表將一按位元的AND函數應用到根據一按隨機排列所產生的一 查找表的一輸出,以傳回一基礎編碼值的奇; 產生包含一已編碼查找表之一第二資料結構 ,該已編碼查找表具有一右圓形位元移位運算之隨機對射;以及 該疊代平方及還原過程包括: 設定 ,其中,k是 的幅度; 設定 ,其中 表示一地板函數; 設定 ; 設定y ; 針對該已編碼機密 s’的該n個位元組的每一第i個位元組: 針對該已編碼機密 s’的該第i個位元組中的每一位元: 計算 ; 計算 ; 設定 ; 設定 ; 設定 ; 其中: 係輸入 及 的巴雷特還原計算。
- 如請求項4之方法,其中,該複數個密碼運算共同包含一ECC點乘法,ECC點乘法根據 Q= s• P計算該輸出,其中, P為該輸入且 Q為該輸出。
- 如請求項7之方法,其中: 該已編碼機密 s’包含n個位元組; 是該已編碼機密 s’的一第i個位元組; 在該白箱實施中,根據該輸入及該已編碼機密單元 s 1, s 2,..., s n 執行該複數個密碼運算以計算該輸出包含: 設定 ; 針對該已編碼機密 s’的該 n個位元組的每一第i個位元組: 針對該已編碼機密 s’的該第i個位元組中的每一位元: 計算 計算 ; 計算 ; 傳回 Q; 其中: wbRotateLeft表示將該已編碼機密的該第i個位元組的第j個位元向左旋轉一個位元; 係一索引查找表,代表一個二進位的左循環位元移位;以及 eccPointDouble(Q) 表示計算 Q+Q 的點數。
- 一種用於安全地處理一輸入 m以產生一輸出之設備,包含: 一處理器; 一記憶體,通訊地耦接至該處理器,該記憶體儲存處理器指令,該處理器指令包括用於以下的處理器指令: 接受具有 n個單元 s 1, s 2,..., s n 之一已編碼機密 s’;以及 在一白箱實施中,根據該輸入及該已編碼機密單元 s 1, s 2,..., s n 執行複數個密碼運算以計算該輸出,根據至少一資料結構執行的該密碼運算包含至少一部分地已編碼查找表。
- 如請求項9之設備,其中,該已編碼機密單元 s 1, s 2,..., s n 以位元組為單位。
- 如請求項10之設備,其中,該已編碼機密 s’藉由隨機排列來隨機編碼的。
- 如請求項13之設備,其中: 已編碼機密 s’包含 n個位元組; i是該已編碼機密 s’的一第i個位元組; 根據該輸入及該已編碼機密單元 s 1, s 2,..., s n 執行該複數個密碼運算以計算該輸出包含: 產生一第一資料結構 作為該部分地已編碼查找表,該部分地已編碼查找表將一按位元的AND函數應用到根據一按隨機排列所產生的一 查找表的一輸出,以傳回一基礎編碼值的奇; 產生包含一已編碼查找表之一第二資料結構 ,該已編碼查找表具有一右圓形位元移位運算之隨機對射;以及 該疊代平方及還原過程包括: 設定 ,其中,k是 的幅度; 設定 ,其中 表示一地板函數; 設定 ; 設定y ; 針對該已編碼機密 s’的該n個位元組的每一第i個位元組: 針對該已編碼機密 s’的該第i個位元組中的每一位元: 計算 ; 計算 ; 設定 ; 設定 ; 設定 ; 其中: 係輸入 及 的巴雷特還原計算。
- 如請求項12之設備,其中,該複數個密碼運算共同包含一ECC點乘法,ECC點乘法根據 Q= s• P計算該輸出,其中, P為該輸入且 Q為該輸出。
- 一種用於安全處理一輸入以產生一輸出之設備,包含: 用於接受具有 n個單元 s 1, s 2,..., s n 之一已編碼機密 s’之裝置;以及 在一白箱實施中,用於根據該輸入及該已編碼機密單元 s 1, s 2,..., s n 執行複數個密碼運算以計算該輸出之裝置,根據至少一資料結構執行的該密碼運算包含至少一部分地已編碼查找表。
- 如請求項17之設備,其中,該已編碼機密單元 s 1, s 2,..., s n 以位元組為單位。
- 如請求項18之設備,其中,該已編碼機密 s’藉由隨機排列來隨機編碼的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163275284P | 2021-11-03 | 2021-11-03 | |
US63/275,284 | 2021-11-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202324967A true TW202324967A (zh) | 2023-06-16 |
Family
ID=84537898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111141833A TW202324967A (zh) | 2021-11-03 | 2022-11-02 | 用大整數值進行編碼的白箱處理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230134216A1 (zh) |
AR (1) | AR127553A1 (zh) |
TW (1) | TW202324967A (zh) |
WO (1) | WO2023081222A1 (zh) |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8752032B2 (en) * | 2007-02-23 | 2014-06-10 | Irdeto Canada Corporation | System and method of interlocking to protect software-mediated program and device behaviours |
WO2009136361A1 (en) * | 2008-05-07 | 2009-11-12 | Koninklijke Philips Electronics N.V. | Exponent obfuscation |
US8751822B2 (en) * | 2010-12-20 | 2014-06-10 | Motorola Mobility Llc | Cryptography using quasigroups |
US9189425B2 (en) * | 2011-09-01 | 2015-11-17 | Apple Inc. | Protecting look up tables by mixing code and operations |
US9916538B2 (en) * | 2012-09-15 | 2018-03-13 | Z Advanced Computing, Inc. | Method and system for feature detection |
EP2829010B1 (en) * | 2012-03-20 | 2020-11-04 | Irdeto B.V. | Updating key information |
CN104335218B (zh) * | 2012-03-30 | 2017-08-11 | 爱迪德技术有限公司 | 使用基函数编码来保护可访问的系统 |
US10372886B2 (en) * | 2015-05-05 | 2019-08-06 | Nxp B.V. | Protecting the input/output of modular encoded white-box RSA/ECC |
MX2019006912A (es) * | 2016-12-12 | 2019-10-15 | Arris Entpr Llc | Criptografia de caja blanca fuerte. |
US10749675B2 (en) * | 2017-01-09 | 2020-08-18 | Arris Enterprises Llc | Homomorphic white box system and method for using same |
EP3506558A1 (en) * | 2017-12-28 | 2019-07-03 | Koninklijke Philips N.V. | Whitebox computation of keyed message authentication codes |
EP3664359A1 (en) * | 2018-12-07 | 2020-06-10 | Koninklijke Philips N.V. | A computation device using shared shares |
US20200313850A1 (en) * | 2019-03-29 | 2020-10-01 | Irdeto Canada Corporation | Method and apparatus for implementing a white-box cipher |
US11556298B1 (en) * | 2021-07-30 | 2023-01-17 | Sigmasense, Llc | Generation and communication of user notation data via an interactive display device |
-
2022
- 2022-11-02 US US17/979,710 patent/US20230134216A1/en active Pending
- 2022-11-02 TW TW111141833A patent/TW202324967A/zh unknown
- 2022-11-02 WO PCT/US2022/048721 patent/WO2023081222A1/en unknown
- 2022-11-02 AR ARP220103002A patent/AR127553A1/es unknown
Also Published As
Publication number | Publication date |
---|---|
AR127553A1 (es) | 2024-02-07 |
WO2023081222A1 (en) | 2023-05-11 |
US20230134216A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3566385B1 (en) | Homomorphic white box system and method for using same | |
CN110235409B (zh) | 使用同态加密被保护的rsa签名或解密的方法 | |
Abroshan | A hybrid encryption solution to improve cloud computing security using symmetric and asymmetric cryptography algorithms | |
CN105892991B (zh) | 使用查找表的模乘运算 | |
US20080240443A1 (en) | Method and apparatus for securely processing secret data | |
US10826694B2 (en) | Method for leakage-resilient distributed function evaluation with CPU-enclaves | |
US8976960B2 (en) | Methods and apparatus for correlation protected processing of cryptographic operations | |
US11728965B2 (en) | Strong fully homomorphic white-box and method for using same | |
JP2011520150A (ja) | 指数難読化 | |
US6772184B2 (en) | Method for efficient modular division over prime integer fields | |
WO2018169580A2 (en) | Strong white-box cryptography | |
TW202324967A (zh) | 用大整數值進行編碼的白箱處理 | |
Jagadeesh et al. | Hybrid AES-Modified ECC Algorithm for Improved Data Security over Cloud Storage | |
EP4104381B1 (en) | Strong fully homomorphic white-box and method for using same | |
WO2023151171A1 (zh) | 抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置 | |
CN111712816B (zh) | 使用密码蒙蔽以用于高效地使用蒙哥马利乘法 | |
CN116865968A (zh) | 用于为有限域迪菲-赫尔曼选择安全质数的方法和系统 | |
US20230198781A1 (en) | White-box soft-locking | |
US20230138384A1 (en) | Method for securely performing a public key algorithm | |
Yadav et al. | Hybrid cryptography approach to secure the data in computing environment | |
Mohamed Sirajudeen et al. | Matrix-Based Data Security in Cloud Computing Using Advanced Cramer–Shoup Cryptosystem | |
Goyal | A Study on Encryption and Decryption System | |
Sirajudeen et al. | Matrix-Based Data Security in Cloud Computing Using Advanced Cramer–Shoup Cryptosystem | |
CN111712816A (zh) | 使用密码蒙蔽以用于高效地使用蒙哥马利乘法 | |
Tsoutsos et al. | Memory-Bounded Randomness for Hardware-Constrained Encrypted Computation |