Fast CAN message authentication for vehicular systems

US9705678B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9705678-B1
Application numberUS-201414475404-A
CountryUS
Kind codeB1
Filing dateSep 2, 2014
Priority dateApr 17, 2014
Publication dateJul 11, 2017
Grant dateJul 11, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for authenticating messages is provided. The method includes calculating a hash value based on a key and a message count value and receiving a data message associated with the message count value. The method includes receiving an authentication message that includes the message count value and a message authentication code derived from the data message, the message count value and the key. The method includes applying portions of the data message to look up portions of the hash value and combining the portions of the hash value to form a verification version of the message authentication code. The method includes determining whether the message authentication code matches the verification version of the message authentication code.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for authenticating messages, comprising: calculating a hash value based on a key and a message count value; receiving from a first electronic control unit, a data message associated with the message count value; receiving from the first electronic control unit, an authentication message that includes the message count value and a message authentication code derived from the data message, the message count value and the key, wherein the calculating the hash value is performed by a second electronic control unit prior to the receiving the data message and prior to the receiving the authentication message, wherein calculating the hash value prior to the receiving the data message and prior to the receiving the authentication message acts to decrease a latency; applying, by the second control unit, portions of the received data message as an index into the hash value to look up portions of the hash value; combining, by the second control unit, the portions of the hash value to form a verification version of the message authentication code; and determining, by the second control unit, whether the message authentication code matches the verification version of the message authentication code. 2. The method of claim 1 , wherein the latency is from the receiving the data message and receiving the authentication message until the determining. 3. The method of claim 1 , wherein: the key is stored in each of the first electronic control unit and the second electronic control unit; and the message count value is determined at each of the first electronic control unit and the second electronic control unit. 4. The method of claim 1 , wherein: applying portions of the data message to look up portions of the hash value includes using the portions of the data message as pointers to the portions of the hash value; and combining the portions of the hash value includes concatenating exclusive ORed portions of the hash value, as pointed to by the portions of the data message. 5. The method of claim 1 , further comprising: calculating a plurality of hash values based on the key and a plurality of message count values, wherein the hash value is included in the plurality of hash values and the message count value is included in the plurality of message count values; and identifying the hash value from the plurality of hash values, based on receiving the message count value in the authentication message. 6. The method of claim 1 , wherein calculating the hash value is further based on a node identification (ID) and a session count. 7. The method of claim 1 , further comprising: calculating, at the first electronic control unit, the hash value calculated at the second electronic control unit, based on the key and the message count value as applied at the second electronic control unit, wherein both of the first electronic control unit and the second electronic control unit track the message count value and have the key; generating the message authentication code at the first electronic control unit based on the hash value calculated at the first electronic control unit and the data message which is to be sent; sending, from the first electronic control unit to the second electronic control unit, the data message and the authentication message, wherein the calculating the hash value is performed by the first electronic control unit prior to assembling the data for the data message and acts to decrease a latency from the assembling the data for the data message and the sending the authentication message. 8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising: counting messages received from an electronic control unit; deriving a message count value, for a message to be received from the electronic control unit, based on the counting; generating a hash value from the message count value and a key, wherein generating the hash value is prior to receiving a data message and prior to the receiving an authentication message to decrease a latency; receiving the data message associated with the message count value from the electronic control unit via a vehicular communication network or bus; receiving the message count value and a message authentication code, from the electronic control unit, via the vehicular communication network or bus; generating a verification version of a message authentication code from the received data message and the hash value corresponding to the message count value, by using portions of the received data message as an index to point to portions of the hash value and combining the portions of the hash value to form the verification version of the message authentication code; and verifying whether the message authentication code and the verification version of the message authentication code match. 9. The computer-readable media of claim 8 , wherein the method further comprises: counting messages sent to the electronic control unit; deriving a further message count value, for a message to be sent to the electronic control unit, based on the counting messages sent to the electronic control unit; generating a further hash value from the further message count value and the key; assembling a further data message, with further data therein; generating a further message authentication code from the further data and the further hash value; sending the further data message to the electronic control unit via the vehicular communication network or bus; and sending the further message count and the further message authentication code, to the electronic control unit via the vehicular communication network or bus. 10. The computer-readable media of claim 8 , wherein generating the hash value includes: forming a concatenation of a node identification (ID), a session count, the message count value, an overflow count value and the key; and performing a cryptographic hash calculation on the concatenation. 11. The computer-readable media of claim 8 , wherein generating the verification version of the message authentication code includes: dividing the data into a sequence of strings; translating each string of the sequence of strings into an integer value; applying the integer value of each string of the sequence strings as an index to find a portion of the hash value; applying an exclusive or (XOR) function to pairs of portions of the hash value, as pointed to by pairs of integer values of pairs of strings from the sequence of strings, to form intermediate values; applying the exclusive or function to pairs of the intermediate values to form portions of the message authentication code; and concatenating the portions of the message authentication code, to form the message authentication code. 12. The computer-readable media of claim 8 , wherein the method further comprises: storing a plurality of keys, each key of the plurality of keys associated with a trust group of a plurality of trust groups, a plurality of electronic control units organized according to the plurality of trust groups; tracking message count values of messages sent to each of the plurality of electronic control units; generating hash values and message authentication codes for messages to be sent to the plurality of electronic control units, based on the plurality of keys and message count values derived from the message count values of messages sent, in accordance with association of keys, electronic control units and trust groups; tracking message count values of messages received from each of the plurality of electronic contro

Assignees

Inventors

Classifications

  • H04L9/3242Primary

    involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC · CPC title

  • Controller Area Network CAN · CPC title

  • Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks · CPC title

  • received data contents, e.g. message integrity · CPC title

  • Vehicles · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9705678B1 cover?
A method for authenticating messages is provided. The method includes calculating a hash value based on a key and a message count value and receiving a data message associated with the message count value. The method includes receiving an authentication message that includes the message count value and a message authentication code derived from the data message, the message count value and the …
Who is the assignee on this patent?
Symantec Corp
What technology area does this patent fall under?
Primary CPC classification H04L9/3242. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).