用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统与流程

文档序号:13352375阅读:257来源:国知局
用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统与流程

本发明涉及一种根据权利要求1的前序部分所述的用于维护数据总线所传输的数据的信息安全的方法,以及一种相应的数据总线系统。



背景技术:

为了保护消息的机密性,以本身已知的方式借助于密码方法将这些消息加密。然后,所产生的密钥文本不会被第三方利用简单手段读取。常规的工业方法存在于对称密码领域中——发射器和接收器使用相同的密钥——例如,aes(高级加密标准)并且存在在非对称密码领域中——发射器和接收器各自具有由私钥和公钥组成的不相等密钥对——例如,rsa(rivest、shamir和adleman)。针对这些方法,存在用于进行加密和/或还用于确保真实性的各种协议层。这些方法的缺点是,一般来说,仅可以有效地处理大型数据包和/或必须以两个单独的分步骤对输入数据进行加密和签名,后者必须确保真实性。



技术实现要素:

因此,本发明的目的是提供一种方法,借助于所述方法可以秘密地(攻击者不易辨认)且真实地(数据的发射器是已知的)实现经由数据总线进行通信。

此目的通过根据本发明根据权利要求1所述的方法以及根据本发明根据权利要求14所述的数据总线系统来实现。

本发明描述了一种用于维护数据总线所传输的数据的信息安全的方法,其中,待经由所述数据总线从发射器传输到至少一个接收器的所述数据在被发送出去之前被分成数据块,并且所述数据块利用密钥借助于用于形成密码散列函数的海绵建构逐块地被加密和/或签名,并且以此方式生成的密码块经由所述数据总线被传输到所述至少一个接收器。

海绵建构表示可以从任何长度的输入比特流产生任何长度的输出比特流的一类密码散列函数,并且其中,海绵建构在此上下文中具有各自都包括至少两个部分(所谓的速率和所谓的容量)的多个内部状态。借助于包括海绵建构的海绵函数将状态映射到下一个状态上,从而调节数据块。以此方式对所有数据块进行的处理常被称为海绵建构的或海绵的吸收阶段,并且输出发生的阶段常被称为排放阶段。如果存在交替的吸收和排放,则这被称为双工海绵建构。密钥在此上下文中优选是私密的,即,基本上仅对发射器以及对至少一个接收器已知。数据块的块长度和密钥的密钥长度优选地表示对应实现方式的可预先确定的参数。总线系统是支持1到n通信(一个发射器和多个接收器)的用于在多个用户之间进行数据传输的系统。在此上下文中,在通信中,各个用户可以作为发射器以及作为接收器频繁地出现。在汽车领域,这类总线系统的示例是can总线或broadr-reach。

借助于本发明可以有利地维护信息安全(尤其是相对较小的数据包的信息安全),借助于本发明可以秘密地且真实地实现经由数据总线进行的通信。此外,与例如已知的aes-cmac方法相比,根据本发明的方法可以更有效地实施,因为与所述aes-cmac方法相比,在此呈现的解决方案中有更少的aes操作。aes-cmac方法将会需要2n+3个aes操作以用于n个数据块的加密和签名,而根据本公开的方法有利地仅需要2n+2个aes操作。

因为本发明的有利实施例的缘故,逐块加密所述数据块和逐块生成所述密码块发生在包括所述数据块的阶段期间。然后,在包括对应数据块期间且在此情况下,立即有利地生成密码块。因此,在结束整个加密之前,单独的加密的数据块或密码块已可用于进一步处理。

在加密所述数据块并生成所述密码块之后,优选地基于待传输的所述数据块以及所述密钥借助于所述海绵建构生成签名并且经由所述数据总线进行传输。借助于签名,可以由一个或多个接收器来检查所传输的数据块的起源和完整性。另外,数据的加密和相关联签名的生成可以在一个公共通道中发生。

优选地,利用密钥来初始化海绵建构的内部开始或初始化状态。初始化状态的初始化通常从零开始并且密钥随后借助于异或逻辑而被包括在内。由于利用密钥直接初始化了初始化状态,因此实现了改进的计算能力并且节省了资源。

根据本发明的优选改进,所述海绵建构的内部状态具有速率和容量,密码块的内容被用于所述海绵建构的对应下一个内部状态的速率。有利地,密钥本身和/或对应的密码块形成了用于对随后的数据块进一步加密的基础。这确保了具有完全相同内容的数据块不会导致形成具有完全相同内容的密码块。这防止了所谓的“已知密文”攻击,在所述攻击中,已知的密码块被应用到未知的数据流以得到关于原始数据块的知识。此外,此过程防止了“重放”攻击,在所述攻击中,之前记录的密码块再次被播放到通信数据流中。通过利用内部地改变的私密状态,没有附加的计数值或基于时间的数据需要经由总线发送以在接收器端验证密码块的流通。由于发射器和接收器具有完全相同的内部状态,因此海绵建构提供了隐式同步,因此,在具体地具有维护经由数据总线传输的数据的信息安全的优点的此签名方法中并不需要显式同步。由于利用了输入消息和输出消息的此同步机制,因此减少了经由总线发送的数据数量并且因此实现了更好的总线负载。

优选地使用数据块根据内部状态的速率来确定密码块。所述速率表示分别在第一内部状态或初始化状态情况下密钥的一部分,以及在下一个内部状态的情况下借助于海绵建构所包括的至少一个海绵函数计算出的速率。以此方式,实现了除其他项之外的优点:已借助于海绵函数置换和/或转换的密钥和/或内部状态被用于加密对应的数据块。

忠实于本发明的改进,借助于异或逻辑通过利用数据块根据从所述密钥得到的速率或借助于海绵函数计算出的速率来确定密码块。

所述海绵建构适当地具有至少一个海绵函数,所述至少一个海绵函数将内部状态映射到下一个内部状态,所述海绵函数通过利用至少一个替代置换网络来形成。以此方法,可以基于可能的并行化以及避免加密的可逆性来提供对资源的经改进的利用。

所述替代置换网络优选地借助于块密码来实现。具体地,所述块密码是块加密和/或块解密。其优点是,对于数据块的加密和解密两项,仅需要内部地利用的块密码的加密功能。因此,在实现施方式中需要更小的程序存储器并且减少了在源代码检查的情况下用于质量保证的支出。优选地,块加密是基于高级加密标准。高级加密标准表示当前被认为实质上是安全的并且被允许在没有限制的情况下实现的标准。

所述海绵函数的内部状态的第一部分被供应为待加密数据并且所述海绵函数的所述内部状态的第二部分被供应为密钥。

所述海绵建构的内部状态的所述第二部分优选地被供应给所述海绵函数的进一步替代置换网络作为待加密数据并且所述内部状态的所述第一部分被供应给所述替代置换网络作为密钥。

海绵函数优选地将内部状态映射到下一个内部状态,至少一个数据块借助于异或逻辑组合被另外包括在内。此外,优选地在从内部状态转变到下一个内部状态期间通过利用至少一个数据块来生成至少一个密码块。

根据本发明的改进,经由所述数据总线传输所述密码块优选地发生在加密所有数据块并且形成所述签名之后或者各自逐块地发生在加密单独的数据块之后。在待传输的若干消息或数据块的情况下可以联合地产生针对这些若干消息或数据块的签名s。根据第二实施例,实现了对应加密数据的实时(on-the-fly)加密以及随后的立即传输,其中,优选地在其之后还可以生成并传输签名。这一过程提供了对一个或多个接收器所加密的和所传输的数据进行有效相继解密,以此方式可以实现更短的等待时间。

数据块的长度适当地与数据帧的长度或与所述数据总线的基础数据总线协议的数据帧的有效载荷数据的长度相对应,或者所述数据总线的数据总线协议的数据帧的长度与所述数据块长度的倍数相对应。例如,在can消息的情况下,后者因此可以以其整体(或其有效载荷数据字段)形成被加密的单独数据块。取代未加密can消息,加密密码块以此方式借助于can总线传输。

本发明还涉及一种数据总线系统,所述数据总线系统包括发射器、至少一个接收器以及用于在所述发射器与所述至少一个接收器之间进行通信的至少一个通信装置,设计所述系统总线系统,其方式为使得所述系统总线系统可以实施根据本发明的方法。执行根据本发明的方法的密码数据总线系统可以有利地利用常规的边信道攻击(比如例如,计算时间攻击或分析功耗)成功地不遭受攻击,因为由于内部状态的容量和速率(然后被用作密钥以用于加密)的连续更新过程,因此新的密钥被用于所进行的每个加密。为了进行分析,将必须尝试着利用每个加密过程一个边信道测量结果来确定内部状态的当前值。然而,为了将重要的统计评估结果应用到内部状态,需要若干个边信道测量结果。由于每个加密过程的密钥不同,因此这种分析无法成功地执行。因此,块加密优选地具有恒定的且与值无关的运行时间。

进一步优选实施例借助于附图根据子权利要求以及随后对说明性实施例的描述获得。

附图说明

在附图中:

图1示出了根据本发明的用于加密和签名的海绵建构的说明性实施例;

图2示出了用于将内部初始化状态si映射到下一个内部状态si+1的海绵函数f的说明性示意图;

图3示出了根据本发明的方法的说明性实施例,其中,一个或多个数据总线消息的加密数据块m0…mn的传输发生在加密所有块之后,并且

图4示出了根据本发明的方法的说明性实施例,其中,一个或多个数据块m0…mn的加密数据块或密码块的实时传输在加密之后执行。

具体实施方式

为了例如经由车辆的数据总线来加密待发送消息,利用了如已知的在图1中所示出的海绵建构,例如密码散列函数族sha-3(keccak)。待加密消息在此初始地被分为具有相等长度的块m0…mn并且内部初始化状态si利用密钥来初始化。海绵函数f将内部状态si…si+n各自映射到下一个状态si+1…si+n+1并且这样做来表示合适的置换或转换。状态si…si+n+1在此各自被分为ri部分(被称为速率)和ci部分(被称为容量)。根据本发明,用虚线箭头表示的测量结果被用于逐块加密和签名生成,其中,在从内部状态si…si+n转变到下一个内部状态si…si+n+1期间,数据块m0…mn各自借助于异或逻辑被调节并且被输出为加密密码块c0…cn。为了形成密码块c0…cn,将对应的数据块m0…mn与借助于异或通过对应的置换函数形成的速率ri+1…ri+n进行组合。在加密数据块m0…mn并生成密码块c0…cn的阶段之后,输出签名s。密码块c0…cn因此各自与下一个状态的速率ri+1…ri+n相对应,这就是为什么在调节了对应的数据块m0…mn之后计算出的速率ri+1…ri+n也可以可替代地被输出为密码块c0…cn,具体地以用于避免在转变期间执行多个异或组合。

可以将这个一般原理应用到车辆的数据总线(例如,can总线或broadr-reach),因为选择了固定的位数和具体的海绵函数f。

图2在从初始化状态si=ri||ci转变到状态si+1=ri+1||ci+1的示例中示出了说明性参数值以及通过aes网络(高级加密标准)1和2形成的海绵函数f。如已经描述的,初始化状态si利用通信总线用户的公共私密256位密钥来初始化,128位各自被供应给aes网络1和2的输入端p并且另外的128位各自被用作密钥k。相应地,前128位用状态si的后128位进行加密并且相反地后128位用状态si的前128位进行加密。aes网络1和2各自输出128位加密数据密文。以此方式加密的初始化密钥的前64位借助于异或逻辑通过包括数据块m0被输出作为密码块c0并且被提供作为状态si+1的速率ri+1。另外的192位输出被用作状态si+1的容量ci+1,0…ci+1,2。

根据此说明性实施例选择数据块m0…mn的大小,其方式为使得可以各自加密单独的can消息的有效载荷数据(=8个字节=64位)。因此,can消息与数据块m0…mn的块大小完全相同。取代未加密的can消息,加密密码块c0…cn因此借助于can总线传输。可替代地,can消息长度表示数据块m0…mn大小的倍数。另外,也可以针对所有实施例提供填充数据。为了传输签名s,经由数据总线优选地另外传输至少一个另外的can消息。作为对aes-128操作的替代方案,可以利用其它函数或加密算法。此外,其他参数可以用于例如速率r、容量c和密钥大小。

将密码块c0…cn从传输总线用户ecus传输到接收总线用户ecur可以发生在如图3的示例性实施例所示出的签名s的完全加密和形成之后,或者在如图4的示例性实施例所示出的实时加密之后。具体地,通过后一种方法保证了较短的等待时间。

根据图1的说明性实施例,传输一个或多个消息的密码块c0…cn发生在加密所有块n_aes_enc_m并形成相关联签名aes_enc_s之后,并且在多个can消息的情况下这些若干消息的签名s可以联合地产生。这优选地借助于专用存储器来实现。例如,将n个8字节can消息加密并且产生其相关联的8字节签名s。在此之后,经由can数据总线将n+1个can消息(n个密码块+签名s)传输到ecur。ecur通过实施完全相同的操作来解译消息n_aes_enc并且借助于签名s来验证接收到的消息的完整性和真实性aes_enc_s。

根据图4的说明性实施例,分别实施了can消息的实时加密aes_enc_m0…aes_enc_m2以及接下来直接传输对应的加密can消息或数据块,其中,签名s生成(aes_enc_s)并且此后还接着被传输。接收器ecur已有效且连续地对接收到的can消息进行解密(aes_enc_m0…aes_enc_m2),验证aes_enc_s发生在接收签名s之后。

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