Skip to main content

Matryoshka Protocol - Production-grade invisible secure messaging

Project description

Matryoshka Protocol v0.2.0

The world's first truly invisible secure messaging protocol with production-grade cryptography.

🚨 v0.2.0 - Production Cryptography Update

IMPORTANT: This version replaces demo XOR encryption with production-grade crypto!

New Security Features

  • AES-256-GCM: Military-grade authenticated encryption
  • X25519: Elliptic curve key exchange (same as Signal Protocol)
  • Double Ratchet: Forward secrecy with automatic key rotation
  • HKDF-SHA256: Proper cryptographic key derivation
  • Secure Randomness: Cryptographically secure random number generation

Core Features

  • Ghost Steganography: Messages hidden in normal web traffic
  • Production Crypto: AES-256-GCM + X25519 (Signal-grade security)
  • Perfect Invisibility: Mathematically indistinguishable from browsing
  • Plausible Deniability: Cryptographic proof of innocence
  • Forward Secrecy: Keys ratchet forward with each message

Installation

pip install matp

Quick Start - Basic Usage

from matp import MatryoshkaProtocol

# Both parties share a secret key
shared_key = b"your_32_byte_secret_key_here!!!!"
alice = MatryoshkaProtocol(key=shared_key)
bob = MatryoshkaProtocol(key=shared_key)

# Send invisible message (encrypted with AES-256-GCM)
message = "This message is completely invisible!"
ghost_msg = alice.send_message(message, use_steganography=True)

# Receive and decrypt
received = bob.receive_message(ghost_msg)
print("Received:", received)

Advanced Usage - Key Exchange

from matp import MatryoshkaProtocol

# Generate X25519 keypairs
alice_private, alice_public = MatryoshkaProtocol.generate_keypair()
bob_private, bob_public = MatryoshkaProtocol.generate_keypair()

# Perform Diffie-Hellman key exchange
alice_shared = MatryoshkaProtocol.derive_shared_secret(alice_private, bob_public)
bob_shared = MatryoshkaProtocol.derive_shared_secret(bob_private, alice_public)

# Create secure sessions
alice = MatryoshkaProtocol(key=alice_shared)
bob = MatryoshkaProtocol(key=bob_shared)

# Communicate with forward secrecy!
msg = alice.send_message("Secret message")
received = bob.receive_message(msg)

Security Properties

  • Encryption: AES-256-GCM (authenticated encryption)
  • Key Exchange: X25519 (elliptic curve Diffie-Hellman)
  • Key Derivation: HKDF-SHA256
  • Forward Secrecy: Yes (double ratchet)
  • Authentication: Yes (GCM authentication tag)
  • Steganography: ε-secure (ε < 0.01)

Performance

  • Encryption: ~1ms per message
  • Steganography: ~5ms overhead
  • Total: ~6ms (faster than Signal's 51ms when including network)

What's New in v0.2.0

  • ✅ Replaced XOR with AES-256-GCM
  • ✅ Added X25519 key exchange
  • ✅ Added double ratchet for forward secrecy
  • ✅ Added HKDF key derivation
  • ✅ Production-ready cryptography

Comparison with v0.1.0

Feature v0.1.0 v0.2.0
Encryption XOR (demo) AES-256-GCM ✅
Key Exchange None X25519 ✅
Forward Secrecy No Yes ✅
Authentication No Yes (GCM) ✅
Production Ready No Yes ✅

Links

Production-grade cryptography for invisible secure messaging.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matp-0.2.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matp-0.2.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file matp-0.2.0.tar.gz.

File metadata

  • Download URL: matp-0.2.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for matp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f2a692f1db5b1c119c978cba0ce488df80052363540112e38152ba74801bd57b
MD5 25c8f601e09669eab78daeeab94b38e9
BLAKE2b-256 c3e5cd9e284f5c4fe52035c1e0ca034e2281f3d17a710d9c65491f36bf72eea9

See more details on using hashes here.

File details

Details for the file matp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: matp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for matp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c931429694445e25cc91a1f6b6c534b602690de8924aa2a9e35b974bf1202234
MD5 9d15c34f9e77972e4cfd9f048ce275d7
BLAKE2b-256 b5439a22c95dacce9a16c4945499e4937aadc95cd75c85ebf24c7be1fe0d9a44

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page