# Computational Load Analysis of a Galileo OSNMA-Read Receiver for ARM-Based Embedded Platforms +
## 4 Software Profiling Analysis of the OSNMA Functions
### Analysis Results
\begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline  & \multicolumn{3}{c}{**Platform 2**} & \multicolumn{3}{c}{**Platform 3**} & \multicolumn{3}{c}{**Platform 4**} \\ \cline{2-10}  & \(avr\) & \(\sigma\) & \(avr\) & \(\sigma\) & \(avr\) & \(\sigma\) \\ \hline TESLA key verification & 4.54 & 25.00 & 4.36 & 4.50 & 4.43 & 3.50 \\ MAC verification & 8.71 & 11.62 & 5.82 & 29.48 & 6.03 & 4.33 \\ MACSCQ verification & 7.63 & 28.10 & 7.01 & 3.33 & 7.01 & 5.11 \\ Digital Signature verification & 21.02 & 4.40 & 13.78 & 7.70 & 10.51 & 12.09 \\ Public key verification & 9.22 & 4.37 & 5.20 & 6.25 & 4.09 & 12.87 \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Execution time degradation factors in terms of mean value \(avr\) and standard deviation \(\sigma\) on the three embedded boards, i.e., platforms 2, 3 and 4, with respect to the standard PC, i.e., platform 1, for all the OSNMA functions reported in Table 4.  
inaccuracies. This can be explained considering the different operating systems (OSs), i.e., Raspbian and Ubuntu Mate, featured respectively by Raspberry Pi4 and ODROID-C4. Furthermore, for both platforms better mean execution time performance with respect to ODROID-X2 can be appreciated, especially for high load functions. The newer platforms show similar performance for all the functions, excluding the digital signature verification, which exhibits improvements of 34% and 50% for platforms 3 and 4 respectively. Being the heaviest function, the digital signature verification deserves some more investigations, particularly focusing on the embedded platforms, whereas the standard PC performance does not result to be critical. In this regard, Table 6 reports the detailed profiling analysis of the main subroutines, including the digital envelope (EVP) application programming interface (API), the verified context routines provided by the Open SSL library and an encoding function to make the public key compliant with the input format required by the EVP functions. In particular, verifying a message requires a three-stage process: initialize the verification context with a message digest/hash function and public key (EVP Verify Init), add and hash the message data (EVP Verify Update) and finally, verify the data against the received signature (EVP Verify Final). As can be observed in Table 6, the main contribution is given by EVP Verify Final, meaning that the whole computational complexity resides in the low-level EVP API implementation. This is true not only for the ODROID-X2 platform, as already shown in [16], but also for both the newer boards, reported for completeness. Although somehow expected, since all processors belong to same family, i.e., ARM Cortex-A, such results confirm that the lower level implementation of EVP library APIs and their behavior in reaction to calls are the same for all the considered boards. This means that the developer has no chance to further optimize this function, other than implementing it from scratch. This last approach would be time consuming and not convenient from a security point of view; the usage of a different cryptographic library will be probably more affordable. Table 7 completes the profiling analysis of the digital signature verification for all the four sets of parameters values S1 to S4 indicated in Table 3 and the newer embedded platforms. Results for the ECDSA-P224/SHA-224, already shown in Tables 4 and 6, are also reported to ease the comparison. The mean execution time increases for higher EC orders, except for the P256, which shows the best performance. This could be due to the fact that the NIST P-256, also known as prime256v1, is the most preferred elliptic curve used nowadays on the Internet and the default one for OpenSSL, so that it was likely subject to a specific low-level optimization [36]. Figure 5 summarizes the percentage improvement \(I\) for the newer boards with respect to ODROID-X2.