Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hqc-x86-simd — Implementaciones optimizadas de HQC post-quantum KEM para AVX2 y AVX-512 con GFNI, además de una suite unificada de benchmarking y NIST KAT para gateways IoT x86. | Kitploit
Herramientas/GitHubGitHub/jihoonjang98/hqc-x86-simd
Seguridad de Sistemas EmbebidosHerramientas de Cifrado/DescifradoSeguridad IoTCriptografíaSeguridad de Hardware e IoTPapers e Investigación
GitHubjihoonjang98/hqc-x86-simd

hqc-x86-simd

Implementaciones optimizadas de HQC post-quantum KEM para AVX2 y AVX-512 con GFNI, además de una suite unificada de benchmarking y NIST KAT para gateways IoT x86.

Ver Repositorio
12hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Implementaciones optimizadas de HQC para AVX2 y AVX-512

Este repositorio contiene las implementaciones optimizadas de HQC y el código de benchmarking que acompañan al artículo "Accelerating HQC for Post-Quantum TLS 1.3 on x86 IoT Gateways". Es un fork del repositorio oficial de HQC, ampliado con implementaciones AVX-512 + GFNI y una suite de medición unificada que compila todas las implementaciones comparadas a partir de la misma base de código, los mismos flags del compilador y el mismo protocolo de benchmark.

Todas las implementaciones superan las pruebas de respuesta conocida (KAT) de NIST para HQC-1, HQC-3 y HQC-5, y mantienen el flujo de control y el patrón de acceso a memoria independientes de la entrada de la implementación de referencia.

Implementaciones

Cada variante bajo src/x86_64/ se selecciona en tiempo de configuración con -DHQC_X86_IMPL=<variant> y se compila en su propia biblioteca y binarios de prueba.

VarianteEtiqueta del artículoISADescripción
avx256HQC referenceAVX2implementación optimizada oficial (línea base)
avx256_TC_JangJang et al.AVX2multiplicación Toom-Cook/Karatsuba GFmulOpt
avx256_TC_GFNIOurs (AVX2)AVX2+GFNInuestros decodificadores GFNI Reed-Solomon / Reed-Muller sobre la compilación AVX2
avx256_FAFFT_GFNI_chenChen et al.AVX2+GFNImultiplicación FAFFT, flujo original sin caché
avx256_FAFFT_GFNI_chen_x2Chen et al. (dagger)AVX2+GFNIFAFFT con el flujo ring_mul_x2 de operandos compartidos
avx256_FAFFT_GFNI_oursOurs FAFFT (AVX2)AVX2+GFNIFAFFT + conversión de base zero-tail + nuestros decodificadores
avx512_RobertRobert–VéronAVX-512multiplicación de polinomios AVX-512 de Robert–Véron
avx512_CabralCabral et al.AVX-512+GFNIcódigo fuente de Cabral et al. (incluye su corrección upstream de hash_j de HQC-3 del 2026-07-21)
avx512_TC_GFNIOurs TC/Karat (AVX-512)AVX-512+GFNIToom-Cook/Karatsuba AVX-512, decodificadores GFNI, Keccak AVX-512
avx512_FAFFT_GFNIOurs FAFFT (AVX-512)AVX-512+GFNIport a AVX-512 de la implementación AVX2 de Chen et al.

Las dos compilaciones Ours de cada ISA difieren únicamente en el multiplicador de polinomios, por lo que su comparación de extremo a extremo aísla la elección del multiplicador.

Compilación

Requisitos: GCC >= 12, CMake >= 3.21, una CPU x86-64. Las variantes AVX-512 requieren AVX-512F/BW/DQ/VL/VBMI/VBMI2/IFMA/BITALG/VPOPCNTDQ, VPCLMULQDQ y GFNI (Ice Lake / Tiger Lake / Rocket Lake / Zen 4 o posterior).

# 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

Pruebas de respuesta conocida

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

Nota: test_kat_hqc_* no imprime nada en caso de éxito e imprime líneas que contienen bad en caso de discrepancia; el script filtra la salida en consecuencia.

Benchmarks

El protocolo del artículo: Turbo Boost y SMT desactivados, el proceso fijado a un núcleo físico, y cada valor reportado es la mediana de 1.000 muestras de 100 iteraciones tras 10.000 iteraciones de calentamiento. Los scripts fijan el proceso al núcleo 0 con taskset.

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

Los registros sin procesar se escriben en benchmark_results/raw/; el benchmark reporta mínimo/mediana/media, y la mediana es el valor citado en el artículo.

Estructura del repositorio

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

Licencia y atribución

El repositorio base y nuestras adiciones se publican en el dominio público (véase LICENSE). Este repositorio además incluye implementaciones de terceros con fines de medición; véase THIRD_PARTY_NOTICES.md para sus publicaciones, orígenes y licencias.

Descargar herramienta