TWI825659B - 用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、密碼系統處理電路及電子裝置 - Google Patents

用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、密碼系統處理電路及電子裝置 Download PDF

Info

Publication number
TWI825659B
TWI825659B TW111113474A TW111113474A TWI825659B TW I825659 B TWI825659 B TW I825659B TW 111113474 A TW111113474 A TW 111113474A TW 111113474 A TW111113474 A TW 111113474A TW I825659 B TWI825659 B TW I825659B
Authority
TW
Taiwan
Prior art keywords
circuit
clock gating
random number
integrated clock
circuits
Prior art date
Application number
TW111113474A
Other languages
English (en)
Other versions
TW202332229A (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 TW202332229A publication Critical patent/TW202332229A/zh
Application granted granted Critical
Publication of TWI825659B publication Critical patent/TWI825659B/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Noise Elimination (AREA)

Abstract

本發明提供用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、相關的密碼系統處理電路及電子裝置。該方法可包含:產生至少一隨機數;依據該至少一隨機數來產生分別對應於複數個位元計算階段之複數個功耗擾動參數,其中該複數個位元計算階段代表關於預定密碼系統之複數個密碼系統處理階段,且分別對應於一私鑰之複數個私鑰位元;以及依據該複數個功耗擾動參數,分別在該複數個位元計算階段中啟用複數個預定電路中之至少一預定電路,以分別在該複數個位元計算階段中使用對應於該複數個功耗擾動參數之功耗來進行功耗擾動操作。

Description

用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功 率之方法、密碼系統處理電路及電子裝置
本發明係有關於密碼系統(cryptosystem)保護,尤指一種用來進行功耗擾動操作以降低密碼系統(例如但不限於李維斯特-薩莫爾-阿德曼(Rivest-Shamir-Adleman,簡稱RSA)密碼系統、進階加密標準(advanced encryption standard,簡稱AES)密碼系統、橢圓曲線密碼系統(elliptic curve cryptosystem,簡稱ECC))功耗分析攻擊的成功率之方法、相關的密碼系統處理電路以及相關的電子裝置。
依據相關技術,可使用私鑰(private key)來進行RSA解密運算。然而,可能發生某些問題。舉例來說,如果攻擊者能夠獲取RSA計算中之處理各個位元(bit)的功耗,則攻擊者可能從未經過適當保護的處理架構獲取私鑰。相關技術中提出了某些建議以嘗試解決這個問題,但可能導致額外的問題諸如某些副作用。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現具有可靠的密碼系統之電子裝置。
本發明之一目的在於提供一種用來進行功耗擾動操作以降低密碼系 統功耗分析攻擊(例如RSA密碼系統功耗分析攻擊)的成功率之方法、相關的密碼系統處理電路以及相關的電子裝置,以解決上述問題。
本發明之至少一實施例提供一種用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法。該方法可包含:利用一隨機數產生電路(random number generating circuit)產生至少一隨機數;依據該至少一隨機數來產生分別對應於複數個位元計算階段之複數個功耗擾動參數,其中該複數個位元計算階段代表關於一預定密碼系統之複數個密碼系統處理階段,且分別對應於一私鑰(private key)之複數個私鑰位元;以及依據該複數個功耗擾動參數,分別在該複數個位元計算階段中啟用(enable)複數個預定電路中之至少一預定電路,以分別在該複數個位元計算階段中使用對應於該複數個功耗擾動參數之功耗來進行該功耗擾動操作。
依據某些實施例,本發明另提供一種依據上述之方法來操作之密碼系統處理電路,其中該密碼系統處理電路可包含:一核心電路,用來控制該密碼系統處理電路的關於該預定密碼系統之複數個密碼系統處理操作,其中該核心電路依據該至少一隨機數來產生分別對應於該複數個位元計算階段之該複數個功耗擾動參數;以及至少一整合時鐘閘控(integrated clock gating)電路,用來於該密碼系統處理電路中進行時鐘閘控,其中該複數個預定電路包含該至少一整合時鐘閘控電路。
依據某些實施例,本發明另提供一種包含上述之密碼系統處理電路的電子裝置,其中該電子裝置另包含:至少一處理器,用來控制該電子裝置的操作;一記憶體控制器,用來控制一記憶體為該電子裝置暫時地儲存資訊;以及一通訊介面電路,用來為該電子裝置進行通訊操作。舉例來說,該至少一處理器、該記憶體控制器以及該通訊介面電路中之任一者可包含該複數個預定電路的其中之一。
本發明的好處之一是,透過仔細設計之控制機制,本發明的方法能避免任何攻擊者獲取RSA計算中處理各個位元的功耗之差異,且因此能降低私鑰被獲取的機率。另外,依據本發明的方法來實施電子裝置中的密碼系統不會大幅地增加成本。相較於相關技術,本發明的方法能在沒有副作用或較不可能帶來副作用之狀況下實現具有強健的(robust)密碼系統之電子裝置。
100:電子裝置
100B:匯流排
110:處理器
110C:中央處理單元(CPU)
110G:繪圖處理單元(GPU)
120:記憶體控制器
121:記憶體
130:通訊介面電路
140:密碼系統引擎電路
150:真隨機數產生器
200:密碼系統處理電路
210,CCKT:核心電路
220,300,ICG1~ICG9:整合時鐘閘控電路
S11~S13:步驟
310:鎖存器(L)
320:及閘
DFF:D型正反器
En:啟用端子
EN:啟用訊號
CLK:時鐘訊號
GCLK:閘控的時鐘訊號
D:資料輸入訊號
Q:資料輸出訊號
400:多功能型整合時鐘閘控電路
410:或閘
C1,C2:啟用訊號
第1圖為依據本發明一實施例之一種具備密碼系統(cryptosystem)處理功能之電子裝置的示意圖。
第2圖為依據本發明一實施例之一種密碼系統處理電路的示意圖,其中第2圖所示之密碼系統處理電路可作為第1圖所示之密碼系統引擎電路的例子。
第3圖為一種用來進行功耗擾動操作以降低密碼系統功耗分析攻擊(例如RSA密碼系統功耗分析攻擊)的成功率之方法的流程圖。
第4圖為依據本發明一實施例繪示之該方法的一預定電路配置控制方案的示意圖。
第5圖為依據本發明一實施例繪示之該預定電路配置控制方案中所涉及的一整合時鐘閘控電路的示意圖。
第6圖為依據本發明一實施例繪示之該方法的一多功能啟用控制方案的示意圖。
第1圖為依據本發明一實施例之一種具備密碼系統(cryptosystem)處理功能之電子裝置100的示意圖。電子裝置100可包含至少一處理器(例如, 一或多個處理器),其可統稱為處理器110,且包含一記憶體控制器120、一記憶體121、一通訊介面電路130、一密碼系統引擎電路140以及一隨機數產生電路諸如一真隨機數產生器(true random number generator,TRNG)150,而這些元件可透過一匯流排100B彼此耦接,其中電子裝置100的一控制電路可包含處理器110、記憶體控制器120、通訊介面電路130、密碼系統引擎電路140及真隨機數產生器150,且可藉由系統單晶片(System on Chip,SoC)等方式來實施,但本發明不限於此。舉例來說,該隨機數產生電路可藉由線性反饋移位暫存器(linear feedback shift register,LFSR)、任何種類的隨機數產生器(random number generator,RNG)等方式來實施。於某些實施例中,該隨機數產生電路諸如真隨機數產生器150可被整合至密碼系統引擎電路140中。此外,電子裝置100可另包含一儲存模組(未顯示),以供儲存系統資料、使用者資料等。
依據本實施例,處理器110可用來控制電子裝置100的操作,且可利用記憶體控制器120控制記憶體121為電子裝置100(例如,處理器110)暫時地儲存資訊。在處理器110的控制下,通訊介面電路130可為電子裝置100進行通訊操作,尤其,可耦接至一外部電子裝置以和該外部電子裝置進行該些通訊操作(標示為「往外部電子裝置」以求簡明)。另外,密碼系統引擎電路140可提供該密碼系統處理功能,以使電子裝置100以一預定密碼系統來保護重要資料諸如該系統資料、該使用者資料、通訊資料(例如,該些通訊操作所傳輸/接收的資料)等。
為了便於理解,電子裝置100可代表一儲存裝置諸如一隨身碟、一固態硬碟等,而該外部電子裝置可代表利用該電子裝置100來儲存該使用者資料之一控制裝置,例如,個人電腦諸如桌上型電腦、膝上型電腦等,其中該儲存模組可包含用來儲存該使用者資料等之儲存媒體,諸如快閃記憶體,但本發明不限於此。於某些實施例中,電子裝置100的類型及/或第1圖所示之架構可予以 變化。
依據某些實施例,該預定密碼系統可為一RSA密碼系統,而密碼系統引擎電路140可為一RSA密碼系統引擎電路,但本發明不限於此。於某些實施例中,該預定密碼系統可為一ECC,而密碼系統引擎電路140可為一ECC引擎電路;又或者,該預定密碼系統可為一AES密碼系統,而密碼系統引擎電路140可為一AES密碼系統引擎電路。
第2圖為依據本發明一實施例之一種密碼系統處理電路200的示意圖,其中第2圖所示之密碼系統處理電路200可作為第1圖所示之密碼系統引擎電路140的例子,但本發明不限於此。密碼系統處理電路200可包含一核心(core)電路210,且包含至少一整合時鐘閘控(integrated clock gating)電路(例如,一或多個整合時鐘閘控電路),其可統稱為整合時鐘閘控電路220。舉例來說,核心電路210可控制密碼系統處理電路200中關於該預定密碼系統之複數個密碼系統處理操作(例如,加密操作及/或解密操作),並且可利用整合時鐘閘控電路220於密碼系統處理電路200中進行時鐘閘控操作。此外,密碼系統處理電路200可另包含次級(secondary)計算電路(未顯示)諸如減法電路、加法電路等,以供加速該複數個密碼系統處理操作。
第3圖為一種用來進行功耗擾動操作以降低密碼系統功耗分析攻擊(例如RSA密碼系統功耗分析攻擊)的成功率之方法的流程圖。該方法係可應用於(applicable to)第1圖所示之電子裝置100及其內的元件諸如處理器110、記憶體控制器120、通訊介面電路130、密碼系統引擎電路140等,尤其,係可應用於第2圖所示之密碼系統處理電路200。舉例來說,該預定密碼系統可代表該RSA密碼系統,而密碼系統處理電路200可代表一RSA密碼系統處理電路,但本發明不限於此。
於步驟S11中,密碼系統處理電路200(例如,核心電路210)可利用 該隨機數產生電路諸如真隨機數產生器150產生至少一隨機數(例如,一或多個隨機數)。
於步驟S12中,密碼系統處理電路200(例如,核心電路210)可依據該至少一隨機數來產生分別對應於複數個位元計算階段之複數個功耗擾動參數,其中該複數個位元計算階段可代表關於該預定密碼系統之複數個密碼系統處理階段,且分別對應於一私鑰(private key)之複數個私鑰位元。
於步驟S13中,依據該複數個功耗擾動參數,密碼系統處理電路200(例如,核心電路210)可分別在該複數個位元計算階段中啟用(enable)複數個預定電路中之至少一預定電路(例如,一或多個預定電路),以分別在該複數個位元計算階段中使用對應於該複數個功耗擾動參數之功耗來進行該功耗擾動操作。舉例來說,該複數個預定電路可包含上述至少一整合時鐘閘控電路諸如整合時鐘閘控電路220,但本發明不限於此。該複數個預定電路可分佈於電子裝置100之多個元件。尤其,處理器110、記憶體控制器120以及通訊介面電路130中之任一者可包含該複數個預定電路的其中之一。
為了更好地理解,該方法可用第3圖所示之工作流程來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於第3圖所示之工作流程中增加、刪除或修改。另外,該複數個私鑰位元可為該私鑰之X個私鑰位元{BIT(x)|x=0,1,...,(X-1)},該複數個位元計算階段可為X個位元計算階段{PHASE(x)|x=0,1,...,(X-1)},該複數個功耗擾動參數可為X個功耗擾動參數{PDISTURB(x)|x=0,1,...,(X-1)},且密碼系統處理電路200(例如,核心電路210)可分別在該X個位元計算階段{PHASE(x)|x=0,1,...,(X-1)}中啟用該複數個預定電路中之上述至少一預定電路,以分別在該X個位元計算階段{PHASE(x)|x=0,1,...,(X-1)}中使用對應於該X個功耗擾動參數{PDISTURB(x)|x=0,1,...,(X-1)}之功耗{P(x)|x=0,1,...,(X-1)}來進行該功耗擾動操作。
依據某些實施例,該複數個預定電路可為一組整合時鐘閘控電路。舉例來說,密碼系統處理電路200(例如,核心電路210)可動態地偵測位於電子裝置100中之複數個整合時鐘閘控電路{ICG},諸如整合時鐘閘控電路ICG1、ICG2(如第4圖所示)等,以從該複數個整合時鐘閘控電路{ICG}找出複數個閒置的整合時鐘閘控電路{ICGIDLE},以供用來作為該組整合時鐘閘控電路,其中該複數個閒置的整合時鐘閘控電路{ICGIDLE}代表目前並未輸出任何時鐘訊號的整合時鐘閘控電路,而這些整合時鐘閘控電路之各自的輸出時鐘訊號(例如,閘控的輸出時鐘訊號)目前是被關閉的,但本發明不限於此。再舉一例,不論該複數個整合時鐘閘控電路{ICG}中之所有整合時鐘閘控電路是否均閒置,密碼系統處理電路200(例如,核心電路210)可利用該複數個整合時鐘閘控電路中之上述所有整合時鐘閘控電路作為該組整合時鐘閘控電路。
第4圖為依據本發明一實施例繪示之該方法的一預定電路配置控制方案的示意圖。為了更好地理解,處理器110可包含複數個處理器諸如一中央處理單元(Central Processing Unit,後簡稱CPU)110C及一繪圖處理單元(Graphics Processing Unit,簡稱GPU)110G,並且該複數個整合時鐘閘控電路{ICG}可包含整合時鐘閘控電路ICG1~ICG9,其中整合時鐘閘控電路ICG1及ICG2可分別位於CPU 110C及GPU 110G,而整合時鐘閘控電路{ICG3,ICG4}、{ICG5,ICG6}、{ICG7,ICG8}及ICG9可分別位於記憶體控制器120、通訊介面電路130、密碼系統引擎電路140及真隨機數產生器150,但本發明不限於此。於某些實施例中,該複數個整合時鐘閘控電路{ICG}的數量、及/或該複數個整合時鐘閘控電路{ICG}的分佈可予以變化。
密碼系統引擎電路140中的核心電路CCKT(例如,核心電路210)可產生複數個啟用訊號,尤其,選擇性地利用該複數個啟用訊號啟用該複數個整合時鐘閘控電路{ICG}諸如整合時鐘閘控電路ICG1~ICG9。舉例來說,該複數個 整合時鐘閘控電路{ICG}諸如整合時鐘閘控電路ICG1~ICG9可具有其各自的功耗{P}諸如預定功耗值P1~P9。在該複數個位元計算階段(例如,該X個位元計算階段{PHASE(x)|x=0,1,...,(X-1)})中之任一位元計算階段(例如,位元計算階段PHASE(x))中,核心電路CCKT(例如,可實現為第2圖的核心電路210)可依據該複數個功耗擾動參數(例如,該X個功耗擾動參數{PDISTURB(x)|x=0,1,...,(X-1)})中之一對應的功耗擾動參數(例如,功耗擾動參數PDISTURB(x))來啟用該複數個整合時鐘閘控電路{ICG}中的一或多個整合時鐘閘控電路,以使用該複數個整合時鐘閘控電路{ICG}之各自的功耗{P}(例如,預定功耗值P1~P9)的一或多個來產生一總擾動功耗(例如,預定功耗值P1~P9的子集合的總和)作為動態的功耗P_dyn(x)來進行該功耗擾動操作,諸如針對位元計算階段PHASE(x)或私鑰位元BIT(x)的功耗擾動操作。當任何攻擊者嘗試於位元計算階段PHASE(x)中偵測電子裝置100的原始功耗P_ori(x)時,該攻擊者係被迫量測總功耗P_all(x),如下所示:P_all(x)=P_ori(x)+P_dyn(x);其中總功耗P_all(x)隨著原始功耗P_ori(x)和動態的功耗P_dyn(x)變化。
由於依據該至少一隨機數來產生之該複數個功耗擾動參數(例如,該X個功耗擾動參數{PDISTURB(x)|x=0,1,...,(X-1)})是隨機的,故該複數個位元計算階段(例如,該X個位元計算階段{PHASE(x)|x=0,1,...,(X-1)})之各自的總擾動功耗(例如,預定功耗值P1~P9之各種組合),諸如動態的功耗{P_dyn(x)|x=0,1,...,(X-1)},也是隨機的,使得總功耗{P_all(x)|x=0,1,...,(X-1)}是隨機的。因此,基於該方法來操作的電子裝置100能避免該攻擊者獲取該複數個密碼系統處理操作(例如,加密操作及/或解密操作)中之處理各個位元(例如,該X個私鑰位元{BIT(x)|x=0,1,...,(X-1)})的原始功耗{P_ori(x)|x=0,1,...,(X-1)}之間的差異,且因此能降低該私鑰被獲取的機率。為了簡明 起見,於本實施例中類似的內容在此不重複贅述。
依據某些實施例,一隨機數RDN可包含Y個隨機數位元RDN[(Y-1):0]諸如第(Y-1)個位元RDN(Y-1)至第0個位元RDN(0),其中位元RDN(Y-1)及RDN(0)分別代表隨機數RDN的最高有效位元(Most Significant Bit,簡稱MSB)及最低有效位元(Least Significant Bit,簡稱LSB)。隨機數RDN可作為該至少一隨機數的例子。密碼系統引擎電路140中的核心電路CCKT(例如,可實現為第2圖的核心電路210)可依據該Y個隨機數位元RDN[(Y-1):0]控制該複數個整合時鐘閘控電路{ICG}中之Y個閒置的整合時鐘閘控電路{ICGIDLE(y)|y=0,1,...,(Y-1)},尤其,分別依據位元RDN(0)、RDN(1)、...及RDN(Y-1)是否等於一第一預定邏輯值(例如,邏輯值1)來選擇性地啟用整合時鐘閘控電路ICGIDLE(0)、ICGIDLE(1)、...及ICGIDLE(Y-1)。如果位元RDN(y)等於該第一預定邏輯值(例如,邏輯值1),則核心電路CCKT(例如,核心電路210)可啟用整合時鐘閘控電路ICGIDLE(y)以開啟整合時鐘閘控電路ICGIDLE(y)之輸出時鐘訊號;否則,當位元RDN(y)等於一第二預定邏輯值(例如,邏輯值0),核心電路CCKT(例如,核心電路210)可停用整合時鐘閘控電路ICGIDLE(y)以關閉(尤其,維持關閉)整合時鐘閘控電路ICGIDLE(y)之輸出時鐘訊號。
為了便於理解,假設Y=4,且該Y個閒置的整合時鐘閘控電路{ICGIDLE(0),ICGIDLE(1),...,ICGIDLE(Y-1)}諸如4個閒置的整合時鐘閘控電路{ICGIDLE(0),ICGIDLE(1),ICGIDLE(2),ICGIDLE(3)}分別代表整合時鐘閘控電路{ICG2,ICG3,ICG5,ICG8},這表示隨機數RDN的位元RDN(0)、RDN(1)、RDN(2)及RDN(3)(從LSB到MSB)可分別用以控制整合時鐘閘控電路ICG2、ICG3、ICG5及ICG8,但本發明不限於此。舉例來說,當A=4’b1010,核心電路CCKT(例如,可實現為第2圖的核心電路210)可啟用整合時鐘閘控電路ICG3及ICG8且停用整合時鐘閘控電路ICG2及ICG5。當A=4’b0111,核心電路CCKT(例如,可實 現為第2圖的核心電路210)可啟用整合時鐘閘控電路ICG2、ICG3及ICG5且停用整合時鐘閘控電路ICG8。為了簡明起見,於這些實施例中類似的內容在此不重複贅述。
依據某些實施例,核心電路CCKT(例如,可實現為第2圖的核心電路210)可預先從該隨機數產生電路諸如真隨機數產生器150讀取1024位元,且每次使用4位元作為隨機數RDN。舉例來說,在256個連續的位元計算階段(例如,ECC位元計算階段或RSA位元計算階段)中,核心電路CCKT(例如,核心電路210)可於任一位元計算階段使用該1024位元中之4位元作為隨機數RDN。為了簡明起見,於這些實施例中類似的內容在此不重複贅述。
第5圖為依據本發明一實施例繪示之該預定電路配置控制方案中所涉及的一整合時鐘閘控電路300的示意圖,其中多個D型正反器(D-type flip-flop)DEF可被繪示為整合時鐘閘控電路300的後續級電路以便於理解。第5圖所示的整合時鐘閘控電路300可作為該複數個整合時鐘閘控電路{ICG}中之任一整合時鐘閘控電路ICG的例子,尤其,可作為第4圖中整合時鐘閘控電路ICG1~ICG9中的任一整合時鐘閘控電路的例子。
整合時鐘閘控電路300可包含一鎖存器(latch)310(標示為「L」以求簡明)以及一及閘(AND gate)320。鎖存器(latch)310的一啟用端子En可用來接收一啟用訊號EN。整合時鐘閘控電路300可接收一時鐘訊號CLK,且利用一反相器(inverter)對時鐘訊號CLK進行反相操作以產生其反相訊號,以供輸入至鎖存器310的時鐘輸入端子。及閘320可對鎖存器310的輸出訊號及時鐘訊號CLK進行一及(AND)運算以產生一閘控的時鐘訊號GCLK,其中閘控的時鐘訊號GCLK可用來作為該多個D型正反器DEF之各自的輸入時鐘,以供控制該多個D型正反器DFF依據其各自的資料輸入訊號D產生其各自的資料輸出訊號Q。為了簡明起見,於本實施例中類似的內容在此不重複贅述。
第6圖為依據本發明一實施例繪示之該方法的一多功能啟用控制方案的示意圖。基於該多功能啟用控制方案來實現的一多功能型整合時鐘閘控電路400可包含一或閘(OR gate)410以及第5圖所示的整合時鐘閘控電路300。該複數個整合時鐘閘控電路{ICG}中之該任一整合時鐘閘控電路ICG,諸如整合時鐘閘控電路300,可透過或閘410耦接至一第一啟用訊號C1及一第二啟用訊號C2,以容許第一啟用訊號C1及第二啟用訊號C2中之至少一啟用訊號啟用該任一整合時鐘閘控電路ICG諸如整合時鐘閘控電路300。
為了便於理解,第一啟用訊號C1可對應於該任一整合時鐘閘控電路ICG(例如,整合時鐘閘控電路300)之一原始功能,而第二啟用訊號C2可對應於該任一整合時鐘閘控電路ICG(例如,整合時鐘閘控電路300)之一功耗擾動功能。核心電路CCKT(例如,可實現為第2圖的核心電路210)可透過第二啟用訊號C2啟用該任一整合時鐘閘控電路ICG諸如整合時鐘閘控電路300,其中第二啟用訊號C2可作為第4圖所示的啟用訊號的例子。為了簡明起見,於本實施例中類似的內容在此不重複贅述。
針對該複數個密碼系統處理操作之某些實施細節進一步說明如下。密碼系統處理電路200可依據RSA標量乘法(scalar multiplication)中的二進制指數(binary exponentiation)演算法或模指數(modular exponentiation)演算法來進行該複數個密碼系統處理操作(例如,加密操作及/或解密操作),以加快計算速度,尤其,藉由計算Ak mod N。假設a、n及m是整數,而n
Figure 111113474-A0305-02-0014-9
0且0
Figure 111113474-A0305-02-0014-10
a<m,並且需要計算(an mod m)。例如:n=205=(11001101)2=27+26+23+22+20;其中符號「( )2」可代表二進制數值。在上列計算中,只需要再4個模乘法(modular multiplication)操作來產生(a205 mod m):a205=(a^27×a^26×a^23×a^22×a^20)mod m;或
Figure 111113474-A0305-02-0015-12
;為了便於理解,上列計算可以用偽代碼表示如下:
Figure 111113474-A0305-02-0015-1
在上列偽代碼中,符號「βi」可代表n的二進制表示法{βk-1k-2,...,β0}中的任一個位元的數值。例如:n=205={β76543210};其中β02367=1’b1(亦即,單一位元(1)2),且β145=1’b0(亦即,單一位元(0)2)。
假如使用從MSB到LSB掃描的方法,a205可表示如下:a^205=(((((((a^2×a)^2)^2)^2)×a)^2×a)^2)^2×a;在上列方程式中,「^2」(亦即,求2次方)可稱為點加倍(point double)計算操作,而「×a」可稱為點加法(point add)計算操作。上列方程式可重新寫成:a^205=a^(2^7)×a^(2^6)×a^(2^3)×a^(2^2)×a;或a^205=a^(2^7+2^6+2^3+2^2+2^0)。請注意,點加倍計算操作是每次移動1位元時都要進行的。當第7個位元掃描到 第6個位元時,密碼系統處理電路200可以偵測到第6個位元等於1,且可以先進行該點加倍計算操作(例如平方操作)然後進行該點加法計算操作;當第6個位元掃描到第5個位元時,密碼系統處理電路200可以偵測到第5個位元等於0,且可以僅僅進行該點加倍計算操作(例如平方操作);依此類推。這裡的n可被視為私鑰。由於私鑰係典型地位於相關計算(例如,(Ak mod N)的計算)中之指數,如果某人能從功耗的差異看出目前正在進行的計算是該點加倍計算操作還是該點加法計算操作,則這個人可能會輕易地猜測出私鑰。
如前面所述,該複數個位元計算階段可代表關於該預定密碼系統(例如,該RSA密碼系統)之該複數個密碼系統處理階段,且分別對應於該私鑰之該複數個私鑰位元。基於該方法來操作的電子裝置100能避免任何攻擊者獲取該複數個密碼系統處理操作(例如,加密操作及/或解密操作)中之處理各個位元的功耗之差異,且因此能降低該私鑰被獲取的機率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:電子裝置
100B:匯流排
110:處理器
120:記憶體控制器
121:記憶體
130:通訊介面電路
140:密碼系統引擎電路
150:真隨機數產生器

Claims (9)

  1. 一種用來進行功耗擾動操作以降低密碼系統(cryptosystem)功耗分析攻擊的成功率之方法,該方法包含:利用一隨機數產生電路(random number generating circuit)產生至少一隨機數;依據該至少一隨機數來產生分別對應於複數個位元計算階段之複數個功耗擾動參數,其中該複數個位元計算階段代表關於一預定密碼系統之複數個密碼系統處理階段,且分別對應於一私鑰(private key)之複數個私鑰位元;以及依據該複數個功耗擾動參數,分別在該複數個位元計算階段中啟用(enable)複數個預定電路中之至少一預定電路,以分別在該複數個位元計算階段中使用對應於該複數個功耗擾動參數之功耗來進行該功耗擾動操作,其中該複數個預定電路代表一組整合時鐘閘控(integrated clock gating)電路;其中,該隨機數產生電路包含有一整合時鐘閘控電路,且該隨機數產生電路僅在該複數個位元計算階段中的一個或多個第一位元計算階段中產生該至少一隨機數,而在該複數個位元計算階段中的一個或多個第二位元計算階段中,該隨機數產生電路在未產生該至少一隨機數的情況下,該隨機數產生電路所包含的該整合時鐘閘控電路被開啟來進行該功耗擾動操作。
  2. 如申請專利範圍第1項所述之方法,其另包含:動態地偵測複數個整合時鐘閘控電路以找出複數個閒置的整合時鐘閘控電路來作為該組整合時鐘閘控電路。
  3. 如申請專利範圍第1項所述之方法,其另包含:不論複數個整合時鐘閘控電路中之所有整合時鐘閘控電路是否均閒置,利用所有整合時鐘閘控電路作為該組整合時鐘閘控電路。
  4. 如申請專利範圍第3項所述之方法,其中該複數個整合時鐘閘控電路中之任一整合時鐘閘控電路係透過一或閘(OR gate)耦接至一第一啟用訊號及一第二啟用訊號,以容許該第一啟用訊號及該第二啟用訊號中之至少一啟用訊號啟用該任一整合時鐘閘控電路。
  5. 如申請專利範圍第4項所述之方法,其中該第一啟用訊號對應於該任一整合時鐘閘控電路之一原始功能,而該第二啟用訊號對應於該任一整合時鐘閘控電路之一功耗擾動功能。
  6. 如申請專利範圍第1項所述之方法,其中該複數個預定電路分佈於一電子裝置之多個元件中。
  7. 一種依據如申請專利範圍第1項所述之方法來操作之密碼系統處理電路,其中該密碼系統處理電路包含:一核心電路,用來控制該密碼系統處理電路的關於該預定密碼系統之複數個密碼系統處理操作,其中該核心電路依據該至少一隨機數來產生分別對應於該複數個位元計算階段之該複數個功耗擾動參數;以及至少一整合時鐘閘控(integrated clock gating)電路,用來於該密碼系統處理電路中進行時鐘閘控操作,其中該複數個預定電路包含該至少一 整合時鐘閘控電路。
  8. 一種包含如申請專利範圍第7項所述之密碼系統處理電路的電子裝置,其中該電子裝置另包含:至少一處理器,用來控制該電子裝置的操作;一記憶體控制器,用來控制一記憶體為該電子裝置暫時地儲存資訊;該隨機數產生電路,用來產生該至少一隨機數;以及一通訊介面電路,用來為該電子裝置進行通訊操作。
  9. 如申請專利範圍第8項所述之電子裝置,其中該至少一處理器、該記憶體控制器以及該通訊介面電路中之任一者包含該複數個預定電路的其中之一。
TW111113474A 2022-01-20 2022-04-08 用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、密碼系統處理電路及電子裝置 TWI825659B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210068877.9A CN116522351A (zh) 2022-01-20 2022-01-20 降低成功率的方法、密码系统处理电路及电子装置
CN202210068877.9 2022-01-20

Publications (2)

Publication Number Publication Date
TW202332229A TW202332229A (zh) 2023-08-01
TWI825659B true TWI825659B (zh) 2023-12-11

Family

ID=87161413

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111113474A TWI825659B (zh) 2022-01-20 2022-04-08 用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、密碼系統處理電路及電子裝置

Country Status (3)

Country Link
US (1) US20230231696A1 (zh)
CN (1) CN116522351A (zh)
TW (1) TWI825659B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116647318A (zh) * 2022-02-16 2023-08-25 瑞昱半导体股份有限公司 防御密码系统时间攻击的方法及密码系统处理电路

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080275932A1 (en) * 2007-03-07 2008-11-06 Research In Motion Limited Integer Division In A Manner That Counters A Power Analysis Attack
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
CN101695021A (zh) * 2009-10-22 2010-04-14 杭州晟元芯片技术有限公司 一种抗spa/dpa攻击的系统和方法
TW201633207A (zh) * 2014-12-12 2016-09-16 納格維遜股份有限公司 裝置金鑰保護
CN107306180A (zh) * 2016-04-19 2017-10-31 华邦电子股份有限公司 加解密装置及其功率分析防御方法
TW201820200A (zh) * 2016-11-15 2018-06-01 大陸商華為技術有限公司 安全系統及終端晶片

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3558488B2 (ja) * 1997-05-20 2004-08-25 エニー株式会社 暗号通信システム
JP2008067349A (ja) * 2006-08-07 2008-03-21 Renesas Technology Corp 半導体集積回路
US8050403B2 (en) * 2007-03-06 2011-11-01 Research In Motion Limited Method and apparatus for generating a public key in a manner that counters power analysis attacks
CN102509036B (zh) * 2011-09-28 2014-11-12 东南大学 一种可重构密码处理器及抗功耗攻击方法
US11545418B2 (en) * 2018-10-24 2023-01-03 Texas Instruments Incorporated Thermal capacity control for relative temperature-based thermal shutdown
US20220150046A1 (en) * 2021-09-16 2022-05-12 Intel Corporation Deterring side channel analysis attacks for data processors having parallel cryptographic circuits

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US20080275932A1 (en) * 2007-03-07 2008-11-06 Research In Motion Limited Integer Division In A Manner That Counters A Power Analysis Attack
CN101695021A (zh) * 2009-10-22 2010-04-14 杭州晟元芯片技术有限公司 一种抗spa/dpa攻击的系统和方法
TW201633207A (zh) * 2014-12-12 2016-09-16 納格維遜股份有限公司 裝置金鑰保護
CN107306180A (zh) * 2016-04-19 2017-10-31 华邦电子股份有限公司 加解密装置及其功率分析防御方法
TW201820200A (zh) * 2016-11-15 2018-06-01 大陸商華為技術有限公司 安全系統及終端晶片

Also Published As

Publication number Publication date
US20230231696A1 (en) 2023-07-20
CN116522351A (zh) 2023-08-01
TW202332229A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US20200265167A1 (en) Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques
Nara et al. Scan-based attack against elliptic curve cryptosystems
JP4955182B2 (ja) 整数の計算フィールド範囲の拡張
Öztürk et al. Low-power elliptic curve cryptography using scaled modular arithmetic
US10826710B2 (en) Technologies for robust computation of elliptic curve digital signatures
WO2009035982A1 (en) Secure modular exponentiation by randomization of exponent scanning
US11516012B2 (en) System, apparatus and method for performing a plurality of cryptographic operations
KR100436814B1 (ko) 아이씨카드용 알에스에이 암호 연산 장치
CN111444518A (zh) 安全处理器及其操作方法、加密或解密数据的方法
TWI825659B (zh) 用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、密碼系統處理電路及電子裝置
US7849125B2 (en) Efficient computation of the modulo operation based on divisor (2n-1)
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
Oudjida et al. Radix-2 w arithmetic for scalar multiplication in elliptic curve cryptography
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
EP3352411B1 (en) Method of generating cryptographic key pairs
KR100478974B1 (ko) 직렬 유한체 승산기
CN116436709B (zh) 一种数据的加解密方法、装置、设备和介质
US6609141B1 (en) Method of performing modular inversion
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
US7171437B2 (en) Residue calculating unit immune to power analysis
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
TWI793020B (zh) 防禦密碼系統時間攻擊之方法、密碼系統處理電路及電子裝置
Joye et al. A protected division algorithm
JP5179933B2 (ja) データ処理装置
US20240012615A1 (en) Fast modular multiplication of large integers