Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
hqc-x86-simd — Implementações otimizadas do KEM pós-quântico HQC para AVX2 e AVX-512 com GFNI, além de um conjunto unificado de benchmarking e NIST KAT para gateways IoT x86. | Kitploit
Ferramentas/GitHubGitHub/jihoonjang98/hqc-x86-simd
Segurança de Sistemas EmbarcadosFerramentas de Criptografia/DescriptografiaSegurança IoTCriptografiaSegurança de Hardware e IoTPapers e Pesquisa
GitHubjihoonjang98/hqc-x86-simd

hqc-x86-simd

Implementações otimizadas do KEM pós-quântico HQC para AVX2 e AVX-512 com GFNI, além de um conjunto unificado de benchmarking e NIST KAT para gateways IoT x86.

Ver Repositório
12há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Implementações HQC Otimizadas para AVX2 e AVX-512

Este repositório contém as implementações HQC otimizadas e o código de benchmarking que acompanham o artigo "Accelerating HQC for Post-Quantum TLS 1.3 on x86 IoT Gateways". É um fork do repositório oficial do HQC, estendido com implementações AVX-512 + GFNI e uma suíte de medição unificada que compila todas as implementações comparadas a partir da mesma base de código, flags de compilador e protocolo de benchmark.

Todas as implementações passam nos testes de resposta conhecida (KAT) do NIST para HQC-1, HQC-3, e HQC-5, e mantêm o fluxo de controle e o padrão de acesso à memória independentes da entrada da implementação de referência.

Implementações

Cada variante em src/x86_64/ é selecionada no momento da configuração com -DHQC_X86_IMPL=<variant> e é compilada em sua própria biblioteca e binários de teste.

VarianteRótulo no artigoISADescrição
avx256HQC referenceAVX2implementação otimizada oficial (baseline)
avx256_TC_JangJang et al.AVX2multiplicação Toom-Cook/Karatsuba GFmulOpt
avx256_TC_GFNIOurs (AVX2)AVX2+GFNInossos decodificadores GFNI Reed-Solomon / Reed-Muller na compilação AVX2
avx256_FAFFT_GFNI_chenChen et al.AVX2+GFNImultiplicação FAFFT, fluxo original sem cache
avx256_FAFFT_GFNI_chen_x2Chen et al. (dagger)AVX2+GFNIFAFFT com o fluxo ring_mul_x2 de operandos compartilhados
avx256_FAFFT_GFNI_oursOurs FAFFT (AVX2)AVX2+GFNIFAFFT + conversão de base zero-tail + nossos decodificadores
avx512_RobertRobert–VéronAVX-512multiplicação polinomial AVX-512 de Robert–Véron
avx512_CabralCabral et al.AVX-512+GFNIcódigo-fonte de Cabral et al. (inclui sua correção upstream hash_j do HQC-3 de 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+GFNIporte para AVX-512 da implementação AVX2 de Chen et al.

As duas compilações Ours de cada ISA diferem apenas no multiplicador polinomial, portanto sua comparação ponta a ponta isola a escolha do multiplicador.

Compilação

Requisitos: GCC >= 12, CMake >= 3.21, uma CPU x86-64. As variantes AVX-512 requerem AVX-512F/BW/DQ/VL/VBMI/VBMI2/IFMA/BITALG/VPOPCNTDQ, VPCLMULQDQ e GFNI (Ice Lake / Tiger Lake / Rocket Lake / Zen 4 ou mais recente).

# 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

Testes de resposta conhecida

# 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_* não imprime nada em caso de sucesso e linhas contendo bad em caso de divergência; o script faz grep da saída de acordo.

Benchmarks

O protocolo do artigo: Turbo Boost e SMT desabilitados, o processo fixado a um núcleo físico, e cada valor reportado é a mediana de 1.000 amostras de 100 iterações após 10.000 iterações de aquecimento. Os scripts fixam no núcleo 0 com taskset.

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

Os logs brutos são gravados em benchmark_results/raw/; o relatório de benchmark apresenta min/mediana/média, e a mediana é o valor citado no artigo.

Estrutura do repositório

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

Licença e atribuição

O repositório base e nossas adições são liberados em domínio público (consulte LICENSE). Este repositório adicionalmente inclui implementações de terceiros para fins de medição; consulte THIRD_PARTY_NOTICES.md para suas publicações, origens e licenças.

Baixar ferramenta