Come and join the FAEST

FAEST is a digital signature algorithm designed to be secure against quantum computers. The security of FAEST is based on standard cryptographic hashes and ciphers, specifically SHA3 and AES, which are believed to remain secure against quantum adversaries.

Design

In FAEST, the secret signing key is an AES key, while the public verification key is a plaintext-ciphertext pair, obtained by encrypting a random message under the signing key. A signature consists of a non-interactive zero-knowledge proof of knowledge of an AES key which maps the message to the ciphertext. This follows the design principle of the Picnic signature scheme, except using the well-analyzed AES cipher as a one-way function instead of LowMC. FAEST also uses a new zero-knowledge proof technique called VOLE-in-the-head, which improves upon the established MPC-in-the-head paradigm.

Variants

There are several parameters controlling the instantiation of FAEST, giving differing tradoffs between security, speed, and compactness. First there’s the security parameter, which determines the overall security level of the scheme, and also affects performance. FAEST offers 3 different security levels, corresponding roughly to AES-128, AES-192 or AES-256.

Second, we have an Even-Mansour variant, where a block cipher is used as an ideal permutation by publishing its key, run on a secret input. This simplifies proving the key schedule in zero-knowledge, since it is public, but when the security parameter is 192 or 256 it requires using Rijndael with larger block sizes, as only the 128-bit block size was standardized as AES.

Third, our zero-knoweldge proof admits a communication–computation tradeoff, since it is built using SoftSpokenVOLE. This is controlled by a parameter 𝜏, with communication being roughly proportional to 𝜏. FAEST has two settings for 𝜏 for each security level: a “slow and short” setting, and a “fast but long” setting.

Performance

For 128-bit security, our optimized implementation of FAEST can sign or verify in 0.9 milliseconds (for signatures of size 6.5 kilobytes) or 8.1 milliseconds (for signatures of size 5 kilobytes). When using AES in Even–Mansour mode, signature size can be further reduced to 4.6 kilobytes. Here are the benchmarks for our AVX2 implementation.

Scheme
Runtimes in milliseconds Sizes in bytes
KeyGen Sign Verify sk pk sig
FAEST-128s 0.000641 8.096220 8.096920 32 32 5006
FAEST-128f 0.000638 0.873933 0.868901 32 32 6336
FAEST-192s 0.002215 19.177500 19.310600 56 64 12744
FAEST-192f 0.002223 1.957010 1.961630 56 64 16792
FAEST-256s 0.003340 26.651500 26.763300 64 64 22100
FAEST-256f 0.003342 3.103970 3.103690 64 64 28400
FAEST-EM-128s 0.000535 8.085880 8.046230 32 32 4566
FAEST-EM-128f 0.000530 0.854931 0.856541 32 32 5696
FAEST-EM-192s 0.001225 18.460400 18.519800 48 48 10824
FAEST-EM-192f 0.001218 1.869360 1.868780 48 48 13912
FAEST-EM-256s 0.002581 25.645900 25.871500 64 64 20956
FAEST-EM-256f 0.002567 3.035020 3.028910 64 64 26736

Contact

If you want to contact us, please send an e-mail to team@faest.info