## 3 System Model
\begin{table}
\begin{tabular}{c c c c} \hline
**Approach** & **Description** & **Pros** & **Cons** \\ \hline Message-digest/Hash-based [13; 14] & \begin{tabular}{c} Software package is hashed, and result is compared with a trusted known-good value. \\ \end{tabular} & \begin{tabular}{c} Simple to implement. \\ One-way only. No security \\ keys used. Can be software or \\ hardware implemented. \\ Memory efficient (typically \\ 256 bits). \\ \end{tabular} & \begin{tabular}{c} Inefficient when there are \\ many collisions. Known-good \\ value must be \\ \end{tabular} \\ \hline Symmetric-based [15] & \begin{tabular}{c} Software package is encrypted \\ with a common key and then \\ decrypted at the receiver side \\ with the same key. Another \\ approach is to generate a \\ message authentication code \\ (MAC) using the common key \\ and verify the same MAC \\ code at reception. \\ \end{tabular} & \begin{tabular}{c} Fast cryptography. Easily \\ implemented (AES \\ accelerators are widely \\ available in microcontrollers.) \\ Small key lengths. Example of \\ symmetric keys used: AES \\ (128/192/256 bits), \\ CHCHA20 (128+ bits). \\ Modes of sharing: \\ Diffie-Hellman and physically. \\ \end{tabular} & \begin{tabular}{c} Key security (key must be \\ read/write protected). \\ Monaging keys is a challenge. \\ Complexity consistent \\ regardless of number of users \\ or frequency of use. \\ \end{tabular} \\ \hline Asymmetric-based [16] & \begin{tabular}{c} Software package is encrypted \\ with a private key and then \\ decrypted at the receiver side \\ with the corresponding public \\ key. Another approach is to \\ generate a code signature by \\ hashing the software package \\ and then encrypt the hash \\ value using a private key (e.g., \\ RSA 2048, Ed25519). \\ \end{tabular} & \begin{tabular}{c} Key security (key must be \\ read/write protected). Slower \\ cryptography than symmetric \\ schemes. Complex to \\ implement for some \\ algorithms (e.g., ECDSA and \\ EdDSA). Complexity grows \\ with number of users and \\ frequency of use. \\ \end{tabular} \\ \hline Blockchain-based [19; 20] & \begin{tabular}{c} Distributed peer-to-peer \\ database. Data are saved on \\ each node, transactions are \\ saved into blocks. \\ Cryptography is based on \\ hashing and digital signatures \\ (using asymmetric \\ cryptography e.g., ECDSA.) \\ \end{tabular} & \begin{tabular}{c} Immutable (permanent and \\ tamper-proof). Decentralized \\ control. Redundant \\ decentralized copy on every \\ node of the network. \\ Consensus-based, creates trust \\ and integrity in an untrusted \\ environment \\ \end{tabular} & \begin{tabular}{c} New to Automotive. \\ High memory consumption in \\ the ECU. \\ \end{tabular} \\ \hline Secure Software Repository & \begin{tabular}{c} Framework introduced to \\ allow repositories to build \\ different security models that \\ provide varying degrees of \\ security and usability \\ (e.g., Uptane framework). \\ \end{tabular} & \begin{tabular}{c} Separation of trust. Explicit \\ and implicit revocation of \\ keys. Flexible implementation \\ (full or partial verification, \\ asymmetric or symmetric \\ keys, encrypted or \\ unencrypted update image, \\ online or offline keys. \\ \end{tabular} & \
\begin{tabular}{c} Separation of trust. Explicit \\ and implicit revocation of \\ keys. Flexible implementation \\ (full or partial verification, \\ asymmetric or symmetric \\ keys, encrypted or \\ unencrypted update image, \\ online or offline keys. \\ \end{tabular} &
\begin{tabular}{c} OEM has to setup and \\ maintain the repositories. \\ \end{tabular} \\ \hline \end{tabular}
\end{table} 
Table 1: Common software OTA update approaches used in automotive. ware image must have a unique identifier linked to an ECU identifier that specifies the ECU installing the image. Our scheme extends the OemR with the capability of creating and maintaining the Merkle trees. In our study, we focus on a scenario in which software clusters reside in the same ECU. Thus, the OemR has to create a Merkle tree for each ECU in the vehicle.