Arc Protocol v2.0 — Powered by libsignal
Arc Protocol
Sicherheits-Whitepaper
Version 2.0 — April 2026 · Atlas Associates Inc. · Public
Abstract
Arc ist ein datenschutzorientierter Messenger auf Basis des Signal-Protokolls, erweitert um Ed25519-Signaturen (AEGIS), clientseitige Sender-Anonymisierung und BLE-Mesh-Offline-E2EE.
Arc bietet Ende-zu-Ende-Verschlüsselung (E2EE) in jedem Plan kostenlos. Sicherheit steht nie hinter einer Paywall.
1. Designprinzipien
E2EE für alle
Vollständige Verschlüsselung in jedem Plan. Keine Paywall für Sicherheit.
Post-Quanten-Bereitschaft
Hybrides klassisches + PQC zum Schutz vor zukünftigen Quantencomputern.
Zero-Trust-Architektur
Der Server sieht niemals Klartextinhalte.
Keine Hintertüren
Keine Regierung kann die Verschlüsselung kompromittieren. Durch kryptographisches Design erzwungen.
2. Kryptographische Grundlage
| Komponente | Algorithmus | Standard | Schlüsselgröße |
|---|---|---|---|
| Key Exchange (Classical) | X25519 ECDH | RFC 7748 | 256-bit |
| Key Exchange (Post-Quantum) | ML-KEM-1024 (via libsignal) | FIPS 203 | Level 3 |
| Message Encryption | AES-256-GCM | NIST SP 800-38D | 256-bit |
| Message Authentication | XEdDSA (libsignal) | Signal XEdDSA spec | 256-bit |
| Key Derivation | HKDF-SHA256 | RFC 5869 | 256-bit output |
| Chain Key Derivation | HMAC-SHA256 | RFC 2104 | 256-bit |
| Protocol Base | Signal Protocol | Open specification | — |
Arc uses libsignal-client v0.65.2 (Rust, via FFI) — the same library used by Signal Messenger — for core protocol operations.
3. PQXDH: Hybrider Schlüsselaustausch
Quantencomputer, die X25519 brechen können, könnten in 10-15 Jahren existieren. "Jetzt ernten, später entschlüsseln"-Angriffe bedeuten, dass heute erfasste verschlüsselte Daten in Zukunft entschlüsselt werden könnten. Arc begegnet dem durch die Kombination von klassischem X25519 mit Post-Quanten ML-KEM-1024 — derselbe Ansatz, den Signal im September 2023 eingeführt hat.
Alice → Bob: 1. Fetch Bob's PreKey Bundle (Identity + Signed PreKey + One-Time PreKey + PQ PreKey) 2. 4× X25519 DH computations 3. ML-KEM-1024.Encaps(Bob's PQ Public Key) → (pq_ciphertext, pq_shared_secret) 4. Root Key = HKDF-SHA256(DH1‖DH2‖DH3‖DH4‖pq_shared_secret) 5. Send: Alice's keys + PQ ciphertext (1,088 bytes) + encrypted message
Ein Angreifer muss sowohl X25519 als auch ML-KEM-1024 brechen, um den Schlüsselaustausch zu kompromittieren.
| Parameter | Wert |
|---|---|
| Public Key | 1,184 bytes |
| Secret Key | 2,400 bytes |
| Ciphertext | 1,088 bytes |
| Shared Secret | 32 bytes |
| NIST Security Level | Level 3 (AES-192 equivalent) |
| NIST Standard | FIPS 203 (August 2024) |
4. Double Ratchet: Vorwärtsgeheimnis
Nach der Sitzungseinrichtung über PQXDH verwenden alle nachfolgenden Nachrichten den Double-Ratchet-Algorithmus, der Vorwärtsgeheimnis und Einbruchswiederherstellung bietet.
DH Ratchet (direction change): New Root Key = HKDF-SHA256(current_root_key, X25519_DH_output) Symmetric Ratchet (per-message): Message Key = HMAC-SHA256(chain_key, 0x01) Next Chain = HMAC-SHA256(chain_key, 0x02)
Every message uses a unique, independently derived key. Chain keys are immediately deleted after deriving the next key. Maximum 1,000 skipped message keys cached per session.
5. AES-256-GCM: Nachrichtenverschlüsselung
Jede Nachricht wird mit einem einzigartigen Message Key aus dem Double Ratchet mittels AES-256-GCM authentifizierter Verschlüsselung verschlüsselt.
Ciphertext = AES-256-GCM.Encrypt( key: message_key (32 bytes), nonce: random (12 bytes, never reused), aad: ratchet_public_key ‖ prev_chain_length ‖ message_number, plaintext: message content ) Per-message overhead: nonce (12B) + auth tag (16B) = 28 bytes
6. AEGIS: Nachrichtenauthentifizierung
AEGIS bietet Ed25519-Digitalsignaturen pro Nachricht. Weder Signal noch WhatsApp signieren einzelne Nachrichten.
| Eigenschaft | Beschreibung |
|---|---|
| Absender-Authentifizierung | Kryptographischer Nachweis, dass ein bestimmter Benutzer die Nachricht gesendet hat |
| Manipulationserkennung | Jede Änderung nach der Signierung wird erkannt |
| Nichtabstreitbarkeit | Der Absender kann das Senden der Nachricht nicht abstreiten |
XEdDSA Signing (via libsignal): payload = senderId ‖ "|" ‖ timestamp ‖ "|" ‖ content signature = XEdDSA.Sign(payload, X25519_private_key) → 64 bytes attached to message (Converts X25519 key to Ed25519 internally — no separate Ed25519 key needed) Verification: XEdDSA.Verify(payload, signature, sender_X25519_public_key) → verified | failed | noSignature
7. Sealed Sender: Absender-Anonymität
Sealed Sender verhindert, dass der Server weiß, wer eine Nachricht gesendet hat. Signals Implementierung verwendet ein Absenderzertifikat und Zustellungs-Token. Arc verwendet einen einfacheren ephemeren X25519-ECDH-Umschlag ohne serverseitige Token-Validierung.
Sender: 1. Generate ephemeral X25519 keypair 2. DH = X25519(ephemeral_private, recipient_identity_public) 3. AES_Key = HKDF-SHA256(DH, info="Arc Sealed Sender v1") 4. Envelope = AES-256-GCM(senderId + "\0" + payload, AES_Key) → Sealed Message = ephemeral_pub(32B) ‖ nonce(12B) ‖ ciphertext ‖ mac(16B)
Available for 1:1 chats where both participants have the Intelligence plan.
8. Gruppenverschlüsselung: Sender Keys
Arc verwendet den Sender-Key-Mechanismus des Signal-Protokolls für effiziente Gruppenverschlüsselung.
Encryption (libsignal group_encrypt): Chain Key → Message Key → AES-256-GCM (libsignal internal) HMAC signature (libsignal internal) → Output: SenderKeyMessage bytes Decryption (libsignal group_decrypt): Signature verify → Replay detect → Decrypt (libsignal internal) All crypto operations delegated to libsignal — no custom primitives.
9. Schlüsselverwaltung
| Schlüssel | Algorithmus | Lebensdauer | Speicher |
|---|---|---|---|
| Identity Key | X25519 | Account lifetime | Platform Secure Storage |
| Signing Key | XEdDSA (libsignal) | 90-day rotation | Platform Secure Storage |
| Signed PreKey | X25519 | Weekly rotation | Platform Secure Storage |
| One-Time PreKey | X25519 | Single use | Platform Secure Storage |
| PQ PreKey | ML-KEM-1024 | Single use | Platform Secure Storage (via libsignal) |
Private keys are stored in iOS Keychain / Android EncryptedSharedPreferences. Never in Hive, SharedPreferences, plain files, or cloud storage.
Elixir PreKey Server
PreKey bundles (Signed PreKey, One-Time PreKeys, PQ PreKeys) are managed by an Elixir-based PreKey server that handles bundle distribution, one-time key depletion tracking, and automatic replenishment signaling to clients.
10. Key Sync: Multi-Gerät
Arc uses independent key sets per device (no primary/linked hierarchy). To decrypt messages from the original device on a new device, users scan a QR code containing an ephemeral X25519 public key. Both devices perform ECDH, derive an AES-256-GCM key via HKDF, and securely transfer identity keys. Session TTL: 5 minutes.
11. BLE Mesh: Offline-E2EE
Arcs BLE-Mesh-Netzwerk ermöglicht E2EE-Kommunikation ohne Internet — einzigartig unter den großen Messengern.
12. Bedrohungsmodell
| Angreifer | Fähigkeit | Gegenmaßnahme |
|---|---|---|
| Passive Observer | Intercepts all traffic | E2EE: all content encrypted |
| Active MITM | Modifies traffic | AES-GCM auth + XEdDSA signatures |
| Server Compromise | Full Firestore access | No plaintext stored; keys client-only |
| Quantum Computer | Breaks X25519 | Hybrid PQXDH with ML-KEM-1024 |
| Key Compromise | Obtains session key | Double Ratchet forward secrecy |
| Replay Attack | Resends messages | Iteration tracking + unique nonces |
Wovor Arc nicht schützen kann
- • Kompromittiertes/gerootetes Gerät mit Malware
- • Screenshots durch den Empfänger
- • Serverseitige Metadatenanalyse (durch Sealed Sender gemildert)
- • Social Engineering
13. Standardkonformität
| Standard | Status |
|---|---|
| NIST FIPS 203 (ML-KEM) | Implemented via libsignal-client |
| RFC 7748 (X25519) | Implemented |
| XEdDSA (Signal spec) | Implemented via libsignal-client |
| RFC 5869 (HKDF) | Implemented |
| NIST SP 800-38D (AES-GCM) | Implemented |
14. Vergleich mit Signal & WhatsApp
| Funktion | Signal | Arc | |
|---|---|---|---|
| Protocol Base | Signal Protocol | Signal Protocol (licensed) | Signal Protocol (libsignal) |
| Post-Quantum Key Exchange | PQXDH (ML-KEM-1024, 2023) | PQXDH (via Signal Protocol) | PQXDH (ML-KEM-1024, via libsignal) |
| Post-Quantum Ratchet | SPQR Triple Ratchet (Oct 2025) | Not confirmed | Planned |
| Per-Message Signatures | DH authentication only | DH authentication only | XEdDSA (libsignal) ✦ |
| Sealed Sender | Cert + delivery token | Not implemented | Ephemeral ECDH envelope ✦ |
| Offline E2EE | Not supported | Not supported | BLE Mesh (Bridgefy SDK) ✦ |
| Multi-Device | Primary + Linked | Primary + Linked | Independent keys + Key Sync ✦ |
| Key Separation | XEdDSA conversion | XEdDSA conversion | XEdDSA (same as Signal) — unified key pair ✦ |
| Open Source | Fully open source | Partial | Whitepaper published |
Transparenzhinweis: Signal hat PQXDH 2023 implementiert und 2025 den SPQR Triple Ratchet eingeführt. Arcs PQC basiert auf Signals Open-Source-libsignal. Arcs eigene Differenzierungsmerkmale sind mit ✦ markiert.
15. Fazit
Das Arc-Protokoll baut auf dem bewährten Signal-Protokoll auf und erweitert es um drei proprietäre Sicherheitsschichten:
XEdDSA (libsignal)
Per-message Ed25519 signatures provide explicit sender authentication, tamper detection, and non-repudiation — absent from Signal and WhatsApp.
Client-Side Sealed Sender
Sender anonymity via ephemeral ECDH envelope, entirely on the client.
BLE Mesh (Bridgefy SDK Transport Encryption)
E2EE via Bluetooth without internet — unique among major messengers.
Wir begrüßen Sicherheitsforschung und verantwortungsvolle Offenlegung.
Download PDF
Enter your details to download the Arc Protocol Whitepaper.
Version 2.0 — April 2026 · Atlas Associates Inc.
