[go: up one dir, main page]

TW201904228A - 用以反制側通道攻擊的硬體安全 - Google Patents

用以反制側通道攻擊的硬體安全 Download PDF

Info

Publication number
TW201904228A
TW201904228A TW107109468A TW107109468A TW201904228A TW 201904228 A TW201904228 A TW 201904228A TW 107109468 A TW107109468 A TW 107109468A TW 107109468 A TW107109468 A TW 107109468A TW 201904228 A TW201904228 A TW 201904228A
Authority
TW
Taiwan
Prior art keywords
calculation
true
round
key
analog electrical
Prior art date
Application number
TW107109468A
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 TW201904228A publication Critical patent/TW201904228A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/72Protecting 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 in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/32Cryptographic 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
    • H04L9/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • 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/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本發明提供用於反制側通道攻擊的硬體安全之方法及設備。該方法或設備可引入至少一個冗餘或部分冗餘計算,及/或以一不同順序對操作疊代進行重排序,在與密碼編譯裝置之一真操作的功率消耗輪廓或電磁發射輪廓相比時,該至少一個冗餘或部分冗餘計算具有一類似功率消耗輪廓或一電磁發射輪廓。該冗餘或部分冗餘計算可藉由使用一不同密碼金鑰及/或一不同原始資料(例如,明文)來執行。該冗餘或部分冗餘計算之存在,在難以清楚地識別真或冗餘/部分冗餘操作的意義上將使側通道攻擊難以進行,因此充當用於硬體安全之一反制。

Description

用以反制側通道攻擊的硬體安全
本發明之各種態樣大體上係關於電腦安全,且更特定言之,係關於反制側通道攻擊(side channel attack,SCA)之硬體安全。
相關申請案之交叉參考
本申請案主張標題為「Computational Imitation for Hardware Security to Countermeasure Side-Channel Attacks」且在2017年3月20日申請的新加坡專利申請案第10201702226R號之權益,該新加坡專利申請案明確地以全文引用之方式併入本文中。
硬體安全涉及硬體設計、存取控制、安全多方計算、安全金鑰儲存、確保程式碼真實性、確保構建產品之供應鏈安全,等等。硬體安全對於防護或安全應用而言非常關鍵,且在一定程度上,對於無處不在之包括電子件之物聯網(IoT)愈加關鍵。此係因為對硬體的安全攻擊/威脅出於各種敵對意圖而愈加令人不安,可能導致金錢損失,且在最糟情況下,會有丟掉性命的風險。舉例而言,儲存在智慧型晶片中之個人/機密資料可能被未授權方擷取。付費/增值應用/服務可能被破解。專屬資訊及商業秘密可能會洩露。專屬商品可能被批量生產或仿製,而不需要研發投資。拒絕服務(由不誠實之競爭者引起)係可能的。木馬或錯誤可能會被安裝。在最差情況下,可能會丟掉 性命。舉例而言,性命攸關之醫療裝置可能會中斷。
可存在許多級別之硬體保護。可採用數學穩健之加密/解密演算法(例如,高級加密標準(AES)、三重資料加密標準(三重DES),等)來加密硬體中之機密資料。此可藉由使用密碼金鑰將明文(原始資料)加密為密文(經加密資料)來完成。密文僅可在獲知密碼金鑰的情況下解密。整個加密/解密過程涉及在硬體中執行之一系列操作。然而,此類「基於軟體」之硬體保護係不夠的,因為在各種形式之攻擊下,硬體安全仍然可能受損。此等攻擊之一種形式為側通道攻擊(SCA)。
側通道攻擊為基於自電腦系統之實體實施獲得之資訊而非所實施之演算法自身中之弱點的任何攻擊。舉例而言,定時資訊、功率消耗、電磁洩漏或甚至聲音皆可提供額外資訊來源,其可能會在側通道攻擊中被利用。SCA可監測電源、介面連接及任何電磁發射之(類比)電特性。特定SCA可使用監測功率消耗之相關功率分析(correlation power analysis,CPA)、監測電磁發射之相關電磁分析(correlation electromagnetic analysis,CEMA),及在存在故障時監測輸出之故障攻擊(fault attack)中之一或多者。
圖1描繪用於執行一次完整AES加密之隨時間推移之功率消耗輪廓(profile)100之實例。在該實例中,AES加密可包括10輪(round)計算。功率消耗輪廓100可在CPA中分析。如圖1所示,可容易地自功率消耗輪廓100識別對應於10輪計算之10個局部功率消耗輪廓102至120。當反覆監測許多加密操作之功率消耗輪廓時,此等局部功率消耗輪廓可能會洩漏密碼金鑰,從而旨在分析功率消耗與其資料相依性之間的相關性。類似地,CEMA亦可用於分析電磁發射與其資料相依性之間的相關性,從而旨在揭露密碼金鑰。相反,故障攻擊可能會注入故障來破壞計算,其中錯誤輸出可能提供提示以揭露密碼金鑰。
給定AES加密,等式(1)藉由分析洩漏資訊(Y t,m 作為功率消 耗或電磁發射)與經處理資料(X i,j,m )之間的相關性(f i,j,t )來概括CPA及CEMA之數學分析。藉由將128位元密碼金鑰分割成16組稱為子金鑰之8位元子密碼金鑰,隨後對每一子金鑰進行較小搜尋空間分析(具有28個子金鑰候選者)來進行分析。經由等式(1)中之分析,具有最高相關性之子金鑰候選者可能為真實之子金鑰。因此,可藉由組合在其可能子金鑰候選者內具有最高相關性(r i,j,t )之所有子金鑰來揭露整個密碼金鑰。為量化SCA抗性(resistance),公認之基準為數目N,即為了清楚地建立強相關性而需要之量測(跡線,trace)之數目。所需數目N愈高,SCA抗性愈高。為完整性,N之接受值至少具有1百萬個量測跡線,以使得硬體可被認為抵抗SCA。
其中i=128位密碼金鑰之1、...、16個子金鑰;此類子金鑰具有8位,j=1、...、256個可能子金鑰候選者(8位子金鑰之28個組合),N=量測(跡線)之數目,t=洩漏資訊之取樣點, 表示經處理資料之平均值,表示洩漏資訊之平均值。
為作為額外硬體保護來抵抗SCA,傳統之預防方法基於「隱藏,Hiding」及「掩蔽,Masking」之概念。「隱藏」方法旨在平衡洩漏資訊(例如,功率消耗或電磁發射跡線),使得分析過程長,且在最佳情況下為無窮大。「掩蔽」方法旨在掩蔽洩漏資訊之關係/相關性,使得分析過程困難,且在理論上難以追蹤。儘管在一定程度上,此等方法已在某種程度上改良硬體安全,但其通常涉及特用(ad-hoc)實施(複雜之工程設計努力),且遭受高硬體/功率/速度額外負荷。實際上,大部分硬體並非設計成以硬體安全為特徵,部分原因為成本問題,部分原因為現有數位電路設計平台不支援此類安全 特徵。此外,用於抵抗SCA之一些傳統技術可藉由諸如預處理及圖案匹配之重新對準技術來克服,從而降低SCA抗性之效力。
鑒於傳統技術之限制,非常需要具有SCA反制技術以增大SCA抗性,以使得預處理技術及圖案匹配無效。
以下呈現簡化概述以便提供對所揭示發明之各種態樣的基本理解。此概述並非所有涵蓋態樣之廣泛綜述,且既不意欲識別所有態樣之關鍵或重要元素,亦不意欲描繪任何或所有態樣之範疇。其唯一目的為以簡化形式呈現一或多個態樣之一些概念,作為稍後所呈現的更具體描述的序言。
本發明描述一種用於反制側通道攻擊之硬體安全的計算方法或設備,該等側通道攻擊包括相關功率分析及相關電磁分析。該方法或設備可引入至少一個冗餘或部分冗餘計算,及/或對其中之操作疊代進行重排序(以一不同順序),在與密碼編譯裝置之一真(genuine)操作的功率消耗輪廓或電磁發射輪廓相比時,該至少一個冗餘(redundant)或部分冗餘計算具有一類似功率消耗輪廓或一電磁發射輪廓。該冗餘或部分冗餘計算可藉由使用一不同密碼金鑰及/或一不同原始資料(例如,明文)來執行。該冗餘或部分冗餘計算之存在,在難以清楚地識別真或冗餘/部分冗餘操作的意義上將使CPA及CEMA難以進行,因此充當用於硬體安全之一反制。在本發明中揭示之方法或設備的輪廓可在於效率為傳統方法之數十至數百倍。
在本發明之一個態樣中,用於使用至少一個密碼金鑰將至少一個明文加密為至少一個密文之方法、電腦可讀取媒體及設備。該設備可執行取決於該至少一個明文及該至少一個密碼金鑰之至少一個真計算。該設備可回應於該至少一個真計算之該執行而發出第一類比電特性。該設備可執行獨立於該 至少一個明文或該至少一個密碼金鑰之至少一個冗餘計算。該設備可回應於該至少一個冗餘計算之該執行而發出第二類比電特性。該等第二類比電特性可相似於該等第一類比電特性,使得該等第一類比電特性與該等第二類比電特性之間的類似性之一量度滿足一臨限值。
在本發明之另一態樣中,用於使用至少一個密碼金鑰將至少一個密文解密為至少一個明文之方法、電腦可讀取媒體及設備。該設備可執行取決於該至少一個密文及該至少一個密碼金鑰之至少一個真計算。該設備可回應於該至少一個真計算之該執行而發出第一類比電特性。該設備可執行獨立於該至少一個密文或該至少一個密碼金鑰之至少一個冗餘計算。該設備可回應於該至少一個冗餘計算之該執行而發出第二類比電特性。該等第二類比電特性可相似於該等第一類比電特性,使得該等第一類比電特性與該等第二類比電特性之間的類似性之一量度滿足一臨限值。
為實現前述及相關目的,所揭示之態樣包括在下文中充分描述且在申請專利範圍中特別指出之特徵。詳細闡述的以下描述及隨附圖式說明本發明之態樣的特定特徵。然而,此等特徵僅指示可使用各種態樣原理之各種方式中之少數,且此描述意欲包括所有此類態樣及其等效物。
100‧‧‧功率消耗輪廓
102‧‧‧局部功率消耗輪廓
104‧‧‧局部功率消耗輪廓
106‧‧‧局部功率消耗輪廓
108‧‧‧局部功率消耗輪廓
110‧‧‧局部功率消耗輪廓
112‧‧‧局部功率消耗輪廓
114‧‧‧局部功率消耗輪廓
116‧‧‧局部功率消耗輪廓
118‧‧‧局部功率消耗輪廓
120‧‧‧局部功率消耗輪廓
200‧‧‧圖表
300‧‧‧AES設計
302‧‧‧輸入控制器
304‧‧‧AES核心計算單元
306‧‧‧輸出控制器
400‧‧‧AES核心計算單元
402‧‧‧替換盒
406‧‧‧列移位
408‧‧‧行混合
410‧‧‧添加輪次
412‧‧‧金鑰展開
450‧‧‧AES核心計算單元
452‧‧‧逆替換盒
456‧‧‧逆列移位
458‧‧‧逆行混合
460‧‧‧添加輪次
462‧‧‧金鑰展開
500‧‧‧硬體架構
502‧‧‧多工器
504‧‧‧解多工器
506‧‧‧模擬AES核心計算區塊
508‧‧‧真AES核心計算區塊
510‧‧‧多工器
512‧‧‧額外控制器
600‧‧‧功率消耗輪廓
800‧‧‧硬體架構
802‧‧‧計算區塊
804‧‧‧多工器
806‧‧‧額外控制器
900‧‧‧圖
950‧‧‧圖
1000‧‧‧圖
1100‧‧‧圖表
1200‧‧‧圖
1202‧‧‧功率消耗輪廓
1204‧‧‧功率消耗輪廓
1210‧‧‧圖
1214‧‧‧功率消耗輪廓
1216‧‧‧功率消耗輪廓
1220‧‧‧圖
1222‧‧‧功率消耗輪廓
1224‧‧‧功率消耗輪廓
1500‧‧‧圖
1600‧‧‧序列架構
1602‧‧‧計數器控制器
1604‧‧‧替換盒電路
1606‧‧‧輸入暫存器
1608‧‧‧輸出暫存器
1800‧‧‧圖
1802‧‧‧過程
1804‧‧‧過程
1900‧‧‧圖
1902‧‧‧電磁發射量測
1904‧‧‧電磁發射量測
2000‧‧‧流程圖
2100‧‧‧流程圖
2200‧‧‧概念性資料流圖
2202‧‧‧設備
2202’‧‧‧設備
2204‧‧‧真加密組件
2206‧‧‧信號變換組件
2208‧‧‧冗餘加密組件
2300‧‧‧圖
2304‧‧‧處理器
2306‧‧‧電腦可讀取媒體/記憶體
2314‧‧‧處理系統
2324‧‧‧匯流排
2400‧‧‧概念性資料流圖
2402‧‧‧設備
2402’‧‧‧設備
2404‧‧‧真解密組件
2406‧‧‧信號變換組件
2408‧‧‧冗餘解密組件
2500‧‧‧圖
2504‧‧‧處理器
2506‧‧‧電腦可讀取媒體/記憶體
2514‧‧‧處理系統
2524‧‧‧匯流排
圖1描繪用於執行一次完整AES加密之隨時間推移之功率消耗輪廓之實例。
圖2為描繪藉由使用傳統方法、具有1個計算模擬之第一具體實例、具有2個計算模擬之第二具體實例、及具有3個計算模擬之第三具體實例成功攻擊硬體所需之持續時間之圖表。
圖3描繪包含輸入控制器、AES核心計算單元及輸出控制器之AES設計之實 例方塊圖。
圖4A及圖4B分別描繪用於加密及解密之128位元AES核心計算單元內之主要操作的實例。
圖5描繪根據本發明之一些具體實例之用於AES核心計算之實例硬體架構。
圖6描繪根據本發明之一個具體實例之用於使用硬體架構執行AES的功率消耗輪廓之實例。
圖7A至圖7C分別描繪具有一個模擬、兩個模擬及三個模擬之具體實例之硬體架構的功率消耗輪廓之實例。
圖8描繪根據本發明之一個具體實例之硬體架構之另一實例。
圖9A及圖9B分別為描繪可如何基於真輸入(Genuine_Input)及密碼金鑰(Key_Current)信號導出冗餘輸入(Redundant_Input)及假金鑰(Key_Fake)信號之圖。
圖10為描繪對信號(真輸入或密碼金鑰)進行拌碼(scramble)之實施實例之圖。
圖11為展示真計算及模擬計算之功率消耗之圖表,其中其金鑰洩漏區被強調。
圖12A至圖12C為說明量化具有真計算及模擬計算之類比特性的金鑰洩漏區之類似性之實例的圖。
圖13A至圖13F展示在第10輪(前一部分)及第11輪(後一部分)中針對真AES核心計算及模擬AES核心計算之不同出現率分佈的變異數分析之實例。
圖14A及圖14B描繪最後一輪計算之兩個操作。
圖15為描繪其中可計算128位元替換盒操作之波形的圖。
圖16描繪用於序列化替換盒操作之序列架構之實例。
圖17A至圖17D描繪用以計算所有128位元替換盒操作的疊代操作序列之實 例,其中插入替換盒操作之模擬疊代。
圖18為描繪用於獲得兩條跡線之替換盒操作之疊代序列之實例的圖。
圖19為描繪用於兩個電磁發射量測(真及模擬)之波形之實例的圖,其中在多個時脈循環上出現金鑰洩漏特徵。
圖20為用於增強硬體安全之加密方法之流程圖。
圖21為用於增強硬體安全之解密方法之流程圖。
圖22為說明例示性設備中之不同構件/組件之間的資料流之概念性資料流圖。
圖23為說明用於使用處理系統之設備的硬體實施之實例的圖。
圖24為說明例示性設備中之不同構件/組件之間的資料流之概念性資料流圖。
圖25為說明用於使用處理系統之設備的硬體實施之實例的圖。
下文結合附圖所闡述之詳細描述意欲作為對各種可能組態之描述,且不意欲表示可實踐本文所描述之概念的僅有組態。出於提供對各種概念之透徹理解之目的,實施方式包括具體細節。然而,對於熟習此項技術者而言,以下情形將為顯而易見的:可在無此等具體細節之情況下實踐此等概念。在一些情況下,熟知結構及組件係以方塊圖形式展示以便避免混淆此等概念。
現將參考各種設備及方法呈現提供硬體安全以反制側通道攻擊之若干態樣。將藉由各種區塊、組件、電路、過程、演算法等(統稱為「元件」)在以下詳細描述中描述且在附圖中說明此等設備及方法。此等元素可使用電子硬體、電腦軟體或其任何組合來予以實施。將此等元件實施為硬體還是軟體取決於特定應用及外加於整個系統上之設計約束。
藉助於實例,元件或元件之任何部分或元件之任何組合可使用包括一或多個處理器之「處理系統」予以實施。處理器之實例包括微處理器、微控制器、圖形處理單元(GPU)、中央處理單元(CPU)、應用處理器、數位信號處理器(DSP)、精簡指令集計算(RISC)處理器、系統單晶片(SoC)、基頻處理器、場可程式化閘陣列(FPGA)、可程式化邏輯裝置(PLD)、狀態機、閘控邏輯、離散硬體電路,及經組態以執行整個本發明中所描述之各種功能性的其他合適硬體。處理系統中的一或多個處理器可執行軟體。軟體將廣泛地解釋為意謂指令、指令集、編碼、編碼區段、程式碼、程式、子程式、軟體組件、應用程式、軟體應用程式、套裝軟體、常式(routine)、次常式、物件、可執行文件、執行線程、過程、功能等,而不管其是被稱作軟體、韌體、中間軟體、微碼、硬體描述語言或其他。
相應地,在一或多個實例具體實例中,所描述之功能可以硬體、軟體或其任何組合實施。若以軟體實施,則功能可儲存於電腦可讀取媒體上或在電腦可讀取媒體上編碼為一或多個指令或代碼。電腦可讀取媒體包括電腦儲存媒體。儲存媒體可為可由電腦存取之任何可用媒體。藉助於實例而非限制,此等電腦可讀取媒體可包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、光碟儲存器、磁碟儲存器、其他磁性儲存裝置、前述類型之電腦可讀取媒體的組合,或可用以儲存呈可由電腦存取之指令或資料結構形式之電腦可執行程式碼的任何其他媒體。
本發明之一些具體實例係關於用以抵抗包括CPA及CEMA之SCA的計算方法。在一些具體實例中,提供硬體以在一次完整加密過程中計算加密演算法。該加密演算法可使用密碼金鑰將明文加密為密文。硬體不僅計算取決於密碼金鑰及明文兩者之至少一輪真計算,而且計算獨立於密碼金鑰之及/或明文之至少一輪(冗餘)計算模擬。至少一輪真計算及至少一輪計算模擬 之計算順序可為隨機的。僅該至少一輪真計算共同地產生密文。該至少一輪計算模擬可具有與至少一輪真計算類似之類比電特性。
在一些具體實例中,提供硬體以在一次完整解密過程中計算解密演算法。該解密演算法可使用密碼金鑰來將密文解密為明文。硬體不僅計算取決於密碼金鑰及密文兩者之至少一輪真計算,而且計算獨立於密碼金鑰之及/或密文之至少一輪(冗餘)計算模擬。至少一輪真計算及至少一輪計算模擬之計算順序可為隨機的。僅該至少一輪真計算共同地產生明文。該至少一輪計算模擬可具有與至少一輪真計算類似之類比電特性。
在一些具體實例中,提供硬體以在一次完整加密過程中計算加密演算法。該加密演算法可使用密碼金鑰來將明文加密為密文。硬體可計算取決於密碼金鑰及明文兩者之至少一輪計算。該至少一輪計算可包括至少兩個部分計算。每一部分計算不僅產生取決於密碼金鑰及明文之部分輸出,而且產生獨立於密碼金鑰及/或明文之冗餘輸出。該至少兩個部分計算共同地產生密文。該至少兩個部分計算中之每一者可具有與彼此及該至少一輪計算類似之類比電特性。
在一些具體實例中,提供硬體以在一次完整解密過程中計算解密演算法。該解密演算法可使用密碼金鑰來將密文解密為明文。硬體可計算取決於密碼金鑰及明文兩者之至少一輪計算。該至少一輪計算可包括至少兩個部分計算。每一部分計算不僅產生取決於密碼金鑰及密文之部分輸出,而且產生獨立於密碼金鑰及/或密文之冗餘輸出。該至少兩個部分計算共同地產生明文。該至少兩個部分計算中之每一者可具有與彼此及該至少一輪計算類似之類比電特性。
在一些具體實例中,提供硬體以在一次完整加密過程中計算加密演算法。該加密演算法可使用密碼金鑰將明文加密為密文。硬體可計算取決 於密碼金鑰及明文兩者之至少一輪計算。該至少一輪計算可具有序列操作,該等序列操作包括取決於明文之真替換盒(substitution-box,S-Box)計算之至少一個疊代及獨立於明文之替換盒(冗餘)計算模擬之至少一個疊代。真替換盒計算之該至少一個疊代與替換盒計算模擬之該至少一個疊代之計算順序可為隨機的。僅真替換盒計算之該至少一個疊代共同地產生密文。替換盒計算模擬之該至少一個疊代可具有與真替換盒計算之該至少一個疊代類似之類比電特性。
在一些具體實例中,提供硬體以在一次完整解密過程中計算解密演算法。該解密演算法可使用密碼金鑰將密文解密為明文。硬體可計算取決於密碼金鑰及密文兩者之至少一輪計算。該至少一輪計算可具有序列操作,該等序列操作包括取決於密文之真逆替換盒計算之至少一個疊代及獨立於密文之逆替換盒計算模擬之至少一個疊代。真逆替換盒計算之該至少一個疊代與逆替換盒計算模擬之該至少一個疊代之計算順序可為隨機的。僅真逆替換盒計算之該至少一個疊代共同地產生明文。逆替換盒計算模擬之該至少一個疊代可具有與真逆替換盒計算之該至少一個疊代類似之類比電特性。
在一些具體實例中,提供硬體以在一次完整加密過程中計算加密演算法。該加密演算法可使用密碼金鑰將明文加密為密文。硬體可計算取決於密碼金鑰及明文兩者之至少一輪計算。該至少一輪計算可具有序列操作,該等序列操作包括取決於明文之替換盒計算之至少一個疊代。替換盒計算之該至少一個疊代之計算順序可為隨機的。僅替換盒計算之該至少一個疊代共同地產生密文。
在一些具體實例中,提供硬體以在一次完整解密過程中計算解密演算法。該解密演算法可使用密碼金鑰將密文解密為明文。硬體可計算取決於密碼金鑰及密文兩者之至少一輪計算。該至少一輪計算可具有序列操作,該等序列操作包括取決於密文之逆替換盒計算之至少一個疊代。逆替換盒計算之 該至少一個疊代之計算順序可為隨機的。僅逆替換盒計算之該至少一個疊代共同地產生密文。
所揭示具體實例之主要優勢為顯著且指數級地增大密碼編譯硬體上之SCA之難度。表I以表格形式列出使用標準(基準)方法、具有一個計算模擬之第一具體實例、具有兩個計算模擬之第二具體實例,和具有三個計算模擬之第三具體實例以攻擊密碼編譯硬體之有效量測跡線。分析以下情形:標準方法需要最小量測跡線N=10、20、50、100及1,000以進行SCA。若採用該等具體實例,則敵人需要重新對準真量測跡線與模擬量測跡線,以使得總體有效量測跡線,對於具有1個計算模擬的情況自N增大至2 N ,對於具有2個計算模擬的情況自N增大至3N,且對於具有3個計算模擬的情況自N增大至4N。舉例而言,若對於標準方法N=1,000,則具體實例將需要顯著更有效的量測跡線,即對於具有1個計算模擬的情況需要1.07×10301個有效量測跡線,對於具有2個計算模擬的情況需要1.32×10477個有效量測跡線,且對於具有3個計算模擬的情況需要1.15×10602個有效量測跡線。根據當前標準,基準方法需要至少1百萬有效量測跡線以獲得硬體安全。本發明之具體實例可混合數十至數百量值級的更有效的量測跡線,從而使硬體上之SCA極其困難。
為進一步解釋本發明中之具體實例的安全輪廓,基於持續時間對一些具體實例進行評估,以便成功攻擊硬體。假定每100個量測跡線花費1秒來攻擊硬體,圖2為描述藉由使用傳統方法、具有1個計算模擬之第一具體實 例、具有2個計算模擬之第二具體實例,和具有3個計算模擬之第三具體實例成功攻擊硬體所需之持續時間的圖表200。在圖2中,標繪N=5、10、15、20、25、30、35及40之情況下的持續時間。體現該等具體實例之有效量測跡線(具有基值N)將成指數地複合。如圖2所示,傳統設計可在N小(例如40)時在1秒內簡單地受到攻擊,其中體現本發明之具體實例之設計安全得多。當N=20時,體現具有一個計算模擬、兩個計算模擬及三個計算模擬之具體實例之設計分別可在約3小時(稍微困難)、1.1年(非常困難)及349年(極其困難)受到攻擊。若N較大,則持續時間將會更長。舉例而言,當N=35時,體現僅具有一個計算模擬之具體實例之硬體設計可能需要多餘10年才能被SCA破壞。
與主要優勢一致,所揭示之具體實例之第二優勢為安全輪廓之可縮放性。如表I及圖2所示,所揭示之具體實例之安全輪廓可藉由允許更多模擬而顯著增強。此類可縮放性很好地對不同設計參數進行取捨,包括時間、功率消耗及安全特性。儘管具有此類可縮放性,但即使具有1個模擬之具體實例亦應非常安全,其中40(N=40)個量測跡線可能導致多達349年才能在硬體中破解密碼金鑰。
所揭示之具體實例之第三優勢為低額外負荷,包括面積額外負荷、效能額外負荷及功率額外負荷。舉例而言,假定需要使128位元AES硬體安全,表II以表格形式列出使用傳統方法及具有一個模擬之一個具體實例的效能、功率消耗及硬體額外開銷之最佳估計。簡而言之,該具體實例之額外負荷非常低。
表II:使用傳統方法與具有一個模擬之一個具體實例的效能、功率消耗及硬體額外負荷之比較。
第四優勢為一些具體實例同時具有CPA抗性及CEMA抗性。另一方面,傳統方法可能對CPA抵抗有利,但對CEMA抵抗不利,或反之亦然。自不同角度看,傳統方法可能會在CPA或CEMA中成功攻擊,因此不穩健。
第五優勢為一些具體實例亦適用於防止故障攻擊。此係因為真操作之順序為隨機的,使得難以將故障注入正確之序列。
第六優勢為所揭示之具體實例可容易地應用於許多硬體設計平台,包括場可程式化閘陣列(FPGA)、特殊應用積體電路(ASIC)、硬體/軟體微控制器平台,等。不同於一些傳統方法,例如,雙軌邏輯(dual rail)僅可在ASIC平台上實施。換言之,所揭示之具體實例更實用(自實施之角度觀之)。鑒於前述內容,所揭示之具體實例為用於減輕SCA之硬體安全之較佳方法。
圖3描繪包括輸入控制器302、AES核心計算單元304及輸出控制器306之AES設計300之實例方塊圖。在AES設計300中,10輪計算(其中可預先計算第一添加輪次(AddRound)操作)或11輪計算係被疊代地計算,以產生完整的128位元AES加密。時脈信號(clock signal,CLK)用於經由輸入控制器302及輸出控制器306使計算同步。輸入控制器302接收主輸入(包括明文、密碼金鑰及其他控制信號),且產生中間信號(即,中間資料及中間密碼金鑰)以使AES核心計算單元304疊代地計算每一輪計算。在最後一輪計算之前,AES核心計算單元304之(中間)輸出回饋至輸入控制器302。對於最後一輪計算, 輸出控制器306產生主輸出信號(包括密文及用於同步之其他控制信號)。取決於資料同步,AES加密將花費11至13(或更多)個時脈循環。
圖4A及圖4B分別描繪用於加密及解密之128位元AES核心計算單元內之主要操作之實例。在一個具體實例中,AES核心計算單元400或450可為上文在圖3中描述之AES核心計算單元304。加密與解密在操作上類似,惟加密需要替換盒、列偏移(Shift Row)、行混合(Mix Column),而解密需要逆替換盒、逆列偏移及逆行混合。
圖4A描繪用於加密之128位元AES核心計算單元內之主要操作之實例。在一個具體實例中,AES核心計算單元400可包括替換盒402、列移位406、行混合408、添加輪次410及金鑰展開(Key Expansion)412。替換盒402可採用某一數目m之輸入位元,且將其變換為某一數目n之輸出位元,其中n不一定等於m(對於平行實施,m=n)。列移位406可執行列移位變換,其將矩陣之每一列中之位元組移位由加密演算法判定之特定偏移量。行混合408可執行矩陣乘法。添加輪次410可執行互斥或(XOR)操作。金鑰展開412可包括四個8位元替換盒,且將密碼金鑰展開成數個單獨之輪次金鑰。
AES核心計算單元400之主要輸入為當前輪次之資料(Data_Current)、當前輪次之密碼金鑰(Key_Current)及輪次組態(Round_Conf)。當前輪次之資料(Data_Current)可提供至替換盒402,且當前輪次之密碼金鑰(Key_Current)及輪次組態(Round_Conf)可提供至金鑰展開412。AES核心計算單元400之主要輸出為經加密之直接輸出(Data_Next)及經更新之密碼金鑰(Key_Next)。經加密之直接輸出(Data_Next)可由添加輪次410提供,且經更新之密碼金鑰(Key_Next)可由金鑰展開412提供。當前輪次之輸出Data_NextKey_Next被傳回分別作為下一輪次之輸入Data_CurrentKey_Current。對於最後一輪計算,不計算行混合408之操作。
圖4B描繪用於解密之128位元AES核心計算單元內之主要操作之實例。在一個具體實例中,AES核心計算單元450可包括逆替換盒452、逆列移位456、逆行混合458、添加輪次460及金鑰展開462。逆替換盒452可為逆向執行之替換盒402。逆列移位456可執行列移位406之逆操作。逆行混合458可執行行混合408之逆操作。添加輪次460可執行XOR操作。金鑰展開462可包括四個8位元逆替換盒,且將密碼金鑰展開為數個單獨之輪次金鑰。
AES核心計算單元450之主要輸入為當前輪次之資料(Data_Current)、當前輪次之密碼金鑰(Key_Current)及輪次組態(Round_Conf)。當前輪次之資料(Data_Current)可提供至逆替換盒452,且當前輪次之密碼金鑰(Key_Current)及輪次組態(Round_Conf)可提供至金鑰展開462。AES核心計算單元450之主要輸出為經加密之直接輸出(Data_Next)及經更新之密碼金鑰(Key_Next)。經加密之直接輸出(Data_Next)可由添加輪次460提供,且經更新之密碼金鑰(Key_Next)可由金鑰展開462提供。當前輪次之輸出Data_NextKey_Next被傳回分別作為下一輪次之輸入Data_CurrentKey_Current。對於最後一輪計算,不計算逆行混合458之操作。
已說明AES加密之操作,圖5描繪根據本發明之一些具體實例之用於AES核心計算之實例硬體架構500。主要輸入信號包括Genuine_InputRedundant_Input,且輸出信號為Genuine_Output,其他同步信號未展示。Genuine_Input信號將Data_Current表示為明文(或密文)或每輪計算中之直接資料信號。Redundant_Input信號表示假輸入(獨立於明文/密文)或明文/密文本身。多工器502基於控制信號Ctrl1來選擇Genuine_Input信號或Redundant_Input信號,隨後解多工器504基於控制信號Ctrl2將輸入傳遞至真AES核心計算區塊508或模擬(imitation)AES核心計算區塊506。真AES核心計算區塊508基於密碼金鑰(Key_Current)及資料(Data_Current)產生所要的輸 出,而模擬AES核心計算區塊506基於假金鑰(Key_Fake)及/或Redundant_Input信號產生假輸出。
真AES計算區塊508及模擬AES計算區塊506可在不同時間執行(例如,延遲一個時脈循環),且其計算順序可為隨機的。額外控制器512使輸入信號同步,且例如藉由提供控制信號Ctrl1Ctrl2Ctrl3來控制計算之順序。額外控制器512可進一步將密碼金鑰(Key_Current)提供至真AES核心計算區塊508,且將假金鑰(Key_Fake)提供至模擬AES核心計算區塊506。多工器510基於控制信號Ctrl3選擇來自真AES核心計算區塊508及模擬AES核心計算區塊506之輸出以輸出Genuine_Output信號。在一些具體實例中,Genuine_Output信號可包括由真AES核心計算區塊508產生之Data_NextKey_Next信號。
圖6描繪根據本發明之一個具體實例之用於使用硬體架構來執行AES之功率消耗輪廓600之實例。替代展示10輪的操作(如圖1),圖6展示11輪之功率輪廓600-原始10輪的真操作及另外一輪的模擬操作。在此情況下,模擬操作插入於第10輪或第11輪,每輪具有相等概率50%(或幾乎相等)。真操作與模擬操作之功率消耗類似。類似地,真操作與模擬操作之諸如電磁發射之其他洩漏資訊類似。結果,敵人需要區分真操作與模擬操作,且在進行SCA(包括CPA及CEMA)之前使此等操作重新同步。
圖7A至圖7C分別描繪具有一個模擬、兩個模擬及三個模擬之具體實例之硬體架構之功率消耗輪廓之實例。由於插入(假)模擬,因此CPA攻擊僅僅藉由在任一輪中收集量測跡線係不起作用的。舉例而言,在圖7A中,50%之量測跡線含有假操作,從而增大直接CPA可能失敗之CPA抗性。在圖7B中,大約2/3之量測跡線含有假操作,因此直接CPA更可能失敗。在圖7C中,約¾之量測跡線含有假操作,因此直接CPA幾乎不可能。儘管此等量測跡線之重 新對準係可能的以便在一輪中僅重新對準真跡線,但達成此目的之可能性過小。如之前參考圖2所評估,有效量測跡線及所需之時間即使對於小數目N亦為指數級大。
圖8描繪根據本發明之一個具體實例之硬體架構800之另一實例。在圖8中,僅使用一個計算區塊802來產生真操作或模擬操作。主要輸入信號包括Genuine_InputRedundant_Input,且輸出信號為Genuine_Output;未展示其他同步信號。Genuine_Input信號將Data_Current表示為明文(或密文)或每輪計算中之直接資料信號。Redundant_Input信號表示假輸入(獨立於明文/密文)或明文/密文本身。多工器804基於控制信號Ctrl1來選擇Genuine_Input信號或Redundant_Input信號。基於控制信號Ctrl2,計算區塊802基於密碼金鑰(Key_Current)及資料(Data_Current)產生所需輸出,或基於假金鑰(Key_Fake)及/或Redundant_Input信號產生假輸出。額外控制器806用於控制此等操作,且例如藉由提供控制信號Ctrl1Ctrl2來選擇正確輸出以形成Genuine_Output信號。額外控制器512可進一步將密碼金鑰(Key_Current)及假金鑰(Key_Fake)提供至計算區塊802。圖8中之硬體架構800與上文在圖5中描述之硬體架構500達成相同之效果。
為使敵人可以偵測或預測模擬及真計算之風險最小化,Redundant_Input信號可體現類似於Genuine_Input信號之一些信號特性。類似地,Key_Fake信號可體現類似於Key_Current信號之一些信號特性。構思為達成模擬計算與真計算之間的類似電特性(例如功率消耗或電磁發射)。一種可能之實施為使Redundant_Input信號具有與Genuine_Input相同之漢明權重(Hamming weight,HW)或使Key_Fake信號具有與Key_Current信號相同之HW。
圖9A及圖9B為分別描繪可如何基於真輸入(Genuine_Input)及 密碼金鑰(Key_Current)信號,導出冗餘輸入(Redundant_Input)及假金鑰(Key_Fake)信號之圖900及950。如圖9A所示,Redundant_Input信號可藉由體現類似於Genuine_Input信號之一些信號特性來導出。類似地,如圖9B所示,Key_Fake信號可藉由體現類似於Key_Current信號之一些信號特性來導出。
圖10為描繪對信號(真輸入或密碼金鑰)進行拌碼之實施實例之圖1000。在圖10中,具有HW 4之輸入字串10101010可被拌碼為具有相同HW 4之另一輸出字串01011010。藉由計數位元串中之非零位元之數目來計算HW。由於Redundant_Input信號或Key_Fake信號與Genuine_InputKey_Current具有相同之信號特性(在此情況下為HW),因此模擬計算(每輪中)與真計算(每輪中)將具有非常類似之電特性。除HW模型外,信號特性可為其他模型,諸如漢明距離、零點模型等。
圖11為展示真計算及模擬計算之功率消耗之圖表1100,其中其金鑰洩漏區被強調。在一些具體實例中,金鑰洩漏區為由操作引起之所發出之類比特性之區,在該區中,密碼金鑰可能洩漏。在一些具體實例中,金鑰洩漏區為由涉及密碼金鑰之操作引起之所發出類比特性之區。真計算及模擬計算(在金鑰洩漏區內)之功率消耗之間的類似性程度愈高,計算裝置之安全特徵愈好。
圖12A至圖12C為說明量化具有真計算及模擬計算之類比特性的金鑰洩漏區之類似性之實例的圖1200、1210、1220。在圖1200、1210、1220中之每一者中,存在兩組功率消耗輪廓,其中一組功率消耗輪廓對應於真計算,而另一組功率消耗輪廓對應於模擬計算。舉例而言,圖12A中之圖1200說明功率消耗輪廓1202及1204。功率消耗輪廓1204對應於真計算,且功率消耗輪廓1202對應於模擬計算。圖12B中之圖1210說明功率消耗輪廓1214及1216。功率消耗輪廓1216對應於真計算,且功率消耗輪廓1214對應於模擬計算。圖12C中 之圖1220說明功率消耗輪廓1222及1224。功率消耗輪廓1224對應於真計算,且功率消耗輪廓1222對應於模擬計算。
藉由視覺檢查,在圖12A中之真計算與模擬計算具有最高類似性,在圖12B中次之,且在圖12C中最低。在數學上,等式(2)中界定之正規化絕對差(NAD)及/或相關係數(例如,如等式(1)中所界定)可用於量化真計算與模擬計算之類比電特性之間的類似性。相關係數之取值範圍為-1至+1,其中+1表示最高可能類似性,0為最低可能類似性,且-1表示自一個曲線圖至另一曲線圖之最高可能類似性,但方向相反。
將數學量度應用於圖12A中之兩組功率消耗輪廓,兩組功率消耗輪廓高度類似(幾乎相同),因為其NAD幾乎為0且其相關係數幾乎為1。在圖12B中,兩組功率消耗輪廓相似,因為其NAD為約0.1,且其相關係數為約0.84。在圖12C中,兩組功率消耗輪廓不太類似,因為其NAD大於0.2且其相關係數小於0.74。在一些具體實例中,若其NAD小於或等於0.2,則計算之類比特性類似。在一些具體實例中,若其相關係數大於或等於0.8,則計算之類比特性類似。
圖13A至圖13F展示在第10輪(前一部分)及第11輪(後一部分)中針對真AES核心計算及模擬AES核心計算之不同出現率分佈的變異數分析之實例。在圖中之每一輪中,真AES核心計算與模擬AES核心計算之間的出現率分佈差(%)被標註。在圖13A中,真AES核心計算與模擬AES核心計算之間的出現率分佈比率在第10輪為20%:80%,且在第11輪為80%:20。在圖13B中,真AES核心計算與模擬AES核心計算之間的出現率分佈比率在第10輪及第11輪中為50%:50%。在圖13C中,真AES核心計算與模擬AES核心計算之間的出現率分佈比率在第10輪為80%:20%,且在第11輪為20%:80%。在圖13D中,真 AES核心計算與模擬AES核心計算之間的出現率分佈比率在第10輪為20%:80%,且在第11輪為80%:20。在圖13E中,真AES核心計算與模擬AES核心計算之間的出現率分佈比率在第10輪及第11輪為50%:50%。在圖13F中,真AES核心計算與模擬AES核心計算之間的出現率分佈比率在第10輪為80%:20%,且在第11輪為20%:80%。
圖13A至圖13C描繪在冗餘輸入信號不同於真輸入信號,且冗餘輸入信號與真輸入信號具有不同漢明權重的情況下之變異數分析。圖13D至圖13F描繪在冗餘輸入信號現在與真輸入信號具有相同漢明權重的情況下之變異數分析。
圖13A至圖13C,在使用不同HW時,變異數分析可幫助指示真計算與模擬計算之間的出現率分佈。舉例而言,在圖13A中,第11輪中之較高變異數意謂第11輪具有較多真計算。此係因為模擬計算可被視為可能具有較低變異數之雜訊。由於第10輪具有較更多模擬計算,因此變異數將較低。在圖13B中,在出現率分佈由於其隨機輸入而在第10輪與第11輪相同時,其變異數類似。儘管可在圖13A及13C中觀察到變異數之差異,但其並不暗示敵人可容易地區分真計算與模擬計算(在同一輪內)。嘗試尋找真計算之同一輪內之蠻力方法(即藉由試誤)將為無效的,因為對於大N,搜尋空間保持非常大。
自圖13D至圖13F,在使用相同HW時,所有輪次具有非常類似之變異數,意謂模擬計算具有與真計算高度類似之電特性。此意謂儘管模擬計算被認為係冗餘計算,但其具有與真計算類似之類比特性。換言之,區分模擬計算與真計算為非常困難的。在相同輪次及不同輪次內試圖找出真計算之蠻力方法(即藉由試誤)將更加無效,因為搜尋空間過大,即使對於小N亦如此。
在一些具體實例中,可量化兩組量測(例如,功率消耗)之類似性,其中每一組具有許多量測,其混合真計算及模擬計算。在此類具體實例 中,量測之變異數可為相關的。舉例而言,圖13B、圖13D、圖13E及圖13F中之資料之變異數之相關係數相當高(例如,大於0.95)。而圖13A及圖13C中之資料之變異數之相關係數稍高(例如,小於0.8)。在一些具體實例中,在不同輪次(例如,第10輪及第11輪)之量測輪廓之變異數相關時,若變異數之相關係數至少大於或等於0.8,則可認為量測輪廓類似。
真計算與計算模擬可進一步互混,以共同產生真輸出及冗餘資料。在此情況下,兩種計算皆為部分有用,且含有部分結果;所述計算中無一者為冗餘的。圖14A及圖14B描繪最後一輪計算之兩個操作。最後一輪計算可具有128位元替換盒、列移位及添加輪次。在圖14A中,僅輸入資料之第一半數及金鑰之第一半數為真;其餘之資料及金鑰為假,但具有類似之類比特性。半數之替換盒電路及XOR閘(著色為灰色)執行真最後一輪計算之第一部分。在圖14B中,輸入之第二半數及金鑰之第二半數為真;其餘之資料及金鑰為假,但具有類似之類比特性。第二半數之替換盒電路及XOR閘(著色為灰色)執行真最後一輪計算之第二部分。共同地,所有真輸出組合在一起。對於每一最後一輪操作,替換盒電路及其對應之XOR電路之選擇可為隨機的,從而增大預測真操作之順序/位置之難度。
用於AES內之每一輪之硬體架構可進一步不同地實施,但仍體現所揭示之具體實例。舉例而言,AES之主要操作由替換盒操作組成。圖15為描繪可計算128位元替換盒操作之波形之圖1500。在一個具體實例中,藉由使用具有16組8位元替換盒電路之平行替換盒計算,可在1個時脈內計算替換盒操作。8位元替換盒電路為將256(28)個輸入替換為另外的256個輸出之最小構建基塊。或者,可在16個時脈循環內序列計算替換盒操作,其中每一時脈循環產生8位元輸出。由於僅需要一個8位元替換盒電路,因此此序列方式對於小區域實施為有利的。此類序列實施被稱為微型AES或奈米AES。
圖16描繪用於序列化替換盒操作之序列架構1600之實例。在此實例中,輸入為Sin[127:0],且對應輸出為Sout[127:0]。並非同時(在每一輪內)進行128位元替換盒操作,將替換盒操作序列化,從而具有替換盒操作之多個疊代(在每一輪內)。舉例而言,替換盒操作之每一疊代可執行8位元替換盒操作(即,藉由一個8位元替換盒電路計算)或16位元替換盒操作(即,藉由兩個8位元替換盒電路計算)或32位元替換盒操作(即,藉由四個8位元替換盒電路計算)或64位元操作(即,藉由八個8位元替換盒電路計算)。藉由將輸入(經由輸入暫存器1606)同步至替換盒電路1604,且藉由將輸出(經由輸出暫存器1608)同步至列移位操作,由嵌入式計數器控制器1602控制替換盒操作之疊代。若需要考慮小閘計數(例如,對於奈米AES),輸出暫存器可為可選的,其中可將Sout[127:0]間接反饋(經由組合邏輯)至輸入暫存器。可在每一輪128位元替換盒操作中插入替換盒操作之疊代的模擬。
圖17A至圖17D描繪用以計算所有128位元替換盒操作的疊代操作序列之實例,其中插入替換盒操作之模擬疊代。具體言之,圖17A至圖17D描繪每一疊代操作分別採用8位元、16位元、32位元及64位元替換盒操作之情形。為進行說明,在開始處插入替換盒操作之模擬疊代。熟習此項技術者將認識到,可以任何順序插入替換盒操作之模擬疊代,且插入之位置可隨時間(例如,輪次)而不同。另外,對於替換盒操作之每一疊代,可任意地多工處理128位元之Sin[127:0]。使用圖17A為例進行說明,第1個8位元替換盒可對於一個輪次取8個最高有效位元(Sin[127:120]),且此後在另一輪次中取8個最低有效位元(Sin[7:0])。類似地,對於圖17B至圖17D中之其他情形,替換盒電路1604自一輪至另一輪取不同位元串。此類隨機化與模擬操作一起使得敵人難以在SCA期間使功率/電磁發射輪廓相關。隨機化(及模擬操作)之同步,由計數器控制器1602藉由使操作之每一疊代的輸入隨機化且最後對用於恰當後續操 作(即,列移位操作)之輸出進行重新排序來處置。
對於替換盒操作之每一疊代,可任意地多工處理128位元之Sin[127:0]。此任意多工處理可被稱為位元串隨機化。在一些具體實例中,可跳過計算模擬。圖18為描繪用於獲得兩條跡線之替換盒操作之疊代序列之實例的圖1800。在該實例中,提供用於兩個加密過程之128位元替換盒操作(僅具有一個替換盒電路)之疊代操作序列。在過程1802中,以正常次序執行8位元替換盒操作之疊代。在過程1804中,隨機地執行8位元替換盒操作之疊代。對於替換盒操作之每一疊代,電特性(功率或電磁發射)可能非常類似。
對於序列架構設計,金鑰洩漏區可分散在多個時脈循環內。圖19為描繪用於兩個電磁發射量測1904及1902(分別為真計算及模擬計算)之波形之實例的圖1900,其中金鑰洩漏特徵在多個時脈循環內出現。對於此類情形,可評估電磁發射量測之變異數之相關性以量測類似性。在該實例中,變異數之相關性大於0.95。在一些具體實例中,在不同輪次之電磁發射量測之變異數相關時,若變異數之相關係數至少大於或等於0.8,則認為不同輪次之電磁發射量測類似。
應清楚,熟習此項技術者可容易地應用所揭示之具體實例來基於主要概念構思來抵抗SCA:以隨機順序產生至少一個冗餘或部分冗餘操作,且冗餘或部分冗餘操作與真操作具有類似之洩漏資訊(例如,功率消耗輪廓、電磁發射、錯誤時序或其他)。
亦應清楚,熟習此項技術者可容易地將所揭示之具體實例應用於設計具有任何程式化構件(例如微控制器程式化及韌體)或硬體構件(例如,FPGA、ASIC)之任何安全硬體而不偏離以下概念構思:以隨機順序產生至少一個冗餘或部分冗餘操作,且冗餘或部分冗餘操作與真操作具有類似之洩漏資訊(例如,功率消耗輪廓、電磁發射、錯誤時序或其他)。
亦應清楚,熟習此項技術者可容易地將所揭示之具體實例應用於設計具有任何修改(包括改變硬體架構(具有積體電路或單獨電路))之任何安全硬體而不偏離以下概念構思:以隨機順序產生至少一個冗餘或部分冗餘操作,且冗餘或部分冗餘操作與真操作具有類似之洩漏資訊(例如,功率消耗輪廓、電磁發射、錯誤時序或其他)。
亦應清楚,熟習此項技術者可容易地將所揭示之具體實例應用於設計嵌入有任何密碼編譯演算法(例如AES、DES,等)之任何安全硬體而不偏離以下概念構思:以隨機順序產生至少一個冗餘或部分冗餘操作,且冗餘或部分冗餘操作與真操作具有類似之洩漏資訊(例如,功率消耗輪廓、電磁發射、錯誤時序或其他)。
亦應清楚,熟習此項技術者可容易地將所揭示之具體實例應用於設計具有任何修改以藉由利用真輸入及/或密碼金鑰信號之信號特性來產生冗餘輸入或假密碼金鑰信號之任何安全硬體而不偏離以下概念構思:以隨機順序產生至少一個冗餘或部分冗餘操作,且冗餘或部分冗餘操作與真操作具有類似之洩漏資訊(例如,功率消耗輪廓、電磁發射、錯誤時序或其他)。
應進一步清楚,熟習此項技術者可容易地將本發明應用於藉由改變操作疊代之順序來設計具有任何修改的任何安全硬體,其中操作之此等疊代具有類似洩漏資訊(例如,功率消耗輪廓、電磁發射、錯誤時序或其他)
圖20為用於增強硬體安全之加密方法之流程圖2000。在一些具體實例中,該方法可由設備(例如,圖22或圖23中所示之設備2202/2202')執行。在2002處,該設備可執行取決於至少一個明文及至少一個密碼金鑰之至少一個真計算。該至少一個真計算基於該至少一個明文及該至少一個密碼金鑰共同地產生至少一個密文。
在2004處,該設備可回應於至少一個真計算之執行而發出第一 類比電特性。在一些具體實例中,第一類比電特性可包括功率消耗或電磁發射中之至少一者。
在2006處,該設備可執行獨立於該至少一個明文或該至少一個密碼金鑰之至少一個冗餘計算。在一些具體實例中,該至少一個真計算包括至少一輪真計算,且該至少一個冗餘計算包括至少一輪計算模擬。該至少一輪真計算與該至少一輪計算模擬之計算順序可為隨機的。至少一輪真計算共同地產生該至少一個密文。
在一些具體實例中,可執行至少一輪計算以加密至少一個明文。該至少一輪計算包括至少兩個部分計算,該等部分計算中之每一者包括該至少一個真計算之一部分及該至少一個冗餘計算之一部分。該至少兩個部分計算共同地產生至少一個密文。在此類具體實例中,由該設備針對該至少兩個部分計算中之每一部分計算發出之類比電特性為類似的,且在執行該至少兩個部分計算中之部分計算時由該設備發出之類比電特性,類似於在執行該至少一輪計算時由該設備發出之類比電特性。
在一些具體實例中,執行至少一輪計算以加密至少一個明文。該至少一輪計算包括真替換盒計算之至少一個疊代及替換盒計算模擬之至少一個疊代。該至少一個真計算可包括真替換盒計算之該至少一個疊代,且該至少一個冗餘計算可包括替換盒計算模擬之該至少一個疊代。在此類具體實例中,真替換盒計算之至少一個疊代與替換盒計算模擬之至少一個疊代之計算順序可為隨機的。真替換盒計算之至少一個疊代共同地產生至少一個密文。替換盒計算模擬之至少一個疊代可具有與真替換盒計算之至少一個疊代類似之類比電特性。
在2008處,該設備可回應於至少一個冗餘計算之執行而發出第二類比電特性。第二類比電特性可相似於第一類比電特性。在一些具體實例 中,為使第二類比電特性相似於第一類比電特性,第一類比電特性與第二類比電特性之間的類似性之量度可滿足臨限值。在一些具體實例中,該量度可為正規化絕對差、相關係數或變異數之相關係數中之一者。在一些具體實例中,該量度可自第一類比電特性及第二類比電特性之金鑰洩漏區導出。在一些具體實例中,若其間的NAD小於或等於0.2,則第二類比電特性相似於第一類比電特性。在一些具體實例中,若其間的相關係數大於或等於0.8,則第二類比電特性相似於第一類比電特性。在一些具體實例中,若其變異數之相關係數大於或等於0.8,則第二類比電特性相似於第一類比電特性。在一些具體實例中,第二類比電特性可包括功率消耗或電磁發射中之至少一者。
在一些具體實例中,可基於第一輸入及第一金鑰中之至少一者執行至少一個真計算,該第一輸入係自至少一個明文導出,且該第一金鑰係自至少一個密碼金鑰導出。可基於第二輸入或第二金鑰中之至少一者執行至少一個冗餘計算。在一些具體實例中,第一輸入可與第二輸入具有相同之漢明權重。在一些具體實例中,第一金鑰可與第二金鑰具有相同之漢明權重。
圖21為用於增強硬體安全之解密方法之流程圖2100。在一些具體實例中,該方法可由設備(例如,圖24或圖25中所示之設備2402/2402')執行。在2102處,該設備可執行取決於至少一個密文及至少一個密碼金鑰之至少一個真計算。該至少一個真計算基於該至少一個密文及該至少一個密碼金鑰共同地產生至少一個明文。
在2104處,該設備可回應於至少一個真計算之執行而發出第一類比電特性。在一些具體實例中,第一類比電特性可包括功率消耗或電磁發射中之至少一者。
在2106處,該設備可執行獨立於該至少一個密文或該至少一個密碼金鑰之至少一個冗餘計算。在一些具體實例中,該至少一個真計算包括至 少一輪真計算,且該至少一個冗餘計算包括至少一輪計算模擬。該至少一輪真計算與該至少一輪計算模擬之計算順序可為隨機的。至少一輪真計算共同地產生該至少一個明文。
在一些具體實例中,可執行至少一輪計算以解密至少一個密文。該至少一輪計算包括至少兩個部分計算,該等部分計算中之每一者包括該至少一個真計算之一部分及該至少一個冗餘計算之一部分。該至少兩個部分計算共同地產生至少一個明文。在此類具體實例中,由該設備針對該至少兩個部分計算中之每一部分計算發出之類比電特性為類似的,且在執行該至少兩個部分計算中之部分計算時由該設備發出之類比電特性,類似於在執行該至少一輪計算時由該設備發出之類比電特性。
在一些具體實例中,執行至少一輪計算以解密該至少一個密文。該至少一輪計算包括真逆替換盒計算之至少一個疊代及逆替換盒計算模擬之至少一個疊代。該至少一個真計算可包括真逆替換盒計算之該至少一個疊代,且該至少一個冗餘計算可包括逆替換盒計算模擬之該至少一個疊代。在此類具體實例中,真逆替換盒計算之至少一個疊代與逆替換盒計算模擬之至少一個疊代之計算順序可為隨機的。真逆替換盒計算之該至少一個疊代共同地產生該至少一個明文。逆替換盒計算模擬之該至少一個疊代可具有與真逆替換盒計算之該至少一個疊代類似之類比電特性。
在2108處,該設備可回應於至少一個冗餘計算之執行而發出第二類比電特性。第二類比電特性可相似於第一類比電特性。在一些具體實例中,為使第二類比電特性相似於第一類比電特性,第一類比電特性與第二類比電特性之間的類似性之量度可滿足臨限值。在一些具體實例中,該量度可為正規化絕對差、相關係數或變異數之相關係數中之一者。在一些具體實例中,該量度可自第一類比電特性及第二類比電特性之金鑰洩漏區導出。在一些具體實 例中,若其間的NAD小於或等於0.2,則第二類比電特性相似於第一類比電特性。在一些具體實例中,若其間的相關係數大於或等於0.8,則第二類比電特性相似於第一類比電特性。在一些具體實例中,若其變異數之相關係數大於或等於0.8,則第二類比電特性相似於第一類比電特性。在一些具體實例中,第二類比電特性可包括功率消耗或電磁發射中之至少一者。
在一些具體實例中,可基於第一輸入及第一金鑰中之至少一者執行至少一個真計算,該第一輸入係自至少一個密文導出,且該第一金鑰係自至少一個密碼金鑰導出。可基於第二輸入或第二金鑰中之至少一者執行至少一個冗餘計算。在一些具體實例中,第一輸入可與第二輸入具有相同之漢明權重。在一些具體實例中,第一金鑰可與第二金鑰具有相同之漢明權重。
圖22為說明例示性設備2202中之不同構件/組件之間的資料流之概念性資料流圖2200。設備2202可為計算裝置或包括多個計算裝置之系統。
設備2202可包括使用密碼金鑰將明文加密為密文之真加密組件2204。在一個具體實例中,真加密組件2204可執行上文參考圖20中之2002所描述之操作。
設備2202可包括分別基於明文或密碼金鑰導出冗餘輸入或假金鑰之信號變換組件2206。
設備2202可包括冗餘加密組件2208,該冗餘加密組件基於由信號變換組件2206產生之冗餘輸入或假金鑰來執行計算模擬。在一個具體實例中,冗餘加密組件2208可執行上文參考圖20中之2006所描述之操作。
設備2202可包括執行圖20之前述流程圖中之演算法的區塊中之每一者之額外組件。由此,圖20之前述流程圖中之每一區塊可由一組件執行,且該設備可包括彼等組件中之一或多者。組件可為一或多個硬體組件,其經特定組態以進行所陳述之處理/演算法、由經組態以執行所陳述之處理/演算法 之處理器實施、儲存於由處理器實施之電腦可讀取媒體內,或其某一組合。
圖23為說明使用處理系統2314之設備2202'之硬體實施之實例的圖2300。在一些具體實例中,設備2202'可為上文參考圖22描述之設備2202。設備2202'可包括一或多個計算裝置。處理系統2314可用大體由匯流排2324表示之匯流排架構來實施。匯流排2324可取決於處理系統2314之特定應用及總體設計約束而包括任何數目個互連匯流排及橋接器。匯流排2324將包括由處理器2304、組件2204、2206、2208及電腦可讀取媒體/記憶體2306表示之一或多個處理器及/或硬體組件之各種電路鏈接在一起。匯流排2324亦可鏈接各種其他電路,諸如時序源、周邊裝置、電壓調節器及功率管理電路,此等電路在本領域中為眾所周知的,且因此將不再進一步描述。
處理系統2314包括耦接至電腦可讀取媒體/記憶體2306之處理器2304。處理器2304負責一般處理,包括執行儲存在電腦可讀取媒體/記憶體2306上之軟體。該軟體在由處理器2304執行時使處理系統2314執行上文針對任何特定設備描述之各種功能。電腦可讀取媒體/記憶體2306亦可用於儲存在執行軟體時由處理器2304操縱之資料。處理系統2314進一步包括組件2204、2206、2208中之至少一者。組件可為在處理器2304中執行、駐留/儲存在電腦可讀取媒體/記憶體2306中之軟體組件,耦接至處理器2304之一或多個硬體組件,或其某一組合。
圖24為說明例示性設備2402中之不同構件/組件之間的資料流之概念性資料流圖2400。設備2402可為計算裝置或包括多個計算裝置之系統。
設備2402可包括使用密碼金鑰將密文解密為明文之真解密組件2404。在一個具體實例中,真解密組件2404可執行上文參考圖21中之2102所描述之操作。
設備2402可包括分別基於密文或密碼金鑰導出冗餘輸入或假金 鑰之信號變換組件2406。
設備2402可包括冗餘解密組件2408,該冗餘解密組件基於由信號變換組件2406產生之冗餘輸入或假金鑰來執行計算模擬。在一個具體實例中,冗餘解密組件2408可執行上文參考圖21中之2106所描述之操作。
設備2402可包括執行圖21之前述流程圖中之演算法的區塊中之每一者之額外組件。由此,圖21之前述流程圖中之每一區塊可由一組件執行,且該設備可包括彼等組件中之一或多者。件可為一或多個硬體組件,其經特定組態以進行所陳述之處理/演算法、由經組態以執行所陳述之處理/演算法之處理器實施、儲存於由處理器實施之電腦可讀取媒體內,或其某一組合。
圖25為說明使用處理系統2514之設備2402'之硬體實施之實例的圖2500。在一些具體實例中,設備2402’可為上文參考圖24描述之設備2402。設備2402’可包括一或多個計算裝置。處理系統2514可用大體由匯流排2524表示之匯流排架構來實施。匯流排2524可取決於處理系統2514之特定應用及總體設計約束而包括任何數目個互連匯流排及橋接器。匯流排2524將包括由處理器2504、組件2404、2406、2408及電腦可讀取媒體/記憶體2506表示之一或多個處理器及/或硬體組件之各種電路鏈接在一起。匯流排2524亦可鏈接各種其他電路,諸如時序源、周邊裝置、電壓調節器及功率管理電路,此等電路在本領域中為眾所周知的,且因此將不再進一步描述。
處理系統2514包括耦接至電腦可讀取媒體/記憶體2506之處理器2504。處理器2504負責一般處理,包括執行儲存在電腦可讀取媒體/記憶體2506上之軟體。該軟體在由處理器2504執行時使處理系統2514執行上文針對任何特定設備描述之各種功能。電腦可讀取媒體/記憶體2506亦可用於儲存在執行軟體時由處理器2504操縱之資料。處理系統2514進一步包括組件2404、2406、2408中之至少一者。組件可為在處理器2504中執行、駐留/儲存在電腦 可讀取媒體/記憶體2506中之軟體組件,耦接至處理器2504之一或多個硬體組件,或其某一組合。
在下文中,將說明本發明之各種態樣:
實施例1為一種用於使用至少一個密碼金鑰將至少一個明文加密為至少一個密文之方法或設備。該設備可執行取決於該至少一個明文及該至少一個密碼金鑰之至少一個真計算。該設備可回應於該至少一個真計算之該執行而發出第一類比電特性。該設備可執行獨立於該至少一個明文或該至少一個密碼金鑰之至少一個冗餘計算。該設備可回應於該至少一個冗餘計算之該執行而發出第二類比電特性。該等第一類比電特性與該等第二類比電特性之間的類似性之一量度可滿足一臨限值。
在實施例2中,實施例1之標的物可視情況包括該等第一類比電特性或該等第二類比電特性包括功率消耗或電磁發射中之至少一者。
在實施例3中,實施例1至2中之任一者之標的物可視情況包括該至少一個真計算包括至少一輪真計算,該至少一個冗餘計算包括至少一輪計算模擬,該至少一輪真計算與該至少一輪計算模擬之計算順序係隨機的,該至少一輪真計算共同地產生該至少一個密文。
在實施例4中,實施例1至2中之任一者之標的物可視情況包括可執行至少一輪計算以加密該至少一個明文,該至少一輪計算包括至少兩個部分計算,每一部分計算包括該至少一個真計算之一部分及該至少一個冗餘計算之一部分,該至少兩個部分計算共同地產生該至少一個密文。
在實施例5中,實施例4之標的物可視情況包括由該設備對於該至少兩個部分計算中之每一部分計算發出的類比電特性係類似的,在執行該至少兩個部分計算中之一部分計算時由該設備發出的類比電特性,類似於在執行該至少一輪計算時由該設備發出的類比電特性。
在實施例6中,實施例1至2中之任一者之標的物可視情況包括執行至少一輪計算以加密該至少一個明文,該至少一輪計算包括真替換盒計算之至少一個疊代及替換盒計算模擬之至少一個疊代,該至少一個真計算包括真替換盒計算之該至少一個疊代,該至少一個冗餘計算包括替換盒計算模擬之該至少一個疊代。
在實施例7中,實施例6之標的物可視情況包括真替換盒計算之該至少一個疊代與替換盒計算模擬之該至少一個疊代的計算順序係隨機的,真替換盒計算之該至少一個疊代共同地產生該至少一個密文。
在實施例8中,實施例1至7中之任一者之標的物可視情況包括基於一第一輸入及一第一金鑰中之至少一者執行該至少一個真計算,該第一輸入係自該至少一個明文導出,且該第一金鑰係自該至少一個密碼金鑰導出,基於一第二輸入或一第二金鑰中之至少一者執行該至少一個冗餘計算,該第一輸入與該第二輸入具有相同漢明權重。
在實施例9中,實施例1至7中之任一者之標的物可視情況包括基於一第一輸入及一第一金鑰中之至少一者執行該至少一個真計算,該第一輸入係自該至少一個明文導出,且該第一金鑰係自該至少一個密碼金鑰導出,基於一第二輸入或一第二金鑰中之至少一者執行該至少一個冗餘計算,該第一金鑰與該第二金鑰具有相同漢明權重。
在實施例10中,實施例1至9中之任一者之標的物可視情況包括該量度為正規化絕對差、相關係數或變異數之相關係數中之一者,該量度係自該等第一類比電特性及該等第二類比電特性之金鑰洩漏區導出。
實施例11為一種用於使用至少一個密碼金鑰將至少一個密文解密為至少一個明文之方法或設備。該設備可執行取決於該至少一個密文及該至少一個密碼金鑰之至少一個真計算。該設備可回應於該至少一個真計算之該執 行而發出第一類比電特性。該設備可執行獨立於該至少一個密文或該至少一個密碼金鑰之至少一個冗餘計算。該設備可回應於該至少一個冗餘計算之該執行而發出第二類比電特性。該等第一類比電特性與該等第二類比電特性之間的類似性之一量度可滿足一臨限值。
在實施例12中,實施例11之標的物可視情況包括該等第一類比電特性或該等第二類比電特性包括功率消耗或電磁發射中之至少一者。
在實施例13中,實施例11至12中之任一者之標的物可視情況包括該至少一個真計算包括至少一輪真計算,該至少一個冗餘計算包括至少一輪計算模擬,該至少一輪真計算與該至少一輪計算模擬之計算順序係隨機的,該至少一輪真計算共同地產生該至少一個明文。
在實施例14中,實施例11至12中之任一者之標的物可視情況包括可執行至少一輪計算以解密該至少一個密文,該至少一輪計算包括至少兩個部分計算,每一部分計算包括該至少一個真計算之一部分及該至少一個冗餘計算之一部分,該至少兩個部分計算共同地產生該至少一個明文。
在實施例15中,實施例14之標的物可視情況包括由該設備對於該至少兩個部分計算中之每一部分計算發出的類比電特性係類似的,在執行該至少兩個部分計算中之一部分計算時由該設備發出的類比電特性類似於在執行該至少一輪計算時由該設備發出的類比電特性。
在實施例16中,實施例11至12中之任一者之標的物可視情況包括執行至少一輪計算以解密該至少一個密文,該至少一輪計算包括真逆替換盒計算之至少一個疊代及逆替換盒計算模擬之至少一個疊代,該至少一個真計算包括真逆替換盒計算之該至少一個疊代,該至少一個冗餘計算包括逆替換盒計算模擬之該至少一個疊代。
在實施例17中,實施例16之標的物可視情況包括真逆替換盒計 算之該至少一個疊代與逆替換盒計算模擬之該至少一個疊代之計算順序係隨機的,真逆替換盒計算之該至少一個疊代共同地產生該至少一個明文。
在實施例18中,實施例11至17中之任一者之標的物可視情況包括基於一第一輸入及一第一金鑰中之至少一者執行該至少一個真計算,該第一輸入係自該至少一個密文導出,且該第一金鑰係自該至少一個密碼金鑰導出,基於一第二輸入或一第二金鑰中之至少一者執行該至少一個冗餘計算,該第一輸入與該第二輸入具有相同漢明權重。
在實施例19中,實施例11至17中之任一者之標的物可視情況包括基於一第一輸入及一第一金鑰中之至少一者執行該至少一個真計算,該第一輸入係自該至少一個密文導出,且該第一金鑰係自該至少一個密碼金鑰導出,基於一第二輸入或一第二金鑰中之至少一者執行該至少一個冗餘計算,該第一金鑰與該第二金鑰具有相同漢明權重。
在實施例20中,實施例11至19中之任一者之標的物可視情況包括該量度為正規化絕對差、相關係數或變異數之相關係數中之一者,該量度係自該等第一類比電特性及該等第二類比電特性之金鑰洩漏區導出。
熟習此項技術者將瞭解,本文所使用之術語僅用於描述各種具體實例之目的,且不意欲限制本發明。如本文中所使用,單數形式「一(a、an)」及「該」意欲亦包括複數形式,除非上下文另有清楚指示。應進一步理解,術語「包含」在用於本說明書中時規定所陳述之輪廓、整數、步驟、操作、元件及/或組件之存在,但不排除一或多個其他輪廓、整數、步驟、操作、元件、組件及/或其群組之存在或添加。
應理解,所揭示之過程/流程圖中之區塊的特定次序或階層為例示性方法的說明。基於設計偏好,應理解,可重新配置過程/流程圖中之區塊的特定次序或階層。此外,可組合或省略一些區塊。隨附方法請求項以樣本 次序呈現各種區塊之要素,且並不意欲受限於所呈現之特定次序或階層。
提供先前描述以使任何熟習此項技術者能夠實踐本文中所描述之各種態樣。對此等態樣之各種修改對於熟習此項技術者而言將為顯而易見的,且本文中定義之一般原理可應用於其他態樣。因此,申請專利範圍不意欲限於本文中所展示的態樣,而是將被賦予與語言申請專利範圍一致的完整範圍,其中以單數形式參考一元件不意欲意謂「一個且僅有一個」,除非明確地如此陳述,而是表示「一或多個」。詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。本文中被描述為「例示性」之任何態樣未必被認作比其他態樣更佳或更有利。除非另外特定地陳述,否則術語「一些」指代一或多個。諸如「A、B或C中之至少一個」、「A、B或C中之一或多個」、「A、B及C中之至少一個」、「A、B及C中之一或多個」及「A、B、C或其任何組合」之組合包括A、B及/或C之任何組合,且可包括A之倍數、B之倍數或C之倍數。具體言之,諸如「A、B或C中之至少一個」、「A、B或C中之一或多個」、「A、B及C中之至少一個」、「A、B、及C中之一或多個」及「A、B、C或其任何組合」之組合可僅為A、僅為B、僅為C、A及B、A及C、B及C或A及B及C,其中任何該等組合可含有A、B或C之一者或多者。對熟習此項技術者已知或稍後將已知的所有本發明通篇所描述之各種態樣的要素之結構及功能等效物明確地以引用的方式併入本文中,且意欲由該申請專利範圍所涵蓋。此外,本文中所揭示之任何內容均不意欲專用於公眾,無論申請專利範圍中是否明確敍述此揭示內容。字組「模組」、「機制」、「元件」、「裝置」及類似者不可取代字組「構件」。由此,任何申請專利範圍元件都不應解釋為構件加功能,除非該元件使用片語「用於...的構件」來明確地敍述。

Claims (34)

  1. 一種用於使用至少一個密碼金鑰將至少一個明文加密為至少一個密文之設備,該設備包含:至少一個記憶體;及至少一個處理器,其耦接至該至少一個記憶體且經組態以:執行取決於該至少一個明文及該至少一個密碼金鑰之至少一個真計算;及執行獨立於該至少一個明文或該至少一個密碼金鑰之至少一個冗餘計算,其中該設備在執行該至少一個真計算時發出第一類比電特性且在執行該至少一個冗餘計算時發出第二類比電特性,其中該等第一類比電特性與該等第二類比電特性之間的類似性之一量度滿足一臨限值。
  2. 如請求項1所述之設備,其中該等第一類比電特性或該等第二類比電特性包含功率消耗或電磁發射中之至少一者。
  3. 如請求項1至2中任一項所述之設備,其中該至少一個真計算包含至少一輪真計算,其中該至少一個冗餘計算包含至少一輪計算模擬,其中該至少一輪真計算與該至少一輪計算模擬之一計算順序係隨機的,其中該至少一輪真計算共同地產生該至少一個密文。
  4. 如請求項1至2中任一項所述之設備,其中執行至少一輪計算以加密該至少一個明文,其中該至少一輪計算包含至少兩個部分計算,其中每一部分計算包含該至少一個真計算之一部分及該至少一個冗餘計算之一部分,其中該至少兩個部分計算共同地產生該至少一個密文。
  5. 如請求項4所述之設備,其中由該設備對於該至少兩個部分計算中之每一部分計算發出的類比電特性係類似的,其中在執行該至少兩個部分計 算中之一部分計算時由該設備發出的類比電特性,類似於在執行該至少一輪計算時由該設備發出的類比電特性。
  6. 如請求項1至2中任一項所述之設備,其中執行至少一輪計算以加密該至少一個明文,其中該至少一輪計算包含真替換盒計算之至少一個疊代及替換盒計算模擬之至少一個疊代,其中該至少一個真計算包含真替換盒計算之該至少一個疊代,其中該至少一個冗餘計算包含替換盒計算模擬之該至少一個疊代。
  7. 如請求項6所述之設備,其中針對真替換盒計算之該至少一個疊代與替換盒計算模擬之該至少一個疊代的一計算順序係隨機的,其中真替換盒計算之該至少一個疊代共同地產生該至少一個密文。
  8. 如請求項1至7中任一項所述之設備,其中基於一第一輸入及一第一金鑰中之至少一者,執行該至少一個真計算,該第一輸入係自該至少一個明文導出,且該第一金鑰係自該至少一個密碼金鑰導出,其中基於一第二輸入或一第二金鑰中之至少一者,執行該至少一個冗餘計算,其中該第一輸入與該第二輸入具有相同漢明權重。
  9. 如請求項1至7中任一項所述之設備,其中基於一第一輸入及一第一金鑰中之至少一者,執行該至少一個真計算,該第一輸入係自該至少一個明文導出,且該第一金鑰係自該至少一個密碼金鑰導出,其中基於一第二輸入或一第二金鑰中之至少一者,執行該至少一個冗餘計算,其中該第一金鑰與該第二金鑰具有相同漢明權重。
  10. 如請求項1至9中任一項所述之設備,其中該量度為正規化絕對差、相關係數或變異數之相關係數中之一者,其中該量度係自該等第一類比電特性及該等第二類比電特性之金鑰洩漏區導出。
  11. 一種用於使用至少一個密碼金鑰將至少一個密文解密為至少一 個明文之設備,該設備包含:至少一個記憶體;及至少一個處理器,其耦接至該至少一個記憶體且經組態以:執行取決於該至少一個密文及該至少一個密碼金鑰之至少一個真計算;及執行獨立於該至少密文或該至少一個密碼金鑰之至少一個冗餘計算;其中該設備在執行該至少一個真計算時發出第一類比電特性且在執行該至少一個冗餘計算時發出第二類比電特性,其中該等第一類比電特性與該等第二類比電特性之間的類似性之一量度滿足一臨限值。
  12. 如請求項11所述之設備,其中該等第一類比電特性或該等第二類比電特性包括功率消耗或電磁發射中之至少一者。
  13. 如請求項11至12中任一項所述之設備,其中該至少一個真計算包含至少一輪真計算,其中該至少一個冗餘計算包含至少一輪計算模擬,其中該至少一輪真計算與該至少一輪計算模擬之一計算順序係隨機的,其中該至少一輪真計算共同地產生該至少一個明文。
  14. 如請求項11至12中任一項所述之設備,其中執行至少一輪計算以解密該至少一個密文,其中該至少一輪計算包含至少兩個部分計算,其中每一部分計算包含該至少一個真計算之一部分及該至少一個冗餘計算之一部分,其中該至少兩個部分計算共同地產生該至少一個明文。
  15. 如請求項14所述之設備,其中由該設備對於該至少兩個部分計算中之每一部分計算發出的類比電特性係類似的,其中在執行該至少兩個部分計算中之一部分計算時由該設備發出的類比電特性,類似於在執行該至少一輪計算時由該設備發出的類比電特性。
  16. 如請求項11至12中任一項所述之設備,其中執行至少一輪計算 以解密該至少一個密文,其中該至少一輪計算包含真逆替換盒計算之至少一個疊代及逆替換盒計算模擬之至少一個疊代,其中該至少一個真計算包含真逆替換盒計算之該至少一個疊代,其中該至少一個冗餘計算包含逆替換盒計算模擬之該至少一個疊代。
  17. 如請求項16所述之設備,其中針對真逆替換盒計算之該至少一個疊代與逆替換盒計算模擬之該至少一個疊代之一計算順序係隨機的,其中真逆替換盒計算之該至少一個疊代共同地產生該至少一個明文。
  18. 如請求項11至17中任一項所述之設備,其中基於一第一輸入及一第一金鑰中之至少一者執行該至少一個真計算,該第一輸入係自該至少一個密文導出,且該第一金鑰係自該至少一個密碼金鑰導出,其中基於一第二輸入或一第二金鑰中之至少一者,執行該至少一個冗餘計算,其中該第一輸入與該第二輸入具有相同漢明權重。
  19. 如請求項11至17中任一項所述之設備,其中基於一第一輸入及一第一金鑰中之至少一者執行該至少一個真計算,該第一輸入係自該至少一個密文導出,且該第一金鑰係自該至少一個密碼金鑰導出,其中基於一第二輸入或一第二金鑰中之至少一者,執行該至少一個冗餘計算,其中該第一金鑰與該第二金鑰具有相同漢明權重。
  20. 如請求項11至19中任一項所述之設備,其中該量度為正規化絕對差、相關係數或變異數之相關係數中之一者,其中該量度係自該等第一類比電特性及該等第二類比電特性之金鑰洩漏區導出。
  21. 一種使用至少一個密碼金鑰將至少一個明文加密為至少一個密文之方法,該方法包含:藉由一計算裝置執行取決於該至少一個明文及該至少一個密碼金鑰之至少一個真計算; 藉由該計算裝置回應於該至少一個真計算之該執行而發出第一類比電特性;藉由該計算裝置執行獨立於該至少一個明文或該至少一個密碼金鑰之至少一個冗餘計算;及藉由該計算裝置回應於該至少一個冗餘計算之該執行而發出第二類比電特性,其中該等第一類比電特性與該等第二類比電特性之間的類似性之一量度滿足一臨限值。
  22. 如請求項21所述之方法,其中該至少一個真計算包含至少一輪真計算,其中該至少一個冗餘計算包含至少一輪計算模擬,其中該至少一輪真計算與該至少一輪計算模擬之一計算順序係隨機的,其中該至少一輪真計算共同地產生該至少一個密文。
  23. 如請求項21所述之方法,其中執行至少一輪計算以加密該至少一個明文,其中該至少一輪計算包含至少兩個部分計算,其中每一部分計算包含該至少一個真計算之一部分及該至少一個冗餘計算之一部分,其中該至少兩個部分計算共同地產生該至少一個密文。
  24. 如請求項23所述之方法,其中由該計算裝置對於該至少兩個部分計算中之每一部分計算發出的類比電特性係類似的,其中在執行該至少兩個部分計算中之一部分計算時由該計算裝置發出的類比電特性,類似於在執行該至少一輪計算時由該計算裝置發出的類比電特性。
  25. 如請求項21所述之方法,其中執行至少一輪計算以加密該至少一個明文,其中該至少一輪計算包含真替換盒計算之至少一個疊代及替換盒計算模擬之至少一個疊代,其中該至少一個真計算包含真替換盒計算之該至少一個疊代,其中該至少一個冗餘計算包含替換盒計算模擬之該至少一個疊代。
  26. 如請求項25所述之方法,其中針對真替換盒計算之該至少一個疊代與替換盒計算模擬之該至少一個疊代的一計算順序係隨機的,其中真替換盒計算之該至少一個疊代共同地產生該至少一個密文。
  27. 如請求項21至26中任一項所述之方法,其中該量度為正規化絕對差、相關係數或變異數之相關係數中之一者,其中該量度係自該等第一類比電特性及該等第二類比電特性之金鑰洩漏區導出。
  28. 一種使用至少一個密碼金鑰將至少一個密文解密為至少一個明文之方法,該方法包含:藉由一計算裝置執行取決於該至少一個密文及該至少一個密碼金鑰之至少一個真計算;藉由該計算裝置回應於該至少一個真計算之該執行而發出第一類比電特性;藉由該計算裝置執行獨立於該至少一個密文或該至少一個密碼金鑰之至少一個冗餘計算;及藉由該計算裝置回應於該至少一個冗餘計算之該執行而發出第二類比電特性,其中該等第一類比電特性與該等第二類比電特性之間的類似性之一量度滿足一臨限值。
  29. 如請求項28所述之方法,其中該至少一個真計算包含至少一輪真計算,其中該至少一個冗餘計算包含至少一輪計算模擬,其中該至少一輪真計算與該至少一輪計算模擬之一計算順序係隨機的,其中該至少一輪真計算共同地產生該至少一個明文。
  30. 如請求項28所述之方法,其中執行至少一輪計算以解密該至少一個密文,其中該至少一輪計算包含至少兩個部分計算,其中每一部分計算包 含該至少一個真計算之一部分及該至少一個冗餘計算之一部分,其中該至少兩個部分計算共同地產生該至少一個明文。
  31. 如請求項30所述之方法,其中由該計算裝置對於該至少兩個部分計算中之每一部分計算發出的類比電特性係類似的,其中在執行該至少兩個部分計算中之一部分計算時由該計算裝置發出的類比電特性,類似於在執行該至少一輪計算時由該計算裝置發出的類比電特性。
  32. 如請求項28所述之方法,其中執行至少一輪計算以解密該至少一個密文,其中該至少一輪計算包含真逆替換盒計算之至少一個疊代及逆替換盒計算模擬之至少一個疊代,其中該至少一個真計算包含真逆替換盒計算之該至少一個疊代,其中該至少一個冗餘計算包含逆替換盒計算模擬之該至少一個疊代。
  33. 如請求項32所述之方法,其中針對真逆替換盒計算之該至少一個疊代與逆替換盒計算模擬之該至少一個疊代之一計算順序係隨機的,其中真逆替換盒計算之該至少一個疊代共同地產生該至少一個明文。
  34. 如請求項28至33中任一項所述之方法,其中該量度為正規化絕對差、相關係數或變異數之相關係數中之一者,其中該量度係自該等第一類比電特性及該等第二類比電特性之金鑰洩漏區導出。
TW107109468A 2017-03-20 2018-03-20 用以反制側通道攻擊的硬體安全 TW201904228A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG10201702226R 2017-03-20
SG10201702226R 2017-03-20

Publications (1)

Publication Number Publication Date
TW201904228A true TW201904228A (zh) 2019-01-16

Family

ID=63585619

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107109468A TW201904228A (zh) 2017-03-20 2018-03-20 用以反制側通道攻擊的硬體安全

Country Status (3)

Country Link
US (1) US11227071B2 (zh)
TW (1) TW201904228A (zh)
WO (1) WO2018174819A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI827237B (zh) * 2022-09-06 2023-12-21 新唐科技股份有限公司 密碼加速器以及加解密運算防篡改方法
TWI832982B (zh) * 2019-03-07 2024-02-21 美商雷神公司 可重組計算設備
TWI840062B (zh) * 2022-12-30 2024-04-21 新唐科技股份有限公司 故障攻擊分析裝置和方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3065556B1 (fr) * 2017-04-19 2020-11-06 Tiempo Circuit electronique securise par perturbation de son alimentation.
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
KR102766480B1 (ko) * 2019-05-15 2025-02-13 삼성디스플레이 주식회사 디스플레이 구동 집적 회로 및 이를 포함하는 디스플레이 시스템
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
US11604873B1 (en) * 2019-12-05 2023-03-14 Marvell Asia Pte, Ltd. Noisy instructions for side-channel attack mitigation
US11599679B2 (en) * 2020-06-23 2023-03-07 Arm Limited Electromagnetic and power noise injection for hardware operation concealment
WO2022056019A1 (en) * 2020-09-08 2022-03-17 Lexmark International, Inc. Authentication using current drawn by security device
US12488148B2 (en) 2021-09-17 2025-12-02 Volkswagen Aktiengesellschaft Methods and apparatuses for cyber security enhancement
FR3133246B1 (fr) * 2022-03-07 2025-12-12 Commissariat Energie Atomique Procédé de protection contre les attaques par canaux auxiliaires
CN116232561B (zh) * 2023-05-09 2023-08-25 杭州海康威视数字技术股份有限公司 抵抗差分故障攻击的冗余加密优化方法、装置及设备
US20240427910A1 (en) * 2023-06-20 2024-12-26 Qualcomm Incorporated Microarchitectures for secure computing systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2345229B (en) 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7949883B2 (en) 2004-06-08 2011-05-24 Hrl Laboratories, Llc Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
US8781111B2 (en) 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
JP5146156B2 (ja) * 2008-06-30 2013-02-20 富士通株式会社 演算処理装置
US8958550B2 (en) 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
CN102523085A (zh) * 2011-12-15 2012-06-27 北京握奇数据系统有限公司 数据加密方法、装置及智能卡
CN104378196A (zh) * 2014-11-07 2015-02-25 昆腾微电子股份有限公司 加解密算法的安全执行方法和装置
CN104734842B (zh) 2015-03-13 2018-06-08 上海交通大学 基于伪操作的电路旁路攻击抵御方法
US10615959B2 (en) * 2015-07-22 2020-04-07 Megachips Corporation Memory device, host device, and memory system
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI832982B (zh) * 2019-03-07 2024-02-21 美商雷神公司 可重組計算設備
TWI827237B (zh) * 2022-09-06 2023-12-21 新唐科技股份有限公司 密碼加速器以及加解密運算防篡改方法
US12443759B2 (en) 2022-09-06 2025-10-14 Nuvoton Technology Corporation Cipher accelerator and method for tamper protection in cryptographic operations
TWI840062B (zh) * 2022-12-30 2024-04-21 新唐科技股份有限公司 故障攻擊分析裝置和方法

Also Published As

Publication number Publication date
WO2018174819A1 (en) 2018-09-27
US11227071B2 (en) 2022-01-18
US20200004992A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
TW201904228A (zh) 用以反制側通道攻擊的硬體安全
CN104662549B (zh) 使用交叉链接来保护可访问的系统
Li et al. Structural transformation for best-possible obfuscation of sequential circuits
Groß et al. A unified masking approach
CN106664204B (zh) 差分功率分析对策
Koteshwara et al. Key-based dynamic functional obfuscation of integrated circuits using sequentially triggered mode-based design
CN104919750B (zh) 计算关于函数‑输入值的数据函数的计算设备和方法
Jati et al. Threshold Implementations of $\mathtt {GIFT} $: A Trade-Off Analysis
Burchard et al. Autofault: towards automatic construction of algebraic fault attacks
McCann et al. Characterising and comparing the energy consumption of side channel attack countermeasures and lightweight cryptography on embedded devices
Luo et al. Concurrent error detection for reliable SHA-3 design
Ambrose et al. Randomized instruction injection to counter power analysis attacks
Covic et al. Circuit masking: from theory to standardization, a comprehensive survey for hardware security researchers and practitioners
Ambrose et al. A smart random code injection to mask power analysis based side channel attacks
Seuschek et al. Side-channel leakage aware instruction scheduling
Bhattacharya et al. Utilizing performance counters for compromising public key ciphers
De Mulder et al. Identifying and Eliminating Side-Channel Leaks in Programmable Systems.
Spadavecchia A network-based asynchronous architecture for cryptographic devices
Chen et al. Using virtual secure circuit to protect embedded software from side-channel attacks
Cilio et al. Side-channel attack mitigation using dual-spacer Dual-rail Delay-insensitive Logic (D 3 L)
Gebotys A split-mask countermeasure for low-energy secure embedded systems
Ignatius et al. Non-Linear Cyclic Variable Clock Feistel Bridge-Inspired Countermeasure for Securing RISC-V Crypto-Core Against Power Attacks
Li et al. Efficient (Masked) Hardware Implementation of Grain‐128AEADv2
Luo Novel Side-Channel Attacks on Emerging Cryptographic Algorithms and Computing Systems
Danger et al. Physically Unclonable Functions