Skip to main content

Matryoshka Protocol - Invisible quantum-resistant messaging

Project description

Matryoshka Protocol (MATP)

Invisible secure messaging with steganography, post-quantum cryptography, and zero-knowledge proofs.

📦 Features

  • Invisible messaging - Hide encrypted messages in normal web traffic
  • Post-quantum cryptography - Kyber-512 KEM and Dilithium-2 signatures
  • Group messaging - Fractal Group Ratchet for efficient group encryption
  • Zero-knowledge proofs - Sigma protocol for plausible deniability
  • Multiple steganography modes - JSON API, EXIF, Fast Ghost
  • Classical crypto fallback - X25519, Ed25519, AES-256-GCM

📦 Installation

pip install matp

🚀 Quick Start

1. Basic 1-to-1 Messaging

from matp import MatryoshkaProtocol

# Initialize
alice = MatryoshkaProtocol()
bob = MatryoshkaProtocol()

# Key exchange (X25519)
alice_priv, alice_pub = MatryoshkaProtocol.generate_keypair()
bob_priv, bob_pub = MatryoshkaProtocol.generate_keypair()

shared_secret = MatryoshkaProtocol.derive_shared_secret(alice_priv, bob_pub)
alice_session = MatryoshkaProtocol(key=shared_secret)
bob_session = MatryoshkaProtocol(key=shared_secret)

# Send invisible message
msg = alice_session.send_message("Secret meeting at midnight")
# Looks like: {"status": "success", "data": {...}}

# Receive
plaintext = bob_session.receive_message(msg)

2. Ghost Mode (Perfect Invisibility)

from matp import GhostMode

key = b"shared_secret_key_32_bytes_long!"
alice = GhostMode(key=key)
bob = GhostMode(key=key)

# Send hidden in GitHub API response
cover = alice.send_invisible("Secret data", service="github")
# Returns: {"id": 123456, "login": "user", "bio": "<encrypted>", ...}

# Receive
message = bob.receive_invisible(cover)

3. Fast Ghost Mode (Speed + Invisibility)

from matp import FastGhostMode

key = b"benchmark_key_32_bytes_padding!!"
alice = FastGhostMode(key=key)
bob = FastGhostMode(key=key)

# 0.01ms latency, perfect invisibility
cover = alice.send("Fast secret message")
message = bob.receive(cover)

4. Dead Drop Protocol

from matp import DeadDropProtocol

key = b"dead_drop_key_32_bytes_padding!!"
dead_drop = DeadDropProtocol(key=key)

# Alice drops message (no direct connection to Bob)
location = dead_drop.drop_message("secret_spot_42", "The eagle has landed")

# Bob picks up later
message = dead_drop.pickup_message(location)

5. Group Messaging

from matp import MatryoshkaGroupManager

# Create users
alice = MatryoshkaGroupManager("alice")
bob = MatryoshkaGroupManager("bob")

# Alice creates group
group = alice.create_group("team", "Secret Team")

# Bob joins
invite = group.export_invite()
bob.join_group(invite)

# Alice sends invisible group message
msg = alice.send_to_group("team", "Meeting at 3pm!")
# Returns: {"status": "success", "data": {...}}  # Looks like normal API

# Bob receives
received = bob.receive_group_message(msg)
print(received['message'])  # "Meeting at 3pm!"

6. Quantum-Resistant Crypto (Optional)

from matp import quantum

qc = quantum.get_quantum_crypto()

# Generate post-quantum keypair
keypair = qc.generate_kem_keypair()

# Encapsulate shared secret
kem_ct = qc.kem_encapsulate(keypair.public_key)

# Decapsulate
shared_secret = qc.kem_decapsulate(keypair.secret_key, kem_ct.ciphertext)

📚 API Reference

Core Classes

  • MatryoshkaProtocol - 1-to-1 encrypted messaging
  • GhostMode - Steganographic messaging
  • FastGhostMode - High-performance steganography
  • DeadDropProtocol - Asynchronous message drops
  • MatryoshkaGroupManager - Group messaging
  • quantum.get_quantum_crypto() - Post-quantum cryptography

⚠️ Disclaimer

Research prototype. Use for educational purposes. Not audited for production use.

📄 License

Apache 2.0

👤 Author

Sangeet Sharma

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.5.1.tar.gz (44.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.5.1-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: matp-0.5.1.tar.gz
  • Upload date:
  • Size: 44.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.5.1.tar.gz
Algorithm Hash digest
SHA256 1ffcc97c02089a581dbaf0555ac861fc9c52db5e6bbdddcdbbae61ab52374bf7
MD5 744e40452e2527411e22536e4348811e
BLAKE2b-256 82a6785a70028ff5f3ef5ccdba7260de4c3bb281c5235cb297647d1583e9c24d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: matp-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 52.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.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e768eac48ed6fc7cd7388a703d7118e6901db8f5c83177a88bb7e2c3cd1da46b
MD5 754ef8f47a8fcd16d41b31df688a93d3
BLAKE2b-256 44bd0dfa7e5e9e128f6f2c1a070d7e89054c3f94bbe1a0125e6b8ef432a0964f

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