Design Trade-offs

Cipher's Architecture Overview

Cipher’s architecture deliberately prioritizes certain security and structural properties at the expense of others. This section outlines the trade-offs consciously accepted during the design process.

1. Usability vs. Security

Cipher enforces high-entropy channel structures and decentralized key handling. As a result, the system demands more discipline from users:

  • Memorizing structured channels

  • Securely storing private keys

  • Managing contact lists

There is no account recovery, no server logins, and no backup services, which maximizes privacy but increases user responsibility.

2. No Intermediary Convenience

Cipher does not facilitate:

  • Message forwarding

  • Multi-device sync

  • Auto-saving history

These features introduce centralization risks and were excluded to preserve full user control and data minimization.

3. Performance Overhead

Due to the cascade-based polymorphic encryption, encryption and decryption processes are heavier than classical single-pass algorithms. Users may experience longer processing times for media files or large documents, especially on low-end devices. Currently, all files supported by Cipher are encrypted and decrypted almost instantly. Upcoming releases will support larger files, introducing loading states to handle extended processing.

4. Stateless by Design

Cipher stores nothing by default and clears everything upon refresh or manual reset. This makes the application safe for high-risk environments, but less forgiving for casual users or non-technical individuals.

5. Limited Scalability for Real-Time Communication

Cipher is built for asynchronous, secure exchanges, not for live, real-time messaging. The lack of server coordination means no push notifications, session handshakes, or persistent chat states. This limitation is mitigated by allowing users to integrate Cipher with existing real-time messaging apps. These platforms already offer delivery, sync, and live communication features—Cipher merely transforms the payload into an encrypted form that these services cannot read, preserving user convenience without compromising end-to-end encryption or introducing platform dependencies.

Last updated