一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

检查待检查数字密钥的有效性的方法与流程

2022-11-23 10:51:08 来源:中国专利 TAG:

1.本发明涉及一种用于在微控制器中检查待检查数字密钥的有效性的方法、一种用于认证的方法以及一种微控制器和一种用于执行这些方法的计算机程序。


背景技术:

2.为了由微控制器(更一般地由计算单元)进行认证,可以使用秘密数字密钥或密码,其中将输入的或待检查的可能错误的密钥与存储的正确密钥进行比较,并且如果在比较时确定待检查密钥与存储的密钥相同则确认真实性。输入或接收的密钥由待认证的对方(人、其他微控制器、其他计算单元、其他程序等)输入或传输。仅当输入有效的、即正确的密钥时,才允许访问所述微控制器或其功能或数据中的特定部分。
3.如果从存储器中读取存储的密钥来用于比较并写入临时存储器中,则对微控制器进行物理访问的攻击者可能尝试通过在所述临时存储器中或通向所述临时存储器的引线中有针对性地产生电流或电压,例如借助于合适的探针,在所述临时存储器中设置攻击者已知的值,然后将该值用作密钥。这种攻击也称为“故障攻击(fault attack)”。


技术实现要素:

4.根据本发明,提出了具有独立权利要求的特征的一种用于在微控制器中检查待检查数字密钥的有效性的方法、一种用于认证的方法以及一种微控制器和一种用于执行这些方法的计算机程序。有利的设计是从属权利要求和以下描述的主题。
5.本发明利用了计算所输入的密钥的散列值并将所述散列值与正确密钥的参考散列值进行比较的措施,所述参考散列值存储或临时存储在比特存储元件中。如果攻击者企图借助于“故障攻击”通过电磁干扰来影响比特存储元件的状态,从而影响或改变比特存储元件的存储值,则在比较时识别出这一点。同时,通过形成散列值防止了知道受影响比特存储元件的存储状态的攻击者——例如由于电磁干扰导致所有比特存储元件都切换到相同的状态(该状态代表逻辑“0”或“1”)——能够输入对应的待检查密钥,因为通常不可能从散列值的知识中确定以下密钥,散列函数对所述密钥的应用会准确地产生该散列值。
6.具体地,提出了一种使用微控制器的比特存储元件在所述微控制器中检查待检查密钥的有效性的方法,所述比特存储元件的状态可受到电磁干扰的影响。该方法包括将参考散列值存储在所述比特存储元件中,其中分别将所述参考散列值的比特存储在所述比特存储元件之一中;通过将散列函数应用于所述密钥来确定密钥散列值;以及将所述密钥散列值与所述比特存储元件的存储值进行比较,其中如果所述密钥散列值不等于存储值,则将待检查数字密钥确定为无效。如果攻击者企图借助于电磁干扰来影响比特存储元件或参考散列值的存储或传输(“故障攻击”),则受影响的比特存储元件切换到与期望状态不同的状态(对应于所述参考散列值),使得比特存储元件的存储值不同于参考散列值。由于使用的不是密钥本身而是其散列值(密钥散列值),因此即使攻击者知道比特存储元件切换到的状态,也不可能输入相关联的、匹配的数字钥匙。
7.该方法用于检查微控制器中的密钥。微控制器代表特别是用于机器、机动车辆等的控制功能的计算单元。更一般地,该方法可以应用于计算单元。微控制器(计算单元)特别是可以设置在机动车辆或(工业)机器的控制设备中,以实现控制功能。微控制器可以包括一个或多个处理器内核和/或特别是实施为asic(application-specific integrated circuit,专用集成电路)或fpga(field programmable gate array,现场可编程门阵列)或至少包括asic或fpga。该方法的各个步骤或所有步骤可以在对应的硬件模块中实现,即在硬件模块中分别设置部件,这些部件互连使得执行相应的方法步骤(不使用软件;因此自动跟随微控制器的时钟)。比特存储元件是设置在微控制器中、特别是比特存储模块中的电子部件。
8.电磁干扰例如可能通过电磁脉冲或激光而引发。光脉冲或离子束造成的影响也是可以想到的。通过电磁干扰在微控制器的部件中感应出电流或电压,这些电流或电压可能影响所述部件的功能和状态。
9.在本发明的范围中,称为比特存储元件或比特临时存储元件的是被设置为通过采取对应于比特的相应值的不同状态来存储比特(即“0”或“1”)的电子部件。比特存储元件优选地是触发器,更优选地是时钟控制的触发器(然而,也可以想到使用非时钟控制的触发器)。由于触发器(也称为双稳态多谐振荡器或双稳态触发器)原则上可以采取两种不同的定义状态,因此触发器可以用于存储比特,其中触发器根据状态分别代表比特的值。在有效性检查期间,比特存储元件特别是用作存储在非易失性存储器中的参考散列值的临时存储器。
10.在发生足够大小的电磁干扰时,比特存储元件/触发器可以切换到特定状态,该特定状态特别是也可以取决于电磁干扰的类型,例如取决于电磁干扰是产生高电压还是产生低电压。这里假设电磁干扰所具有的大小足以导致切换到受影响的状态。在待存储比特传输到比特存储元件中和/或在已经存储的比特中可以想到由电磁干扰造成的影响。
11.在此,作为用于计算的散列函数可以使用密码散列函数。特别地,这样的密码散列函数是抗冲突的,因此实际上不可能找到两个不同的输入值来产生相同的散列值。合适的散列函数例如是根据sha-1或sha-2的散列函数,即sha-224、sha-256、sha-384、sha-512、sha-512/224和sha-512/256,这些散列函数例如由nist(美国国家标准与技术研究院)的文件fips pub 180-4(http://dx.doi.org/10.6028/nist.fips.180-4)公开或由rfc 6234公开。散列值长度在sha-1的情况下为160个比特,在sha-2系列的散列函数的情况下为224、256、384或512个比特。同样,使用md5(消息摘要算法5,rfc1321),长度也可能为128个比特,或使用sha-3(fips pub 202,http://dx.doi.org/10.6028/nist.fips.202),根据版本长度可能是224、256、384、512个比特或任意长。
12.散列函数优选对于原像攻击(即preimage-attack(原像攻击)或第一原像攻击)有抵抗能力。对原像攻击的抵抗性或抵抗能力表示散列函数h的特性,即对于给定的散列值y,确定输入值x使得散列函数h将输入值x映射为给定的散列值y(即使得h(x)=y)是不切实际的。“不切实际”是指只有在耗费大量时间和/或计算工作的情况下才可能找到对应的输入值。例如,高时间耗费可能意味着找到对应的输入值而平均需要的时间段比接受检查的密钥的有效持续时间长多个数量级。特别地,“不切实际”意味着没有攻击方法或没有公开攻击方法可以与试遍所有可能的输入值(所谓的“蛮力攻击”)相比显著降低找到对应输入值
的耗费(在要执行的计算操作的意义上)。例如,在散列值长度为160比特的情况下总共有2
160
个可能的散列值,从而必须试遍对应数量的输入值才能找到具有期望散列值的输入值。即使是将耗费减少了10比特(即减少为2
10
分之一)的攻击,在这里仍然是不切实际的。
13.该方法优选地包括通过将验证函数应用于比特存储元件的存储值来确定验证值以及将验证值与参考值范围或参考值进行比较,其中如果所述验证值不在所述参考值范围内或不等于所述参考值,则将待检查密钥确定为无效。适宜的是,如果比特存储元件处于受影响的状态,则所述比特存储元件的存储值的验证值不在所述参考值范围内或不对应于所述参考值。如果攻击者成功地将比特存储元件切换到受影响的状态并且该攻击者知道以下密钥,对该密钥应用散列函数后产生与所述受影响的状态相对应的散列值,则仍然可以防止基于此的攻击,因为如果比特存储元件处于受影响的状态,则验证值不在所述参考值范围内或不等于所述参考值。特别是对应地设定参考值范围或参考值。在使用参考值的情况下,通过将验证函数应用于所述参考散列值来一次性确定所述参考值,例如在将所述参考散列值存储在存储器中时。
14.根据设计,反过来的解决方案也是有利的,即如果所述验证值在所述参考值范围内或等于所述参考值,则将待检查密钥确定为无效。于是适宜的是,当比特存储元件处于受影响的状态时,比特存储元件的存储值的有效值在所述参考值范围内或对应于所述参考值。
15.更优选地,所述验证函数包括计算所述比特存储元件的存储值的汉明权重。该有利设计利用了密码散列函数的所谓“雪崩效应”(英语:avalanche effect),其表示仅略微不同(例如仅在唯一的比特方面)的两个输入导致两个完全不同的输出的特性。其结果是,在(二进制表示的)散列值中,“0”的频率与“1”的频率相似。“汉明权重”是指“1”包含在二进制值中的次数。因此,散列值的汉明权重通常约为散列值中总比特数的50%,例如在40%和60%之间。如果将汉明权重用作验证值,则对应的参考值范围可以优选为通过散列函数计算得到的散列值中总比特数的40%到60%。因此在散列值长度为160比特的情况下,汉明权重的参考值范围为从64到96。如果在尝试操纵时一些或所有比特存储元件切换到受影响的状态,例如“0”,则不可能遵守汉明权重位于所述参考值范围中的条件。这里假设电磁干扰以相同的方式影响多个比特存储元件;因此,所述多个比特存储元件相应于电磁干扰切换到相同的状态。
16.特别地,将汉明权重本身用作验证函数。在此,相关联的参考值范围优选等于或对应于散列值长度(即散列值中的比特数)的35%到65%,更优选40%到60%,最优选45%到55%。这里可能四舍五入到与相应的百分比值相对应的最接近的整数。如有必要,在确定引用参考密钥时或在存储参考密钥时应当检查应用于所述参考密钥的验证函数是否产生所述参考值范围内的验证值。
17.有效性检查在排除方法的原理中使用,在排除方法中检查待检查密钥是否满足一个或多个条件。如果不满足至少一个条件,则将待检查密钥分类或确定为无效。如果确定待检查密钥不是在所述一个或多个条件的含义下无效,则将待检查密钥识别或确定为有效。
18.对应地,如果所述密钥散列值等于所述存储值并且如果必要时所述验证值在所述参考值范围内或等于所述参考值,则优选地将待检查密钥确定为有效。
19.优选地,在应用散列函数时附加地使用散列密钥(例如所谓的密钥散列消息认证
码(hmac)),该散列密钥特别是在应用散列函数时与数字密钥逻辑关联。称为散列密钥的在这里是随机选择的字符串,该字符串附加地用于散列值的计算,即散列函数的应用。在最简单的情况下,将散列值添加到待检查密钥中,并将散列函数应用于该组合值。这种散列密钥在密码学中也称为“盐(salt)”。散列密钥应当特定于比特存储元件地选择,或者特定于其中安装了比特存储元件的设备(微控制器)选择。攻击者必须针对每个散列密钥都具有彩虹表(regenbogentabelle)才能攻击这种设计。
20.优选地,该方法包括从存储器读取参考散列值。典型地,所述参考散列值存储在包括比特存储元件的微控制器的存储器中。在检查待检查密钥的有效性时,从所述存储器中读取所述待检查密钥。
21.优选地,该方法包括接收所述待检查密钥。这特别是可以通过用户输入、数据传输等进行。
22.在根据本发明的用于认证对包括比特存储元件的微控制器的访问的方法中,借助于根据本发明的用于检查有效性的方法来检查待检查数字密钥的有效性,并且如果将待检查数字密钥确定为无效则禁止所述访问;其中必要时如果将待检查密钥确定为有效,则优选允许所述访问。“访问”在这里应理解为一个人、另一个计算单元(微控制器)和/或计算机程序允许使用或允许访问计算单元的资源,即允许使用所述计算单元的功能、数据、计算机程序。
23.例如在机动车辆的控制设备中的根据本发明的微控制器(或计算单元),包括比特存储元件并且被设置为、特别是以程序技术设置为执行根据本发明的方法。
24.优选地,所述微控制器包括:实现为硬件模块的散列模块,所述散列模块被设置为将所述散列函数应用于所述数字密钥以确定所述密钥散列值;以及实现为硬件模块的散列模块,所述散列模块被设置为将所述密钥散列值与所述比特存储元件的存储值进行比较;以及更优选地实现为硬件模块的验证模块,所述验证模块被设置为将所述验证函数应用于所述比特存储元件的存储值以确定所述验证值,并且将所述验证值与所述参考值范围或所述参考值进行比较。实现为硬件模块特别是导致高执行速度。
25.以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式实现根据本发明的方法是有利的,因为这导致特别低的成本,特别是在执行控制设备也用于其他任务并且因此无论如何都存在的情况下。适用于提供计算机程序的数据载体特别是磁的、光的和电的存储器,例如硬盘驱动器、闪存、eeprom、dvd等。也可以通过计算机网络(互联网、内联网等)来下载程序。
26.本发明的其他优点和设计由说明书和附图得出。
27.在附图中基于实施例示意性地示出本发明并且在下文参照附图描述本发明。
附图说明
28.图1示出了具有可以用于实现本发明的模块布置的微控制器;图2示出了根据本发明优选实施方式的流程图。
具体实施方式
29.图1以框图示出了可以用于实现本发明的模块或元件的布置。这些模块例如包括
在微控制器2(或计算单元)中,例如在机动车辆或工业机器的控制设备中。优选地是保证高执行速度的硬件模块,并且与软件不同可以不那么容易被操纵。与此不同的是,也可以想到将各个模块实施为软件模块。
30.所述布置包括具有多个未详细示出的比特存储元件的比特存储模块4,这些比特存储元件被实现为硬件元件。此外设置存储器6,其中存储有参考散列值。存储器6可以包括在微控制器中或经由合适的接口连接到所述微控制器。参考散列值是秘密密钥或密码的散列值,知道所述散列值是能够访问所述微控制器或其特定功能的前提条件。参考散列值是通过将散列函数应用于正确(有效)密钥来获得的。比特存储模块4中的比特存储元件的数量应当大于或优选地等于参考散列值的比特数量,例如128、160、256等。
31.所述布置被设置为,使得参考散列值y可以从存储器6中读取并存储在比特存储模块4或其比特存储元件中,即将参考散列值y从存储器6加载到比特存储模块4中。在此,参考散列值的比特分别存储在一个比特存储元件中。
32.在该布置中设置了散列模块8,该散列模块被设置为针对待检查或由所述散列模块接收的密钥x通过将散列函数h应用于密钥x来计算散列值y=h(x)。散列函数h与用于计算参考散列值的散列函数相同。
33.优选地还设置散列密钥模块10,该散列密钥模块提供散列密钥k,通过所述散列密钥k与所述散列函数逻辑关联来修改所述散列函数。例如,通过在应用散列函数之前将散列密钥k和待检查密钥x联合起来;然后将散列值y作为y=h(k||x)给出。散列密钥k适宜地特定于比特存储模块4或其中包括了比特存储模块的微控制器;可以说是特定于设备的密钥。散列密钥模块可以被视为散列模块8的一部分,从而原则上实现了特定于设备的散列函数。
34.此外设置了比较模块12,该比较模块12被设置为将由散列模块8计算的散列值y与比特存储模块4的存储值w进行比较。如果它们相同,则可以将待检查密钥x(特别是经过验证值的检查)视为或确定为有效,即视为或确定为正确密钥;如果它们不相同,则将待检查密钥x视为或确定为无效,即视为或确定为错误密钥。因此,如果不存在对比特存储模块的操纵企图,即如果比特存储模块的存储值w等于加载到该比特存储模块中的参考散列值y,则将由散列模块8确定的散列值y与存储在存储器6中的散列值y进行比较,其中在相等的情况下假定密钥有效,在不相等的情况下确定密钥无效。
35.另一方面,如果存在操纵企图14,其中企图通过电压和/或电流和/或电场或一般地通过电磁干扰来影响所有比特存储元件或个别比特存储元件,则改变比特存储模块的存储值w,其中受影响的比特存储元件分别切换到其他受影响的状态。因此,攻击者不可能设置以下存储值w,对于该存储值他/她知道其散列值等于存储值w的密钥,因为即使他/她知道所述受影响的状态,攻击者通常也不知道散列函数的关联输入,即不知道原像。如果散列函数的所谓彩虹表已知,则可以通过如上所述可选地设置特定于设备的散列密钥k而使该彩虹表不可用。同时,通过应用散列函数可以禁止攻击者在知道受影响的状态的情况下使用所述受影响的状态本身作为比较模块的输入。
36.优选地,所述布置包括验证模块16,该验证模块被设置成为比特存储模块4的存储值w确定验证值,例如存储值w的汉明权重或校验值(校验和),并且基于所述验证值检查存储值w的有效性。仅当所述验证值满足预给定条件,即所述验证值例如在预定参考值范围内或所述验证值具有特定参考值t时,才假定密钥的有效性。否则,将该密钥确定为无效,因为
假定比特存储元件受到了操纵并且因此假定存储值w受到了操纵。通过验证模块16的这种验证可以在通过比较模块12的比较之前、同时或之后进行。验证模块16也可以是比较模块12的一部分。
37.比特存储模块4或比特存储元件以及存储器6被实现为硬件模块。另外的模块,即散列模块8、比较模块12以及必要时的散列密钥模块10和验证模块16,可以独立于彼此地分别实现为硬件模块、软件模块或它们的组合。软件模块可以例如以在计算单元的处理器中执行的计算机程序的形式来实现。然而,如上面已经讲述的,硬件模块是优选的。
38.图2示出了根据优选实施方式的用于检查待检查数字密钥的有效性的方法的流程图。该方法示例性地从可选步骤100开始,在步骤100中接收或提供待检查密钥x,例如在认证的范围中,例如作为用户输入。
39.在步骤110中,通过将散列函数h应用于待检查密钥x来计算散列值y=h(x)。这里可以附加地使用散列密钥k(salt),在这种情况下可以将散列密钥k与待检查密钥结合起来,并且对其应用散列函数y=h(k||x)。
40.在优选步骤130中,通过将散列函数应用于正确密钥而获得的参考散列值从存储该参考散列值的存储器中读取。替代地,也可以通过其他方式提供参考散列值,而不是从存储器中读取,例如经由安全数据连接接收。
41.在步骤140中,参考散列值y存储在比特存储元件中。在此,参考散列值的比特分别存储在一个比特存储元件中。因此,比特存储元件的存储值w等于参考散列值,或者如果出现电磁干扰(例如通过操纵企图)——由于所述电磁干扰一个或多个比特存储元件切换到相应受影响的状态,则比特存储元件的存储值w不等于参考散列值。
42.步骤130(读取参考散列值)和140(将参考散列值存储在比特存储元件中)也可以部分或全部在步骤100(接收待检查密钥)和110(应用散列函数)之前或同时进行。
43.在优选步骤150中进行验证,其中为比特存储元件的存储值w确定验证值,并检查该验证值是否在预给定的参考值范围内或等于预给定的参考值t。如果所述验证值不在所述参考值范围内或不等于所述参考值,则将待检查密钥分类或确定为无效(步骤170)。
44.在步骤160中进行散列值比较,在步骤160中将在步骤110中计算的散列值y与比特存储元件的存储值w进行比较,其中检查它们是否相同。这也可以在步骤150(验证)之前或同时进行。如果散列值不等于存储值,则将待检查密钥分类或确定为无效(步骤170)。
45.在步骤180中,如果在步骤160和必要时在步骤150中未将待检查密钥分类为无效,则确定待检查密钥是有效的。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献