Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hqc-x86-simd — Implémentations optimisées du KEM post-quantique HQC pour AVX2 et AVX-512 avec GFNI, ainsi qu'une suite unifiée de benchmarking et de NIST KAT pour les passerelles IoT x86. | Kitploit
Outils/GitHubGitHub/jihoonjang98/hqc-x86-simd
Sécurité des Systèmes EmbarquésOutils de Chiffrement/DéchiffrementSécurité IoTCryptographieSécurité Matériel et IoTArticles et Recherche
GitHubjihoonjang98/hqc-x86-simd

hqc-x86-simd

Implémentations optimisées du KEM post-quantique HQC pour AVX2 et AVX-512 avec GFNI, ainsi qu'une suite unifiée de benchmarking et de NIST KAT pour les passerelles IoT x86.

Voir le dépôt
12il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Implémentations HQC optimisées pour AVX2 et AVX-512

Ce dépôt contient les implémentations HQC optimisées et le code de benchmarking accompagnant l'article « Accelerating HQC for Post-Quantum TLS 1.3 on x86 IoT Gateways ». Il s'agit d'un fork du dépôt HQC officiel, étendu avec des implémentations AVX-512 + GFNI et une suite de mesure unifiée qui compile chaque implémentation comparée à partir de la même base de code, des mêmes options de compilation et du même protocole de benchmark.

Toutes les implémentations passent les tests à réponse connue (KAT) du NIST pour HQC-1, HQC-3 et HQC-5, et conservent le flux de contrôle et le motif d'accès mémoire indépendants des entrées de l'implémentation de référence.

Implémentations

Chaque variante sous src/x86_64/ est sélectionnée au moment de la configuration avec -DHQC_X86_IMPL=<variant> et est compilée dans sa propre bibliothèque et ses propres binaires de test.

VarianteLibellé de l'articleISADescription
avx256HQC referenceAVX2implémentation optimisée officielle (référence)
avx256_TC_JangJang et al.AVX2multiplication Toom-Cook/Karatsuba GFmulOpt
avx256_TC_GFNIOurs (AVX2)AVX2+GFNInos décodeurs Reed-Solomon / Reed-Muller GFNI sur la compilation AVX2
avx256_FAFFT_GFNI_chenChen et al.AVX2+GFNImultiplication FAFFT, flux original non mis en cache
avx256_FAFFT_GFNI_chen_x2Chen et al. (dagger)AVX2+GFNIFAFFT avec le flux ring_mul_x2 à opérandes partagés
avx256_FAFFT_GFNI_oursOurs FAFFT (AVX2)AVX2+GFNIFAFFT + conversion de base à queue nulle + nos décodeurs
avx512_RobertRobert–VéronAVX-512multiplication polynomiale AVX-512 de Robert–Véron
avx512_CabralCabral et al.AVX-512+GFNIcode source de Cabral et al. (inclut leur correctif amont hash_j de HQC-3 du 2026-07-21)
avx512_TC_GFNIOurs TC/Karat (AVX-512)AVX-512+GFNIToom-Cook/Karatsuba AVX-512, décodeurs GFNI, Keccak AVX-512
avx512_FAFFT_GFNIOurs FAFFT (AVX-512)AVX-512+GFNIportage AVX-512 de l'implémentation AVX2 de Chen et al.

Les deux compilations Ours de chaque ISA ne diffèrent que par le multiplicateur polynomial, de sorte que leur comparaison de bout en bout isole le choix du multiplicateur.

Compilation

Prérequis : GCC >= 12, CMake >= 3.21, un CPU x86-64. Les variantes AVX-512 nécessitent AVX-512F/BW/DQ/VL/VBMI/VBMI2/IFMA/BITALG/VPOPCNTDQ, VPCLMULQDQ et GFNI (Ice Lake / Tiger Lake / Rocket Lake / Zen 4 ou plus récent).

# une 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

# ou toutes les variantes en une fois (crée les répertoires build-<variant>/)
./build_all.sh

Tests à réponse connue

# depuis la racine du dépôt, après compilation
bash scripts/run_kat.sh                      # toutes les variantes
bash scripts/run_kat.sh avx512_TC_GFNI       # une variante

Remarque : test_kat_hqc_* n'affiche rien en cas de succès et des lignes contenant bad en cas d'échec ; le script filtre la sortie en conséquence.

Benchmarks

Protocole de l'article : Turbo Boost et SMT désactivés, le processus épinglé à un cœur physique, et chaque valeur rapportée est la médiane de 1 000 échantillons de 100 itérations après 10 000 itérations de préchauffage. Les scripts épinglent au cœur 0 avec taskset.

bash scripts/measure_build.sh <variant> [...]  # benchmark KEM de bout en bout des variantes données

Les journaux bruts sont écrits dans benchmark_results/raw/ ; le benchmark rapporte min/médiane/moyenne, et la médiane est la valeur citée dans l'article.

Organisation du dépôt

src/common/          code HQC indépendant du jeu de paramètres (couche KEM, codage)
src/ref/             implémentation de référence
src/x86_64/common/   code partagé de l'ère AVX2
src/x86_64/<variant> un répertoire par implémentation comparée (voir tableau)
lib/fips202/         Keccak (PQClean scalaire + permutation XKCP AVX-512 optionnelle)
tests/               KAT, API, tests unitaires, benchmarks
kats/                fichiers à réponse connue utilisés par les tests KAT
scripts/             scripts utilitaires KAT et de mesure

Licence et attribution

Le dépôt de base et nos ajouts sont placés dans le domaine public (voir LICENSE). Ce dépôt intègre en outre des implémentations tierces à des fins de mesure ; voir THIRD_PARTY_NOTICES.md pour leurs publications, origines et licences.

Télécharger l’outil