Skip to content

Conversation

@chadsec1
Copy link
Member

@chadsec1 chadsec1 commented Aug 31, 2025

This pull request addresses some weaknesses in the previous SMP implementation, significantly improving the cryptographic security of the process, and significantly improving plausible unlikability.

Plausible unlinkability significantly improved if server is not actively conducting a MiTM attack, and is rather maliciously passively monitoring requests.

I have added:

  • ChaCha20Poly1305 encryption of the question, nonces, and even the proof. Protecting crucial metadata against passive adversaries
  • Less aggressive answer normalization to significantly improve derived hash entropy
  • Improved SMP code readability, and error handling

I have also changed:
AES-GCM to ChaCha20Poly1305: I have chosen this because less dependent on hardware blackbox accelerators (they could contain implementation flaws, or even backdoors), and ChaCha has simpler software implementation, with less potential side channel attacks.
I've chosen it over XChaCha20Poly1305 because the latter is not widely used in many projects, and is not available in cryptography package we currently depend on.

It's not ideal, in the sense that I've also swapped AES for ChaCha for file encryption, but should be fine.

@chadsec1 chadsec1 merged commit 6ca9be6 into main Sep 1, 2025
1 of 3 checks passed
@chadsec1 chadsec1 deleted the feat/encrypt-smp branch September 1, 2025 07:39
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.

2 participants