# signalapp/Signal-iOS

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/signalapp-signal-ios).**

12,128 stars · 3,438 forks · Swift · AGPL-3.0

## Links

- GitHub: https://github.com/signalapp/Signal-iOS
- Homepage: https://signal.org
- awesome-repositories: https://awesome-repositories.com/repository/signalapp-signal-ios.md

## Description

Signal-iOS is an encrypted messaging client that provides secure communication for voice calls, media, and text. It functions as a complete implementation of the Signal Protocol, utilizing end-to-end encryption to ensure that only intended recipients can access transmitted data.

The application distinguishes itself through the integration of advanced cryptographic standards, including the use of elliptic curve cryptography for identity verification and digital signature validation. It employs a double ratchet key exchange mechanism to rotate encryption keys for every individual message, ensuring forward secrecy. Furthermore, the client incorporates post-quantum key encapsulation to protect communications against future decryption threats from large-scale quantum computers.

Beyond its core messaging capabilities, the project maintains consistent security states across multiple linked devices through a synchronization mechanism that distributes encrypted key material. All local message history and metadata are protected by persistent database encryption managed by the operating system. The software is distributed as a native application for the iOS platform.

## Tags

### Security & Cryptography

- [End-to-End Encrypted Messaging Frameworks](https://awesome-repositories.com/f/security-cryptography/end-to-end-encrypted-messaging-frameworks.md) — Provides a secure communication application that uses end-to-end encryption to protect messages, voice calls, and media across multiple mobile devices.
- [Cryptographic Protocols](https://awesome-repositories.com/f/security-cryptography/cryptographic-protocols.md) — Implements cryptographic protocols for establishing secure, forward-secret communication channels using advanced key exchange and post-quantum resistant algorithms.
- [Forward Secrecy Implementations](https://awesome-repositories.com/f/security-cryptography/forward-secrecy-implementations.md) — Ensures that past communications remain secure and unreadable even if a long-term encryption key is compromised in the future.
- [Cryptographic Identity Verification](https://awesome-repositories.com/f/security-cryptography/identity-verification-modules/cryptographic-identity-verification.md) — Confirms the authenticity of contacts by validating unique security keys to prevent impersonation and ensure that messages are delivered to the correct person.
- [Key Exchange Protocols](https://awesome-repositories.com/f/security-cryptography/key-exchange-protocols.md) — Updates session keys for every individual message to ensure forward secrecy and break the link between compromised keys and past communications.
- [Asynchronous Key Exchange Protocols](https://awesome-repositories.com/f/security-cryptography/asynchronous-key-exchange-protocols.md) — Facilitates secure communication between parties who are not online simultaneously by storing and retrieving public keys from a central directory.
- [Digital Signature Schemes](https://awesome-repositories.com/f/security-cryptography/digital-signature-schemes.md) — Validates digital signatures using elliptic curve keys to confirm the integrity and authenticity of data transmitted between parties in a messaging environment. ([source](https://signal.org/docs/))
- [Elliptic Curve Cryptography](https://awesome-repositories.com/f/security-cryptography/elliptic-curve-cryptography.md) — Uses mathematical properties of elliptic curves to perform efficient key exchange and digital signature verification for secure identity authentication.
- [Post-Quantum Cryptography](https://awesome-repositories.com/f/security-cryptography/post-quantum-cryptography.md) — Protects sensitive digital conversations against future decryption threats by implementing advanced algorithms that remain secure even against powerful quantum computers.
- [Post-Quantum Key Exchange](https://awesome-repositories.com/f/security-cryptography/post-quantum-key-exchange.md) — Integrates quantum-resistant algorithms into the key exchange process to protect encrypted data against future decryption by large-scale quantum computers.
- [Session Synchronization](https://awesome-repositories.com/f/security-cryptography/session-synchronization.md) — Maintains consistent security states across multiple linked devices by distributing encrypted key material through a secure, authenticated messaging channel.
- [Encrypted Persistence](https://awesome-repositories.com/f/security-cryptography/data-encryption/encrypted-persistence.md) — Secures all stored message history and metadata on the device using high-performance symmetric encryption keys managed by the operating system.
- [Encryption Key Management](https://awesome-repositories.com/f/security-cryptography/encryption-key-management.md) — Rotates encryption keys for every individual message to ensure that past or future communications remain secure even if a specific session key is compromised. ([source](https://signal.org/docs/))

### Networking & Communication

- [Message Synchronization](https://awesome-repositories.com/f/networking-communication/message-synchronization.md) — Maintains consistent encrypted session states and message history across multiple linked devices for a single user.
