Design: End-to-End Encryption Messaging System
Design focuses on encryption architecture, key management, message flow, and storage. UI/UX and network transport protocols are out of scope.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
+-------------+ +----------------+ +-------------+
| Sender's | <---> | Message Relay | <---> | Receiver's |
| Device | | Server | | Device |
+-------------+ +----------------+ +-------------+
| | |
| Encrypt message | |
| with receiver's | |
| public key | |
|--------------------->| |
| | Store encrypted |
| | message if receiver |
| | offline |
| |----------------------->|
| | | Decrypt message
| | | with private key
| | |
+----------------+ +----------------+ +----------------+
| Key Exchange | | Encrypted Msg | | Decryption & |
| Service | | Storage | | Verification |
+----------------+ +----------------+ +----------------+