RUST-Encoded Stream Ciphers on a RISC-V Parallel Ultra-Low-Power Processor (Invited Paper)

Authors Francesco Barchi , Giacomo Pasini , Emanuele Parisi , Giuseppe Tagliavini , Andrea Bartolini , Andrea Acquaviva

Thumbnail PDF


  • Filesize: 0.56 MB
  • 12 pages

Document Identifiers

Author Details

Francesco Barchi
  • University of Bologna, Italy
Giacomo Pasini
  • University of Bologna, Italy
Emanuele Parisi
  • University of Bologna, Italy
Giuseppe Tagliavini
  • University of Bologna, Italy
Andrea Bartolini
  • University of Bologna, Italy
Andrea Acquaviva
  • University of Bologna, Italy

Cite AsGet BibTex

Francesco Barchi, Giacomo Pasini, Emanuele Parisi, Giuseppe Tagliavini, Andrea Bartolini, and Andrea Acquaviva. RUST-Encoded Stream Ciphers on a RISC-V Parallel Ultra-Low-Power Processor (Invited Paper). In 14th Workshop on Parallel Programming and Run-Time Management Techniques for Many-Core Architectures and 12th Workshop on Design Tools and Architectures for Multicore Embedded Computing Platforms (PARMA-DITAM 2023). Open Access Series in Informatics (OASIcs), Volume 107, pp. 3:1-3:12, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)


Nowadays, the development of security applications is a relevant topic in the Internet of Things (IoT) and cyber-physical systems (CPS) fields. Different embedded architectures have been adopted in these areas, but the RISC-V parallel ultra-low-power (PULP) architecture stands out as a particularly efficient system. However, it has never been proposed to enable cryptography. In the context of video stream security, stream ciphers enable an efficient solution to ensure data privacy, and the exploitation of the PULP multi-core accelerator cluster paves the way to an efficient implementation of these ciphers. In this paper, we exploit the capability of the PULP architecture coupled with the code safety provided by the RUST programming language to design and implement an efficient stream encryption algorithm. We present a wrapper system between the development libraries of a PULP platform enabling the secure execution of a verified RUST-written implementation of ChaCha20 and AES-CTR, targeting a microdrones based video surveillance system. Experimental tests have resulted in an encryption efficiency of ChaCha20 of 2.3 cycles per Byte (cB), placing the resulting implementation at the state-of-the-art, in direct competition with higher-class architectures like Apple M1 (2.0 cB).

Subject Classification

ACM Subject Classification
  • Hardware → Emerging languages and compilers
  • Computer systems organization → Multicore architectures
  • Computer systems organization → Embedded software
  • Software and its engineering → Embedded software
  • Parallel Low-Power Embedded Systems
  • Rust
  • RISC-V
  • Stream Cipher


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. URL:
  2. URL:
  3. URL:
  4. URL:
  5. The Transport Layer Security (TLS) Protocol Version 1.3. URL:
  6. Alexandre Adomnicai and Thomas Peyrin. Fixslicing aes-like ciphers: New bitsliced aes speed records on arm-cortex m and risc-v. Cryptology ePrint Archive, 2020. Google Scholar
  7. Francesco Conti, Robert Schilling, Pasquale Davide Schiavone, Antonio Pullini, Davide Rossi, Frank Kağan Gürkaynak, Michael Muehlberghuber, Michael Gautschi, Igor Loi, Germain Haugou, et al. An IoT endpoint system-on-chip for secure and energy-efficient near-sensor analytics. IEEE Transactions on Circuits and Systems I: Regular Papers, 64(9):2481-2494, 2017. Google Scholar
  8. Michael Gautschi, Pasquale Davide Schiavone, Andreas Traber, Igor Loi, Antonio Pullini, Davide Rossi, Eric Flamand, Frank K Gürkaynak, and Luca Benini. Near-threshold RISC-V core with DSP extensions for scalable IoT endpoint devices. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2017. Google Scholar
  9. Wojciech Giernacki, Mateusz Skwierczyński, Wojciech Witwicki, Paweł Wroński, and Piotr Kozierski. Crazyflie 2.0 quadrotor as a platform for research and education in robotics and control engineering. In 2017 22nd International Conference on Methods and Models in Automation and Robotics (MMAR), pages 37-42. IEEE, 2017. Google Scholar
  10. Ralf Jung, Jacques-Henri Jourdan, Robbert Krebbers, and Derek Dreyer. RustBelt: Securing the foundations of the Rust programming language. Proceedings of the ACM on Programming Languages, 2(POPL):1-34, 2017. Google Scholar
  11. Nicholas D Matsakis and Felix S Klock. The rust language. ACM SIGAda Ada Letters, 34(3):103-104, 2014. Google Scholar
  12. Mitsuru Matsui and Junko Nakajima. On the power of bitslice implementation on intel core2 processor. In International Workshop on Cryptographic Hardware and Embedded Systems, pages 121-134. Springer, 2007. Google Scholar
  13. Yoav Nir and Adam Langley. ChaCha20 and Poly1305 for IETF Protocols. Rfc 1654, RFC Editor, June 2018. URL:
  14. Daniele Palossi, Francesco Conti, and Luca Benini. An open source and open hardware deep learning-powered visual navigation engine for autonomous nano-UAVs. In 2019 15th International Conference on Distributed Computing in Sensor Systems (DCOSS), pages 604-611. IEEE, 2019. Google Scholar
  15. D. Rossi, F. Conti, A. Marongiu, A. Pullini, I. Loi, M. Gautschi, G. Tagliavini, A. Capotondi, P. Flatresse, and L. Benini. PULP: A parallel ultra low power platform for next generation IoT applications. In 2015 IEEE Hot Chips 27 Symposium (HCS), 2015. Google Scholar
  16. Andreas Traber, Florian Zaruba, Sven Stucki, Antonio Pullini, Germain Haugou, Eric Flamand, Frank K Gurkaynak, and Luca Benini. PULPino: A small single-core RISC-V SoC. In 3rd RISCV Workshop, 2016. Google Scholar