CN112955864A - 恒定时间的安全的算术到布尔掩码转换 - Google Patents

恒定时间的安全的算术到布尔掩码转换 Download PDF

Info

Publication number
CN112955864A
CN112955864A CN201980071262.8A CN201980071262A CN112955864A CN 112955864 A CN112955864 A CN 112955864A CN 201980071262 A CN201980071262 A CN 201980071262A CN 112955864 A CN112955864 A CN 112955864A
Authority
CN
China
Prior art keywords
value
operations
boolean
sequence
arithmetic
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
CN201980071262.8A
Other languages
English (en)
Other versions
CN112955864B (zh
Inventor
M·赫特
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 CN112955864A publication Critical patent/CN112955864A/zh
Application granted granted Critical
Publication of CN112955864B publication Critical patent/CN112955864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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; CALCULATING OR 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
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F21/755Protecting 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 with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)

Abstract

经初始算术掩码的密码值的第一算术输入份额和第二算术输入份额被接收。使用算术输入份额和随机生成数字的运算的序列被执行,其中运算的序列中的当前运算生成对应中间值,该对应中间值在后续运算中被使用。在运算的序列的末端处,第一布尔输出份额和第二布尔输出份额被生成。算术到布尔掩码转换独立于输入位长度。

Description

恒定时间的安全的算术到布尔掩码转换
附图说明
本公开将从下面给出的详细描述以及本公开的各种实施方式的附图来更加完整地理解。
图1图示了根据一些实施例的使用掩码值转换组件以用于密码操作的示例设备。
图2是根据一些实施例的掩码值转换组件的框图,掩码值转换组件用于分别提供从布尔掩码值到算术掩码值的转换、以及从算术掩码值到布尔掩码值的转换,以用于密码操作。
图3是根据本公开的一些实施例的示例方法的流程图,示例方法用于执行算术掩码值到布尔掩码值的转换,以用于密码操作。
图4图示了根据本公开的一些实施例的运算的系列,用于以加法方式执行算术掩码值到布尔掩码值的转换,以用于密码操作。
图5图示了根据本公开的一些实施例的运算的另一系列,用于以减法方式执行算术掩码值到布尔掩码值的转换,以用于密码操作。
图6图示了在其中本公开的一些实施例可以操作的计算机系统的实施例的框图。
具体实施方式
本公开的各方面针对将算术掩码值(也被称为初始密码值)安全地转换为布尔掩码值(也被称为经修改的密码值)以用于密码操作。集成电路可以执行密码操作,该密码操作可能导致集成电路容易受到边信道攻击,在边信道攻击中,攻击者(例如,未授权实体)在密码操作被执行时可以获得信息。边信道攻击的示例包括但不限于差分功率分析(DPA),在差分功率分析(DPA)中,试图获得密码操作中使用的秘密密钥的攻击者在密码操作被执行时,可以研究功率资料(power profile)中的差异(即,功率消耗模式)。攻击者可以是未授权实体,其可以通过分析集成电路在一段时间内的功率谱测量结果,来获得对密码操作的输入(例如,秘密密钥)。因此,当发送方通过经由密码操作对明文进行加密,来将密文传送给接收方时,在密码操作被执行以将明文加密为密文时,攻击者可以能够通过观察集成电路的功率资料,来取回秘密密钥,秘密密钥被用于将明文加密为密文。例如,在密码操作由集成电路执行时,攻击者可以发现被用来加密明文的密码(例如,秘密或私有)密钥。
掩码处理可以被使用,以利用随机数据来模糊或隐藏对密码操作的输入,然后密码操作可以利用经掩码的输入来被执行。当集成电路的攻击者在执行密码操作时观察集成电路的功率资料时,这种掩码处理可以使得密码操作的中间状态或值与随机数据不可区分(即,通过掩码而“蒙蔽”)。例如,在密码操作将明文编码为密文之前,明文可以经受利用随机数的布尔运算(诸如,异或(XOR)运算),该随机数表示掩码。备选地,在密码操作将明文编码为密文之前,明文可以经受利用数字的算术运算(诸如加法运算),该数字表示掩码。作为示例,对于输入x,与输入x相对应的布尔掩码值可以是表示
Figure BDA0003042574550000021
的x’,其中r是表示掩码的值。另一方面,对于输入x,算术掩码值x”可以表示(x+r),其中r是表示掩码的值。
在利用掩码值执行密码操作期间,某些密码操作可以使用布尔运算(例如XOR、AND、OR等)和算术运算(例如加法、减法等)两者。密码操作可以基于算术掩码值来执行第一运算(或第一组运算),并且后续可以基于布尔掩码值来执行第二运算(或第二组运算)。因此,为了执行布尔运算,算术掩码值可能需要被转换为布尔掩码值。算术掩码值到布尔掩码值之间的转换(“A2B”掩码转换)可能需要是安全的,以便转换不会导致某种DPA泄漏(例如,攻击者从集成电路的功率资料中的可观察差异标识信息)。DPA泄漏可以导致攻击者在执行A2B掩码转换时,能够获得密码操作中使用的秘密密钥(或依赖于秘密密钥的数据)。
存在许多将布尔掩码转换为算术掩码的解决方案,但存在相对较少的将算术掩码转换为布尔掩码的解决方案。具体地,存在一种用于以恒定时间运行的布尔到算术(B2A)掩码转换的方法,即,该方法需要固定数目的指令,因此该方法独立于输入位大小。但是,基于递归方法的现有算术到布尔(A2B)掩码转换途径取决于输入位大小。如此,A2B掩码转换的效率和安全性不独立于输入字的位长度。
本公开的各方面通过提供安全的A2B掩码转换方法,来解决上述和其他缺陷,该A2B掩码转换方法以恒定时间运行,并且独立于如下处理设备的输入位大小,该处理设备处理用于A2B掩码转换的固定数目的指令。该转换可以被执行并且可以在集成电路中被实现,以防止DPA泄漏,DPA泄漏允许攻击者取回对密码操作的与秘密密钥有关的输入(例如,未经掩码的值)。此外,转换可以利用较少数目的运算而被执行。因此,在算术掩码值要被转换为布尔掩码值时,本公开的各方面向执行密码操作的集成电路提供了附加的安全性,以及在密码操作的性能上的增加的效率(例如,较少的计算时间)。
术语“安全”掩码转换在这里涵盖相对于单变量攻击和多变量攻击的安全操作。利用功率资料中的单个采样点的攻击被称为单变量攻击。另一方面,例如通过将两个以上的采样点相加或相乘在一起而组合两个以上的采样点的攻击被称为多变量攻击。
如本领域技术人员将理解的,在较低阶的统计矩不泄漏信息的“安全”操作在较高阶的统计矩被攻击时可能变得不安全,即脆弱。本文公开的A2B掩码转换方法被证明,至少相对于单变量一阶统计矩攻击是安全的。该方法还可以被扩展以用于多变量和/或较高阶的安全实现。本领域技术人员应当理解,许多实践实例要求以仅较低阶(例如,一阶)的安全性,因为由于噪声水平增加,对较高阶统计矩的采用对于攻击者来说是困难的。
本文公开的方法的附加优点是该方法不要求“预先计算”,并且因此不要求附加存储器来存储预先计算的中间值。该特征使所公开的方法与现有的基于“查找表”的方法不同。该方法可以按软件或硬件和软件的组合来被实现。本领域技术人员应当理解,在理想的计算机上实现本文描述的算法确保了解决方案是防泄漏的,即,解决方案的每个中间值在统计上独立于秘密(未经掩码的)数据。当在真实计算机上被实现时,信息泄漏的可能性理论上会增加。如此,计算机中可能需要附加硬件来应对泄漏。
所公开的方法还按更少的计算步骤或运算来实现A2B转换。下表将本公开与当前现有的A2B转换方法进行了比较,其中列3至列6中的数字表示针对某些输入位长度,A2B转换所要求的运算的数目。
表1
Figure BDA0003042574550000041
如上面可以看到,本公开的方法以比现有方法更少的计算运算,来实现A2B转换。因此,本公开的方法本质上更高效。
图1图示了根据本公开的一些方面的包括掩码值转换组件的示例设备。设备100可以包括集成电路,该集成电路与掩码值转换组件111、存储器112和密码组件113相关联。集成电路的掩码值转换组件111可以接收算术掩码输入值,并且可以将算术掩码输入值转换为布尔掩码输入值,以在由密码组件113执行的密码操作中使用。
如图1中所示,设备100可以包括掩码值转换组件111,掩码值转换组件111可以执行A2B掩码转换或B2A掩码转换。掩码值组件111可以进一步接收随机生成的数字。例如,在一些实施例中,存储器112可以被用来存储由随机数生成组件所生成的随机生成数,并且所存储的随机数可以由掩码值转换组件111取回。在相同或备选实施例中,掩码值转换组件111可以从随机数生成组件接收随机数,而无需将随机数存储在存储器112中。密码组件113随后可以在密码操作中使用掩码输入值。这样的密码操作的示例包括但不限于:生成数字签名来认证设备100或设备100的组件,加密或解密数据,对消息进行哈希操作等。此外,密码组件113可以基于掩码输入值执行密码操作。这样的密码操作的示例可以基于但不限于:安全哈希算法(SHA)-1、SHA-2、流密码族Salsa和ChaCha、国际数据加密算法(IDEA)、RivestCipher 6(RC6)、扩展微型加密算法(XTEA)等。
密码组件113可以执行密码操作。密码操作可以在某个点处从算术运算转换为布尔运算。由于基于算术运算的密码操作的部分产生算术掩码值,因此该掩码值可能首先需要被转换为布尔掩码值,使得另外的布尔运算随后可以被执行。关于将算术掩码输入值转换成布尔掩码输入值的另外细节将结合图3来描述。
图2是根据本公开的一些方面的掩码值转换组件200的框图,其用于将算术掩码输入值转换成布尔掩码输入值。掩码值转换组件200可以对应于图1的掩码值转换组件111。此外,掩码值转换组件200可以由处理逻辑实现或在处理逻辑中被实现,处理逻辑包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微代码、集成电路、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,掩码值转换组件200可以包括份额接收器子组件210、转换指示器子组件220、随机数生成器子组件230、转换器子组件240、组合子组件250,以及输出掩码值子组件260。在备选实施例中,子组件中的一个或多个子组件的功能可以被组合或被划分。
如图2中所示,掩码值转换组件200可以包括份额接收器子组件210,份额接收器子组件210可以接收与掩码输入值相对应的份额(share)。对于算术运算,份额为算术份额。对于布尔运算,份额为布尔份额。份额可以是输入份额、针对中间值的份额和/或输出份额。掩码值转换组件200可以接收与掩码输入值相对应的两个或更多个份额。例如,通过将值“x”与掩码值“r”组合,基础秘密值“x”可以进行掩码处理。值“x”与掩码值的组合可以是第一份额。掩码值本身可以是第二份额。附加的随机数可以被添加到已利用第一掩码值“r”进行掩码处理的原始值中。
掩码值转换组件200还可以包括转换指示器子组件220,转换指示器子组件220可以接收密码组件正执行或将要执行基于布尔运算的密码操作的指示,该密码组件已基于算术运算执行了密码操作。响应于接收到该指示,份额接收器子组件210可以从包括掩码值转换组件200的设备的存储器或另一组件接收输入份额。随机数生成器子组件230可以生成用于在A2B转换中使用的随机数。
此外,转换器子组件240可以通过转换所接收的份额中的一个或多个份额,来执行算术到布尔运算。组合子组件250可以组合多个值(例如,处于其原始算术形式的输入份额、A2B转换之后的输入份额、以及随机生成的数字)以生成输出份额。作为非限制性说明性示例,组合子组件250可以执行算术加法运算、布尔XOR运算和/或算术减法运算,以在运算的序列的末端处,最后生成至少两个布尔输出份额。注意的是,针对中间值的份额可以处于算术形式或布尔形式。输出掩码值子组件260从组合子组件250接收最终布尔输出份额,并且使用那些最终布尔输出份额,来生成输出掩码值(布尔)。最终输出掩码值可以被提供给在最终输出掩码值上执行另外的密码操作的密码组件。
图3是示例方法300的流程图,示例方法300用于执行算术掩码值到布尔掩码值的转换,以用于密码操作。方法300可以由处理逻辑执行,处理逻辑包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微代码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或其组合。在一些实施例中,方法300可以由图1的掩码值转换组件111或图2的掩码值转换组件200执行。
再次参考图3,方法300在框310处开始,其中以下指示(例如,在转换指示器子组件220处)被接收到:使用算术运算而被创建的初始密码值(即,经掩码的基础秘密值)要被转换为经修改的密码值,经修改的密码值与布尔运算兼容。这通常是规程的一部分,并且因此,子函数被称为更大运算的一部分。也就是说,当取决于基础密码原语,我们需要从使用算术运算改变为使用布尔运算时,子函数A2B被调用。例如,初始密码值可以是x”=(x+r),其中经修改的密码值可以是
Figure BDA0003042574550000071
其中x是基础秘密值,并且r是掩码。
在框320处,例如,在正在进行的密码操作期间的某个点处,第一算术输入份额和第二算术输入份额在份额接收器子组件210处被接收。注意的是,第一算术输入份额和第二算术输入份额的组合生成初始密码值。第一算术输入份额和第二算术输入份额中的每项具有与初始密码值的位长度相同的位长度。
在框330处,随机数(例如,在随机数生成器230处)生成,其位长度与第一算术输入份额和第二算术输入份额的位长度相同。
在框340处,运算的序列使用算术输入份额和随机数来执行。第一布尔输出份额和第二布尔输出份额在框340处执行的运算的序列的末端处被生成。这些运算可以在转换器子组件240以及组合子组件250中被执行。运算的示例序列在图4和图5中被示出。运算的序列中的当前运算生成对应中间值(如图4和图5中所示),该对应中间值在运算的序列的后续运算中被使用。在本文公开的运算的序列期间,中间值中的每个中间值或中间值的任何组合在统计上独立于与基础秘密值。因此,预期没有直接值泄漏。
在框350处,布尔运算(诸如,XOR运算)对第一布尔输出份额和第二布尔输出份额(从框340接收)独立地执行,以创建经修改的密码值。例如,经修改的密码值可以是
Figure BDA0003042574550000081
其中u是另一个布尔掩码密码值。经修改的密码值的两个份额则是y’和u。该运算可以在输出掩码值子组件260处执行。
在一些实施例中,A2B掩码转换可以通过如关于图4所图示的运算的序列,而以加法的方式来执行。例如,运算的序列可以包括22个计算运算。在备选实施例中,A2B掩码转换可以通过如关于图5所图示的运算的序列,而以减法的方式来执行。如图5中所看到的,最快的算法需要仅21个指令,即输出布尔份额在21个步骤中被生成。如上面的表1中所示,所有现有的A2B转换方法都要求远远多于21个步骤。
如上所述,本公开的各方面支持在恒定时间内进行A2B掩码转换,即,A2B掩码转换使用固定数目的指令来完成。恒定时间操作的优点是A2B转换独立于输入位长度。输入位长度可以是任意的。取决于所使用的微处理器,输入位长度的非限制性示例是一个字或几个字,例如32位或64位。
如本领域技术人员将理解的,用于B2A掩码转换的高效方式是利用以下通用仿射函数
Figure BDA0003042574550000082
的线性:其中a和b是两个变量。在当前情况下,
Figure BDA0003042574550000083
是秘密输入值x’的布尔掩码表示,并且x”=(x+r)是秘密输入值的算术掩码表示,其中r是掩码。
通常,B2A转换如下工作:
Figure BDA0003042574550000084
这里,γ是用以对B2A转换进行掩码处理的附加随机值。该附加随机值可以例如在方法300中的框330处被生成。
该转换可以被如下逆变换:
Figure BDA0003042574550000091
这里,
Figure BDA0003042574550000092
是仿射函数Φ的补数。
然而,上述等式的两个内部项揭示了关于基础秘密值‘x’的信息,即,在A2B转换期间去往攻击者的泄漏信息。例如,考虑第一内部项:
Figure BDA0003042574550000093
这里,cr是进位矢量,即,通过x和r的相加产生的所有进位的位,并且bγ是借位矢量,即通过x和r的相减产生的所有借位的位。
如果x=0,则第一内部项变为零。这被称为零值问题,针对x=0,这存在泄漏信息的风险,因为涉及x=0的某些运算的结果将始终为零,并且零的传播对于潜在的攻击者是可见的。如果x≠0,则x至少在一阶统计矩不泄漏信息。在运算的序列之前和之后的附加运算被执行,以使转换相对于零值问题一阶安全。例如,当算术掩码值是(x+r)时,x可以被选取为奇数,并且当算术掩码值是(x-r)时,x可以被选择为偶数。
针对x=0的在一阶处的零值问题可以通过保证x仅是奇数来解决。为了确保x为奇数,x”的最低有效位(LSB)被固定为1,而无需改变掩码“r”的值。这可以通过计算以下来完成:
Figure BDA0003042574550000094
掩码然后通过以下来校正:执行安全的B2A运算,以将x的LSB的补码添加到x”odd。x的LSB的补码被表示为
Figure BDA0003042574550000095
在掩码校正之后,安全的A2B转换通过(如图4和图5中所示的)运算的序列来执行。通过利用x”的LSB来替换最终运算的输出的LSB(注意,x’和x”的LSB相同),A2B转换的结果被进一步校正。通过完成掩码校正的这些附加步骤,本公开的A2B掩码转换方法被确保相对于第一阶单变量攻击是安全的。
图6图示了计算机系统600的示例机器,在该系统内可以执行用于使机器执行本文讨论的任何一种或多种方法的一组指令。在备选实现方式中,机器可以连接至(例如,联网至)LAN、内联网、外联网和/或互联网中的其他机器。机器可以在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作,作为对等网络(或分布式)网络环境中的对等机器进行操作,或者作为云计算架构或环境中的服务器或客户端机器进行操作。
机器可以是个人计算机(PC)、桌上型PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络应用、服务器、网络路由器、交换机或网桥,或者能够(顺序或以其他方式)执行一组指令的任何机器,该一组指令指定将由该机器进行的动作。此外,虽然示出了单个机器,但术语“机器”还应该包括任何机器的集合,其单独或联合地执行一组(或多组)指令,来执行本文讨论的任何一种或多种方法学。
示例计算机系统600包括处理设备602、主存储器604(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备618,它们经由总线630相互通信。
处理设备602表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超出指令字(VLIW)微处理器、或者实现其他指令集的处理器、或者实现指令集的组合的处理器。处理设备602还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备602可以被配置为执行指令626,以用于执行本文讨论的操作和步骤。
计算机系统600可以还包括网络接口设备608,以通过网络620进行通信。计算机系统600还可以包括视频显示单元610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备612(例如,键盘)、光标控制设备614(例如,鼠标)、图形处理单元622、信号生成设备616(例如,扬声器)、图形处理单元622、视频处理单元628和音频处理单元632。
数据存储设备618可以包括机器可读存储介质624,(还被称为计算机可读介质),在其上存储有一组或多组指令或软件626,其实现为文描述的方法学或功能中的任何一种或多种。指令626还可以在通过计算机系统600执行期间,完全或至少部分地驻留在主存储器604内和/或处理设备602内,主存储器604和处理设备602还组成机器可读存储介质。
在一个实现方式中,指令626包括实现对应于掩码值转换组件(例如,图1的掩码值转换组件111或图2的掩码值转换组件200)的功能性的指令。虽然机器可读存储介质624在一个示例实现方式中被示为单个介质,但术语“机器可读存储介质”应该包括单个介质或多个介质(例如,中央或分布式数据库,和/或相关联的高速缓存和服务器),其存储一组或多组指令。术语“机器可读存储介质”还应该包括能够存储或编码一组指令的任何介质,该一组指令用于由机器执行,并且使机器执行本公开的方法学的任何一种或多种。术语“机器可读存储介质”应该相应地包括但不限于固态存储器、光学介质和磁性介质。
先前的具体实施方式的一些部分已按照对计算机存储器内的数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域技术人员所使用的方式,以最有效地将它们的工作的实质传达给本领域其他技术人员。算法是在这里以及在通常情况下理解为生成期望结果的操作的前后一致的序列。操作是要求对物理量的物理操纵的那些操作。通常,尽管不是必须的,但这些量采用能够被存储、组合、比较和以其他方式进行处理的电信号或磁信号的形式。已被证明有时便利的是,主要由于公共使用的原因,将这些信号称为位、值、元素、符号、字符、项、数等。
然而,应该意识到,所有这些和类似术语将与适当的物理量相关联,并且仅是应用于这些量的便利标签。从上文讨论明显看出,除非另有明确指定,否则应该理解,在整个说明书中,利用诸如“标识”或“确定”或“执行”或“进行”或“收集”或“创建”或“发送”等的术语的讨论表示计算机系统或类似电子计算设备的动作和处理,它们将计算机系统的寄存器和存储器内表示为物理(电子)量的数据处理和转换成其他数据,其他数据类似地被表示为计算机系统存储器或寄存器或其他这些信息存储设备内的物理量。
本公开还涉及用于执行本文的操作的装置。该装置可以专门构建为用于期望的目的,或者其可以包括通用计算机,该通用计算机通过存储在计算机中的计算机程序而被选择性激活或重配置。这种计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的盘(包括软盘、光盘、CD-ROM和磁-光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROMM、磁卡或光学卡,或者适合于存储电子指令的任何类型的介质,上述每项均耦合至计算机系统总线。
本文呈现的算法和显示不是固有地与任何特定的计算机或其他装置相关。根据本文的教导,各种通用系统可以被程序被使用,或者可以证明便利的是构建较专用化的装置来执行方法。用于各种这些系统的结构将在以下的描述中明显地阐述。此外,本公开不参考任何特定的编程语言来描述。应当理解,各种编程语言可用于实现本文描述的公开的教导。
本公开可以被提供为计算机程序产品或软件,其可以包括机器可读介质,机器可读介质具有存储于其上的指令,指令可用于对计算机系统(或其他电子设备)进行编程来执行根据本公开的处理。机器可读介质包括用于按由机器(例如,计算机)可读取的形式来存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪存设备等。
在前面的描述中,本公开的实施方式参考本公开的特定示例实施方式来描述。将明显地,在不背离所附权利要求书阐述的本公开的实施方式的最宽精神和范围的情况,可以进行各种修改。因此,说明书和附图被认为是说明性的而非限制性的。

Claims (20)

1.一种计算机实现的方法,包括:
接收使用算术运算而被创建的初始密码值要被转换为经修改的密码值的指示,所述经修改的密码值与布尔运算兼容,其中所述初始密码值在算术上对基础秘密值进行掩码处理;
接收所述初始密码值的第一算术输入份额和第二算术输入份额,其中所述第一算术输入份额和所述第二算术输入份额中的每项具有与所述初始密码值的位长度相等的位长度;
生成随机数,所述随机数的位长度与所述第一算术输入份额和所述第二算术输入份额中的每项的所述位长度相同;
使用所述算术输入份额和所述随机数来执行运算的序列,以在所述运算的序列的末端处生成第一布尔输出份额和第二布尔输出份额,其中所述运算的序列中的当前运算生成对应中间值,所述对应中间值在所述运算的序列中的后续运算中被使用;以及
对所述第一布尔输出份额和所述第二布尔输出份额两者独立地执行所述布尔运算,以创建经布尔掩码的所述经修改的密码值。
2.根据权利要求1所述的方法,其中所述初始密码值通过将掩码值“r”与所述基础秘密值“x”相加而被获得。
3.根据权利要求2所述的方法,还包括:
在执行所述运算的序列之前,将所述初始密码值的最低有效位固定为1,以确保所述初始密码值和所述基础秘密值“x”二者均是奇数,而不管所述掩码值“r”。
4.根据权利要求3所述的方法,还包括:
在执行所述运算的序列之前,通过将所述基础秘密值的最低有效位的补码添加到所述初始密码值,来校正所述掩码值“r”。
5.根据权利要求4所述的方法,还包括:
在执行所述运算的序列之后,通过用所述初始密码值的最低有效位来替换所述运算的序列的最终运算的输出值的最低有效位,来校正所述最终运算的结果。
6.根据权利要求1所述的方法,其中所述初始密码值通过从所述基础秘密值“x”减去掩码值“r”而被获得。
7.根据权利要求6所述的方法,还包括:
在执行所述运算的序列之前,选择用于所述基础秘密值“x”的偶数值。
8.根据权利要求1所述的方法,其中执行所述布尔运算包括:
对所述第一布尔输出份额和所述第二布尔输出份额独立地执行异或运算,以创建经布尔掩码的所述经修改的密码值。
9.根据权利要求1所述的方法,其中所述运算的序列中的运算的数目独立于所述第一算术输入份额和所述第二算术输入份额的所述位长度。
10.根据权利要求1所述的方法,其中所述第一算术输入份额和所述第二算术输入份额的所述位长度是一个或多个字。
11.根据权利要求1所述的方法,其中所述中间值中的每个中间值或中间值的任何组合在统计上独立于所述基础秘密值。
12.根据权利要求1所述的方法,其中所述运算的序列中没有运算需要任何预先计算。
13.根据权利要求1所述的方法,其中所述运算的序列中的运算中的每个运算具有与所述运算的序列中的其他运算相同的位长度,而不管所述运算是对算术中间值执行的还是对布尔中间值执行的。
14.一种系统,包括:
存储器;以及
计算机处理器,与所述存储器可操作地耦合,用于:
接收使用算术运算而被创建的初始密码值要被转换为经修改的密码值的指示,所述经修改的密码值与布尔运算兼容,其中所述初始密码值在算术上对基础秘密值进行掩码处理;
接收所述初始密码值的第一算术输入份额和第二算术输入份额,其中所述第一算术输入份额和所述第二算术输入份额两者均具有与所述初始密码值的位长度相等的位长度;
生成随机数,所述随机数的位长度与所述第一算术输入份额和所述第二算术输入份额的所述位长度相同;
使用所述算术输入份额和所述随机数来执行运算的序列,以在所述运算的序列的末端处生成第一布尔输出份额和第二布尔输出份额,其中所述运算的序列中的当前运算生成对应中间值,所述对应中间值在所述运算的序列中的后续运算中被使用;
以及
对所述第一布尔输出份额和所述第二布尔输出份额两者独立地执行所述布尔运算,以创建经布尔掩码的所述经修改的密码值。
15.根据权利要求14所述的系统,其中所述初始密码值通过将掩码值与所述基础秘密值相加而被获得。
16.根据权利要求15所述的系统,其中所述基础秘密值是奇数。
17.根据权利要求14所述的系统,其中所述初始密码值通过从所述基础秘密值减去掩码值而被获得。
18.根据权利要求17所述的系统,其中所述基础秘密值是偶数。
19.根据权利要求14所述的系统,其中所述处理设备执行的所述布尔运算是异或运算,所述异或运算独立于所述第一布尔输出份额和所述第二布尔输出份额而被执行,以创建经布尔掩码的所述经修改的密码值。
20.根据权利要求14所述的系统,其中所述运算的序列中的运算的数目独立于所述第一算术输入份额和所述第二算术输入份额的所述位长度。
CN201980071262.8A 2018-10-29 2019-10-28 恒定时间的安全的算术到布尔掩码转换 Active CN112955864B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862751931P 2018-10-29 2018-10-29
US62/751,931 2018-10-29
PCT/US2019/058377 WO2020092257A1 (en) 2018-10-29 2019-10-28 Constant time secure arithmetic-to-boolean mask conversion

Publications (2)

Publication Number Publication Date
CN112955864A true CN112955864A (zh) 2021-06-11
CN112955864B CN112955864B (zh) 2024-07-30

Family

ID=70463477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980071262.8A Active CN112955864B (zh) 2018-10-29 2019-10-28 恒定时间的安全的算术到布尔掩码转换

Country Status (4)

Country Link
US (1) US11822704B2 (zh)
EP (1) EP3874364A4 (zh)
CN (1) CN112955864B (zh)
WO (1) WO2020092257A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
US11599671B1 (en) 2019-12-13 2023-03-07 TripleBlind, Inc. Systems and methods for finding a value in a combined list of private values
US12088565B2 (en) 2019-12-13 2024-09-10 Triplelind Holdings, Inc. Systems and methods for privacy preserving training and inference of decentralized recommendation systems from decentralized data
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US10924460B2 (en) 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
US11792646B2 (en) 2021-07-27 2023-10-17 TripleBlind, Inc. Systems and methods for providing a multi-party computation system for neural networks
WO2023232951A1 (en) 2022-06-02 2023-12-07 Katholieke Universiteit Leuven Method and circuit for securely mapping a masked variable
US12021985B2 (en) * 2022-06-03 2024-06-25 Nxp B.V. Masked decomposition of polynomials for lattice-based cryptography

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1596527A1 (de) * 2004-05-13 2005-11-16 Giesecke & Devrient GmbH Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
US20090112896A1 (en) * 2004-12-01 2009-04-30 Jovan Golic Method And Related Device For Hardware-Oriented Conversion Between Arithmetic And Boolean Random Masking
CN101622627A (zh) * 2007-02-23 2010-01-06 克劳克维尔公司 保护以软件为媒介的程序和装置性态的联锁系统和方法
US20100235417A1 (en) * 2009-03-13 2010-09-16 Samsung Electronics Co., Ltd. Circuit and method converting boolean and arithmetic masks
CN101911015A (zh) * 2008-01-11 2010-12-08 国际商业机器公司 旋转然后运算所选位的工具及其指令
EP2634953A1 (en) * 2012-03-02 2013-09-04 Gemalto SA Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
FR2994608A1 (fr) * 2012-08-16 2014-02-21 Oberthur Technologies Procede de traitement cryptographique comprenant un acces securise a une pluralite de tables de substitution, dispositifs et produit programme d'ordinateur correspondants.
CN104967509A (zh) * 2015-05-05 2015-10-07 国家密码管理局商用密码检测中心 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法
CN106330424A (zh) * 2015-06-17 2017-01-11 上海复旦微电子集团股份有限公司 基于sm3算法的密码模块的防攻击方法及装置
CN107508663A (zh) * 2017-09-05 2017-12-22 成都三零嘉微电子有限公司 一种布尔异或掩码转算术加法掩码的防护电路
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路
CN108256164A (zh) * 2011-12-15 2018-07-06 美光科技公司 状态机晶格中的布尔逻辑
CN108604987A (zh) * 2016-03-03 2018-09-28 密码研究公司 将布尔掩码值转换为用于加密操作的算术掩码值

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100585119B1 (ko) * 2004-01-07 2006-06-01 삼성전자주식회사 암호화 장치, 암호화 방법 및 그 기록매체
KR101026439B1 (ko) * 2009-07-20 2011-04-07 한국전자통신연구원 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
EP2884387B1 (en) * 2013-12-13 2016-09-14 Thomson Licensing Efficient modular addition resistant to side-channel attacks
DE102017002153A1 (de) 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3503460A1 (en) * 2017-12-22 2019-06-26 Secure-IC SAS System and method for boolean masked arithmetic addition
EP3557813A1 (en) * 2018-04-17 2019-10-23 Gemalto Sa Method secured against side-channel attacks performing an arithmetic operation of a cryptographic algorithm mixing boolean and arithmetic operations

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1596527A1 (de) * 2004-05-13 2005-11-16 Giesecke & Devrient GmbH Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
US20090112896A1 (en) * 2004-12-01 2009-04-30 Jovan Golic Method And Related Device For Hardware-Oriented Conversion Between Arithmetic And Boolean Random Masking
CN101622627A (zh) * 2007-02-23 2010-01-06 克劳克维尔公司 保护以软件为媒介的程序和装置性态的联锁系统和方法
CN101911015A (zh) * 2008-01-11 2010-12-08 国际商业机器公司 旋转然后运算所选位的工具及其指令
US20100235417A1 (en) * 2009-03-13 2010-09-16 Samsung Electronics Co., Ltd. Circuit and method converting boolean and arithmetic masks
CN108256164A (zh) * 2011-12-15 2018-07-06 美光科技公司 状态机晶格中的布尔逻辑
EP2634953A1 (en) * 2012-03-02 2013-09-04 Gemalto SA Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
FR2994608A1 (fr) * 2012-08-16 2014-02-21 Oberthur Technologies Procede de traitement cryptographique comprenant un acces securise a une pluralite de tables de substitution, dispositifs et produit programme d'ordinateur correspondants.
CN104967509A (zh) * 2015-05-05 2015-10-07 国家密码管理局商用密码检测中心 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法
CN106330424A (zh) * 2015-06-17 2017-01-11 上海复旦微电子集团股份有限公司 基于sm3算法的密码模块的防攻击方法及装置
CN108604987A (zh) * 2016-03-03 2018-09-28 密码研究公司 将布尔掩码值转换为用于加密操作的算术掩码值
CN107508663A (zh) * 2017-09-05 2017-12-22 成都三零嘉微电子有限公司 一种布尔异或掩码转算术加法掩码的防护电路
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
OLAF NEISSE等: "Switching Blindings with a View Towards IDEA", 《CRYTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS》, pages 230 - 239 *
张晓;李菁;张俊彦;: "基于安全芯片的AES算法掩码方案研究", 硅谷, no. 13, pages 69 - 70 *

Also Published As

Publication number Publication date
EP3874364A4 (en) 2022-08-03
WO2020092257A1 (en) 2020-05-07
CN112955864B (zh) 2024-07-30
US11822704B2 (en) 2023-11-21
US20210406406A1 (en) 2021-12-30
EP3874364A1 (en) 2021-09-08

Similar Documents

Publication Publication Date Title
US11620109B2 (en) Converting a boolean masked value to an arithmetically masked value for cryptographic operations
CN112955864B (zh) 恒定时间的安全的算术到布尔掩码转换
US11251935B2 (en) Multiplicative blinding for cryptographic operations
US20230379133A1 (en) Multiplicative masking for cryptographic operations
Moon et al. IoT application protection against power analysis attack
TWI686722B (zh) 用於加密操作之指數分拆技術
US11101981B2 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
US11863657B2 (en) Using cryptographic blinding for efficient use of montgomery multiplication
US11902432B2 (en) System and method to optimize generation of coprime numbers in cryptographic applications
US20220085998A1 (en) System and method to generate prime numbers in cryptographic applications
JP7155173B2 (ja) 外部監視攻撃からモジュラーインバージョン演算を保護すること
US8437472B2 (en) Strengthened key schedule for arcfour
Shi et al. On security of a white-box implementation of SHARK
Hubert et al. Comparative Study of Trigonometric and Conventional Cryptographic Algorithms for Short Message Encryption
Dhiman et al. Enhancement for Secured File Storage Using Modern Hybrid Cryptography

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