littlebot
Published on 2025-04-07 / 3 Visits
0

【源码】基于C语言的Falcon后量子数字签名方案实现

项目简介

本项目实现了NIST后量子密码学标准化第三轮提交的Falcon后量子数字签名方案。Falcon已被NIST标准化,本项目包含Falcon的参考实现与优化实现,还针对Doge Protocol区块链进行功能扩展,新增生成WebAssembly的函数,可用于浏览器扩展。

项目的主要特性和功能

  1. 参考实现:提供Falcon - 512和Falcon - 1024的参考实现,采用NIST API,适配不同硬件平台。
  2. 优化实现:有基于AVX2指令集、浮点运算和ARM Cortex M4处理器的优化实现,适用于不同硬件架构。
  3. Doge Protocol扩展:新增crypto_sign_signature_with_keycrypto_sign_verify函数,支持在Doge Protocol区块链中使用。
  4. 测试与验证:包含KAT(Known Answer Test)测试向量生成器,可验证实现的正确性。
  5. 跨平台支持:支持x86、ARM、Aarch64和POWER/PowerPC等多种硬件架构,提供跨编译支持。

安装使用步骤

前提条件

假设用户已下载本项目的源码文件,且已安装C编译器(c99),并支持-W -Wall -O2编译选项。

编译参考实现

  1. 进入Reference_Implementation/falcon512/falcon512int/目录。
  2. 运行make命令编译代码。
  3. 编译完成后,生成的二进制文件将位于build目录中。

编译优化实现

  1. 进入Optimized_Implementation/falcon512/falcon512avx2/目录(或其他优化实现目录)。
  2. 运行make命令编译代码。
  3. 编译完成后,生成的二进制文件将位于build目录中。

运行测试

  1. 进入KAT/generator/目录。
  2. 运行make命令编译测试向量生成器。
  3. 执行生成的二进制文件,生成.req.rsp文件,并与KAT/目录中的文件进行对比,验证实现的正确性。

使用命令行工具

  1. 进入Extra/c/目录。
  2. 运行make命令编译命令行工具test_falconspeed
  3. 使用test_falcon运行自测试,使用speed运行性能基准测试。

跨编译(适用于ARM Cortex M4)

  1. 确保已安装arm-linux-gcc交叉编译器,建议使用Buildroot项目获取合适的交叉编译工具链。
  2. 进入Optimized_Implementation/falcon512/falcon512cxm4/目录。
  3. 运行make命令进行跨编译。
  4. 使用QEMU模拟器运行生成的二进制文件。

许可证

本项目遵循MIT许可证,详细信息请参阅源码文件中的许可证文本。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】