# US 11,909,857 B2 · Functionally safe encryption for vehicle to anything communication

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,909,857 B2
- Document ID: US11909857B2
- Status: Granted
- Kind: B2
- Application number: 16/724,732
- Filed: 2019-12-23
- Published: 2020-05-07
- Granted: 2024-02-20
- Earliest claimed: 2019-12-23
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Santosh Ghosh; Marcio Juliato; Rafael Misoczki; Manoj Sastry; Liuyang Yang; Shabbir Ahmed; Christopher Gutierrez; Xiruo Liu
- Web page: https://patentgrep.com/patent/US11909857B2

## CPC

- H04L 9/0631: {Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms}
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- H04W 4/40: for vehicles, e.g. vehicle-to-pedestrians [V2P]
- H04W 12/033: of the user plane, e.g. user's traffic
- H04L 2209/26: Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
- H04L 2209/601: Broadcast encryption
- H04L 2209/72: Signcrypting, i.e. digital signing and encrypting simultaneously
- H04L 2209/84: Vehicles
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Systems, apparatus, methods, and techniques for functional safe execution of encryption operations are provided. A fault tolerant counter and a complementary pair of encryption flows are provided. The fault tolerant counter may be based on a gray code counter and a hamming distance checker. The complementary pair of encryption flows have different implementations. The output from the complementary pair of encryption flows can be compared, and where different, errors generated.

## Claims

### Claim 1

An apparatus, comprising:
processing circuitry; and
memory coupled to the processing circuitry, the memory comprising instructions that, when executed by the processing circuitry cause the processing circuitry to:
convert a Galois Field (GF) representation of an encryption key from a first factor to a second factor and a third factor;
convert a GF representation of a data block from the first factor to the second factor and the third factor;
determine a Hamming distance between a current value of a Gray code counter and a previous value of a Gray code counter;
determine whether the Hamming distance equals one;
generate one or more counter blocks for an encryption algorithm based on a determination that the Hamming distance equals one;
generate a first cypher block of the data block, the first cypher block having the GF representation of the second factor, based on the encryption algorithm and the encryption key having the GF representation of the second factor, wherein the encryption algorithm is applied based on the second factor GF;
generate a second cypher block of the data block, the second cypher block having the GF representation of the third factor, based on the encryption algorithm and the encryption key having the GF representation of the third factor, wherein the encryption algorithm is applied based on the third factor GF; and
determine whether a fault in the execution of the encryption algorithm exists based on the first cypher block and the second cypher block,
wherein:
the GF representation of the first factor is GF(28);
the GF representation of the second factor is GF((24)2); and
the GF representation of the third factor is GF(((22)2)2).

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to:
convert the GF representation of the first cypher block from the second factor to the first factor;
convert the GF representation of the second cypher block from the third factor to the first factor;
determine whether the first cypher block having the GF representation of the first factor equals the second cypher block having the GF representation of the first factor; and
identify a fault in the execution of the encryption algorithm based on a determination that the first cypher block having the GF representation of the first factor does not equal the second cypher block having the GF representation of the first factor.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to output the first cypher block having the GF representation of the first factor as cypher data of the encryption algorithm based on a determination that the first cypher block having the GF representation of the first factor equals the second cypher block having the GF representation of the first factor.

### Claim 4 (depends on 3)

The apparatus of claim 3, wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to generate a message for transmission on a network, wherein the message is based on the cypher data, wherein the network includes a vehicle to anything (V2X) communication network.

### Claim 5 (depends on 4)

The apparatus of claim 4, further comprising a radio arranged to broadcast the message on the network.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to identify a fault in the execution of the encryption algorithm based on a determination that the Hamming distance does not equal one.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the encryption algorithm comprises an Advanced Encryption Standard (AES) counter cipher-block-chaining message authentication code (CBC-MAC) (AES-CCM) algorithm.

### Claim 8

A method, comprising:
converting a Galois Field (GF) representation of an encryption key from a first factor to a second factor and a third factor;
converting a GF representation of a data block from the first factor to the second factor and the third factor;
determining a Hamming distance between a current value of a Gray code counter and a previous value of a Gray code counter;
determining whether the Hamming distance equals one;
generating one or more counter blocks for an encryption algorithm based on a determination that the Hamming distance equals one;
generating a first cypher block of the data block, the first cypher block having the GF representation of the second factor, based on the encryption algorithm and the encryption key having the GF representation of the second factor, wherein the encryption algorithm is applied based on the second factor GF;
generating a second cypher block of the data block, the second cypher block having the GF representation of the third factor, based on the encryption algorithm and the encryption key having the GF representation of the third factor, wherein the encryption algorithm is applied based on the third factor GF; and
determining whether a fault in the execution of the encryption algorithm exists based on the first cypher block and the second cypher block;
wherein:
the GF representation of the first factor is GF(28);
the GF representation of the second factor is GF((24)2); and
the GF representation of the third factor is GF(((22)2)2).

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
converting the GF representation of the first cypher block from the second factor to the first factor;
converting the GF representation of the second cypher block from the third factor to the first factor;
determining whether the first cypher block having the GF representation of the first factor equals the second cypher block having the GF representation of the first factor; and
identifying a fault in the execution of the encryption algorithm based on a determination that the first cypher block having the GF representation of the first factor does not equal the second cypher block having the GF representation of the first factor.

### Claim 10 (depends on 9)

The method of claim 9, further comprising outputting the first cypher block having the GF representation of the first factor as cypher data of the encryption algorithm based on a determination that the first cypher block having the GF representation of the first factor equals the second cypher block having the GF representation of the first factor.

### Claim 11 (depends on 10)

The method of claim 10, further comprising generating a message for transmission on a network, wherein the message is based on the cypher data, and broadcasting, via a radio, the message on the network, wherein the network is a vehicle to anything (V2X) communication network.

### Claim 12 (depends on 8)

The method of claim 8, further comprising identifying a fault in the execution of the encryption algorithm based on a determination that the Hamming distance does not equal one.

### Claim 13 (depends on 8)

The method of claim 8, wherein the encryption algorithm comprises an Advanced Encryption Standard (AES) counter cipher-block-chaining message authentication code (CBC-MAC) (AES-CCM) algorithm.

### Claim 14

A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to:
convert a Galois Field (GF) representation of an encryption key from a first factor to a second factor and a third factor;
convert a GF representation of a data block from the first factor to the second factor and the third factor;
determine a Hamming distance between a current value of a Gray code counter and a previous value of a Gray code counter;
determine whether the Hamming distance equals one;
generate one or more counter blocks for an encryption algorithm based on a determination that the Hamming distance equals one;
generate a first cypher block of the data block, the first cypher block having the GF representation of the second factor, based on the encryption algorithm and the encryption key having the GF representation of the second factor, wherein the encryption algorithm is applied based on the second factor GF;
generate a second cypher block of the data block, the second cypher block having the GF representation of the third factor, based on the encryption algorithm and the encryption key having the GF representation of the third factor, wherein the encryption algorithm applied based on the third factor GF; and
determine whether a fault in the execution of the encryption algorithm exists based on the first cypher block and the second cypher block,
wherein:
the GF representation of the first factor is GF(28);
the GF representation of the second factor is GF((24)2); and
the GF representation of the third factor is GF(((22)2)2).

### Claim 15 (depends on 14)

The computer program product of claim 14, wherein the instructions, when executed by the at least one processor, further cause the at least one processor to:
convert the GF representation of the first cypher block from the second factor to the first factor;
convert the GF representation of the second cypher block from the third factor to the first factor;
determine whether the first cypher block having the GF representation of the first factor equals the second cypher block having the GF representation of the first factor; and
identify a fault in the execution of the encryption algorithm based on a determination that the first cypher block having the GF representation of the first factor does not equal the second cypher block having the GF representation of the first factor.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the instructions, when executed by the at least one processor, further cause the at least one processor to output the first cypher block having the GF representation of the first factor as cypher data of the encryption algorithm based on a determination that the first cypher block having the GF representation of the first factor equals the second cypher block having the GF representation of the first factor.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein the instructions, when executed by the at least one processor, further cause the at least one processor to generate a message for transmission on a network, wherein the message is based on the cypher data, wherein the network includes a vehicle to anything (V2X) communication network.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein a radio is arranged to broadcast the message on the network.

### Claim 19 (depends on 14)

The computer program product of claim 14, wherein the instructions, when executed by the at least one processor, further cause the at least one processor to identify a fault in the execution of the encryption algorithm based on a determination that the Hamming distance does not equal one.

### Claim 20 (depends on 14)

The computer program product of claim 14, wherein the encryption algorithm comprises an Advanced Encryption Standard (AES) counter cipher-block-chaining message authentication code (CBC-MAC) (AES-CCM) algorithm.
