Given the recent news of China (potentially) breaking RSA encryption and thus posing a direct threat to our communications, I decided that this project was now needed by engineers.
The Citadel Protocol is a high-performance asynchronous signal-like protocol written in rust that extends upon the ratcheting algorithm by using multi-layered ratcheting, multi-layered encryption, post-quantum key exchange, configurable true perfect forward secrecy (each packet gets a unique encryption key via re-keying) or best-effort modes, file-transfer encryption, built-in NAT traversal (no libp2p), configurable credentialed authentication (via argon-2id), device-dependent authentication, or passwordless authentication, amongst other features.
The Citadel Protocol is built on top of an underlying transport protocol. Either TCP, TLS, or QUIC may be used for transport (Default TLS for hybrid cryptography). The Citadel Protocol is used to communicate between nodes in the network.
The network topology contains a central globally-reachable node that is, by default, used for peer discovery and NAT traversal (this node can have application logic endowed unto it, but is not required). Peers connect to this central server, and, upon registration and connection, are able to then message pass amongst each other and even the central server.
Since NAT traversal is easier to perform with UDP, the QUIC protocol is used for P2P connections as this is complimentary. For Client to server connections, the server can choose to use TCP, TLS, or QUIC as an underlying protocol.
Using the Citadel SDK, rust developers can easily create hyper-secure post-quantum applications that are suitable for client-to-server and p2p applications.
I have been the only developer for the past 5 years. I am now inviting others to come and help improve and guide this project to build an ecosystem of security-aware rust engineers living in the future, for the future.