docs: added comments for the splitting of S in eddsa #89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In EdDSA, the
S
scalar in the signature is now split in 2, to prevent overflowing --> S should NOT be reduced modulo r, the size of the snark field. So if n is the bit length of r, S is split in S1, S2 such that S = 2^(n/2)S1+S2, so S1 and S2 are the digits of S in basis 2^(n/2).Breaking changes
The signature struct is now
Examples of how to properly split S given a signature is in std/signature/eddsa/eddsa_test.go. If r is n-bits long, splitting S amounts to take the first n/2 bits of the part of the signature corresponding to S for S1, and the last n/2 bits of the part of the signature corresponding to S for S2 (the signature is a byte slice point||S, the first n-bits chunk is the compressed point, the last bits are S).