CN105024708B - 用于处理数据的装置和方法 - Google Patents

用于处理数据的装置和方法 Download PDF

Info

Publication number
CN105024708B
CN105024708B CN201510176955.7A CN201510176955A CN105024708B CN 105024708 B CN105024708 B CN 105024708B CN 201510176955 A CN201510176955 A CN 201510176955A CN 105024708 B CN105024708 B CN 105024708B
Authority
CN
China
Prior art keywords
data word
encoding
data
measured values
unit
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
CN201510176955.7A
Other languages
English (en)
Other versions
CN105024708A (zh
Inventor
P.杜普利斯
R.斯策温斯基
M.刘易斯
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN105024708A publication Critical patent/CN105024708A/zh
Application granted granted Critical
Publication of CN105024708B publication Critical patent/CN105024708B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种用于处理数据的装置,其中该装置具有用于接收输入数据的输入接口以及用于处理数据的处理单元,其特征在于,设置编码单元,其被构造用于对在输入接口处作为输入数据而获得的数据字进行编码,以获得编码数据字,其中编码单元被构造用于将数据字编码为使得可预给定份额的测量值、优选所有测量值的至少大约50%与设定值具有差别,其中所述测量值表征编码数据字和/或通过装置对其的处理并且能够根据装置的至少一个物理参量被确定,其中所述差别小于或等于可预给定的阈值,其中编码单元还被构造用于根据至少一个编码参数执行用于对数据字进行编码的编码准则,其中所述处理单元被构造用于处理编码数据字。

Description

用于处理数据的装置和方法
技术领域
本发明涉及用于处理数据的装置,其中该装置具有用于接收输入数据的输入接口以及用于处理数据的处理单元。
本发明还涉及用于运行这种装置的方法。
发明内容
本发明的任务是改善开头所述类型的装置和方法,使得针对攻击、尤其是侧信道攻击给出提高的安全性。
该任务按照本发明在开头所述类型的装置情况下通过如下方式来解决:设置有编码单元,其被构造用于对在输入接口处作为输入数据而获得的数据字进行编码,以获得编码数据字,其中编码单元被构造用于将数据字编码为使得可预给定份额的测量值、优选所有测量值的至少大约50%与设定值具有差别,其中所述测量值表征编码数据字和/或通过该装置对其的处理并且可以根据该装置的至少一个物理参量被确定,其中所述差别小于或等于可预给定的阈值,其中编码单元还被构造用于,根据至少一个编码参数执行用于对数据字进行编码的编码准则,其中所述处理单元被构造用于处理编码数据字。
按照本发明已认识到:在按照前面建议的原理对待处理的数据字进行编码的情况下能够使对本发明装置的侧信道攻击变得困难或者不可能。众所周知,对数据处理装置或方法的特定实施、诸如密码算法的实施等等的侧信道攻击被应用,其中充分利用:该装置的一个或多个可观察或可测量的物理参量取决于所处理的数据并且因此准许得出关于所处理的数据、诸如秘密的密码密钥等等的推断。
在侧信道攻击的范畴中,因此例如可以在测量技术上检测上面提及的测量值,所述测量值代表编码数据字和/或表征通过装置对编码数字的处理,并且攻击者可以尝试从这些测量值中获得关于实际处理的数据的信息。
按照本发明已认识到:能够规定在数据字的处理之前对数据字进行编码,使得对装置的侧信道攻击变得困难。本发明的原理基于以如下目的进行编码:即针对侧信道攻击待确定的测量值变得“区别力”较小或者说具有与实际处理的数据的较小的相关性。换句话说,本发明的编码规定:实际上处理的数据、即编码数字因此适配于该装置的具体实施(相对于未编码的数据字),使得对于侧信道攻击所使用的测量值在所处理的数据字方面包括较少的信息含量或较少的相关性。这种编码也可以被称为所谓的“泄漏防护码(leakagepreserving code)”,因为所述编码在密码意义上减少或防止“泄漏”。
按照本发明还有利地给出了如下可能性:根据至少一个编码参数来执行用于对数据字进行编码的编码准则,其中通过改变编码参数有利地进一步使侧信道攻击变得困难。
上述任务也通过用于处理数据的装置来解决,其中设置有编码单元,其被构造用于对在输入接口处作为输入数据获得的数据字进行编码,以便获得编码数据字,其中编码单元被构造用于将数据字编码为使得所有编码数据字的可预给定的份额、优选所有编码数据字的至少大约50%相互具有可预给定的汉明距离和/或可预给定的汉明权重,其中编码单元被构造用于根据至少一个编码参数来执行用于对数据字进行编码的编码准则,并且其中处理单元被构造用于对编码数据字进行处理。编码参数又能够有利地实现编码过程的变动,由此有利地进一步使侧信道攻击变得困难。
在优选实施方式中规定:所述一个或多个编码参数随时间被改变。根据所处理的或待编码的数据和/或时间的变动同样是可设想的。
在优选实施方式中规定:设定值针对所有测量值相同地被选择,这能够实现对所涉及的代码的简单的确定。
在特别优选的实施方式中作为设定值选择在测量值的所有可能值上的平均值。在该意义上,“测量值的所有可能值”被理解为所有测量值的集合,如在处理所有编码数据字时所得到的集合,所述数据字通过按照本发明的编码来设置。所有可能的测量值的集合例如可以在对本发明装置的具体实施的试验设计中被确定,其方式是在给定编码的情况下通过该装置进行数据处理,使得每个编码数据字均被输送给处理单元一次用于处理。在处理相应的数据字时,与此相应地获得特定的测量值,其表征数据字或者在装置中的数据字的处理。根据一种实施方式,这样获得的测量值可以被确定,并且最终例如其平均值可以被用作用于按照本发明编码的设定值。例如,也可以逐步地确定本发明的编码、也即编码数据字至未编码的数据字的分配。该分配例如可以以迭代方法进行,以便从而逐步地精细化通过本发明编码单元在编码范畴中进行的变换或编码数据字,直至一个或多个特定的测量值与设定值的差别满足本发明的阈值标准。于是确保:可以由如此编码的数据字导出的测量值仅仅轻微与设定值相区别,使得通过对测量值或由此导出的值的分析而进行的侧信道攻击明显变得困难或者使得不可能。
特别有利的是,本发明的原理不基于随机数或伪随机数的使用,并且也不要求熵源。相反地,本发明的编码即使在使用至少一个编码参数的情况下也是用于将待处理的数据变换成编码数据字的确定性准则。优选地,针对该装置的每个特定实施可以确定并且使用专门的编码,其中可以借助所述一个或多个编码参数来选择相应的变型方案。也可以设想的是,针对该装置的特定的实施确定多个可能的编码并且在装置的运行期间对所述编码进行切换,由此相对于侧信道攻击进一步提高安全性。
在另一有利的实施方式中规定:不对于所有测量值相同地选择设定值。这意味着,根据所涉及的实施方式本发明编码如下提供自由度,即对于不同的测量值设置不同的设定值。由此,例如可以在测量值的实施或获得时有利地考虑不对称性。例如可以设想:在处理第一组编码数据字时可以获得测量值,这些测量值包含比在处理第二组编码数据字时关于所处理的数据的更大的信息含量。在该情况下,合乎目的的可以是,针对不同组编码数据字设置不同的设定值,以便减少或者补偿所述不对称性,尽可能地具有以下目的:尽管不对称性,所有可能的测量值在所处理的数据方面具有类似的信息含量。
在另一有利的实施方式中规定:为至少两个测量值或分配给所述测量值的数据字分别设置不同的阈值。通过这种方式,可以实现在编码方面其他自由度,其允许更容易地找到编码所基于的本发明变换。
在另一有利的实施方式中,测量值是标量参量或者矢量参量,或者所述测量值具有矩阵形式。例如,测量值可以代表装置的或者装置的至少一个组件的电能耗。在该情况下,该装置的攻击者可以确定该电能耗作为在本发明意义上的测量值,以便实施侧信道攻击。在该具体应用情况下,最后在处理单元中处理的编码数据字的按照本发明的编码有利地引起:对于该装置或至少一个组件的电耗能的相应测量值仅仅轻微地相互区别,由此又使侧信道攻击变得困难。
用于以矢量特征方式的测量值的例子例如是如下应用情景,其中对于每个所处理的编码数据字确定该装置的不同组件或一般而言部件的多个电能耗值。这种多个测量值自然也可以以矩阵形式来组织。其中以矩阵形式代表测量值看起来是合乎目的的另外的例子例如是确定由该装置辐射的电磁场。在该情况下例如可以在该装置运行期间在该装置上方放置多个场探测器,所述场探测器被用于测量电磁场,并且各个场探测器的相应测量值例如可以被分配给本发明意义上的以矩阵形式存在的测量值的各个矩阵元素。
视本发明意义上的测量值的特征而定地,也可以相应地选择用于确定测量值与设定值的差别的比较运算。同样的内容也适用于设定值。例如对于标量参量,可以设置简单的差形成连同接着的数值形成,以便对在测量值、例如装置的电能量消耗的值与相应设定值之间的差别进行评估。在测量值的矢量或者矩阵形式的参量的情况下,可以相应地定义其他合适的函数,以便定义与设定值(例如设定矢量、设定矩阵等等)的所涉及的差别。
一般而言,在本发明意义上的概念“测量值”根据一种实施方式也可以理解为由物理测量值导出的参量。例如,从装置的一个或多个测量值导出的汉明距离或汉明权重也代表本发明意义上的“测量值”。这意味着,在相应地实施本发明时也可以将编码构造为,使得不直接相应于可物理检测的值、而是相反地相应于由此导出的值的测量值遵循本发明的阈值标准。这意味着:按照本发明该编码也可以被实施为,使得代表编码数据字或其处理的物理测量值例如不直接遵循本发明的阈值标准,而是由此导出的参量、诸如汉明距离或汉明权重遵循本发明的阈值标准。
在另一实施方式中,编码单元被构造用于对数据字进行编码为,使得所有编码数据字的可预给定的份额、优选所有编码数据字的至少大约50%相互间具有可预给定的汉明距离和/或可预给定的汉明权重。按照本发明已认识到:在输入侧借助所建议的编码(所述编码定义关于汉明距离或汉明权重的标准)获得的数据字的变换导致关于在本发明处理单元内被处理的数据的信息的较少泄漏,尤其是也可以有助于遵循针对测量值的本发明阈值标准。
在本实施方式中,“所有编码数据字”优选理解为所有理论上出现的编码数据字的集合。例如当存在数目为j的多个(j vielen)在输入侧获得的数据字时,可以通过编码单元相应地给所述数目为j的多个在输入侧获得的数据字分配数目为j的多个编码数据字。优选在一种实施方式中因此如此进行编码,使得数目为j的多个编码数据字的至少大约50%相互间具有可预给定的汉明距离。代替地或补充地,也可以如此进行编码,使得数目为j的多个编码数据字的至少大约50%具有可预给定的汉明权重。
在一种有利的实施方式中规定:处理单元具有至少一个寄存器,其被构造用于至少暂时地存储至少一个编码数据字。这意味着,本发明的一种简单的实施方式涉及如下装置,其具有输入接口和本发明的编码单元,并且其中按照本发明的处理例如规定至少暂时地在寄存器中存储。在该实施方式中,因此按照本发明编码的数据字(也或者多个编码数据字)至少暂时地被存储在一个寄存器中或者另一寄存器中,而且以编码形式被存储,使得编码数据字的随后的读取和继续处理是可能的。例如随后的密码方法可以读取相应的寄存器并且继续处理数据。代替地或补充地,本发明的处理单元也可以具有至少一个密码单元,其被构造用于执行密码方法的至少一部分。例如处理单元可以具有密码单元,其被构造用于执行完整的AES(高级加密标准,advanced encryption standard)算法。
在另一实施方式中可以规定:处理单元具有密码单元,其被构造用于执行密码方法的一部分(或者整个密码方法),例如用于执行非线性代入运算,如也是AES密码术标准的所谓的SubBytes()函数(参见
Figure 932534DEST_PATH_IMAGE001
第5.1.1章节)。
在另一实施方式中可以规定:处理单元具有数据总线或者被构造为数据总线,尤其是被构造为并行数据总线。在该情况下,通过按照本发明编码保护通过数据总线的数据传输以防侧信道攻击。
在另一有利的实施方式中规定:编码单元被构造用于对数据字进行编码,其方式是,给每个数据字添加可预给定数量的比特。在此情况下,相应添加的比特的值可以根据本发明编码来选择。换句话说,通过按照本发明添加可预给定数量的比特(并且选择其各自的值)对于按照本发明的编码实现一定数量的自由度,所述按照本发明的编码能够实现对于一个或多个编码数据字的所希望的汉明权重和/或所希望的汉明距离的调整。在此未编码的数据字的实际的信息不丢失,因为按照本发明仅仅添加新的比特。必要时,可以代替地或者附加地添加另外的比特,以便在设定值方面满足针对测量值的本发明阈值标准。在一种实施方式中,可以根据本发明建议的至少一个编码参数来执行可预给定数量的比特和/或其值的添加。
在另一有利的实施方式中规定:编码单元被构造用于如此选择可预给定数量的被添加的比特或其值,使得所有编码数据字的可预给定份额相互间具有可预给定的汉明距离和/或可预给定的汉明权重。
以汉明距离或者也为汉明间距表示两个相互比较的码字的不同位的数量。在一个二进制码和两个相应的码字的情况下,汉明间距或汉明距离因此相应于比较的码字的不同比特位的数量。汉明权重理解为至零矢量的汉明间距。在二进制码的情况下,汉明权重因此相应于所观察的码字的与零不同的位的数量,这意味着值为1的比特的数量。
在另一有利的实施方式中规定:该装置至少部分地被构造为集成回路(IC,integrated circuit(集成电路)),优选借助CMOS(互补金属氧化物半导体,complementarymetal-oxide-semiconductor)技术来实现。本发明的功能性例如也可以以ASIC或FPGA来实现。
作为本发明任务的另一解决方案,说明按照专利权利要求11所述的方法。作为本发明任务的又另一解决方案,说明按照专利权利要求12所述的方法。另外的有利的实施方式是从属权利要求的主题。
附图说明
下面参照附图阐述本发明的示例性实施方式。在附图中:
图1示意性示出本发明装置的一种实施方式,
图2a、2b分别示意性示出了本发明装置的一种实施方式,
图3a、3b分别示意性示出了本发明处理单元的一种实施方式,
图4a、4b示意性示出了带有本发明装置的设备,
图5示意性示出了本发明编码的实施方式的例子,
图6示意性示出了用于阐明按照一种实施方式编码的表格,
图7示意性示出了按照一种实施方式的另一装置,以及
图8示意性示出了本发明方法的实施的简化的流程图。
具体实施方式
图1示意性示出了用于处理数据的本发明装置100的一种实施方式。装置100例如被实施为集成电路(IC),例如在使用CMOS技术的情况下。
当在装置100中处理数据期间可以确定测量值X1n,其代表数据字
Figure 578279DEST_PATH_IMAGE002
,这些数据字正好在该装置100中被处理。这些测量值可以通过本身已知的用于确定物理参量的方法来获得。例如,装置100或者其中各个组件的电能耗可以作为测量值X1n被获得。在该情况下,为了在装置100内处理每个数据字
Figure 827995DEST_PATH_IMAGE002
,可以获得相应的电能量测量值X1n。代替电能耗,在装置100的已知的运行电压的情况下例如可以使用电流消耗作为测量值,等等。电流消耗例如可以从在测量技术上检测的在分流电阻(低欧姆的测量电阻,未示出)上的电压降中导出,该分流电阻与装置100的电供应线路(未示出)串联连接。代替电能量测量值或电流测量等等也可以例如通过检测装置100的电场、装置100的磁场或装置100的电磁场或其组合来获得测量值。当然,在所使用的测量方法的合适的空间分辨率的情况下,该测量也可以相应地仅基于装置100的一个组件。例如在装置100构造为集成回路的情况下可能感兴趣的是:有针对性地获得装置100的这样的组件或区域的测量值X1n,所述组件或区域包含要借助侧信道攻击被攻击的组件、例如AES核等等,它们例如执行密码方法或其一部分。
在一种有利的实施方式中,测量值是标量(例如电流测量值)或矢量(例如不同电路组件的多个电流测量值)参量,或者它们具有矩阵形式。
除了可以通过物理检测确定的值之外,可以从在物理上可确定的值X1n例如通过计算方法等等导出的这样的值X2n也被理解为本发明意义上的测量值。例如,攻击者可以设置测量或处理单元1000,其检测装置100的一个或多个物理参量X1n,并且构成从中导出的值X2n。这些导出的值X2n也称为本发明意义上的测量值。这些导出的值X2n例如可以是汉明距离或汉明权重等。当借助装置1000检测并行数据总线的各个总线线路的电磁辐射时,这例如可以是这种情况。在该情况下,例如对于每个总线线路获得一个测量值,并且在例如8个总线线路的情况下总共8个测量值X1n可用,从所述测量值中,借助装置100可以形成例如至另外的通过相同方式获得的测量值X2n的汉明距离或汉明权重。
按照本发明规定:装置100具有编码单元130,参见图2a,其被构造用于将在输入接口110处作为输入数据X获得的数据字Xn进行编码,以便获得编码数据字
Figure 875585DEST_PATH_IMAGE003
,并且装置100的处理单元120被构造用于处理编码数据字
Figure 185344DEST_PATH_IMAGE003
。由此,有利地实现:如例如在侧信道攻击路径中可确定的测量值X1n、X2n(图1)与编码数据字
Figure 256068DEST_PATH_IMAGE003
或装置100中的编码数据字
Figure 371792DEST_PATH_IMAGE003
的处理相关,并且不直接与被输送给本发明编码单元130的未编码的数据字Xn相关。与此相应地,在合适地选择编码的情况下可以有利地引起:测量值X1n、X2n在当前由装置100处理的编码数据
Figure 211572DEST_PATH_IMAGE003
方面有较少表现力,由此使侧信道攻击变得困难或者不可能。
此外,按照本发明规定:编码单元130被构造用于根据至少一个编码参数t_i来执行用于对数据字Xn进行编码的编码准则。尤其是,按照一种实施方式可以规定:设置多态控制单元132,其被构造用于为了对至少一个数据字Xn编码、但是优选为了对多个或所有数据字Xn编码而预给定至少一个编码参数t_i。换句话说,通过本发明的编码参数t_i在将数据字Xn映射到编码数据字
Figure 754548DEST_PATH_IMAGE003
上时、也即在编码时给出至少一个另外的自由度,其进一步提高装置100和在其中处理的数据的安全性。在一种实施方式中,形成和/或提供至少一个编码参数t_i的多态控制单元132被集成到装置100中,参见图2a。在一种实施方式中,多态控制单元132在使用线性函数情况下来实现。在另一实施方式中,多态控制单元132在使用非线性函数情况下来实现。其组合根据其他实施方式同样是可能的。
尤其是在一种实施方式中规定:编码单元130被构造用于对数据字Xn如此编码,使得所有测量值X1n、X2n的可预给定份额、优选所有测量值X1n、X2n的至少大约50%具有与设定值Vn的差别(图2b),该差别小于或等于可预给定的阈值S。申请人的研究已经表明:在这种编码情况下和当在处理单元120中对编码数据字
Figure 46990DEST_PATH_IMAGE003
进行处理的情况下,相应在技术上可检测的参量(测量值X1n)或者可从中导出的参量X2n在其信息含量方面就未经编码的数据字Xn而言是有较少表现力的,从而通过本发明的编码给出了防止侧信道攻击的高效保护。通过在编码时使用至少一个编码参数t_i有利地更进一步提高了安全性。
因此本发明的编码也被称为所谓的“多态抗泄漏码(polymorphic leakageresilient code)”,PLRS,因为其在密码意义上减少或防止“泄漏”,尤其是在借助至少一个编码参数t_i应用多态编码原理的情况下。
与基于使用随机数或伪随机数来使侧信道攻击变得困难并且与此相应地是耗费的方法不同,本发明原理有利地仅仅要求确定性方法、也即在使用至少一个编码参数t_i的情况下借助编码单元130进行编码以及对编码数据进行处理。
在一种实施方式中,输入数据X(图2a)例如可以作为时间上相继的数字数据字而存在,例如带有例如4比特的数据宽度的数据字Xn。另外的数据宽度同样是可能的。与此相应地,输入接口110将输入数据X以数据字Xn的形式转交给其输出端。
如由图2a可以看出的,编码数据字
Figure 966404DEST_PATH_IMAGE003
在编码单元130的输出端处被输出并且输送给处理单元120用于处理。与此相应地,处理单元120在其输出端处输出经处理的编码数据字
Figure 660690DEST_PATH_IMAGE004
图2b示出了按照一种实施方式的编码单元130。编码单元130有利地具有可预给定的设定值V和可预给定的阈值S用于评估测量值X1n、X2n,从而可以检验:当前编码在至少一个测量值X1n、X2n与设定值V的差别方面是否已经满足本发明的阈值标准。在根据图2b的变型方案中同样可以设置多态控制单元132并且例如布置在编码单元130中,然而在那里出于清晰的原因没有被绘入。
在特别优选的实施方式中,选择在测量值X1n或X2n的所有可能值上的平均值作为设定值V。在该意义上,“测量值的所有可能值”理解为所有测量值X1n或X2n的集合,如在处理所有编码数据字
Figure 312252DEST_PATH_IMAGE003
时得到的,所述编码数据字
Figure 419885DEST_PATH_IMAGE003
通过按照本发明编码来设置。所有可能的测量值的集合例如可以在本发明装置100的具体实施的试验设计中被确定,其方式是,在给定的编码情况下通过装置100或其单元120进行数据处理,使得每个编码数据字
Figure 815094DEST_PATH_IMAGE003
被输送给处理单元120一次用于处理。在处理相应的编码数据字
Figure 426204DEST_PATH_IMAGE003
时,与此相应地获得特定的测量值X1n或X2n,其表征数据字
Figure 514246DEST_PATH_IMAGE003
或者在装置中的数据字的处理。根据一种实施方式,这样获得的测量值可以被确定并且最终例如可以将其平均值用作用于按照本发明编码的设定值。例如,本发明的编码、也即编码数据字至未编码的数据字的分配也可以逐步地被确定。这种分配例如可以以迭代方法来进行,以便从而逐步地精细化编码数据字或变换,直至一个或多个特定的测量值与设定值的差别满足本发明阈值标准,所述变换通过本发明的编码单元在编码范畴中进行。于是确保:可以由如此编码的数据字
Figure 843596DEST_PATH_IMAGE003
导出的测量值X1n或X2n仅仅轻微地与设定值相区别,使得通过分析测量值X1n、X2n来进行的侧信道攻击明显变得困难或成为不可能。
特别有利的是,本发明原理不基于随机数或伪随机数的使用。相反,本发明的编码是用于将待处理的数据变换成编码数据字的确定性准则。优选可以针对装置100的每种特定实现确定并且使用专门的编码。也可以设想,针对该装置的特定的实现确定多种可能的编码并且在该装置的运行期间切换所述编码,由此进一步提高相对于侧信道攻击的安全性。
在另一有利的实施方式中规定:不为所有测量值X1n、X2n相同地选择设定值V(图2b)。这意味着,根据所涉及的实施方式,本发明的编码如下地提供自由度:针对不同的测量值设置不同的设定值。由此在测量值的实现或获得时的不对称性例如可以有利地被考虑。例如可以设想,在处理第一组编码数据字时可以获得测量值,所述测量值包含比在处理第二组编码数据字时关于所处理的数据的更大的信息含量。在该情况下合乎目的的可以是,为不同组的编码数据字设置不同的设定值,以便减少或者补偿这种不对称性,尽可能具有以下目的:所有可能的测量值尽管不对称性仍然关于所处理的数据具有类似的信息含量。
在另一有利的实施方式中规定:针对至少两个测量值或分配给这些测量值的数据字分别设置不同的阈值S。通过这种方式,可以在编码方面实现其他自由度,其允许更容易地发现编码所基于的本发明变换。
在另一有利的实施方式中,测量值X1n、X2n是标量或矢量参量,或者它们具有矩阵形式。例如,测量值可以代表装置或者该装置的至少一个组件的电能耗。在该情况下,装置的攻击者可以作为本发明意义上的测量值确定该电能耗,以便执行侧信道攻击。在该具体应用情况下,对最终在处理单元中处理的编码数据字的按照本发明的编码有利地引起:用于该装置或至少一个组件的电能耗的相应测量值仅仅轻微地相互区别,由此又使侧信道攻击变得困难。
用于以矢量特征方式的测量值的例子例如是在其中对于每个所处理的编码数据字确定装置100的不同组件或一般而言部件的多个电能耗值的应用情景。这种多个测量值自然也可以以矩阵形式来组织。在其中以矩阵形式代表测量值看起来是合乎目的的另一例子例如是确定由装置辐射的电磁场。在该情况下,例如可以在装置运行期间在该装置上方放置多个场探测器,其被用于测量电磁场,并且各个场探测器的相应测量值例如可以被分配给以矩阵形式存在的本发明意义上的测量值的各个矩阵元素。
视本发明意义上的测量值的特征而定地,自然也可以相应地选择比较运算来确定测量值与设定值的差别。同样的内容适用于设定值。例如,对于标量参量可以设置简单的差形成连同接着数值形成,以便对在测量值、例如用于装置的电能量消耗的值与相应设定值之间的差别进行评估。在测量值的矢量或矩阵形式参量情况下,相应地可以定义其他合适的函数,以便定义与设定值(例如设定矢量、设定矩阵等等)的所涉及的差别。
在另一优选的实施方式中,编码单元130被构造用于如此对数据字Xn进行编码,使得所有编码数据字
Figure 42496DEST_PATH_IMAGE003
相互间具有可预给定的汉明距离。代替地或补充地,可以规定:如此进行编码,使得所有编码数据字
Figure 508113DEST_PATH_IMAGE003
具有可预给定的汉明权重。在该变型方案的情况下,也可以通过使用用于提供PLRC的至少一个编码参数t_i(图2a)来提高安全性。
通过编码单元130编码的其他变型方案同样是可设想的,这意味着,本发明不限于对输入数据字Xn的编码,具有的目的是,实现可预给定的汉明距离或可预给定的汉明权重。在该变型方案的情况下,也可以通过使用用于提供PLRC的至少一个编码参数t_i(图2a)来提高安全性。
根据一种优选的实施方式,处理单元120例如可以是寄存器。图3a示出了另一实施方式,其中处理单元120的变型方案120a按照图2a来描绘。处理单元120a拥有两个寄存器R1、R2,其被构造用于至少暂时地存储在输入侧输送给其的编码数据字
Figure 767056DEST_PATH_IMAGE003
,如所述编码数据字是从编码单元130获得的。处理单元120a在给定的时刻通过输出端作为“被处理的”编码数据字
Figure 583702DEST_PATH_IMAGE003
输出存储在寄存器R1、R2中的编码数据字用于进一步处理。在当前情况下,存在如下特点:由于处理单元120a构造为纯存储器,单元120a的输出数据字
Figure 320714DEST_PATH_IMAGE005
相应于输入数据字
Figure 844099DEST_PATH_IMAGE003
图3b示出了用于本发明处理单元的另一实施方式120b。当前,处理单元120b具有密码单元124,其例如可以是用于实施加密方法的算法的一部分的单元。例如,密码单元124可以被构造用于利用输送给其的输入数据
Figure 336260DEST_PATH_IMAGE003
执行非线性代入运算,并且获得相应的输出数据字
Figure 312306DEST_PATH_IMAGE005
。这种非线性代入运算例如以AES(高级加密标准)的所谓的SubBytes()-函数来设置。与此相应地,可以使用按照图3b的用于执行AES算法的所涉及的部分的本发明变型方案。
在又另一实施方式中,处理单元120可以是数据总线(串行或并行的),或者一般而言是电路技术组件,其中编码数据字
Figure 915326DEST_PATH_IMAGE003
可被输送给所述电路技术组件。在又另一实施方式中,组件120和130也可以在功能上相互组合。
图4a示出了本发明的另一应用领域。描绘了芯片卡2000,本发明的装置100布置在该芯片卡上。装置100与接口装置2002处于数据连接,芯片卡2000或包含在其中装置100可以通过所述接口装置以本身已知的方式与外部设备、诸如芯片卡读取器(未示出)等等交换数据。
按照图4a的装置100有利地至少具有在图2a中描绘的结构,也可以设想,在装置100内设置多个编码单元130或多个相同或不同的处理单元120、120a、120b,由此在装置100中实现的数据处理方法的相应方法步骤可以利用本发明的优点。
图4b示出了本发明的另一应用。描绘了USB(通用串行总线,universal serialbus)存储器数据载体3000,其拥有本发明装置100以及USB连接装置3002。
图5示出了用于借助包括4比特(相应于半字节(nibble)=“半字节”)的数据字Xn按照本发明编码的例子。在图5中,数据字Xn的第一比特用参考标记X1表示,第二比特用参考标记X2表示,并且第三比特用参考标记X3表示,以及第四比特用参考标记X4表示。相应地,下面的注释也适用于代表数据字Xn:(x1、x2、x3、x4),这相应于数据字Xn的各个比特x1、x2、x3、x4的彼此连接。
通过借助编码单元130(图2a)的编码,按照图5的数据字Xn被转化成编码数据字
Figure 558797DEST_PATH_IMAGE003
,参见图5的箭头a。如由图5可以看出的,编码数据字
Figure 956280DEST_PATH_IMAGE003
一如既往地具有最初数据字Xn的所述四比特x1、x2、x3、x4,以及三个另外的比特x5、x6、x7。目前,编码a因此通过当前具有三比特长度的比特序列Rn的添加来实现。
在按照本发明编码的范畴中添加的比特序列Rn的各个比特x5、x6、x7的值例如可以有利地被选择为,使得获得编码数据字
Figure 685202DEST_PATH_IMAGE003
至另外的编码数据字的期望的汉明距离或者对于编码数据字
Figure 826333DEST_PATH_IMAGE003
的期望的汉明权重。在该变型方案中,也可以通过使用用于提供PLRC的至少一个编码参数t_i(图2a)来提高安全性。例如至少一个编码参数t_i的相应地通过多态控制单元132(图2a)预给定的值可以控制编码单元130的可能编码算法的变型方案的选择,使得利用分别不同的编码变型方案来编码不同的数据字Xn,i。
图6a示例性示出了带有四个列S1、S2、S3、S4的编码表格,如其例如可以按照一种实施方式在编码单元130(图2a)中使用。列S1包含以带有值为0000(即十进制零)至1111(即十进制15)的二进制表示方式的输入数据字Xn。列S2、S3、S4分别共同构成编码数据字
Figure 324311DEST_PATH_IMAGE003
。第二列S2包含具有四比特的有用数据字(“有效载荷(payload)”)。在图6a中描绘的表格中的列S3包含示例性使用的第一编码准则的一个反相位,并且列S4包含所使用的第一编码准则的两个补偿位。示例性地,因此通过按照图6a的表格给输入数据字Xn=0001指派编码数据字
Figure 830378DEST_PATH_IMAGE003
=0001010,等等。
图6b示例性示出了带有四个列S1’、S2’、S3’、S4’的另一编码表格,如其例如可以按照一种实施方式在编码单元130(图2a)中使用。列S1’包含以带有值为0000(即十进制零)至1111(即十进制15)的二进制表示方式的输入数据字Xn并且就此而言与按照图6a的表格的列S1相同。按照图6b的表格的列S2’、S3’、S4’分别共同构成编码数据字
Figure 108913DEST_PATH_IMAGE003
。第二列S2’包含具有四比特的有用数据字(“有效载荷”)。在图6b中描绘的表格的列S3’包含示例性使用的第二编码准则的两个补偿位,并且列S4’包含示例性使用的第二编码准则的一个反相位。
如由按照图6a、6b的表格的比较可以看出的,列S3、S4相应于列S3’、S4’,因此这些列被交换用以实现不同的编码准则。
例如本发明的编码参数t_i或者其值可以被用于控制编码单元130,对于待编码的输入数据字Xn或者使用根据图6a的编码表格或者使用根据图6b的编码表格。在该情况下,唯一的比特对于编码参数t_i是足够的。在当前示例性两个编码变型方案或编码表格之间的灵活切换相对于DPA攻击明显提高了装置100(图2a)的安全性,其中所述灵活切换能够通过本发明编码参数t_i来实现。
前面参照图6a、6b描述的例子用于对本发明的多态抗泄漏码PLRC进行简单的阐述。应当理解的是,多于两个的不同编码变型方案可以通过本发明的编码参数t_i来控制。也可以使用比示例性描绘的编码准则更复杂的编码准则,例如能够实现可缩放性和/或可变码密度或码速率、误差识别、误差校正等等的代码。
按照图6a的编码数据字
Figure 991418DEST_PATH_IMAGE003
可以从十六个数据字Xn中例如利用下面的方程或形成规则来获得:
Figure 406219DEST_PATH_IMAGE006
其中c相应于7比特码字,其中x相应于4比特码字(x0,x1,x2,x3),其中
Figure 348767DEST_PATH_IMAGE007
相应于逐比特的互补,其中“,”说明逐比特的连结(彼此连接),其中HW(.)说明数据字的汉明权重,并且其中对于函数w适用的是:
Figure 849019DEST_PATH_IMAGE008
(方程2),
对于数据字Xn=x=1111,例如可以使用方程1的上面的行,因为所考察的数据字“1111”的汉明权重大于2,从而获得c=0000110作为相应的7比特码字,等等。
按照图6b的编码的数据字
Figure 269636DEST_PATH_IMAGE003
可以从十六个数据字Xn中例如利用下面的方程或生成规则来获得:
Figure 804522DEST_PATH_IMAGE009
其中c相应于7比特码字,其中x相应于4比特码字(x0,x1,x2,x3),其中
Figure 652393DEST_PATH_IMAGE007
相应于逐比特的互补,其中“,”说明逐比特的连结(彼此连接),其中HW(.)说明数据字的汉明权重,并且其中上面的方程2适用于函数w。方程1、3相应地表示在控制本发明编码参数t_i的情况下可通过编码单元130使用的编码的不同的变型方案。也即,根据编码参数t_i的值,编码单元130或者可以使用方程1和2或者可以使用方程3和2用于对所涉及的数据字Xn进行编码。
按照另一实施方式,可以使用下面以伪码来说明的算法来解码按照图6a的编码:
Figure 639940DEST_PATH_IMAGE010
因此,由此在伪码的第1行首先检验:待解码的编码数据字的反相位是否被置位,并且如果是,则作为解码的数据字逐比特反相地获得第一四比特。如果反相位没有被置位,则作为解码的数据字直接获得编码数据字的第一四比特。
通过图6a、6b的表格阐明的本发明编码变型方案有利地具有如下效果:所有编码数据字具有恒定的汉明权重(当前值为二),由此使对装置100的DPA攻击变得困难,因为在在处理单元120中按照本发明编码的数据字
Figure 864248DEST_PATH_IMAGE003
(图2a)的处理的范畴中在每个码字情况下出现编码数据字
Figure 253641DEST_PATH_IMAGE003
的各个比特的相同数量的状态改变,使得状态改变的特殊组合不能直接被分配给恰好通过单元120处理的特殊的码字。此外,按照本发明可以在使用本发明编码参数t_i的情况下在图6a、6b的变型方案之间进行切换,例如在每n个待编码的数据字之间(针对n、例如1、2、3或更大的值,或者非恒定的)进行切换。
为了基于本发明原理获得8比特实现,可以将前面阐述的步骤和按照图6a、6b的表格的编码分别应用于两个半字节(“nibble(半字节)”),所述两个半字节相应于8比特数据字。由此,例如可以实现AES的SubByte()函数的8比特实现。本发明的解决方案也可以非常好地被缩放,使得例如针对32比特实现首先将32比特宽的数据字拆分成八个半字节,优选在一个时钟周期内,也即并行地,并且然后可以对由其获得的八个半字节按照本发明进行编码。
图7示出了本发明的另一实施方式,其中装置100a被构造用于处理数据。在输入侧,装置100a又获得输入数据X,其例如以具有例如4比特的输入数据字的形式Xn通过输入接口110被转交给随后的编码单元130。编码单元130执行按照本发明的编码(在使用本发明的编码参数t_i的情况下,也参见图2a),由此获得编码输入数据
Figure 537992DEST_PATH_IMAGE003
。编码输入数据字
Figure 950519DEST_PATH_IMAGE003
在随后的处理单元120中被处理,使得在处理单元120的输出端处获得经处理的编码数据字Yn’。接着通过是解码单元的单元140来对数据字Yn’进行解码,从而获得解码的经处理的数据字Y,它们可以通过输出接口150被输出给装置100外部的另外的单元。
在又另一实施方式中,按照图7的组件120和140也可以在功能上相互组合。
一般而言,本发明的原理不这样地局限于编码,即编码数据字如前面描述的一样地具有可预给定的汉明距离和/或可预给定的汉明权重。相反,根据另外的实施方式,编码单元130(图1、图6)代替地也可以被构造为,使得该编码单元在使用所谓的“泄漏防护”码、尤其是PLRC的情况下将输入数据字Xn变换成编码数据字Xn’。这例如通过遵循本发明的针对在测量值Xn1、Xn2和设定值V之间的差别的阈值标准来实现。
完全一般地,使用“泄漏防护”码具有如下优点:如此编码的数据字通过在单元120中处理的数据使例如可以通过在物理上可观察或可测量的参量Xn1、Xn2(例如电磁场的测量、装置100或单元120的电能量消耗的测量)确定的信息的泄漏最小化。使用本发明的PLRC具有另外的优点:通过编码实现的数据字到编码数据字上的映射对于攻击者而言可理解为更复杂的并且由此更难的。
图8示意性示出了本发明方法的一种实施方式的流程图。在步骤200中在使用本发明编码参数t_i(图2a)的情况下借助编码单元130对一个或多个输入数据字Xn进行编码。在步骤210中,通过处理单元120进行对在步骤200中获得的编码数据字Xn’的处理。可选地,在步骤220中接着对经处理的数据字Yn’进行解码。
代替处理未编码的输入数据Xn,本发明的设置遭受另外的处理的编码数据字Xn’的原理带来如下优点:不需要用于DPA强化(Härtung)(针对DPA攻击强化装置100)的基于随机的过程或者伪随机过程,由此相对于已知方法减少了耗费。此外,本发明的装置100例如可以在使用传统CMOS单元的情况下被实现,其中装置100本身可以以单片集成电路的形式设置,或者也可以被设置为可以集成在另外的电路单元中的电路组件。本发明的另外的优点在于,可以比较简单地测试装置100的规定功能,因为本发明不基于随机数或伪随机数的使用。
此外,装置100的实现可以在比较小的芯片面上进行。因为引起针对DPA攻击的强化的本发明措施在架构等级上进行,因此可以实现在应当使用本发明的功能性的装置的一般设计或不同芯片设计中的简单的可再用性。
本发明的另一方面通过用于运行用于处理数据的装置100的方法来说明,其中该装置100具有用于接收输入数据的输入接口110以及用于处理数据的处理单元120。按照本发明,在另一方面中规定:借助编码单元130,在输入接口110处作为输入数据获得的数据字Xn被编码,以便获得编码数据字Xn’,并且处理单元120处理编码数据字Xn’,其中编码单元130使用多态抗泄漏码用于编码。本发明方面的核心因此是在数据字被处理之前在使用按照本发明的编码参数t_i情况下设置对所述数据字的编码,该设置能够实现在通过装置100处理编码数据字时进一步改善地减少或者完全避免在密码意义上的泄漏。
本发明可以有利地以硬件以及以软件或者两者的组合的方式来实现。
一般而言,本发明的原理通过设置编码单元130(图1)能够实现将输入数据Xn变换成编码数据Xn’,所述数据是所谓的泄漏防护码、尤其是PLRC,其不太易受DPA攻击。换句话说,包含编码数据字Xn’的代码在密码意义上具有较少的泄漏。这与在编码数据字中不包含或仅仅包含少的侧信道信息的说法是同义的。
因此,本发明的装置100的攻击者通过本身已知的措施、例如检测装置100的电磁辐射或检测其电能耗等等能够比较少地或者甚至不能获得关于在单元120中处理的数据的信息。
如上面已经提及的,处理单元120例如可以实施密码方法或者算法的部分,也或者实施整个密码方法、诸如例如按照AES密码术标准的加密或解密和/或例如根据SHA标准的哈希值形成,等等。
通过这种方式,给出了本发明原理的简单的可缩放性。
为了节省成本,在另一实施方式中可以设置包括例如仅仅用于密码算法的安全性特别相关的处理单元的组件110、120、130、132的本发明措施。代替地,也可以利用本发明原理强化处理数据的装置的所有处理步骤。
与传统的针对侧信道攻击的对策相比,按照本发明建议的、基于编码的对策具有不同的优点:
1.基于编码的对策是确定性性质,使得所述对策要求比较小的计算耗费并且尤其是不要求设置随机数发生器或者伪随机数发生器。
2.能够简单地实现在使用传统CMOS单元的情况下作为集成回路的实现。
3.由于随机数的不相关性,本发明装置100的测试比基于随机数的使用的装置和方法的测试简单得多。
4.基于本发明方法的对策仅仅要求比较小的芯片面或少许复杂的代码来实现,所述代码必须通过编码单元130来实现。
5.本发明的原理有利地可以或者应用于待保护的装置的各个组件或者应用于整个装置。
6.本发明可以模块化地被使用。例如,当处理单元120例如被构造为简单的、也即传统的存储寄存器R1时,可以提供本发明装置100形式的DPA强化的存储寄存器。在该情况下,可以模块化地提供按照图1的配置100并且也可以以更大数量使用在待保护的装置中。
基于编码的本发明措施在高程度上消除或避免通过侧信道的信息泄漏。
在另一有利的实施方式中可以规定:将代码构造为,使得例如在所谓的故障攻击(fault attack)路径中能够进行对被歪曲的编码数据字的部分或全部的误差校正。这例如可以通过添加另外的比特相应地来完成,其中所述另外的比特引起冗余度的提高。
在另一有利的实施方式中可以规定:处理单元120被构造用于于是检验一个或多个编码数据字Xn’:它们是否在由编码单元使用的代码的意义上是有效的数据字。在根据图7的配置中,这样的检验除了单元120之外还可以在单元140中进行。在通过编码单元130编码的情况下,处理单元120例如可以检验:输送给该处理单元的编码数据字Xn’实际上是否具有所涉及的汉明权重,其中所述编码涉及恒定的汉明权重(例如所有编码数据字Xn’具有恒定的汉明权重)。如果否,可以推断出:例如实施对装置100的所谓的故障注入(faultinjection)攻击,在其范畴中由攻击者故意地将错误的码字例如注入到组件130和120之间的连接中,以便能够实现更高效的DPA攻击。例如在单元120或160中的编码数据字Xn’的按照本发明的检验可以防止这一点。在有利的实施方式中,例如可以借助所谓的用于编码数据字的隶属测试(membership test)来进行前面描述的检验。
下面描述了另外的有利的实施方式。
根据申请人的研究,侧信道泄漏允许对在装置100中在内部处理的数据Xn’的推断并且因此能够实现对例如本身秘密的密码密钥的确定。换句话说,侧信道泄漏包含关于在内部处理的数据的信息。对此的例子是在CMOS电路中与数据相关的电流消耗,如在装置100的前面的实施方式中通过测量值X1n所表示的。
装置100的内部参量v的侧信道泄漏L可以被定义为该变量v的函数f(),也即L=f(v)。
变量v的实用例子是AES的SubBytes块密码(Blockchiffre)的输出值。函数f(v)的实用例子例如是所测量的电流消耗、所测量的电磁辐射、而还有抽象的特性、诸如汉明权重(HW)或与v的汉明距离(HD),而参量v通过装置100处理或者存储。最后的两个例子(HW和HD)虽然是抽象的,但是最终也导致装置100的与数据相关的物理特性,例如导致与数据相关的电流消耗。
此外,可以针对变量
Figure 775255DEST_PATH_IMAGE011
的所有可能值定义侧信道泄漏L的平均值M,也即M=Mean(L),以及兼容的范数
Figure 956838DEST_PATH_IMAGE012
,在该例子中为数值函数
Figure 474407DEST_PATH_IMAGE013
现在,应定义映射
Figure 374230DEST_PATH_IMAGE014
,其将字wi如此映射到码字vi上,使得适用的是:
Figure 2657DEST_PATH_IMAGE015
,其中“Epsilon(ε)”表示可预给定的极限值(阈值)。
在另一实施方式中,不等式
Figure 38747DEST_PATH_IMAGE016
不必适用于v的所有值,而是例如当v的值的一部分满足该条件时就足够了。
根据一种实施方式,前面描述的映射
Figure 727217DEST_PATH_IMAGE017
被称为所谓的抗泄漏码(leakage resilient code)(德语“weniger Leckage ermöglichender Kode(能够实现较少泄漏的代码)”),因为与数据相关的侧信道泄漏的变动f(v)=L保留在具有2*
Figure 114336DEST_PATH_IMAGE018
宽度的
Figure 218558DEST_PATH_IMAGE019
管道(Schlauch)内。
按照本发明,抗泄漏码可以通过如下方式被进一步改善:即根据至少一个编码参数t_i来执行用于数据字Xn的编码的编码准则(图2a),因此附加地根据至少一个编码参数t_i来执行代表编码的映射
Figure 437050DEST_PATH_IMAGE020
。如此按照本发明改善的代码也可以被称为多态抗泄漏码(德语“polymorpher weniger Leckage ermöglichender Kode(能够实现较少泄漏的多态代码)”)并且如下地定义为函数:
Figure 234105DEST_PATH_IMAGE021
,其中对于所有
Figure 905257DEST_PATH_IMAGE022
Figure 141067DEST_PATH_IMAGE023
前面已经描述的PLRC工作原理在下面参照按照图7的装置100a被进一步阐述。多态控制单元132(参见图2a)通过向编码单元130预给定编码参数t_i来控制特定的代码变型方案(图6a、6b)的选择,使得具体的、描述编码的、从数据字Xn至编码数据字Xn’的映射与编码参数t_i相关。如此编码的数据字Xn’然后被传导给可能具有侧信道泄漏L()的单元120。因为由编码单元130按照本发明使用的PLRC是所谓的抗泄漏码,所以不能基于来自单元120的非消失的侧信道泄漏L()来执行成功的侧信道攻击。单元120输出所处理的数据Y,所述数据根据一种实施方式通过解码单元150被解码。特别有利的是,编码参数t_i也被输送给解码单元150,以便能够对处理的数据Y进行解码。编码参数t_i例如也可以直接由控制单元132(图2a)输送给解码单元150。
在另一实施方式中可以规定:编码单元130(图2a)仅对所有数据字Xn的一部分进行编码。也即,不必必须对所有数据字进行编码。
为了进一步说明上述实施,下面说明两个另外的例子。
例子1:
L=f(V’)是密码电路的与数据相关的电流消耗(例如按照图2a的装置100的组件)并且作为在分流电阻上的电压降被测量(在侧信道攻击时的常见行动)。现在有利地如此选择
Figure 151748DEST_PATH_IMAGE019
,使得其小于被用于测量电压降的数字存储示波器(Speicheroszilloskop)的量化误差(也即,
Figure 182021DEST_PATH_IMAGE019
实际上是不再可测量的)。泄漏防护码于是是如下的码:在其中当因此
Figure 278153DEST_PATH_IMAGE024
适用时,与数据相关的电流消耗f(V’)不针对V’的任何值v’与平均电流消耗相差大于
Figure 724178DEST_PATH_IMAGE019
例子2:
根据另一实施方式,由编码单元130使用的代码具有为2的恒定汉明权重(HG),也即所有值Xn’具有HG=2。如果选择函数f(V’)为,使得该函数归还V’的值v’的汉明权重,并且选择等于零的
Figure 917262DEST_PATH_IMAGE019
,那么所说明的代码是泄漏防护码,因为
Figure 56119DEST_PATH_IMAGE025
适用,因为码字的汉明权重的平均值M为2并且没有码字与其相差大于所选择的
Figure 764181DEST_PATH_IMAGE026
(对于所有v’,
Figure 13896DEST_PATH_IMAGE027
,因为对于所有v’ ,
Figure 61487DEST_PATH_IMAGE028
)。

Claims (17)

1.用于处理数据的装置(100),其中该装置(100)具有用于接收输入数据(X)的输入接口(110)以及用于处理数据的处理单元(120),其特征在于,设置编码单元(130),其被构造用于对在所述输入接口(110)处作为输入数据(X)而获得的数据字(Xn)进行编码,以获得编码数据字(Xn’),其中所述编码单元(130)被构造用于将所述数据字(Xn)编码为使得所有测量值(X1n,X2n)的可预给定份额与设定值(Vn)具有差别,其中所述测量值表征所述编码数据字(Xn’)和/或通过该装置(100)对所述编码数据字(Xn’)的处理并且能够根据该装置(100)的至少一个物理参量来予以确定,其中所述差别小于或等于可预给定的阈值(S),其中所述编码单元(130)还被构造用于,根据至少一个编码参数(t_i)执行用于对所述数据字(Xn)进行编码的编码准则,其中所述处理单元(120)被构造用于处理所述编码数据字(Xn’)。
2.根据权利要求1所述的装置(100),其中,针对所有测量值(X1n,X2n)相同地选择所述设定值(Vn)。
3.根据权利要求1所述的装置(100),其中,选择在所述测量值的所有可能值上的平均值作为设定值(V)。
4.根据权利要求1所述的装置(100),其中,为至少两个测量值(X1n,X2n)或分配给这些测量值的编码数据字(Xn’)分别设置不同的阈值(Sn)。
5.根据前述权利要求之一所述的装置(100),其中
a.所述测量值是标量参量或者矢量参量或者具有矩阵形式,和/或
b.所述测量值代表所述装置(100)或者所述装置(100)的至少一个组件的电能耗,和/或
c.所述测量值代表汉明权重或汉明距离。
6.根据权利要求1所述的装置(100),其中,所有测量值(X1n,X2n)的可预给定份额是所有测量值(X1n,X2n)的至少50%。
7.根据权利要求1至4之一所述的装置(100),其中,设置多态控制单元(132),其被构造用于为了对至少一个数据字(Xn)进行编码而预给定所述至少一个编码参数(t_i)。
8.根据权利要求1至4之一所述的装置(100),其中,设置多态控制单元(132),其被构造用于为了对多个或所有数据字(Xn)进行编码而预给定所述至少一个编码参数(t_i)。
9.根据权利要求1至4之一所述的装置(100),其中,所述处理单元(120)具有至少一个寄存器(R1,R2),所述寄存器被构造用于至少暂时地存储至少一个编码数据字(Xn’),和/或设置密码单元(124),其被构造用于执行密码方法的至少一部分。
10.根据权利要求1至4之一所述的装置(100),其中,所述编码单元(130)被构造用于对数据字(Xn)进行编码,其方式是,根据所述至少一个编码参数(t_i)给每个数据字(Xn)添加可预给定数量的比特(Rn)。
11.根据权利要求10所述的装置(100),其中所述编码单元(130)被构造用于选择可预给定数量的待添加的比特(Rn),使得所有编码数据字(Xn’)的可预给定份额相互间具有可预给定的汉明距离。
12.根据权利要求1至4之一所述的装置(100),其中,所述装置(100)至少部分地被构造为集成回路,借助CMOS技术来实现。
13.根据权利要求1至4之一所述的装置(100),其中,所述处理单元(120)被构造为数据总线或者具有数据总线。
14.用于运行用于处理数据的装置(100)的方法,其中该装置(100)具有用于接收输入数据(X)的输入接口(110)以及用于处理数据的处理单元(120),其特征在于,借助编码单元(130)对在所述输入接口(110)处作为输入数据(X)而获得的数据字(Xn)进行编码,以获得编码数据字(Xn’),其中所述编码单元(130)被构造用于将所述数据字(Xn)编码为使得所有测量值(X1n,X2n)的可预给定份额与设定值(Vn)具有差别,其中所述测量值表征所述编码数据字(Xn’)和/或通过该装置(100)对所述编码数据字(Xn’)的处理并且能够根据该装置(100)的至少一个物理参量来予以确定,其中所述差别小于或等于可预给定的阈值(S),其中所述编码单元(130)此外根据至少一个编码参数(t_i)执行用于对所述数据字(Xn)进行编码的编码准则,其中所述处理单元(120)处理所述编码数据字(Xn’)。
15.根据权利要求14所述的方法,其中执行校准,其中可预给定的校准数据字通过所述处理单元(120)处理,并且其中确定与所述校准数据字相对应的测量值。
16.根据权利要求15所述的方法,其中通过所述编码单元(130)根据与所述校准数据字相对应的测量值进行所述编码。
17.根据权利要求14所述的方法,其中,所有测量值(X1n,X2n)的可预给定份额是所有测量值(X1n,X2n)的至少50%。
CN201510176955.7A 2014-04-16 2015-04-15 用于处理数据的装置和方法 Active CN105024708B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102014207296.4A DE102014207296A1 (de) 2014-04-16 2014-04-16 Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102014207296.4 2014-04-16

Publications (2)

Publication Number Publication Date
CN105024708A CN105024708A (zh) 2015-11-04
CN105024708B true CN105024708B (zh) 2021-01-01

Family

ID=54249875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510176955.7A Active CN105024708B (zh) 2014-04-16 2015-04-15 用于处理数据的装置和方法

Country Status (4)

Country Link
US (1) US9798874B2 (zh)
CN (1) CN105024708B (zh)
DE (1) DE102014207296A1 (zh)
FR (1) FR3020161A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3089398B1 (en) * 2015-04-30 2017-10-11 Nxp B.V. Securing a cryptographic device
EP3220306B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
US10566052B2 (en) 2017-12-22 2020-02-18 Micron Technology, Inc. Auto-referenced memory cell read techniques
US10431301B2 (en) * 2017-12-22 2019-10-01 Micron Technology, Inc. Auto-referenced memory cell read techniques
US10541808B2 (en) * 2018-01-21 2020-01-21 Gideon Samid Advanced bitflip: threat-adjusted, quantum-ready, battery-friendly, application-rich cipher
US10901035B2 (en) * 2019-02-01 2021-01-26 Intel Corporation Techniques in ensuring functional safety (fusa) systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1372390A (zh) * 2001-02-07 2002-10-02 皇家菲利浦电子有限公司 用于时隙编码数据传输的通信系统、方法和信号
CN102571108A (zh) * 2012-02-24 2012-07-11 清华大学深圳研究生院 一种应用于Turbo乘积码的自适应迭代译码方法
EP2567487B1 (en) * 2010-05-06 2014-03-12 Telefonaktiebolaget LM Ericsson (publ) System and method for signaling control information in a mobile communication network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674536B2 (en) * 1997-04-30 2004-01-06 Canon Kabushiki Kaisha Multi-instruction stream processor
US6904110B2 (en) * 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6456208B1 (en) * 2000-06-30 2002-09-24 Marvell International, Ltd. Technique to construct 32/33 and other RLL codes
DE10225684B4 (de) * 2002-06-10 2007-01-11 Siemens Ag Verfahren zum Kodieren
DE102004021308B4 (de) * 2004-03-23 2020-07-16 Robert Bosch Gmbh Verfahren zur Fehlerkorrektur von Paketdaten
KR100855958B1 (ko) * 2004-11-24 2008-09-02 삼성전자주식회사 해밍거리를 이용한 부가 채널 공격에 안전한 암호화시스템 및 방법
CN101116081A (zh) * 2005-02-11 2008-01-30 通用数据保护公司 用于微处理器数据安全的方法和系统
US7721178B2 (en) * 2006-06-01 2010-05-18 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code
DE102013205542A1 (de) * 2013-03-28 2014-10-02 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102013205544A1 (de) * 2013-03-28 2014-10-02 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1372390A (zh) * 2001-02-07 2002-10-02 皇家菲利浦电子有限公司 用于时隙编码数据传输的通信系统、方法和信号
EP2567487B1 (en) * 2010-05-06 2014-03-12 Telefonaktiebolaget LM Ericsson (publ) System and method for signaling control information in a mobile communication network
CN102571108A (zh) * 2012-02-24 2012-07-11 清华大学深圳研究生院 一种应用于Turbo乘积码的自适应迭代译码方法

Also Published As

Publication number Publication date
DE102014207296A1 (de) 2015-10-22
US9798874B2 (en) 2017-10-24
US20160019386A1 (en) 2016-01-21
FR3020161A1 (fr) 2015-10-23
CN105024708A (zh) 2015-11-04

Similar Documents

Publication Publication Date Title
CN105024708B (zh) 用于处理数据的装置和方法
US8370642B2 (en) Cryptographic processing apparatus
US9767281B2 (en) Device and method for processing data
CN104079304B (zh) 用于处理数据的设备和方法
CN107005404B (zh) 实现密码算法的可执行的白盒掩码实施的处理器装置
KR101393806B1 (ko) 다단계 물리적 복제 불가 함수 시스템
KR20180002069A (ko) 부채널 분석에 대응한 보호 방법 및 장치
US8155317B2 (en) Encryption processing circuit and encryption processing method
CN104094553B (zh) 防侧信道攻击的加密方法和装置
US8422668B1 (en) Table lookup operation on masked data
CN108352981B (zh) 被布置用于计算目标块加密的密码设备
CN106664204B (zh) 差分功率分析对策
KR100887003B1 (ko) 데이터의 무결성을 보호하는 장치 및 방법과 컴퓨터 판독가능한 기록 매체
JP2005510095A (ja) 情報漏洩が低減される装置および方法
CN110071794B (zh) 一种基于aes算法的信息加密方法、系统及相关组件
CN116232586A (zh) 基于分数阶忆阻神经网络时间反馈控制的图像加密方法
Bai et al. Protect white‐box AES to resist table composition attacks
JP2013131869A (ja) 個体別情報生成装置、暗号化装置、認証装置、及び個体別情報生成方法
US9501277B2 (en) Secured comparison method of two operands and corresponding device
US20200184113A1 (en) Side channel attack protection
US9832014B2 (en) Symmetrical iterated block encryption method and corresponding apparatus
US20090022310A1 (en) Cryptographic device and method for generating pseudo-random numbers
Li et al. Enhanced correlation power analysis attack against trusted systems
CN109714152B (zh) 基于大型仿射编码的白盒aes加密方法
Rathnala et al. A practical approach to differential power analysis using PIC micrcontroller based embedded system

Legal Events

Date Code Title Description
C06 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