CN110710154B - 用于使设备操作模糊化的系统、方法和装置 - Google Patents
用于使设备操作模糊化的系统、方法和装置 Download PDFInfo
- Publication number
- CN110710154B CN110710154B CN201880034464.0A CN201880034464A CN110710154B CN 110710154 B CN110710154 B CN 110710154B CN 201880034464 A CN201880034464 A CN 201880034464A CN 110710154 B CN110710154 B CN 110710154B
- Authority
- CN
- China
- Prior art keywords
- cryptographic
- parameters
- processor
- random number
- cryptographic process
- 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.)
- Active
Links
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/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
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- 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/005—Countermeasures against attacks on cryptographic mechanisms for timing attacks
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本公开的实施方案整体涉及用于使设备的操作模糊化的系统和方法,具体地涉及定时和功率消耗信息。
Description
优先权声明
本申请根据35U.S.C.§119(e)要求于2017年5月26日提交的美国临时专利申请序列号62/511,734的权益,该临时专利申请的公开内容据此全文以引用方式并入本文。
技术领域
本公开的实施方案整体涉及用于使设备的操作模糊化的系统和方法,具体地涉及定时和功率消耗信息。
背景技术
在密码学中使用了大量计算,包括计算私钥、子密钥和公钥。执行此类计算的设备用于促进设备之间的安全和可信通信。
附图说明
通过结合附图的概要描述,本公开的实施方案的目的和优点对于本领域的普通技术人员将是显而易见的:
图1示出了根据本公开的实施方案的实现各种过程的安全系统。
图2示出了根据本公开的实施方案的被配置为执行各种过程的处理器。
图3示出了根据本公开的实施方案的通过图1的系统执行密码过程的方法的流程图。
图4A和图4B示出了根据本公开的实施方案执行的两个密码过程之间的功率消耗差异。
具体实施方式
在以下具体实施方式中,参考了形成本公开的一部分的附图,并且在附图中以举例的方式示出了可实施本公开的实施方案的特定示例。充分详细地描述了这些实施方案,以使本领域的普通技术人员能够实践本公开。然而,可利用其他实施方案,并且可在不脱离本公开的范围的情况下进行结构、材料和过程的变化。本文所呈现的图示并不旨在为任何特定方法、系统、设备或结构的实际视图,而仅仅是用于描述本公开的实施方案的理想化表示。本文所呈现的附图未必按比例绘制。为了读者的方便,各附图中的类似结构或部件可保持相同或相似的编号;然而,编号的相似性并不意味着该结构或部件在尺寸、组成、配置或任何其他属性方面必须是相同的。
应当容易理解,如本文一般所述并且在附图中示出的实施方案的部件可以许多种不同的配置来布置和设计。因此,对各种实施方案的以下描述并不旨在限制本公开的范围,而是仅代表各种实施方案。虽然实施方案的各个方面可在附图中呈现,但是附图未必按比例绘制,除非特别指明。
此外,所示出和描述的特定实施方式仅为示例,并且不应理解为实施本公开的唯一方式,除非本文另外指明。元件、电路和功能可以框图形式示出,以便不以不必要的细节模糊本公开。相反,所示出和描述的特定实施方式仅为示例性的,并且不应理解为实施本公开的唯一方式,除非本文另外指明。另外,块定义和各个块之间逻辑的分区是特定实施方式的示例。对于本领域的普通技术人员将显而易见的是,本公开可通过许多其他分区解决方案来实践。在大多数情况下,已省略了关于定时考虑等的细节,其中此类细节不需要获得本公开的完全理解,并且在相关领域的普通技术人员的能力范围内。
本领域的普通技术人员将会理解,可使用多种不同技术和技法中的任何一者来表示信息和信号。例如,可在整个本说明书中参考的数据、指令、命令、信息、信号、位、符号和芯片可由电压、电流、电磁波、磁场或粒子、光场或粒子或者它们的任何组合来表示。为了清晰地呈现和描述,一些附图可以将信号示出为单个信号。本领域的普通技术人员应当理解,信号可表示信号总线,其中总线可具有多种位宽度,并且本公开可在包括单个数据信号在内的任意数量的数据信号上实现。
结合本文所公开的实施方案描述的各种例示性逻辑块、模块和电路可以用通用处理器、专用处理器、数字信号处理器(DSP)、集成电路(IC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑设备、分立栅极或晶体管逻辑部件、分立硬件部件或设计成执行本文所描述的功能的其任何组合来实现或执行。通用处理器(在本文中也可称为主机处理器或仅称为主机)可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实现为计算设备的组合,诸如DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器或任何其他此类配置。在通用计算机被配置为执行与本公开的实施方案相关的计算指令(例如,软件代码)时,包括处理器的通用计算机被认为是专用计算机。
实施方案可根据被描绘为流程图、流程示意图、结构图或框图的过程来描述。虽然流程图可将操作动作描述为顺序过程,但是这些动作中的许多动作可在另一序列中、并行地或基本上同时地执行。此外,可重新安排动作的顺序。过程可以对应于方法、线程、函数、程序、子例程、子程序等。此外,本文所公开的方法可以在硬件、软件或两者中实现。如果在软件中实现,这些函数可作为一个或多个指令或代码存储或传输到计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质两者,该通信介质包括有利于将计算机程序从一个位置传递到另一个位置的任何介质。
除非明确说明此类限制,否则使用名称诸如“第一”、“第二”等对本文的元件的任何引用不限制那些元件的数量或顺序。相反,这些名称可在本文中用作在两个或更多个元件或元件的实例之间进行区分的便利方法。因此,提及第一元件和第二元件并不意味着在那里只能采用两个元件,或者第一元件必须以某种方式在第二元件之前。此外,除非另外指明,一组元件可包括一个或多个元件。
本文所述的元件可包括相同元件的多个实例。这些元件可由数字指示符(例如110)一般地指示,并且由后接字母指示符的数字指示符(例如,110A)或后接前面带有“短划线”的数字指示符(例如,110-1)具体地指示。为了便于遵循该描述,在大多数情况下,元件编号指示符以引入或最充分讨论元件的附图的编号开始。因此,例如,图1上的元件标识符将主要为数字格式1xx,并且图4上的元件将主要为数字格式4xx。
如本文所用,涉及给定参数、属性或条件的术语“基本上”是指并且包括在本领域的普通技术人员将会理解的给定参数、属性或条件满足小程度的方差的程度,诸如例如在可接受的制造公差内。以举例的方式,取决于基本上满足的具体参数、属性或条件,参数、属性或条件可至少满足90%、至少满足95%、或甚至至少满足99%。
如本文所用,对“密码过程”的引用是指包括计算的操作,该计算形成与执行加密和解密,解析密钥、子密钥或执行与密码学相关的任何其他步骤或计算相关的协议的一部分或全部。密码过程可由设备执行,例如,基于固件或软件执行协议的一部分的密码处理器或通用处理器。
在了解到正在设备处执行计算(包括模逆元计算)时,就可以通过观察执行此类计算的设备的特性(以非限制性示例的方式)来显示设备的定时/功率消耗。更具体地,如果输入与定时标记/功率标记之间的关系是已知的,则在计算期间根据设备的定时标记/功率标记确定设备的输入是可能的。例如,如果设备使用私钥对数据进行解密,则在解密期间观察设备的定时标记/功率标记可显示关于提供给设备并且用于那些计算的私钥或其他密码参数的信息。
本文所述的各种实施方案涉及用于使设备的外部可观察特性模糊化的技术,包括但不限于可应用于涉及确定最大公约数的任何计算的技术。此类技术可(但不限于)使执行此类计算的设备的定时信息和功率消耗信息模糊化。作为具体示例,本文所述的技术应用于扩展欧几里得最大公约数算法(XGCD)。
如本文所用,“使设备特性模糊化”或类似术语是指使设备的任何外部可观察特性变得模糊或不清楚,包括但不限于操作期间设备的特性。此类特性可包括但不限于:功率消耗、定时信息、磁场信息;热标记信息、本质类似的其他信息以及它们的组合。模糊化并不意味着信息是不可观察的,尽管可能如此,并且模糊化旨在包括使此类信息更无用或需要更多处理以使得此类信息有用。
模逆元计算用于密码学,包括用于计算私钥、子密钥和公钥。该计算将利用以下关系:
A*A-1=k*m+1
其中“m”为模量,并且“k”为整数。
因此,A*A-1≡1。可使用模逆元关系根据少量基密钥来计算一个或多个私钥和子密钥。
XGCD是一种使用欧几里得算法(其求得最大公约数)接着使用回代法以求解裴蜀定理来确定“模量m”的逆元的技术。XGCD用于密码学和公钥/私钥加密/解密方法。
各种实施方案涉及用于通过使用安全二进制XGCD算法(SB-XGCD)在一个实施方案中计算模逆元的更安全的技术。各种实施方案基于以下理解,即用于从功率标记和定时标记导出私钥的许多技术依赖于对多个迭代的观察,例如,在观察下多次执行计算的设备。因此,各种实施方案在每次计算中利用随机元素作为模糊化参数,使得连续迭代之间的关系被模糊化。这使得更难以根据执行计算的设备的功率标记和定时标记来确定输入值。
下文描述了使用SB-XGCD的技术的实施方案(本文也称为“SB-XGCD技术”)。SB-XGCD技术从理解关系GCD(x,y)=GCD(x,y+r*x)=1开始。该表达式认识到“y+r*x”不应影响x和y的GCD计算(如果x<y)。因此,密码参数中的至少一个密码参数(在该情况下为“x”)可按所生成的随机数成比例地修改。这可被代入到裴蜀定理中,以定义在公式1中描述的应当满足的关系:
a*x+b*(y+r*x)=GCD(x,y)=1 (公式1)
“R”是随机数。
“a”和“b”是整数。
“x”和“y”是正整数,其中x<y,GCD(x,y)=GCD(x,y%x)=1。
在一些实施方案中,随机数r可以是具有12位前导零的32位字。可将12位零保存在存储器中以避免XGCD溢出。因此,在此类实施方案中,实际随机效应可为20位(32位减去12位)。当然,还可以设想其他字长。此外,还设想根据预期避免溢出条件的最大边界/承载来调节被保留为前导零的位的数量。
可执行二进制XGCD以确定满足公式1的a和b。在计算机上执行此计算时存在一些约束,其中之一是可能会发生溢出,导致a和b为负。可执行检查以确定是否发生了溢出。公式1被重新组织为公式2,如下所示:
(a+b*r)*x+b*y=1 (公式2)
可执行检查以确定是否b≥0。如果b<0,则将具有a和b值的公式2重新组织为公式3,如下所示:
(a+(b+m*y)*r)*x+(b+n*x)*y=1 (公式3)
其中“m”和“n”为最小正整数,使得b+m*y和b+n*x均为正。确定m和n是执行的迭代过程,直到n和m在与b相加时得到正整数。
执行进一步检查以确定是否(a+(b+m*y)*r)≥0。如果(a+(b+m*y)*r)<0,则公式3中的左表达式重新组织为公式4,如下所示:
(a+(b+m*y)*r+w*y)*x+(b+n*x)*y=1 (公式4)
其中“w”为最小正整数,使得a+(b+m*y)*r+w*y is>0。确定w也是执行的迭代过程,直到w在与a相加时得到正整数。
一旦满足约束,则公式4可被重新组织为模逆元公式5和6:
x-1%y=a+(b+m*y)*r+w*y (公式5)
y-1%x=b+n*x (公式6)
所述技术适用于依赖于GCD计算诸如欧几里得算法的任何计算。
将该技术应用到密码环境,对于CRT RSA(实现中国剩余定理的Rivest、Shamir、Adleman算法)而言,P和Q是私钥,并且dp、dq、P-1和Q-1是子密钥。用于确定那些密钥的模逆元公式可如下所示:
dP=e-1%(p-1)
dq=e-1%(p-1)
pinv=p-1%q
qinv=q-1%p
对于CRT RSA,通过非限制性示例的方式,由于芯片中的存储器限制,子密钥dP和dq以及pinv和qinv可不预先计算并保存在存储器中。仅存储密钥p和q,并且每次需要子密钥时,都基于p和q使用子密钥计算来对子密钥进行实时计算。因此,执行该计算的设备的定时标记和功率标记易于观察,并且密钥p和q(如果作为参数传递的话)易于被推断。
图1示出了利用上述SB-XGCD技术的实施方案的安全系统100。在一个实施方案中,安全系统100可以是安全密码协处理器,诸如可信平台模块(TPM)。安全系统100包括与数学引擎120、随机数生成器130、外围设备接口和存储器150(例如,闪存存储器)可操作地耦接的处理器110。在一个实施方案中,处理器110是RISC(精简指令集计算机)处理器,诸如处理器。
随机数生成器130可被配置为生成随机数(例如,真随机数、伪随机数等)。如本文所用,术语“随机数”可以是真随机数或伪随机数。作为非限制性示例,随机数生成器130可以是芯片上的非递归随机数生成器、线性反馈移位寄存器或随机数生成软件。如果被调用,则随机数生成器130向处理器110提供随机数。
数学引擎120可为处理器110的固件扩展模块或独立的专用微控制器。数学引擎120被配置为执行本文所述的SB-XGCD技术的实施方案。数学引擎120接受参数p、q和r作为SB-XGCD技术的函数调用的输入。数学引擎120将所执行的计算的结果返回至处理器110,该结果可包括子密钥或其他私钥。在一个实施方案中,可在处理器110和数学引擎120均可访问的共享存储器空间中提供结果。
外围设备接口140可使得安全系统100能够与使用密码密钥的任何数量的设备通信,包括图2所示的CRT RSA签名/验证113。
图2示出了根据本公开的实施方案的处理器110。处理器110被配置为与多种密码方案一起使用,包括数字签名方案中的一种或多种数字签名方案,诸如ECD(椭圆曲线数字签名)验证/签名111、CRT RSA验证/签名112、加密/解密方案AES CFB(高级加密标准密码反馈)、密码/反向密码113和CRT RSA加密/解密114。每种此类方案被识别为处理器110中的模块。在各种实施方案中,处理器110与数学引擎120结合可确定子密钥、签名、加密/解密结果等。填充数据115可包括将前导零添加至参数字(例如,随机数)。
处理器110可包括用于提供操作和可由数学引擎120访问的功能数据的共享存储器116。在一个实施方案中,处理器110为数学引擎120提供数据和操作的共享存储器116中的地址。处理器110可包括可由数学引擎120访问以用于向处理器110提供操作结果的另一共享存储器117。在一个实施方案中,数学引擎120向处理器110提供共享存储器117中的所请求的操作的结果的地址。
安全系统100的实施方案可在使用欧几里得算法以生成密钥例如密钥fob令牌(诸如RSA SecurID)的安全密码系统中、在自动柜员机中、在包括密钥、硬件锁、软件许可证等的金融交易中实现。在一个实施方案中,安全系统100可被实现以认证设备诸如打印机墨盒或移动设备的外围设备为真实的而非OEM((原始设备制造商)。
图3示出了根据本公开的实施方案的图1的安全系统100的操作的流程图。实施方案可包括生成用于加密和/或解密操作的密钥。一些实施方案还可包括验证由另一设备接收的签名,该签名可有助于验证在密钥生成期间数学引擎是否使用了模糊化参数。此类过程可在处理器110在操作302处接收到请求时开始。在一些实施方案中,请求可以是加密请求、解密请求和/或验证请求。处理器110在操作304处响应于该请求来确定操作,该操作可包括生成存储的私钥以确定所接收的公钥是否可信。作为待执行操作的一部分,处理器110在操作306处向数学引擎120提供功能数据和所请求的操作。由数学引擎120在操作308处接收的功能数据包括随机生成的数,其为单独生成的或者并入到随机数和密钥的乘积中。数学引擎120响应于功能数据而在操作310处生成所需的一个或多个私钥,并且在操作312处将所生成的一个或多个密钥提供给处理器110。使用如上所述的SB-XGCD来生成私钥并使用该私钥验证签名。由于操作数据包括随机生成的数据(例如,由随机数生成器生成的随机数),因此每当使用SB-XGCD生成私钥时,使用不同的随机数作为输入中的一者。在一些实施方案中,随机生成的数据可由数学引擎120而不是处理器110生成。
处理器110在操作314处接收所生成的密钥。对于包括签名验证的操作,处理器110可分析和解释外部检测到的签名以在操作316处响应于所生成的密钥来确定该签名是否正确/通过验证。检测到的签名可与可能已从先前操作检测到的存储的签名进行比较。响应于在操作318处对签名的解释,处理器110返回真或假。检测到的签名基本上不同这一事实可能指示随机变量已作为模糊化参数被插入到数学引擎120内的加密或解密操作中。
本领域的普通技术人员将会理解,结合图3描述的过程仅仅是本文所述技术的一个实施方式,并且可用于其他过程,其中观察设备的外部特性可显示关于设备性能的信息,包括但不限于其他密码过程。
图4A和图4B为功率波形400、450,其示出了响应于提供给数学引擎120的随机生成的参数的连续操作之间的功率波形变化。例如,功率波形400可由具有添加至操作的第一随机变量的第一操作生成,并且第二功率波形450可由具有添加至操作的第二随机变量的第二操作生成。因此,生成不同功率波形400、450所涉及的计算可以是不同的,尽管所得的密钥是相同的。在使输入模糊化之后,检测到的功率波形400,,、、450可基本上不同;因此,定时信息/功率信息不与密码参数直接相关。
本说明书中描述的许多功能单元可被示出、描述或标记为编程代码的模块、线程或其他分类,以便更具体地强调它们的实施独立性。模块可至少部分地以一种或另一种形式在硬件中实现。例如,模块可实现为硬件电路,该硬件电路包括定制的VLSI电路或门阵列、现有半导体诸如逻辑芯片、晶体管或其他分立部件。模块也可在可编程硬件设备诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等中实现。模块也可使用存储在物理存储设备(例如,计算机可读存储介质)上、存储器中或其组合中以由各种类型的处理器执行的软件或固件来实现。
可执行代码的所识别模块可例如包括计算机指令的一个或多个物理块或逻辑块,这些物理块或逻辑块可例如被组织为线程、对象、过程或功能。然而,所识别模块的可执行文件不需要物理地定位在一起,而是可包括存储在不同位置中的不同指令,这些指令在被逻辑地结合在一起时包括模块并实现模块的所述目的。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可分布在若干不同的代码段上、不同程序之间以及若干存储装置或存储器设备上。类似地,操作数据在本文中可在模块内被识别和示出,并且能够以任何合适的形式实施并在任何合适类型的数据结构内被组织。操作数据可作为单个数据集被收集,或者可分布在不同位置上,包括分布在不同存储设备上,并且可至少部分地仅作为系统或网络上的电子信号存在。在模块或模块的部分在软件中实现的情况下,软件部分存储在一个或多个物理设备上,这些物理设备在本文中被称为计算机可读介质。
在一些实施方案中,软件部分以非暂态状态存储,使得软件部分或其表示在同一物理位置持续一段时间。另外,在一些实施方案中,软件部分存储在一个或多个非暂态存储设备上,这些非暂态存储设备包括能够存储非暂态状态和/或表示软件部分的信号的硬件元件,尽管非暂态存储设备的其他部分可能能够改变和/或传输信号。非暂态存储设备的示例是闪存存储器和随机存取存储器(RAM)。非暂态存储设备的另一个示例包括只读存储器(ROM),该只读存储器可将表示软件部分的信号和/或状态存储一段时间。然而,存储信号和/或状态的能力不会因传输与所存储的信号和/或状态相同或表示所存储的信号和/或状态的信号的其他功能而减弱。例如,处理器可访问ROM以获得表示所存储的信号和/或状态的信号,以便执行对应的软件指令。
附加的非限制性实施方案包括:
实施方案1一种在第一设备和第二设备之间通信的方法,该方法包括:生成模糊化参数;使用一个或多个密码参数将模糊化参数从第一设备提供至第二设备;以及响应于利用一个或多个密码参数和模糊化参数作为输入的密码过程而接收第一结果。
实施方案2根据实施方案1所述的方法,其中生成模糊化参数包括生成随机数。
实施方案3根据实施方案2所述的方法,还包括按所生成的随机数成比例地修改密码参数中的至少一个密码参数。
实施方案4根据实施方案3所述的方法,还包括将至少一个密码参数乘以随机数。
实施方案5根据实施方案1至4中任一项所述的方法,还包括:生成第二模糊化参数;使用一个或多个密码参数将第二模糊化参数从第一设备提供至第二设备;以及响应于利用一个或多个密码参数和模糊化参数作为输入的密码过程而接收第二结果,其中第二结果与第一结果基本上相同。
实施方案6根据实施方案5所述的方法,其中生成第二模糊化参数包括生成第二随机数。
实施方案7根据实施方案5所述的方法,还包括:检测与第一密码过程相关联的第一签名;检测与第二密码过程相关联的第二签名;以及确定第一签名和第二签名基本上不同,尽管密码过程的第一结果和第二结果基本上相同。
实施方案8根据实施方案1至7中任一项所述的方法,其中密码过程包括加密。
实施方案9根据实施方案1至8中任一项所述的方法,其中密码过程包括解密。
实施方案10根据实施方案1至9中任一项所述的方法,其中密码过程包括解析密钥。
实施方案11根据实施方案1至11中任一项所述的方法,其中密码过程包括解析子密钥。
实施方案12一种用于执行密码过程的系统,该系统包括:第一处理器,其被配置为执行第一密码过程;和第二处理器,其耦接至第一处理器并且被配置为通过向第一处理器提供具有至少一些随机生成的元素的一个或多个密码参数来发起第一密码过程,随机生成的元素在执行第一密码过程时影响第一处理器的一个或多个外部可观察的特性。
实施方案13根据实施方案12所述的系统,其中一个或多个外部可观察的特性为以下中的至少一者:功率消耗、定时信息、磁场信息、热标记信息或它们的组合。
实施方案14根据实施方案12或实施方案13所述的系统,其中密码过程包括计算一个或多个密码参数中的两个密码参数的最大公约数。
实施方案15根据实施方案14所述的系统,其中密码过程是模逆元计算。
实施方案16根据实施方案15所述的系统,其中模逆元计算包括扩展欧几里得最大公约数(XGCD)技术。
实施方案17根据实施方案15所述的系统,其中XGCD技术包括安全二进制XGCD技术。
实施方案18根据实施方案12至17中任一项所述的系统,还包括随机数生成器。
实施方案19一种加密设备,包括:第一处理器,其被配置为响应于第一组密码参数而执行密码过程;和第二处理器,其被配置为通过提供不与第一组密码参数直接相关的第二组密码参数来在第一处理器处发起密码过程。
实施方案20根据实施方案19所述的密码设备,还包括随机数生成器。
实施方案21根据实施方案20所述的密码设备,其中第二处理器被配置为在每次计算中将第一组密码参数与来自随机数生成器的随机数组合为模糊化参数以生成第二组密码参数。
虽然本文关于某些图示实施方案描述了本发明,但本领域的普通技术人员将认识到并理解本发明不受此限制。相反,在不脱离下文所要求保护的本发明的范围及其法律等同形式的情况下,可对图示实施方案和所述实施方案进行许多添加、删除和修改。此外,来自一个实施方案的特性可与另一个实施方案的特性组合,同时仍被包括在发明人所设想的本发明的范围内。
Claims (20)
1.一种在第一设备和第二设备之间通信的方法,所述方法包括:
生成模糊化参数;
使用一个或多个密码参数将所述模糊化参数从所述第一设备提供至所述第二设备;以及
响应于包括模逆元计算的第一密码过程而接收第一结果。
2.根据权利要求1所述的方法,其中生成所述模糊化参数包括生成随机数。
3.根据权利要求2所述的方法,还包括按所生成的随机数成比例地修改所述密码参数中的至少一个密码参数。
4.根据权利要求3所述的方法,还包括将所述至少一个密码参数乘以所述随机数。
5.根据权利要求1所述的方法,还包括:
生成第二模糊化参数;
使用所述一个或多个密码参数将所述第二模糊化参数从所述第一设备提供至所述第二设备;以及
响应于利用所述一个或多个密码参数和所述第二模糊化参数作为输入的第二密码过程而接收第二结果,其中所述第二结果与所述第一结果相同。
6.根据权利要求5所述的方法,其中生成所述第二模糊化参数包括生成第二随机数。
7.根据权利要求5所述的方法,还包括:
检测与所述第一密码过程相关联的第一签名;
检测与所述第二密码过程相关联的第二签名;以及
确定所述第一签名和所述第二签名是不同的,尽管密码过程的所述第一结果和所述第二结果是相同的。
8.根据权利要求1所述的方法,其中所述密码过程包括加密。
9.根据权利要求1所述的方法,其中所述密码过程包括解密。
10.根据权利要求1所述的方法,其中所述密码过程包括解析密钥。
11.根据权利要求1所述的方法,其中所述密码过程包括解析子密钥。
12.一种用于执行密码过程的系统,所述系统包括:
第一处理器,所述第一处理器被配置为执行包括模逆元计算的第一密码过程;和
第二处理器,所述第二处理器耦接至所述第一处理器并且被配置为通过向所述第一处理器提供具有至少一些随机生成的元素的一个或多个密码参数来发起所述第一密码过程,所述随机生成的元素在执行所述第一密码过程时影响所述第一处理器的一个或多个外部可观察的特性。
13.根据权利要求12所述的系统,其中所述一个或多个外部可观察的特性为以下中的至少一者:功率消耗、定时信息、磁场信息、热标记信息或它们的组合。
14.根据权利要求12所述的系统,其中所述密码过程包括计算所述一个或多个密码参数中的两个密码参数的最大公约数。
15.根据权利要求12所述的系统,其中所述模逆元计算包括扩展欧几里得最大公约数XGCD技术。
16.根据权利要求15所述的系统,其中所述XGCD技术包括安全二进制XGCD技术。
17.根据权利要求12所述的系统,还包括随机数生成器。
18.一种密码设备,包括:
第一处理器,所述第一处理器被配置为响应于第一组密码参数而执行密码过程;和
第二处理器,所述第二处理器被配置为通过提供不与所述第一组密码参数直接相关的第二组密码参数来在所述第一处理器处发起所述密码过程;其中所述密码过程包括模逆元计算并且按所述第二组密码参数成比例修改所述第一组密码参数。
19.根据权利要求18所述的密码设备,还包括随机数生成器。
20.根据权利要求19所述的密码设备,其中所述第二处理器被配置为在每次计算中将所述第一组密码参数与来自所述随机数生成器的随机数组合为模糊化参数以生成所述第二组密码参数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762511734P | 2017-05-26 | 2017-05-26 | |
US62/511,734 | 2017-05-26 | ||
PCT/US2018/033138 WO2018217535A1 (en) | 2017-05-26 | 2018-05-17 | System, method, and apparatus for obfuscating device operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110710154A CN110710154A (zh) | 2020-01-17 |
CN110710154B true CN110710154B (zh) | 2024-04-19 |
Family
ID=62530538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880034464.0A Active CN110710154B (zh) | 2017-05-26 | 2018-05-17 | 用于使设备操作模糊化的系统、方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11444760B2 (zh) |
CN (1) | CN110710154B (zh) |
DE (1) | DE112018002723B4 (zh) |
TW (1) | TW201909593A (zh) |
WO (1) | WO2018217535A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7155173B2 (ja) * | 2017-10-18 | 2022-10-18 | クリプトグラフィ リサーチ, インコーポレイテッド | 外部監視攻撃からモジュラーインバージョン演算を保護すること |
EP3800951B1 (en) | 2019-10-02 | 2024-08-07 | Bayerische Motoren Werke Aktiengesellschaft | Method, computer program and wireless communication device |
US11936768B2 (en) | 2019-12-17 | 2024-03-19 | Microchip Technology Incorporated | Obfuscating cryptographic parameters used in elliptical curve cryptography, and related systems and devices |
WO2021173070A1 (en) * | 2020-02-26 | 2021-09-02 | Agency For Science, Technology And Research | Method of communication between functional blocks in a system-on-chip and system-on-chip thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016092097A1 (en) * | 2014-12-12 | 2016-06-16 | Koninklijke Philips N.V. | Electronic generation device |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346160B2 (en) * | 2003-04-23 | 2008-03-18 | Michaelsen David L | Randomization-based encryption apparatus and method |
GB0313666D0 (en) * | 2003-06-13 | 2003-07-16 | Hewlett Packard Development Co | RSA cryptographic method and system |
US8265267B2 (en) * | 2007-05-30 | 2012-09-11 | Panasonic Corporation | Information security device |
US8290151B2 (en) * | 2007-10-12 | 2012-10-16 | Infineon Technologies Ag | Device and method for determining an inverse of a value related to a modulus |
US7907724B2 (en) * | 2007-10-25 | 2011-03-15 | Infineon Technologies Ag | Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem |
FR2926651B1 (fr) * | 2008-01-23 | 2010-05-21 | Inside Contactless | Procede et dispositifs de contre-mesure pour cryptographie asymetrique |
EP2404403B1 (en) * | 2009-03-06 | 2019-12-04 | Intrinsic ID B.V. | System for establishing a cryptographic key depending on a physical system |
DE102010055699A1 (de) * | 2010-12-22 | 2012-06-28 | Giesecke & Devrient Gmbh | Kryptographisches Verfahren |
JP5848106B2 (ja) * | 2011-11-28 | 2016-01-27 | ルネサスエレクトロニクス株式会社 | 半導体装置及びicカード |
WO2014203339A1 (ja) | 2013-06-18 | 2014-12-24 | 株式会社日立製作所 | 保持数検証システム |
FR3015076B1 (fr) * | 2013-12-17 | 2016-02-05 | Oberthur Technologies | Generation de cles cryptographiques |
US9680647B2 (en) * | 2014-03-24 | 2017-06-13 | Infineon Technologies Ag | Method of using a token in cryptography |
US9813245B2 (en) * | 2014-08-29 | 2017-11-07 | Visa International Service Association | Methods for secure cryptogram generation |
SG10201502401XA (en) * | 2015-03-26 | 2016-10-28 | Huawei Internat Pte Ltd | Method of obfuscating data |
US10461925B2 (en) * | 2016-09-01 | 2019-10-29 | Cryptography Research, Inc. | Hardware masked substitution box for the data encryption standard |
-
2018
- 2018-05-17 DE DE112018002723.6T patent/DE112018002723B4/de active Active
- 2018-05-17 WO PCT/US2018/033138 patent/WO2018217535A1/en active Application Filing
- 2018-05-17 CN CN201880034464.0A patent/CN110710154B/zh active Active
- 2018-05-18 US US15/984,213 patent/US11444760B2/en active Active
- 2018-05-24 TW TW107117781A patent/TW201909593A/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016092097A1 (en) * | 2014-12-12 | 2016-06-16 | Koninklijke Philips N.V. | Electronic generation device |
Also Published As
Publication number | Publication date |
---|---|
TW201909593A (zh) | 2019-03-01 |
CN110710154A (zh) | 2020-01-17 |
WO2018217535A1 (en) | 2018-11-29 |
US20180343119A1 (en) | 2018-11-29 |
US11444760B2 (en) | 2022-09-13 |
DE112018002723B4 (de) | 2023-12-14 |
DE112018002723T5 (de) | 2020-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8472621B2 (en) | Protection of a prime number generation for an RSA algorithm | |
US10361854B2 (en) | Modular multiplication device and method | |
US10367637B2 (en) | Modular exponentiation with transparent side channel attack countermeasures | |
CN110710154B (zh) | 用于使设备操作模糊化的系统、方法和装置 | |
JP6366595B2 (ja) | 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム | |
US8509429B2 (en) | Protection of a prime number generation against side-channel attacks | |
US9680647B2 (en) | Method of using a token in cryptography | |
EP3596876B1 (en) | Elliptic curve point multiplication device and method for signing a message in a white-box context | |
US8976960B2 (en) | Methods and apparatus for correlation protected processing of cryptographic operations | |
US10348495B2 (en) | Configurable crypto hardware engine | |
US11824986B2 (en) | Device and method for protecting execution of a cryptographic operation | |
US8369519B2 (en) | Scrambling of a calculation performed according to an RSA-CRT algorithm | |
JP2011530093A (ja) | 累乗法による暗号化を保護する解決策 | |
US20220166614A1 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
US20160323097A1 (en) | Securing a cryptographic device | |
KR101665600B1 (ko) | Ecc 암호 알고리즘의 전력 충돌 공격 대응을 위한 장치 및 방법 | |
US11029922B2 (en) | Method for determining a modular inverse and associated cryptographic processing device | |
JP6262085B2 (ja) | データ処理装置及び復号処理方法 | |
US20210240861A1 (en) | Data processing device and method for processing secret data | |
EP2605444A1 (en) | Method for signing or deciphering a message using CRT RSA resisting Differential Side-Channel Analysis | |
US20220400005A1 (en) | Generating prime numbers | |
EP2620890A1 (en) | Method for detecting a fault injected in hardware registers of an electronic device |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |