Falcon is a Post Quantum Digital Signature Scheme that has been standardized by NIST. This repository is based on the Round 3 submission of Falcon. New functions have been added to work with the Doge Protocol Blockchain.
SHA256: fd58f0454f6bfb4713734e60b2d2d75d96fbae62d5180fceeef1039df5362f44
Two new functions, crypto_sign_signature_with_key
and crypto_sign_verify
functions
have been added in the reference implementation for falcon512
.
In subsequent iterations, these changes will be removed in favor of maintaining
all changes outside of the core cryptography libraries.
These changes have been primarily added for generating WebAssemblies for use in Browser Extensions.
Each implementation under Reference_Implementation
and
Optimized_Implementation
has its own Makefile; when used, it compiles
the code along with the test vector generator in KAT/generator/
. The
resulting binary (created in a subdirectory called build
), when
executed, produced the .req and .rsp files, which should be identical
to the ones provided in KAT/
.
The *cxm4 implementations are for the ARM Cortex M4, a CPU normally
found in microcontrollers. Cross-compilation is normally used for such
implementations. The Makefiles invoke the compiler under the name
arm-linux-gcc
and expect that compiler to come with a minimal but
functional libc; moreover, the use of inline assembly follows the syntax
extensions supported by GCC and Clang. The Buildroot project can be used to obtain an appropriate
cross-compilation toolchain. The resulting binary can be executed under
emulation with QEMU.
All other implementations assume a native C compiler which is invoked with the command name 'c99' and flags '-W -Wall -O2'.
The implementation in Extra/c/
has its own Makefile; it compiles into
two command-line tools, test_falcon
and speed
. test_falcon
runs
some self-tests. speed
runs some benchmarks.
Thank you for considering to help out with the source code!
- Please reach out in our Discord Server for any questions.
- Pull requests need to be based on and opened against the
main
branch.
This Falcon implementation is provided under the MIT license, whose text is included at the start of every source file.