# Efficient Parallel Implementation of CTR Mode of ARX-Based Block Ciphers on ARMv8 Microcontrollers
## 3 Related Works
### Parallel Implementation of CTR Mode of Operation on the NEON Engine
#### 4.2.2 HIGHT-CTR Optimization
(Our Work 1: Proposed parallel implementation, Our Work 2: Proposed CTR mode optimization, #Data parallelism: the number of encryptions performed simultaneously on NEON engine, Cpb: Clock per byte, and Improvement: Improved performance compared to previous work). ## 6 Conclusions

In this article, we have presented parallel implementations of CTR mode using ARX-based block ciphers (LEA, HIGHT, and revised CHAM) for data security on embedded devices using the ARMv8 architecture. For parallel implementation, we have presented data parallelism techniques. In LEA and revised CHAM, we have eliminated the transpose operation required to apply data parallelism techniques, and, in HIGHT, we have proposed an optimized transpose operation. In addition, to process the maximum number of encryption simultaneously, we have presented register scheduling that efficiently uses all vector registers. As a result, 24 encryptions were performed in LEA, revised CHAM-128/128, and revised CHAM-128/256, and 48 encryptions were performed in HIGHT and revised CHAM-64/128. HIGHT and revised CHAM performed more encryption simultaneously than previous work. Through the data parallelism technique and register scheduling, the performance was improved by 3.09%, 5.26%, and 9.52% compared to the previous study in LEA, HIGHT, and revised CHAM, respectively. Most of the studies up to now were optimization of block ciphers. Since massive amounts of data are encrypted, it needs to apply a mode of operation. Among them, the CTR mode is widely used in industrial applications. We applied the proposed parallel technique to CTR mode optimization to efficiently process multiple encryptions. In addition, utilizing the property of the CTR mode, the initial few round operations related to the nonce part were pre-computed. In particular, we optimized one round more than the previous work by changing the position of the nonce part in LEA-CTR. Through proposed optimization techniques, the LEA, HIGHT, and revised CHAM-64/128-CTR modes showed 8.76%, 8.62%, and 15.87% performance improvements, respectively, compared to the previous best results. The proposed CTR mode implementation achieved the faster performance than the previous work and the proposed data parallelism technique. We will study various lightweight cryptography such as SIMECK, SPECK, and SKINNY to apply the proposed parallel implementation of CTR mode in the future. Our work contributes to fast encryption in ARMv8-based IoT devices with the proposed parallel implementations of the CTR mode of ARX-based ciphers. We believe that our software can be a cornerstone for building secure IoT services and applications such as smart city, smart factory, autonomous driving, and so on. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Work** & **Suggested Structure** & **\#Data Parallelism** & **Cpb** & **Improvement** \\ \hline HIGHT-64/128 [10] & ECB mode & 24 & 8.35 & - \\ \hline Revised CHAM-64/128 [10] & ECB mode & 16 & 6.3 & - \\ \hline Revised CHAM-128/128 [10] & ECB mode & 10 & 9.85 & - \\ \hline Revised CHAM-128/256 [10] & ECB mode & 8 & 10.81 & - \\ \hline HIGHT-64/128 (Our Work 1) & ECB mode & 48 & 7.91 & 5.26\% \\ \hline HIGHT-64/128 (Our Work 2) & CTR mode [7] & 48 & 7.63 & 8.62\% \\ \hline Revised CHAM-64/128 (Our Work 1) & ECB mode & 48 & 5.7 & 9.52\% \\ \hline Revised CHAM-128/128 (Our Work 1) & ECB mode & 24 & 9.71 & 1.52\% \\ \hline Revised CHAM-128/256 (Our Work 1) & ECB mode & 24 & 10.38 & 4.02\% \\ \hline Revised CHAM-64/128 (Our Work 2) & CTR mode [6] & 48 & 5.3 & 15.87\% \\ \hline Revised CHAM-128/128 (Our Work 2) & CTR mode [6] & 24 & 9.56 & 2.94\% \\ \hline Revised CHAM-128/256 (Our Work 2) & CTR mode [6] & 24 & 10.23 & 5.36\% \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Running time comparison of HIGHT and revised CHAM implementation in the ARMv8 architecture.