Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
hqc-x86-simd — 面向AVX2和AVX-512(含GFNI)的优化HQC后量子KEM实现,以及面向x86物联网网关的统一基准测试与NIST KAT套件。 | Kitploit
工具/GitHubGitHub/jihoonjang98/hqc-x86-simd
嵌入式系统安全加密/解密工具物联网安全密码学硬件与物联网安全论文与研究
GitHubjihoonjang98/hqc-x86-simd

hqc-x86-simd

面向AVX2和AVX-512(含GFNI)的优化HQC后量子KEM实现,以及面向x86物联网网关的统一基准测试与NIST KAT套件。

查看仓库
121个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

面向 AVX2 和 AVX-512 的优化 HQC 实现

本仓库包含论文 "Accelerating HQC for Post-Quantum TLS 1.3 on x86 IoT Gateways" 所附的优化 HQC 实现与基准测试代码。 它是官方 HQC 仓库的一个分支,扩展了 AVX-512 + GFNI 实现以及一套统一的测量套件, 该套件从相同的代码库、编译器标志和基准测试协议构建所有被比较的实现。

所有实现均通过 HQC-1、HQC-3 和 HQC-5 的 NIST 已知答案测试(KAT), 并保持参考实现中与输入无关的控制流和内存访问模式。

实现

src/x86_64/ 下的每个变体在配置时通过 -DHQC_X86_IMPL=<variant> 选择,并构建为各自的库和测试二进制文件。

变体论文标签ISA描述
avx256HQC referenceAVX2官方优化实现(基线)
avx256_TC_JangJang et al.AVX2GFmulOpt Toom-Cook/Karatsuba 乘法
avx256_TC_GFNIOurs (AVX2)AVX2+GFNI我们在 AVX2 构建上的 GFNI Reed-Solomon / Reed-Muller 解码器
avx256_FAFFT_GFNI_chenChen et al.AVX2+GFNIFAFFT 乘法,原始非缓存流程
avx256_FAFFT_GFNI_chen_x2Chen et al. (dagger)AVX2+GFNI采用共享操作数 ring_mul_x2 流程的 FAFFT
avx256_FAFFT_GFNI_oursOurs FAFFT (AVX2)AVX2+GFNIFAFFT + 零尾基转换 + 我们的解码器
avx512_RobertRobert–VéronAVX-512Robert–Véron AVX-512 多项式乘法
avx512_CabralCabral et al.AVX-512+GFNI来自 Cabral et al. 的源代码(包含其 2026-07-21 的上游 HQC-3 hash_j 修复)
avx512_TC_GFNIOurs TC/Karat (AVX-512)AVX-512+GFNIAVX-512 Toom-Cook/Karatsuba、GFNI 解码器、AVX-512 Keccak
avx512_FAFFT_GFNIOurs FAFFT (AVX-512)AVX-512+GFNIChen et al. 的 AVX2 实现的 AVX-512 移植

每个 ISA 的两个 Ours 构建仅在多项式乘法器上不同,因此 它们的端到端比较可以隔离出乘法器的选择。

构建

要求:GCC >= 12、CMake >= 3.21、x86-64 CPU。AVX-512 变体 需要 AVX-512F/BW/DQ/VL/VBMI/VBMI2/IFMA/BITALG/VPOPCNTDQ、VPCLMULQDQ 以及 GFNI(Ice Lake / Tiger Lake / Rocket Lake / Zen 4 或更新)。

# one variant
mkdir build-avx512_TC_GFNI && cd build-avx512_TC_GFNI
cmake -DHQC_ARCH=x86_64 -DHQC_X86_IMPL=avx512_TC_GFNI ..
cmake --build . -j

# or every variant at once (creates build-<variant>/ directories)
./build_all.sh

已知答案测试

# from the repository root, after building
bash scripts/run_kat.sh                      # all variants
bash scripts/run_kat.sh avx512_TC_GFNI       # one variant

注意:test_kat_hqc_* 在成功时不输出任何内容,在不匹配时输出包含 bad 的行;脚本会相应地 grep 输出。

基准测试

论文的协议:禁用 Turbo Boost 和 SMT,将进程固定到一个 物理核心,并且每个报告值都是 10,000 次预热迭代后 1,000 个样本(每个样本 100 次迭代)的中位数。脚本使用 taskset 固定到核心 0。

bash scripts/measure_build.sh <variant> [...]  # end-to-end KEM benchmark of the given variants

原始日志写入 benchmark_results/raw/;基准测试报告 最小值/中位数/平均值,中位数即为论文中引用的值。

仓库布局

src/common/          parameter-set independent HQC code (KEM layer, coding)
src/ref/             reference implementation
src/x86_64/common/   AVX2-era shared code
src/x86_64/<variant> one directory per compared implementation (see table)
lib/fips202/         Keccak (scalar PQClean + optional XKCP AVX-512 permutation)
tests/               KAT, API, unit tests, benchmarks
kats/                known-answer files used by the KAT tests
scripts/             KAT and measurement helper scripts

许可证与署名

基础仓库及我们的新增内容已发布到公共领域 (参见 LICENSE)。本仓库还额外内置了第三方 实现用于测量目的;其出版物、 来源和许可证请参见 THIRD_PARTY_NOTICES.md。

下载工具