用于在电路装置中产生密钥的方法与流程

文档序号:14652013发布日期:2018-06-08 22:01阅读:172来源:国知局
用于在电路装置中产生密钥的方法与流程

本发明涉及一种用于在网络中产生机密的方法、尤其在网络的两个参与者中产生共同的机密的密钥。点到点连接惯常地也被列为网络并且在此应同样以该术语称呼。在此,这两个参与者通过共同使用的传输介质进行通信。在此,逻辑位序列(或者一般性地:值序列)通过相应的传输方法作为信号或信号序列来被物理传输。所基于的通信系统可以是例如CAN-总线。该CAN-总线设置显性和隐性的位的传输或相应地显性和隐性的信号的传输,其中,网络的参与者的显性的信号或位相对隐性的信号或位占优(durchsetzen)。只有当所参与的所有参与者设置隐性的信号以用于传输的时候或者当所有同时进行发送的参与者传输隐性的信号电平的时候,才在传输介质上出现相应于该隐性的信号的状态。



背景技术:

在不同的设备之间的安全通信在越来越多地网络化的世界中变得越来越重要并且在许多应用领域中是针对可接受性的重要前提,并且因此也是针对相应的应用的经济成果的重要前提。视应用而定,这包括不同的保护目标,诸如对要传输数据的机密的保护、参与的节点的相互认证或者对数据完整性的确保。

为了实现这些保护目标,通常使用适当的密码方法,所述密码方法通常可以分为两个不同的类别:一方面是对称方法,其中发送方和接收方拥有相同的密码密钥;另一方面是非对称方法,其中发送方用接收方的公开的(也就是说也对于潜在的攻击者而言可能已知的)密钥对要传输的数据进行加密,但是解密只可以用所属的私人密钥来进行,该私人密钥理想地仅对于接收方而言已知。

非对称方法尤其具有如下缺点:使得其通常具有非常高的计算复杂度。借此,所述非对称方法只是有条件地适合于资源受限的节点,诸如传感器、执行器等等,资源受限的节点通常只拥有相对微小的计算能力以及微小的存储器,并且例如由于电池组运行或者使用能量收集(Energy Harvesting)而应该有能效地工作。除此之外,常常只有有限的带宽可供用于进行数据传输,这使具有2048位或更多位的长度的非对称密钥的交换没有吸引力。

相反地,在对称方法中必须保证:不仅接收方而且发送方也拥有相同的密钥。在此,所属的密钥管理通常是要求非常高的任务。在移动无线电领域中,密钥例如借助于SIM卡被引入到移动电话中,而所属的网于是可以给SIM卡的明确的标志分配相对应的密钥。而相反地,在无线局域网络(Wireless LAN)的情况下,在设立该网络时通常手动地输入所要使用的密钥(通常通过输入密码来输入)。但是,当例如在传感器网络或者其它机器对机器通信系统、例如在基于CAN的车辆网络中有非常大数目的节点时,这种密钥管理很快地变得非常耗费并且不可行(impraktikabel)。除此之外,所要使用的密钥的改变常常是完全不可能的或只有用非常大的耗费才是可能的。在当前的方法中,中央地产生密钥。到各个控制设备的分配在安全的环境中,例如在车辆制造商的工厂里实现。在那也主动地接通(schalten)密钥。

例如在DE 102009002396 A1和DE 102009045133 A1中公开用于保护传感器数据免受操纵的方法和对交易验证的确保,例如在机动车网络中,借助常用的加密方法。

此外,自一段时间以来,在关键词“物理层安全(Physical Layer Security)”下研究和研发新型的方案,借助所述方案,可以基于在所涉及的节点之间的传输信道的物理特性自动地产生用于对称的方法的密钥。在此,充分利用传输信道的相关性和固有随机性。然而,尤其在有线的或光学的系统中,该方案通常仅仅有条件地适合,因为相应的信道通常仅仅具有非常有限的时变性并且攻击者例如借助形成模型可以相对好地推断出发送方与接收方之间的信道参数。这样的基于所连接的单元的信道特性的用于在分布式系统中的经确保的通信的方法例如在没有在先公开的申请DE 10 2014 208975 A1以及DE 10 2014 209042 A1中描述。

没有在先公开的申请DE 10 2015 207220 A1公开一种用于借助在两个通信参与者之间的公开的讨论来产生共同的机密或机密的对称密钥的方法。



技术实现要素:

所提出的用于生成机密或密码密钥的方法绝对不要求手动干预并且因此能够实现两个节点之间的安全的通信关系的或通信连接的自动构建。此外,所述方法具有非常小的复杂度,尤其鉴于所要求的硬件设计方面,诸如鉴于所需要的存储器资源和计算能力方面,并且所述方法伴有低的能量需求与时间需求。此外,所述方法在非常小的错误概率的情况下同时提供非常高的密钥生成速率。

在此,所述方法从此出发:网络中的参与者通过通信信道相互通信。参与者在此借助物理信号来在传输信道上尤其传输逻辑的值序列(如果涉及二进制逻辑,则是位序列)。即使通过信号而在传输信道上、即在物理层面上发生可能的叠加,在说明书中在下文仍优先考虑逻辑层面。因此考虑所传输的逻辑值序列以及其逻辑叠加。

网络参与者可以因此将第一信号(第一信号例如被分配给逻辑位“1”)和第二信号(第二信号例如被分配给逻辑位“0”)给出到通信信道上并且探测在通信信道上的得到的信号。如果现在两个参与者(尽可能地)同时传输各一个信号序列,则这些参与者可以探测由此得到的在通信信道上的叠加。接着,在通信信道上的由两个(独立的)信号(尽可能地)同时的传输得到的有效的信号又可以被分配给一个(或多个)确定的逻辑值。

该传输在此必须尽可能以如此程度同步,使得在传输介质上进行信号序列的各个信号的叠加,尤其是使得相应于第一参与者的第n个逻辑值或位的信号与相应于第二参与者的第n个逻辑值或位的信号至少部分地叠加。该叠加应分别为此是足够长的,使得参与者能够检测到该叠加或者确定相应的叠加值。

叠加可以在此通过仲裁机制或通过物理信号叠加来确定。利用仲裁机制例如是指以下情况:节点想要施加隐性电平,但在总线上探测到显性电平并且因此放弃传输。在这种情况下不发生两个信号的物理叠加,而是在传输信道上仅应看见显性信号。

然后,由叠加的得到的值序列和自身的值序列,参与者可以生成密钥,所述密钥相对于外来的攻击者是机密的。其原因是,例如可以监听在共同使用的传输介质上存在的有效的总信号的外来的攻击者仅仅看见所述值序列的叠加,但不具有关于参与者的各个值序列的信息。因此,参与者拥有更多信息,参与者可以利用所述信息相对于攻击者生成机密的密钥。

然而因为所述方法尤其涉及安全性方法,其具有的目标是例如为了经加密的或者通过消息认证所保护的通信来生成密码密钥,所以特别有利的是,通过合适的错误检查来增大所述方法的可靠性。所述方法的防攻击和操纵的抵抗性因此被加强。尽管如此,仍然可以通过合适的和分级的错误响应来将系统的可用性保持得高。

所描述的方法可以特别好地在CAN总线系统、TTCAN总线系统或CAN-FD-总线系统中实现。在此,由显性的总线电平来置换(verdrängen)隐性的总线电平。参与者的值或信号的叠加因此遵循所规定的规则,所述参与者可以利用所述规则来由经叠加的值或信号以及由参与者传输的值或信号来导出信息。所述方法也良好地对于其它通信系统、例如LIN和I2C适用。

针对网络中的两个参与者描述了所述方法,而机密的密钥也已经可以通过网络的参与者由自身的信号序列以及由该信号序列与第二参与者的信号序列的叠加中被导出。为此,网络或网络的参与者被设立用于实施相应的方法的步骤,其方式是,使他们拥有电子的存储器资源和计算资源。在这样的参与者的存储介质上或者在网络的分布式的存储资源上也可以存放计算机程序,所述计算机程序被设立用于,当其在参与者中或者在网络中被执行时,实施相应的方法的所有步骤。

附图说明

下面,在参考所附附图的情况下并根据实施例来进一步描述本发明。在此:

图1示意性地示出示例性的所基于的通信系统的构造;

图2示意性地示出作为所基于的通信系统的示例的线性的总线;

图3示意性地示出网络的两个参与者的示例性的信号序列以及在这些参与者之间的传输信道上的引起的叠加值序列;

图4示意性地示出用于在网络的两个参与者之间生成密钥的示例性方法的流程;

图5示出作为网络参与者的电路装置的一部分的示例性的通信模块;

图6示出用于生成机密或用于密钥交换、尤其用于促使同步通信的示例性模块,(另外的模块)作为网络参与者的电路装置的部分;和

图7示出在用于密钥生成的方法的范畴内的用于诊断或用于识别错误的方法的示例性的流程。

具体实施方式

本发明涉及一种用于在通信系统的两个节点(网络的参与者)之间生成共同的机密或(机密的)对称的密码密钥的方法,这两个节点通过共同使用的介质(网络的传输信道)相互通信。密码密钥的生成或协商在此基于这两个参与者之间的公开的数据交换,其中,但是,对于作为攻击者的、可能的进行窃听的第三方而言仍然不可能或仅仅非常困难地可能的是,作出对所生成的密钥的推断。因此可能的是,在网络的两个不同的参与者之间完全自动化地并且安全地设立相应的对称的密码密钥,以便于是在其上建设性地实现确定的安全功能,诸如数据加密。如还详细地描述的那样,为此首先设立共同的机密,其可以被考虑用于密钥生成。但这样的共同的机密基本上也可以出于其他目的而被用作狭义上的密码密钥,例如作为一次性密码本(One-Time-Pad)。

该方法适合用于大量的有线的或无线的以及光学的网络或通信系统、尤其这样的网络或通信系统:在其中,不同的参与者经由线性的总线相互通信并且借助于逐位进行的总线仲裁来进行对该总线的介质访问。该原理例如是广泛传播的CAN-总线的基础。可能的应用领域与此相应地尤其也包括自动化技术中的基于CAN的车辆网络以及基于CAN的网络。

利用所描述的方法可以自动化地在网络的一个节点中或尤其在网络的两个节点之间生成对称的密码密钥。该生成在此在充分利用相应的传输层的特性的情况下进行。但不同于在“Physical Layer Security(物理层安全)”的通用方案的情况下地,为此不评估传输信道的物理参数,例如传输强度等。相反,对此存在在所参与的节点之间的公开的数据交换,该数据交换由于通信系统的和/或所使用的调制方法的特性而使得可能的进行窃听的攻击者不能够对由此协商的密钥进行推断或进行充分的推断。

在下文中考虑一种如在图1中抽象地所示出的那样的装置。在此,不同的参与者2、3和4通过所谓的共享的传输介质(“shared medium”)10相互通信。在本发明的一种有利的表现形式中,该共享传输介质相应于线性的总线(有线的或光学的)30,如在图2中示例性地示出的那样。图2中的网络20恰好由作为共享的传输介质(例如作为有线的传输信道)的线性的总线30、参与者或节点21、22和23以及(可选的)总线终端31和32组成。

在下文中,对于不同的节点21、22和23之间的通信而言假设:所述通信的特征在于显性的值与隐性的值的区分。在该示例中,位“0”和“1”被假定作为可能的值。在此,显性的位(例如逻辑位“0”)可以在一定程度上置换或改写同时传输的隐性的位(例如逻辑位“1”)。

这样的传输方法的一个示例是所谓的On-Off-Keying(开关键控)(开关键控振幅键控换向),其中,对恰好两种传输状态进行区分。在第一种情况下(值“开(On)”或者“0”),传输信号,例如以简单的载波信号的形式,在另一种情况下(值“关(Off)”或“1”),不传输信号。状态“开”在此是显性的,而状态“关”是隐性的。

支持对显性的位和隐性的位的区分的相应的通信系统的另一个示例是,基于以逐位方式的总线仲裁的(有线的或光学的)系统,如其例如在CAN-总线中应用的那样。基本思想在此同样在于,如果例如两个节点同时要传输信号并且其中一个节点传输“1”,与此相反地第二节点发送“0”,则获得“0”(即显性的位),也即可以在总线上被测量的信号电平相应于逻辑“0”。在CAN中,该机制尤其被用于解决可能的冲突。在此,优先传输较高优先级的消息(也即具有较早的、显性的信号电平的消息),其方式是,每个节点在传输其CAN标识符时逐位地同时监控总线上的信号电平。如果节点自身传输隐性的位,但在总线上探测到显性的位,则相应的节点为了较高优先级的消息(其具有更早的显性的位)而中断自身的传输尝试。

对显性的和隐性的位的区分允许将共享的传输介质理解为一种类型的二进制运算器,其借助于逻辑与函数对不同的输入位(=所有同时传输的位)彼此进行运算。

在图3中示例性地示出,参与者1(Tl)如何准备好用于在时间点t0与t5之间的经由传输信道发送的位序列0,1,1,0,1。参与者2(T2)准备好用于在时间点t0与t5之间的经由传输信道发送的位序列0,1,0,1,1。利用通信系统的在上面所描述的特性并且在假设在该示例中位电平“0”是显性的位的情况下,在总线(B)上应看到位序列0,1,0,0,1。仅仅在时间点t1和t2之间以及在t4和t5之间,不仅参与者1(Tl)而且参与者2(T2)设置隐性的位“1”,从而,仅在此,逻辑的与运算导致在总线(B)上的位电平“1”。

在充分利用通信系统的传输方法的该特性的情况下,现在可以在相应的网络的两个参与者之间进行密钥生成,其方式是,参与者探测在传输介质上这两个参与者的位序列的叠加并且由该信息与关于自身所发送的位序列的信息一起产生共同的(对称的)机密的密钥。

下面根据图4阐述示例性的特别优选的实现方案。

在步骤41中由在该示例中所参与的两个节点(参与者1和参与者2)之一开始用于生成对称的密钥对的过程。这可以例如通过发送特殊的消息的或特殊的消息报头来进行。

不仅参与者1而且参与者2首先本地(也即在内部和彼此独立地)生成位序列。优选地,该位序列是作为方法的结果所期望的共同的密钥的至少两倍长、尤其至少三倍长。该位序列优选地分别作为随机的或伪随机的位序列,例如借助合适的随机数生成器或伪随机数生成器来产生。

用于长度为20位的本地的位序列的示例是:

﹒参与者1的所产生的位序列:

ST1 = 01001101110010110010

﹒参与者2的所产生的位序列:

ST2 = 10010001101101001011。

在步骤43中,参与者1和参与者2相互(尽可能地)同步地通过共享的传输介质(在使用具有显性的和隐性的位的传输方法的情况下,如先前已经阐述的那样)传输其分别产生的位序列。在此,能够设想用于同步相应的传输的不同可能性。因此,例如要么参与者1或参与者2首先发送合适的同步消息给相应其他的节点并且在紧接着该消息的完整的传输的确定的持续时间之后然后开始真正的位序列的传输。但同样也可以考虑的是,由这两个节点之一传输仅仅一个合适的消息报头(例如由仲裁域和控制域组成的CAN报头)并且在所属的净负荷阶段(Payload-Phase)期间,两个节点然后(尽可能地)同步地同时传送其所生成的位序列。在该方法的一个变型方案中,参与者的在步骤42中生成的位序列在步骤43中也可以分成多个消息地被传输,例如当相对应的消息的(最大)大小使得这一点是必要的情况下。也在该变型方案中,又(尽可能地)同步地进行对另一参与者的被分成相对应地多个的、相对应地大的消息的位序列的传输。

在共享传输介质上,所述两个位序列接着彼此相叠加,其中基于系统的之前所要求的特性,参与者1和参与者2的各个位利用对显性和隐性位的区分得到叠加、在所提到的示例中实际上(de facto)被与运算。借此,在传输信道上得到相对应的叠加,窃听的第三参与者例如可能会探测到所述叠加。

对于以上的本地的位序列的叠加位序列的示例:

﹒在传输信道上的有效的位序列:

Seff= ST1 AND ST2 = 00000001100000000010。

不仅参与者1而且参与者2在步骤43的其位序列的传输期间在并行的步骤44中探测到在共享的传输介质上的有效的(经叠加的)位序列Seff。对于CAN总线的示例,这在常规的系统中在仲裁阶段期间原本总归进行。

对于具有“开关键控”的(无线的、有线的或光学的)系统,这相应地同样可能。在此,以下尤其有利于实践的可实现性:在这样的系统中状态“开”是显性的并且状态“关”是隐性的(如先前已经阐述的那样)。因此,只要节点本身已经发送了显性位,该节点在不测量的情况下就也知道,“共享介质(Shared Medium)”上的有效状态是显性的。如果相反一个节点发送了隐性的位,则该节点首先不能够容易地知道在共享的传输介质上的状态,但该节点在这种情况下通过合适的测量来确定,该状态看起来如何。因为该节点自身在这种情况下不进行发送,所以也不具有关于所谓的自干扰的问题,否则所述关于所谓的自干扰的问题特定地在无线系统的情况下会使耗费的回波补偿(Echokompensation)必要。

在下一步骤45中,不仅参与者1而且参与者2同样又(尽可能地)同步地传输其初始的位序列ST1和ST2,然而这次经颠倒地传输。相应的传输的同步在此又可以恰恰通过相同的方式和方法来实现,如上面描述的那样。在共享的通信介质上,这两个序列然后又被相互地与运算。参与者1和2又确定在共享的传输介质上的有效的经叠加的位序列Seff

用于上面的位序列的示例是:

﹒参与者1的经颠倒的位序列:

ST1' = 10110010001101001101

﹒参与者2的经颠倒的位序列:

ST2' = 01101110010010110100

﹒在该信道上的有效的经叠加的位序列:

Seff' = ST1' AND ST2' = 00100010000000000100。

然后,不仅参与者1而且参与者2在传输其现在经颠倒的位序列期间又确定在共享的传输介质上的有效的经叠加的位序列。因此,在该时间点,两个节点(参与者1和参与者2)以及窃听在共享的传输介质上的通信的可能的攻击者(例如参与者3)知道有效的经叠加的位序列Seff和Seff '。但不同于攻击者或第三参与者,参与者1还知道其初始产生的、本地的位序列ST1,并且参与者2还知道其初始产生的、本地的位序列ST2。但参与者1又不知道参与者2的初始产生的本地的位序列并且参与者2不知道参与者1的初始产生的、本地的位序列。对叠加位序列的探测又在步骤46中的传输期间进行。

对于该示例性的实施变型方案而言可替代地,参与者1和参与者2也可以将其被颠倒的本地位序列直接与其原始的本地位序列一起发送或直接在其原始的本地位序列之后发送,也就是说步骤45和46与步骤43和44一起进行。在此,原始的位序列和被颠倒的位序列都可以在一个消息中、但是也可以在多个单独的消息中作为部分位序列被传送。

在步骤47中,参与者1和参与者2现在分别在本地(即内部地)尤其利用逻辑或函数来对有效的经叠加的位序列(Seff和Seff'')运算。

用于上面的位序列的示例是:

Sges = Seff OR Seff' = 00100011100000000110。

在由或运算得出的位序列(Sges)中的各个位现在说明,ST1和ST2的相应的位是相同还是不同的。如果Sges之内的第n个位例如是‘0’,则这意味着,在ST1之内的第n个位与在ST2之内的相对应的位相反。同理适用:如果在Sges之内的第n个位是‘1’,那么在SAlice和SBob之内的相对应的位是相同的。

参与者1和参与者2接着在步骤48中基于由或运算所得到的位序列Sges来在其原始的初始的位序列ST1和ST2中划掉在两个序列中相同的所有位。这因此导致相应地缩短的位序列。

用于上面的位序列的示例:

参与者1的缩短的位序列:

ST1,v = 01011100101100

参与者2的缩短的位序列:

ST2,v = 10100011010011。

得到的缩短的位序列ST1,v和ST2,v现在恰恰彼此相反。因此,这两个参与者之一可以通过其缩短的位序列的颠倒来精确地确定如在另一参与者中已经存在的那样的缩短的位序列。

现在,在步骤49,这样的共同存在的被缩短的位序列由参与者1和参与者2分别在本地以适当的方式和方法来处理,以便生成所期望的长度N的真正所期望的密钥。在这种情况下,也再次存在多个可以如何进行该处理的可能性。一种可能性是,从共同存在的被缩短的位序列中选择N个位,其中必须清楚地限定:要取哪N个位,例如其方式是总是简单地选择所述序列的前N个位。同样可能的是通过共同存在的被缩短的位序列计算哈希函数,所述哈希函数提供长度N的哈希值。一般而言,所述处理可以利用每个任意的线性和非线性的函数来进行,所述函数在应用于所述共同存在的被缩短的位序列时返回长度N位的位序列。从所述共同存在的被缩短的位序列中产生密钥的机制优选地以相同的方式存在于两个参与者1和2中,并且相对应地以相同的方式来执行。

紧接于密钥生成,必要时还可以检验,由参与者1和2生成的密钥是否实际上相同。为此,例如可以通过所生成的密钥计算校验和并且在参与者1和2之间交换所述校验和。如果两个校验和不相同,则显然有什么(etwas)失败了。在这种情况下,可以重复所描述的用于密钥生成的方法。

在用于密钥生成的方法的一种优选的变型方案中,也可以在不同的运行过程(Durchlauf)中首先产生一整系列得到的、在参与者1和2中分别存在的缩短的位序列,所述位序列然后在由其导出真正的密钥之前被组合成一个唯一的大的序列。必要时这也可以自适应地进行。如果在所描述的程序的一次运行过程之后例如共同的缩短的位序列的长度例如可能小于所期望的密钥长度N,则可以通过重新的运行过程来例如在真正的密钥导出之前生成另外的位。

所生成的对称的密钥对现在可以最后由参与者1和参与者结合所设立的(对称的)密码方法,诸如用于数据加密的密码(Chiffre)来使用。

可能的攻击者(例如参与者3)可能监听参与者1和参与者2之间的公开的数据传输并且因此如所描述的那样获得对有效的、经叠加的位序列(Seff和Seff')的了解。但是,因此攻击者于是仅仅知道,在参与者1和2的本地生成的位序列中哪些位是相同的以及哪些位不同。在相同的位的情况下,攻击者此外甚至还可以确定,在此是涉及‘1’还是‘0’。但对于得到的、缩短的位序列的(和因此用于密钥生成的基础的)完全了解来说,该攻击者缺少关于不相同的位的信息。为了进一步使对于攻击者而言可能的攻击变得困难,在一种优选的变型方案中附加地删除在参与者1和2的原始的、在本地产生的位序列中相同的位值。因此,参与者3仅仅拥有根本不被用于密钥生成的信息。虽然参与者3知道,相应地缩短的位序列来自于在参与者1和参与者2的本地的位序列之间不同的位。但参与者3不知道,参与者1和参与者2分别发送了哪些位。

对于关于经叠加的总位序列的信息附加地,参与者1和参与者2还具有关于分别由他们发送的本地的生成的位序列的信息。由相对于仅仅跟随(folgen)公开的数据传输的参与者3的信息优势引起以下事实:在参与者1和2中生成的密钥尽管以公开的数据传输作为基础却仍保持机密。

在图5中示出通信模块或协议模块。在此,在该示例性的构型中涉及所谓的CAN协议控制模块或也简称CAN模块。对于CAN总线系统,对此可以使用例如基于Robert Bosch有限公司的CAN控制器IP模块的CAN通信模块如M_CAN、C_CAN或D_CAN,或者对于LIN总线系统可以使用基于Robert Bosch有限公司的基于LIN通信控制器IP模块的LIN通信模块,如C_LIN。在图5中,示出基于M_CAN-IP的CAN模块50。

CAN核51相应于确定的CAN协议版本地实施通信,例如版本2.0A、B和ISO11898-1并且同样可以支持CAN FD。以连接503或504表示逻辑的CAN发送连接或CAN接收连接。同步块52使在存在的两个时钟域之间的信号同步。模块内部的时钟发生器以59表示。通过配置与控制块55可以设置CAN核相关的配置与控制位。块56用于对接收时间戳和与发送时间戳的中断控制和产生。接口58用作为用于CAN模块与许多不同的CPU类型通过连接501的可能的连接的通用的从接口。接口57用作为对于通过连接502到消息存储器、尤其RAM的访问而言的通用的主接口。块53相应于Tx处理机(Handler)或发送管理器,其控制从外部的消息存储器到CAN核的消息传输。在此,可以配置直至32个传送缓冲器用于传输。发送-时间戳与相应的消息ID一起存储。发送管理器中的块531或532相应于控制和配置块或相应于发送优先级排序块。Rx处理机或接收管理器54控制所接收的消息从CAN核到外部的消息存储器的传输。在此,支持直至128个消息的存储。接收时间戳与每个消息一起存储。

通信模块因此包括中央的电路部分(在此CAN核51),用于根据协议地控制在主机CPU与外部的消息存储器之间的通信以及用于根据协议地通过通信系统(在此通过连接503和504)接收和发送消息。模块通过接口(在此,主接口57和连接502)与外部的消息存储器连接。模块通过另外的接口(在此,从接口58和连接501)与主机CPU连接。主机CPU可以作为独立的单元,作为ASIC的一部分或者用FPGA来实现。

到物理层的连接可以通过附加的收发器硬件来支持。多个通信模块可以分享外部的消息存储器。

在图6中示出模块60,所述模块在网络上的参与者的电路装置中可以支持该参与者与其他的网络参与者一起生成共同的机密(下面也作“另外的模块”)。模块60在此可以将数据或消息给出到总线600上,该总线在一种优选的构型中可以作为CAN总线来实现。

在此,模块60拥有块64用于通过接口604进行模块的配置,尤其用于协议特定的配置,如波特率、ID等等。此外,模块包括块63(例如寄存器),在寄存器中可以存储字符串、尤其随机数或伪随机数,尤其通过接口603接收。块62表示触发器模块,触发器模块在一种优选的实施方式中可以通过接口602来引起触发器信号。可替代地,触发器模块也可以独立地引起触发器信号。此外,该模块拥有发送装置,如作为块61示出的发送缓冲存储器(Tx-缓冲器),发送装置可以通过接口601给出到消息或数据到总线600上。

该模块的主功能方式在此是:根据配置(通过在配置块64与发送装置61之间的连接605表明)、通过连接606将来自块63的随机数或伪随机数给出到发送装置61上并且通过接口601将其输出到CAN总线600上。该过程(要么该数已经从块63传输到块61,要么该数已经至少是从块61传输到总线600上)尤其通过触发信号通过到发送装置61上的连接607来触发,触发信号通过触发器模块62引起。

在该模块60的优选的构型中,该模块也可以拥有存储器65(尤其RAM),在存储器中存储有一个或多个随机数或伪随机数,其根据触发器信号通过发送装置61来输出。这些随机数也可以通过模块60中的可选的随机数发生器(尤其TRNG)来产生。

此外,在一种优选的构型中,该模块60也可以具有接收装置67、尤其接收-缓冲存储器67,接收装置可以通过接口612从总线600接收消息或数据。在该构型中,通过在接收装置67与触发器块62之间的接口613,也可以根据所接收的数据来触发触发器信号用于发送数据。例如可以识别,由其他网络参与者将随机数序列置于总线上用于机密生成(例如通过相应的消息ID)并且接着进行通过触发器块62的触发,该参与者也通过该模块60(尽可能地)与通过其他网络参与者进行的随机数序列的传输同步地给出随机数序列到总线上。

在可选的块68中,可以存储模块60的错误状态并且通过接口608也向外部报告或者从外部调取错误状态。

在另一种优选的构型中,模块60也可以拥有电路部分69用于动态的讯息生成。该电路部分可以通过接口609接收随机数或伪随机数并且根据随机数或伪随机数生成讯息并且通过连接610传递给发送装置61。该讯息设置用于与另外的网络参与者尽可能地同步地传输随机数,以便如上面描述的那样生成网络参与者之间的共同的机密。

在应支持上面描述的用于在网络参与者之间的机密生成或密钥生成的方法的电路装置(尤其微控制器)中,除了其他组件和接口以外,有利地包含如关于图5描述的至少一个通信模块以及关于图6描述的至少一个其他模块。

所描述的用于密钥生成的方法包含许多单个步骤,在这些单个步骤中可能出现错误。因为优选地涉及用于生成机密的密码密钥的方法,所以应特别确保这些方法,以便准备好防止攻击和操纵。为此,网络参与者的所参与的组件应识别错误并且可以合适地对此作出反应。

如果两个网络参与者在传输信道上同步地发送值序列,则其能够预期,对于每个所发送的值序列或者对于每个相应的消息生成确定的最小数目的位的机密。如果没有实现这点,则这可能归因于错误(例如归因于,这两个参与者之一还没有发送值序列或者多于两个参与者已经发送了参与者序列)或者归因于不大可能的情况,即网络参与者的这两个值序列所基于的随机数过强地相关。因为后一原因在足够长的值序列的情况下是不大可能的并且是罕见的,所以当根据值序列叠加可能生成少于预期的数目的位的时候,判定为错误。针对这样的错误可以直接地进行错误响应或者仅仅对于多次地(对于预先确定的次数)未达到位数目的情况。

如果检查,是否在预先确定的数目的成功并且同步地发送的值序列或者相应的消息之后已经能够生成确定的长度的密钥或者是否这在预先确定的持续时间之后是这种情况,则可以探测到类似的错误指示(Fehlerbild)。

也可能出现这种情况:一个网络参与者已经发送了值序列,但另一个网络参与者首先并不与之同步地同样传输值序列。只要其在确定的延迟时间之后或者自确定的值序列起却开始同步的传输,则该过程就可以保持无结果(不顾值序列的直至同步的无用传输)。否则同样能够识别到错误。

作为响应考虑例如通知网络参与者的其他电路部分。例如,可以通知网络参与者的硬件安全模块或计算单元CPU(尤其网络参与者的微控制器)。网络参与者又可以(尤其通过更高的协议层)来通知或者告知另外的网络参与者或请求另外的网络参与者进行确定的动作,以便实现重新开始或继续密钥生成。

作为可替代的或附加的错误响应,网络参与者可以暂时停止发送用于机密生成的值序列。

相应的网络参与者现在可以可替代地以未经加密的方式进一步通信,以预先配置的密钥加密其通信、使用较早已经生成的密钥用于加密或者使用新的密钥,尽管新的密钥的长度短于位的预先确定的数目。

在优选的构型中,只有当达到预先确定的数目的用于密钥生成的重新尝试的时候或者只有当预先确定的时间(例如在开始密钥生成之后)过去的时候,才可选地也可以在此进行错误措施。时间在此也可以通过确定数目的过去的事件来定义。

如描述的那样,优选地,在相应的网络参与者中所生成的密钥被调准。为此,网络参与者发送经加密的讯息或者例如执行通过已经借助密钥所计算的签名或哈希值进行的调准。如果在确定数目的调准尝试或相应讯息之后或者在确定的时间之后(例如在开始密钥生成之后)不存在成功的密钥调准,那么可以同样可以判定为错误。又可以如上面描述的那样进行错误响应。

在由所确定的机密来生成密钥时也可能出现错误。计算中的错误在此可以优选地已经通过网络参与者自身来探测到。有错的密钥可以在密钥调准时(或者如上面描述的那样通过不成功的密钥调准)来探测。

另外的错误可能在基于所确定的密钥(尤其通过更高的协议层)来在多个网络参与者之间生成组密钥的时候出现。在此,类似于上面描述的监控,过去的时间或者用于生成组密钥的不成功的尝试数目也可以显示错误。作为错误原因例如可以考虑:不作出反应的或过晚地作出反应的网络参与者、过载的或受干扰的传输信道或通过对系统的攻击而受限的功能性。网络参与者可以在存在这样的错误的情况下才一次地以不经加密的方式继续通信或者利用先前设立的密钥确保继续的通信。

网络参与者优选使用随机数或伪随机数来生成值序列,所述值序列在传输信道上同步地传输。在用于密钥生成的方法的范围内的另一错误指示在此可以在于,没有足够数目的随机数可供使用,使得进行生成的单元并不及时地或者足够频繁地提供随机数或者已经提供的随机数不具有所要求的品质或长度。作为对此的反应,网络参与者可以替代地使用更低品质的随机数,该网络参与者例如自身可以生成所述随机数或者可以保持储备所述随机数。附加地或可替代地,可以进行对更高的单元、例如网络参与者的硬件安全模块或计算单元的通知。更高的单元然后也可以在更高的协议层面上接管另外的错误处理。

在所描述的方法的一种特别优选的构型中,通过网络参与者的电路装置,例如通过微控制器接管方法的重要步骤,电路装置包括如关于图5描述的那样的通信模块与如关于图6描述的那样的另外的模块。在该构型中,尤其通信模块可以在错误方面监控其他模块。因为两者优选地连接在相同的通信信道上、尤其相同的总线上,所以通信模块设置另外的模块发送和接收的所有讯息。通信模块然后可以(可能借助电路装置的计算单元)对确定的讯息的数目计数。这些讯息通过其ID来标识。

如果通信模块或计算单元识别,过频繁地发送确定的讯息或者一般地说发送过多的讯息,则其他模块可以与其从通信信道分离,以便使其不干扰其余通信。这可以例如通过对其他模块的通过配置进行的去活(例如设置配置位)或者通过其他模块的发送信号的借助(例如多路复用器的)硬件电路的中断来发生。

可替代地或附加地的,其他模块也可以鉴于相同的错误方面监控通信模块并且通过通信模块与传输信道的分离来促使相同的错误响应。

仅仅当应为了密钥生成而交换讯息的时候,通常才需要其他模块。为了使对于系统的通过其他模块的错误行为引起的风险最小化,当不需要其他模块的时候,总是又可以关断所述其他模块。此外,总是仅仅当整个系统(例如载客汽车)处于非关键的运行状态中的时候(例如发动机关掉并且速度等于零或低于预先确定的阈值),才有利地接通其他模块。

用于监控错误和用于在错误情况下中断密钥生成的示例性的方法在图7中示出。

方法以步骤71开始。在步骤72中,一个网络参与者发送值序列用于与另一个网络参与者的值序列同步地传输并且为此必要时触发另外的网络参与者。

在步骤73中检查,是否通过值序列的同步传输已经生成了共同的机密的预先确定的数目的值或位。如果否,则在步骤74中检查,是否预先确定的数目的重新尝试已经用光。如果否,则方法分支回到步骤71。如果重新尝试的数目用完,则步骤74分支到步骤82、方法的中断。如果在步骤73中规定共同的机密的至少所预期的、预先确定的数目的值或位,则方法分支到步骤75。

在步骤75中检查,待生成的密钥是否已经达到预期的预先确定的长度。如果不是,则在步骤76中检查,是否已经发送了预先确定的、最大数目的同步地发送的值序列或者是否预先确定的最大的时间已经过去。如果否,则该方法又分支到步骤71。如果达到最大的数目或时间,则分支到步骤77,在那里检查,是否已经进行预先确定的最大数目的用于密钥生成的尝试。如果是,则分支到步骤82并且中断该方法。如果否,则分支到步骤71。相反如果在步骤75中确定达到所预期的最小的密钥长度,则分支到步骤78。

在步骤78中检查密钥,尤其通过在网络参与者之间的合适的调准。在步骤79中确定,是否密钥检查成功地进行。如果是,则以步骤81成功地结束该方法。如果否,则在步骤80中检查,是否预先确定的最大数目的检查尝试已经用完或者是否预先确定的用于密钥检查的时间已经经过。如果是,则在步骤82中进行中断。如果否,则方法分支到步骤71。这意味着,从前面开始方法。在此可以重置事件计数器。

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