用于处理数据的方法和设备转让专利

申请号 : CN201510383768.6

文献号 : CN105245325B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : P.杜普利斯S.莱热

申请人 : 罗伯特·博世有限公司

摘要 :

本发明涉及用于处理数据的方法和设备。提供一种用于处理数据的方法,其中所述方法具有如下步骤:对要处理的数据字(DW)进行编码(200),以便获得具有可预先给定数目的位的被编码的数据字(DW'),影响(210)所述被编码的数据字(DW')的最大为k个的多个位,以便获得被改变的数据字(DW''),在使用纠错码的情况下对所述被改变的数据字(DW'')进行解码(220),以便获得被解码的数据字(DW'''),处理(230)所述被解码的数据字(DW''')。

权利要求 :

1.一种用于处理数据的方法,其中该方法具有如下步骤:‑ 对要处理的数据字(DW)进行编码(200),以便获得具有可预先给定数目的位的被编码的数据字(DW'),

‑ 影响(210)所述被编码的数据字(DW')的最大为k个的多个位,以便获得被改变的数据字(DW''),

‑ 在使用纠错码的情况下对所述被改变的数据字(DW'')进行解码(220),以便获得被解码的数据字(DW'''),

‑ 处理(230)所述被解码的数据字(DW'''),其中所述影响步骤(210)包括所述被编码的数据字(DW')的最大为k个的多个位的取反和/或删除。

2.根据权利要求1所述的方法,其中为所述编码步骤(200)使用纠错码、特别是汉明码。

3.根据上述权利要求之一所述的方法,其中所述处理步骤(230)包括加密方法或加密方法的一部分的执行或数据与可预先给定的参考数据的比较。

4.根据权利要求1或2所述的方法,其中所述被编码的数据字(DW')和/或所述被改变的数据字(DW'')和/或所述被解码的数据字(DW''')至少暂时被存储。

5.根据权利要求1或2所述的方法,其中所述影响(210)根据确定性的和/或基于随机的方法来执行。

6.根据权利要求1或2所述的方法,其中所述解码(220)被执行,使得用于解码所述被改变的数据字(DW'')的时间是非恒定的。

7.一种用于处理数据的设备(100),其中该设备包括:‑ 存储器(110),在该存储器中保存具有可预先给定数目的位的事先被编码的数据字(DW'),所述事先被编码的数据字(DW')通过对要处理的数据字(DW)进行编码(200)而获得,‑ 影响单元(140),用于影响(210)所述被编码的数据字(DW')的最大为k个的多个位,以便获得被改变的数据字(DW'),‑ 解码单元(120),用于在使用纠错码的情况下对所述被改变的数据字(DW')进行解码(220),以便获得被解码的数据字(DW''),‑ 处理单元(130),用于处理(230)所述被解码的数据字(DW''),其中所述影响单元(140)被构造用于执行所述影响(210),使得所述影响包括所述被编码的数据字(DW')的最大为k个的多个位的取反和/或删除。

8.根据权利要求7所述的设备(100),其中所述设备(100)被构造用于为所述编码(200)使用纠错码。

9.根据权利要求8所述的设备(100),其中所述纠错码是汉明码。

10.根据权利要求7至9之一所述的设备(100),其中所述存储器(110)被构造用于至少暂时在所述存储器(110)中存储所述被编码的数据字(DW')和/或所述被改变的数据字(DW'')和/或所述被解码的数据字(DW''')。

说明书 :

用于处理数据的方法和设备

技术领域

[0001] 本发明涉及一种用于处理数据的方法。此外,本发明涉及一种用于处理数据的设备。

背景技术

[0002] 数据处理设备或方法本身是已知的并且尤其被用于执行加密方法或一般被用于处理安全相关的数据,特别是也被用在IT安全领域中。同样已知的是,借助所谓的侧通道攻
击(英语:side channel attack)可以攻击上面提及的系统和方法或更确切地说其在目标
系统、譬如微控制器等中具体的以硬件和软件方式的实施。在这些侧通道攻击中,检测并且
鉴于与秘密数据、譬如加密方法的秘密密钥的相关性检查要攻击的系统的一个或多个物理
参数(例如电流消耗、电磁辐射等)。由此,攻击者可以获得关于秘密密钥和/或被处理的数
据的信息。
[0003] 对开头所提及的系统和方法的另一类攻击在于,在执行方法时将主动的错误引入、注入该系统中。这些攻击也被称为“错误注入攻击(fault injection attacks)”。
[0004] US 2013/326232 A1是该领域的出版物。

发明内容

[0005] 因此,本发明的任务是说明用于处理数据的方法和设备,所述方法和设备相对于上面提及的攻击是坚固的,即不太容易受影响。
[0006] 该任务在开头所提及类型的方法方面根据本发明通过如下方式来解决:该方法具有如下步骤:
[0007] ‑ 对要处理的数据字进行编码,以便获得具有可预先给定数目的位的被编码的数据字,
[0008] ‑ 影响被编码的数据字的最大为k个的多个位,以便获得被改变的数据字,
[0009] ‑ 在使用纠错码的情况下对被改变的数据字进行解码,以便获得被解码的数据字,
[0010] ‑ 处理被解码的数据字。
[0011] 根据本发明认识到了:以获得被改变的数据字为目标对被编码的数据字的影响通过以下方式使侧通道攻击并且特别是也使错误注入攻击变得困难:显著地提高成功攻击的
花费。有利地,通过根据本发明影响被编码的数据字并且接着解码可以在执行该处理步骤
的时刻方面引入显著程度的波动,使得使分析并且因此加密攻击显著变得困难。此外,被编
码的数据字以及根据本发明被影响的数据字的根据本发明的使用进一步遮掩由设备处理
的数据,使得特别是差分功率分析攻击必须花费大得多地被度量,以便达到与在不具有根
据本发明的保护的系统中相同的认识程度。
[0012] 在根据本发明的方法本身的范围内被编码的数据字的有意识的操纵、特别是掺假具有特别的优点:攻击者在错误注入攻击的范围内完全不再能够有目的地在根据本发明的
方法的处理流程中精确地放置攻击意义上的(其他)错误,因此错误注入攻击是徒劳的或至
少显著变得困难。即对于成功的错误注入攻击而言从攻击者方面将错误注入该系统的精确
时刻、例如执行为错误注入攻击的对象的处理步骤或处理要由攻击者确定的数据(例如写
入寄存器中)的时刻是重要的。该时刻的找出通过对被编码的数据字的根据本发明的有意
识的操纵而显著变得困难。
[0013] 在一种优选的变型方案中,编码步骤在时间上直接在影响步骤之前进行。替代地或补充地,编码也可以在时间上和/或在空间上与影响分开地进行。例如,在另一实施方式
中,一个或多个被编码的数据字可以被存放在表格或单独的存储器中并且被实施为对于根
据本发明的方法而言可调用。在另一实施方式中,根据本发明的方法的有些步骤也可以通
过第一部件(FPGA(现场可编程门阵列(field programmable gate array))的第一微控制
器或第一功能块)执行,而根据本发明的方法的其他步骤通过第二部件(同一FPGA的第二微
控制器或第二功能块等)执行。
[0014] 在一种有利的实施方式中,为编码步骤使用纠错码,特别是汉明码。在一种优选的变型方案中,可以使用如下码,这些码允许至少部分地、优选地完全地再次纠正、即撤销根
据本发明的对最大为k个的多个位的影响。
[0015] 替代地或补充地,也可以使用这样的码,这些码能够实现识别或纠正被编码的数据字的一个或多个位的删除。对此的例子是所谓的“Marker Codes(Marker码)”。
[0016] 与此相应地,在另一实施方式中,影响步骤可以包括被编码的数据字的最大为k个的多个位的取反和/或删除。
[0017] 在另一实施方式中,处理步骤可以包括加密方法或加密方法的一部分的执行或也可以包括数据与可预先给定的参考数据的比较。
[0018] 例如,处理步骤可以包括高级加密标准(AES)的SubBytes操作等的执行。
[0019] 在另一有利的实施方式中规定,被编码的数据字和/或被改变的数据字和/或被解码的数据字至少暂时被存储。为此,在一种实施方式中,可以设置设备的内部和/或外部存
储器。内部存储器根据一种实施方式例如可以是设备的计算单元或处理器的寄存器。此外,
存储器一般可以是直接存取存储器(RAM,随机存取存储器(Random Access Memory))或也
可以是非易失性存储器、譬如快闪式存储器等。
[0020] 在另一有利的实施方式中规定,根据确定性的和/或基于随机的方法执行影响。以此方式进一步使开头所提及的加密攻击变得困难。特别有利地,可以根据仅仅确定性的方
法、例如根据伪随机过程等执行影响。以此方式有利地可以省去设置真随机数的源或高质
量熵源。用于伪随机方法的初始化值例如可以存储在设备中或以其他方式、例如根据该设
备的序号等分配给该设备。
[0021] 作为本发明的任务的其他解决方案,说明了根据专利权利要求8所述的设备。有利的扩展方案是从属权利要求的主题。

附图说明

[0022] 随后参照附图阐述本发明的示例性实施方式。在附图中:
[0023] 图1示意性地示出根据本发明的方法的一种实施方式的简化的流程图,
[0024] 图2示出根据本发明的设备的一种实施方式的框图,以及
[0025] 图3示意性地示出本发明的一种实施方式的流程图。

具体实施方式

[0026] 图1示意性地示出如可以例如通过按照图2的根据本发明的数据处理设备100执行的根据本发明的方法的一种实施方式的简化的流程图。
[0027] 在步骤200中,对要由数据处理设备100处理的数据字进行编码,以便获得具有可预先给定数目的位的被编码的数据字DW'。该数据字一般可以是任意的位序列。在优选的实
施方式中,该数据字具有例如8、16和32位的恒定长度的位序列。其他值同样是可设想的。
[0028] 在步骤210中,影响被编码的数据字的最大为k个的多个位,以便获得被改变的数据字DW''。有利地有意识地进行被编码的数据字的影响210和因此本身掺假,以便遮掩实际
由设备100处理的数据。以此方式,使侧通道攻击和错误注入攻击显著变得困难,因为设备
100的主要处理步骤并不直接利用(未掺假的)数据字来执行,而是例如利用被改变的数据
字DW''或由此导出的数据来执行。
[0029] 在步骤220中,被改变的数据字DW''在使用纠错码的情况下被解码,以便获得被解码的数据字DW'''。特别优选地,步骤200、210、220相互协调,使得在步骤220中步骤200中的
数据字的重建是可能的,即无错误的解码。为此,在一种实施方式中,可以选择具有合适的
参数的相应的码、例如汉明码或Marker码,并且影响步骤210的参数k的值根据所选择的码
或其参数来确定。
[0030] 最后在步骤230中,处理被解码的数据字DW'''。如上面已经提及的,被解码的数据字DW'''优选地与作为编码步骤200的输入量被输送的数据字相同。
[0031] 在一种优选的实施方式中,为编码步骤200使用纠错码、特别是汉明码或Marker码。在另一有利的实施方式中,影响步骤210包括被编码的数据字的最大为k个的多个位的
取反和/或删除。
[0032] 在另一有利的实施方式中,处理步骤230包括执行加密方法或加密方法的一部分,譬如AES算法的SubBytes例程。替代地或补充地,处理步骤230可以设置数据与可预先给定
的参考数据的比较,例如由用户输入的标识与参考标识的比较,该参考标识例如存放在设
备100的存储器110(图2)中,并且从该参考标识例如可以导出数据字。
[0033] 在另一实施方式中,被编码的数据字和/或被改变的数据字和/或被解码的数据字可以至少暂时被存储,优选地存储在根据图2的设备100的存储器110或110a中。
[0034] 在另一特别优选的实施方式中规定,影响210根据确定性方法来执行,例如根据伪随机方法来执行。替代地或附加地也可以使用基于随机的方法。
[0035] 图2示意性示出根据本发明的设备100的一种实施方式的简化的框图。设备100拥有存储器110,该存储器可以是寄存器存储器或RAM存储器或也可以是非易失性存储器、譬
如快闪式存储器等或前述存储器的组合。在存储器110中,根据一种实施方式保存有事先被
编码的数据字DW',例如被保存在编码表等中。事先被编码的数据字DW'例如可以在执行根
据图1的步骤200的情况下获得。
[0036] 此外,根据图2的设备100拥有解码单元120,该解码单元被构造用于执行根据图1的解码步骤220。优选地,解码单元120可以在由其执行的解码的范围内撤销在步骤210中执
行的对被编码的数据字的最大为k个的多个位的影响,这能够通过使用纠错码(例如汉明码
或Marker码)来实现。
[0037] 该设备100根据一种实施方式此外拥有处理单元130,该处理单元被构造用于图1的处理步骤230。
[0038] 优选地,该设备100此外拥有影响单元140,该影响单元被构造用于执行根据图1的影响步骤210。例如,处理单元130的输出数据因此可以必要时在之前的编码(参看图1中的
步骤200)之后又在根据本发明的意义上被改变,以便使侧通道攻击和错误注入攻击变得困
难。处理单元130的输出数据和/或被影响的输出数据可以被保存在存储区110a中,例如用
于以后的处理。替代地或补充地,这样的数据也可以被保存在存储器110中并且经受上面所
述的通过部件110、120、130、140的处理顺序。
[0039] 在另一有利的实施方式中,设备100可以拥有伪随机单元150,该伪随机单元被构造用于提供伪随机数,例如以便控制通过影响单元140的影响210。
[0040] 替代地或补充地,伪随机单元150也可以作用于解码单元120,例如以便以取决于随机的方式改变、例如延长或缩短解码单元120的解码步骤的执行时间。
[0041] 伪随机单元150根据一种变型方案也可以具有种子单元(未示出),所述种子单元为伪随机单元150的操作提供种子(“初始化”)值S。种子单元例如可以存储设备特定的(或
批号特定的)初始化值S,该初始化值在制造设备100时被定义并且存储在其中。在另一变型
方案中,可以规定,设备100或其种子单元本身按照可预先给定的方法和/或以取决于(伪)
随机的方式改变初始化值。
[0042] 图3示意性示出按照一种实施方式的根据本发明的设备100的工作流程。描绘了第一处理循环i的处理步骤S1、...、S5的时间过程,并且在图3中在该时间过程之下描绘了第
二处理循环i+1的处理步骤S6、...、S10的时间过程。
[0043] 首先考虑第一处理循环i。在步骤S1中,从设备100的存储器110(图2)中加载由数据位b0、b1、b2、...、b7组成的事先被编码的数据字,例如加载到设备100的计算单元的CPU
(中央处理单元)寄存器中。同时,对于攻击者而言通常存在例如按照差分功率分析(dpa)的
原理进行侧通道攻击的可能性,例如通过检测和分析设备100或其计算单元在步骤S1期间
的电能消耗。在图3中,合适的时间窗配备有附图标记DPA1。对于其中产生的在加密意义上
的泄漏L(侧通道泄漏(side channel leakage))因此可以采用如下表达式:L=HW(b0, b1, 
b2, ..., b7),其中HW(x)是数据字x的汉明权重。因此,泄漏L相应地在步骤S1中取决于例如
包含数据位b0、b1、b2、...、b7的被加载的数据字的汉明权重。
[0044] 在步骤S2中,事先在步骤S1中被加载的数据字通过解码单元120被解码(图2)。在步骤S3中跟随通过处理单元130的处理230。在步骤S3期间,对于攻击者而言又存在侧通道
攻击的适宜的可能性。在图3中,合适的时间窗配备有附图标记DPA2。
[0045] 在步骤S4中,进行对被处理的数据的根据本发明的影响,使得从步骤S4到步骤S5产生位序列从b0、b1、b2、...、b6、b7到b0、b1、b2、e、b4、e、b6、b7的改变,其中位位置e分别代表以
前存在的位位置b3、b5的根据本发明的影响。当前根据本发明有意识地进行的对相应的位位
置的改变类似于如例如也在错误注入攻击中出现的、位错误到根据本发明被处理的数据字
中的注入。与此不同,然而当前的影响在设备100的控制下有意识地进行,而攻击者不能以
简单方式得知该影响。由此,被处理的数据被遮掩并且使有效的加密攻击变得困难。
[0046] 在根据图3的步骤S5中,最后将这样被改变的数据字保存在设备100的存储器110(图2)中,例如通过将来自设备的计算单元的寄存器存储器的数据字写入(不同的)存储区
110中。替代地或补充地,从一个寄存器到另一寄存器的复制等对于步骤S5也在考虑之内。
[0047] 上面所述的步骤S1至S5例如在根据本发明的设备100的第一工作循环i之内被执行。在下一工作循环i+1中,执行下面被更详细描述的步骤S6至S10。
[0048] 在步骤S6中,从存储器110中加载被改变的数据字用于进一步处理,所述数据字事先在步骤S5中被存储。类似于步骤S1,在步骤S6中对于攻击者而言通常也存在例如按照差
分功率分析(dpa)的原理进行侧通道攻击的可能性,例如通过检测和分析设备100或其计算
单元在步骤S6期间的电能消耗。在图3中,合适的时间窗配备有附图标记DPA3。对于其中产
生的在加密意义上的泄漏L2(侧通道泄漏)因此可以采用如下表达式:L2 = HW(b0, b1, b2, 
e, b4, e, b6, b7)。认识到,在步骤S6中可确定的泄露L2明显不同于步骤S1中的泄露,即L2
≠L1,这可以归因于在存储(步骤S5)之前的根据本发明的影响(步骤S4)。根据本发明的方
法的应用因此有利地导致将显著的无论如何不消失的噪声导入泄漏中,使得在根据本发明
的设备100中与常规设备的情况下相比需要显著更大的花费,以便确定设备100中的相同程
度的可利用的泄露信息。
[0049] 接着,在步骤S7中通过根据本发明的解码单元120(图2)解码被改变的数据字。最后,在步骤S8中通过处理单元130进行处理,并且在步骤S9中,在此情况下获得的被处理的
数据又通过影响单元140经受影响。在步骤S10中最后将以此方式进一步被影响的数据保存
在存储器110或另一存储区110a中,所述被影响的数据当前为位序列b0、b1、b2、b3、b4、b5、b6、
e。
[0050] 在一种特别优选的实施方式中,除了影响210(图1)之外还规定,执行解码220,使得用于解码被改变的数据字的时间是非恒定的。根据图3,循环i中的步骤S2例如占用第一
处理持续时间,而随后的循环i+1中的类似步骤S7占用与第一处理持续时间不同的第二处
理持续时间,由此出现对于分别随后的步骤S3、S8而言相关的彼此不同的延迟di、di+1,使
得与此相应地从循环i到循环i+1对于侧通道攻击而言有利的时间窗DPA4(相较于DPA2)也
推迟。由于攻击者首先关于该非恒定的解码持续时间通常同样不具有任何信息,所以由此
也使加密攻击变得困难。
[0051] 上面所述的非恒定的解码持续时间例如可以通过依靠可以作用于单元120的单元150(图2)插入取决于(伪)随机的延迟来实现。
[0052] 一般,根据本发明的措施可以不仅以软件(例如针对设备100的计算单元)而且以硬件(设备100本身或附加部件)或其任意组合来实现。
[0053] 通过根据本发明的方法有利地使对根据本发明的设备100的差分功率分析攻击或者错误注入攻击变得困难,因为并非始终处理未解码的数据字,而是更确切地说处理被编
码的数据字和此外根据本发明被影响的数据字,所述数据字包含位错误或相对于正常被编
码的数据字的偏差。通过根据本发明在使用能够实现事后纠错的码的情况下设置解码单
元,以此方式可以处理大量不同的以(伪)随机方式被影响的数据字,这进一步降低dpa或错
误注入攻击的成功机会或使这些攻击显著成本更高。
[0054] 本发明的另一优点在于,使设备100坚固的措施优选地也可以单独地、即针对设备100的每个样本不同地被执行,使得来自对第一设备100已经进行的DPA攻击的认识并不能
没有困难地转用于相同类型的第二设备100。
[0055] 完全一般地,在应用根据本发明的原理的情况下可以使基于硬件和/或基于软件的设备以及其组合、此外还有ASIC和FPGA等坚固。
[0056] 特别有利地,根据本发明的原理的应用同时使DPA攻击和错误注入攻击变得困难。