CN111602367B - 用于保护在使白盒密码算法安全的对策中使用的熵源的方法 - Google Patents

用于保护在使白盒密码算法安全的对策中使用的熵源的方法 Download PDF

Info

Publication number
CN111602367B
CN111602367B CN201880077544.4A CN201880077544A CN111602367B CN 111602367 B CN111602367 B CN 111602367B CN 201880077544 A CN201880077544 A CN 201880077544A CN 111602367 B CN111602367 B CN 111602367B
Authority
CN
China
Prior art keywords
pseudo
value
random
function
cryptographic algorithm
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
CN201880077544.4A
Other languages
English (en)
Other versions
CN111602367A (zh
Inventor
A.古热
J.瓦切克
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.)
Thales Digital Security France Easy Stock Co
Original Assignee
Thales Digital Security France Easy Stock Co
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 Thales Digital Security France Easy Stock Co filed Critical Thales Digital Security France Easy Stock Co
Publication of CN111602367A publication Critical patent/CN111602367A/zh
Application granted granted Critical
Publication of CN111602367B publication Critical patent/CN111602367B/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/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
    • 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/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/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
    • 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/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种用于安全执行应用于消息(m)并由基于伪随机值的对策保护的白盒密码算法的方法,该方法包括以下步骤:‑执行伪随机函数(PRP),该伪随机函数(PRP)基于从所述消息导出的加密的输入值(*Xi*)生成伪随机输出值和加密的主输出值,‑通过基于所述生成的伪随机输出值向密码算法应用所述对策来使所述密码算法安全,‑从所述生成的加密的主输出值中以加密形式(*Xi*)检索输入值或输入值的部分,‑对所述加密的检索值执行所述安全密码算法。

Description

用于保护在使白盒密码算法安全的对策中使用的熵源的方法
技术领域
本发明涉及软件安全领域,并且更特别地涉及用于仿真在白盒环境中使密码算法安全的对策中使用的熵源的随机化方法和设备。
背景技术
传统上,为了确保密码算法中使用的秘密密钥保持机密并受到良好保护,该算法的实现仅应该是在安全环境中执行。假定执行这样的实现的算法的设备是可信的,从而防止试图检索秘密密钥的任何攻击者访问或容易修改在执行期间计算的中间值。取决于模型,这被称为黑盒密码术或灰盒密码术。
然而,密码过程越来越多地部署在在开放设备上执行的应用程序中,或者在不依赖于防篡改硬件模块来保护其执行的情况下执行。
然后,在并非所有用户或设备可以被信任的环境中执行密码过程。这样的背景通常被称为白盒攻击背景。在这样的背景中,由于攻击者可完全访问密码过程的软件实现,因此诸如私人密钥之类的密码敏感数据易受到攻击。由攻击者可以完全访问和编辑这样的过程的二进制代码,攻击者可以分析密码术应用程序的二进制代码,以及例如分析在执行期间用于临时存储的存储页或寄存器。可以例如使用调试器和硬件仿真工具来执行这样的操控。
已经寻求了能够抵抗白盒攻击的密码***的软件实现。在这样的实现中,应用白盒对策(诸如使用掩码随机化某些操作),以便使攻击者较难以检索任何机密信息。例如,伪随机掩码可以用于随机化在块密码算法中使用的查找表(LUT)。白盒对策常常需要使用诸如伪随机数生成器(PRNG)之类的熵源,以用于以保持不容易被攻击者理解和预测的方式生成这样的伪随机值。需要初始化仿真熵源的这样的随机化过程,优选地利用随时间改变的动态值进行初始化,以便即使攻击者在给定时间发现一个初始化值也保持对策高效。因此,常常基于对密码算法的输入消息来初始化这样的熵源。
问题在于,白盒背景中的攻击者可能以这样的方式修改这样的熵源的初始化,所述方式始终使用相同的值进行初始化,该相同的值独立于密码算法的输入消息。在这样的情况下,对策在算法的任何执行时使用相同的伪随机值,并且攻击者可以通过执行差分计算分析攻击容易地取消这样的保护。
因此,存在对于一种方法和相关联的密码设备的需要,从而能够使用于在白盒环境中保护密码过程的对策的熵源的仿真安全。
发明内容
为了这个目的并且根据第一方面,本发明因此涉及一种用于安全执行应用于消息并由基于伪随机值的对策保护的白盒密码算法的方法,该方法包括以下步骤:
-执行伪随机函数,该伪随机函数基于从所述消息导出的加密的输入值生成伪随机输出值和加密的主输出值,
-通过基于所述生成的伪随机输出值向密码算法应用所述对策来使所述密码算法安全,
-从所述生成的加密的主输出值中以加密的形式检索输入值或输入值的部分,
-对所述加密的检索值执行所述安全密码算法。
它能够使密码算法的输入取决于生成用于对策的值的函数的执行,并且因此在修改此函数的初始化时修改密码算法的执行,使得攻击者无法通过低阶DCA攻击检索机密信息。
所述密码算法可以基于块密码算法。
所述白盒密码算法可以包括使用至少一个编码的查找表实现的至少一个操作,并且可以使用对应于所述编码的查找表的编码的编码来加密所述加密的检索值。
使所述密码算法安全可以包括使用所述伪随机输出值作为掩码值来随机化所述查找表中的至少一个。
所述伪随机输出值和所述主输出值也可以由伪随机函数基于在密码算法的先前执行期间获得的至少一个中间值来生成。
它能够使伪随机函数的行为混合在一起,然后较难以由攻击者预测,该随机函数的行为与输入值的处理结合,该输入值是到密码算法的输入。特别地,当试图修改伪随机函数的正常行为时,知道到密码算法的输入值变得很难。
执行所述伪随机函数可以包括更新函数的若干次执行,所述伪随机输出值中的至少一个是所述更新函数的输出,并且所述加密的主输出值是更新函数的最后的执行的输出。
在第一实施例中,所述更新函数是加密函数或对应的解密函数,执行所述伪随机函数包括以特定顺序使用各种密钥若干次执行所述加密函数,之后接着以相反的顺序使用所述密钥同样数量次执行所述对应的解密函数。
加密和对应解密的这样的执行使得能够在伪随机函数执行结束时获得要被提供给密码算法的输入值或输入值的部分。
在第二实施例中,将主机密分成机密份额,使得添加所述主机密等同于身份操作,所述更新函数包括添加所述机密份额中的一个,并且更新函数的每次执行使用机密份额中的一个,使得所有机密份额使用一次。
因此,对所有机密份额执行添加在伪随机函数执行结束时提供要被提供给密码算法的输入值或输入值的部分。
在第三实施例中,所述更新函数生成输出,所述输出包括将身份函数应用于其输入的部分的结果,并且包括使用加密密钥对其输入进行加密的结果。
因此,在更新函数的任何数量的执行后,主输出值始终包含要被提供给密码算法的输入值或输入值的部分。
根据第二方面,本发明因此还涉及一种可直接加载到至少一个计算机的存储器中的计算机程序产品,包括当所述产品在计算机上运行时用于执行根据第一方面的方法的步骤的软件代码指令。
根据第三方面,本发明因此还涉及一种包括存储器、接口和处理器的设备,所述处理器被配置成执行根据第一方面的方法的步骤。
附图说明
以下描述和附图详细阐述了某些说明性方面,并且只指示了可以采用实施例的原理的各种方式中的几种。当结合附图考虑时,从以下详细描述中其他优点和新颖特征将变得显而易见,并且所公开的实施例旨在包括所有这样的方面及其等同物。
图1是根据本发明的实施例的客户端设备的示意图;
图2是本发明核心方面的示意图;
图3示意性地图示了根据本发明的实施例的白盒密码算法的安全执行的方法;
图4是本发明的实施例的示意图。
具体实施方式
在以下详细描述中,参考了附图,所述附图通过图示的方式示出了可以实践本发明的特定实施例。这些实施例被足够详细的描述,以使本领域技术人员能够实践本发明。应当理解,本发明的各种实施例尽管不同,但不一定是相互排斥的。例如,在不脱离本发明的精神和范围的情况下,可以在其他实施例内实现本文中结合一个实施例描述的特别特征、结构或特性。另外,应当理解,在不脱离本发明的精神和范围的情况下,可以修改每个公开的实施例内的单独元件的位置或布置。因此,以下详细描述不应被认为是限制性意义的,并且本发明的范围仅由适当地解释的所附权利要求连同权利要求所赋予的等同物的全部范围限定。
根据第一方面,本发明涉及一种方法,所述方法用于使在受基于伪随机值或随机化技术的对策保护的密码算法的白盒背景中的执行安全。
密码算法和该方法的步骤由计算设备100执行,其示意图在图1上示出。计算设备可以包括处理器101,该处理器101经由总线106连接到随机存取存储器(RAM)103、只读存储器(ROM)104和/或非易失性存储器(NVM)105。计算设备可以进一步包括网络接口(102),客户端设备可以通过该网络接口(102)连接到各种无线网络,例如,广域网、WiFi网络或移动电话网络。可替代地,计算设备可以经由诸如以太网之类的有线网络连接连接到网络。计算设备还可以包括输入/输出接口107,该输入/输出接口107向计算设备的用户提供接口,诸如一个或多个屏幕、扬声器、鼠标、触觉表面、键盘等。这样的计算设备可以例如是智能芯片、移动电话、平板电脑或个人计算机。
在执行密码算法并包括白盒对策的现有方法中,通常使用要由密码算法处理的消息m来初始化用于生成对策中使用的伪随机值的仿真的熵源,诸如伪随机数生成器(PRNG)。例如在欧洲专利申请16306234.2中给出了这样的实现。PRNG的初始化以及将此消息m提供给密码算法通常是两个独立的操作,除了它们应该使用相同的输入值。如以上所解释的,这使得攻击者可能更改PRNG的初始化,以便使其恒定,而无需修改密码算法执行。最后,通过执行低阶DCA攻击,能够使其取消对策并从密码算法执行中获取机密信息的知识。
本发明的主要思想是在PRNG的初始化和密码算法的执行之间引入强烈的依赖性,使得如果攻击者修改该初始化,则它还将更改密码算法的执行。因此,即使攻击者设法基于由PRNG生成的值而禁用白盒对策,他也将无法从其执行中获得任何有用的信息,除非攻击者执行更高阶的DCA攻击。
为了这样做,如在图2上所示,伪随机函数用于产生要在对策中使用的伪随机值,并该伪随机函数应该是利用要由密码算法处理的消息m进行初始化的,如在现有方法中那样;但是此消息m不独立于此伪随机函数的执行而提供给密码算法。代替地,处理伪随机函数的主输出并将其作为输入提供给密码算法。该伪随机函数和应用于其主输出的处理应设计成使得当使用消息m真正初始化伪随机函数时,该消息m或从其导出的要由密码算法处理的值通过所述处理可以容易地从主输出中检索到。在该情况下,正确的输入被提供给密码算法,就好像消息m或从其导出的要由密码算法处理的值已经直接被提供给它一样。
使用伪随机函数和密码算法的这样的链式执行,当攻击者修改伪随机函数的初始化时,其主输出也会被修改,并且从主输出获得的并提供给密码算法的值不再是应该要由它处理的内容。
伪随机函数还包括在输出其主输出值之前对其主输出值进行加密。密码算法应相应地适于采用通过处理加密的主输出值而获得的加密的值作为输入。通过这样做,当攻击者更改熵源的初始化时,即使攻击者设法禁用保护密码算法的对策,也使用与消息m无关的加密的值作为输入来执行该算法,并且使得对应的解密的值对于攻击者是未知的。结果,攻击者无法从将密码算法的执行作为目标的低阶DCA攻击中获得任何有用的信息。
更精确地,本发明涉及一种用于应用于消息m并由基于伪随机值的对策保护的白盒密码算法的安全执行的方法,该方法包括图3中描述的步骤。密码算法可以基于块密码算法,或者可以是诸如AES或DES算法的块密码算法。
在一实施例中,整个密码算法由对策保护。在另一个实施例中,对策仅应用于密码算法的子函数。作为示例,在DES算法的情况下,该方法可能仅涉及算法的“添加循环密钥”步骤或应用S-盒的“SubByte”步骤的安全执行。
在第一步骤S1中,计算设备的处理器可以执行伪随机函数,该伪随机函数基于从消息m导出的加密的输入值*Xi*来生成伪随机输出值和加密的主输出值。取决于要执行的密码算法的种类,输入值可以仅从消息m的部分中导出,例如,当密码算法仅将消息m的大部分作为输入时。作为示例,取决于密码算法和白盒对策,可以将输入消息分成大小为64位或128位的若干个字。输入值Xi可以从这样的字中的一个或多个导出。可以在接下来的步骤期间将编码的输入值*Xi*分成若干个部分,并且其大小在执行密码算法期间可能变化。
在第二步骤S2中,计算设备的处理器可以通过基于所述生成的伪随机输出值向密码算法应用所述对策来使所述密码算法安全。例如,当密码算法利用查找表(LUT)时,使密码算法安全可以包括使用所述伪随机输出值作为掩码值来使所述查找表中的至少一个随机化。
在第三步骤S3中,计算设备的处理器可以以加密形式从所述生成的加密的主输出值中检索输入值或输入值的部分。
在第四步骤S4中,计算设备的处理器可以对所述加密的检索值执行安全密码算法。
在示例性实施例中,白盒密码算法包括使用至少一个编码的查找表实现的至少一个操作。Chow等人于2002年10月15日在针对ACM DRM-2002研讨会的预会刊(Pre-proceedings)中在“A White-Box DES Implementation for DRM Applications”中给出DES算法的这样的实现的示例。在这样的情况下,可以使用对应于所述编码的查找表的编码的编码来对加密的检索值进行加密。通过这样做,利用编码的LUT处理加密的检索值等同于利用对应的解码的LUT处理输入值Xi。在所有以下段落中,词语“加密的”和“编码的”具有相同的含义,并且受加密/编码保护的值标记有星号。例如,使用符号*Xi*来指代输入值Xi的编码版本。
在一实施例中,所生成的伪随机输出值和主输出值也由伪随机函数基于在密码算法的先前执行期间获得的至少一个中间值*Yi*来生成。为了避免向攻击者公开任何信息,优选地仅以编码形式来操控这样的中间值。在这样的实施例中,在第三步骤S3期间,处理器可以取决于输入值Xi和中间值Yi两者来检索值,记为g(Xi,Yi),其中g的典型选择是。此外,伪随机函数也可以将由伪随机函数在其上一次执行期间生成的最后的主输出值作为输入。
以下段落详细讨论了伪随机函数的若干示例性实施例。伪随机函数具有内部状态S,该内部状态S在第一步骤开始时使用作为输入提供给伪随机函数的值进行初始化,这些值是输入值*Xi*以及可选地是中间值*Yi*,以及由伪随机函数生成的最后的主输出值。在第一步骤开始时,对于伪随机函数的第i次执行循环,伪随机函数的编码的初始内部状态被记为*Si*。
为了生成用于在第二步骤S2期间要应用的对策的伪随机输出值Ri,1、Ri,2...,伪随机函数的执行可以包括修改伪随机函数的内部状态S的更新函数的若干次执行;以及伪随机输出值可以是由更新函数输出的伪随机函数的修改的内部状态。在伪随机函数的第i次执行循环期间,在更新函数的第j次执行之后,伪随机函数的内部状态记为Si,j
更新函数可以在伪随机函数的执行的两个循环之间变化,并且也可以在伪随机函数的单个执行期间从一个执行变化到另一个。
加密的主输出值可以是针对伪随机函数的给定执行循环的更新函数的最后执行的输出。假定在第i次执行循环期间,更新函数执行了xi次,则针对该执行循环的主输出值等于Si,xi
在图4上所描绘的实施例中,从用于对策的伪随机输出值Ri,1、Ri,2...中检索要用作到密码算法的输入的输入值或输入值的部分。换句话说,主输出值由伪随机输出值中的一个或多个组成。在第三步骤S3中,可以从伪随机输出值本身、或者从基于在第二步骤S2处所述生成的伪随机输出值向密码算法应用所述对策而导出的值中检索输入值或输入值的部分。
在第一示例性实施例中,所述更新函数是加密函数ENC或对应的解密函数DEC,并且执行所述伪随机函数包括使用以特定顺序(Key1、Key2、...、KeyP、KeyP+i、...Keyq)的各种密钥的所述加密函数的若干次执行,之后接着同样数量次执行使用以相反顺序(Keyq、...、KeyP+i、KeyP、...、Key2、Key1)的所述密钥的所述对应解密函数。
对于xi,用于伪随机函数的一次执行的更新函数的执行次数应该是偶数,这样的实施例执行xi/2个加密微循环,之后接着执行xi/2个解密微循环,使得在xi/2个加密微循环和xi/2个解密微循环之后的状态Si,xi包含要检索的输入值Xi的部分或值g(Xi,Yi)的部分,其中g的典型选择是
作为示例,更新函数可以是键控的非线性置换或块密码加密的一个循环,例如AES的一个加密循环。
在执行伪随机函数的期间,伪随机函数的内部状态的值从不以明文形式操控,而是始终以编码的形式操控,例如值*Si*在执行期间***控,但值Si未***控。
对于在下面详述的j的某个值,要生成的伪随机输出值可以等于伪随机函数的内部状态Si,j
通常,流程可以如下:
-初始状态值:
-并且没有生成伪随机输出值,
-并且没有生成伪随机输出值,
-……
-并且生成伪随机输出值
-并且生成伪随机输出值
-……
-并且生成伪随机输出值
-……
-并且生成伪随机输出值
-……
-并且没有生成伪随机输出值,
-并且没有生成伪随机输出值,
-……
-并且没有生成伪随机输出值,
-并且没有生成伪随机输出值
-
在最后的微循环结束时,可以从加密的主输出值*Si+1*中提取要检索的输入值Xi的部分或g(Xi,Yi)的部分并且提供为到密码算法的输入。
在第二示例性实施例中,将主机密ki分成xi个机密份额ki,1、ki,2、…ki,xi,使得添加所述主机密等同于身份操作。在这样的第二实施例中,所述更新函数包括添加所述机密份额中的一个,并且更新函数的每次执行使用机密份额中的一个,使得所有机密份额被使用一次。
每个微循环以这样的方式通过对应的机密ki,j修改伪随机函数的内部状态Si,j,在该方式中在xi个微循环后所有机密都已使用。最终状态Si,xi可以使用主机密ki进行计算,并且因此包含要检索的输入值Xi的部分或g(Xi,Yi)的部分。在计算步骤期间不操控主机密,仅使用机密份额。
例如,可以使用主机密mod g,其中g是整数,诸如例如2128
-初始状态值:
-并且没有生成伪随机输出值,
-并且没有生成伪随机输出值,
-……
-并且生成伪随机输出值
-并且生成伪随机输出值
-……
-并且生成伪随机输出值
-并且生成伪随机输出值
-……
-并且没有生成伪随机输出值,
-
在最后的微循环结束时,可以从加密的主输出值*Si+1*中提取要检索的输入值Xi的部分或g(Xi,Yi)的部分并且提供为到密码算法的输入。
在第三示例性实施例中,所述更新函数生成包括以下的输出:
·将身份函数ID应用于其输入pofS的部分的结果,以及
·使用加密密钥Key对其输入进行加密ENC的结果。
这样的实施例使用加密作为伪随机函数以用于更新伪随机函数的内部状态Si,j的部分,而Si,j的其余部分通过使用身份函数而维持恒定。由于所有中间值使用机密编码进行操控,并且这些机密编码可以取决于计算步骤而变化,因此即使通过观察内部状态的连续值,也不必要看到在更新函数的若干次执行期间身份函数用于传播相同值。然后,在更新函数的最后执行结束时,已经传播的值Si的部分,即使可以提取身份函数的使用以提供作为到密码算法的输入。
通常,流程可以如下,其中“pof”代表下一个公式中的“部分”:
-初始状态值:
-并且没有生成伪随机输出值,
-并且没有生成伪随机输出值,
-……
-并且生成伪随机输出值
-并且生成伪随机输出值
-……
-
在最后的微循环结束时,可以从加密的主输出值*Si+1*中提取要检索的输入值Xi的部分或g(Xi,Yi)的部分并且提供为到密码算法的输入。
最后,根据本发明的第二方面,本发明涉及一种可直接加载到至少一个计算机的存储器中的计算机程序产品,其包括用于当所述产品在计算机上运行时由计算机的处理器执行根据第一方面的方法的步骤的软件代码指令。
因此,上文所述的方法能够在白盒对策和密码算法的输入之间施加牢固的联系,使得修改产生用于对策的伪随机值的PRNG的初始化导致修改提供给密码算法的输入值。

Claims (11)

1.一种用于安全地执行应用于消息并由基于伪随机值的对策保护的白盒密码算法的方法,所述方法包括以下步骤:
-执行伪随机函数,所述伪随机函数基于从所述消息导出的加密的输入值生成伪随机输出值和加密的主输出值,
-通过基于所述生成的伪随机输出值向所述密码算法应用所述对策来使所述密码算法安全,
-从所述生成的加密的主输出值中以加密的形式检索输入值或输入值的部分,
-对加密的检索值执行安全的所述密码算法。
2.根据权利要求1所述的方法,其中所述密码算法基于块密码算法。
3.根据权利要求1所述的方法,其中所述白盒密码算法包括使用至少一个编码的查找表实现的至少一个操作,并且其中使用对应于所述编码的查找表的编码的所述编码来加密所述加密的检索值。
4.根据权利要求3所述的方法,其中使所述密码算法安全包括使用所述伪随机输出值作为掩码值来随机化所述查找表中的至少一个。
5.根据权利要求1至4中任一项所述的方法,其中所述伪随机输出值和所述主输出值也由所述伪随机函数基于在所述密码算法的先前执行期间获得的至少一个中间值来生成。
6.根据权利要求1至4中任一项所述的方法,其中执行所述伪随机函数包括更新函数的若干次执行,其中所述伪随机输出值中的至少一个是所述更新函数的输出,并且所述加密的主输出值是所述更新函数的最后的执行的输出。
7.根据权利要求6所述的方法,其中所述更新函数是加密函数或对应的解密函数,其中执行所述伪随机函数包括以特定顺序使用各种密钥若干次执行所述加密函数,之后接着以相反的顺序使用所述密钥同样数量次执行所述对应的解密函数。
8.根据权利要求6所述的方法,其中将主机密分成机密份额,使得添加所述主机密等同于身份操作,其中所述更新函数包括添加所述机密份额中的一个,并且其中,所述更新函数的每次执行使用所述机密份额中的一个,使得所有所述机密份额使用一次。
9.根据权利要求6所述的方法,其中所述更新函数生成输出,所述输出包括将身份函数应用于其输入的部分的结果,并且包括使用加密密钥对其输入进行加密的结果。
10.一种计算机可读存储介质,其中存储有包括软件代码指令的计算机程序,用于当所述软件代码指令在计算机上运行时执行权利要求1至9中任一项所述的方法。
11.一种设备,其包括存储器(103、104、105)、接口(107)和处理器(101),所述处理器(101)被配置成执行权利要求1至9中任一项所述的方法。
CN201880077544.4A 2017-11-30 2018-11-28 用于保护在使白盒密码算法安全的对策中使用的熵源的方法 Active CN111602367B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17306665.5 2017-11-30
EP17306665.5A EP3493457A1 (en) 2017-11-30 2017-11-30 Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm
PCT/EP2018/082850 WO2019106016A1 (en) 2017-11-30 2018-11-28 Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm

Publications (2)

Publication Number Publication Date
CN111602367A CN111602367A (zh) 2020-08-28
CN111602367B true CN111602367B (zh) 2023-04-25

Family

ID=61187054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880077544.4A Active CN111602367B (zh) 2017-11-30 2018-11-28 用于保护在使白盒密码算法安全的对策中使用的熵源的方法

Country Status (5)

Country Link
US (1) US11336429B2 (zh)
EP (2) EP3493457A1 (zh)
CN (1) CN111602367B (zh)
AU (1) AU2018374489B2 (zh)
WO (1) WO2019106016A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625498B2 (en) * 2021-04-29 2023-04-11 Arris Enterprises Llc Cloud-based whitebox node locking

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106059752A (zh) * 2016-07-04 2016-10-26 中国科学院信息工程研究所 一种基于扩张密文的白盒密码加解密方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899190B2 (en) * 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
CN101496342B (zh) * 2006-07-21 2012-05-30 日本电气株式会社 加密装置、程序及方法
US8422668B1 (en) * 2006-12-15 2013-04-16 Spansion Llc Table lookup operation on masked data
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
US9654279B2 (en) * 2014-03-20 2017-05-16 Nxp B.V. Security module for secure function execution on untrusted platform
SG10201405852QA (en) * 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
DE102014016548A1 (de) * 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen
US10097342B2 (en) * 2015-07-30 2018-10-09 Nxp B.V. Encoding values by pseudo-random mask
KR101914453B1 (ko) * 2015-10-29 2018-11-02 삼성에스디에스 주식회사 암호화 장치 및 방법
KR101989956B1 (ko) * 2015-10-29 2019-06-17 삼성에스디에스 주식회사 암호화 장치 및 방법
KR102397579B1 (ko) * 2017-03-29 2022-05-13 한국전자통신연구원 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106059752A (zh) * 2016-07-04 2016-10-26 中国科学院信息工程研究所 一种基于扩张密文的白盒密码加解密方法

Also Published As

Publication number Publication date
US20200328876A1 (en) 2020-10-15
CN111602367A (zh) 2020-08-28
AU2018374489A1 (en) 2020-06-04
US11336429B2 (en) 2022-05-17
EP3493457A1 (en) 2019-06-05
WO2019106016A1 (en) 2019-06-06
EP3718246A1 (en) 2020-10-07
AU2018374489B2 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
CN105453481B (zh) 包括表网络的计算设备
EP2398182B1 (en) A device and a method for generating software code
CN108352981B (zh) 被布置用于计算目标块加密的密码设备
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
US8000473B2 (en) Method and apparatus for generating cryptographic sets of instructions automatically and code generator
KR102413846B1 (ko) Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
JP5861018B1 (ja) テーブルネットワークによって構成されたコンピューティングデバイス
JP6877889B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US8699702B2 (en) Securing cryptographic process keys using internal structures
US8976960B2 (en) Methods and apparatus for correlation protected processing of cryptographic operations
Tsoutsos et al. Advanced techniques for designing stealthy hardware trojans
JP7078631B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
JP2020510879A (ja) 楕円曲線点乗算デバイス及び方法
JPWO2019031025A1 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
CN111602367B (zh) 用于保护在使白盒密码算法安全的对策中使用的熵源的方法
CN115730296A (zh) 密码学过程的安全执行
WO2020173662A1 (en) Method secured against side-channel attacks with a new masking scheme protecting linear operations of a cryptographic algorithm
Susanto et al. Security Improvement of the 256-BIT AES Algorithm with Dynamic S-Box Based on Static Parameter as the Key for S-Box Formation
Josse White-box attack context cryptovirology
Eshan et al. An investigation on implementations of theoretical whitebox cryptographic solutions
Oswald et al. Side-channel analysis and its relevance to fault attacks
JP2015102639A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230315

Address after: French Meudon

Applicant after: Thales Digital Security France Easy Stock Co.

Address before: French Meudon

Applicant before: Thales Digital Security France

GR01 Patent grant
GR01 Patent grant