Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gr-PHYSEC — SDR IQ 샘플로부터 딥러닝 채널 핑거프린팅, 특징 양자화, SHA3-512 키 생성을 사용하는 물리 계층 보안을 위한 GNU Radio 모듈입니다. | Kitploit
도구/GitHubGitHub/c2a2-at-florida-atlantic-university/gr-physec
Encryption/Decryption ToolsWireless SecurityCryptographyHardware & IoT SecurityMachine Learning
GitHubc2a2-at-florida-atlantic-university/gr-physec

gr-PHYSEC

SDR IQ 샘플로부터 딥러닝 채널 핑거프린팅, 특징 양자화, SHA3-512 키 생성을 사용하는 물리 계층 보안을 위한 GNU Radio 모듈입니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
215개월 전아직 검토되지 않음

gr-PHYSEC: 물리 계층 보안을 위한 GNU Radio 모듈

이 GNU Radio 모듈은 딥러닝 모델을 사용하여 물리 계층 보안 애플리케이션을 위한 채널 핑거프린팅 기능을 제공합니다.

기능

  • 채널 핑거프린팅: IQ 샘플에서 고유한 채널 특성을 추출합니다
  • 딥러닝 통합: 특징 추출을 위해 학습된 모델(QExtractor.h5)을 사용합니다
  • 특징 양자화: 추출된 특징을 이진 값으로 변환합니다
  • 프라이버시 증폭: 키 생성을 위해 암호화 해싱(SHA3-512)을 적용합니다
  • 실시간 처리: SDR 장치에서 IQ 샘플을 실시간으로 처리합니다
  • 다중 모델 지원: TripletNet 및 QuadrupletNet 아키텍처를 모두 지원합니다

요구 사항

  • GNU Radio 3.10+
  • Python 3.8+
  • TensorFlow 2.x
  • NumPy
  • Hashlib (내장)

설치

1. 저장소 복제

root@kitploit:~
git clone <your-repo-url>/gr-PHYSEC.git
cd gr-PHYSEC

2. 빌드 디렉터리 생성

root@kitploit:~
mkdir build
cd build

3. 구성 및 빌드

root@kitploit:~
cmake ..
make -j$(nproc)

4. 설치

root@kitploit:~
sudo make install
sudo ldconfig

5. 설치 확인

root@kitploit:~
gnuradio-companion

PHYSEC Fingerprint Block이 포함된 새로운 카테고리 [PHYSEC]가 표시되어야 합니다.

사용법

GNU Radio Companion (GRC)

  1. GNU Radio Companion을 엽니다
  2. [PHYSEC] 카테고리를 찾습니다
  3. PHYSEC Fingerprint Block을 끌어다 놓습니다
  4. 매개변수를 구성합니다:
    • Model Path: QExtractor.h5 파일의 경로
    • Model Type: "quadruplet" 또는 "triplet" 중 선택
    • Spectrogram Size: FFT 크기 (기본값: 512)
    • Sample Rate: Hz 단위의 SDR 샘플 레이트
    • Center Frequency: Hz 단위의 SDR 중심 주파수
    • Key Length: 비트 단위의 원하는 키 길이

Python 스크립트

root@kitploit:~
from gnuradio import gr
from gnuradio import PHYSEC

# Create decoupled PHYSEC blocks
spectrogram = PHYSEC.spectrogram_block(
    vector_size=512,
    sample_rate=1e6,
    center_freq=2.4e9
)

feature_extractor = PHYSEC.feature_extraction_block(
    model_path="/path/to/QExtractor.onnx"
)

feature_quantizer = PHYSEC.feature_quantization_block(
    threshold_type="mean"
)

parity_generator = PHYSEC.parity_generation_block(
    key_length=512
)

reconciler = PHYSEC.reconciliation_block(
    key_length=512
)

privacy_amplifier = PHYSEC.privacy_amplification_block()

예제 플로우그래프

분리된 PHYSEC 블록을 사용하는 완전한 예제 플로우그래프는 examples/decoupled_physic_example.grc를 참조하십시오.

블록 매개변수

Spectrogram 블록

Feature Extraction 블록

매개변수유형기본값설명
model_pathstring-ONNX 모델 파일의 경로

Feature Quantization 블록

매개변수유형기본값설명
threshold_typestring"mean"임계값 방법: "mean", "median", 또는 "zero"

Parity Generation 블록

매개변수유형기본값설명
key_lengthint512패리티 생성을 위한 이진 키의 길이

Reconciliation 블록

매개변수유형기본값설명
key_lengthint512조정을 위한 이진 키의 길이

Privacy Amplification 블록

매개변수유형기본값설명
매개변수 필요 없음--SHA3-512 해싱 적용

입력/출력

Spectrogram 블록

  • 입력: SDR로부터의 복소 IQ 샘플
  • 출력: 스펙트로그램 데이터 (204×31 float 값)

Feature Extraction 블록

  • 입력: 스펙트로그램 데이터 (204×31 float 값)
  • 출력: 특징 벡터 (512 float 값)

Feature Quantization 블록

  • 입력: 특징 벡터 (512 float 값)
  • 출력: 이진 특징 (512 uint8 값)

Parity Generation 블록

  • 입력: 이진 특징 (512 uint8 값)
  • 출력: 패리티 비트 (문자열)

Reconciliation 블록

  • 입력: 이진 특징 + 패리티 비트
  • 출력: 조정된 이진 키 (문자열)

Privacy Amplification 블록

  • 입력: 이진 특징 (512 uint8 값)
  • 출력: 최종 암호화 키 (128 바이트)

메시지 형식

핑거프린트 출력 메시지는 다음을 포함합니다:

root@kitploit:~
{
    "fingerprint": "generated_hash_string",
    "block_count": 123,
    "sample_rate": 1000000.0,
    "center_freq": 2400000000.0,
    "spectrogram_size": 512
}

처리 파이프라인

  1. IQ 샘플 수집: Stream to Vector를 사용하여 들어오는 IQ 샘플을 버퍼링합니다
  2. 스펙트로그램 생성: STFT, RMS 정규화, 주파수 크로핑을 사용하여 IQ 샘플을 스펙트로그램으로 변환합니다
  3. 특징 추출: ONNX 모델을 사용하여 채널 특징을 추출합니다
  4. 특징 양자화: 구성 가능한 임계값을 사용하여 특징을 이진 값으로 변환합니다
  5. 패리티 생성: 오류 정정을 위한 Reed-Solomon 패리티 비트를 생성합니다
  6. 키 조정: 패리티 비트를 사용하여 오류를 정정합니다
  7. 프라이버시 증폭: 최종 키 생성을 위해 SHA3-512 해싱을 적용합니다
  8. 출력: 블록 간 스트림 기반 통신

모델 요구 사항

ONNX 모델은 다음을 충족해야 합니다:

  • 스펙트로그램 데이터에 대해 입력 형태 (batch, 204, 31)을 허용해야 합니다
  • 길이 512의 특징 벡터를 출력해야 합니다
  • ONNX Runtime과 호환되어야 합니다
  • float32 입력/출력을 지원해야 합니다

문제 해결

일반적인 문제

  1. 모델을 찾을 수 없음: QExtractor.h5의 경로가 올바른지 확인하십시오
  2. TensorFlow 오류: TensorFlow 설치 및 호환성을 확인하십시오
  3. 메모리 문제: 메모리 사용량을 줄이려면 spectrogram_size를 줄이십시오
  4. 성능: 사용 가능한 경우 GPU 가속을 사용하십시오

디버그 출력

블록은 광범위한 디버그 정보를 제공합니다:

  • 처리 상태에 대한 콘솔 출력
  • 중간 결과를 위한 메시지 포트
  • 유익한 메시지를 포함한 오류 처리

개발

새로운 기능 추가

  1. 적절한 특수화된 블록(예: spectrogram_block.py)을 수정합니다
  2. grc/에서 해당 GRC 블록 정의를 업데이트합니다
  3. 모듈을 다시 빌드합니다
  4. 예제로 테스트합니다

테스트

예제 스크립트를 실행합니다:

root@kitploit:~
cd examples
python3 fingerprint_example.py

라이선스

이 프로젝트는 GPL-3.0-or-later 라이선스에 따라 라이선스가 부여됩니다.

기여

  1. 저장소를 포크합니다
  2. 기능 브랜치를 생성합니다
  3. 변경 사항을 적용합니다
  4. 해당되는 경우 테스트를 추가합니다
  5. 풀 리퀘스트를 제출합니다

지원

문제 및 질문에 대해서는:

  1. 문제 해결 섹션을 확인하십시오
  2. 예제 파일을 검토하십시오
  3. 저장소에 이슈를 등록하십시오
  4. 개발 팀에 문의하십시오

감사의 글

  • PHYSEC 채널 핑거프린팅 연구를 기반으로 합니다
  • 딥러닝 추론을 위해 TensorFlow를 사용합니다
  • SDR 처리를 위해 GNU Radio와 통합됩니다
도구 다운로드
매개변수유형기본값설명
vector_sizeint512스펙트로그램 생성을 위한 FFT 크기
sample_ratefloat1e6Hz 단위의 SDR 샘플 레이트
center_freqfloat2.4e9Hz 단위의 SDR 중심 주파수