CN108604987B - 将布尔掩码值转换为用于加密操作的算术掩码值 - Google Patents

将布尔掩码值转换为用于加密操作的算术掩码值 Download PDF

Info

Publication number
CN108604987B
CN108604987B CN201780009651.9A CN201780009651A CN108604987B CN 108604987 B CN108604987 B CN 108604987B CN 201780009651 A CN201780009651 A CN 201780009651A CN 108604987 B CN108604987 B CN 108604987B
Authority
CN
China
Prior art keywords
value
input
shared
shared value
random number
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
Application number
CN201780009651.9A
Other languages
English (en)
Other versions
CN108604987A (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 CN108604987A publication Critical patent/CN108604987A/zh
Application granted granted Critical
Publication of CN108604987B publication Critical patent/CN108604987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/58Random or pseudo-random number generators
    • 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/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Image Processing (AREA)

Abstract

本公开涉及计算机技术领域,具体涉及将布尔掩码值转换为用于加密操作的算术掩码值。可以接收第一输入共享值、第二输入共享值和第三输入共享值。第一输入共享值可以转换为输入值与第二输入共享值和第三输入共享值的组合之间的加法或减法。可以生成随机数值,并且与第二输入共享值和第三输入共享值组合以生成组合值。此外,可以基于经转换的第一输入共享值、组合值和附加随机数值的组合生成第一输出共享值。以此方式,本公开提供了对执行加密操作的集成电路的附加安全性,以及增加性能(例如,较少计算时间)的效率。

Description

将布尔掩码值转换为用于加密操作的算术掩码值
技术领域
本公开总体上涉及计算机技术领域,更具体地,涉及将布尔掩码值转换为用于加密操作的算术掩码值。
背景技术
集成电路可以执行加密操作,这会使得集成电路易受侧通道攻击,其中攻击者(例如,未认证实体)可以在执行加密操作时获取信息。侧通道攻击的示例包括但不限于差分功率分析(DPA),其中试图获取加密操作中使用的密钥的攻击者会研究执行加密操作时集成电路的功耗的差异。攻击者可以是未认证实体,其可以通过分析集成电路随时间的功耗测量值来得到加密操作的输入(例如,密钥)。因此,当发送者通过经由加密操作对明文进行加密来传输密文时,攻击者能够在执行加密操作以将明文加密为密文时通过观察集成电路的功耗来恢复用于将明文加密为密文的密钥。例如,攻击者可以发现通过集成电路执行加密操作时的用于对明文进行加密的加密(例如,秘密或私密)密钥。
发明内容
本公开的各个方面的目的在于将布尔掩码值转换为算术掩码值来用于加密操作。
根据本公开的一个方面,提供了一种加密***,包括:第一集合的寄存器,用于存储第一输入共享值、第二输入共享值和第三输入共享值,所述第一输入共享值表示输入值、所述第二输入共享值和所述第三输入共享值之间的布尔组合;第二集合的寄存器,用于存储第一输出共享值、第二输出共享值和第三输出共享值,所述第一输出共享值表示所述输入值、所述第二输出共享值和所述第三输出共享值之间的算术组合;加密部件,用于基于布尔操作和算术操作执行加密操作;以及处理设备,操作地与所述第一集合的寄存器和所述第二集合的寄存器耦合,以执行以下操作:接收由所述加密部件执行的所述加密操作已经从使用所述布尔操作切换为使用所述算术操作的指示;响应于所述指示,接收来自所述第一集合的寄存器的所述第一输入共享值、所述第二输入共享值和所述第三输入共享值;将所述第一输入共享值转换为所述输入值与所述第二输入共享值和所述第三输入共享值的组合之间的加法或减法;生成随机数值;将所述随机数值与所述第二输入共享值和所述第三输入共享值组合,以生成组合值;生成附加随机数值;以及基于经转换的所述第一输入共享值、所述组合值和所述附加随机数值生成所述第一输出共享值。
根据本公开的另一方面,提供了一种加密方法,包括:利用布尔操作执行加密操作;接收所述加密操作已经从使用所述布尔操作转换为算术操作的指示;响应于接收到所述指示,接收第一输入共享值、第二输入共享值和第三输入共享值;将所述第一输入共享值转换为输入值与所述第二输入共享值和所述第三输入共享值的组合之间的加法或减法;生成随机数值;将所述随机数值与所述第二输入共享值和所述第三输入共享值组合,以生成组合值;通过处理设备,基于经转换的所述第一输入共享值、所述组合值和附加随机数值的组合来生成第一输出共享值;以及通过使用所述第一输出共享值利用所述算法操作来执行所述加密操作。
根据本公开的又一方面,提供了一种非暂态计算机可读介质,存储有当被处理设备访问时使所述处理设备执行操作的数据,所述操作包括:利用布尔操作执行加密操作;接收所述加密操作已经从使用所述布尔操作转换为算术操作的指示;响应于接收到所述指示,接收第一输入共享值、第二输入共享值和第三输入共享值;将所述第一输入共享值转换为输入值与所述第二输入共享值和所述第三输入共享值的组合之间的加法或减法;生成随机数值;将所述随机数值与所述第二输入共享值和所述第三输入共享值组合,以生成组合值;基于经转换的所述第一输入共享值、所述组合值和附加随机数值的组合来生成第一输出共享值;以及通过使用所述第一输出共享值利用所述算法操作来执行所述加密操作。
附图说明
将从下面给出的详细描述和本公开的各个实施方式的附图中更加完整地理解本公开。
图1示出了根据一些实施例的用于加密操作的使用掩码值转换部件的示例性设备。
图2是根据一些实施例的用于加密操作的提供从布尔掩码值到算术掩码值的转换的掩码值转换部件的框图。
图3A是根据本公开一些实施例的用于加密操作的执行布尔掩码值到算术掩码值的转换的示例性方法的流程图。
图3B示出了根据本公开一些实施例的用于加密操作的执行布尔掩码值到算术掩码值的转换的一系列操作。
图3C示出了根据本公开一些实施例的用于加密操作的执行布尔掩码值到算术掩码值的转换的另一系列操作。
图3D示出了根据本公开一些实施例的执行布尔掩码值到算术掩码值的三阶转换的另一系列操作。
图4是根据一些实施例的将布尔掩码值转换为算术掩码值的硬件架构的示例性实施方式。
图5A是根据本公开一些实施例的将布尔掩码值转换为算术掩码值的另一硬件架构的示例性实施方式。
图5B是根据一些实施例的将布尔掩码值转换为算术掩码值的另一硬件架构的示例性实施方式。
图6示出了可操作本公开的一些实施例的计算机***的实施例的框图。
具体实施方式
掩码可用于利用随机数据模糊或隐藏加密操作的输入,然后可以利用掩码输入来执行加密操作。当集成电路的攻击者在执行加密操作时观察集成电路的功耗时,这种掩码会使得加密操作的中间状态或值与随机数据不可区分。例如,在加密操作将明文编码为密文之前,明文可经受布尔操作,诸如与随机值的异或(XOR)操作。备选地,在加密操作将明文编码为密文之前,明文可经受算术操作,诸如与随机值的相加操作。作为示例,对于输入x,对应于输入x的布尔掩码值可以是表示(x⊕r) 的x’,其中r是随机数。此外,对于输入x,算术掩码值x’可以表示(x+r),其中r是随机数。
特定加密操作可以在加密操作的执行期间同时使用布尔操作和算术操作。例如,加密操作可以利用掩码值同时执行XOR操作和算术(例如,加法或减法)操作。加密操作可以基于布尔掩码值执行第一操作,并且可随后基于算术掩码值执行第二操作。因此,为了执行算术操作,布尔掩码值可需要被转换为算术掩码值。布尔掩码值与算术掩码值之间的转换需要是安全的,使得转换不会导致一些DPA泄露(例如,攻击者识别可从集成电路的功耗差中观察到的信息)。DPA泄露会导致在执行布尔掩码值到算术掩码值之间的转换的同时攻击者能够获得加密操作中使用的密钥(或者依赖于密钥的数据)。
因此,有效且安全地将布尔掩码值转换为算术掩码值的处理可用于执行加密操作。当在加密操作期间执行算术操作时,这种处理可以启动布尔掩码值到算术掩码值之间的转换。可以执行转换,并且可以在集成电路中实施,以防止使攻击者得到加密操作的输入(例如,非掩码值) 的DPA泄露。此外,可以利用更少数量的操作来执行转换。因此,当布尔掩码值将被转换为算术掩码值时,本公开的各个方面提供了对执行加密操作的集成电路的附加安全性,以及增加性能(例如,较少计算时间) 的效率。
图1示出了包括掩码值转换部件的示例性设备。通常,设备100可以包括与掩码值转换部件111、存储器112和加密部件113相关联的集成电路。集成电路的掩码值转换部件111可以接收布尔掩码输入值,并且可以将布尔掩码输入值转换为算术掩码输入值,来用于由加密部件 113执行的加密操作。
如图1所示,设备100可以包括掩码值转换部件111,其可以将第一类型的掩码输入值转换为第二类型的掩码输入值。例如,掩码值转换部件111可以接收布尔掩码输入值或者与存储器112共享,并且可以执行一系列操作来将布尔掩码输入值转换为算术掩码输入值。掩码值转换部件111可以进一步接收来自随机数生成部件的随机生成数。例如,在一些实施例中,存储器112可用于存储由随机数生成部件生成的随机数,并且存储的随机数可以被掩码值转换部件111检索。在相同或备选实施例中,掩码值转换部件111可以接收来自随机数生成部件的随机数,而不将随机数存储在存储器112中。加密部件113可以随后在加密操作中使用算术掩码输入值。这种加密操作的示例包括但不限于生成数字签名以认证设备100或设备100的部件、加密或解密数据等。因此,掩码值转换部件111可以将布尔掩码输入值转换为算术掩码输入值,来用于加密部件113。此外,加密部件113可以基于算术掩码输入值来执行加密操作。这种加密操作的示例可以基于但不限于安全哈希算法(SHA)-1、 SHA-2、互联网数据加密算法(IDEA)、里维斯特密码6(RC6)、延长小加密算法(XTEA)、ChaCha20、Salsa20等。
在操作中,加密部件113可以执行加密操作。在加密操作的第一部分中,由加密部件113执行的操作可以对应于布尔操作。例如,可以利用从存储器112接收的或者从设备100的另一部件接收的布尔掩码输入值来执行异或(XOR)操作。在加密操作的第二部分中,由加密部件113 执行的操作可以对应于算术操作。例如,可以执行与整数的加法操作。因此,加密操作可以从基于或使用布尔操作切换为基于或使用算术操作。然而,由于加密操作的第一部分基于布尔操作产生布尔掩码值,所以布尔掩码输入值可以首先被转换为算术掩码值,使得随后可以执行算术操作。当加密部分113执行算术操作时,加密部件113随后可以向掩码值转换部件111提供请求,以转换存储在存储器112中的布尔掩码输入值。布尔掩码输入值可以被转换为算术掩码输入值,并且随后被加密部件 113用于执行算术操作来作为被执行的加密操作的一部分。结合图3A描述关于将布尔掩码输入值转换为算术掩码输入值的进一步细节。
图2是将布尔掩码输入值转换为算术掩码输入值的掩码值转换部件 200的框图。掩码值转换部件200可以对应于图1的掩码值转换部件111。此外,掩码值转换部件200可以通过处理逻辑来实施或者在处理逻辑中实施,例如处理逻辑可包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微代码、集成电路、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)或者它们的组合。在一些实施例中,掩码值转换部件200可以包括共享值 接收子部件210、转换指示符子部件220、随机数生成器子部件230、转换器子部件240、组合子部件250和输出掩码值子部件260。在备选实施例中,可以组合或划分一个或多个子部件的功能。
如图2所示,掩码值转换部件200可以包括共享值 接收子部件210,其可以接收对应于掩码输入值的共享值。掩码值转换部件200可以接收对应于掩码输入值的三个或更多个共享值。例如,可以通过将值‘x’与第一随机数和第二随机数进行组合来掩蔽值‘x’。值‘x’与第一随机数和第二随机数的组合可以为第一共享值。第一随机数可以是第二共享值,并且第二随机数可以是第三共享值。在一些实施例中,第一共享值、第二共享值和第三共享值的组合可以产生‘x’的值。
掩码值转换部件200可进一步包括转换指示符子部件220,其可以接收已经基于布尔操作执行加密操作的加密部件现在基于算术操作执行加密操作的指示。响应于接收到该指示,共享值 接收子部件210可以接收来自包括掩码值转换部件200的设备的另一部件或存储器的第一共享值、第二共享值和第三共享值。随机数生成器子部件230可以生成在布尔掩码输入值到算术掩码输入值的转换中使用的随机数。
此外,转换器子部件240可以利用通过如参照图3A进一步详细描述的经受异或(XOR)操作的三个值的组合所表示的值来执行操作。例如,转换器子部件240可以转换三个接收到的共享值中的一个。组合子部件250可以组合多个值,以生成算术掩码输出值。例如,组合子部件可以执行与多个值的加法操作、XOR操作和/或减法操作。此外,输出掩码值子部件260可以向执行加密操作的加密部件提供组合子部件的结果作为经转换的掩码值。
图3A是用于加密操作的执行布尔掩码值到算术掩码值的转换的示例性方法300的流程图。方法300可以通过处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微代码、设备的硬件、集成电路等)、软件(例如,在处理设备上运行或执行的指令)或它们的组合。在一些实施例中,方法300可以通过图 1的掩码值转换部件111或者图2的掩码值转换部件200来执行。
如图3A所示,方法300可以在框310中开始,处理逻辑接收第一共享值(‘x’)、第二共享值(r1)和第三共享值(r2),其中第一共享值表示输入值、第二共享值和第三共享值的组合
Figure GDA0003384004320000071
因此,第一共享值可以表示通过基于XOR操作将输入值与第二共享值和第三共享值组合而掩蔽的输入值(例如,x)。第一共享值可以对应于布尔值,因为第一共享值基于XOR操作。在一些实施例中,第二共享值和第三共享值可以对应于随机数。例如,第二共享值和第三共享值中的每一个均可以对应于不同的随机数。如此,可以接收对应于布尔输入值的多个共享值(例如,输入共享值)。
处理逻辑可进一步将第一共享值转换为输入值与中间值之间的和
Figure GDA0003384004320000072
其中中间值代表第二共享值与第三共享值的异或(XOR) (框320)。因此,接收到的第一共享值
Figure GDA0003384004320000073
可以被转换为
Figure GDA0003384004320000074
Figure GDA0003384004320000075
在一些实施例中,可以使用额外的随机值,其中第一共享值变为
Figure GDA0003384004320000076
并且被转换为
Figure GDA0003384004320000077
其中α可对应于新随机数。在一些实施例中,可以使用另一额外的随机值μ,其中第一共享值首先变为
Figure GDA0003384004320000078
并且被转换为
Figure GDA0003384004320000079
然后是中间值和额外随机值之间的XOR操作
Figure GDA00033840043200000710
并且转换为
Figure GDA00033840043200000711
处理逻辑可以进一步生成随机数(v) (框330)。在一些实施例中,随机数可以不同于第二共享值和第三共享值的随机数。此外,处理逻辑可以将随机数与中间值组合
Figure GDA00033840043200000712
(框340)。例如,可以在生成的随机值与第二共享值和第三共享值之间执行XOR操作。在一些实施例中,随机数可以首先与第二共享值或第三共享值中的一个组合,并且结果可以随后与第二共享值或第三共享值中的另一个组合,使得随机数不分别存储在存储元件或寄存器中。例如,组合值可以存储在寄存器中,其中随机数和第二共享值被组合以生成中间值,并且中间值随后与第三共享值进行组合以生成组合值。在备选实施例中,随机数可以与对应于上述的中间值组合
Figure GDA0003384004320000081
例如,可以在生成的随机值、第二共享值、第三共享值和新随机数‘α’之间执行XOR操作。
参照图3A,处理逻辑可进一步将随机数和中间值的组合值转换为随机数和中间值之间的和
Figure GDA0003384004320000082
(框350)。例如,随机数与第二共享值和第三共享值的组合值可以被转换为随机数和表示通过XOR 操作与第三共享值组合的第二共享值的值之间的加法(或减法)。在备选实施例中,处理逻辑可以将随机数与中间值的组合值转换为随机数和中间值之间的减法
Figure GDA0003384004320000083
处理逻辑可进一步生成附加随机数 (s1、s2)(框360)。在一些实施例中,生成的附加随机数可以不同于与第二共享值和第三共享值相对应的随机数。在备选实施例中,生成的附加随机数可以与对应于第二共享值和第三共享值的随机数相同。附加随机数可以对应于被原始输入值(例如,x)使用的两个新随机掩码值。处理逻辑可进一步将转换的第一共享值
Figure GDA0003384004320000084
与附加随机数(s1、 s2)和转换的组合值
Figure GDA0003384004320000085
进行组合(框370)。例如,转换的第一共享值可以与每个附加随机数相加,并且可以从结果中减去转换的组合值。例如,处理逻辑可以基于经转换的第一共享值和附加随机数执行加法操作,并且执行与经转换的组合值的减法操作
Figure GDA0003384004320000086
Figure GDA0003384004320000087
或者
Figure GDA0003384004320000088
随后,可以执行基于算术操作的加密操作。例如,第一共享值可以对应于等于或表示x的值(其是将转换的第一共享值与附加随机数和经转换的组合值进行组合的结果),第二共享值可以对应于值S1,并且第三共享值可以对应于值S2。在备选实施例中,处理逻辑可进一步将经转换的第一共享值与附加随机数(s1、s2)中的一个进行组合,经转换的组合值通过(v-
Figure GDA0003384004320000091
Figure GDA0003384004320000092
表示。
在一些实施例中,与转换的组合值的减法操作可以通过基于第二附加随机数的值来替代,其与第二共享值和第三共享值之间的XOR操作的结果
Figure GDA0003384004320000093
相加。例如,可以执行对应于以下等式的操作:
Figure GDA0003384004320000094
或者
Figure GDA0003384004320000095
因此,可以不生成一个或多个附加随机数(例如,v)。每一操作都可以产生对应于可用作算术第一共享值的x+s1+s2的值。
如此,可以接收三个或更多个共享值,其中第一共享值对应于基于布尔的共享值,并且其他共享值对应于随机数。可以执行操作以将基于布尔的共享值转换为基于算术的共享值。可以在恒定时间(例如,不取决于布尔掩码输入值的输入长度)以及较少的计算步骤或操作中执行操作。例如,以下表格示出了与典型的布尔到算术转换处理相比本公开在较少的低级指令(Add、Subtract、XOR等)中进行操作。以下表格示出了与本公开基于不同安全顺序(例如,使用的掩码共享值的数量)所要求的相比,由当前现有技术要求的低级指令的数量:
第2阶 第3阶 第4阶 第5阶 第6阶 第7阶 第8阶
8位 909 1,369 1,962 2,619 3,372 4,189 5,171
16位 1,781 2,681 3,842 5,131 6,612 8,221 10,155
32位 3,525 5,305 7,602 10,155 13,092 16,285 20,123
64位 7.013 10,553 15,122 20,203 26,052 32,413 40,059
本公开 31 56 115 197 331 513 763
在一些实施例中,方法300可以通过参照图3B示出的一系列操作来执行。例如,一系列操作可以包括31个计算操作或步骤来执行方法 300。在布尔到算术转换的备选实施例中,可以执行参照图3C示出的系列操作。图3C的系列操作可以对应于基于在转换处理的末尾执行的 XOR和的实施方式。布尔到算术转换处理还可以基于多于三个的输入共享值。例如,可以在转换处理中使用四个或更多个输入共享值。图3D 的系列操作可以对应于使用四个共享值的实施方式(例如,三阶布尔- 算术掩码转换)。
图4是将布尔掩码值转换为算术掩码值的硬件架构400。架构400 可以对应于图1的掩码值转换部件111或图2的掩码值转换部件200。
如图4所示,架构400可以包括第一组存储元件410(例如,寄存器)、第二组存储元件420和第三组存储元件430。第一组存储元件410 可以接收先前描述的第一共享值、第二共享值和第三共享值。例如,第一组存储元件410中的第一寄存器可以存储x’,其可以代表(x⊕r1⊕r2) 的布尔值,其中x是未掩码输入值,r1是随机数和第二共享值,并且r2是另一随机数和第三共享值。此外,如图所示,第一组存储元件410的第二寄存器存储第二共享值r1,并且第一组存储元件410的第三寄存器存储第三共享值r2。第二组存储元件420可以接收和存储各种随机数,它们被生成用于将布尔共享值转换为算术共享值。例如,第二组存储元件420的寄存器可以存储随机数,以转换先前描述的第一共享值和附加的随机生成的数。
如图4所示,架构400可以包括一系列异或(XOR)门、加法器和减法器部件。架构400的输出可以存储在第三组存储元件430中。例如,存储在第一组存储元件410和第二组存储元件420的寄存器处的值的组合可以用于生成从布尔共享值转换的算术共享值。因此,第三组存储元件430的第一寄存器可存储经转换的第一共享值(例如,x”),并且第三组存储元件430的第二和第三寄存器可存储附加掩码值(例如,s1和 s2)。
因此,第一组存储元件410可以存储对应于布尔掩码输入的共享值,第二组存储元件420可以存储用于转换处理的随机生成的数,并且第三组存储元件430可以存储对应于算术掩码值的共享值。
图5A是将布尔掩码值转换为算术掩码值的硬件架构500的示例性实施方式。架构500可以对应于图1的掩码值转换部件111或图2的掩码值转换部件200。
如图5A所示,架构500可以包括第一组存储元件510和第二组存储元件520。第一组存储元件510可以存储与先前描述的布尔掩码输入值相对应的第一共享值、第二共享值和第三共享值。对应于架构400的逻辑的功能的各种功能可以***或划分将布尔掩码输入值转换为算术掩码输入值的处理。例如,功能F1、F2和F3中的每一个都可以执行转换处理的一部分或者包括架构400的逻辑的一部分。此外,功能F1、F2和F3中的每一个均可以接收共享值的子集。例如,每个功能均可以接收与布尔掩码输入值相对应的三个共享值中的两个。随后,可以在第二组存储元件520处组合和存储功能的输出,以存储第一共享值、第二共享值和第三共享值来用于已经从布尔掩码输入值转换的算术掩码输入值。在备选实施例中,可以不组合功能的输出。
图5B是将布尔掩码值转换为算术掩码值的另一硬件架构550。架构 550可以对应于图1的掩码值转换部件111或图2的掩码值转换部件 200。
如图5B所示,架构550可以包括第一组存储元件560、第二组存储元件570和第三组存储元件580。第一组存储元件560的第一寄存器可以接收和存储与将被转换为算术掩码输入值的布尔掩码输入值相对应的第一共享值、第二共享值和第三共享值。功能F11、F12、F13和F14的第一集合可以执行转换处理的第一部分,并且转换处理的第一部分的结果可以存储在第二组存储元件570的寄存器中。在一些实施例中,如图5B 所示,可以通过使用附加功能来增加或扩展共享值的数量。例如,三个共享值的布尔掩码输入至可以增加到四个中间共享值,并且存储在第二组存储元件570中。随后,功能F21、F22和F23的第二集合可以执行转换处理的第二部分,并且转换处理的第二部分的结果可以存储在第三组存储元件580中的寄存器处。第二集合的功能可以接收四个中间共享值,并且生成与算术掩码输入值相对应的较少数量的共享值。例如,四个中间共享值可以被第二集合的功能中的三个功能使用,以生成与算术掩码输入值相对应的三个共享值。尽管图5B示出了两个集合的功能,但将布尔掩码值转换为算术掩码值的架构可以包括任何数量的功能集合。
图6示出了计算机***600的示例性机器,其中可以执行用于使机器执行本文讨论的任何一种或多种方法的指令。在备选实施方式中,机器可以在LAN、内联网、外联网和/或因特网中连接(例如,联网)至其他机器。机器可以在客户机-服务器网络环境中以服务器或客户机的能力进行操作、在对等式(或分布式)网络环境中作为对等机器操作、或者在云计算架构或环境中作为服务器或客户机进行操作。
机器可以是个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网页应用、服务器、网络路由器、开关或桥或者能够执行指定将由机器进行的动作的指令集合(顺序地或以其他方式)的任何机器。此外,虽然示出了单个机器,但术语“机器”还应该包括任何机器的集合,它们单独或联合地执行指令的集合(或多个集合),以执行本文讨论的任何一种或多种方法。
示例性计算机***600包括经由总线630相互通信的处理设备602、主存储器604(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM) 等)、静态存储器606(例如,闪存、静态随机存取存储器(SRAM)等) 以及数据存储设备618。
处理设备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的一个或多个集合。在通过计算机***600执行期间,指令626还可以完整或至少部分地驻留在主存储器604内和/或处理设备 602内,主存储器604和处理设备602还组成机器可读存储介质。
在一个实施方式中,指令626包括实施与掩码值转换部件(例如,图1的掩码值转换部件111或图2的掩码值转换部件200)相对应的功能。虽然机器可读存储介质624在一个示例性实施方式中被示为单个介质,但术语“机器可读存储介质”应该包括存储一个或多个指令集的单个介质或多个介质(例如,中心化或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读存储介质”还应该包括能够存储或编码被机器执行的指令集并且使机器执行本公开的任何一种或多种方法的任何介质。因此,术语“机器可读存储介质”应该包括但不限于固态存储器、光学介质和磁性介质。
根据对计算机存储器内的数据位进行的算法和符号表示操作呈现了先前详细描述的一些部分。这些算法描述和表示是本领域技术人员更有效地将它们的工作内容传送给其他领域技术人员的方式。通常地,这里构想为有条理序列的操作的算法得到期望的结果。操作是要求物理处理或物理量的操作。通常,尽管不是必须,这些量采用能够被存储、组合、比较或以其他方式被处理的电或磁信号的形式。事实证明,主要出于通用的原因,有时将这些信号表示为位、值、元素、符号、字符、术语、数字等。
然而,应该知道,所有这些和类似术语与适当的物理量相关联,并且仅仅是应用于这些量的方便的标签。除非另有指定,否则从上面的讨论中可以理解,在整个描述中,利用诸如“识别”或“确定”或“执行”或“收集”或“创建”或“发送”等的术语进行的讨论表示计算机***或类似电计算设备的动作和处理,它们将计算机***的寄存器和存储器内表示为物理(电)量的数据转换为类似地在计算机***存储器或寄存器或者其他这样的信息存储设备内表示为物理量的其他数据。
本公开还涉及用于执行本文的操作的装置。该装置可以特殊地构造为用于预期目的,或者其可以包括通过存储在计算机中的计算机程序选择性地启动或再配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的盘,包括软盘、光盘、CD-ROM 和磁-光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、 EEPROM、磁或光卡或者适合于存储电指令的任何类型的介质,每个均耦合至计算机***总线。
本文呈现的算法和显示不固有地与任何特定的计算机或其他装置相关。根据本文的教导,各种通用***可以使用程序,或者其可以构造更加特殊的装置来执行方法。用于各种这样的***的结构将在下面的描述中明白。此外,本公开不参照任何特定的编程语言来描述。将理解,各种编程语言可用于实施本文描述的本公开的教导。
本公开可以设置为计算机程序产品或软件,其可以包括其上存储指令的机器可读介质,可用于编程计算机***(或其他电设备)以执行根据本公开的处理。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光盘存储介质、闪存设备等。
在前面的说明书中,参照其具体示例性实施方式描述了本公开的实施方式。将明白,在不背离以下权利要求中阐述的本公开的实施当时的广义精神和范围的情况下可以对其进行各种修改。因此,说明书和附图认为是说明性的而非限制性的。

Claims (22)

1.一种加密***,包括:
第一集合的寄存器,用于存储第一输入共享值、第二输入共享值和第三输入共享值,所述第一输入共享值表示输入值、所述第二输入共享值和所述第三输入共享值之间的布尔组合;
第二集合的寄存器,用于存储第一输出共享值、第二输出共享值和第三输出共享值,所述第一输出共享值表示所述输入值、所述第二输出共享值和所述第三输出共享值之间的算术组合;
加密部件,用于基于布尔操作和算术操作执行加密操作;以及
处理设备,操作地与所述第一集合的寄存器和所述第二集合的寄存器耦合,以执行以下操作:
接收由所述加密部件执行的所述加密操作已经从使用所述布尔操作切换为使用所述算术操作的指示;
响应于所述指示,接收来自所述第一集合的寄存器的所述第一输入共享值、所述第二输入共享值和所述第三输入共享值;
将所述第一输入共享值转换为所述输入值与所述第二输入共享值和所述第三输入共享值的组合之间的加法或减法;
生成随机数值;
将所述随机数值与所述第二输入共享值和所述第三输入共享值组合,以生成组合值;
生成附加随机数值;以及
基于经转换的所述第一输入共享值、所述组合值和所述附加随机数值生成所述第一输出共享值,
其中所述附加随机数值中的第一随机数对应于所述第二输出共享值,并且所述附加随机数值中的第二随机数对应于所述第三输出共享值,并且其中所述第一输出共享值表示所述输入值、所述第一随机数和所述第二随机数之间的加法或减法。
2.根据权利要求1所述的***,其中所述处理设备还执行以下操作:
接收至少一个附加输入共享值,所述第一输出共享值的生成还基于所述至少一个附加输入共享值。
3.根据权利要求1所述的***,其中为了将所述随机数值与所述第二输入共享值和所述第三输入共享值组合以生成所述组合值,所述处理设备还执行以下操作:
在第一时间,执行所述随机数值与所述第二输入共享值之间的XOR操作,以生成中间值;
在所述第一时间之后的第二时间,执行所述中间值与所述第三输入共享值之间的所述XOR操作,以生成第二中间值;以及
将所述第二中间值转换为所述组合值。
4.根据权利要求1所述的***,其中所述第二输出共享值和所述第三输出共享值与所述第二输入共享值和所述第三输入共享值相同。
5.根据权利要求1所述的***,其中所述第二输出共享值和所述第三输出共享值均不同于所述第二输入共享值和所述第三输入共享值。
6.根据权利要求1所述的***,其中为了生成所述第一输出共享值,所述处理设备还执行以下操作:
执行经转换的所述第一输入共享值和所述附加随机数值之间的加法或减法;以及
执行所述加法或所述减法的结果与所述组合值之间的减法操作。
7.根据权利要求1所述的***,其中所述处理设备还执行以下操作:
接收另一随机数值,其中所述第一输入共享值的转换还基于与所述另一随机数值的相加或相减。
8.一种加密方法,包括:
利用布尔操作执行加密操作;
接收所述加密操作已经从使用所述布尔操作转换为算术操作的指示;
响应于接收到所述指示,接收第一输入共享值、第二输入共享值和第三输入共享值;
将所述第一输入共享值转换为输入值与所述第二输入共享值和所述第三输入共享值的组合之间的加法或减法,所述第一输入共享值表示输入值、所述第二输入共享值和所述第三输入共享值之间的布尔组合;
生成随机数值;
将所述随机数值与所述第二输入共享值和所述第三输入共享值组合,以生成组合值;
通过处理设备,基于经转换的所述第一输入共享值、所述组合值和附加随机数值的组合来生成第一输出共享值;以及
通过使用所述第一输出共享值利用所述算术操作来执行所述加密操作。
9.根据权利要求8所述的方法,其中将所述随机数值与所述第二输入共享值和所述第三输入共享值组合以生成所述组合值包括:
在第一时间,执行所述随机数值与所述第二输入共享值之间的XOR操作,以生成中间值;
在所述第一时间之后的第二时间,执行所述中间值、所述第三输入共享值和另一随机数值之间的所述XOR操作,以生成第二中间值;以及
将所述第二中间值转换为所述组合值。
10.根据权利要求8所述的方法,还包括:
接收至少一个附加输入共享值,所述输出共享值的生成还基于所述至少一个附加输入共享值。
11.根据权利要求8所述的方法,其中将所述随机数值与所述第二输入共享值和所述第三输入共享值组合以生成所述组合值包括:
在第一时间,执行所述随机数值与所述第二输入共享值之间的XOR操作,以生成中间值;
在所述第一时间之后的第二时间,执行所述中间值与所述第三输入共享值之间的所述XOR操作,以生成第二中间值;以及
将所述第二中间值转换为所述组合值。
12.根据权利要求8所述的方法,其中与所述第一输出共享值相关联的第二输出共享值和第三输出共享值与所述第二输入共享值和所述第三输入共享值相同。
13.根据权利要求8所述的方法,其中与所述第一输出共享值相关联的第二输出共享值和第三输出共享值均不同于所述第二输入共享值和所述第三输入共享值。
14.根据权利要求8所述的方法,其中生成所述第一输出共享值包括:
执行经转换的所述第一输入共享值和所述附加随机数值之间的加法或减法;以及
执行所述加法或所述减法的结果与所述组合值之间的减法操作。
15.根据权利要求8所述的方法,还包括:
接收另一随机数值,其中所述第一输入共享值的转换还基于与所述另一随机数值的相加或相减。
16.一种非暂态计算机可读介质,存储有当被处理设备访问时使所述处理设备执行操作的数据,所述操作包括:
利用布尔操作执行加密操作;
接收所述加密操作已经从使用所述布尔操作转换为算术操作的指示;
响应于接收到所述指示,接收第一输入共享值、第二输入共享值和第三输入共享值;
将所述第一输入共享值转换为输入值与所述第二输入共享值和所述第三输入共享值的组合之间的加法或减法,所述第一输入共享值表示输入值、所述第二输入共享值和所述第三输入共享值之间的布尔组合;
生成随机数值;
将所述随机数值与所述第二输入共享值和所述第三输入共享值组合,以生成组合值;
基于经转换的所述第一输入共享值、所述组合值和附加随机数值的组合来生成第一输出共享值;以及
通过使用所述第一输出共享值利用所述算术操作来执行所述加密操作。
17.根据权利要求16所述的非暂态计算机可读介质,其中为了将所述随机数值与所述第二输入共享值和所述第三输入共享值组合以生成所述组合值,所述操作还包括:
在第一时间,执行所述随机数值与所述第二输入共享值之间的XOR操作,以生成中间值;
在所述第一时间之后的第二时间,执行所述中间值、所述第三输入共享值和另一随机数值之间的所述XOR操作,以生成第二中间值;以及
将所述第二中间值转换为所述组合值。
18.根据权利要求16所述的非暂态计算机可读介质,所述操作还包括:
接收至少一个附加输入共享值,所述输出共享值的生成还基于所述至少一个附加输入共享值。
19.根据权利要求16所述的非暂态计算机可读介质,其中为了将所述随机数值与所述第二输入共享值和所述第三输入共享值组合以生成所述组合值,所述操作还包括:
在第一时间,执行所述随机数值与所述第二输入共享值之间的XOR操作,以生成中间值;
在所述第一时间之后的第二时间,执行所述中间值与所述第三输入共享值之间的所述XOR操作,以生成第二中间值;以及
将所述第二中间值转换为所述组合值。
20.根据权利要求16所述的非暂态计算机可读介质,其中为了生成所述第一输出共享值,所述操作还包括:
执行经转换的所述第一输入共享值和所述附加随机数值之间的加法或减法;以及
执行所述加法或所述减法的结果与所述组合值之间的减法操作。
21.根据权利要求16所述的非暂态计算机可读介质,其中与所述第一输出共享值相关联的第二输出共享值和第三输出共享值与所述第二输入共享值和所述第三输入共享值相同。
22.根据权利要求16所述的非暂态计算机可读介质,其中所述操作还包括:
接收另一随机数值,其中所述第一输入共享值的转换还基于与所述另一随机数值的相加或相减。
CN201780009651.9A 2016-03-03 2017-03-03 将布尔掩码值转换为用于加密操作的算术掩码值 Active CN108604987B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662303270P 2016-03-03 2016-03-03
US62/303,270 2016-03-03
US201662385773P 2016-09-09 2016-09-09
US62/385,773 2016-09-09
US201662438254P 2016-12-22 2016-12-22
US62/438,254 2016-12-22
PCT/US2017/020670 WO2017152056A1 (en) 2016-03-03 2017-03-03 Converting a boolean masked value to an arithmetically masked value for cryptographic operations

Publications (2)

Publication Number Publication Date
CN108604987A CN108604987A (zh) 2018-09-28
CN108604987B true CN108604987B (zh) 2022-03-29

Family

ID=59743249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780009651.9A Active CN108604987B (zh) 2016-03-03 2017-03-03 将布尔掩码值转换为用于加密操作的算术掩码值

Country Status (4)

Country Link
US (2) US10871947B2 (zh)
EP (1) EP3424175B1 (zh)
CN (1) CN108604987B (zh)
WO (1) WO2017152056A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3424175B1 (en) * 2016-03-03 2024-02-21 Cryptography Research, Inc. Converting a boolean masked value to an arithmetically masked value for cryptographic operations
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
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
EP3874364A4 (en) * 2018-10-29 2022-08-03 Cryptography Research, Inc. TIME CONSTANT SAFE CONVERSION FROM ARITHMETIC TO BOOLEAN MASK
WO2020181002A1 (en) * 2019-03-05 2020-09-10 Cryptography Research, Inc. Side-channel-attack-resistant memory access on embedded central processing units
CN110750233B (zh) * 2019-09-19 2021-06-22 太原理工大学 一种基于逻辑门非对称自治布尔网络的随机数发生器
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
FR3101983B1 (fr) 2019-10-11 2021-11-12 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
FR3101980B1 (fr) * 2019-10-11 2021-12-10 St Microelectronics Grenoble 2 Processeur
FR3101982B1 (fr) 2019-10-11 2024-03-08 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US11599671B1 (en) * 2019-12-13 2023-03-07 TripleBlind, Inc. Systems and methods for finding a value in a combined list of private values
US11792646B2 (en) 2021-07-27 2023-10-17 TripleBlind, Inc. Systems and methods for providing a multi-party computation system for neural networks
TWI778902B (zh) * 2021-12-30 2022-09-21 新唐科技股份有限公司 加法遮罩值產生器、加密器以及產生串流金鑰的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101044535A (zh) * 2005-03-16 2007-09-26 三菱电机株式会社 数据变换装置以及数据变换方法
CN104852795A (zh) * 2015-05-05 2015-08-19 国家密码管理局商用密码检测中心 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法
CN104967509A (zh) * 2015-05-05 2015-10-07 国家密码管理局商用密码检测中心 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69840782D1 (de) * 1998-01-02 2009-06-04 Cryptography Res Inc Leckresistentes kryptographisches Verfahren und Vorrichtung
FR2820914A1 (fr) * 2001-02-15 2002-08-16 Bull Cp8 Procede de securisation d'un ensemble electronique mettant en oeuvre en algorithme cryptographique utilisant des operations booleennes et des operations arithmetiques, et systeme embarque correspondant
KR100585119B1 (ko) * 2004-01-07 2006-06-01 삼성전자주식회사 암호화 장치, 암호화 방법 및 그 기록매체
WO2009076669A1 (en) * 2007-12-13 2009-06-18 Massachusetts Institute Of Technology Private data processing
KR101566408B1 (ko) * 2009-03-13 2015-11-05 삼성전자주식회사 불 마스크와 산술 마스크의 변환 회로 및 변환 방법
KR101026439B1 (ko) * 2009-07-20 2011-04-07 한국전자통신연구원 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법
US9569616B2 (en) * 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
US9444623B2 (en) 2013-12-20 2016-09-13 Cryptography Research, Inc. Modular exponentiation optimization for cryptographic systems
EP3424175B1 (en) * 2016-03-03 2024-02-21 Cryptography Research, Inc. Converting a boolean masked value to an arithmetically masked value for cryptographic operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101044535A (zh) * 2005-03-16 2007-09-26 三菱电机株式会社 数据变换装置以及数据变换方法
CN104852795A (zh) * 2015-05-05 2015-08-19 国家密码管理局商用密码检测中心 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法
CN104967509A (zh) * 2015-05-05 2015-10-07 国家密码管理局商用密码检测中心 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Sound Method for Switching between Boolean and Arithmetic Masking;Louis Goubin;《Springer》;20010920;全文 *
Algorithms for Switching between Boolean and Arithmetic Masking of Second Order;Praveen Kumar Vadnala等;《Springer》;20131019;摘要,第1-7部分 *

Also Published As

Publication number Publication date
EP3424175A1 (en) 2019-01-09
US20190050204A1 (en) 2019-02-14
EP3424175A4 (en) 2019-10-16
EP3424175B1 (en) 2024-02-21
CN108604987A (zh) 2018-09-28
US10871947B2 (en) 2020-12-22
WO2017152056A1 (en) 2017-09-08
US20210173618A1 (en) 2021-06-10
US11620109B2 (en) 2023-04-04

Similar Documents

Publication Publication Date Title
CN108604987B (zh) 将布尔掩码值转换为用于加密操作的算术掩码值
US11251935B2 (en) Multiplicative blinding for cryptographic operations
US20230379133A1 (en) Multiplicative masking for cryptographic operations
US11822704B2 (en) Constant time secure arithmetic-to-Boolean mask conversion
US8615084B2 (en) Extending a secret bit string to safeguard the secret
US20100058067A1 (en) Securing a password database
US10530566B2 (en) Configuring a device based on a DPA countermeasure
CN106716344B (zh) 用于密码运算的指数***
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
US20170085379A1 (en) Learning parity with noise-based relational encryption for proximity relations
US11101981B2 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
CN109804596B (zh) 具有加掩码的输入的可编程块密码器
US8437472B2 (en) Strengthened key schedule for arcfour
US12021969B2 (en) Functions with a pre-charge operation and an evaluation operation
US20220191004A1 (en) Functions with a pre-charge operation and an evaluation operation
EP3552339B1 (en) Programmable block cipher with masked inputs
JP2017201783A (ja) ノイズ存在下におけるパリティ値の同定に基づく、近似関係の関係暗号化

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