CN116522351A - 降低成功率的方法、密码系统处理电路及电子装置 - Google Patents
降低成功率的方法、密码系统处理电路及电子装置 Download PDFInfo
- Publication number
- CN116522351A CN116522351A CN202210068877.9A CN202210068877A CN116522351A CN 116522351 A CN116522351 A CN 116522351A CN 202210068877 A CN202210068877 A CN 202210068877A CN 116522351 A CN116522351 A CN 116522351A
- Authority
- CN
- China
- Prior art keywords
- clock gating
- circuit
- power consumption
- integrated clock
- cryptosystem
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004364 calculation method Methods 0.000 claims abstract description 44
- 238000004891 communication Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- ODGGUXXVEFKWTC-UHFFFAOYSA-N isocyclomaltopentaose Natural products OCC1OC(O)C2OCC3OC(OC4C(O)C(O)C(OC4CO)OC5C(O)C(O)C(OC5CO)OC6C(O)C(O)C(OC6CO)OC1C2O)C(O)C(O)C3O ODGGUXXVEFKWTC-UHFFFAOYSA-N 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- PIBXBCFBUUZPRF-UHFFFAOYSA-N isocyclomaltohexaose Natural products OCC1OC2OCC3OC(OC4C(O)C(O)C(OC4CO)OC5C(O)C(O)C(OC5CO)OC6C(O)C(O)C(OC6CO)OC7C(O)C(O)C(OC7CO)OC1C(O)C2O)C(O)C(O)C3O PIBXBCFBUUZPRF-UHFFFAOYSA-N 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 231100000957 no side effect Toxicity 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/08—Randomization, 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 curvecryptosystem,简称ECC))功耗分析攻击的成功率的方法、相关的密码系统处理电路以及相关的电子装置。
背景技术
依据相关技术,可使用私钥(private key)来进行RSA解密运算。然而,可能发生某些问题。举例来说,如果攻击者能够获取RSA计算中的处理各个位(bit)的功耗,则攻击者可能从未经过适当保护的处理架构获取私钥。相关技术中提出了某些建议以尝试解决这个问题,但可能导致额外的问题诸如某些副作用。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下实现具有可靠的密码系统的电子装置。
发明内容
本发明的一目的在于提供一种用来进行功耗扰动操作以降低密码系统功耗分析攻击(例如RSA密码系统功耗分析攻击)的成功率的方法、相关的密码系统处理电路以及相关的电子装置,以解决上述问题。
本发明的至少一实施例提供一种用来进行功耗扰动操作以降低密码系统功耗分析攻击的成功率的方法。该方法可包含:利用一随机数产生电路(random numbergenerating circuit)产生至少一随机数;依据该至少一随机数来产生分别对应于多个位计算阶段的多个功耗扰动参数,其中该多个位计算阶段代表关于一预定密码系统的多个密码系统处理阶段,且分别对应于一私钥(private key)的多个私钥位;以及依据该多个功耗扰动参数,分别在该多个位计算阶段中启用(enable)多个预定电路中的至少一预定电路,以分别在该多个位计算阶段中使用对应于该多个功耗扰动参数的功耗来进行该功耗扰动操作。
依据某些实施例,本发明还提供一种依据上述的方法来操作的密码系统处理电路,其中该密码系统处理电路可包含:一核心电路,用来控制该密码系统处理电路的关于该预定密码系统的多个密码系统处理操作,其中该核心电路依据该至少一随机数来产生分别对应于该多个位计算阶段的该多个功耗扰动参数;以及至少一集成时钟栅控(integratedclock gating)电路,用来在该密码系统处理电路中进行时钟栅控,其中该多个预定电路包含该至少一集成时钟栅控电路。
依据某些实施例,本发明还提供一种包含上述的密码系统处理电路的电子装置,其中该电子装置还包含:至少一处理器,用来控制该电子装置的操作;一存储器控制器,用来控制一存储器为该电子装置暂时地储存信息;以及一通信界面电路,用来为该电子装置进行通信操作。举例来说,该至少一处理器、该存储器控制器以及该通信界面电路中的任一者可包含该多个预定电路的其中之一。
本发明的好处之一是,通过仔细设计的控制机制,本发明的方法能避免任何攻击者获取RSA计算中处理各个位的功耗的差异,且因此能降低私钥被获取的机率。另外,依据本发明的方法来实施电子装置中的密码系统不会大幅地增加成本。相较于相关技术,本发明的方法能在没有副作用或较不可能带来副作用的状况下实现具有强健的(robust)密码系统的电子装置。
附图说明
图1为依据本发明一实施例的一种具备密码系统(cryptosystem)处理功能的电子装置的示意图。
图2为依据本发明一实施例的一种密码系统处理电路的示意图,其中图2所示的密码系统处理电路可作为图1所示的密码系统引擎电路的例子。
图3为一种用来进行功耗扰动操作以降低密码系统功耗分析攻击(例如RSA密码系统功耗分析攻击)的成功率的方法的流程图。
图4为依据本发明一实施例示出的该方法的一预定电路配置控制方案的示意图。
图5为依据本发明一实施例示出的该预定电路配置控制方案中所涉及的一集成时钟栅控电路的示意图。
图6为依据本发明一实施例示出的该方法的一多功能启用控制方案的示意图。
具体实施方式
图1为依据本发明一实施例的一种具备密码系统(cryptosystem)处理功能的电子装置100的示意图。电子装置100可包含至少一处理器(例如,一或多个处理器),其可统称为处理器110,且包含一存储器控制器120、一存储器121、一通信界面电路130、一密码系统引擎电路140以及一随机数产生电路诸如一真随机数产生器(true random numbergenerator,TRNG)150,而这些元件可通过一总线100B彼此耦接,其中电子装置100的一控制电路可包含处理器110、存储器控制器120、通信界面电路130、密码系统引擎电路140及真随机数产生器150,且可借由系统单晶片(System on Chip,SoC)等方式来实施,但本发明不限于此。举例来说,该随机数产生电路可借由线性反馈移位暂存器(linear feedback shiftregister,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 ProcessingUnit,后简称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)DFF可被示出为集成时钟栅控电路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型正反器DFF的各自的输入时钟,以供控制该多个D型正反器DFF依据其各自的数据输入信号D产生其各自的数据输出信号Q。为了简明起见,在本实施例中类似的内容在此不重复赘述。
图6为依据本发明一实施例示出的该方法的一多功能启用控制方案的示意图。基于该多功能启用控制方案来实现的一多功能型集成时钟栅控电路400可包含一或栅(ORgate)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)中的二进制指数(binaryexponentiation)算法或模指数(modular exponentiation)算法来进行该多个密码系统处理操作(例如,加密操作及/或解密操作),以加快计算速度,尤其,借由计算Ak mod N。假设a、n及m是整数,而n≥0且0≤a<m,并且需要计算(an mod m)。例如:
n=205=(11001101)2=27+26+23+22+20;
其中符号「()2」可代表二进制数值。在上列计算中,只需要再4个模乘法(modularmultiplication)操作来产生(a205mod m):
a205=(a^27×a^26×a^23×a^22×a^20)mod m;或
为了便于理解,上列计算可以用伪代码表示如下:
在上列伪代码中,符号「βi」可代表n的二进制表示法{βk-1,βk-2,...,β0}中的任一个位的数值。例如:
n=205={β7,β6,β5,β4,β3,β2,β1,β0};
其中β0=β2=β3=β6=β7=1’b1(亦即,单一位(1)2),且β1=β4=β5=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:处理器
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:启用信号。
Claims (10)
1.一种用来进行功耗扰动操作以降低密码系统功耗分析攻击的成功率的方法,该方法包含:
利用一随机数产生电路产生至少一随机数;
依据该至少一随机数来产生分别对应于多个位计算阶段的多个功耗扰动参数,其中该多个位计算阶段代表关于一预定密码系统的多个密码系统处理阶段,且分别对应于一私钥的多个私钥位;以及
依据该多个功耗扰动参数,分别在该多个位计算阶段中启用多个预定电路中的至少一预定电路,以分别在该多个位计算阶段中使用对应于该多个功耗扰动参数的功耗来进行该功耗扰动操作。
2.如权利要求1所述的方法,其中该多个预定电路代表一组集成时钟栅控电路。
3.如权利要求2所述的方法,还包含:
动态地检测多个集成时钟栅控电路以找出多个闲置的集成时钟栅控电路来作为该组集成时钟栅控电路。
4.如权利要求2所述的方法,还包含:
不论多个集成时钟栅控电路中的所有集成时钟栅控电路是否均闲置,利用所有集成时钟栅控电路作为该组集成时钟栅控电路。
5.如权利要求4所述的方法,其中该多个集成时钟栅控电路中的任一集成时钟栅控电路是通过一或栅耦接至一第一启用信号及一第二启用信号,以容许该第一启用信号及该第二启用信号中的至少一启用信号启用该任一集成时钟栅控电路。
6.如权利要求5所述的方法,其中该第一启用信号对应于该任一集成时钟栅控电路的一原始功能,而该第二启用信号对应于该任一集成时钟栅控电路的一功耗扰动功能。
7.如权利要求1所述的方法,其中该多个预定电路分布于一电子装置的多个元件中。
8.一种依据如权利要求1所述的方法来操作的密码系统处理电路,其中该密码系统处理电路包含:
一核心电路,用来控制该密码系统处理电路的关于该预定密码系统的多个密码系统处理操作,其中该核心电路依据该至少一随机数来产生分别对应于该多个位计算阶段的该多个功耗扰动参数;以及
至少一集成时钟栅控电路,用来在该密码系统处理电路中进行时钟栅控操作,其中该多个预定电路包含该至少一集成时钟栅控电路。
9.一种包含如权利要求8所述的密码系统处理电路的电子装置,其中该电子装置还包含:
至少一处理器,用来控制该电子装置的操作;
一存储器控制器,用来控制一存储器为该电子装置暂时地储存信息;以及
一通信界面电路,用来为该电子装置进行通信操作。
10.如权利要求9所述的电子装置,其中该至少一处理器、该存储器控制器以及该通信界面电路中的任一者包含该多个预定电路的其中之一。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068877.9A CN116522351A (zh) | 2022-01-20 | 2022-01-20 | 降低成功率的方法、密码系统处理电路及电子装置 |
TW111113474A TWI825659B (zh) | 2022-01-20 | 2022-04-08 | 用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、密碼系統處理電路及電子裝置 |
US17/885,581 US20230231696A1 (en) | 2022-01-20 | 2022-08-11 | Method for performing power disturbing operation to reduce success rate of cryptosystem power analysis attack, cryptosystem processing circuit, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068877.9A CN116522351A (zh) | 2022-01-20 | 2022-01-20 | 降低成功率的方法、密码系统处理电路及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116522351A true CN116522351A (zh) | 2023-08-01 |
Family
ID=87161413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210068877.9A Pending CN116522351A (zh) | 2022-01-20 | 2022-01-20 | 降低成功率的方法、密码系统处理电路及电子装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230231696A1 (zh) |
CN (1) | CN116522351A (zh) |
TW (1) | TWI825659B (zh) |
Family Cites Families (6)
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 | 納格維遜股份有限公司 | 裝置金鑰保護 |
CN107306180B (zh) * | 2016-04-19 | 2020-05-19 | 华邦电子股份有限公司 | 加解密装置及其功率分析防御方法 |
CN108075877B (zh) * | 2016-11-15 | 2022-04-29 | 华为技术有限公司 | 一种安全系统及终端芯片 |
-
2022
- 2022-01-20 CN CN202210068877.9A patent/CN116522351A/zh active Pending
- 2022-04-08 TW TW111113474A patent/TWI825659B/zh active
- 2022-08-11 US US17/885,581 patent/US20230231696A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230231696A1 (en) | 2023-07-20 |
TW202332229A (zh) | 2023-08-01 |
TWI825659B (zh) | 2023-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4870681A (en) | Cryptographic method and cryptographic processor for carrying out the method | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
US8209369B2 (en) | Signal processing apparatus and method for performing modular multiplication in an electronic device, and smart card using the same | |
US6434585B2 (en) | Computationally efficient modular multiplication method and apparatus | |
WO2009035982A1 (en) | Secure modular exponentiation by randomization of exponent scanning | |
KR100436814B1 (ko) | 아이씨카드용 알에스에이 암호 연산 장치 | |
CN111444518A (zh) | 安全处理器及其操作方法、加密或解密数据的方法 | |
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) | 직렬 유한체 승산기 | |
EP1366596B1 (en) | Circuit and method for squaring long integers | |
US7171437B2 (en) | Residue calculating unit immune to power analysis | |
CN116522351A (zh) | 降低成功率的方法、密码系统处理电路及电子装置 | |
JP4616169B2 (ja) | モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム | |
KR100564599B1 (ko) | 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체 | |
KR100484487B1 (ko) | 모듈러 연산 장치 및 방법, 그리고 이를 이용한 rsa암호 연산 시스템 | |
US20230261851A1 (en) | Method of defense against cryptosystem timing attack, associated cryptosystem processing circuit, and associated electronic device | |
JP5179933B2 (ja) | データ処理装置 | |
US20230412370A1 (en) | Processing of Cryptographic Data | |
US20240007288A1 (en) | Isogeny calculation device, isogeny calculation method, and computer program product | |
US7471789B2 (en) | Encryption circuit achieving higher operation speed | |
Zeng et al. | An Efficient Module Arithmetic Logic Unit in Dual Field for Internet of Things Applications | |
CN117353929A (zh) | 点乘运算装置、数字签名装置以及片上系统 | |
CN113836851A (zh) | 一种ⅱ型最优正规基与多项式基转换电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |