通过基于软计算的实现方案进行的混淆的制作方法

文档序号:15817277发布日期:2018-11-02 22:46阅读:145来源:国知局
通过基于软计算的实现方案进行的混淆的制作方法

本发明涉及一种用于保护计算单元免受密码分析攻击、尤其是侧信道攻击和逆向工程的方法以及计算单元和用于实施该方法的计算机程序,其中该计算单元被设立用于执行至少一个计算操作。

背景技术

随着在常规的应用中强大的、标准化的密码机制的普及,攻击者的焦点从破坏(brechen)密码算法(也即在算法背后的数学方法(mathematik))移向破坏在目标设备上算法的实现方案(implementierung)。

对于这样的实现攻击(implementierungsangriff)典型的示例是所谓的侧信道攻击(sca,英语sidechannelattacks(侧信道攻击)或sidechannelanalysisattacks(侧信道分析攻击))。在sca攻击的情况下,在所述密码操作执行期间,对手记录目标设备(大多为集成电路或微处理器/微控制器,例如芯片卡、安全令牌(securitytoken)或控制设备的硬件安全模块的集成电路或微处理器/微控制器)的所谓的侧信道泄漏(英文sidechannelleakage)。侧信道泄漏可以是每个物理参量,例如能量消耗、电磁辐射、运行时间等,所述物理参量与集成电路的内部开关活动(schaltaktivität)相关联(zusammenhängen),例如与密码算法的硬件实现中的cmos门的开关活动相关联。所述信息于是可以被攻击者使用,以便确定集成电路的内部状态的部分并且由此确定由密码算法所使用的机密密钥,典型地在数分钟至数小时的范围内。基本上,sca攻击是可能的,因为具有对目标设备的物理接入的攻击者在运行期间可以收集关于密码算法的内部状态的信息。

电流消耗分析(poweranalysis(功率分析))的方法在此对在密码计算期间微处理器的能量消耗进行检查。能量消耗根据分别所执行的微处理器指令而变化。由此,对关于所执行的操作的推论以及关于其所基于的密钥的推论是可能的。由此获得的“痕迹(spuren)”(确定数量或数目的能量消耗测量,其已从经时间进行的密码计算操作获得)可以被用于揭发模式(muster),诸如des轮(des-runden)或rsa操作。在相应的痕迹中的区别允许对所使用的密钥的推论。除了简单的电流消耗分析以外,所谓的差分的电流消耗分析(differentialpoweranalysis(差分功率分析),dpa)尤其允许这样的推论。

电磁分析(electromagneticanalysis,em)基于对电磁放射的相应评估。

基于攻击者的对目标算法的内部状态进行访问的能力的另一类攻击是所谓的基于逆向工程的攻击。在该情况下,攻击者在二进制文件运行期间典型地检查目标算法的二进制文件以及机器寄存器(maschinenregister)的值及其存储器。

利用这种信息,攻击者能够容易地破坏目标算法。例如当由密码算法所使用的机密的密钥被包含在二进制文件中时,攻击者可以通过对二进制文件的静态分析来提取该密钥。可替代地,当密钥以借助静态分析技术不能理解的方式被纳入在二进制文件中时,攻击者可以运行该二进制文件、记录软件踪迹(software-traces)(也即,在该二进制文件执行期间的寄存器的值和存储器的内容)并且利用这种“动态的”信息用来提取该密钥。这样的技术也以术语“differentialcomputationanalysis(差分计算分析)”已知。



技术实现要素:

根据本发明,提出具有独立专利权利要求的特征的用于保护计算单元免受密码分析攻击的方法以及计算单元和用于实施该方法的计算机程序,其中该计算单元被设立用于执行至少一个计算操作。有利的构型方案是从属权利要求以及接下来的描述的主题。

在本发明的范畴内,提出一种用于在密码方法范畴内所执行的计算操作执行期间保护免受攻击的方法。本发明在此利用如下措施:借助所谓的软计算技术(soft-computing-techniken)来实现至少一个计算操作,使得所基于的计算操作被隐藏(混淆(obfuskation))。

通过本发明,拆开(aufbrechen)在如下机密与所使用的基于内部状态的信息之间的联系,其中所述机密被存储在所应用的算法的实现方案中或者由其来处理,其中所述所使用的基于内部状态的信息可以被攻击者观测或记录。本发明不仅可以保护硬件实现方案而且也可以保护软件实现方案。

软计算技术是熟知的。然而,其至今都通常被用来以计算机实现的方式来仿制(nachbilden)并不能明确地计算的过程(关键字学习,人工智能)。因此涉及用于数字地确定近似解决方案的人工智能(ki)的技术。软计算主要包括模糊逻辑(fuzzylogic)、人工神经元网、概率推理(probabilistischesschliessen)、进化策略(evolutionsstrategie)、遗传算法(genetischealgorithmen)、隐马尔可夫模型(hidden-markov-modelle)或随机森林方法(random-forrest-verfahren)的范围。然而,在本发明的范畴内现在已认识到:所述技术也特别好地适合用于,掩饰计算操作。在此,所述解决方案在没有随机措施的情况下也够用。

有利地,任意计算操作能够借助基于软计算的技术来实现。尤其适合于位操作,在所述位操作的情况下由确定数目的输入位产生确定数目的输出位,例如由一个输入位产生一个输出位或者输出字节,或者由一个输入字节产生一个输出位或输出字节。例如,这种计算操作其中的八个可以共同由一个输入字节产生一个输出字节。理解为,在这里输入位和输出位的数目之间的任意比例是可能的。

优选地,至少一个计算功能(rechenfunktion)是密码方法的、尤其是这样的联系到密钥的或者用机密密钥操作的密码方法的、例如加密或解密的、哈希值计算的、签名等的步骤或分步骤。

优选地,所述至少一个计算功能是aes块密码(blockchiffre)算法的步骤或分步骤,尤其是addroundkey、subbytes或mixcolumns。

优选地,所述至少一个计算功能是ecc方法(ellipticcurvecryptography,椭圆曲线密码)的步骤或分步骤,尤其是点加和点乘步骤(punkt-additions-undpunkt-multiplikations-schritte)。

作为优选的实现方案,使用人工神经元网络(ann,英语artificialneuralnetwork(人工神经网络))。人工神经元网络或表示计算操作本身的技术是熟知的。在本发明的范畴内,其现在特别有利地被用于有效地隐藏(verbergen)密码计算操作。尤其是,其非常好地适合用于所提到的位操作,其方式为:输入神经元和输出神经元分别表示一个位。

本发明可以通过如下方式来进一步被改善:给软计算实现方案添加任意数目的元素,其与要保护的计算没有关联。例如在一种实现方案中作为ann装入附加的输入神经元或输出神经元,其与真正的计算操作没有任何关系。与之相应地,该ann的任意的大的内部状态可以不与实际计算操作相关联并且因此使得所述分析进一步变得困难。作为结果,在计算操作的最终表示中,ann的内部状态的仅一个(随意的(willkuerlich))小的子集实际上包含对于攻击者而言有用的信息。但是,攻击者不能够确定这是哪个子群(untergruppe)。在由攻击所获得数据的范畴内,可以以这种方式来(任意多地)添加噪声(rausch),使得成功的攻击变得困难或者十分不可能。

例如在机动车的控制设备中的根据本发明的计算单元,例如微控制器,尤其以程序技术的方式被设立用于,实施根据本发明的方法。

以计算机程序形式的所述方法的实现方案也是有利的,因为这引起特别小的成本,尤其是当运行的计算单元还被用于其他任务并且因此总归是存在的。用于提供计算机程序的适合的数据载体尤其是磁性的、光学的和电的存储器,诸如硬盘、闪存存储器、eeprom、dvd等。经由计算机网(英特网、内网等等)进行的程序的下载也是可能的。

本发明的其他的优点和构型方案从说明书和所附附图中得出。

附图说明

根据在附图中的实施例来示意性地示出并且在下文中参照附图来描述本发明。其中:

图1示意性地示出人工神经元网络的优选的实施方式,其执行密码计算操作;

图2示意性地示出aes方法的一种优选的实施方式,在该方法的情况下借助人工神经元网络来实现所选择的计算操作。

具体实施方式

在实际中,尤其可以通过如下方式来实施本发明:(具有大量操作的)密码计算操作或者总算法借助基于软计算的技术来实现。作为示例,在下文中将fips-197aes算法的subbytes步骤被映射(abbilden)到基于人工神经元网络(ann)的表示上。

在subbytes步骤中,众所周知地在使用所谓的s-box的情况下通过输出字节bout来替代输入字节bin。在该情况下,s-box以16列和16行由256个字节组成,以十六进制的写法以0×63在位置(00)开始并以此类推。

一种优选的实现方案现在所基于的想法是,能够借助自身的ann产生输出字节bout的八个位b0,b1,…,b7其中的每个,其中在输入节点处给这八个ann其中的每个输送输入字节bin的八个位。因此,subbytes步骤被分成八个位操作,其中分别由八个输入位来产生一个输出位。

例如,在图1中示意性地示出用于产生位b0的这种ann100的示例性的结构。

该ann100具有三个层面(ebene),所述三个层面包括:输入层面,该输入层面具有9个节点(“神经元(neuronen)”)(从0至8编号);中间层面,该中间层面具有12个神经元;和输出层面,该输出层面具有1个神经元。这些神经元可以分别采取值“0”或“1”。如在ann的情况下常见的那样,在各个神经元之间存在大量具有不同权重的连接。为了更好一目了然,在图1中仅示出非常少的连接,然而其中总共存在129个连接。在该实现方案所基于的学习步骤中,这些连接的权重被学习(einlernen),其中为了获得以上s-box的功能而需要这些连接的权重。

能够看出的是,ann具有九个输入神经元,然而其中仅有八个对于实现密码计算操作而言被需要。根据所示出的实施方式,该附加的第九输入神经元(8)有助于附加的掩饰或产生噪声。与之相应地,该ann的内部状态的部分并不与实际密码计算操作关联。

以相同的方式,作为用于加密的密码操作,addroundkey步骤和/或shiftrows步骤和/或mixcolumns步骤也可以实现为ann。

以相同的方式,作为用于解密的密码操作invsubbytes步骤和/或invshiftrows步骤也可以实现为ann。

如果应该例如借助随机森林分类(random-forrest-klassifizierung)来实现计算操作,则分类者可以以与ann相似的方式利用训练数据被训练(anlernen),其中利用用于相应的位的相对应的阈值来构建决策树。该决策树于是可以在标准操作(normaleoperation)中被使用,以便例如将对于subbytes步骤的输入映射到相对应的输出。原则上,可以利用随机森林分类来将输入数据的集合投影到n维的面并且然后相交。

软计算技术的另一示例是遗传算法。这类的软计算技术以此而出众:由必要时随机选择的初始人口(anfangspopulation)以全自动化的方式构成“后裔世代(nachfahren-generation)”并且借助所谓的适应度函数(fitness-funktion)来对其评价。在适应度函数的意义上特别是能够幸存的(überlebensfähig)后裔作为对于下一代的基因供体(gen-spender)而得以保留。因此在这里,自然进化的原理被应用。在当前情况下,这样选择适应度函数,使得侧信道信息(例如在经处理的数据和电流消耗或数据相关的运行时间之间的相关性)被最小化。遗传算法的进化原理现在导致:可以全自动化地生成实现方案,其不仅可以以软件方式而且也可以以硬件方式被实现,并且在此,侧信道信息的集合被最小化。例如可能的是,构件的电磁放射的值被采用到适应度函数中并且于是在进化期间借助例如spice模拟来确定这些值并且为了最终结果来优化这些值。

在图2中示出总方法的一种优选的实现方案。

在左侧示出加密过程,其从纯文本200开始经由已知的基于轮aes的加密(n轮)直至机密文本201,在右侧示出所属的回到纯文本200的解密。

在此情况下,各个步骤,在这里为shiftrows步骤210和mixcolumns步骤220以及invshiftrows步骤211和invmixcolumns步骤221,以常规的方式被实现,并且其他步骤根据本发明的优选的实施方式作为ann300被实现。尤其是,与s-box或其反向的相关联步骤(例如addroundkey、subbytes和invsubbytes)在此情况下作为ann来被实现,以便并不基于已知的s-box结构来实现任何攻击。然而,优选地,所提到的、以常规方式所实现的步骤(在这里也即shiftrows、mixcolumns、invshiftrows和invmixcolumns)以逐部分的方式作为ann被实现,例如在各个轮之间过渡的情况下并且尤其是在方法开始和结束时(参见图2中的小方块300)。

本发明因此实现:保护任意的密码计算操作或整个密码方法或算法免受攻击,其方式是,使其借助软计算技术来被实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1