US 11,836,255 B1
Microcontroller unit (MCU) secure boot
Andrei Goverdovskii, San Mateo, CA (US); and Nick Pelis, San Francisco, CA (US)
Assigned to Verkada Inc., San Mateo, CA (US)
Filed by Verkada Inc., San Mateo, CA (US)
Filed on Mar. 28, 2023, as Appl. No. 18/191,748.
Int. Cl. G06F 21/57 (2013.01); H04L 9/30 (2006.01); H04L 9/08 (2006.01); H04L 9/32 (2006.01)
CPC G06F 21/575 (2013.01) [G06F 21/572 (2013.01); H04L 9/0825 (2013.01); H04L 9/3073 (2013.01); H04L 9/3247 (2013.01); G06F 2221/033 (2013.01)] 20 Claims
OG exemplary drawing
 
13. A non-transitory processor-readable medium storing code representing processor-executable instructions to cause the one or more processors to:
receive, at a bootloader of a system on chip (SoC), an encrypted symmetric encryption key and an encrypted signed firmware image,
the encrypted symmetric encryption key being a symmetric encryption key,
the encrypted signed firmware image (1) being a signed firmware image encrypted with the symmetric encryption key and (2) including a first encryption public key and a first encryption private key;
the signed firmware image being a firmware image digitally signed with a second encryption private key;
decrypt the encrypted symmetric encryption key to produce the symmetric encryption key using a third encryption private key that is included in an asymmetric key pair that includes the second encryption public key;
decrypt the encrypted signed firmware image to produce the signed firmware image using the symmetric encryption key;
verify a digital signature of the signed firmware image using a third encryption public key that is included in an asymmetric key pair that includes the second encryption private key; and
execute, after verifying the signed firmware image, the firmware image.