params and times
Parameters:
Our current parameters are (note that this might change):
We select and implement four parameter sets: For NIST security level 1, we select two parameter sets: MAYO_one
and MAYO_two
, where MAYO_one
has smaller public keys but larger signatures and conversely MAYO_two
has smaller signatures but larger public keys. For NIST security level 3 and NIST security level 5, we select one parameter set each, which we refer to as MAYO_three
and MAYO_five
, respectively. The parameter sets and the corresponding key and signature sizes are displayed below.
Parameter set | MAYO_one |
MAYO_two |
MAYO_three |
MAYO_five |
---|---|---|---|---|
security level | 1 | 1 | 3 | 5 |
secret key size | 24 B | 24 B | 32 B | 40 B |
public key size | 1168 B | 5488 B | 2656 B | 5008 B |
signature size | 321 B | 180 B | 577 B | 838 B |
Cycle counts for our reference implementation (using AES-NI, but no AVX2):
Scheme | KeyGen | Sign | Verify |
MAYO_one |
369,358 | 1,507,684 | 285,744 |
MAYO_two |
1,086,330 | 1,897,138 | 168,686 |
MAYO_three |
4,245,918 | 13,684,206 | 1,758,830 |
MAYO_five |
5,928,022 | 18,990,710 | 2,329,306 |
We ran the performance evaluation on an Intel Core i7-9750H CPU (Coffee Lake) with 2.6 GHz on macOS 13.1. The library was compiled with Apple Clang version 14.0.0. Both builds use -O3
compiler optimization level and -march=native
build architecture. Turbo Boost was deactivated to achieve consistent timings.
The table above shows MAYO performance in CPU cycles on an Intel Core i7-9750H CPU (Coffee Lake) with 2.6 GHz. Results are the median of 1000 benchmark runs.