Skip to content

MerzSebastian/FSKrypt

Repository files navigation

FSKrypt

Transmit encrypted text over audio using FSK modulation, with strong encryption and error correction. Perfect for secure radio, audio, or offline data transfer.

Features

  • AES-256 and RSA encryption (password, key, or public/private key)
  • Reed-Solomon error correction (up to 32 byte errors)
  • FSK2/4/8/16 modulation for robust audio transmission
  • WAV output, adjustable bitrate (100–1200 bps)
  • No metadata files: all info in audio or password
  • Built-in performance analysis with visual chart output

Performance Analysis

Analyze performance and view results as a chart:

python analyze_performance.py

This generates a comprehensive performance chart:

Comprehensive Performance Analysis

Install

Clone this repo and install dependencies:

pip install -r requirements.txt

Usage

Encrypt with a password:

python encrypt.py -m "Secret message" -p "password" -o msg.wav

Decrypt:

python decrypt.py -i msg.wav -p "password"

Select Modulation (FSK2, FSK4, FSK8, FSK16)

You can choose the modulation scheme for both encryption and decryption:

python encrypt.py -m "Secret message" -p "password" -modulation fsk4 -o msg.wav
python decrypt.py -i msg.wav -p "password" -modulation fsk4

Optionally, add a context string for extra security (acts as a namespace/salt):

python encrypt.py -m "Secret message" -p "password" -context "MyNetwork" -o msg.wav
python decrypt.py -i msg.wav -p "password" -context "MyNetwork"

RSA mode:

python encrypt.py -genkeys -keyname mykeys
python encrypt.py -m "Top secret" -pub mykeys_public.pem -o msg.wav
python decrypt.py -i msg.wav -priv mykeys_private.pem

Test & Analyze

Run all tests:

python test.py

Analyze performance:

python analyze_performance.py

License

FSKrypt is released under the GNU GPLv3. See LICENSE for details.

Technical Details

  • Encryption:
    • AES-256-CBC (symmetric, with PBKDF2-HMAC-SHA256 key derivation)
    • IV (16 bytes) derived from password using PBKDF2-HMAC-SHA256
    • RSA-2048 (asymmetric, OAEP padding) for hybrid encryption
  • Error Correction:
    • Reed-Solomon (64 parity bytes, corrects up to 32 byte errors)
  • Salt/Context:
    • PBKDF2 uses a context string as salt for key/IV derivation (default: 'AudioEncryptKey2025' and 'AudioEncryptIV2025')
  • Modulation:
    • FSK2/4/8/16 (bit-to-tone mapping)
    • 44.1 kHz WAV output, 16-bit PCM
  • No metadata files: All info is embedded in the audio or derived from password/context

About

Transmit encrypted text over audio using FSK modulation (FSK2/4/8/16) with AES-256/RSA encryption and Reed-Solomon error correction. Perfect for secure radio, audio, or offline data transfer. No metadata files—everything is in the audio or password. Includes performance analysis tools and flexible bitrate/modulation options.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages