用于建立共同机密的方法和设备与流程

文档序号:14652017发布日期:2018-06-08 22:01阅读:160来源:国知局
用于建立共同机密的方法和设备与流程

本发明涉及一种建立共同机密的方法。另外,本发明还涉及一种相应的设备、相应的计算机程序以及相应的存储介质。在此,参与的节点或参与者通过共同使用的传输介质来通信。在此,逻辑位串(或通常为:值串)通过相应的传输方法作为信号或信号串而被物理地传输。

所基于的通信系统可以例如是CAN总线。该CAN总线设置显性位和隐性位或者相对应地显性信号和隐性信号的传输,其中,网络的参与者的显性信号或显性位相对隐性信号或隐性位占优(durchsetzen)。只有当所有涉及的参与者都设置用于传输的隐性信号或者只有当所有同时发送的参与者都传输隐性信号电平时,对应于隐性信号的状态才出现在传输介质上。



背景技术:

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

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

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

相反地,在对称方法中必须保证:不仅接收方而且发送方也拥有相同的密钥。在此,所属的密钥管理通常是要求非常高的任务。在移动无线电领域中,密钥例如借助于SIM卡被引入到移动电话中,而所属的网于是可以给SIM卡的明确的标志分配相对应的密钥。而相反地,在无线局域网络(Wireless local area network,WLAN)的情况下,在设立该网络时通常手动地输入所要使用的密钥,通常通过输入密码来输入。但是,当例如在传感器网络或者其它机器对机器通信系统、例如在基于CAN的车辆网络中有非常大数目的节点时,这种密钥管理很快地变得非常耗费并且不可行(impraktikabel)。除此之外,所要使用的密钥的改变,例如在规律的重新计算或“刷新(Auffrischung)”(re-keying(密钥更新))常常是完全不可能的或只有用非常大的耗费才是可能的。

DE 10 2012 215326 A1描述一种用于在具有第一网络元件、第二网络元件和网络节点的网络中产生密码密钥的方法,其中,第一网络元件可以经由第一传输信道与网络节点通信而且第二网络元件可以经由第二传输信道与网络节点通信。该方法在第一网络元件侧包括:基于由网络节点发出的第一导频信号来确定关于第一传输信道的第一信道信息的步骤;和在使用第一信道信息和关于组合信道信息的信息情况下来求取对称密码密钥的步骤,其中,组合信道信息代表在网络节点侧基于由第一网络元件传输给网络节点的第二导频信号和由第二网络元件传输给网络节点的第三导频信号所确定的、第一和第二传输信道的传输特性的组合。



技术实现要素:

本发明提供根据独立权利要求所述的用于建立共同机密的方法、相应的设备、相应的计算机程序以及相应的存储介质。

上面所提到的方法描述在两个通信伙伴之间生成和分布共同机密。与此相对地,所提出的解决方案的优势在于其经扩展的实际可应用性。为此,描述用于在多于两个通信伙伴之间建立共同机密的机制(在下文中称为组密钥)。例如,利用组密钥可以确保多点连接,例如多播或广播。

共同机密也许可以被直接用作密码密钥。然而,可替代地,该共同机密被进一步处理,以便从该共同机密中推导出在多于两个通信伙伴之间的密码密钥。

通过在从属权利要求中所提及的措施,对独立权利要求中所说明的基本思想的有利扩展方案和改进方案是可能的。因此,第一节点可以随机地确定第一位串,而第二位串则表示对于第二节点和第三节点预先已知的初始值。在这种情况下,第三节点相对于第一节点和第二节点同步地检测第三位串和第四位串,在其侧将第三位串和第四位串逻辑运算成第五位串,并且确定第一机密,其方式为,其划掉(streichen)第二位串的、根据第五位串以数字值方式相一致的相应的位。第一节点、第二节点和第三节点因此可以将第一机密直接作为共同机密来使用。发送随机数的第一节点不需要知道共同的初始值。

在一种优选实施方式中,初始值可以例如在制造商或原始设备制造商的所有控制设备中是相同的。在应用根据该实施方式的方法之后,获得车辆特定的机密。

附图说明

本发明的实施例在附图中被示出并在接下来的描述中进一步阐述。其中:

图1示出根据本发明的一个实施方式的第一方法的初始状态。

图2 示出根据第一方法的共同机密的交换。

图3示出第一方法的最终状态。

图4示出根据第二方法的共同机密的交换。

图5示出第三方法的初始状态。

图6示出第四方法的初始状态。

图7示出根据第四方法的共同机密的交换。

图8示出第四方法的最终状态。

图9示出根据第五方法的共同机密的交换。

具体实施方式

本发明的实施方式基于:要么将已经借助以下所描述的方法逐对交换了的机密用作为用于建立共同机密的基础;要么将该共同机密本身经由所描述的方法来在多个参与者之间交换。

应注意的是,接下来的描述示例性示出:为了处于通信系统上的所有通信参与者来建立共同机密。这仅应被理解为一个示例。也可能的是,只有一部分的通信参与者属于该组并且也只有其知道该共同机密。同样地,借助所描述的机制可能的是,为了不同的组、但是也可以为了相同的组来建立多个共同机密。后者在如下情况下必要时是有利的:如果不同的CAN帧中的不同信息、例如转矩要求和当前速度应该利用不同的共同机密来被确保。

在图1至图5的实施方式中,第一节点A,第二节点B,第三节点C以及第四节点D连接在相同的总线分段10处,该总线分段10作为共同使用的介质将节点A-D连接到通信系统10,A-D。第一节点A与第二节点B,第三节点C以及第四节点D首先利用根据本发明的方法来交换逐对的机密。以对于所有三个节点对A-B,A-C,A-D而言代表性的方式,根据第一节点A和第二节点B来描述该方法:

不仅第一个节点A而且第二个节点B也在第一步骤中首先在本地(也即,内部地并且相互独立地)生成位序列或位串(bit string)。该位串优选分别作为随机的或伪随机的位序列例如借助于适合的随机数生成器或伪随机数生成器,优选借助于以密码方式确保的伪随机数生成器来被产生。例如,第一节点A可能产生位串

SA= (0,1,0,0, 1,1,0,1,1,1,0,0,1,0,1,1,0,0,1,0)

并且第二节点B可能产生位串

SB = (1,0,0,1,0,0,0,1,1,0,1,1,0,1,0,0,1,0,1,1)。

在第二步骤中,第一节点A和第二节点B在使用具有显性位和隐性位的传输方法的情况下经由传输介质10尽可能相互同步地传输它们分别所产生的位序列。在此,能够设想用于同步相应传输的不同可能性。因此,例如,要么第一节点A要么第二节点B可能首先将适合的同步消息分别发送给另外的节点B,A,并且在该消息的完全传输之后的特定时间段后,然后开始传输真正的位序列。但是同样还能够设想的是:由两个节点A,B其中的一个仅发送适合的消息报头(header),例如由仲裁域和控制域组成的CAN报头,并且然后在所属的有用数据阶段(Nutzdatenphase)期间使两个节点A,B同时尽可能同步地传送其所生成的位序列。在该过程的一个变型方案中,也可以以分布在多个消息上的方式传输第一节点A或第二节点B的在第一步骤中所生成的位序列,例如当相应消息的最大参量使其必要的时候。在这种变型方案中,相应另外的节点B,A的分配到相应多的、相应大的消息上的位序列的传输又尽可能同步地进行。

在传输介质10上,两个位序列于是叠加,其中,由于系统的之前所要求的特性,通过显性位和隐性位的区分,第一节点A和第二节点B的各个位得出如下叠加,在所提及的示例中被实际地与逻辑运算(de facto UND-verknüpft)。因此,在该传输信道上得出相应叠加,例如窃听的第三节点C可能检测该叠加。作为对于上述本地位串的叠加位串的示例,可能在该传输信道上得出以下有效的位序列:

Seff = SA SB=(0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0)。

不仅第一节点A而且第二节点B也在第二步骤的其位序列的传输期间在并行的第三步骤中检测在共享传输介质10上的有效的经叠加的位序列。对于CAN总线的示例,这通常也在常规的系统中、在仲裁阶段期间总归发生。

在第四步骤中,不仅第一节点A而且第二节点B也同样又尽可能同步地传输它们的初始位序列,但是这次是颠倒的。在此,对相应传输的同步可以再次恰好以与如上所描述的相同的型式和方式得以实现。然后,在共享通信介质上这两个序列再次相互被与逻辑运算。第一节点A和第二节点B再次确定在共享传输介质10上有效的、叠加的位序列Seff。因此,可为了第一节点A得出颠倒的位序列

= (1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,1)

并且为了第二节点B得出颠倒的位序列

= (0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,1,0,1,0,0)。因此,节点A,B可确定在该信道上的以下有效的、叠加的位序列:

S’eff= (0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0)。

然后,不仅第一节点A而且第二节点B也在它们的现在颠倒的位序列的传输期间再次确定在共享传输介质10上的有效的、叠加的位序列。因此,在该时间点,第一节点A,第二节点B以及窃听在共享传输介质10上的通信的可能的攻击者知道该有效的、叠加的位序列Seff和S’eff。但是,与攻击者相反,该第一节点A还知道其初始产生的、本地的位序列,并且该第二节点B还知道其初始产生的、本地的位序列。但是,第一节点A又不知道第二节点B的初始产生的、本地的位序列并且第二节点B不知道第一节点A的初始产生的、本地的位序列。在第五步骤中,在传输期间又进行对叠加位串的检测。

对于该示例性的实施变型方案可替代地,第一节点A和第二节点B也可以直接随着其原始的、本地的位串或直接在其原始的、本地的位串之后发送其颠倒的、本地的位串,即,第四步骤和第五步骤以第二和第三步骤来进行。原始的和颠倒的位串在此可以在一个消息中被传送,但也可以在分开的消息中作为部分位串来被传送。在特别有利的构型方案中,也可以在随机位之后直接发送颠倒的随机位。

在第六步骤中,第一节点A和第二节点B现在分别在本地、也即在内部逻辑运算有效的、叠加的位串Seff和S’eff,尤其是利用逻辑或函数(logische ODER-Funktion)。在上述示例中,以该方式得出以下逻辑运算:

Sges= Seff S’eff = (0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0)。

在由或逻辑运算所产生的位序列Sges中的各个位现在说明:S1和S2的相应位是相同的还是不同的。第一节点A和第二节点B随后在第七步骤中基于由或逻辑运算所获得的位序列在它们的原始的、初始位序列中划掉所有在这两个序列中相同的位。这因此导致相应缩短的位序列:

= (0,1,0,1,1,1,0,0,1,0,1,1,0,0) 和 = (1,0,1,0,0,0,1,1,0,1,0,0,1,1)。

所产生的、缩短的位序列和恰好彼此逆反。因此,第一节点A和第二节点B可以通过它们缩短的位序列的颠倒准确地确定在相应另外的节点B,A中已经存在的、那些缩短的位序列。

在一轮或多轮中,因此在第一节点A和第二节点B处借助于公开的讨论来建立预先给定的数量J的共同的机密位,其在下文中被表示为KAB在第一节点A和第三节点C的情况下被表示为KAC,并且在第一节点A和第四节点D的情况下被表示为KAD。在此应注意的是,在上面所描述的方法中能够生成的机密位的数量在每一轮中可能变化。与之相应地,必须进行足够多的轮,以便获得至少J个共同的机密位。如果实际生成的机密位的数量于是可能应大于J,又能够设想不同的选项:将得到的位串缩短至精确J个位,例如通过划掉各个位或一般借助于合适的函数,所述合适的函数将得到的位串映射到(abbilden auf)长度J的经缩短的位串;或者简单地利用超过J的长度的实际得到的位串来进一步处理,即使该长度每次可能是不同的。

如图1至3中所示,第一节点A生成机密KABCD并以利用相应的逐对的机密来加密的方式将其发送(附图标记25,26,27)给属于该组的其他参与者。

通过图4阐明一个替代方案:第一节点A生成机密。第一节点A利用相应的逐对的机密来计算该机密的异或(Exklusiv-Oder des Geheimnisses),并将结果发送给(附图标记45,46,47)属于该组的其他参与者。所述其他参与者利用其逐对的机密来计算该结果的异或并且获得共同机密KABCD

所描述的方法可以相应地被应用于已经建立的密码机密的进一步分布,例如图5的那些:第一节点A在此与第二节点B具有逐对的机密。第二节点B与第三节点C具有逐对的机密。第三节点C与第四节点D具有逐对的机密。第一节点A生成共同机密KABCD并将其发送给第二节点B。第二节点B进一步将共同机密KABCD分布到第三节点C。第三节点C进一步将共同机密KABCD分布到第四节点D。在此,共同机密KABCD又分别利用逐对的机密来被加密。

在另一个示例中,第一节点A与第二节点B具有逐对的机密。第二节点B分别与第三节点C和第四节点D具有逐对的机密。第一节点A生成共同机密KABCD,并且又将其以加密的方式发送给第二节点B。第二节点B进一步将共同机密KABCD以加密的方式分布到第三节点C和第四节点D。

也在图6至图9中的实施方式中,将第一节点A、第二节点B、第三节点C以及第四节点D连接在同一总线分段10,该总线分段作为共同使用的介质10将节点A-D连接到通信系统10,A-D。节点A-D最初知道共同的初始值Kini。总线10上的参与者根据上面所描述的方法将其随机数放到总线10上,至少一个或多个其他参与者将该初始值放到总线10上。其他参与者可以在总线10上窃听。将随机数放到总线10上的参与者,将初始值放到总线10上的参与者和窃听的和知道初始值Kini的参与者获得共同机密KABCD

在图6至8中示出的示例中,第一节点A生成随机数并根据上面所描述的方法将其放到(附图标记75)总线10上。第二节点B、第三节点C和第四节点D将共同的初始值Kini放到(附图标记76, 77, 78)总线10上。利用上面所描述的方法,所有节点获得共同机密;该共同机密可以用作组密钥KABCD。在此,可以通过读回的信息与Kini的适合的逻辑运算或者通过重新产生与颠倒的位序列的叠加(类似于之前的示例)来推导出KABCD。在后一种情况下,产生随机数的节点不需要知道Kini

图9中再现一个替代方案:第一节点A生成随机数并根据上面所描述的方法将其放到(附图标记95)总线10上。第二节点B将共同的初始值Kini放到(附图标记96)总线10上。第三节点C和第四节点窃听(附图标记97, 98)。如上所述,所有节点获得共同机密;该共同机密可以被用作组密钥KABCD

该方法可以相应地以其他组合和分布的方式被应用并且例如以软件或硬件或以由软件和硬件组成的混合形式例如在控制设备中被实现。

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