Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
HQC — Post-quantum cryptographic scheme implementation (Hamming Quasi-Cyclic) with reference and optimized versions for secure key encapsulation. | Kitploit
도구/GitLabGitLab/pqc-hqc/hqc
Cryptography
GitLabpqc-hqc/hqc

HQC

Post-quantum cryptographic scheme implementation (Hamming Quasi-Cyclic) with reference and optimized versions for secure key encapsulation.

저장소 보기
87681년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
요청한 언어로 콘텐츠를 사용할 수 없습니다. 영어 버전을 표시합니다.

Hamming Quasi-Cyclic (HQC)

pipeline status Latest Release

This repository provides the official implementation of HQC, a code-based Key Encapsulation Mechanism (KEM) whose security is based on the hardness of solving the Quasi-Cylic Syndrome Decoding (QCSD) problem. HQC is one of the selected algorithms from the NIST's Post-Quantum Cryptography Standardization Project.

Structure

The project is organized into modular components, including cross-platform code, tests, known-answer vectors, and packaging tools.

  • src/ – HQC implementations
    • common/ – shared cross-platform source/header files
    • ref/ – reference implementation (no SIMD)
    • x86_64/ – optimized SIMD code
      • avx256/ – AVX2/AVX-256 optimized implementation
      • common/ – shared x86-specific source/header files
  • lib/ – third-party libraries (e.g. fips202/ for SHA-3/Shake)
  • tests/ – test-suite root (built with CMake)
    • unit/ – unit tests (GF, Reed–Solomon, …)
    • api/ – KEM/PKE API tests
    • bench/ – benchmarks
    • kats/ – KAT files tests
    • external/munit/ – copy of the munit testing framework
  • kats/ – official Known-Answer Test (KAT) files
    • ref/ – files generated with the reference build
    • x86_64/avx256 – files generated with the optimized build
  • packaging/ – scripts and Doxygen docs for packaging and documentation
  • CHANGELOG – project changelog
  • CMakeLists.txt – top-level CMake build script (sub-directories have their own)
  • LICENSE – project license
  • README.md – this file

Prerequisites

  • CMake ≥ 3.21
  • A C compiler (GCC ≥ 11, Clang, etc.) with C11 support
  • Ninja or Make (or another CMake generator)
  • clang-format for code formatting

Building & Testing

You can build any variant in an out-of-tree directory and run the full test-suite with a single command line. Choose the architecture (HQC_ARCH), the exact SIMD back-end if applicable (HQC_X86_IMPL), and an optional runtime sanitizer (HQC_SANITIZER).

# 1) Configure
cmake -S . -B build-<arch> \
      -DCMAKE_BUILD_TYPE=Release \
      -DHQC_ARCH=<arch> \
      -DHQC_X86_IMPL=<impl> \
      -DHQC_SANITIZER=<sanitizer>

# 2) Build
cmake --build build-<arch> -- -j$(nproc)

# 3) Test
ctest --test-dir build-<arch> --output-on-failure -j$(nproc)

Configuration Options

  • <arch>: ref, x86_64
  • <impl>: avx256
  • <sanitizer>: NONE, ASAN, LSAN, MSAN, UBSAN

Example 1 (Portable reference implementation)

rm -rf build-ref &&
cmake -S . -B build-ref \
-DCMAKE_BUILD_TYPE=Release \
-DHQC_ARCH=ref &&
cmake --build build-ref -j$(nproc) &&
ctest  --test-dir build-ref -j$(nproc)

Example 2 (Optimized AVX2 implementation (Haswell/AVX256))

rm -rf build-avx256 &&
cmake -S . -B build-avx256 \
-DCMAKE_BUILD_TYPE=Release \
-DHQC_ARCH=x86_64 \
-DHQC_X86_IMPL=avx256 &&
cmake --build build-avx256 -j$(nproc) &&
ctest  --test-dir build-avx256 -j$(nproc)

Code style & CI - format before every commit

All sources must be formatted with clang-format before every commit. Our CI pipeline runs cmake --build <build-dir> --target check-format
and will fail if any file deviates from the project style.

Quick usage

# Run from the build directory you already created
cmake --build build-<arch> --target clang-format        # rewrites files in-place
cmake --build build-<arch> --target check-format        # just checks, no changes
도구 다운로드