Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
hqc-x86-simd — Optimierte HQC-Post-Quanten-KEM-Implementierungen für AVX2 und AVX-512 mit GFNI, plus eine einheitliche Benchmarking- und NIST-KAT-Suite für x86-IoT-Gateways. | Kitploit
Tools/GitHubGitHub/jihoonjang98/hqc-x86-simd
Embedded-System-SicherheitVerschlüsselungs-/EntschlüsselungstoolsIoT-SicherheitKryptographieHardware- & IoT-SicherheitPapers & Forschung
GitHubjihoonjang98/hqc-x86-simd

hqc-x86-simd

Optimierte HQC-Post-Quanten-KEM-Implementierungen für AVX2 und AVX-512 mit GFNI, plus eine einheitliche Benchmarking- und NIST-KAT-Suite für x86-IoT-Gateways.

Repository anzeigen
12vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Optimierte HQC-Implementierungen für AVX2 und AVX-512

Dieses Repository enthält die optimierten HQC-Implementierungen und den Benchmarking-Code, der das Paper "Accelerating HQC for Post-Quantum TLS 1.3 on x86 IoT Gateways" begleitet. Es ist ein Fork des offiziellen HQC-Repositorys, erweitert um AVX-512- + GFNI-Implementierungen und eine einheitliche Mess-Suite, die jede verglichene Implementierung aus derselben Codebasis, denselben Compiler-Flags und demselben Benchmark-Protokoll baut.

Alle Implementierungen bestehen die NIST Known-Answer-Tests (KAT) für HQC-1, HQC-3 und HQC-5 und behalten den eingabeunabhängigen Kontrollfluss und das Speicherzugriffsmuster der Referenzimplementierung bei.

Implementierungen

Jede Variante unter src/x86_64/ wird zur Konfigurationszeit mit -DHQC_X86_IMPL=<variant> ausgewählt und baut in ihre eigene Bibliothek und Test-Binaries.

VariantePaper-BezeichnungISABeschreibung
avx256HQC-ReferenzAVX2offizielle optimierte Implementierung (Baseline)
avx256_TC_JangJang et al.AVX2GFmulOpt Toom-Cook/Karatsuba-Multiplikation
avx256_TC_GFNIUnsere (AVX2)AVX2+GFNIunsere GFNI Reed-Solomon / Reed-Muller-Decoder auf dem AVX2-Build
avx256_FAFFT_GFNI_chenChen et al.AVX2+GFNIFAFFT-Multiplikation, ursprünglicher nicht-gecachter Ablauf
avx256_FAFFT_GFNI_chen_x2Chen et al. (Dagger)AVX2+GFNIFAFFT mit dem ring_mul_x2-Ablauf mit geteiltem Operanden
avx256_FAFFT_GFNI_oursUnsere FAFFT (AVX2)AVX2+GFNIFAFFT + Zero-Tail-Basiskonvertierung + unsere Decoder
avx512_RobertRobert–VéronAVX-512Robert–Véron AVX-512 Polynommultiplikation
avx512_CabralCabral et al.AVX-512+GFNIQuellcode von Cabral et al. (enthält deren Upstream-HQC-3-hash_j-Fix vom 2026-07-21)
avx512_TC_GFNIUnsere TC/Karat (AVX-512)AVX-512+GFNIAVX-512 Toom-Cook/Karatsuba, GFNI-Decoder, AVX-512 Keccak
avx512_FAFFT_GFNIUnsere FAFFT (AVX-512)AVX-512+GFNIAVX-512-Portierung von Chen et al.s AVX2-Implementierung

Die beiden Ours-Builds jeder ISA unterscheiden sich nur im Polynommultiplikator, sodass ihr End-to-End-Vergleich die Wahl des Multiplikators isoliert.

Build

Voraussetzungen: GCC >= 12, CMake >= 3.21, eine x86-64-CPU. Die AVX-512-Varianten erfordern AVX-512F/BW/DQ/VL/VBMI/VBMI2/IFMA/BITALG/VPOPCNTDQ, VPCLMULQDQ und GFNI (Ice Lake / Tiger Lake / Rocket Lake / Zen 4 oder neuer).

# eine Variante
mkdir build-avx512_TC_GFNI && cd build-avx512_TC_GFNI
cmake -DHQC_ARCH=x86_64 -DHQC_X86_IMPL=avx512_TC_GFNI ..
cmake --build . -j

# oder alle Varianten auf einmal (erstellt build-<variant>/-Verzeichnisse)
./build_all.sh

Known-Answer-Tests

# vom Repository-Wurzelverzeichnis aus, nach dem Build
bash scripts/run_kat.sh                      # alle Varianten
bash scripts/run_kat.sh avx512_TC_GFNI       # eine Variante

Hinweis: test_kat_hqc_* gibt bei Erfolg nichts aus und bei einer Abweichung Zeilen, die bad enthalten; das Skript durchsucht die Ausgabe entsprechend mit grep.

Benchmarks

Das Protokoll des Papers: Turbo Boost und SMT deaktiviert, der Prozess an einen physischen Kern gebunden, und jeder berichtete Wert ist der Median aus 1.000 Stichproben von 100 Iterationen nach 10.000 Aufwärm-Iterationen. Die Skripte binden mit taskset an Kern 0.

bash scripts/measure_build.sh <variant> [...]  # End-to-End-KEM-Benchmark der angegebenen Varianten

Rohprotokolle werden in benchmark_results/raw/ geschrieben; der Benchmark-Bericht enthält Min/Median/Mittelwert, und der Median ist der im Paper zitierte Wert.

Repository-Struktur

src/common/          parameter-set unabhängiger HQC-Code (KEM-Schicht, Codierung)
src/ref/             Referenzimplementierung
src/x86_64/common/   gemeinsam genutzter Code der AVX2-Ära
src/x86_64/<variant> ein Verzeichnis pro verglichener Implementierung (siehe Tabelle)
lib/fips202/         Keccak (skalares PQClean + optionale XKCP AVX-512-Permutation)
tests/               KAT-, API-, Unit-Tests, Benchmarks
kats/                Known-Answer-Dateien, die von den KAT-Tests verwendet werden
scripts/             KAT- und Mess-Hilfsskripte

Lizenz und Namensnennung

Das Basis-Repository und unsere Ergänzungen sind gemeinfrei (siehe LICENSE). Dieses Repository bündelt zusätzlich Drittanbieter-Implementierungen zu Messzwecken; siehe THIRD_PARTY_NOTICES.md für deren Publikationen, Herkunft und Lizenzen.

Tool herunterladen