Skip to content

Draft: Post-Quantum Decentralized Group Chat#204

Open
tbraun96 wants to merge 2 commits intomasterfrom
group_crypto
Open

Draft: Post-Quantum Decentralized Group Chat#204
tbraun96 wants to merge 2 commits intomasterfrom
group_crypto

Conversation

@tbraun96
Copy link
Copy Markdown
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