Specification of Secure Hardware Extensions
AUTOSAR FO R20-11
4.5.1.2 Seed generation trough a true random number gen-
erator (TRNG) . . . . . . . . . . . . . . . . . . . . . 25
4.5.2 Random generation . . . . . . . . . . . . . . . . . . . . . . . 25
4.5.3 Extending the seed . . . . . . . . . . . . . . . . . . . . . . . 26
4.6 Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.7 User-accessible Functions . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7.1 Encryption: CMD_ENC_ECB . . . . . . . . . . . . . . . . . . 30
4.7.2 Encryption: CMD_ENC_CBC . . . . . . . . . . . . . . . . . . 30
4.7.3 Decryption: CMD_DEC_ECB . . . . . . . . . . . . . . . . . . 30
4.7.4 Decryption: CMD_DEC_CBC . . . . . . . . . . . . . . . . . . 31
4.7.5 MAC generation: CMD_GENERATE_MAC . . . . . . . . . . 31
4.7.6 MAC verification: CMD_VERIFY_MAC . . . . . . . . . . . . 32
4.7.7 Secure key update: CMD_LOAD_KEY . . . . . . . . . . . . 33
4.7.8 Plain key update: CMD_LOAD_PLAIN_KEY . . . . . . . . . 33
4.7.9 Export key: CMD_EXPORT_RAM_KEY . . . . . . . . . . . . 34
4.7.10 Initialize random number generator: CMD_INIT_RNG . . . . 35
4.7.11 Extend the PRNG seed: CMD_EXTEND_SEED . . . . . . . 35
4.7.12 Generate random number : CMD_RND . . . . . . . . . . . . 36
4.7.13 Bootloader verification (secure booting):
CMD_SECURE_BOOT . . . . . . . . . . . . . . . . . . . . . 36
4.7.14 Impose sanctions during invalid boot: CMD_BOOT_FAILURE 37
4.7.15 Finish boot verification: CMD_BOOT_OK . . . . . . . . . . . 37
4.7.16 Read status of SHE: CMD_GET_STATUS . . . . . . . . . . . 38
4.7.17 Get identity: CMD_GET_ID . . . . . . . . . . . . . . . . . . . 38
4.7.18 Cancel function: CMD_CANCEL . . . . . . . . . . . . . . . . 39
4.7.19 Debugger activation: CMD_DEBUG . . . . . . . . . . . . . . 39
4.8 Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.8.1 ERC_NO_ERROR . . . . . . . . . . . . . . . . . . . . . . . . 40
4.8.2 ERC_SEQUENCE_ERROR . . . . . . . . . . . . . . . . . . 40
4.8.3 ERC_KEY_NOT_AVAILABLE . . . . . . . . . . . . . . . . . 40
4.8.4 ERC_KEY_INVALID . . . . . . . . . . . . . . . . . . . . . . . 40
4.8.5 ERC_KEY_EMPTY . . . . . . . . . . . . . . . . . . . . . . . 40
4.8.6 ERC_NO_SECURE_BOOT . . . . . . . . . . . . . . . . . . . 40
4.8.7 ERC_KEY_WRITE_PROTECTED . . . . . . . . . . . . . . . 41
4.8.8 ERC_KEY_UPDATE_ERROR . . . . . . . . . . . . . . . . . 41
4.8.9 ERC_RNG_SEED . . . . . . . . . . . . . . . . . . . . . . . . 41
4.8.10 ERC_NO_DEBUGGING . . . . . . . . . . . . . . . . . . . . 41
4.8.11 ERC_BUSY . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.8.12 ERC_MEMORY_FAILURE . . . . . . . . . . . . . . . . . . . 41
4.8.13 ERC_GENERAL_ERROR . . . . . . . . . . . . . . . . . . . 41
4.9 Memory update protocol . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.9.1 Description of the memory update protocol . . . . . . . . . . 42
4.9.2 Description of the update verification message generation . 45
4.10 Secure booting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.10.1 Measurement before application start-up . . . . . . . . . . . 48
4.10.1.1 Exemplary implementation: extension of the boot code 48
4 of 67 Document ID 948: AUTOSAR_TR_SecureHardwareExtensions