IP Library › Granted Patent US 12,250,308
Granted Patent B2
US 12,250,308 · App. 17/448,277 · Granted Mar 11, 2025

Method and apparatus for managing cryptographic keys

Inventors: Diego Pala (Bochum, DE); Teona Tatovic (Bochum, DE); Lukas Riemenschneider (Shanghai, CN)
Assignee: ROBERT BOSCH GMBH
H04L9/0894H04L2209/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,250,308
App. No.
17/448,277
Granted
Mar 11, 2025
Kind
B2
Abstract

A method for managing cryptographic keys for a control device, in particular for a motor vehicle. The method includes the following steps: associating a state with at least one of the cryptographic keys; using the at least one cryptographic key based on the state.

Claims (75)

1. A method for managing cryptographic keys, comprising the following steps:

associating a respective state with each cryptographic key of at least one of the cryptographic keys;

using the at least one cryptographic key based on the state;

wherein, in the associating step, a state machine is used to associate the respective state with each cryptographic key of the at least one of the cryptographic keys, wherein states of the state machine include: a) unloaded, the cryptographic key is not located in a volatile memory; b) loaded and in use, the cryptographic key is located in the volatile memory and currently being used; c) loaded and not in use, the cryptographic key is located in the volatile memory and not currently being used; d) loading, a loading operation of the cryptographic key from a nonvolatile memory into the volatile memory being not already complete; e) unloading, an unloading operation of the cryptographic key from the volatile memory not already complete; f) waiting for unoccupied memory space in the volatile memory;

wherein the respective state of each cryptographic key of the at least one of the cryptographic keys corresponds to one of the states of the state machine; and

wherein the method further comprises:

ascertaining a first information item that characterizes whether a specific cryptographic key is a key to be stored in exclusively volatile fashion;

executing a use of the specific cryptographic key based on the first information item including refraining from nonvolatile storage of the specific cryptographic key.

2. The method as recited in claim 1 , wherein the managing of the cryptographic keys is for a control device of a motor vehicle.

3. A method for managing cryptographic keys, the method comprising the following steps:

associating a respective state with each cryptographic key of at least one of the cryptographic keys;

using the at least one cryptographic key based on the state;

wherein, in the associating step, a state machine is used to associate the respective state with each cryptographic key of the at least one of the cryptographic keys, wherein states of the state machine include: a) unloaded, the cryptographic key is not located in a volatile memory; b) loaded and in use, the cryptographic key is located in the volatile memory and currently being used; c) loaded and not in use, the cryptographic key is located in the volatile memory and not currently being used; d) loading, a loading operation of the cryptographic key from a nonvolatile memory into the volatile memory being not already complete; e) unloading, an unloading operation of the cryptographic key from the volatile memory not already complete; f) waiting for unoccupied memory space in the volatile memory;

wherein the respective state of each cryptographic key of the at least one of the cryptographic keys corresponds to one of the states of the state machine; and

wherein the method further comprises:

ascertaining a first variable that characterizes an unoccupied memory area in the volatile memory.

4. The method as recited in claim 3 , wherein: a) the at least one cryptographic key is storable and/or stored at least temporarily in a volatile memory; and/or b) the at least one cryptographic key is storable and/or stored at least temporarily in a nonvolatile memory.

5. The method as recited in claim 3 , further comprising:

clearing memory in the volatile memory in such a way that at least one further cryptographic key can be loaded into the volatile memory, the clearing being executed based on at least one predefinable algorithm; the at least one algorithm being selectable during and/or before execution of the method.

6. The method as recited in claim 5 , wherein the clearing includes:

ascertaining at least one cryptographic key that is stored in the volatile memory and is not currently being used; and

releasing a memory area occupied by the cryptographic key currently not being used of the volatile memory for overwriting with at least one further cryptographic key.

7. The method as recited in claim 3 , further comprising:

leaving the at least one cryptographic key in a volatile memory for at least one predefinable time period.

8. An apparatus configured to manage cryptographic keys, the apparatus comprising:

a computing device including a microprocessor and/or a microcontroller and/or an application-specific integrated circuit and/or a system on chip and/or a field programmable gate array and/or a hardware circuit, the computing device configured to:

associate a respective state with each cryptographic key of at least one of the cryptographic keys;

use the at least one cryptographic key based on the state;

wherein, the computing device is configured to associate the respective state with each of the at least one of the cryptographic keys using a state machine, wherein states of the state machine include: a) unloaded, the cryptographic key is not located in a volatile memory; b) loaded and in use, the cryptographic key is located in the volatile memory and currently being used; c) loaded and not in use, the cryptographic key is located in the volatile memory and not currently being used; d) loading, a loading operation of the cryptographic key from a nonvolatile memory into the volatile memory being not already complete; e) unloading, an unloading operation of the cryptographic key from the volatile memory not already complete; f) waiting for unoccupied memory space in the volatile memory;

wherein the respective state of each cryptographic key of the at least one cryptographic keys corresponds to one of the states of the state; and

wherein the computing device is further configured to:

receive a request with regard to a cryptographic key, the request being to load the cryptographic key into the volatile memory; and

load the cryptographic key into the volatile memory;

ascertain which of a plurality of cryptographic keys stored in the volatile memory has not been used for a longest time relative to the others of the plurality of cryptographic keys; and

release a memory area occupied by the ascertained cryptographic key, the cryptographic key requested to be loaded being loaded into the released memory area.

9. A non-transitory computer-readable storage medium on which are stored instructions for managing cryptographic keys, the instructions, when executed by a computer, causing the computer to perform the following steps:

associating a state with at least one of the cryptographic keys;

using the at least one cryptographic key based on the state;

wherein, in the associating step, a state machine is used to associate the respective state with each cryptographic key of the at least one of the cryptographic keys, wherein states of the state machine include: a) unloaded, the cryptographic key is not located in a volatile memory; b) loaded and in use, the cryptographic key is located in the volatile memory and currently being used; c) loaded and not in use, the cryptographic key is located in the volatile memory and not currently being used; d) loading, a loading operation of the cryptographic key from a nonvolatile memory into the volatile memory being not already complete; e) unloading, an unloading operation of the cryptographic key from the volatile memory not already complete; f) waiting for unoccupied memory space in the volatile memory; and

wherein the respective state of each cryptographic key of the at least one of the cryptographic keys corresponds to one of the states of the state machine;

wherein the instructions, when executed by the computer, further causing the computer to perform:

receiving a request with regard to a cryptographic key, the request being to load the cryptographic key into the volatile memory; and

loading the cryptographic key into the volatile memory;

ascertaining which of a plurality of cryptographic keys stored in the volatile memory has been used least often relative to the others of the plurality of cryptographic keys; and

releasing a memory area occupied by the ascertained cryptographic key. the cryptographic key requested to be loaded being loaded into the released memory area.

10. A method for managing cryptographic keys, the method comprising the following steps:

associating a respective state with each cryptographic key of at least one of the cryptographic keys;

using the at least one cryptographic key based on the state;

wherein, in the associating step, a state machine is used to associate the respective state with each cryptographic key of the at least one of the cryptographic keys, wherein states of the state machine include: a) unloaded, the cryptographic key is not located in a volatile memory; b) loaded and in use, the cryptographic key is located in the volatile memory and currently being used; c) loaded and not in use, the cryptographic key is located in the volatile memory and not currently being used; d) loading, a loading operation of the cryptographic key from a nonvolatile memory into the volatile memory being not already complete; e) unloading, an unloading operation of the cryptographic key from the volatile memory not already complete; f) waiting for unoccupied memory space in the volatile memory;

wherein the respective state of each cryptographic key of the at least one of the cryptographic keys corresponds to one of the states of the state machine; and

wherein the method is used for at least one of the following:

a) managing one or several cryptographic keys for a control device for a motor vehicle;

b) utilizing one or several cryptographic keys for a control device for a motor vehicle based on a state of at least one of the cryptographic keys and/or based on a state of at least one volatile memory;

c) leaving at least one cryptographic key in the volatile memory;

d) using or reusing at least one cryptographic key that is stored in the volatile memory.

11. A method for managing cryptographic keys, comprising the following steps:

associating a respective state with each cryptographic key of at least one of the cryptographic keys;

using the at least one cryptographic key based on the state;

wherein, in the associating step, a state machine is used to associate the respective state with each cryptographic key of the at least one of the cryptographic keys, wherein states of the state machine include: a) unloaded, the cryptographic key is not located in a volatile memory; b) loaded and in use, the cryptographic key is located in the volatile memory and currently being used; c) loaded and not in use, the cryptographic key is located in the volatile memory and not currently being used; d) loading, a loading operation of the cryptographic key from a nonvolatile memory into the volatile memory being not already complete; e) unloading, an unloading operation of the cryptographic key from the volatile memory not already complete; f) waiting for unoccupied memory space in the volatile memory;

wherein the respective state of each cryptographic key of the at least one of the cryptographic keys corresponds to one of the states of the state machine; and

wherein the method further comprises:

receiving a request with regard to a cryptographic key, the request being to load the cryptographic key into the volatile memory; and

loading the cryptographic key into the volatile memory;

ascertaining which of a plurality of cryptographic keys stored in the volatile memory has not been used for a longest time relative to the others of the plurality of cryptographic keys; and

releasing a memory area occupied by the ascertained cryptographic key, the cryptographic key requested to be loaded being loaded into the released memory area.

12. A method for managing cryptographic keys, comprising the following steps:

associating a respective state with each cryptographic key of at least one of the cryptographic keys;

using the at least one cryptographic key based on the state;

wherein, in the associating step, a state machine is used to associate the respective state with each cryptographic key of the at least one of the cryptographic keys, wherein states of the state machine include: a) unloaded, the cryptographic key is not located in a volatile memory; b) loaded and in use, the cryptographic key is located in the volatile memory and currently being used; c) loaded and not in use, the cryptographic key is located in the volatile memory and not currently being used; d) loading, a loading operation of the cryptographic key from a nonvolatile memory into the volatile memory being not already complete; e) unloading, an unloading operation of the cryptographic key from the volatile memory not already complete; f) waiting for unoccupied memory space in the volatile memory;

wherein the respective state of each cryptographic key of the at least one of the cryptographic keys corresponds to one of the states of the state machine; and

wherein the method further comprises:

receiving a request with regard to a cryptographic key, the request being to load the cryptographic key into the volatile memory; and

loading the cryptographic key into the volatile memory;

ascertaining which of a plurality of cryptographic keys stored in the volatile memory has been used least often relative to the others of the plurality of cryptographic keys; and

releasing a memory area occupied by the ascertained cryptographic key, the cryptographic key requested to be loaded being loaded into the released memory area.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2022
From: PALA, DIEGO; TATOVIC, TEONA; RIEMENSCHNEIDER, LUKAS
To: ROBERT BOSCH GMBH
Reel/Frame 059266/0936 →
Priority Claims (1)
DE 102020212772.7 · Oct 9, 2020 · national
Continuity (1)
Related Publication 20220116213A1 · Apr 14, 2022
References Cited (33)
US 7343496B1 · Hsiang · 2008 [cited by examiner]
US 7773754B2 · Buer · 2010 [cited by examiner]
US 8340299B2 · Buer · 2012 [cited by examiner]
US 8484486B2 · Deierling · 2013 [cited by examiner]
US 9418026B2 · Hadley · 2016 [cited by examiner]
US 10785024B2 · Jaquette · 2020 [cited by examiner]
US 11016926B1 · Nasser · 2021 [cited by examiner]
US 20060115085A1 · Iwamura · 2006 [cited by examiner]
US 20070237325A1 · Gershowitz · 2007 [cited by examiner]
US 20160099806A1 · Racklyeft · 2016 [cited by examiner]
US 20160315766A1 · Ujiie · 2016 [cited by examiner]
US 20170060559A1 · Ye · 2017 [cited by examiner]
US 20170324558A1 · Takemori · 2017 [cited by examiner]
US 20170366342A1 · Gehrmann · 2017 [cited by examiner]
US 20180183605A1 · Kawabata · 2018 [cited by examiner]
US 20180227120A1 · Takemori · 2018 [cited by examiner]
US 20190007217A1 · Takemori · 2019 [cited by examiner]
US 20190068361A1 · Ye · 2019 [cited by examiner]
US 20190238331A1 · Chandra · 2019 [cited by examiner]
US 20190245689A1 · Eckel · 2019 [cited by examiner]
US 20190245691A1 · Takemori · 2019 [cited by examiner]
US 20190261176A1 · Yamazaki · 2019 [cited by examiner]
US 20190265965A1 · Acharya · 2019 [cited by examiner]
US 20190394035A1 · Jaquette · 2019 [cited by examiner]
US 20200014544A1 · Sela · 2020 [cited by examiner]
US 20200028683A1 · Windle · 2020 [cited by examiner]
US 20200059359A1 · Sugano · 2020 [cited by examiner]
US 20200084031A1 · Stählin · 2020 [cited by examiner]
US 20200211301A1 · Zhang · 2020 [cited by examiner]
US 20200213287A1 · Zhang · 2020 [cited by examiner]
US 20200264864A1 · Yang · 2020 [cited by examiner]
US 20210019450A1 · Li · 2021 [cited by examiner]
Kurachi et al.; “Asymmetric key-based secure ECU replacement without PKI”, 2019, IEEE 19th International Symposium on High Assurance Systems Engineering (HASE), pp. 234-240. (Year: 2019). [cited by examiner]