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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
hqc-x86-simd — AVX2 및 AVX-512 with GFNI를 위한 최적화된 HQC 포스트 양자 KEM 구현과 x86 IoT 게이트웨이를 위한 통합 벤치마킹 및 NIST KAT 스위트. | Kitploit
도구/GitHubGitHub/jihoonjang98/hqc-x86-simd
Embedded Systems SecurityEncryption/Decryption ToolsIoT SecurityCryptographyHardware & IoT SecurityPapers & Research
GitHubjihoonjang98/hqc-x86-simd

hqc-x86-simd

AVX2 및 AVX-512 with GFNI를 위한 최적화된 HQC 포스트 양자 KEM 구현과 x86 IoT 게이트웨이를 위한 통합 벤치마킹 및 NIST KAT 스위트.

저장소 보기
121개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

AVX2 및 AVX-512를 위한 최적화된 HQC 구현

이 저장소는 논문 *"Accelerating HQC for Post-Quantum TLS 1.3 on x86 IoT Gateways"*에 수반되는 최적화된 HQC 구현과 벤치마킹 코드를 포함합니다. 이는 공식 HQC 저장소의 포크로, AVX-512 + GFNI 구현과 비교 대상 모든 구현을 동일한 코드 베이스, 컴파일러 플래그, 벤치마크 프로토콜로 빌드하는 통합 측정 도구 모음으로 확장되었습니다.

모든 구현은 HQC-1, HQC-3, HQC-5에 대한 NIST known-answer 테스트(KAT)를 통과하며, 참조 구현의 입력 독립적 제어 흐름과 메모리 접근 패턴을 유지합니다.

구현

src/x86_64/ 아래의 각 변형은 구성 시 -DHQC_X86_IMPL=<variant>로 선택되며 자체 라이브러리와 테스트 바이너리로 빌드됩니다.

변형논문 표기ISA설명
avx256HQC referenceAVX2공식 최적화 구현 (기준)
avx256_TC_JangJang et al.AVX2GFmulOpt Toom-Cook/Karatsuba 곱셈
avx256_TC_GFNIOurs (AVX2)AVX2+GFNIAVX2 빌드에 적용한 자체 GFNI Reed-Solomon / Reed-Muller 디코더
avx256_FAFFT_GFNI_chenChen et al.AVX2+GFNIFAFFT 곱셈, 원래의 비캐시 흐름
avx256_FAFFT_GFNI_chen_x2Chen et al. (dagger)AVX2+GFNI공유 피연산자 ring_mul_x2 흐름을 사용하는 FAFFT
avx256_FAFFT_GFNI_oursOurs FAFFT (AVX2)AVX2+GFNIFAFFT + 제로 테일 기저 변환 + 자체 디코더
avx512_RobertRobert–VéronAVX-512Robert–Véron AVX-512 다항식 곱셈
avx512_CabralCabral et al.AVX-512+GFNICabral et al.의 소스 코드 (2026-07-21의 업스트림 HQC-3 hash_j 수정 포함)
avx512_TC_GFNIOurs TC/Karat (AVX-512)AVX-512+GFNIAVX-512 Toom-Cook/Karatsuba, GFNI 디코더, AVX-512 Keccak
avx512_FAFFT_GFNIOurs FAFFT (AVX-512)AVX-512+GFNIChen et al.의 AVX2 구현을 AVX-512로 이식

각 ISA의 두 Ours 빌드는 다항식 곱셈기만 다르므로, 이들의 종단 간 비교는 곱셈기 선택을 분리하여 평가합니다.

빌드

요구 사항: GCC >= 12, CMake >= 3.21, x86-64 CPU. AVX-512 변형은 AVX-512F/BW/DQ/VL/VBMI/VBMI2/IFMA/BITALG/VPOPCNTDQ, VPCLMULQDQ, GFNI가 필요합니다 (Ice Lake / Tiger Lake / Rocket Lake / Zen 4 이상).

# 변형 하나
mkdir build-avx512_TC_GFNI && cd build-avx512_TC_GFNI
cmake -DHQC_ARCH=x86_64 -DHQC_X86_IMPL=avx512_TC_GFNI ..
cmake --build . -j

# 또는 모든 변형을 한 번에 (build-<variant>/ 디렉터리 생성)
./build_all.sh

Known-answer 테스트

# 빌드 후 저장소 루트에서
bash scripts/run_kat.sh                      # 모든 변형
bash scripts/run_kat.sh avx512_TC_GFNI       # 변형 하나

참고: test_kat_hqc_*는 성공 시 아무것도 출력하지 않고 불일치 시 bad를 포함한 줄을 출력합니다. 스크립트는 이에 따라 출력을 grep합니다.

벤치마크

논문의 프로토콜: Turbo Boost와 SMT를 비활성화하고, 프로세스를 하나의 물리 코어에 고정하며, 보고되는 모든 값은 10,000회 워밍업 반복 후 100회 반복의 1,000개 샘플의 중앙값입니다. 스크립트는 taskset으로 코어 0에 고정합니다.

bash scripts/measure_build.sh <variant> [...]  # 주어진 변형의 종단 간 KEM 벤치마크

원시 로그는 benchmark_results/raw/에 기록됩니다. 벤치마크는 최소/중앙/평균을 보고하며, 중앙값이 논문에서 인용된 값입니다.

저장소 구조

src/common/          파라미터 세트 독립적 HQC 코드 (KEM 계층, 코딩)
src/ref/             참조 구현
src/x86_64/common/   AVX2 시대의 공유 코드
src/x86_64/<variant> 비교 대상 구현당 하나의 디렉터리 (표 참조)
lib/fips202/         Keccak (스칼라 PQClean + 선택적 XKCP AVX-512 순열)
tests/               KAT, API, 단위 테스트, 벤치마크
kats/                KAT 테스트에서 사용하는 known-answer 파일
scripts/             KAT 및 측정 도우미 스크립트

라이선스 및 저작자 표시

기본 저장소와 우리의 추가 사항은 퍼블릭 도메인으로 공개됩니다 (LICENSE 참조). 이 저장소는 추가로 측정 목적을 위해 제3자 구현을 포함하고 있습니다. 해당 출판물, 출처, 라이선스는 THIRD_PARTY_NOTICES.md를 참조하십시오.

도구 다운로드