项目简介
本项目运用C语言实现Falcon签名算法,Falcon作为后量子签名算法,已提交给NIST的后量子密码学项目。该算法依托NTRU格结构,采用哈希签名模式与基于傅里叶的采样方法,能高效生成和验证签名,同时生成和使用的签名及公钥相对紧凑。
项目的主要特性和功能
- 支持多种浮点运算模式,可使用C语言的
double
类型进行浮点运算(FALCON_FPNATIVE
),也能采用64位整数和自定义的IEEE - 754浮点运算模拟(FALCON_FPEMU
)。 - 性能优化,启用AVX2指令集(
FALCON_AVX2
)和FMA(融合乘加)指令集(FALCON_FMA
)可显著提升算法性能。 - 支持ARM Cortex M系列,提供针对ARM Cortex M3、M4等处理器的内联汇编优化(
FALCON_ASM_CORTEXM4
),实现更高效运算。 - 配置灵活,通过
config.h
文件中的宏定义,用户可按需启用或禁用不同功能和优化选项。 - 提供单元测试与性能测试,项目有
test_falcon
和speed
两个可执行文件,分别用于运行单元测试和性能基准测试,确保算法正确性和性能。
安装使用步骤
- 确保已下载本项目的源码文件。
- 根据需求修改
config.h
文件中的宏定义,启用或禁用所需功能和优化选项。 - 在项目根目录下运行
make
命令进行编译,编译完成后会生成test_falcon
和speed
两个可执行文件。 - 运行测试:
- 使用
test_falcon
运行单元测试,验证算法的正确性。 - 使用
speed
运行性能基准测试,评估算法在不同参数下的性能表现。
- 使用
- 若要在应用中使用Falcon签名算法,只需包含
falcon.h
头文件,并调用其中定义的API即可。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】