CN109661792A - 计算分组密码的设备和方法 - Google Patents

计算分组密码的设备和方法 Download PDF

Info

Publication number
CN109661792A
CN109661792A CN201880003226.3A CN201880003226A CN109661792A CN 109661792 A CN109661792 A CN 109661792A CN 201880003226 A CN201880003226 A CN 201880003226A CN 109661792 A CN109661792 A CN 109661792A
Authority
CN
China
Prior art keywords
block cipher
function
averaging
intermediate packets
wheel
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
CN201880003226.3A
Other languages
English (en)
Other versions
CN109661792B (zh
Inventor
R·里特曼
M·P·博德拉恩德
S·J·A·德雷赫
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN109661792A publication Critical patent/CN109661792A/zh
Application granted granted Critical
Publication of CN109661792B publication Critical patent/CN109661792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Abstract

一些实施例涉及一种被布置成在输入消息(110)上计算分组密码的加密设备(100)。所述设备通过将跟随有一个或多个额外分组密码轮的多个分组密码轮顺序地应用到输入消息通过计算并且重新计算多个中间分组密码结果中的第一中间分组密码结果(151)来计算多个中间分组密码结果。多个求平均函数被应用到所述多个中间分组密码结果,其结果被相加,在此之后,应用所述一个或多个额外分组密码轮的逆。

Description

计算分组密码的设备和方法
技术领域
本发明涉及一种被布置成计算分组密码(block cipher)的加密设备、一种被布置成计算分组的加密方法以及一种计算机可读介质。
背景技术
在由S.Chow等人的论文“A White-Box DES Implementation for DRMApplications”中提出了数据加密标准(DES)的白盒实施方案(在下文中被称为‘Chow’并且通过引用并入本文)。白盒实施方案是被设计为抵御白盒背景下的攻击的密码实施方案。在白盒背景下,攻击者对软件实施和执行具有完全可见性。然而,即便如此,所述白盒实施方案旨在防止从程序中提取秘密密钥。
Chow形成了完全由表查找操作构成的DES的实施方案。通过若干中间方法,正常密码被转换为这种形式的实施方案,使得表网络能够被用于计算DES。通过将表编码在表网络中,系统对于分析和攻击的抵抗力增加。
尽管使用表网络的白盒实施难以进行分析,但是分组密码的基于表的实施方案可能仍然易受一些攻击。发明人认识到:即使密钥可能不直接地从观察白盒实施中的变量而导出,对变量的访问也可能被用于执行先前仅从物理攻击的领域中已知的攻击。
例如,在由Biham等人的论文“Differential Fault Analysis of Secret KeyCryptosystems”中,通过改变使DES计算产生不正确结果的电源电压而在智能卡中引入瞬态故障。通过分析起因于瞬态故障的错误,获得了关于秘密密钥的信息。
发明人认识到:这样的物理故障攻击可以适于攻击白盒实施。即使从对于攻击者可见的变量的分析获得秘密信息是不可能的,攻击者也可能能够通过修改编码的变量以试图模仿物理攻击来导出秘密信息。对变量的故意修改充当瞬态故障。实际上,结果表明,抵御特定于白盒模型的其他攻击(例如,存储器刮擦、碰撞攻击)的白盒实施可能仍然易受故障攻击。
针对差分故障攻击在现有技术中引入的措施证明在白盒模型中无效;例如,在美国专利US 8386791 B2中,‘Secure data processing method based particularly on acryptographic algorithm’,通过引用并入本文。分组密码DES被应用于输入数据两次。然后,比较两个计算的结果。如果其是不相等的,则已经检测到故障。
在白盒模型中,容易规避该对策。例如,可以禁用第二执行或者比较,或者可以将相同故障引入DES的两个副本中。存在对于当在白盒模型中被攻击时能够被更好地保护的新DFA对策的需求。
发明内容
提出了一种计算分组密码的设备。分组密码结果被计算多次,并且所述结果被组合。通过在所述组合的步骤之前和之后插入额外分组密码轮(round),确保了故障在所述分组密码结果中扩散。该构造减少了在所述程序中任何地方引入故障之后能够从所观察到的最后输出中导出的信息。在所述分组密码的秘钥相关轮中由攻击者引入的故障在所述分组密码结果中直接地显得更少。因此,攻击者具有更少机会从其中导出信息,因此,使DFA攻击复杂。
可以防止故障攻击的备选方式是使用联合编码的变量来联合地计算重新计算以及初始计算,例如,其中,被用在所述初始计算中的变量与被用在所述重新计算中的变量被联合地编码。这导致在表驱动的实施方案中的大的表或者在多项式实施方案中的许多多项式系数。但是这样的联合编码在实施例中不是必要的。因此,较小的实施方案变得可能,例如,利用较小的表。
根据本发明的实施例的另一优点是更高效的扩散,因为在本发明中,在所述故障之后的任何分组密码轮通过所述分组密码结果添加到所述故障的扩散。有助于所述扩散不仅仅是所述额外分组密码轮,并且还有在所述故障之后的任何轮,包括所述分组密码的任何常规轮。因此,需要更少的额外轮。
所述分组密码设备是电子设备。例如,其可以是移动电子设备,例如,移动电话。所述设备可以是机顶盒、智能卡、计算机等。在本文中所描述的计算分组密码的所述设备和方法可以应用在各种各样的实际应用中。这样的实际应用包括:数字权限管理、金融应用、计算机安全等。
根据本发明的方法可以在计算机上被实施为计算机实施的方法,或者在专用硬件中实施,或者以这两者的组合来实施。针对根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的范例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,所述计算机程序产品包括被存储在计算机可读介质上的非瞬态程序代码,当所述程序产品在计算机上被运行时,所述非瞬态程序代码用于执行根据本发明的方法。
在优选实施例中,所述计算机程序包括计算机程序代码,当所述计算机程序在计算机上被运行时,所述计算机程序代码适于执行根据本发明的方法的所有步骤。优选地,所述计算机程序被实施在计算机可读介质上。
本发明的另一方面提供了一种使所述计算机程序可供下载的方法。当所述计算机程序被上载到例如Apple的App Store、Google的Play Store或者Microsoft的WindowsStore中时并且当所述计算机程序可用于从这样的商店下载时使用该方面。
附图说明
将仅通过范例的方式参考附图来描述本发明的另外的细节、方面和实施例。附图中的元素是为了简单和清晰而图示的并且不一定是按比例绘制的。在附图中,与已经描述的元件相对应的元件可以具有相同的附图标记。
在附图中:
图1a示意性示出了加密设备的实施例的范例,
图1b示意性示出了加密设备的实施例的范例,
图1c示意性示出了加密设备的实施例的范例,
图2示意性示出了加密设备的实施例的范例,
图3示意性示出了加密方法的实施例的范例,
图4示意性示出了常规分组密码计算的范例,
图5a示意性示出了分组密码计算的实施例的范例,
图5b示意性示出了分组密码计算的实施例的范例,
图6a示意性示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,
图6b示意性示出了根据实施例的处理器系统的表示。
附图标记列表,在图1-2中:
100、101、102 加密设备
105 输入接口
110 输入消息
120、121、122 初始分组密码轮单元
131、132、133 最后分组密码轮单元
141、142、143 额外分组密码轮单元
151、152、153 中间分组密码结果
161、162、163 求平均函数单元
170 加法单元
180 逆(inverse)额外分组密码轮单元
190 分组密码结果
195 输出接口
200 加密设备
231、232 最后分组密码轮单元
241、242 额外分组密码轮单元
246、247 另外的额外分组密码轮单元
251、252 另外的中间分组密码结果
261、262 另外的求平均函数单元
270 加法单元
280 逆另外的额外分组密码轮单元
具体实施方式
尽管本发明容许有许多不同形式的实施例,但是在附图中示出了并且将在本文中详细描述一个或多个特定实施例,并且理解本公开将被认为是本发明的原理的范例,而并不旨在将本发明限于所示和所描述的特定实施例。
在下文中,出于理解的缘故,描述了实施例的在操作中的元件。然而,将明显的是,各个元件被布置成执行被描述为由其执行的功能。
此外,本发明并不限于实施例,并且本发明在于每个以及每种新颖的特征或者上文所描述的或在相互不同的从属权利要求中记载的特征的组合。
图4表示通过连续地应用轮函数R0,R1,K,R9而将输入x变换为输出y的常规计算。中间状态被表示为x0K,x8。在该特定范例中,存在10轮,如在AES-128中,但是类似图形能够被绘制用于使用不同数量的轮的计算,如AES-192(12轮)、AES-256(14轮)或DES(16轮)。在所有这些计算中,所述轮函数是取决于轮密钥的公共函数。
面对这种计算的实施方案(例如,计算机程序)的攻击者可能能够在程序正在运行的同时从计算机存储器读取轮密钥。然而,程序员能够通过对所有变量(特别是轮密钥)进行编码而在程序中抵御这种存储器刮擦攻击。攻击者可以试图对编码进行逆向工程并且因此检索轮密钥,但是,通常,存在提取密钥的更容易的方法,其不要求逆向工程。DFA攻击是这些方法之一。
在DFA攻击中,攻击者在程序中的一些地方插入故障,即改变变量,并且观察该改变对输出的影响。输出如何改变可以揭示最后轮的轮密钥的一部分。
为了使这更具体,我们返回到在图4中所描绘的AES-128的范例。存在10轮和11轮密钥k0,k1,K,k10。根据输入x对输出y的计算如下继续:
x0=R0(x)x1=R1(x0)x2=R2(x1)x3=R3(x2)x4=R4(x3)
x5=R5(x4)x6=R6(x5)x7=R7(x6)x8=R8(x7)y=R9(x8),
其中,对于轮0至8而言,轮函数由下式给出:
针对0≤i≤8,
并且最后轮函数R9由下式给出:
如果攻击者改变对来自最后轮的单个字节(比如说x8、k9或k10的字节)进行编码的程序变量,那么两个输出在单个字节中不同并且没有关于密钥的信息被揭示。如果攻击者改变对来自轮0至7中的一个轮的单个字节进行编码的变量,那么整个输出改变,并且导出关于轮密钥中的任意轮密钥的信息是不实际的。但是,如果攻击者改变对倒数第二轮的单个字节(比如说x7或k8的字节)进行编码的变量,那么输出y(在没有故障注入的情况下)和y*(在有故障注入的情况下)在十六个字节中的四个中不同(由于MixColumns操作),并且对于这些输出而言,其必须保持:
InverseMixColumns(InverseSubBytes(InverseShiftRows))和
InverseMixColumns(InverseSubBytes(InverseShiftRows))
在确切地一个字节中不同。这约束其中y与y*不同的位置中的k10的四个字节的可能值。将不同的改变应用到相同的程序变量将给出针对相同的四个字节的不同的约束,并且通常,仅需要数个这样的故障注入来唯一地确定k10的四个字节。k10的其他字节由对轮8中的不同变量的DFA攻击发现。
图1a示意性示出了加密设备100的实施例的范例。加密设备100被配置为计算分组密码。设备100包括输入接口105,输入接口105被配置为接收在其上计算所述分组密码的输入消息。存在适合于接收设备中的输入消息的许多输入接口,在本文中给出了其范例。设备100还包括处理器电路。所述处理器电路被布置成处理接收到的输入消息以获得表示分组密码结果的输出消息。
所述分组密码的执行被实施在处理器电路中,在本文中示出了其范例。图1a、1b、1c和2示出了功能单元,所述功能单元可以是所述处理器电路的功能单元。例如,图1a可以被用作所述处理器电路的可能功能组织的蓝图。所述处理器电路未示出与图1a中的单元分离。例如,在图1a中所示的功能单元可以全部或部分地被实施在被存储在设备100处(例如,在设备100的电子存储器中)并且能由设备100的微处理器执行的计算机指令中。在混合实施例中,功能单元被部分地实施在硬件中(例如,作为协处理器,例如作为密码协处理器),并且被部分地实施在被存储并且在设备100上被运行的软件中。
分组密码通过将多个可逆轮顺序地应用到输入数据而工作。例如,可以维持内部状态。下一内部状态通过将下一轮应用到当前内部状态而从当前内部状态获得。从输入消息导出初始内部状态。从最后内部状态获得分组密码结果。例如,分组密码轮可以增加内部状态的混淆和扩散。混淆和扩散是初始由Claude Shannon标识的分组密码轮的两个性质。即使由分组密码引起的混淆和扩散是有限的,使用多个分组密码来混合其效果。例如,分组密码轮可以包括在内部状态上应用的多个函数;所述多个函数中的至少一个函数被配置为增加混淆,例如,s盒或s盒阵列,并且所述多个函数中的至少一个函数被配置为增加扩散,例如,内部状态的置换或线性变换。
对于大多数范例而言,我们将使用分组密码AES。在高级加密标准联邦信息处理标准出版物197,2001中描述了高级加密标准(AES)。然而,实施例能够采用使用多轮的任何分组密码,例如,SLT类型分组密码(替代/线性变换,还被称为替代置换网络(SPN)),诸如AES(密钥生成算法)、3-Way、Kuznyechik、PRESENT、SAFER、SHARK、Square等,但是还有Feistel类型分组密码,诸如DES、3DES等。
由输入接口105接收到的输入消息110可以是普通的格式或者被编码,例如根据秘密编码来编码。例如,在AES的情况下,输入消息可以是未编码的16字节消息。在设备100中实施的分组密码包括要被应用到所述输入消息的多个分组密码轮。设备100包括初始分组密码轮单元120和最后分组密码轮单元131。初始分组密码轮单元120和最后分组密码轮单元131一起包括分组密码的所有轮。例如,初始分组密码轮单元120可以被布置成执行分组密码轮的初始部分,并且最后分组密码轮单元131可以包括分组密码轮的最后部分。两个部分不需要包括相同数量的轮。已知分组密码的最后轮更易受DFA攻击。要被保护免受DFA攻击的轮在最后分组密码轮单元131中,然而没有已知DFA攻击存在的轮能够进入初始分组密码轮单元120中。例如,如果分组密码具有10轮,则初始7轮可以在初始分组密码轮单元120中执行,然而最后3轮可以在最后分组密码轮单元131中完成。
在本发明的实施例中,所述分组密码轮可以在编码的数据上操作,例如,使用常规的白盒技术。例如,分组密码轮可以在编码的内部状态上操作。例如,内部数据(例如,内部状态)可以包括多个数据元素(例如,字节或半字节),其中的每个数据元素被编码。例如,所述编码可以是秘密编码,例如,对于设备100私有的。例如,可以在编译时间处选择所述编码。原则上,在任何轮中的任何数据元素可以使用不同的编码来编码。然而,一些重新使用是可能的。例如,一些轮可以使用与其他轮相同的编码。这继而可以导致实施方案的大小的减小。编码可以使用各种额外措施来改进安全性。例如,经编码的数据元素可以大于未编码的元素。例如,所述编码可以使用多个共享,其加和是经编码的数据元素。可以个体地编码个体共享。例如,数据元素可以利用冗余数据(例如,混淆值)来联合地编码,使得多个不同地编码的值表示相同的简单数据值。
白盒实施方案可以使用查找表、矩阵乘法等在经编码的数据上操作。白盒实施方案还可以使用多个相互关联的多项式(例如,在有限域上)来实施。
例如,编码轮可以在第一分组密码轮之前执行以对输入消息进行编码。例如,解码轮可以在最后分组密码轮之后执行。以这种方式,即使输入和输出未被编码,设备100也能够在编码的数据上操作。例如,在实施例中,分组密码被配置为解密操作,例如,作为数字权限管理应用(DRM)的一部分。使用设备100,DRM应用能够对内容进行解密,然而用户不能够提取对内容进行加密的密钥。例如,在实施例中,所述分组密码被配置用于加密操作,例如作为其中所述分组密码可以被用于签名消息(例如,使用MAC,诸如CBC-MAC)的金融应用的一部分。即使用户能够对消息签名,但是他不能够提取签名密钥。
感兴趣地,分组密码的白盒实施方案可以被用于从分组密码当中创建非对称密码系统。例如,可以公布分组密码加密操作的白盒实施方案,使得任何人能够利用其对数据进行加密,而仅知道被用在分组密码实施方案中的秘密密钥的那些人能够解密。
设备100还包括额外分组密码轮单元141。尽管利用不同的(例如,不相关的,例如,随机的)轮密钥,但是额外分组密码轮例如可以与由设备100实施的分组密码的轮相同。但是,所述额外分组密码轮不一定必须是相同分组密码的轮。例如,在实施例中,由额外分组密码轮单元141实施的分组密码轮引起内部状态的额外的混淆和/或扩散,使得最后分组密码轮单元131的轮中的故障攻击被扩散开。那些轮中的故障通过单元131(如果有的话)、单元141和单元161中的后续轮来扩散(参见下文)。故障被扩散的量能够通过增加额外分组密码轮单元中的分组密码轮的数量来增加。通过增加轮的该数量,能够确保故障扩散到甚至外部内部状态。例如,这样的高杠可以通过要求在最后(普通的)输出中的任何特定位翻转的概率作为翻转单个位的结果来量化,单元131的轮是50%+/-阈值。所述阈值可以是比如说10%或1%等。翻转的概率可以通过实验来确立。
例如,单元141的轮可以包括在数据单元上操作的s盒阵列的组合(比如说内部状态的字节),跟随有对整个内部状态的随机但是固定的线性变换。后者是其中不需要明确密钥的分组密码轮的范例。
注意,在单元131的结尾处,尽管在编码的域中,但是计算了分组密码的结果。但是对于攻击者而言,这是不可见的。在单元141的结尾处,正确结果已经失真。这时候,已经计算了第一中间分组密码结果151。对于具有实施方案的(例如,被用在单元141中的分组密码轮、所使用的编码等)知识的某人而言,甚至在没有由分组密码所使用的密钥的知识的情况下,可以根据中间分组密码结果151来重建分组密码的结果。
针对其他白盒攻击(例如,其中变量仅被观察而未修改的攻击)的有效保护可以基于共享。例如,变量x可以被表示为多元组xi,其表示变量。在存在k共享的情况下,可以具有x=∑i=1,kxi。变量x可以是数据单元,例如,内部状态的字节。所述内部状态的所有数据单元(例如,字节)可以以这种方式来表示。个体共享可以以编码的形式Ei(xi)(针对某个双射Ei)在白盒程序中实施。具有共享的白盒实施方案对于某些高级白盒攻击(诸如碰撞攻击)较不敏感。实施例将DFA保护添加到这样的实施方案以获得相对少的额外成本,例如,不将太多成本添加到执行时间或表大小。
在实施例中,基于共享的表示被用在初始轮中,例如,在单元120中,但是不被用在稍后的轮中,例如,在单元131、132和133等中。这样的优点在于:相对昂贵的共享被用在较少的轮中。碰撞攻击在稍后轮中是不太有利的,然而DFA攻击在先前轮中是不太有利的,因此这减少了成本,特别是表大小,而未在安全性方面放弃很多。
设备100被配置为计算另外的中间分组密码结果。在图1a中示出的是两个另外的中间分组密码结果:中间分组密码结果152和153。能够计算超过两个的另外的中间分组密码结果。图1b示出了其中仅计算一个另外的中间分组密码结果的实施例。
为了计算另外的中间分组密码结果,设备100包括另外的最后分组密码轮单元。在图1a中示出的是最后分组密码轮单元132和133。另外的最后分组密码轮单元中的任一个和初始分组密码轮单元120包括分组密码的所有轮。另外的最后分组密码轮单元(例如,单元132和133)计算与最后分组密码轮单元131相同的分组密码轮,但是其通常将在不同的编码中这样做。另外的最后分组密码轮单元因此重新计算多个分组密码轮中的最后分组密码轮中的至少一个,例如,单元131的轮。在单元132和133的结尾处,尽管在编码中,但是分组密码结果是可用的,并且如果不存在故障,则其应当全部等于单元131的结果。
跟随另外的最后分组密码轮单元132和133,应用单元141的一个或多个额外分组密码轮。在图1a中示出的是另外的额外分组密码轮单元142和143,分别跟随单元132和133。所述另外的额外分组密码轮单元执行与额外分组密码轮单元141相同的分组密码轮。另外的额外分组密码轮单元的结果是另外的中间分组密码结果152和153。除了不同的编码之外,并且假定没有故障发生,所有的中间分组密码结果(例如,结果151、152和153)将是相等的。
设备100还包括求平均函数单元。在图1a中示出的是求平均函数单元161、162和163。所述求平均函数单元将对应的多个求平均函数应用于多个中间分组密码结果。已经选择了多个求平均函数,使得其函数加和等于恒等函数。例如,如果我们将所述求平均函数表示为fi,并且将其输入表示为x,则要求在于∑ifi(x)=x。例如,函数f1可以通过求平均函数单元161来实施,函数f2可以通过求平均函数单元162来实施,并且函数f3可以通过求平均函数单元163来实施。如果存在三个求平均函数单元,则我们可以具有f1(x)+f2(x)+f3(x)=x。
所述求平均函数可以以各种方式来选取。例如,除了多个求平均函数之一外的一些或者甚至全部求平均函数可以从求平均函数的较大集合中随机地选择。所述最后求平均函数可以被计算为恒等函数与所选择的求平均函数的函数差。例如,假定存在k个求平均函数,则可以定义最后函数
针对求平均函数的较大集合的各种选择是有利的。例如,可以选择求平均函数作为对中间分组密码结果中的数据元素逐分量地起作用的函数。例如,如果中间分组密码结果是数据元素的序列,例如,字节x=x1|...|xi,则求平均函数可以被定义为f(x)=g1(x1)|...|gi(xi)。
另一种可能性是选择求平均函数作为线性操作。例如,线性操作对中间分组密码结果起作用。在这种情况下,所述中间分组密码结果可以被认为是数据元素的序列(比如说字节),并且所述线性操作可以被认为是在对应有限域中的矩阵,例如,在字节的情况中的F256。具体地,所述线性操作可以被认为是在所述中间分组密码结果(例如,在F2上的矩阵)中的位上操作的矩阵。
用于选择所述求平均函数的又一另外的选项是从具有预定最大阶的多项式(例如,2阶多项式)中选择它们。自身已知如何在按字节编码的值上实施多项式函数。
注意,所述求平均函数可以使用与在各种分组密码轮单元中实施的轮相同的白盒技术来实施。例如,所述求平均函数可以被实施为表网络、多项式操作的序列等。
尽管未被要求用于正确操作,但是优选的是,多个求平均函数中的至少一个求平均函数是可逆的。如果所有多个求平均函数都是可逆的,则其是更优选的。例如,可以随机地选择针对大多数求平均函数的可逆函数,并且根据其计算最后求平均函数。如果最后求平均函数被确定不是可逆的,则可以再次选择其他求平均函数中的一些或全部求平均函数,直到所有函数是可逆的。
所述求平均函数的结果在加法单元170中被相加。加法的类型与被用在求平均函数的定义中的加法相同。在实施例中,加法单元170使用XOR操作;但是其他加法操作是可能的,例如,自然按字节算术加法。由于所述求平均函数如何被选取,因而加法的结果将与额外分组密码轮单元中的任一个的输出相同,例如,与中间分组密码结果中的任一个相同。如果在多个中间分组密码结果计算中的任一个中发生故障,则其将导致失真的最后分组密码结果。
例如,考虑在单元133中的故障。例如在单元133、143和180中跟随故障的任何分组密码轮有助于将故障扩散在分组密码结果上。在故障影响最后分组密码结果的越来越大的部分时,对于攻击者而言从故障导出有用信息变得更难。理想地,故障影响最后分组密码结果中的所有位。亦即,理想地,对于最后分组密码结果中的任何位而言,存在其随着故障的结果而改变的正概率。
设备100包括逆额外分组密码轮单元180。单元180执行所述额外分组密码轮单元的分组密码轮的逆,获得分组密码结果190。如果没有故障发生,则这将是正确分组密码结果。如果期望的话,逆额外分组密码轮单元180还能够取消编码,因此正确分组密码结果190是普通的。输出接口195可以被配置为传送分组密码结果190。
为了混淆在何处计算分组密码轮,实施例可以包括一个或多个虚设轮。虚设轮可以被包括在分组密码轮中的任一个分组密码轮中。具体地,虚设轮可以被包括在最后分组密码轮单元、额外分组密码轮单元中并且甚至可能被包括在求平均函数单元中。作为虚设轮,可以执行一个或多个实际的分组密码轮,可能利用不同的轮密钥,跟随有分组密码轮的逆。虚设轮还可以是执行恒等操作的轮,例如,仅将编码从一种形式改变到另一种形式。
如上文所提到的,在白盒实施方案中,中间数据的大部分或全部将是编码的形式。具体地,将对中间分组密码结果进行编码。感兴趣地,在实施例中,不同的中间分组密码结果未被联合地编码。例如,中间分组密码结果151独立于中间分组密码结果152和153被编码。因为联合编码要求较大的表,所以这是有利的。在实施例中,联合编码不被用于任何变量。
除了白盒模型之外,存在其他攻击模型。密码基元据称在黑盒模型中是安全的,如果仅知道基元的输入和输出的攻击者不能提高他的权限,例如获得秘密密钥、加密消息、解密消息等。然而,实际上,攻击者常常不在黑盒模型中操作,并且事实上具有比仅输入和输出更多的信息。例如,在灰盒模型中,假定攻击者具有对与基元的执行有关的一些信息的访问权。信息的这些额外源被称为‘侧信道’。例如,侧信道包括操作花费的时间量或者消耗的电量等。白盒模型是相关的,但是甚至更强的模型,因为攻击者具有对基元的所有内部变量的全部访问权。
故障的故意引入在白盒中与在灰盒中的问题一样多。因此,如果仅需要灰盒被保护,例如,因为在给定攻击者的资源的情况下,白盒类型攻击不可用或太昂贵,可以使用在本文中所描述的实施例。在这种情况下,可以舍弃白盒措施中的一些措施,诸如对所有变量进行编码。然而,使故障攻击的结果失真的优点保持,使得攻击者不能够基于在故障之前和之后的观察到的输出关于密钥做出干扰。
图1b示意性示出了加密设备101的实施例的范例。除了较少的中间分组密码结果被计算之外,设备101类似于设备100;在图1b中,两个中间分组密码结果被计算:结果151和152。因此,求平均单元161和162也被调整。选取这些求平均函数,使得其函数加和等于恒等式。注意,具有比在图1a中所示的更多中间分组密码结果也是可能的,例如,通过添加更多分支,诸如分支132、142、162和分支133、143、163。如果分支的数量和中间分组密码结果的数量被改变,则因此求平均函数被改变。
图1c示意性示出了加密设备102的实施例的范例。除了分组密码的所有轮被重新计算而不是仅最后轮的数量之外,设备102类似于设备100。设备102包括初始分组密码轮单元121和122。单元121和122执行与初始分组密码轮单元120相同的计算,但是可以在不同的编码中这样做。
图2示意性示出了加密设备200的实施例的范例。如在图1a中,图2示出了对三个中间分组密码结果的计算。所述中间分组密码结果中的两个是使用两个分支以与图1a中相同的方式来计算的:131-161和132-162,其各自计算中间分组密码结果。为了计算第三中间分组密码结果,使用更复杂的方法。
设备200包括多个另外的中间分组密码结果,示出的是结果251、252。这些另外的中间分组密码结果是使用在另外的求平均函数单元261、262中的另外的求平均函数来求平均的。然而,输入另外的求平均函数的另外的中间分组密码结果251、252不与输入求平均函数单元161和162的中间分组密码结果151和152相同,甚至在编码的情况下也不相同。
设备200包括最后分组密码轮单元;示出的是单元231和232,这些单元计算与单元131相同的分组密码轮。跟随最后分组密码轮单元,应用额外分组密码轮单元;示出了额外分组密码轮单元241和242。这些单元计算与单元141相同的分组密码结果。然而,与分支131-161和132-162不同,跟随额外分组密码轮单元241和242,存在另外的额外分组密码轮单元,示出了单元246和247。所述另外的额外分组密码轮单元的结果是另外的多个中间分组密码单元。
设备200包括实施另外的多个求平均函数的另外的求平均函数单元。这些函数被应用到另外的多个中间分组密码结果。已经选择了另外的多个求平均函数,使得其函数加和等于恒等函数。设备200包括加法单元270,加法单元270被配置为对另外的多个求平均函数的结果相加。如果没有故障发生,则加法单元270的结果与比如说另外的额外分组密码轮单元246的结果相同。
设备200包括逆另外的额外分组密码轮单元280,其被配置为将另外的额外分组密码轮单元246的轮的逆应用到加法的结果。如果不存在误差,则结果是中间分组密码结果。求平均函数单元163被应用到加法的结果。选择求平均函数单元161、162和163,使得其函数加和是恒等式。
在设备100、101、102和200的各种实施例中,可以根据各种备选方案来选择输入接口。例如,所述输入接口可以是局域网或广域网(例如,因特网)的网络接口、内部或外部数据存储装置的存储接口、键盘、应用接口(API)等。输出接口可以是对应的例如局域网或广域网(例如,因特网)的网络接口、内部或外部数据存储装置的存储接口、键盘、应用接口(API)等。输出接口还可以是显示器、打印机等。
设备100、101、102和200可以具有用户接口,所述用户接口可以包括众所周知的元件,诸如一个或多个按钮、键盘、显示器、触摸屏等。所述用户接口可以被布置用于容纳用于例如对在设备处的存储或接收到的数据执行分组密码动作(例如,加密或解密)的用户交互。
存储装置110可以被实施为电子存储器(比如说闪存)或者磁性存储器(比如说硬盘等)。存储装置110可以包括多个分立存储器,其一起组成存储装置110。存储装置110还可以是临时存储器(比如RAM)。在临时存储装置110的情况下,存储装置110包含在使用之前获得数据的一些器件,比如说通过在任选的网络连接(未示出)上获得数据。
通常,设备100、101、102、200各自包括微处理器(未分离地示出),其执行被存储在设备处的适当的软件;例如,该软件可能已经被下载和/或被存储在对应存储器中,所述存储器例如是诸如RAM的易失性存储器或者诸如闪存的非易失性存储器(未分离地示出)。备选地,所述设备可以全部或部分地以可编程逻辑来实施,例如,作为现场可编程门阵列(FPGA)。所述设备可以全部或部分地被实施为所谓的专用集成电路(ASIC),即,针对其特定使用而定制的集成电路(IC)。例如,电路例如可以使用硬件描述语言(诸如Verilog、VHDL等)被实施在CMOS中。
在实施例中,设备可以包括输入接口电路、初始分组密码轮单元电路、两个或更多个最后分组密码轮单元电路、两个或更多个额外分组密码轮单元电路、两个或更多个求平均函数单元电路、加法单元电路、逆额外分组密码轮单元电路、输出接口电路。实施例还可以包括两个或更多个另外的额外分组密码轮单元电路、两个或更多个另外的求平均函数单元电路、另外的加法单元电路、逆另外的额外分组密码轮单元电路等。电路实施在本文中所描述的对应单元。电路可以是处理器电路和存储装置电路,所述处理器电路运行电子地表示在存储电路中的指令。
处理器电路可以以分布式方式来实施,例如,作为多个子处理器电路。存储装置可以被分布在多个分布式子存储装置上。存储器的部分或全部可以是电子存储器、磁性存储器等。例如,存储装置可以具有易失性部分和非易失性部分。存储装置的部分可以是只读的。
图3示意性示出了加密方法300的实施例的范例。方法300是被布置成在输入消息110上计算分组密码的加密方法。方法300可以在电子设备上执行,所述电子设备例如是计算机和/或诸如设备100、101、102或200的设备。所述分组密码包括多个分组密码轮。方法300包括:
-例如通过输入接口接收310输入消息,例如,所述输入消息可以从计算机程序接收,例如,其使用分组密码,例如用于加密或解密,
-计算320多个中间分组密码结果。所述中间分组密码结果是在能够独立于彼此的许多分支中计算的。在每个分支中,计算中间分组密码结果。方法300包括在其中计算第一中间分组密码结果中的第一分支。方法300包括将跟随有一个或多个额外分组密码轮的多个分组密码轮顺序地应用330到输入消息。在另外的分支中计算另外的中间分组密码结果。方法300包括重新计算340跟随有一个或多个额外分组密码轮的多个分组密码轮中的最后分组密码轮中的至少一个。重新计算的数量越多,安全性越高。
-将多个求平均函数应用350到多个中间分组密码结果,已经选择了多个求平均函数,使得其函数加和等于恒等函数,
-将所述多个求平均函数的结果相加360,并且
-应用370一个或多个额外分组密码轮的逆,分组密码结果190是根据所述逆的结果而获得的。
执行方法的许多不同的方式是可能的,如对于本领域技术人员而言将是明显的。例如,步骤的次序能够变化或者一些步骤可以并行地执行。此外,在各步骤之间,可以插入其他方法步骤。插入步骤可以表示诸如在本文中所描述的方法的细化,或者可以与所述方法无关。例如,可以至少部分地并行地执行不同分支中的一些或全部分支。此外,给定步骤可能在下一步骤开始之前尚未完全完成。
根据本发明的方法可以使用软件来执行,其包括用于使处理器系统执行方法300的指令。软件可以仅包括由所述系统的特定子实体采取的那些步骤。所述软件可以被存储在适合的存储介质中,诸如硬盘、软盘、存储器、光盘等。所述软件可以沿着有线或无线地或使用数据网络(例如,因特网)作为信号来发送。可以使所述软件可用于下载和/或对于服务器上的远程存储装置可获得。根据本发明的方法可以使用被布置成将可编程逻辑(例如,现场可编程门阵列(FPGA))配置为执行所述方法的位流来执行。
将意识到,本发明还扩展到计算机程序,特别是适于将本发明付诸实践的载体上或载体中的计算机程序。所述程序可以以源代码、目标代码、代码中间源和目标代码的形式,诸如部分编译形式,或者以适合于用在根据本发明的方法的实施方案中的任何其他形式。与计算机程序产品有关的实施例包括对应于所阐述的方法中的至少一种方法的处理步骤中的每个处理步骤的计算机可执行指令。这些指令可以细分成子程序和/或被存储在可以静态或动态地链接的一个或多个文件中。与计算机程序产品有关的另一实施例包括对应于所阐述的系统和/或产品中的至少一个中的器件的每个器件的计算机可执行指令。
下文讨论了另外的实施例,其可以被实施在电子设备上。下文所公开的实施例包括以下特征中的一个或多个特征:
1.计算被分成多个分支,每个分支包含易受DFA攻击的轮;
2.每个分支中的变量被分离地编码,不同的分支应当使用不同的编码,使得其不是显而易见的,不同的分支中的轮是相同的;
3.在每个分支中,虚设轮,即是彼此的逆的成对的两个连续轮,可以被插入在正常轮之间;
4.在每个分支中,额外轮被执行,以便实现对注入故障的扩散,例如,在所有字节上的完全扩散;
5.已经执行相同轮的分支被‘求平均’;其字节以这样的方式被组合:如果没有误差被注入在这些分支中的任一个分支中并且所有这些分支已经计算相同结果(在不同的编码中),求平均的结果是对该相同结果的另一编码;
6.在求平均之后,额外轮被取逆直到获得输出。
步骤5和6的效果在于:除非明确地相同故障已经被注入在易受DFA攻击的轮的所有实例中,攻击者将不看到他期望的输出的改变,并且如相对于图4解释的DFA将不工作。换言之,如果存在包含DFA敏感轮的n个分支,则攻击者必须将权限故障插入在这些分支中的每个分支中。图5a给出了在其中使用两个分支以及一个额外轮R10的实施例。图5b给出了在其中使用五个分支以及三个额外轮函数R10、R11和R12的更详细的范例。数个虚设轮(Rd和其逆)也被插入在所述分支之一中。
图5a图示了两个故障必须注入在DFA攻击中的实施例。从轮7开始,所述计算使用不同的编码被执行两次。在附图中未指示编码。这意指x7=R7(x6)与x′7相同。额外轮R10必须与轮8中的MixColumns一起扩散被插入在x10或x′10的所有字节上的x7或x′7中的误差的效果——记住,在AES-128中,R9不使用MixColumns,并且因此移动了误差的效果,但是不在多个字节上将其传播。良好的选择是挑选随机k并且使如果没有故障被注入,则该电路计算与来自图4的电路相同的输出。被表示为x10和x′10的来自两个分支的结果被求平均为其中,A是具有的特性的状态空间映射上的任意可逆映射,其中,I表示恒等映射,也是可逆的。然后,当且仅当x10=x′10时x11=x10,其隐含相同的故障必须已经被插入到这两个分支中。
图5b图示了五个故障必须被注入在DFA攻击中的更详尽的实施例。来自两个分支的轮12之后的结果使用可逆的映射A和来组合,并且,R12的逆被应用并且来自该动作的结果与使用不同的可逆映射B、C、D和的三个其他分支的结果进行组合。最后,轮11和10被取逆以获得输出。
图6a示出了具有包括计算机程序1020的可写部分1010的计算机可读介质1000,计算机程序1020包括用于使处理器系统执行根据实施例的计算分组密码的方法的指令。计算机程序1020可以作为物理标记或者借助于对计算机可读介质1000的磁化被嵌入在计算机可读介质1000上。然而,任何其他适合的实施例也是能设想到的。此外,将意识到,尽管计算机可读介质1000在此被示为光盘,但是计算机可读介质1000可以是任何适合的计算机可读介质,诸如硬盘、固态存储器、闪存等,并且可以是非可记录或可记录的。计算机程序1020包括用于使处理器系统执行所述方法以计算分组密码的指令。
图6b示出了计算分组密码的加密设备的根据实施例的处理器系统1140的示意性表示。所述处理器系统包括一个或多个集成电路1110。在图6b中示意性示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120,例如CPU,其用于运行计算机程序部件以执行根据实施例的方法和/或实施其模块或单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的部分可以是只读的。电路1110可以包括通信元件1126,例如,天线、连接器或者这两者等。电路1110可以包括用于执行方法中定义的处理的部分或全部处理的专用集成电路1124。处理器1120、存储器1122、专用IC 1124和通信元件1126可以经由相互连接1130(比如说总线)连接到彼此。处理器系统1110可以被布置用于分别地使用天线和/或连接器的接触式和/或无接触式通信。
例如,在实施例中,计算分组密码的设备可以包括处理器电路和存储器电路,所述处理器被布置成运行被存储在存储器电路中的软件。例如,所述处理器电路可以是InterCore i7处理器、ARM Cortex-R8等。在实施例中,所述处理器电路可以是ARM Cortex M0。所述存储器电路可以是ROM电路或非易失性存储器,例如闪存。所述存储器单元可以是易失性存储器,例如SRAM存储器。在后者情况下,所述设备可以包括非易失性软件接口,例如硬盘驱动器、网络接口等,其被布置用于提供软件。
应当注意,上文所提到实施例图示而非限制本发明,并且本领域技术人员将能够设计许多备选实施例。
在权利要求中,被放置在括号之间的任何附图标记不应当被解释为对权利要求的限制。动词“包括”以及其词形变化的使用不排除权利要求中陈述的那些之外的元件或步骤的存在。在元件前面的量词“一”或“一个”不排除多个这样的元件的存在。本发明可以借助于包括若干不同元件的硬件并且借助于被适合地编程的计算机来实施。在枚举若干装置的设备权利要求中,可以通过硬件的同一个项实现这些装置中的若干装置。互不相同的从属权利要求中记载了特定措施的仅有事实并不指示不能有利地使用这些措施的组合。
在权利要求中,括号中的附图标记指代例证实施例的附图或者实施例的公式中的附图标记,因此增加了权利要求的可理解性。这些附图标记不应当被解释为限制权利要求。

Claims (12)

1.一种被布置成在输入消息(110)上计算分组密码的加密设备(100),所述分组密码包括多个分组密码轮(R0,...,R9),所述设备包括:
-输入接口(105),其被配置为接收输入消息,
-处理器电路,其被配置为:
-通过以下操作来计算多个中间分组密码结果:
-通过将跟随有一个或多个额外分组密码轮(R10;R10,...,R12)的所述多个分组密码轮(R0,...,R9)顺序地应用到所述输入消息,来计算所述多个中间分组密码结果中的第一中间分组密码结果(151),并且
-通过重新计算跟随有所述一个或多个额外分组密码轮(R10;R10,...,R12)的所述多个分组密码轮中的最后分组密码轮(R7,R8,R9)中的至少一个,来计算所述多个中间分组密码结果中的另外的中间分组密码结果(152、153),
-将多个求平均函数(T0,T1)应用到所述多个中间分组密码结果,所述多个求平均函数已经被选择为使得所述多个求平均函数的函数加和等于恒等函数,
-将所述多个求平均函数的结果相加,并且
-应用所述一个或多个额外分组密码轮的逆,分组密码结果(190)是根据所述逆的结果来获得的。
2.根据权利要求1所述的加密设备,其中,额外分组密码轮是通过改变轮密钥而从所述多个分组密码轮中的分组密码轮获得的。
3.根据前述权利要求中的任一项所述的加密设备,其中,所述多个求平均函数中的至少一个求平均函数是可逆的。
4.根据前述权利要求中的任一项所述的加密设备,其中,中间分组密码结果包括多个数据元素,求平均函数对所述数据元素逐分量地起作用。
5.根据前述权利要求中的任一项所述的加密设备,其中,求平均函数是线性的。
6.根据前述权利要求中的任一项所述的加密设备,其中,除了所述多个求平均函数之一之外的全部求平均函数已经从求平均函数的较大集合中随机地选择,并且其中,最后求平均函数已经被计算为所述恒等函数与所选择的求平均函数的函数差。
7.根据前述权利要求中的任一项所述的加密设备,其中,应用所述多个分组密码轮包括应用一个或多个虚设轮。
8.根据前述权利要求中的任一项所述的加密设备,其中,所述中间分组密码结果中的至少一个中间分组密码结果是在编码的变量上计算的,所述变量未被联合地编码。
9.根据前述权利要求中的任一项所述的加密设备,其中,所述多个中间分组密码结果被编码,并且在所述编码的情况下是相等的。
10.根据前述权利要求中的任一项所述的加密设备(100),其中,所述处理器电路被配置为:
-通过以下操作来计算所述另外的中间分组密码结果:
-通过重新计算所述多个分组密码轮的所述最后分组密码轮(R7,R8,R9)中的至少一个来计算另外的多个中间分组密码结果,所述多个分组密码轮跟随有所述一个或多个额外分组密码轮(R10),所述一个或多个额外分组密码轮跟随有一个或多个另外的额外分组密码轮(R11),
-将另外的多个求平均函数(T0,T1)应用到所述另外的多个中间分组密码结果,所述另外的多个求平均函数已经被选择为使得所述另外的多个求平均函数的函数加和等于所述恒等函数,
-将所述另外的多个求平均函数的结果相加,并且
-应用所述一个或多个另外的额外分组密码轮的逆。
11.一种被布置成在输入消息(110)上计算分组密码的加密方法(300),所述分组密码包括多个分组密码轮(R0,...,R9),所述方法包括:
-接收(310)输入消息,
-通过以下操作来计算(320)多个中间分组密码结果:
-通过将跟随有一个或多个额外分组密码轮(R10;R10,...,R12)的所述多个分组密码轮(R0,...,R9)顺序地应用(330)到所述输入消息,来计算所述多个中间分组密码结果中的第一中间分组密码结果(151),并且
-通过重新计算(340)跟随有所述一个或多个额外分组密码轮(R10;R10,...,R12)的所述多个分组密码轮中的最后分组密码轮(R7,R8,R9)中的至少一个,来计算所述多个中间分组密码结果中的另外的中间分组密码结果(152、153),
-将多个求平均函数(T0,T1)应用(350)到所述多个中间分组密码结果,所述多个求平均函数已经被选择为使得所述多个求平均函数的函数加和等于恒等函数,
-将所述多个求平均函数的结果相加(360),并且
-应用(370)所述一个或多个额外分组密码轮的逆,分组密码结果(190)是根据所述逆的结果来获得的。
12.一种计算机可读介质(1000),其包括表示用于使处理器系统执行根据权利要求11所述的方法的指令的瞬态或非瞬态数据(1020)。
CN201880003226.3A 2017-06-09 2018-05-31 计算分组密码的设备和方法 Active CN109661792B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17175161.3 2017-06-09
EP17175161.3A EP3413500A1 (en) 2017-06-09 2017-06-09 Device and method to compute a block cipher
PCT/EP2018/064321 WO2018224382A1 (en) 2017-06-09 2018-05-31 Device and method to compute a block cipher

Publications (2)

Publication Number Publication Date
CN109661792A true CN109661792A (zh) 2019-04-19
CN109661792B CN109661792B (zh) 2020-03-10

Family

ID=59034565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880003226.3A Active CN109661792B (zh) 2017-06-09 2018-05-31 计算分组密码的设备和方法

Country Status (7)

Country Link
US (1) US10790962B2 (zh)
EP (2) EP3413500A1 (zh)
JP (1) JP6782864B2 (zh)
CN (1) CN109661792B (zh)
BR (1) BR112019003039A2 (zh)
RU (1) RU2696334C1 (zh)
WO (1) WO2018224382A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
EP3407528A1 (en) 2017-05-24 2018-11-28 Koninklijke Philips N.V. Cryptographic device and method
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
EP3664359A1 (en) * 2018-12-07 2020-06-10 Koninklijke Philips N.V. A computation device using shared shares
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
WO2022102555A1 (ja) 2020-11-12 2022-05-19 ソニーグループ株式会社 センサ装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120170739A1 (en) * 2009-09-08 2012-07-05 Thomson Licensing Method of diversification of a round function of an encryption algorithm
WO2014154270A1 (en) * 2013-03-27 2014-10-02 Irdeto B.V. Tamper resistant cryptographic algorithm implementation
CN104380245A (zh) * 2013-02-28 2015-02-25 皇家飞利浦有限公司 随机数生成器和流密码
CN105099666A (zh) * 2015-06-26 2015-11-25 中国科学院信息工程研究所 混淆轮边界的白盒密码系统和方法
WO2017063986A1 (en) * 2015-10-12 2017-04-20 Koninklijke Philips N.V. A cryptographic device and an encoding device
WO2017080769A1 (en) * 2015-11-09 2017-05-18 Koninklijke Philips N.V. A cryptographic device arranged to compute a target block cipher

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280658B2 (en) * 2001-06-01 2007-10-09 International Business Machines Corporation Systems, methods, and computer program products for accelerated dynamic protection of data
FR2867635B1 (fr) 2004-03-11 2006-09-22 Oberthur Card Syst Sa Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
EP2506174B1 (en) * 2011-03-30 2019-01-09 Irdeto B.V. Enabling a software application to be executed on a hardware device
RU2666281C2 (ru) * 2013-05-01 2018-09-06 Конинклейке Филипс Н.В. Электронное устройство блочного шифрования, подходящее для обфускации

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120170739A1 (en) * 2009-09-08 2012-07-05 Thomson Licensing Method of diversification of a round function of an encryption algorithm
CN104380245A (zh) * 2013-02-28 2015-02-25 皇家飞利浦有限公司 随机数生成器和流密码
WO2014154270A1 (en) * 2013-03-27 2014-10-02 Irdeto B.V. Tamper resistant cryptographic algorithm implementation
CN105099666A (zh) * 2015-06-26 2015-11-25 中国科学院信息工程研究所 混淆轮边界的白盒密码系统和方法
WO2017063986A1 (en) * 2015-10-12 2017-04-20 Koninklijke Philips N.V. A cryptographic device and an encoding device
WO2017080769A1 (en) * 2015-11-09 2017-05-18 Koninklijke Philips N.V. A cryptographic device arranged to compute a target block cipher

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. JOYE等: "Strengthening hardware AES implementations against fault attacks", 《IET INF. SECUR.》 *

Also Published As

Publication number Publication date
RU2696334C1 (ru) 2019-08-01
EP3413500A1 (en) 2018-12-12
US10790962B2 (en) 2020-09-29
EP3469762B1 (en) 2019-10-02
US20200092081A1 (en) 2020-03-19
JP6782864B2 (ja) 2020-11-11
JP2020522753A (ja) 2020-07-30
BR112019003039A2 (pt) 2019-05-14
EP3469762A1 (en) 2019-04-17
WO2018224382A1 (en) 2018-12-13
CN109661792B (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
CN109661792A (zh) 计算分组密码的设备和方法
US11362802B2 (en) Cryptographic device arranged to compute a target block cipher
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
CN105024803B (zh) 白箱实现中的行为指纹
CN106888081B (zh) 白盒实施方案内中间值的宽编码
JP7065888B2 (ja) 暗号装置及び方法
JP2010515945A (ja) 実装のコピーの追跡
CN105024992B (zh) 在单个白箱实现中实现使用相关安全性设置
CN105184115B (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
CN105095695B (zh) 经由白箱实现的不正确功能行为实现授权
CN105007256B (zh) 用于在非信任平台上执行安全功能的安全模块
CN106953723A (zh) 防止dfa攻击的拆分和合并方法
CN105022937B (zh) 用于将白箱实现紧附到周围程序的接口兼容方法
CN106209346B (zh) 白盒密码技术交错查找表
CN108141352A (zh) 密码设备和编码设备
CN105978680B (zh) 一种加密钥的加密运算方法
CN109726565A (zh) 在抗泄漏原语中使用白盒
CN105281893B (zh) 用于引入白箱实现对串集合的依赖性的方法
CN105024808B (zh) 无需改变密钥的安全性补丁

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