Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Post-Quantum Decentralized Group Chat #204

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

tbraun96
Copy link
Contributor

@tbraun96 tbraun96 commented Jan 27, 2024

Post-Quantum Decentralized Group Chat (PQGC)

  • PQGC will first generate a cryptographically-secure random symmetric key of 32 bytes in length (as well as a nonce)
  • PQGC will then use a symmetric block cipher to encrypt the input plaintext using this random symmetric key and random nonce
  • PQGC will then asymmetrically encrypt the random symmetric key using the public key of each group member to generate n encrypted symmetric keys
  • Finally, PQGC will return a GroupMessage containing the ciphertext, n encrypted symmetric keys, and the relevant nonces.

The message size in bytes is 32n + ciphertext_len(message). The 32n part is figured because there will be n 32-byte kyber ciphertexts for the encrypted symmetric key, and ciphertext_len(message) is the output length of the symmetric block cipher against the input message. The message size is kept relatively small, and even with 1000 participants, the message is ~32KB which is highly acceptable for modern networks.

TODO:

  • Authenticity via signing
  • Ratcheting and forward secrecy
  • Move from options to errors
  • Fix invalid nonce sized inputs into kyber-pke (causes panics)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant