CN107005404B - 实现密码算法的可执行的白盒掩码实施的处理器装置 - Google Patents

实现密码算法的可执行的白盒掩码实施的处理器装置 Download PDF

Info

Publication number
CN107005404B
CN107005404B CN201580068364.6A CN201580068364A CN107005404B CN 107005404 B CN107005404 B CN 107005404B CN 201580068364 A CN201580068364 A CN 201580068364A CN 107005404 B CN107005404 B CN 107005404B
Authority
CN
China
Prior art keywords
value
box
operation step
processor device
white
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
CN201580068364.6A
Other languages
English (en)
Other versions
CN107005404A (zh
Inventor
H.德雷克斯勒
S.鲍尔
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.)
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
Publication of CN107005404A publication Critical patent/CN107005404A/zh
Application granted granted Critical
Publication of CN107005404B publication Critical patent/CN107005404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • 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
    • 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,所述仿射映射A被配置,以便仿射映射A的输出值w中的每个比特位关联于混淆值y的至少一个比特位,借此可以实现仿射映射A的输出值w被统计学均衡。

Description

实现密码算法的可执行的白盒掩码实施的处理器装置
技术领域
本发明一般地涉及借助白盒密码学保护密码算法以防止攻击的技术领域。更确切地说,本发明涉及一种处理器装置,其具有密码算法的、尤其是分组密码算法的、尤其是DES或AES的白盒实现。
背景技术
处理器装置在本发明的意义中是指具有处理器的设备或物品,例如就像例如智能电话那样的移动终端。越来越多地在例如智能电话之类的移动终端上使用软件应用(简称为App),以便执行密码学上受保护的数字交易,例如以便在NFC终端上无现金支付或者以便在线上零售商购买商品或服务。此外,在就像例如智能电话之类的移动终端上,使用日益增多的用于诸如语音加密或数据加密之类的密码学服务的软件应用。在智能电话的处理器上实施的软件应用与终端或服务器进行交互,以便执行交易或服务。通过密码算法的实施来执行软件应用的诸如例如加密、解密、签名形成或签名验证之类的密码学部分任务。由密码算法所使用的例如PIN、口令、密码密钥等之类的安全关键数据被安全地提供给处理器装置。惯常地,通过(灰盒)密码来保护安全关键的数据,以防止未经批准的人攻击所述数据。为此,数据被提供在硬件技术上独立的移动终端安全元件上、例如可从移动终端中取出的SIM卡上。
尤其也可应用于不含独立安全元件的移动终端的替换途径基于白盒密码。在密码算法的白盒实现中,尝试这样将尤其是秘密密码密钥的安全关键数据隐藏在实施中,使得对所述实施进行完全访问的攻击者无法从该实施中提取安全关键的数据。AES(AES=Advanced Encryption Standard)密码算法的白盒实施例如在作者James A.Muir于CryptologyePrint Archive,Report 2013/104上的公开文献[1]”A Tutorial on White-box AES”中是公知的。同样地,商业地经销密码算法或例程的白盒实现。
密码算法的理想化的白盒实现将诸如密码密钥之类的安全关键数据保持得如此隐蔽,使得所述数据无法被攻击者确定。
在本申请申请人的专利申请DE 102014016548.5中描述一种用于测试诸如AES之类的密码算法的可在处理器上执行的白盒实现的方法,申请人借助其成功地通过攻击来确定安全关键数据,根据白盒的概念这事实上本应是不可能的。从该观点来看,经测试的白盒实现由于其可攻击性而根据定义而言不再是完美的白盒,但是基于其要成为完美的目标设定而在下文中仍将其称为白盒实施。
102014016548.5更详细地描述了白盒实施的测试方法,所述白盒实施借助秘密密钥从明文中生成密文并且以机器命令的形式存在于处理器上,其中处理器包含至少一个寄存器。在此,所述方法包含下述步骤:(a)将多个明文中的一个明文馈送至白盒实现中;(b)在逐步运行白盒实现的机器命令时,逐步读取并且保存处理器的至少一个寄存器的内容,其中,在逐步运行白盒实现的机器命令时可以生成中间结果;(c)用多个明文中的另一明文,重复步骤(a)和(b)N次;和(d)统计评估寄存器内容和明文、中间结果和/或从明文中生成的密文,方法是,寻找寄存器内容和明文、中间结果和/或密文之间的关联以便确定秘密密钥。
令人吃惊的是,发明人的研究表明,借助102014016548.5所描述的方法可以在商业可获得的以白盒实施的名义所经销的密码算法实施中得到秘密密钥。
在NXP公司的J.W.Bos、Ch.Hubain、W.Michiels和Ph.Teuwen发表在eprint.iacr.org/2015/753上的专业公开文献[3]“Differential ComputationAnalysis:Hiding your White-Box Designs is Not Enough”中公开了一种与上文列举的专利申请102014016548.5中所公开的相类似的测试方法,使用所述方法同样可以借助统计方法从密码算法的白盒实施中确定秘密密钥。
在专利申请102014016548.5中,还提供了一种方法的处理指南,所述方法用于加固密码算法的可在处理器上执行的白盒实施。此外,为了实现加固,这样构造白盒实施,使得在生成密文时使用至少一个查找表,以便将查找表的输入值静态地映射至查找表的输出值。所述方法包含这样的步骤,查找表这样被统计置换,使得经置换的查找表的各个比特位基本上与查找表的比特位不相关。换言之,这样借助可逆映射f(此处被称为置换P)来统计学置换查找表T,使得在随机改变的输入x的情况下,经置换的查找表T′(x)=f(T(x))与比特位T(x)不相关。该实施对应于权利要求1的前序部分。
本发明要解决的基础的技术问题是,描述一种具有加密算法的实施的处理器装置,其基于如在102014016548.5中描述的或者同类的实施来被特别地加固,方式是,在实施中,运算步骤(例如S盒运算)的输出值与像在被保护的实施中会被期待的输出值不相关,使得借助在旁道输出上应用的统计方法也不能从算法中获得秘密信息。尤其应当说明特别的实施细节,借助所述细节可以实现特别的加固实施。
发明内容
通过按照权利要求1的处理器装置来解决所述技术问题。在从属权利要求中描述本发明的实施方式。
在按照本发明的处理器装置上实施密码算法的可执行的白盒的经掩码的实施。算法被配置,以便在应用秘密密钥K的情况下从输入文本中生成输出文本。所述实施包含在算法中所含有的实施的运算步骤S,通过所述步骤将输入值x映射至输出值s=S[x],并且借助可逆函数f将其掩码成经掩码的运算步骤T′白盒。
本发明的特征在于,可逆函数f包含在运算步骤S中所应用的仿射映射A,所述映射被构造以便生成A的输出值w,方式是,将A应用于运算步骤S的输出值s上并且附加地应用于一个或多个与运算步骤S的输出值s统计学无关的混淆值y上,使得w=A(S[x],y)=A(s,y)成立。仿射映射A还被配置,以便仿射映射A的输出值w中的每个比特位关联于混淆值y的至少一个比特位,借此可以实现仿射映射A的输出值w被统计学均衡。
通过在使用这样配置的仿射映射A的情况下构造函数f,实现经掩码的运算步骤T′的单个比特位基本上与未掩码的运算步骤S的比特位不相关。因此,运算步骤的旁道输出的获取和在旁道输出上的统计方法的应用并不能获得任何与密码密钥相关的信息。
因此,按照本发明的白盒掩码的实施的特征在于,通过为了运算步骤S的白盒掩码而使用的映射f的有针对性的构造,所述实施被加固地配置。通过像上文所述配置的仿射映射A来实现特殊的固化。
因此,根据权利要求1,形成具有特殊加固化实施的处理器装置,其中,运算步骤的输出值(中间结果)这样被保护,使得同样借助统计方法而不能获取算法中的任何秘密信息。
→从属权利要求
仿射映射A可选地包含通过在列和行上组织的矩阵MA构成的线性映射,其中,计算步骤S的输出值s和统计上无关联的混淆值y在矩阵MA中被分配至分离的列内。这样的分离布置提升了清楚性。
可选地,在这样的矩阵MA的每行中,在具有统计学无关联的值y的至少一列中包含一个非零值,所述矩阵MA具有对于运算步骤S的输出值s的分离的列和统计学无关联的值y。借此确保至少一个混淆值y进入到通过在输入矢量(s,y)上应用矩阵MA所生成的输出矢量w的每一行中。否则可能发生的是,混淆值y在输出矢量w的一行中不发生作用,原因在于,在该行中矩阵MA的所有与y相关的矩阵值a都是零。
可选地,为了执行白盒掩码运算步骤T′的实施,提供对运算步骤S进行描述的查找表STab(x)。替换地,提供对运算步骤S和混淆值y进行描述的查找表STab(x,y),使得无需单独提供混淆值。
可选地,通过白盒掩码查找表T′Tab(x,y)来表示白盒掩码运算步骤T′,在所述查找表中加入值f(s,y)、尤其是A(s,y)。
可选地,所述实施附加地还包含其他的根据g-1(x)或g-1(x,y)要被应用于运算步骤S的输入值x、或者运算步骤S的输入值x和混淆值y上的可逆函数g。
可选地,作为算法,设置具有多个循环的分组密码算法、尤其是DES或AES,并且作为运算步骤S:
-分别每个循环的一个或多个S盒运算或者一个或多个逆S盒运算;或者
-由分别每个循环的一个或多个S盒运算或一个或多个逆S盒运算,与该循环的一个或多个其他运算构成的组合T。
在具有DES算法的处理器装置中,可选地,或者将循环的一个或多个扩展右侧输入端位r′i(r′1|r′2|...)作为输入值x,或者将循环的一个或多个扩展右侧输入端位r′i与一个或多个密钥位ki之间的结合(x=r′1 XOR k1|r′2 XOR k2|…)作为输入值x。在其中输入值中不包含密钥位的情况下,可以将DES的密钥例如集成在组合运算中,所述组合运算中也集成了S盒运算。
在算法DES中,可选地将循环的一个或多个左侧输入端位li设置为混淆值y。
在算法DES中,此外可选地借助函数V从循环的一个或多个左侧输入端位li中和/或从循环的一个或多个扩展的右侧输入端位中计算出混淆值y。在下文中进一步详细描述的附图中,图1示出DES表达,其中左侧输入端位li被应用为混淆值。图3示出DES表达,其中左侧和扩展右侧输入端位r′i被应用为混淆值。
在具有与其他运算一起作为组合运算T所实施的运算步骤S的算法DES中,其他操作可选地包含下面的一个或多个:置换P;扩展E;左侧和右侧输入端位l、r的相加或者左侧和扩展右侧输入端位l、r′的相加。
在设置AES作为算法的情况下,可选地将AES循环的AddRoundKey运算或SubBytes运算或逆SubBytes运算的输入值或者输入值的部分设置作为输入值x。
在算法AES中,可选地分别借助函数V来计算混淆值y。
在算法AES中,其他的运算可选地包含下列中的一个或多个:MixColumn运算,或者MixColumn运算的一个或多个部分步骤,或者逆MixColumn运算,或者逆MixColumn运算的一个或多个部分步骤。
可选地,分别借助函数V来从输入文本的位中计算出混淆值y。
所述算法可选地具有多个循环,其中针对每个循环重新选择函数V。
可选地,V是线性映射或哈希函数。
可选地,混淆函数y还包含一个或多个噪声随机值y[x]、尤其是随机位,其被添加至运算步骤S的输出值s的至少一个或每一个。首先随机选取噪声随机值y[x]。紧接着,这样改变噪声随机值y[x],使得y[x]和s在统计学上不相关联。因此,严格来说,y[x]并不再是完全随机的值,而是附加适应化的随机值。借助该附加适应化的随机值,额外的噪声被引入到实施中。
除了(例如DES或AES之类的)算法的循环的作为混淆值y所使用的左侧输入端值I或/和右侧输入端值r之外,噪声随机值y[x]可选地被设置为进一步的混淆值。
可选地,运算步骤S借助实施方法被在处理器装置上实施为白盒掩码运算步骤T′。可选地,白盒掩码运算步骤T′通过如下以白盒掩码的形式被实施在处理器装置上:(i)执行(未经掩码)的运算步骤S,以便生成输出值s,和(ii)在运算步骤S的所生成的输出值s上应用可逆函数f,并且由此得到的结果已被实施在处理器装置上。在应用可逆函数f时,尤其应用了仿射映射。
如果处理器装置投入运行并且因此例如在软件应用中执行密码算法,那么,执行白盒掩码运算(例如Ti′,尤其参见图4的实施方式)。通过执行白盒掩码运算T′,以加固的白盒掩码形式执行运算步骤(尤其例如DES特定的S盒运算)。由于在处理器装置中不以直接的形式实施运算步骤S(例如S盒),而是仅仅以按照本发明运算步骤S白盒掩码至T′,因此避免对处理器装置的攻击或者至少显著地使攻击困难。如果(诸如S盒之类的)运算步骤S被嵌入至组合计算步骤T中(参见图2、3),相同的情况也成立。同样地,组合运算步骤T不是直接实施在处理装置上,而是替代地仅仅以白盒掩码形式T′被实施在处理器装置上。
附图说明
下文中,结合实施例并且参考附图进一步解释本发明,其中,
图1在标准示图中示出根据现有技术的适合作为本发明基础的DES循环;
图2在替换示图中示出DES循环,其具有嵌入至运算T中的S盒运算S,并且尤其适合作为本发明的基础;
图3示出图2的DES循环中的单个运算T的详细示图;
图4示出根据本发明实施方式的图1或者图2和图3的DES循环的白盒掩码。
具体实施方式
图1示出根据现有技术的DES循环。依据图1表明,就像本发明的基础思想那样,运算步骤S可以是例如S盒运算或DES循环的八个S盒的总和。在DES循环的输入端,将64位输入端数据分配为32位左侧L=lj,j=0,…,31和32位右侧R=rj,j=0,…,31。借助扩展运算,右侧R的位被扩展为右侧的48位经扩展的输入端数据E=r′j,j=0,…,47。借助XOR运算,48位经扩展的输入端数据E与48位密钥数据K=kj,j=0,…,47被结合为八个S盒S的输入值xj=rj XOR kj,j=0,…,47。八个S盒S=S1,…,S8中的每一个将六位输入值xj处理为各个四位输出值sj。八个S盒S=S1,…,S8的四位宽的输出值sj被馈送至置换运算P,并且置换P的输出值与左侧的位进行XOR并且被馈送至下一个DES循环。在标准DES实施中,DES循环在此结束。
按照本发明,如图4所示,(虚线圈起的部分)DES S盒Si以特别加固的形式被白盒掩码。根据w=f(S[x])=A(S[x])=MA(S[x]),按照本发明的矩阵MA的S盒的输出值sj被馈送用于白盒掩码,通过所述矩阵将线性映射表示为仿射映射A(备注:在应用A之后,可选地f除了包含A之外还包括优选应用的可逆映射ci)。此外,除了S盒的输出值sj之外,还向矩阵MA馈送统计学不关联的值y、例如在DES循环的输入端处的64位输入端数据的左侧的两个或多个位lj,j=0,…,31。对于统计上不关联的值y,适用a(y)=MA*y+v(v是向量)。为了实现白盒掩码的特殊加固,这样构造矩阵MA,使得除了S盒输出值sj之外进入的值y与S盒输出值sj在统计学上不关联,并且使得在矩阵MA的输出值w中的每个位与混淆值y的至少一位相关联。
下文中,结合图2和图3来说明特别适合实施本发明的DES循环的替换表达,其中,对于DES循环而言的特定运算S盒运算S和置换P被结合在组合运算T中。在此,白盒掩码与映射A、或者具体地与矩阵MA一起被应用于其中包含有S盒运算的组合运算T上(见图4)。
图2在替换示图中示出DES循环,其根据本发明特别适合白盒掩码的应用。在DES循环的输入端处,首先就像根据图1那样,将64位输入端数据分配至32位左侧L=lj,j=0,…,31和32位右侧R=rj,j=0,…,31,并且将右侧的位扩展至48位E(R)。在图2的替换示图中,来自于循环输入端数据的左侧的32位L=lj,j=0,…,31中的两个或多个位被应用为混淆值y。借此,在执行DES循环时,这样执行DES特定的八个S盒运算,使得复数个的八个或十个组合的运算T=T0,…T7或T0,…T9被执行,其中包含S盒运算S=S1,…S8。
图3示出图2中的单个组合运算T=Ti,i=0,…7(或者必要时0,…9)的详细结构(在图3中,为了更好的清晰性,省略了可选择地附加存在的使用空位和移位所进行的填充)。不同于图1中的DES描述的S盒,在图2和图3中的组合运算T=Ti中,已经把密钥kj和DES典型置换P考虑在运算T中。具有被考虑其中的密钥kj的S盒在图3中通过运算盒Si(-XORkij)来被示出,置换通过P示出。此外,在运算步骤S之前,也就是在S盒运算S1,…S8之前,生成八个(或十个)总表格T0,…T7(或T0,…T9),其中分别包含用于八个S盒的六位输入端值xj=rj,j=0,…47(现在不与k进行XOR,因为在S中已经包含有密钥位)和两位混淆值lj,j=0,…,31,并且在十个总表格Ti中包含其他位的混淆值lj,j=0,…,31。在此,不通过S盒来处理两(或更多)位混淆值lj。分别通过S盒来处理各个六位输入端值xj=rj XOR kj。借此总表格Ti提供输出值,所述输出值既包括S盒的输出端值sj也包含混淆值lj。
就像图4示出的那样,执行实施的白盒掩码,方式是,将组合运算Ti(总表格)的输出值馈送至按照本发明的矩阵MA,通过所述矩阵MA来表示按照本发明的仿射映射A。在此,既将运算步骤S的输出值S(x)、输入端值x的位也就是右侧的位rj,又将统计上无关联的值y、也就是DES循环输入端值的左侧的作为混淆值使用的位lj馈送至矩阵MA。在此,不需要单独获取统计上无关联的值y=lj,原因在于,其已经包含在组合运算中。基于该基础,图2的DES描述尤其很好地适合实施本发明。掩码的结果是白盒掩码运算Ti′,i=0,…9或者i=0,…7。在处理器装置上实施该白盒掩码运算Ti′。
在图4的实施方式中,在被用于白盒掩码的映射f中所包含的仿射映射A被构造为矩阵MA,具有系数aij,i=0,…l-1,j=0,…n+m-1。
为了生成输出端向量w,将矩阵MA与输入端向量(s,y)相乘,所述输入端向量包含S盒输出端值s=S[x](例如右侧的位r)盒混淆值y(例如左侧的位)。图4中的求和公式阐明了单个行i具有矩阵MA的系数aij(j=0,…,n+m-1)的事实,以及借此生成的输出端向量w的单个记录σi。在输入端向量(s,y)中,S盒输出端值s包含在上面n个记录中,并且混淆值y包含在下面m个记录中。在矩阵MA中,相应地左侧包含要与S盒输出端值s=s0,…sn-1相乘的MA的n个系数aij,j=0,…,n-1。在矩阵MA右侧,包含要与混淆值y=y0,…ym-1相乘的MA的m个系数aij,j=n,…n+m-1。
按照本发明这样构造矩阵MA,使得达到这样的效果,即,用于σi的求和等式的右侧求和(备注:用σi表示w的单独的位)
Figure GDA0002374688470000081
不对任何行索引i,i=0,…l-1消失。通过如下来实现上述效果:即,每行i中与混淆值y=yj,j=0,…m-1,相乘的至少一个系数ai,n+j,j=0,…m-1不为零。通过该效果来确保,在任何行i,i=0,…l-1中,混淆值y在输出向量w中都不消失,也就是说,在每行i中,至少一个混淆值yj包含在输出向量w的记录wi中。这还具有进一步的影响,即,仿射映射A的输出值w被统计学均衡。
词汇表
一般地:
S:运算步骤,尤其在DES的标准描述中指DES S盒或八个DES S盒
T:在替换的DES描述中,包含运算步骤S的运算
T′:白盒遮掩运算步骤S,S必要时嵌入在T中
x:在运算步骤S(或T)中的输入值
y:混淆值
r′:循环的输入的经扩展的右侧
k:密钥
s:S(例如S盒)的输出值
w:T′(经掩码的S)的输出值
在S=DES S盒或者八个DES S盒的情况下:
x=r′XOR k对于DES的标准描述而言
x=r′在DES的替换描述中
l=在DES循环输入端处的位的左侧的位(32位)
r=在DES循环输入端处的位的右侧的位(32位)
r′=在DES循环输出端处的经扩展的右侧r的位(48位)
引用的现有技术
[1]"A Tutorial on White-box AES",James A.Muir,Cryptology ePrintArchive,Report 2013/104,eprint.iacr.org/2013/104
[2]DE 102014016548.5(于2014年11月10日提交)
[3]"Differential Computation Analysis:Hiding your White-Box Designsis Not Enough",J.W.Bos,Ch.Hubain,W.Michiels,and Ph.Teuwen,eprint.iacr.org/2015/753,在2015年7月31日获取。

Claims (19)

1.一种用于实现密码算法的可执行的白盒掩码实施的处理器装置,所述处理器装置具有处理器和存储器,其中,在所述处理器上实现密码算法的可执行的白盒掩码实施,其中,所述算法被配置,以便在应用秘密密钥K的情况下从输入文本中生成输出文本,其中,所述实施包含实施的运算步骤S,其中,通过所述运算步骤S将输入值x映射至输出值s=S[x],并且借助可逆函数f对所述运算步骤S进行掩码,以形成白盒掩码的运算步骤T′,其特征在于,
可逆函数f包含应用于所述运算步骤S的仿射映射A,所述映射被构造以便生成A的输出值w,方式是,将A应用于运算步骤S的输出值s上,并且附加地应用于一个或多个与运算步骤S的输出值s统计上无关联的混淆值y上,使得w=A(S[x],y)=A(s,y)成立,并且
仿射映射A还被配置,以便仿射映射A的输出值w中的每个比特位关联于混淆值y的至少一个比特位,借此能够实现仿射映射A的输出值w被统计学均衡。
2.根据权利要求1所述的处理器装置,其中,仿射映射A包含线性映射,所述线性映射通过矩阵MA构成,所述矩阵MA按照行和列组织,其中,运算步骤S的输出值s和与运算步骤S的输出值s统计上无关联的混淆值y在矩阵MA中被分配至分离的列内。
3.根据权利要求2所述的处理器装置,其中,在矩阵MA的每行中,在具有与运算步骤S的输出值s统计上无关联的混淆值y的至少一列中包含非零值。
4.根据权利要求1所述的处理器装置,其中,为了实施白盒掩码的运算步骤T′,提供对运算步骤S进行描述的查找表STab(x)或者对运算步骤S和混淆值y进行描述的查找表STab(x,y)。
5.根据权利要求1所述的处理器装置,其中,通过白盒掩码的查找表T′Tab(x,y)来表示白盒掩码的运算步骤T′,在所述查找表中加入值f(s,y)。
6.根据权利要求1所述的处理器装置,其中,通过白盒掩码的查找表T′Tab(x,y)来表示白盒掩码的运算步骤T′,在所述查找表中加入A(s,y)。
7.根据权利要求1所述的处理器装置,其中,所述实施附加地还包含另一个可逆函数g,所述另一个可逆函数g要根据g-1(x)应用于运算步骤S的输入值x,或者要根据g-1(x,y)应用于运算步骤S的输入值x和混淆值y。
8.根据权利要求1所述的处理器装置,其中,作为算法,设置具有多个循环的分组密码算法,并且
-作为运算步骤S,设置相应的一个循环的一个或多个S盒运算或者一个或多个逆S盒运算;或者
-作为运算步骤S,设置相应的一个循环的一个或多个S盒运算与该循环的一个或多个其他运算的组合,或者相应的一个循环的一个或多个逆S盒运算与该循环的一个或多个其他运算的组合。
9.根据权利要求1所述的处理器装置,其中,作为算法,设置DES或AES,并且
-作为运算步骤S,设置相应的一个循环的一个或多个S盒运算或者一个或多个逆S盒运算;或者
-作为运算步骤S,设置相应的一个循环的一个或多个S盒运算与该循环的一个或多个其他运算的组合,或者相应的一个循环的一个或多个逆S盒运算与该循环的一个或多个其他运算构成的组合。
10.根据权利要求9所述的处理器装置,其具有算法DES,其中,或者将一个循环的一个或多个扩展右侧输入端位r′i作为输入值x,或者将一个循环的一个或多个扩展右侧输入端位r′i与一个或多个密钥位ki之间的结合作为输入值x;和/或
-从该循环的一个或多个左侧输入端位li计算出混淆值y。
11.根据权利要求9所述的处理器装置,其具有算法DES,其中,借助函数V从循环的一个或多个左侧输入端位li中或/和从循环的一个或多个扩展的右侧输入端位r′i中计算出混淆值y,其中,V是线性映射或哈希函数。
12.根据权利要求9所述的处理器装置,其具有算法DES,其中,所述其他运算包含下面的一个或多个:置换;扩展;左侧输入端位li和右侧输入端位ri的相加或者左侧输入端位li和扩展右侧输入端位r′i的相加。
13.根据权利要求9所述的处理器装置,其具有算法AES,其中,将AES循环的AddRoundKey运算或SubBytes运算或逆SubBytes运算的输入值或者输入值的部分设置作为输入值x。
14.根据权利要求9所述的处理器装置,其具有算法AES,其中,所述其他运算包含下列中的一个或多个:MixColumn运算,或者MixColumn运算的一个或多个部分步骤,或者逆MixColumn运算,或者逆MixColumn运算的一个或多个部分步骤。
15.根据权利要求1至14中任一项所述的处理器装置,其中,分别借助函数V来从输入文本的位中计算出混淆值y,其中,V是线性映射或哈希函数。
16.根据权利要求11所述的处理器装置,其中,算法DES具有多个循环,并且针对每个循环重新选择函数V。
17.根据权利要求1至14中任一项所述的处理器装置,其中,混淆值y还包含一个或多个随机值,其中,在计算运算步骤S的输出值s的至少一个或每一个时,附加地使用所述随机值,其中,首先随机选取随机值,并且紧接着,改变随机值,使得随机值和输出值s在统计学上不相关联。
18.根据权利要求17所述的处理器装置,其中,所述随机值是随机位。
19.根据权利要求1至14中任一项所述的处理器装置,其中,运算步骤S通过如下步骤,以白盒掩码的运算步骤T′的形式实施在处理器装置上:(i)执行运算步骤S,以便生成输出值s,和(ii)在运算步骤S的所生成的输出值s和混淆值y上应用可逆函数f,并且由此得到的运算步骤T′被实施在处理器装置上。
CN201580068364.6A 2014-11-10 2015-10-30 实现密码算法的可执行的白盒掩码实施的处理器装置 Active CN107005404B (zh)

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/002223 WO2016074776A1 (de) 2014-11-10 2015-10-30 Gehärtete white box implementierung 1

Publications (2)

Publication Number Publication Date
CN107005404A CN107005404A (zh) 2017-08-01
CN107005404B true CN107005404B (zh) 2020-11-03

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 After (2)

Application Number Title Priority Date Filing Date
CN202010868468.8A Active CN112002210B (zh) 2014-11-10 2015-11-09 用于测试并且加固软件应用的方法
CN201580070804.1A Active CN107111966B (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)

Families Citing this family (17)

* 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
CN112003687B (zh) * 2020-08-26 2023-04-07 成都卫士通信息产业股份有限公司 一种白盒运算方法、装置、电子设备及计算机存储介质
CN113541942B (zh) * 2021-07-12 2022-06-07 西安电子科技大学 基于arx白盒分组密码的数字内容加解密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008119901A2 (fr) * 2007-02-28 2008-10-09 France Telecom Procede de dechiffrement par un algorithme cryptographique de donnees chiffrees
CN101371480A (zh) * 2005-11-21 2009-02-18 爱特梅尔公司 加密保护方法
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
CN102460404A (zh) * 2009-06-01 2012-05-16 起元技术有限责任公司 生成混淆数据
CN104052595A (zh) * 2014-05-23 2014-09-17 戴葵 密码算法定制方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075865A (en) * 1998-07-01 2000-06-13 Tecsec Incorporated Cryptographic communication process and apparatus
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
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
FR2858496B1 (fr) * 2003-07-31 2005-09-30 Gemplus Card Int Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
WO2006118086A1 (ja) * 2005-04-28 2006-11-09 Matsushita Electric Industrial Co., Ltd. プログラム変換装置、暗号処理装置、暗号処理方法
FR2897216B1 (fr) * 2006-02-08 2008-05-02 Sagem Defense Securite Protection d'un algorithme cryptographique
DE602006015902D1 (de) * 2006-03-07 2010-09-16 Research In Motion Ltd Tabellenteilung für kryptografische Verfahren
JP5249053B2 (ja) * 2006-03-10 2013-07-31 イルデト・コーポレート・ビー・ヴイ データ処理システムの完全性
JP5113169B2 (ja) * 2006-07-12 2013-01-09 イルデト・コーポレート・ビー・ヴイ 暗号関数を難読化する方法およびシステム
JP5496663B2 (ja) * 2006-07-12 2014-05-21 イルデト・コーポレート・ビー・ヴイ デジタルデータ処理装置の耐改竄性
WO2008059420A2 (en) * 2006-11-17 2008-05-22 Koninklijke Philips Electronics N.V. Cryptographic method for a white-box implementation
JP5242560B2 (ja) * 2007-05-30 2013-07-24 パナソニック株式会社 暗号化装置、復号化装置、暗号化方法及び集積回路
JP2011512726A (ja) * 2008-01-31 2011-04-21 イルデト・コーポレート・ビー・ヴイ スマートカードの保護
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
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 삼성전자주식회사 암호화 장치 및 그 암호화 방법
KR20120068543A (ko) * 2010-12-17 2012-06-27 한국전자통신연구원 화이트박스 암호를 이용한 소프트웨어 설치 장치 및 방법
US8605894B2 (en) * 2011-07-14 2013-12-10 Apple Inc. Cryptographic process execution protecting an input value against attacks
CN104025501B (zh) * 2011-12-29 2018-03-27 英特尔公司 用于不确定性随机位发生器(nrbg)的方法和装置
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
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101371480A (zh) * 2005-11-21 2009-02-18 爱特梅尔公司 加密保护方法
WO2008119901A2 (fr) * 2007-02-28 2008-10-09 France Telecom Procede de dechiffrement par un algorithme cryptographique de donnees chiffrees
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
CN102460404A (zh) * 2009-06-01 2012-05-16 起元技术有限责任公司 生成混淆数据
CN104052595A (zh) * 2014-05-23 2014-09-17 戴葵 密码算法定制方法

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
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
CN107111966A (zh) 2017-08-29
CN107111966B (zh) 2020-12-29
US20170324542A1 (en) 2017-11-09
EP3218894A1 (de) 2017-09-20

Similar Documents

Publication Publication Date Title
CN107005404B (zh) 实现密码算法的可执行的白盒掩码实施的处理器装置
KR101345083B1 (ko) 암호화 보호 방법
US8199909B2 (en) Method and device for carrying out a cryptographic calculation
US10740497B2 (en) System and method for cryptographic processing in a time window
AU2011292312B2 (en) Apparatus and method for block cipher process for insecure environments
RU2502201C2 (ru) Устройство обработки шифрования/дешифрования, способ обработки шифрования/дешифрования, устройство обработки информации и компьютерная программа
US20090086976A1 (en) Substitution table masking for cryptographic processes
US10790962B2 (en) Device and method to compute a block cipher
US10210776B2 (en) DPA protection of a rijndael algorithm
US10243728B2 (en) Verification of the resistance of an electronic circuit to side-channel attacks
US10187198B2 (en) Protection of a rijndael algorithm
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
CN113940028A (zh) 实现白盒密码的方法和装置
KR102290025B1 (ko) 화이트 박스 aes 구현
US8976960B2 (en) Methods and apparatus for correlation protected processing of cryptographic operations
EP3078154B1 (en) A computing device for iterative application of table networks
CN107592963B (zh) 用于执行安全计算的方法和计算设备
KR101203474B1 (ko) 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법

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: 20191111

Address after: Munich, Germany

Applicant after: Quartech mobile security limited liability company

Address before: Munich, Germany

Applicant before: German Jede Co., Ltd.

GR01 Patent grant
GR01 Patent grant