International Association for Cryptologic Research

International Association
for Cryptologic Research

Transactions on Cryptographic Hardware and Embedded Systems, Volume 2022

Multi-moduli NTTs for Saber on Cortex-M3 and Cortex-M4


README

This repository accompanies the paper Multi-moduli NTTs for Saber on Cortex-M3 and Cortex-M4 available at https://tches.iacr.org/index.php/TCHES/article/view/9292/8858.

Authors:
- Amin Abdulrahman amin.abdulrahman@rub.de
- Jiun-Peng Chen jpchen@citi.sinica.edu.tw
- Yu-Jia Chen yujia@email.ikv- tech.com.tw
- Vincent Hwang vincentvbh7@gmail.com
- Matthias J. Kannwischer <matthias@kannwischer.eu>
- Bo-Yin Yang <by@crypto.tw>

In this repository, we provide code for unmasked Saber on Cortex-M3 and Cortex-M4 and masked Saber on Cortex-M4. Please go to libopencm3, and type make -j4 first.
If you acquire this package by downloading the artifact, then this package contains all files required.
If you are github user, please clone with

git clone --recursive https://github.com/multi-moduli-ntt-saber/multi-moduli-ntt-saber.git

Our contribution is listed as follows.

Additionally, we also provide C functions that are used for developing the assembly code and generating the tables.

Structure of this repository

Requirements

libopencm3

The libopencm3 in this repository is the commit 6763681c260cf280487d70ca0d1996a8b79fff30 of https://github.com/libopencm3/libopencm3.

License

Several masked non-linear functions for masked Saber in the folder masked are covered by MIT license by https://github.com/KULeuven-COSIC/SABER-masking. The MIT license is added at the beginning of the files. libopencm3 is licensed under GPL version 3, see https://github.com/libopencm3/libopencm3.

All remaining code is covered by CC0.