소개
fsteg은 파이썬으로 구현된 주파수 영역 스테가노그래피 엔진으로, 디지털 이미지의 루미넌스 채널에 있는 8×8 블록의 중간 주파수 DFT 계수를 양자화하여 UTF-8 텍스트 메시지를 내장합니다. Kishan-Agarwal-28이 개발했으며, 공간 영역 LSB 대체 방식보다 통계적 스테가노알리시스에 강건한 방식으로 비밀 정보를 숨깁니다. 이 도구는 자체 수정 라운드트립 검증 엔진과 CRC-32 무결성 검사를 통해 100% 비트 복구를 보장합니다.
상세정보
적응형 자체 수정 메커니즘
역 FFT 후 uint8으로 양자화될 때 발생하는 클리핑 및 오프셋 오류를 해결하기 위해, fsteg은 각 블록에 대해 최대 5번까지 라운드트립 시뮬레이션을 수행합니다. 양자화 수준을 결정 경계에서 반복적으로 allontan시켜 파리티 오류를 수정함으로써 완벽한 비트 복구를 달성합니다.
허미트 켤레 대칭 보존
공간 도메인에서 실수 값을 유지하기 위해, 주파수 도메인에서 수정된 계수의 허미트 켤레 좌표에 공진 대칭을 강제합니다. 이를 통해 역 변환 시 허수 성분이 발생하지 않도록 하여 순수 실수 이미지 출력을 보장합니다.
중간 주파수 대역 할당 및 블라인드 추출
각 8×8 블록당 정확히 14비트를 내장하며, DC 및 고주파 계수는 perceptual 안정성을 위해 제외됩니다. 메시지 길이 prefix(4바이트)와 엔드 마커(8바이트: 0x00FF00FFDEADBEEF)를 내장하여 수신자가 사전 길이를 알지 못해도 블라인드 추출이 가능합니다. 또한 IEEE 802.3 CRC-32를 통해 페이로드 변조 여부를 자동으로 감지합니다.
Windows용 원스탠드얼론 설치 (파이썬 불필요)
PowerShell을 관리자 권한으로 열고 다음 명령을 실행합니다:
irm https://raw.githubusercontent.com/Kishan-Agarwal-28/fsteg/main/scripts/install.ps1 | iex
패키지 관리자를 통한 설치
- Chocolatey:
choco install fsteg - Scoop:
scoop install https://github.com/Kishan-Agarwal-28/fsteg/releases/latest/download/fsteg.json - WinGet:
winget install fsteg - PyPI:
pip install fsteg또는uv tool install fsteg - Homebrew (macOS/Linux):
brew tap Kishan-Agarwal-28/tap && brew install fsteg
이미지 내장 용량 확인
내장 전에 이미지가 수용할 수 있는 최대 바이트 수를 확인합니다:
fsteg capacity cover.png
출력 예시:
Image size : 1920 × 1080 px
8×8 blocks : 32400
Total capacity: 453600 bits (56700 bytes)
Usable for text: ~56684 bytes (~56684 UTF-8 characters)
메시지 내장하기
커버 이미지에 텍스트 메시지를 내장하고 스테고 이미지를 생성합니다:
단일 줄 문자열:
fsteg embed cover.png "Project Titan: Launch window confirmed for 0400 UTC." stego.png
파일 내용 내장 (PowerShell):
fsteg embed cover.png (Get-Content -Raw classified_brief.txt) stego.png
숨은 메시지 추출하기
스테고 이미지에서 숨은 메시지를 복구하고 무결성을 검증합니다:
fsteg extract stego.png
성공 시 출력 예시:
[✓] Hidden message extracted:
Project Titan: Launch window confirmed for 0400 UTC.
이런 경우에 유용합니다
이미지 파일에 비밀 텍스트를 시각적으로 탐지되지 않게 숨겨야 하는 사용자에게 유용합니다. 예를 들어, 저작권 정보를 이미지에 내장하거나, 민간 채널에서 암호화된 키나 짧은 문서를 전달할 때 활용할 수 있습니다. 공간 영역 기법에 비해 채널 탐지에 강건하므로, 스테가노알리시스가 우려되는 환경에서 적합합니다.
지원 환경·시스템 요구사항
이 도구는 파이썬 3.11 이상에서 실행되며, Windows, macOS, Linux를 지원합니다. 핵심 의존성은 없지만, 파이썬 기반 설치를 사용할 경우 표준 파이썬 환경이 필요합니다. 독립 실행형 설치 스크립트를 사용하면 파이썬 없이도 Windows에서 바로 사용할 수 있습니다.
최신 버전·업데이트
현재 버전은 0.1.0이며, 공식 저장소의 main 브랜치에서 최신 소스를 확인할 수 있습니다. 업데이트는 GitHub 저장소를 통해 제공되며, 패키지 관리자(choco, scoop, winget 등)를 통해 최신 버전으로 업그레이드할 수 있습니다.
제한 사항·확인 사항
내장 용량은 이미지의 가로·세로 픽셀 수에 따라 결정되며, 8×8 블록 단위로 계산됩니다. 따라서 너비 또는 높이가 8의 배수가 아닌 이미지는 가장자리 픽셀이 사용되지 않습니다. 또한, 손실 압축 형식(JPEG, WebP 등)은 내장된 주파수 정보를 파괴하므로, 반드시 PNG, BMP, TIFF와 같은 무손실 형식만 사용해야 합니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


