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 messagingGhostMode- Steganographic messagingFastGhostMode- High-performance steganographyDeadDropProtocol- Asynchronous message dropsMatryoshkaGroupManager- Group messagingquantum.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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
matp-0.5.1-py3-none-any.whl
(52.7 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ffcc97c02089a581dbaf0555ac861fc9c52db5e6bbdddcdbbae61ab52374bf7
|
|
| MD5 |
744e40452e2527411e22536e4348811e
|
|
| BLAKE2b-256 |
82a6785a70028ff5f3ef5ccdba7260de4c3bb281c5235cb297647d1583e9c24d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e768eac48ed6fc7cd7388a703d7118e6901db8f5c83177a88bb7e2c3cd1da46b
|
|
| MD5 |
754ef8f47a8fcd16d41b31df688a93d3
|
|
| BLAKE2b-256 |
44bd0dfa7e5e9e128f6f2c1a070d7e89054c3f94bbe1a0125e6b8ef432a0964f
|