CN111712816A - 使用密码蒙蔽以用于高效地使用蒙哥马利乘法 - Google Patents

使用密码蒙蔽以用于高效地使用蒙哥马利乘法 Download PDF

Info

Publication number
CN111712816A
CN111712816A CN201980012340.7A CN201980012340A CN111712816A CN 111712816 A CN111712816 A CN 111712816A CN 201980012340 A CN201980012340 A CN 201980012340A CN 111712816 A CN111712816 A CN 111712816A
Authority
CN
China
Prior art keywords
random value
mod
signature
montgomery
calculating
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.)
Granted
Application number
CN201980012340.7A
Other languages
English (en)
Other versions
CN111712816B (zh
Inventor
M·腾斯托尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cryptography Research Inc
Original Assignee
Cryptography Research Inc
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 Cryptography Research Inc filed Critical Cryptography Research Inc
Publication of CN111712816A publication Critical patent/CN111712816A/zh
Application granted granted Critical
Publication of CN111712816B publication Critical patent/CN111712816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/3247Cryptographic 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 involving digital signatures
    • H04L9/3249Cryptographic 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 involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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/12Details relating to cryptographic hardware or logic circuitry

Abstract

本公开的各方面涉及:接收输入消息,生成用于蒙蔽输入消息以防止边信道分析(SCA)攻击的第一随机值,使用第一随机值和用于计算所蒙蔽的输入消息的蒙哥马利形式的因子来计算第二随机值,而无需执行输入消息的蒙哥马利转换,以及使用蒙哥马利乘法来计算第一随机值和第二随机值的签名,其中签名可抵抗SCA攻击。

Description

使用密码蒙蔽以用于高效地使用蒙哥马利乘法
相关申请的交叉引用
本申请要求于2018年3月28日提交的美国临时申请No.62/649,478的优先权,其全部内容通过引用合并于此。
附图说明
从下面给出的详细描述和从本公开的各种实现的附图中,将可以更全面地理解本公开。
图1是根据一些实施例的处理设备的组件的框图。
图2示出了根据本公开的各方面的在公钥密码系统中为所蒙蔽的输入消息生成签名的传统机制与在公钥密码系统中为所蒙蔽的输入消息生成签名的改进机制之间的比较。
图3是根据本公开的一些实施例的用于在公钥密码系统中为所蒙蔽的输入消息生成签名而无需将输入消息显式地转换为蒙哥马利形式的方法的流程图。
图4示出了根据本公开的一些实施例的签名生成操作的细节。
图5示出了本公开的一些实施例可以在其中操作的示例计算机系统的框图。
具体实施方式
本公开的各方面涉及在密码算法中使用的模块化算术计算中使用边信道分析(SCA)对策。
执行密码操作的集成电路可能易受SCA攻击,其中在执行密码操作时未授权实体可能会获取秘密信息(例如,密码密钥)。边信道攻击的示例包括但不限于差分功率分析(DPA),在DPA中,当执行密码操作时,试图获取在密码操作中使用的秘密密钥的攻击者可以研究集成电路的功率分布(即,功耗模式)的差异。攻击者(即,未授权实体)可以通过分析一段时间内集成电路的功率分布测量来获取对密码操作的输入(例如,秘密密钥)。因此,当发送方通过经由密码操作对明文进行加密来将密文传输给接收方时,攻击者可以能够通过在执行密码操作以将纯文本加密为密文时观察集成电路的功率分布来取回用于将明文加密为密文的密钥。
在公开密钥密码系统中,处理设备可以具有用于对输入消息“m”进行密码操作的各种组件/模块。这样的密码操作的示例包括但不限于生成数字签名“S”以认证由公钥密码系统的第一节点传输的消息。“节点”可以包含能够在计算机网络被发送、接收和/或转发信息的在计算设备内的某个硬件组件,诸如中央处理单元(CPU)、集成电路(IC)、嵌入式电路等。可以使用模块化幂运算技术来生成数字签名。例如,当使用Rivest-Shamir-Adelman(RSA)算法作为公钥密码的基础(即,使用公钥组件和私钥组件两者对输入消息“m”进行加密)时,签名“S”以等式S=md mod n的形式进行计算,其中“n”是公共模数,并且“d”是私有指数。涉及快速模块化乘法的常用模块化幂运算技术被称为蒙哥马利乘法。蒙哥马利乘法需要将输入消息转换为适合于蒙哥马利乘法的形式,被称为蒙哥马利形式。为了使用蒙哥马利乘法来生成签名,应当将输入消息“m”转换为蒙哥马利形式。通常,为了经由蒙哥马利乘法将两个值“a”和“b”相乘,首先将“a”和“b”转换为蒙哥马利形式,即,将“a”转换为aRmod n,将“b”转换为bR mod n,以便产生双倍宽度乘积abR2 mod n,然后对其进行蒙哥马利还原以产生abR mod n,这是蒙哥马利乘法的期望结果。这种转换(有时也被称为变换)(是蒙哥马利乘法的先决条件)和随后的减少(也是蒙哥马利乘法的一部分)需要在集成电路中投入附加的计算资源。例如,在蒙哥马利乘法期间可能需要附加的片上存储来存储转换后的值。
本公开的各方面通过避免将输入消息显式转换为蒙哥马利形式来解决上述问题。相反,用于蒙蔽(即,屏蔽)输入消息“m”的第一随机值“r”用于生成RSA签名。
RSA签名采用以下形式:S=(rem)d-1(re-lm)mod n,其中“e”是公共指数,并且“d”是私有指数。随机值“r”的位长等于或小于公共模数“n”。此处公开的技术通过在抗边信道攻击的密码计算中并入模块化减少来避免在蒙哥马利乘法中显式使用蒙哥马利形式,从而减少了功能调用的次数。在公钥引擎(PKE)中将输入消息隐式变换为蒙哥马利形式。
本文中公开的技术的优点包括高效地使用已经可用于消息蒙蔽的计算资源来完成蒙哥马利乘法,而无需显式转换为蒙哥马利形式。所公开的方法的另一优点包括防止在公钥密码系统的任何节点内部以及在系统的两个节点之间的通信期间发生消息值泄漏。
图1示出了根据本公开的一些方面的具有公钥引擎(PKE)和其他组件的示例处理设备100。PKE是一种自包含的密码模块,其被设计为集成到被配置为在公钥密码系统中执行密码算法的集成电路中。在各种实施例中,PKE可以被实现为嵌入式硬件模块、纯粹基于软件的引擎、或硬件和软件组件的组合。处理设备100可以包括内部存储器(未示出)以及用于密码操作的各种组件/模块110-160。这种密码操作的示例包括但不限于生成数字签名以验证消息“m”。处理设备100可以在公钥密码系统的第一节点处。
如图1中所示,除其他之外,处理设备100可以包括输入消息接收组件110、随机数生成器组件120、输入消息蒙蔽组件130、模块化算术单元140、公钥引擎150和蒙蔽消息传输组件160。在备选实施例中,一个或多个模块的功能可以被组合或划分。例如,模块化算术单元140可以与输入消息蒙蔽组件130和公钥引擎150中的一者或两者组合。组件130、140和150中的至少一些组件的功能可以由处理逻辑来实现或在处理逻辑中实现,该处理逻辑包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、集成电路、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)或其组合。
输入消息接收组件110可以接收输入消息“m”,该输入消息“m”意在被传输到公钥密码系统内的另一节点。由随机数生成器组件120生成的随机数可以被添加到输入消息“m”,以掩盖或“蒙蔽”输入消息以防止可能的SCA攻击。蒙蔽可以涉及对输入消息“m”的份额(share)执行XOR运算,然后传输份额。蒙蔽操作可以在输入消息蒙蔽组件130中执行。模块化算术单元140可以基于第一随机数“r”和用于蒙哥马利乘法的因子“R”来计算第二随机数“h”,其中h=r R2 mod n。公钥引擎150执行一系列操作以最终产生期望形式的签名“S”:S=(rem)d-l(re-lm)mod n。蒙蔽消息传输组件160传输包含蒙蔽消息的签名“S”。
图2示出了根据本公开的各方面的在公钥密码系统中为所蒙蔽的输入消息生成签名的传统机制与在公钥密码系统中为所蒙蔽的输入消息生成签名的改进机制之间的比较。图200中所示的常规机制使用到蒙哥马利形式的显式转换(变换),其中图245所示的改进机制使用到蒙哥马利形式的隐式转换(变换)。在常规机制中,在框210处执行输入消息蒙蔽,并且在接收框210的输出的单独且不同的框220中执行到蒙哥马利形式的变换。例如,框210的输出可以是蒙蔽消息(m.r),该蒙蔽消息是框220的输入。在框220中,输入消息“m”被变换为蒙哥马利形式。在框230处,进行变换后求幂(利用私有指数“d”)以产生签名。一旦签名被传输到公钥密码系统的第二节点,第二节点处的解码设备处的框240去除蒙蔽和蒙哥马利形式以解密基础输入消息“m”。
与传统机制相反,当前公开的机制将框210和220的功能组合为单个框250,如图245中所示。代替显式地使用输入消息“m”到蒙哥马利形式的转换,框250可以执行诸如图4中所描述的操作等操作以生成期望形式的签名“S”,即,S=(rem)d-l(re-lm)mod n,其中“e”是a公共指数,并且“d”是私有指数。存储在框250内的抗SCA软件库(SL)(例如,DPASL(抗差分功率分析软件库))可以具有包含随机值“r”的代码。一系列蒙哥马利乘法(例如,如图4中所描述的)发生在框250中的PKE中。图245的功能框260和270在功能上等同于它们在诸如图200中所示的常规机制中的对应功能框230和240。
图3是用于在公钥密码系统内的第一节点与第二节点之间执行抗SCA消息传输的示例方法300的流程图。方法300可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法300可以由图1中所示的处理设备100的组件执行。
再次参考图3,方法300在框310处开始,在框310处,在处理设备处,例如在图1中所示的输入消息接收组件110处,接收输入消息“m”。输入消息以多个份额的形式被接收以用于进一步的密码操作。
在框320处,生成第一随机值。第一随机值“r”的目的是蒙蔽输入消息“m”以防止SCA攻击。随机值可以由随机数生成器组件120生成。在一个实施例中,随机值可以存储在处理设备100内的内部存储器(图1中未示出)内。消息蒙蔽可以由图1中所示的输入消息蒙蔽组件130执行。
在框330处,计算第二随机值“h”。这可以由图1中的模块化算术单元140执行。第二随机值可以使用第一随机值“r”和用于创建所蒙蔽的输入消息的蒙哥马利形式的因子“R”来计算,而无需执行输入消息“m”的显式蒙哥马利转换。根据一些实施例,图4提供了该操作的更多细节。
在框340处,通过使用第一随机值“r”和第二随机值“h”执行多个蒙哥马利乘法来计算签名“S”。如下面参考图4更详细地描述的,生成多个中间值以便最终得出签名值“S”。这些操作可以在公钥引擎150内进行。注意,在公钥引擎150内执行的操作序列期间,每个中间值或中间值的任何组合都不会揭示基础秘密消息。因此,不会发生直接值泄漏。另外,由于输入消息被蒙蔽,并且蒙蔽值(即,第一随机数“r”)不断变化,因此在公钥系统的第一节点与第二节点之间的通信期间的信息泄漏的可能性也被最小化或完全避免。
图4示出了根据本公开的一些实现的用于最终生成签名“S”的中间操作。这些操作主要在流程图300的框330和340中进行。如上所述,第二随机值“h”采用以下形式:h=r R2mod n,其中“r”是用于蒙蔽输入消息“m”的第一随机值。注意,因子R表示为R=2bx mod n,其中“b”是位长,并且“x”是用于形成“n”的位长为“b”的字数。下一操作是通过将“h”乘以1来计算第一中间值“v”,其中v=r R mod n。接下来,使用蒙哥马利乘法来计算第二中间值“k”,其中k=re-l R mod n,其中“e”是公共指数。接下来,使用蒙哥马利乘法来计算第三中间值“j”,其中j=re-lm mod n。接下来,使用蒙哥马利乘法来计算第四中间值“p”,其中p=re m R mod n。接下来,将第三中间值“j”蒙哥马利乘以第四中间值“p”产生签名“S”,其中S=pd-l j mod n,其中d是私有指数。这种形式的S等同于签名期望形式的“S”,即S=(rem)d-l(re-lm)mod n。
本领域技术人员将理解,尽管图3中的流程图示出了特定序列或顺序,但是除非另有说明,否则可以修改过程的顺序。因此,所示出的实施例应当仅被理解为示例,并且所示出的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各种实施例中可以省略一个或多个过程。因此,并非在每个实施例中都需要所有过程。其他处理流程也是可能的。
图5示出了计算机系统500的示例机器,在该计算机系统500中可以执行用于引起该机器执行本文中讨论的方法中的任何一个或多个的一组指令。在替代实现中,该机器可以连接(例如,联网)到LAN、内联网、外联网和/或互联网中的其他机器。该机器可以在客户端服务器网络环境中以服务器或客户端机器的身份运行,可以在对等(或分布式)网络环境中作为对等机器运行,也可以在云计算基础架构或环境中作为服务器或客户端机器运行。
该机器可以是个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、或能够执行指定要由该机器执行的操作的一组指令(顺序指令或其他指令)的任何机器。此外,虽然示出了单个机器,但是术语“机器”也应当被理解为包括机器的任何集合,这些机器单独地或共同地执行一组(或多组)指令以执行本文中讨论的方法中的任何一个或多个。
示例计算机系统500包括处理设备502、主存储器504(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM等))、静态存储器506(例如,闪存、静态随机存取存储器(SRAM)等)、和数据存储设备518,它们经由总线530彼此通信。在一个实现中,处理设备502可以是图1中的处理设备100。
处理设备502表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集组合的处理器。处理设备502还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备502被配置为执行指令526以用于执行本文中讨论的操作和步骤。
计算机系统500还可以包括网络接口设备508以通过网络520进行通信。计算机系统500还可以包括视频显示单元510(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备512(例如,键盘)、光标控制设备514(例如,鼠标)、图形处理单元522、信号生成设备516(例如,扬声器)、图形处理单元522、视频处理单元528和音频处理单元532。
数据存储设备518可以包括机器可读存储介质524(也被称为计算机可读介质),该机器可读存储介质524上存储有体现本文中描述的方法或功能中的任何一个或多个的一组或多组指令或软件526。在计算机系统500执行指令期间,指令526也可以全部或至少部分驻留在主存储器504内和/或在处理设备502内,主存储器504和处理设备502也构成机器可读存储介质。
在一种实现中,指令526包括用于实现与图245所示的操作框250和260相对应的功能的指令。尽管在示例实现中将机器可读存储介质524示出为单个介质,但是术语“机器可读存储介质”应当被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”也应当被认为包括能够存储或编码一组指令以供机器执行并且引起机器执行本公开的方法中的任何一个或多个的任何介质。因此,术语“机器可读存储介质”应当被认为包括但不限于固态存储器、光学介质和磁性介质。
已经根据对计算机存储器内的数据位的操作的算法和符号表示而呈现了在前的详细描述的某些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地向本领域的其他技术人员传达其工作实质的方法。算法在这里通常被认为是导致期望结果的操作的自相容序列。这些操作是需要对物理量进行物理操纵的步骤。通常,尽管不是必须的,这些量采取能够被存储、组合、比较和以其他方式操纵的电或磁信号的形式。主要出于通用目的,已经证明有时将这些信号被称为位、值、元素、符号、字符、项、数字等是方便的。
然而,应当牢记,所有这些和类似术语均应当与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从上述讨论中另外明确指出,否则应当理解,在整个描述中,利用诸如“接收”或“生成”或“执行(executing)”或“执行(performing)”或“计算”或“创建”或“传输”等术语的讨论是指计算机系统或类似电子计算设备的动作和过程,这些动作和过程将表示为计算机系统的寄存器和存储器中的物理(电子)量的数据操纵和转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储设备中的物理量的其他数据。
本公开还涉及用于执行本文中的操作的装置。该装置可以被特殊构造用于预期目的,或者可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的盘,包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或适合于存储电子指令的任何类型的介质,上述每个耦合到计算机系统总线。
本文中提出的算法和显示与任何特定的计算机或其他设备不固有地相关。各种通用系统可以与根据本文中的教导的程序一起使用,或者可以证明构造更专用的装置以执行方法是方便的。各种这些系统的结构将在下面的描述中给出。另外,没有参考任何特定的编程语言来描述本公开。应当理解,可以使用各种编程语言来实现如本文中描述的本公开的教导。
本公开可以被提供作为计算机程序产品或软件,该计算机程序产品或软件可以包括其上存储有指令的机器可读介质,该指令可以用于将计算机系统(或其他电子设备)编程为执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪存设备等。
在前述说明书中,已经参考本公开的具体示例实现描述了本公开的实现。很清楚的是,在不脱离如所附权利要求书中阐述的本公开的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应当被认为是说明性而不是限制性的。

Claims (20)

1.一种计算机实现的方法,包括:
在执行密码算法的处理器处接收输入消息;
由所述处理器生成用于蒙蔽所述输入消息以防止边信道分析(SCA)攻击的第一随机值;
由所述处理器使用所述第一随机值和用于创建所蒙蔽的所述输入消息的蒙哥马利形式的因子来计算第二随机值,而无需执行所述输入消息的蒙哥马利转换;以及
由所述处理器通过使用所述第一随机值和所述第二随机值执行蒙哥马利乘法来计算签名,其中所述签名是针对所述SCA攻击的对策。
2.根据权利要求1所述的方法,其中计算所述第二随机值包括:
引起所述第二随机值采用以下形式:
h=r R2 mod n,
其中“r”是用于蒙蔽所述输入消息的所述第一随机值,
“n”是公共模数,并且
“R”是用于创建所述蒙哥马利形式的所述因子,其中
R=2bx mod n,
其中“b”是位长,并且“x”是用于形成“n”的位长“b”的字数。
3.根据权利要求2所述的方法,其中计算所述签名包括:
通过将“h”乘以1来计算第一中间值“v”,其中v=r R mod n;
使用蒙哥马利乘法来计算第二中间值“k”,其中k=re-1 R mod n,其中“e”是公共指数,“m”是输入消息;
使用蒙哥马利乘法来计算第三中间值“j”,其中j=re-1 m mod n;以及
使用蒙哥马利乘法来计算第四中间值“p”,其中p=re m R mod n。
4.根据权利要求3所述的方法,其中计算所述签名还包括:
将所述第三中间值“j”蒙哥马利乘以所述第四中间值“p”以产生所述签名“S”,其中S=pd-1 j mod n,其中“d”是私有指数。
5.根据权利要求4所述的方法,其中表示所述签名“S”的等式采用以下形式:
S=(rem)d-1(re-1m)mod n。
6.根据权利要求1所述的方法,其中所述第一随机值“r”的位长等于或小于所述公共模数“n”。
7.根据权利要求1所述的方法,其中所述签名与公钥密码术兼容。
8.根据权利要求7所述的方法,其中所述方法还包括:
在公钥密码系统内将所述签名从第一节点传输到第二节点,其中所述第二节点能够解密所蒙蔽的所述输入消息。
9.根据权利要求1所述的方法,其中所述SCA攻击包括差分功率分析(DPA)攻击。
10.根据权利要求9所述的方法,其中所述方法还包括:提供抗DPA软件库,所述抗DPA软件库包括包含所述第一随机值“r”的代码。
11.根据权利要求1所述的方法,其中所述蒙哥马利乘法是在公钥引擎(PKE)中执行的。
12.一种公钥密码系统,包括:
外部存储器;以及
处理器,执行密码算法并且与所述外部存储器操作地耦合,用于:
接收输入消息;
生成用于蒙蔽所述输入消息以防止边信道分析(SCA)攻击的第一随机值;
使用所述第一随机值和用于创建所蒙蔽的所述输入消息的蒙哥马利形式的因子来计算第二随机值,而无需执行所述输入消息的蒙哥马利转换;以及
通过使用所述第一随机值和所述第二随机值执行蒙哥马利乘法来计算签名,其中所述签名是针对所述SCA攻击的对策。
13.根据权利要求12所述的系统,其中所述处理器还用于:
引起所述第二随机值采用以下形式:
h=r R2 mod n,
其中“r”是用于蒙蔽所述输入消息的所述第一随机值,
“n”是公共模数,并且
“R”是用于创建所述蒙哥马利形式的所述因子,其中
R=2bx mod n,
其中“b”是位长,并且“x”是用于形成“n”的位长“b”的字数。
14.根据权利要求13所述的系统,其中所述处理器还用于:
通过将“h”乘以1来计算第一中间值“v”,其中v=r R mod n;
使用蒙哥马利乘法来计算第二中间值“k”,其中k=re-1 R mod n,其中“e”是公共指数,并且“m”是输入消息;
使用蒙哥马利乘法来计算第三中间值“j”,其中j=re-1 m mod n;以及
使用蒙哥马利乘法来计算第四中间值“p”,其中p=re m R mod n。
15.根据权利要求14所述的系统,其中所述处理器还用于:
将所述第三中间值“j”蒙哥马利乘以所述第四中间值“p”,以产生所述签名“S”,其中S=pd-1 j mod n,其中“d”是私有指数。
16.根据权利要求15所述的系统,其中表示所述签名“S”的等式采用以下形式:
S=(rem)d-1(re-1m)mod n。
17.根据权利要求12所述的系统,其中所述第一随机值“r”的位长等于或小于所述公共模数“n”。
18.根据权利要求12所述的系统,其中所述签名与公钥密码术兼容。
19.根据权利要求17所述的系统,其中所述处理器还用于:
在所述公钥密码系统内将所述签名从第一节点传输到第二节点,其中所述第二节点能够解密所蒙蔽的所述输入消息。
20.根据权利要求11所述的系统,其中所述SCA攻击包括差分功率分析(DPA)攻击。
CN201980012340.7A 2018-03-28 2019-03-26 使用密码蒙蔽以用于高效地使用蒙哥马利乘法 Active CN111712816B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862649478P 2018-03-28 2018-03-28
US62/649,478 2018-03-28
PCT/US2019/023997 WO2019191040A1 (en) 2018-03-28 2019-03-26 Using cryptographic blinding for efficient use of montgomery multiplication

Publications (2)

Publication Number Publication Date
CN111712816A true CN111712816A (zh) 2020-09-25
CN111712816B CN111712816B (zh) 2024-05-03

Family

ID=68060759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980012340.7A Active CN111712816B (zh) 2018-03-28 2019-03-26 使用密码蒙蔽以用于高效地使用蒙哥马利乘法

Country Status (4)

Country Link
US (2) US11522669B2 (zh)
EP (1) EP3776305A4 (zh)
CN (1) CN111712816B (zh)
WO (1) WO2019191040A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023141934A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations
US11954487B2 (en) 2022-01-28 2024-04-09 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11985221B2 (en) 2022-03-29 2024-05-14 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023141935A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Techniques, devices, and instruction set architecture for balanced and secure ladder computations

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048008A2 (en) * 2003-11-16 2005-05-26 M-Systems Flash Disk Pioneers Ltd. Enhanced natural montgomery exponent masking
CN1985458A (zh) * 2003-11-16 2007-06-20 M系统闪存先锋有限公司 增强的自然蒙哥马利指数掩蔽
US20110216900A1 (en) * 2010-03-08 2011-09-08 Samsung Electronics Co., Ltd. Methods of encryption and decryption and encryption systems using the same
KR101513012B1 (ko) * 2013-12-19 2015-04-17 호서대학교 산학협력단 오류 주입과 전력 분석을 조합한 공격에 강인한 멱승 방법
US20160277179A1 (en) * 2015-03-20 2016-09-22 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
EP3276880A1 (en) * 2016-07-28 2018-01-31 Gemalto Sa Efficient ecdsa signature and verification

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2726666B1 (fr) * 1994-11-08 1997-01-17 Sgs Thomson Microelectronics Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operations modulaires selon la methode de montgomery
JP3525209B2 (ja) * 1996-04-05 2004-05-10 株式会社 沖マイクロデザイン べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法
US7027597B1 (en) * 2001-09-18 2006-04-11 Cisco Technologies, Inc. Pre-computation and dual-pass modular arithmetic operation approach to implement encryption protocols efficiently in electronic integrated circuits
GB2403308B (en) * 2003-06-26 2006-06-21 Sharp Kk Side channel attack prevention in data processing apparatus
JP4351987B2 (ja) 2004-11-19 2009-10-28 株式会社東芝 モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
US20060140399A1 (en) * 2004-12-28 2006-06-29 Young David W Pre-calculation mechanism for signature decryption
JP4662802B2 (ja) * 2005-03-30 2011-03-30 富士通株式会社 計算方法、計算装置及びコンピュータプログラム
CA2542556C (en) * 2005-06-03 2014-09-16 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
FR2895609A1 (fr) 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
EP2015171A1 (fr) * 2007-06-29 2009-01-14 Gemplus Procédé cryptographique comprenant une exponentiation modulaire sécurisée contre les attaques à canaux cachés sans la connaissance de l'exposant public, cryptoprocesseur pour la mise en oeuvre du procédé et carte à puce associée
DE102011117236A1 (de) * 2011-10-28 2013-05-02 Giesecke & Devrient Gmbh Effiziente Primzahlprüfung
ITMI20111992A1 (it) * 2011-11-03 2013-05-04 St Microelectronics Srl Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari
US10333696B2 (en) * 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
EP3242202A1 (en) * 2016-05-04 2017-11-08 Gemalto Sa Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms
EP3503459B1 (en) * 2017-12-22 2021-04-21 Secure-IC SAS Device and method for protecting execution of a cryptographic operation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048008A2 (en) * 2003-11-16 2005-05-26 M-Systems Flash Disk Pioneers Ltd. Enhanced natural montgomery exponent masking
CN1985458A (zh) * 2003-11-16 2007-06-20 M系统闪存先锋有限公司 增强的自然蒙哥马利指数掩蔽
US20110216900A1 (en) * 2010-03-08 2011-09-08 Samsung Electronics Co., Ltd. Methods of encryption and decryption and encryption systems using the same
KR101513012B1 (ko) * 2013-12-19 2015-04-17 호서대학교 산학협력단 오류 주입과 전력 분석을 조합한 공격에 강인한 멱승 방법
US20160277179A1 (en) * 2015-03-20 2016-09-22 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
EP3276880A1 (en) * 2016-07-28 2018-01-31 Gemalto Sa Efficient ecdsa signature and verification

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023141934A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations
US11954487B2 (en) 2022-01-28 2024-04-09 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11985221B2 (en) 2022-03-29 2024-05-14 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations

Also Published As

Publication number Publication date
WO2019191040A1 (en) 2019-10-03
US20210083840A1 (en) 2021-03-18
US20230179395A1 (en) 2023-06-08
US11863657B2 (en) 2024-01-02
US11522669B2 (en) 2022-12-06
EP3776305A1 (en) 2021-02-17
EP3776305A4 (en) 2022-01-12
CN111712816B (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
US11620109B2 (en) Converting a boolean masked value to an arithmetically masked value for cryptographic operations
EP3566385B1 (en) Homomorphic white box system and method for using same
US20230379133A1 (en) Multiplicative masking for cryptographic operations
US11863657B2 (en) Using cryptographic blinding for efficient use of montgomery multiplication
US11822704B2 (en) Constant time secure arithmetic-to-Boolean mask conversion
US11902432B2 (en) System and method to optimize generation of coprime numbers in cryptographic applications
US20090323958A1 (en) Extending a secret bit string to safeguard the secret
US11728965B2 (en) Strong fully homomorphic white-box and method for using same
Kumari et al. Preserving health care data security and privacy using Carmichael's theorem-based homomorphic encryption and modified enhanced homomorphic encryption schemes in edge computing systems
US20220085999A1 (en) System and method to optimize decryption operations in cryptographic applications
US11418334B2 (en) Protecting modular inversion operation from external monitoring attacks
US9590805B1 (en) Ladder-based cryptographic techniques using pre-computed points
US10333699B1 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
US20220085998A1 (en) System and method to generate prime numbers in cryptographic applications
Wood et al. Constructing large S-boxes with area minimized implementations
US20230134216A1 (en) White-box processing for encoding with large integer values
WO2024086243A1 (en) Protection of polynomial cryptographic operations against side-channel attacks with change-of-variable transformations
WO2021162931A1 (en) Strong fully homomorphic white-box and method for using same
Dola et al. ENCRYPTION AND DECRYPTION OF A SIGNAL USING FULLY HOMOMORPHIC ALGORITHM

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