CN107111966A - 用于测试并且加固软件应用的方法 - Google Patents

用于测试并且加固软件应用的方法 Download PDF

Info

Publication number
CN107111966A
CN107111966A CN201580070804.1A CN201580070804A CN107111966A CN 107111966 A CN107111966 A CN 107111966A CN 201580070804 A CN201580070804 A CN 201580070804A CN 107111966 A CN107111966 A CN 107111966A
Authority
CN
China
Prior art keywords
whitepack
plaintext
look
ciphertext
realizes
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
CN201580070804.1A
Other languages
English (en)
Other versions
CN107111966B (zh
Inventor
H.德雷克斯勒
S.鲍尔
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.)
Quartech Mobile Security LLC
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to CN202010868468.8A priority Critical patent/CN112002210B/zh
Publication of CN107111966A publication Critical patent/CN107111966A/zh
Application granted granted Critical
Publication of CN107111966B publication Critical patent/CN107111966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G09C1/06Apparatus 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 wherein elements corresponding to the signs making up the clear text are operatively connected with elements corresponding to the signs making up the ciphered text, the connections, during operation of the apparatus, being automatically and continuously permuted by a coding or key member
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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
    • 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/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES 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/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/0822Key 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 key encryption key
    • 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/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

提供一种一方面用于测试软件应用并且另一方面用于加固用于执行数字交易的软件应用的方法,所述数字交易包含密码算法的“白盒”实现。所述用于测试密码算法的在处理器上可执行的借助秘密密钥根据明文产生密文并且以机器命令的形式出现在具有至少一个寄存器的处理器上的“白盒”实现的方法包含以下步骤:(a)将多个明文中的一个明文馈送至“白盒”实现中;(b)在逐步运行“白盒”实现的机器命令时,逐步读取并且保存处理器的至少一个寄存器的内容,其中,在逐步运行“白盒”实现的机器命令时可以产生中间结果;(c)用多个明文中的另一明文,重复步骤(a)和(b)N次;和(d)通过寻找寄存器内容与明文、中间结果和/或密文之间的关联,以确定秘密密钥,来对寄存器内容以及明文、中间结果和/或根据明文产生的密文进行统计评估。

Description

用于测试并且加固软件应用的方法
技术领域
本发明一般地涉及保护软件应用抵御攻击的技术领域。特别地,本发明涉及一种一方面用于测试软件应用并且另一方面用于加固软件应用的方法,所述软件应用用于执行包含密码算法的“白盒”实现的数字交易。
背景技术
智能电话形式的移动终端设备越来越多地用于执行数字交易,例如用于NFC终端上的无现金支付或者用于在网上零售商处购买商品或服务。在执行这样的数字交易时,在智能电话上实现的软件应用(简称为“App”)通常与终端或服务器相互作用。在此,诸如加密算法的密码算法经常是在移动终端设备上实现的软件应用的一部分,所述软件应用访问诸如PIN、密码、密钥等的安全关键数据。过去,安全关键数据通常存储在移动终端设备的经常为可从移动终端设备中取出的SIM卡形式的独立的安全元件上,以便对其进行保护以防未授权人员的攻击。
一种较新的方法以所谓的“白盒”密码学为基础,尤其可以在用移动终端设备执行数字交易时有利地使用所述方法,所述移动终端设备不具有用于安全地存储安全关键数据的独立安全元件。在密码算法的“白盒”实现中,尝试在实现中隐藏安全关键数据、尤其是机密的密码学密钥,使得对实现进行完全访问的攻击者不能从中提取安全关键数据。AES加密算法(“Advanced Encryption Standard”,高级加密标准)的“白盒”实现例如从JamesA.Muir的出版物“A Tutorial on White-Box AES”,Cryptology ePrint Archive,Report2013/104中已知。同样地,密码算法或例程的“白盒”实现在商业上销售。
发明内容
本发明要解决的技术问题是,提供一种一方面用于测试并且另一方面用于加固软件应用的方法,所述软件应用用于执行包含密码算法的“白盒”实现的数字交易。
根据本发明,通过独立权利要求的各个主题来解决上述技术问题。在从属权利要求中定义了本发明的优选实施方式。
令人意外地,在发明人的研究中表明,在商业上可获得的密码算法或例程的“白盒”实现中可以得到机密密钥,也就是说借助下文中的按照本发明第一方面的方法。
根据本发明的第一方面,提供一种用于测试密码算法的在处理器上可执行的“白盒”实现的方法,所述“白盒”实现借助秘密密钥根据明文产生密文并且以机器命令的形式出现在处理器上,其中所述处理器包含至少一个寄存器。在此,所述方法包含以下步骤:(a)将多个明文中的一个明文馈送至“白盒”实现中;(b)在逐步运行“白盒”实现的机器命令时,逐步读取并且保存处理器的至少一个寄存器的内容,其中,在逐步运行“白盒”实现的机器命令时可以产生中间结果;(c)用多个明文中的另一明文,重复步骤(a)和(b)N次;和(d)通过寻找寄存器内容与明文、中间结果和/或密文之间的关联,以确定秘密密钥,来对寄存器内容和明文、中间结果和/或根据明文产生的密文进行统计评估。
优选地,用于明文的寄存器的内容被当做已处理的机器命令的数目的函数来处理,所述函数类似于在差动电流分析(differentielle Stromanalyse)中的电流曲线(Stromkurve)。
根据本发明的优选实施方式,“白盒”实现是执行数字交易的软件应用的部分。
优选地,对寄存器的内容以及明文、中间结果和/或根据明文产生的密文进行统计评估的步骤(d)包含:借助在差动电流分析中已知的统计方法来进行评估。
根据本发明的优选实施方式,N选择为如此之大,使得对寄存器内容和明文、中间结果和/或根据明文产生的密文的统计评估是可能的。优选地,使用至少10、100或1000个不同的明文来执行步骤(a)和(b)。
优选地,在读取至少一个寄存器的步骤(b)中,仅仅从在“白盒”实现中预定义的机器命令开始执行。
根据本发明的优选实施方式,在读取至少一个寄存器内容的步骤(b)中,从用于预定义数量的M个机器命令的预定义的机器命令开始执行。
优选地,密码算法的“白盒”实现是指AES算法的“白盒”实现。
根据本发明的优选实施方式,在对寄存器内容以及明文、中间结果和/或根据明文产生的密文进行统计评估的步骤(d)中,使用这样的中间结果和/或根据明文产生的密文,其仅仅与秘密密钥的少数比特位相关联。
根据本发明的第二方面,提供一种用于加固密码算法的在处理器上可执行的“白盒”实现的方法,所述“白盒”实现在使用密码密钥的情况下可以根据明文产生密文。在此,这样设计“白盒”实现,使得在产生密文时使用至少一个查找表,以便将查找表的输入值静态地映射至查找表的输出值。所述方法包含这样的步骤,查找表被这样统计学置换,使得经置换的查找表的各个比特位基本上与查找表的比特位不相关。换言之,借助置换P来这样进行统计学置换,使得在随机变化的输入x的情况下经置换的查找表T′(x)=P(T(x))的各个比特位与T(x)比特位不相关。
优选地,所述方法还包含“白盒”实施随机化的步骤。在此,“随机化”基本上是指,在每次执行“白盒”实施时,散布附加的、变化的优选具有随机数形式的偶然事件。
根据本发明的第三方面,提供用于加固密码算法的在处理器上可执行的“白盒”实现的另一方法,所述“白盒”实现可以在使用密码密钥的情况下根据明文产生密文。在此,这样设计“白盒”实现,使得在产生密文时使用至少一个查找表,以便将查找表的输入值静态地映射至查找表的输出值。所述方法包含“白盒”实现随机化的步骤。在此,“随机化”基本上被理解为,在每次执行“白盒”实现时,散布附加的、变化的优选具有随机数形式的偶然事件。
优选地,根据本发明第二或第三方面的“白盒”实施随机化的步骤包含“白盒”实现的程序流程的随机混淆的步骤。
根据本发明的优选实施方式,根据本发明第二或第三方面的“白盒”实现随机化的步骤包含引入功能上等效的代码变形的步骤,从中可以在执行“白盒”实现时随机地选择代码变形中的一个。
优选地,根据本发明第二或第三方面的“白盒”实现随机化步骤包含随机掩码中间结果、输入数据和/或输出数据的步骤。
根据本发明的优选实施方式,根据本发明第二或第三方面的“白盒”实现随机化的步骤包含引入随机的改变,所述改变再次放弃在“白盒”实现中进行的操作。
优选地,根据本发明第二或第三方面的“白盒”实现的随机化步骤包含使制表函数随机化的步骤。
根据本发明的优选实施方式,根据本发明第二或第三方面的“白盒”实现随机化步骤包含通过查找表的多个功能等效的变形来替代在“白盒”实现中使用的查找表,其中,在执行“白盒”实施时,可以每次随机地选择查找表的功能等效变形中的一个。在此,优选在统计学上这样置换查找表的变形,使得经置换的查找表的单个比特位与原始查找表的比特位不相关。
根据本发明的第四方面,提供密码算法的“白盒”实现,所述“白盒”实现可以在使用密码密钥的情况下根据明文产生密文,其中,借助根据本发明第二或第三方面的方法对“白盒”实现进行了加固。
附图说明
从下文中多个实施例和实施替换例的详细描述中得到本发明的其他特征、优点和任务。参照附图,其中,
图1示出与移动终端之间的示例性通信系统的示意图,其中,可以有利地使用本发明;
图2示出流程图,其示出用于测试根据优选实施方式执行数字交易的软件应用的方法的流程,所述实施方式包含密码算法的“白盒”实现并且被实施在图1的移动终端上;和
图3示出流程图,其示出用于加固优选实施方式执行数字交易的软件应用的方法的流程,所述实施方式包含密码算法的“白盒”实现并且被实施在图1的移动终端上。
具体实施方式
图1示出示例性通信系统10的示意图,其中,可以有利地使用本发明。通信系统10包含具有移动终端形式、优选具有智能电话形式的计算机单元20。移动终端20被构造,以便通过通信信道50来与服务器或终端60进行通信。通信信道50可以例如是互联网、无线移动通信网、NFC信道或诸如此类。服务器60可以是服务提供者的NFC终端,借助所述NFC终端,在移动终端设备20上的软件应用26b可以执行交易,例如,支付交易,其中软件应用进行支付过程。
移动终端20提供芯片22,其具有例如具有微处理器24形式的中央处理单元(CPU)。已知处理器24的首要任务是执行算法和逻辑功能并且读取和写入数据元素,就像通过以机器命令的形式在处理器24上运行的软件应用所定义的那样。对此,处理器24在图1示出的实施方式中包含运算器30以及控制器40。
处理器24的运算器30优选地主要由计算逻辑单元(ALU)32以及多个工作或数据寄存器组成,其中在图1中示例性地示出三个寄存器、也就是寄存器R0、R1和R2,并且用附图标记34、36和38来标记。但是通常运算器30包含多于图中示出的三个寄存器R0、R1和R2,例如四个、八个、十六个或更多个寄存器。运算器30基本上已知地被构造为,以便借助ALU 32根据由处理器24执行的软件应用来使数据元素彼此联系并且将这样联系的结果例如存储在寄存器R0、R1和R2中以便进一步处理。在此,例如寄存器R0、R1和R2中的至少一个可以用作ALU 32的累加器。
处理器24的控制器40基本上已知地用于基于在处理器24上运行的软件应用的机器命令的连续处理来控制运算器30和必要时处理器24其他部件的工作方式。在此,处理器24的控制器40同样包含多个寄存器,也就是说,优选尤其包含一个指令计数器(“programcounter”,PC)42、指令寄存器(“instruction register”,IR)44、状态寄存器(“statusregister”,SR)46以及栈寄存器(“stack pointer”,SP)48。
指令计数器PC通常分别包含处理器24上运行的软件应用的下一个要执行的机器命令的存储器地址。当前要执行的机器命令被存储在指令寄存器IR中。控制寄存器SR这样被构造,以便从运算器30和控制器40中接收反馈,所述反馈可以影响由处理器24执行的软件应用中的地址递增(Addressfortschaltung)。处理器24的控制器40的栈寄存器SP 48用于管理栈存储器(也被成为“栈”),所述栈存储器可以被实现在移动终端20的存储器单元26中。在此,控制器40的栈寄存器SP 48通常包含存储器地址,所述存储器地址定义在存储器单元26中栈存储器的可变端。
与处理器24通信连接的存储器单元26可以优选包含易失性工作存储器(RAM),用于容纳要被处理器24执行的软件应用的机器命令。此外,存储器单元26可以包含非易失性、优选可重写的存储器,以便例如在切断电源的状态下容纳要由处理器24执行的软件应用的机器命令。优选地,非易失性的、可重写的存储器可以是闪存(Flash-EEPROM)。在此,其例如可以是具有NAND或NOR体系结构的闪存。当然,存储器单元26也可以包含只读存储器(“readonly memory”,ROM)。
在图1中示意性示出,用于执行移动终端10与服务器60之间的数字交易的软件应用26a被存储在存储器单元26上。按照本发明,软件应用26a包含密码算法的“白盒”实现,例如在图1中用附图标记26b表示的AES算法的“白盒”实现。在此,这样构造“白盒”实现,使得借助在“白盒”实现26b中隐藏的(也就是秘密的)密码密钥来根据明文产生密文。
进一步参考附图2,下文中描述用于测试图1的“白盒”实现的方法的优选实施方式。
在图2的步骤S1中,向待测试的“白盒”实现26b(或软件应用26a,其包含待测试的“白盒”测试)提供第一已知明文作为输入,以便通过“白盒”实现26b借助其中隐藏的秘密密钥进行加密,也就是产生相应的密文。
在图2的步骤S2中,在逐步运行机器命令时,逐步地读取处理器24的寄存器R0、R1、R2的内容并且存储,所述机器命令存储在存储器单元26上并且定义“白盒”实现26b(或软件应用26a,其包含待测试的“白盒”实现26b)。优选地,在此读取处理器24的所有数据存储器。就像本领域技术人员所已知的那样,可以例如借助调试器来执行存储器内容的读取和存储。优选地,在每个步骤中、也就是在每个命令之后,读取并且存储寄存器内容。在逐步运行用于根据明文产生密文的机器命令时,可以产生一个或多个中间结果。
尤其对于密码算法的“白盒”实现是大规模软件应用26a的部分的情况而言,按照本发明可能有利的是,仅仅从在软件应用26a中的可定义的机器命令开始,才执行处理器24的寄存器内容的逐步读取和存储(可比较的是,在调试时的中断点(“breakpoint”))。
就像上文中已经提到的那样,“白盒”实现26b的机器命令的逐步处理的最终结果是与在步骤S1中输入的明文相对应的密文,所述密文在步骤S3中被“白盒”实现26b输出。优选地,与已经在步骤S2中在机器命令的每次处理之后所存储的处理器24的寄存器内容相关联地,存储密文和/或相对应的明文。此外,可以存储特定的在产生密文时所计算的中间结果。
按照本发明,实施或重复图2的步骤S1至S3用于多个明文(参见图2的步骤S4)。优选地,实现或重复图2的步骤S1至S3,用于多于10个、多于100个或者多于1000个不同的明文。就像本领域技术人员所已知的那样,每次重复步骤S1至S3,得到各自数据组,所述数据组包含处理器24的用于“白盒”实现26b的各个机器命令的寄存器内容、输入的明文、选择的中间结果和相关联的密文。
在图2的步骤S5中,借助步骤S1至S4所获得的数据组被评估,以便通过借助“白盒”实现从各个明文中产生密文所应用的密钥来获得信息。在此,按照本发明使用统计方法,就像从微分功率分析(“Differential Power Analysis”,DPA)中所已知的那样,其中,其已知地涉及芯片卡的旁道攻击的形式。按照本发明,可以这样尤其有利地应用在对于由芯片卡实施的密码算法的微分功率分析而言已知的统计方法,使得就像在微分功率分析中的电流曲线(作为机器命令或时间的函数的电流特性曲线)那样,作为已处理的机器命令数量或时间的函数来对待处理器的寄存器的内容。
就像本领域技术人员所已知的那样,在微分功率分析中,攻击者在电流曲线中寻找功率消耗和中间结果之间的关联以用于秘密密钥的猜测部分,所述关联被计算用于该部分密钥和已知的明文或密文。也就是说,攻击者假定密钥的一部分(例如一个字节)具有特定的值并且然后选择在密码算法中的计算步骤,所述计算步骤的结果仅仅依赖于密钥的该部分以及已知的明文数据或密文数据。针对该固定的部分密钥值和变化的明文数据或密文数据,攻击者然后计算被攻击计算步骤的结果。如果其发现在所计算的数据和在处理相同明文或密文数据时所记录的被攻击设备的功率消耗之间的显著关联,那么攻击者假定其已经正确地确定了部分密码值。如果没有针对该部分密码值没有发现显著的关联,那么,攻击者选择用于部分密码的另一数值。如果针对部分密钥的任何值都没有发现关联,那么,对部分密钥的攻击失败。如果合适地选择待攻击的计算步骤,那么,在计算中输入的部分密钥这么短,以便攻击者可以尝试对于部分密钥而言所有可能的数值。如果攻击者成功地确定了密钥的部分,那么其使用相同的技术手段以便确定其他的密钥部分。在此,其也可以利用已经成功地确定了一些密钥部分这一事实。
令人惊奇的是,在其中就像上文所述的那样类似于电流曲线地将处理器寄存器的内容处理为机器命令的函数的本发明范围中,在相似地应用微分功率分析中已知的统计方法时,可以确定在“白盒”实现26b中隐藏的密钥,方法是,寻找在寄存器内容和明文、在计算时产生的中间结果和/或所产生的密文之间的关联。在此,尤其在计算密文时产生的这样的中间结果是适宜的,其仅仅和密钥的少数比特位相关联。
对于与微分功率分析和在此使用的确定秘密密钥的统计方法相关的其他细节,其参见出版物“Differential Power Analysis”,作者是Paul C.Kocher、Joshua Jaffe、Benjamin Jun,出版在Crypto 1999中。
S.Chow、P.Eisen、H.Johnson、P.C.van Oorschot的出版物“White-BoxCryptography and an AES Implementation”构成了文献中已知的密码算法“白盒”实现的主要基础。在该出版物中,为了在AES算法的“白盒”实现中隐藏密钥,建议使用多个查找表以便将输入位序列映射到输出位序列。对于此处相关的细节,请参见提到的出版物。
在商业可获取的其中使用多个查找表的AES算法“白盒”实现中,发明人成功地借助结合图2所描述的方法在应用几百个明文的情况下提取“白盒”实现中所隐藏的密钥。下文中详细描述此处对AES算法“白盒”实现所使用的攻击。攻击者例如针对200个不同的明文收集寄存器内容。然后,攻击者在AES中选取一个位置,在该位置处仅仅将秘密密钥的几位整合至结果中,例如第一S盒查找的输出。就像本领域技术人员已知的那样,这与密钥的一个字节和明文的一个字节相关联。现在,攻击者猜测一个数值用于密钥的一个字节。借此,攻击者针对200个明文计算所有的所有200个S盒输出。此时,攻击者考察是否在某一位置处存储器内容与该S盒输出相关联。如果情况如此,那么攻击者可能正确地猜到了密钥字节。如果攻击者没有找到关联,那么其猜测一个新数值用于密钥字节并且重复过程。在该示例中,也就是说,最坏的情况下,攻击者必须尝试一个字节的所有数值,即256个可能的组合,这是可以以相对小的开销来执行的。就像本领域技术人员已知的,对于与密钥的多余一个的字节相关的中间结果而言,开销相应地更大。
令人惊奇地,已经表明的是,通过例如在图1示出的“白盒”实现26b的“白盒”实现中统计学地合适地置换所使用的查找表,可以防御图2示出的攻击或者至少使其变得困难。在合适地统计学置换查找表的情况下,经置换的查找表与原始查找表的比特位不相关。换言之,合适地置换查找表T在此被理解为置换P,其中,在随机变化输入x的情况下,经置换的查找表T′(x)=P(T(x))的单独比特位与比特位T(x)并不相关。
图3以流程图的形式示出用于加固图1的“白盒”实现26b的方法的优选实施方式。
在图3的第一步骤S10中,在“白盒”实现26中寻得查找表。
就像上文所描述的那样,该查找表在图3的步骤S11中这样被统计地置换,使得经置换的查找表的单独比特位基本上与原始查找表的比特位不相关,也就是说,在此这样借助置换P来这样置换查找表T,使得在随机变化的输入x的情况下经置换的查找表T′(x)=P(T(x))的单独比特位与比特位T(x)不相关。
和一般情况下“白盒”实现的查找表的统计置换有关的细节,请参见James A.Muir在Cryptology ePrint Archive,Report 2013/104上的出版物“A Tutorial on White BoxAES”,网址为http://eprint.iacr.org/2013/104,所述置换是指这样的置换,其中并不确保经置换的查找表的单独比特位基本上不与原始查找表的比特位相关。
就像在图3的步骤S12中所示出的那样,可以执行图3的步骤S11用于“白盒”实现26b的其他的、优选所有的查找表。在按照本发明在图3的步骤S11中“加固”了“白盒”实现26b的至少一个查找表之后,可以在步骤S13中采用其他的对图2示出的攻击进行防御或者至少使之变得困难的措施。一般而言,所述其他措施根据本发明的优选实施方式可以表现为将偶然事件散布其中或者“白盒”实现26b的“随机化”。在此,“随机化”基本上被理解为,在每次执行“白盒”实现时散布附加的、变化的优选具有随机数形式的偶然事件。
详细地,根据本发明的优选实施方式可以参见下文中的其他措施:
1、“白盒”实现26b的程序流程可以被随机地混淆。在此,以随机的顺序执行可被并行化的“白盒”实现26b的部分。在此,针对每个过程、也就是针对每个新的明文,重新随机地产生所述顺序。就像对于本领域技术人员已知的那样,例如可以在实施AES算法时将S盒查找并行化。
2、在“白盒”实现26b中可以引入代码变形,其中尽管不同的程序流程但是代码变形提供相同的功能。然后,在执行“白盒”实施时,可以随机地选择这些功能上等效的代码变形中的一个。
3、“白盒”实现26b可以这样被修改,使得中间结果、输入数据和/或输出数据被随机地掩码。在此,中间结果、输入数据和/或输出数据作为总和被分解,其中,每个单独的被加数时随机的。如果例如x是待掩码的数据元素并且r是随机数,那么代替数据元素X地,可以处理数据元素“x XOR r”和r,其中,针对数据元素x所设计的运算必须相应匹配至对数据元素“x XOR r”和r的处理。更一般地,数据元素x可以被表示为多个数据元素xi,i=1,…,n的(算数的或XOR)和。从很多可能的表达中随机地选择一个。起初所提到的表达产生自n=2,其中x1=x XOR r并且x2=r。
4、特别地,结合不对称密码算法,可以在“白盒”实现26b中引入随机的改变,所述改变在实现26b中所进行的计算期间再次放弃。优选地,在此可以使用对于本领域技术人员来说已知的盲法,就像其在作为AIS 46部分的文献“BSI:Minimum Requirements forEvaluating Side-Channel Attack Resistance of RSA、DSA and Diffie-Hellman KeyExchange Implementations”的章节3.4.1.1(网址:http://www.bs.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretat ionen/AIS_46_BSI_guidelines_SCA_RSA_V1_0_e_pdf.pdf)中所描述的那样。
5、在“白盒”实现26b中,制表函数可以被随机化。在处理器上的运行的密码算法中,函数经常以表格的形式存储在存储器上,例如在AES或DES算法中的S盒。如果例如T是一个在“白盒”实现26b中以数值T(0),T(1),T(2),...形式存储的函数,那么可以以这种方式加固“白盒”实现26b,即,代替地例如存储数值T(k)=u XOR T(k XOR v),其中,在每次执行经加固的“白盒”实现26b时重新选择随机数u和v。
6、在“白盒”实现26b中所使用的查找表可以分别通过多个功能上等效的查找表变形来被替代。在此,优选根据图3示出的并且上文中描述的步骤S11来加固这些查找表变形,所述加固也就是统计学上这样置换,使得经置换的查找表的单独比特位基本上不与原始查找表的单独比特位相关。在执行“白盒”实现时,可以分别随机地选择功能上等效的查找表变形中的一个。
虽然优选使用上面描述的措施1至6以便与图3示出的并且上文描述的“白盒”实施26b的查找表的统计置换相结合地对“白盒”实施26b进行随机化,但是本领域技术人员知晓,原则上也可以独立地使用这些措施,以便防御图2示出的对“白盒”实现的攻击或者至少使之困难。
附图标记列表
10 通信系统
20 移动终端
22 芯片
24 处理器
26 存储器单元
26a 软件应用
26b 密码算法的“白盒”实现
30 运算器
32 ALU
34,36,38 寄存器R0,R1和R2
40 控制器
42 指令计数器PC
44 指令寄存器IR
46 控制寄存器SR
48 栈寄存器或栈指针SP
50 通信信道
60 服务器或终端

Claims (15)

1.一种用于测试在处理器(24)上可执行的密码算法的“白盒”实现(26b)的方法,所述“白盒”实现借助秘密密钥根据明文产生密文并且以机器命令的形式存在于处理器(24)上,其中,所述处理器(24)包含至少一个寄存器(R0,R1,R2),并且所述方法包含以下步骤:
(a)将多个明文中的一个明文馈送至“白盒”实现(26b)中;
(b)在逐步运行“白盒”实现(26b)的机器命令时,逐步读取并且保存处理器(24)的至少一个寄存器(R0,R1,R2)的内容,其中,在逐步运行用于根据明文产生密文的“白盒”实现(26b)的机器命令时,能够产生中间结果;
(c)用多个明文中的另一明文,重复上述步骤(a)和(b)N次;和
(d)通过寻找寄存器(R0,R1,R2)的内容与明文、中间结果和/或根据明文产生的密文之间的关联,以确定秘密密钥,来对寄存器(R0,R1,R2)的内容以及明文、中间结果和/或根据明文产生的密文进行统计评估。
2.根据权利要求1所述的方法,其中,
-用于明文的寄存器的内容被当做所执行的机器命令的数目的函数来处理,类似于差动电流分析中的电流曲线;和/或
-对寄存器(R0,R1,R2)的内容以及明文、中间结果和/或根据明文产生的密文进行统计评估的步骤(d)包含借助在差动电流分析中已知的统计方法来评估。
3.根据权利要求1所述的方法,其中,“白盒”实现(26b)是用于执行数字交易的软件应用(26a)的一部分。
4.根据上述权利要求中任一项所述的方法,其中,N选择为如此之大,使得能够对寄存器(R0,R1,R2)的内容以及明文、中间结果和/或根据明文产生的密文进行统计评估。
5.根据上述权利要求中任一项所述的方法,使用至少10、100或1000个不同的明文来执行步骤(a)和(b)。
6.根据权利要求1所述的方法,其中,在读取至少一个寄存器的步骤(b)中,仅仅从在“白盒”实现(26b)中预定义的机器命令开始执行,并且此外优选地,在读取至少一个寄存器内容的步骤(b)中,从用于预定义数量的M个机器命令的预定义的机器命令开始执行。
7.根据上述权利要求中任一项所述的方法,其中,密码算法的“白盒”实现(26b)是指AES算法的“白盒”实现(26b)。
8.根据上述权利要求中任一项所述的方法,其中,在对寄存器(R0,R1,R2)的内容以及明文、中间结果和/或根据明文产生的密文进行统计评估的步骤(d)中,使用仅仅与秘密密钥的少数比特位相关联的中间结果和/或根据明文产生的密文用于统计分析。
9.一种用于加固在处理器(24)上可执行的密码算法的“白盒”实现(26b)的方法,所述“白盒”实现(26b)在使用密码密钥的情况下能够根据明文产生密文,其中,“白盒”实现(26b)被设计为,使得在产生密文时使用至少一个查找表,以将查找表的输入值静态地映射至查找表的输出值,其中,所述方法包含如下步骤:查找表被这样统计学置换,使得经置换的查找表的各个比特位基本上与查找表的比特位不相关。
10.根据权利要求9所述的方法,其中,所述方法还包含“白盒”实现(26b)的随机化步骤。
11.一种提供用于加固在处理器(24)上可执行的密码算法的“白盒”实现(26b)的方法,所述“白盒”实现(26b)能够在使用密码密钥的情况下根据明文产生密文,其中,“白盒”实现(26b)被设计为,使得在产生密文时使用至少一个查找表,以将查找表的输入值静态地映射至查找表的输出值,其中,所述方法包含“白盒”实现(26b)随机化的步骤。
12.根据权利要求10或11所述的方法,其中,所述“白盒”实现(26b)随机化的步骤包含下列步骤中的一个或多个:
-“白盒”实现(26b)的程序流程的随机混淆的步骤;
-引入功能上等效的代码变形的步骤,从中可以在执行“白盒”实现(26b)时随机地选择代码变形中的一个;
-随机掩码中间结果、输入数据和/或输出数据的步骤;
-引入随机的改变,所述改变再次放弃在“白盒”实现(26b)中进行的操作;
-使制表函数随机化的步骤。
13.根据权利要求10或11所述的方法,其中,“白盒”实现(26b)随机化步骤包含通过下列步骤:
-通过查找表的多个功能等效的变形来替代在“白盒”实现(26b)中使用的查找表的步骤,其中,在执行“白盒”实施时,能够每次随机地选择查找表的功能等效变形中的一个。
14.根据权利要求13所述的方法,其中,在统计学上这样置换查找表的变形,使得经置换的查找表的单个比特位与原始查找表的比特位不相关。
15.一种密码算法的“白盒”实现(26b),所述“白盒”实现(26b)能够在使用密码密钥的情况下根据明文产生密文,其中,借助根据权利要求11至14中任一项所述的方法对“白盒”实现(26b)进行了加固。
CN201580070804.1A 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法 Active CN107111966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010868468.8A CN112002210B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102014016548.5 2014-11-10
DE102014016548.5A DE102014016548A1 (de) 2014-11-10 2014-11-10 Verfahren zum Testen und zum Härten von Softwareapplikationen
PCT/EP2015/002246 WO2016074782A1 (de) 2014-11-10 2015-11-09 Verfahren zum testen und zum härten von softwareapplikationen

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010868468.8A Division CN112002210B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法

Publications (2)

Publication Number Publication Date
CN107111966A true CN107111966A (zh) 2017-08-29
CN107111966B CN107111966B (zh) 2020-12-29

Family

ID=54541013

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201580068364.6A Active CN107005404B (zh) 2014-11-10 2015-10-30 实现密码算法的可执行的白盒掩码实施的处理器装置
CN202010868468.8A Active CN112002210B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法
CN201580070804.1A Active CN107111966B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201580068364.6A Active CN107005404B (zh) 2014-11-10 2015-10-30 实现密码算法的可执行的白盒掩码实施的处理器装置
CN202010868468.8A Active CN112002210B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法

Country Status (6)

Country Link
US (4) US10249220B2 (zh)
EP (5) EP3219042B1 (zh)
CN (3) CN107005404B (zh)
CA (1) CA2966417C (zh)
DE (1) DE102014016548A1 (zh)
WO (4) WO2016074774A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003687A (zh) * 2020-08-26 2020-11-27 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014016548A1 (de) 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen
DE102015014038A1 (de) 2015-10-30 2017-05-04 Giesecke & Devrient Gmbh Alternative Darstellung des Krypto-Algorithmus DES
DE102015015953B3 (de) 2015-12-08 2017-04-27 Giesecke & Devrient Gmbh Kryptoalgorithmus mit schlüsselabhängigem maskiertem Rechenschritt (SBOX-Aufruf)
US10171234B2 (en) * 2015-12-16 2019-01-01 Nxp B.V. Wide encoding of intermediate values within a white-box implementation
DE102016008456B4 (de) * 2016-07-12 2018-03-29 Giesecke+Devrient Mobile Security Gmbh White Box AES Implementierung
MX2019006912A (es) * 2016-12-12 2019-10-15 Arris Entpr Llc Criptografia de caja blanca fuerte.
CN106712965B (zh) * 2017-01-17 2020-02-18 数安时代科技股份有限公司 数字签名方法、装置以及密码设备
US10547449B2 (en) * 2017-05-30 2020-01-28 Nxp B.V. Protection against relay attacks in a white-box implementation
WO2019031025A1 (ja) * 2017-08-10 2019-02-14 ソニー株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US10630462B2 (en) * 2017-10-27 2020-04-21 Nxp B.V. Using white-box in a leakage-resilient primitive
EP3493457A1 (en) * 2017-11-30 2019-06-05 Gemalto Sa Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm
CN108090349A (zh) * 2017-12-19 2018-05-29 武汉珈港科技有限公司 一种基于白盒指令和扩展图灵模型的应用程序白盒化保护系统及方法
US11700111B2 (en) * 2019-06-26 2023-07-11 Cryptography Research, Inc. Platform neutral data encryption standard (DES) cryptographic operation
CN111010266B (zh) * 2019-12-09 2023-04-07 广州市百果园信息技术有限公司 消息的加解密、读写方法、装置、计算机设备和存储介质
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
CN113541942B (zh) * 2021-07-12 2022-06-07 西安电子科技大学 基于arx白盒分组密码的数字内容加解密方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2345229A (en) * 1998-12-23 2000-06-28 Motorola Ltd Encryption system resists differential power analysis attacks
CN1636343A (zh) * 1998-07-01 2005-07-06 泰克塞科公司 密码通信方法和装置
CN101034978A (zh) * 2006-03-07 2007-09-12 捷讯研究有限公司 用于密码过程的表分裂
CN101133593A (zh) * 2003-07-31 2008-02-27 格姆普拉斯公司 安全地执行rsa型密码术算法的方法及相应部件
WO2007102898A3 (en) * 2005-11-21 2008-04-17 Atmel Corp Encryption protection method
CN101167114A (zh) * 2005-04-28 2008-04-23 松下电器产业株式会社 程序转换装置、加密处理装置以及加密处理方法
EP1982461A1 (fr) * 2006-02-08 2008-10-22 Sagem Défense Sécurité Protection d'un algorithme cryptographique
US20090158051A1 (en) * 2006-03-10 2009-06-18 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function
CN101491000A (zh) * 2006-07-12 2009-07-22 皇家飞利浦电子股份有限公司 用于混淆密码函数的方法和系统
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
CN101978647A (zh) * 2008-01-31 2011-02-16 耶德托公司 保护智能卡
KR20120068543A (ko) * 2010-12-17 2012-06-27 한국전자통신연구원 화이트박스 암호를 이용한 소프트웨어 설치 장치 및 방법
US20130016836A1 (en) * 2011-07-14 2013-01-17 Apple Inc. Cryptographic process execution protecting an input value against attacks
CN104025501A (zh) * 2011-12-29 2014-09-03 英特尔公司 用于不确定性随机位发生器(nrbg)的方法和装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
CA2327911A1 (en) 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
JP5496663B2 (ja) * 2006-07-12 2014-05-21 イルデト・コーポレート・ビー・ヴイ デジタルデータ処理装置の耐改竄性
WO2008119901A2 (fr) * 2007-02-28 2008-10-09 France Telecom Procede de dechiffrement par un algorithme cryptographique de donnees chiffrees
JP5242560B2 (ja) * 2007-05-30 2013-07-24 パナソニック株式会社 暗号化装置、復号化装置、暗号化方法及び集積回路
US8510726B2 (en) * 2008-05-23 2013-08-13 Irdeto Canada Corporation System and method for generating white-box implementations of software applications
US8094816B2 (en) * 2008-10-21 2012-01-10 Apple Inc. System and method for stream/block cipher with internal random states
JP5688528B2 (ja) * 2009-03-10 2015-03-25 イルデト・ベー・フェー 入力に依存する符号化を用いたホワイトボックス暗号システム
US10102398B2 (en) * 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
EP2443786A1 (en) * 2009-06-19 2012-04-25 Irdeto B.V. White-box cryptographic system with configurable key using intermediate data modification
EP2293487A1 (en) * 2009-09-08 2011-03-09 Thomson Licensing A method of diversification of a round function of an encryption algorithm
FR2951599B1 (fr) * 2009-10-20 2011-11-25 St Microelectronics Rousset Procede securise de calcul cryptographique et composant electronique correspondant
EP2520041B1 (fr) * 2009-12-30 2016-03-30 Koninklijke Philips N.V. Procede de generation de table de correspondance pour une boite blanche cryptographique
EP2369778B1 (en) * 2010-03-26 2018-08-15 Irdeto B.V. Personalized whitebox descramblers
CA2792787C (en) * 2010-03-31 2017-07-25 Irdeto Canada Corporation System and method for protecting cryptographic assets from a white-box attack
US8644500B2 (en) * 2010-08-20 2014-02-04 Apple Inc. Apparatus and method for block cipher process for insecure environments
KR20120089396A (ko) * 2010-11-16 2012-08-10 삼성전자주식회사 암호화 장치 및 그 암호화 방법
US10333702B2 (en) * 2012-03-20 2019-06-25 Irdeto B.V. Updating key information
EP2831797B1 (en) * 2012-03-30 2018-05-02 Irdeto B.V. Securing accessible systems using dynamic data mangling
US8976960B2 (en) * 2012-04-02 2015-03-10 Apple Inc. Methods and apparatus for correlation protected processing of cryptographic operations
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
CN104052595B (zh) * 2014-05-23 2017-02-08 戴葵 密码算法定制方法
US9569639B2 (en) * 2014-09-12 2017-02-14 Nxp B.V. Remapping constant points in a white-box implementation
DE102014016548A1 (de) 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen
US9819486B2 (en) * 2014-12-19 2017-11-14 Nxp B.V. S-box in cryptographic implementation
US10235506B2 (en) * 2015-05-05 2019-03-19 Nxp B.V. White-box modular exponentiation
DE102015014038A1 (de) * 2015-10-30 2017-05-04 Giesecke & Devrient Gmbh Alternative Darstellung des Krypto-Algorithmus DES

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1636343A (zh) * 1998-07-01 2005-07-06 泰克塞科公司 密码通信方法和装置
GB2345229A (en) * 1998-12-23 2000-06-28 Motorola Ltd Encryption system resists differential power analysis attacks
CN101133593A (zh) * 2003-07-31 2008-02-27 格姆普拉斯公司 安全地执行rsa型密码术算法的方法及相应部件
CN101167114A (zh) * 2005-04-28 2008-04-23 松下电器产业株式会社 程序转换装置、加密处理装置以及加密处理方法
CN101371480A (zh) * 2005-11-21 2009-02-18 爱特梅尔公司 加密保护方法
WO2007102898A3 (en) * 2005-11-21 2008-04-17 Atmel Corp Encryption protection method
EP1982461A1 (fr) * 2006-02-08 2008-10-22 Sagem Défense Sécurité Protection d'un algorithme cryptographique
CN101034978A (zh) * 2006-03-07 2007-09-12 捷讯研究有限公司 用于密码过程的表分裂
US20090158051A1 (en) * 2006-03-10 2009-06-18 Koninklijke Philips Electronics N.V. Method and system for obfuscating a cryptographic function
CN101491000A (zh) * 2006-07-12 2009-07-22 皇家飞利浦电子股份有限公司 用于混淆密码函数的方法和系统
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
CN101978647A (zh) * 2008-01-31 2011-02-16 耶德托公司 保护智能卡
KR20120068543A (ko) * 2010-12-17 2012-06-27 한국전자통신연구원 화이트박스 암호를 이용한 소프트웨어 설치 장치 및 방법
US20130016836A1 (en) * 2011-07-14 2013-01-17 Apple Inc. Cryptographic process execution protecting an input value against attacks
CN104025501A (zh) * 2011-12-29 2014-09-03 英特尔公司 用于不确定性随机位发生器(nrbg)的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHRISTOPH HERBST: "An AES smart card implementation resistant to power analysis attacks", 《ACSN》 *
HAMILTON E.LINK: "Clarifying Obfuscation: Improving the Security of White-Box Encoding", 《百度学术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003687A (zh) * 2020-08-26 2020-11-27 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质
CN112003687B (zh) * 2020-08-26 2023-04-07 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
EP3219042B1 (de) 2018-12-12
EP3219043A1 (de) 2017-09-20
CN107005404A (zh) 2017-08-01
EP3218893B1 (de) 2019-01-30
WO2016074782A1 (de) 2016-05-19
CN112002210B (zh) 2024-05-31
EP3218893A1 (de) 2017-09-20
CN107005404B (zh) 2020-11-03
US20170324547A1 (en) 2017-11-09
EP3686871A1 (de) 2020-07-29
WO2016074776A1 (de) 2016-05-19
US20170352298A1 (en) 2017-12-07
US20170324543A1 (en) 2017-11-09
CA2966417A1 (en) 2016-05-19
EP3219043B1 (de) 2018-12-12
US10249220B2 (en) 2019-04-02
US10438513B2 (en) 2019-10-08
EP3219042A1 (de) 2017-09-20
CN112002210A (zh) 2020-11-27
WO2016074774A1 (de) 2016-05-19
DE102014016548A1 (de) 2016-05-12
WO2016074775A1 (de) 2016-05-19
CA2966417C (en) 2020-04-28
US10403174B2 (en) 2019-09-03
US10431123B2 (en) 2019-10-01
CN107111966B (zh) 2020-12-29
US20170324542A1 (en) 2017-11-09
EP3218894A1 (de) 2017-09-20

Similar Documents

Publication Publication Date Title
CN107111966A (zh) 用于测试并且加固软件应用的方法
Batina et al. Mutual information analysis: a comprehensive study
US11362802B2 (en) Cryptographic device arranged to compute a target block cipher
CN101006677B (zh) 用于实施加密运算的方法和装置
US9430188B2 (en) Method for protecting a cryptographic device against SPA, DPA and time attacks
CN103166751A (zh) 用于保护分组密码免受模板攻击的方法和装置
US6914986B2 (en) Countermeasure method in an electronic component using a public key cryptography algorithm on an elliptic curve
CN107040362A (zh) 模乘设备和方法
Alpirez Bock et al. On the ineffectiveness of internal encodings-revisiting the DCA attack on white-box cryptography
US10187198B2 (en) Protection of a rijndael algorithm
Sasdrich et al. White-Box Cryptography in the Gray Box: –A Hardware Implementation and its Side Channels–
US20190287427A1 (en) Device and method for performing obfuscated arithmetic
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
Tunstall Smart card security
US20130259226A1 (en) Methods and apparatus for correlation protected processing of cryptographic operations
KR20100113130A (ko) 비대칭 암호화를 위한 대응조치 방법 및 디바이스
US8666067B2 (en) Cryptographic countermeasure method by deriving a secret data
US10977365B2 (en) Protection of an iterative calculation against horizontal attacks
EP3238365B1 (en) Cryptographic system and method
EP3391264B1 (en) Calculating device and method
Aljuffri et al. Balanced Dual-Mask Protection Scheme for GIFT Cipher Against Power Attacks
CN107113160B (zh) 用于隐藏程序执行的系统、方法和计算机存储介质
Gandolfi-Villegas et al. Dynamic Runtime Methods to Enhance Private Key Blinding
JP2008224830A (ja) 耐タンパーベキ乗演算方法
Lumbiarres López et al. Faking countermeasure against side-channel attacks

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

Effective date of registration: 20191106

Address after: Munich, Germany

Applicant after: Quartech mobile security limited liability company

Address before: Munich, Germany

Applicant before: German Jede Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant