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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RRC_steganography | Kitploit
도구/GitHubGitHub/ryehr/rrc_steganography
SteganographyCryptographyMachine LearningPapers & ResearchLearning & EducationAI Security
GitHubryehr/rrc_steganography

RRC_steganography

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

RRC 스테가노그래피

회전 범위 코딩(RRC) 스테가노그래피 — 대규모 언어 모델이 생성한 자연어 텍스트에 비밀 메시지를 은닉하는 효율적이고 증명 가능한 보안성을 갖춘 언어적 스테가노그래피 기법입니다.

논문: Efficient Provably Secure Linguistic Steganography via Range Coding

작동 방식

단계설명
임베드 (알고리즘 3)비밀 메시지를 십진수 값으로 변환하고, LM의 확률 분포와 PRNG 생성 오프셋에 따라 줄어드는 구간 내에서 값을 반복적으로 회전시킵니다. 각 회전 단계에서 하나의 토큰이 생성됩니다.
추출 (알고리즘 4)스테고텍스트에 LM을 다시 실행하여 구간 경계를 복원한 다음, 역회전하여 원래의 십진수 값으로 되돌리고 이진화합니다.

회전 메커니즘은 기본(vanilla) 범위 코딩 스테가노그래피의 두 가지 문제를 해결합니다:

  1. 확률 분포 보존 — 회전된 비밀 값은 각 구간 내에서 균일하게 분포하므로 토큰 선택이 원래 LM 분포를 따릅니다.
  2. 새로운 난수성 — 각 단계에서 새로운 PRNG 오프셋을 사용하여 난수 재사용을 방지합니다.

저장소 구조

root@kitploit:~
.
├── RRC_embed.py   # Embedding (Algorithm 3) 
├── RRC_extract.py   # Extraction (Algorithm 4) 
├── test_roundtrip.py         # Self-contained end-to-end verification script
├── requirements.txt          # Python dependencies
└── README.md

요구 사항

  • Python ≥ 3.10
  • PyTorch ≥ 2.0
  • Transformers ≥ 4.35

의존성 설치:

root@kitploit:~
pip install -r requirements.txt

빠른 시작

1. 정확성 검증

라운드트립 테스트는 meta-llama/Llama-2-7b-hf를 사용하며 CPU/CUDA에서 실행됩니다:

root@kitploit:~
python test_roundtrip.py

예상 출력:

root@kitploit:~
>>> Step 3: Verification
    Original: 10110011001010111010011100101011...
    Extracted: 10110011001010111010011100101011...

    ✅ SUCCESS — extracted message matches perfectly!

2. 비밀 메시지 임베드

idx와 text 열을 포함하는 프롬프트 파일 0.Prompts.tsv를 준비한 후 실행하세요:

root@kitploit:~
python RRC_embed.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --top_k -1

3. 비밀 메시지 추출

root@kitploit:~
python RRC_extract.py \
    --language_model meta-llama/Llama-3.1-8B \
    --bit_length 128 \
    --key 42 \
    --input_file 1.RC_decimal_Llama-3.1-8B_bit128.tsv

⚠️ 중요: 송신자와 수신자는 올바른 추출을 위해 동일한 언어 모델, 키, 비트 길이, top-k 설정을 사용해야 합니다.

CLI 인자

RRC_embed.py

RRC_extract.py

기술 참고: Decimal 모듈로 연산

Python의 Decimal 타입은 % 연산자에 대해 절삭 나눗셈을 사용하므로 음수 나머지를 반환할 수 있습니다 (예: Decimal('-19672') % Decimal('65536') → 45864 대신 -19672). 이 구현은 항상 결과가 [0, m) 범위에 있도록 보장하는 decimal_mod 헬퍼를 사용합니다:

root@kitploit:~
def decimal_mod(a, m):
    return a - m * (a / m).to_integral_value(rounding=ROUND_FLOOR)

⚠️ 안정적인 비밀 추출을 위해 일부 연산(sort, cumsum)은 CUDA 비결정성을 피하기 위해 float64 정밀도로 CPU에서 처리됩니다. 이는 인코딩-디코딩 일관성을 보장하는 대신 일부 속도를 희생합니다.

도구 다운로드
인자기본값설명
--language_modelmeta-llama/Llama-3.1-8BHuggingFace 모델 식별자
--bit_length128비트 단위 비밀 메시지 길이
--top_k-1Top-k 절단; -1 = 전체 어휘
--key42대칭 키 K (PRNG 시드)
--part / --part_max0 / 2대규모 프롬프트 세트에서 병렬 실행용
인자기본값설명
--language_modelmeta-llama/Llama-3.1-8B임베딩 모델과 일치해야 함
--bit_length128임베딩 설정과 일치해야 함
--top_k-1임베딩 설정과 일치해야 함
--key42임베딩 키와 일치해야 함
--input_file(필수)인코더에서 생성된 TSV 경로