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

Improve description of Dilithium #40

Merged
merged 2 commits into from
Feb 7, 2024

Conversation

kriskwiatkowski
Copy link
Contributor

I suggest to augment description of Dilithium/MLDSA.

@kriskwiatkowski kriskwiatkowski force-pushed the kris/dilithium branch 2 times, most recently from 7650dd3 to da8160d Compare January 26, 2024 22:21
@@ -460,7 +464,13 @@ Understanding EUF-CMA security is essential for individual involved in designing

## Details of FALCON, Dilithium, and SPHINCS+ {#sig-scheme}

Dilithium [Dilithium] is a digital signature algorithm (part of the CRYSTALS suite) based on the hardness lattice problems over module lattices (i.e., the Module Learning with Errors problem (MLWE)). The design of the algorithm is based on the "Fiat Shamir with Aborts" method that leverages rejection sampling to render lattice based FS schemes compact and secure. Additionally, Dilithium offers both deterministic and randomized signing. Security properties of Dilithium are discussed in Section 9 of {{?I-D.ietf-lamps-dilithium-certificates}}.
Dilithium [Dilithium] is a digital signature algorithm (part of the CRYSTALS suite) based on the hardness lattice problems over module lattices (i.e., the Module Learning with Errors problem (MLWE)). The design of the algorithm is based on the "Fiat-Shamir with Aborts" {{Lyu09}} framework introduced by Lyubashevsky, that leverages rejection sampling to render lattice based FS schemes compact and secure. The public key of Dilithium is essentially a Module‐LWE sample of the form (A, t:=A·s1 + s2), where A is a matrix and s1 and s2 are (secret) error vectors over Rq = GF(q)[X]/(X^256+1), where q=8380417. Dilithium uses uniform distribution over small integers for computing coefficients in error vectors, which makes the scheme easier to implement.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kriskwiatkowski Thanks for updating the paragraph.
We tried before explaining the math behind Dilithium but received feedback from WG to stir away from the crypto math behind these algorithms as this would not be necessary to know from an engineer/protocol designer POV. Let me know if you can you modify it to include a little bit less math, if possible?

Copy link
Contributor Author

@kriskwiatkowski kriskwiatkowski Feb 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's a reply I kind of expected.
I'm happy to do it, let me think about it

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, slight improvement then. I've removed all the math. Anyone can be find it in the Lyu09 if needed

@auriee auriee merged commit 9997b96 into tireddy2:main Feb 7, 2024
1 check passed
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