dusk-network / dusk-zerocaf

Zerocaf: A library built for EC operations in Zero Knowledge.
https://dusk.network/
MIT License
53 stars 11 forks source link

Implement conversion between FieldElement & RistrettoScalar #6

Closed CPerezz closed 5 years ago

CPerezz commented 5 years ago

Another important step on the implementation is to create the conversion FieldElement <-> RistrettoScalar.

RistrettoScalar struct was implemented by Dalek devs on Curve25519. So we can maybe review it and pick it or implement it by ourselves.

CPerezz commented 5 years ago

@Bounce23 #7 only needs this issue to be solved in order to successfully close it. So maybe we can prio this and close the FieldElement implementation. Which are your thoughts?

LukePearson1 commented 5 years ago

I agree with you on the choice to close the FieldElement implementation. However rom reading the paper on Decaf, to determine the path for using the Ristretto Scalar Field, to continue with Montgomery reduction issue, we first must outline the exact functions which will use this modulo. Then build the code, minus the calculated modular reduction and denote them as WIP, this is until we calculate this reduced number. This number can be calculated from the 1985 Peter Montgomery paper we have on file. However, the use case in the paper given is not for a change in group order. This paper will therefore need review and potential adjustment to our implementation.

CPerezz commented 5 years ago

With 20b492d , 3c98295 and 9aaa417 Ristretto255Scalar is implemented correctly and tested. @Bounce23 can you review the last 3 commits and give me the OK? Then I'll be able to close this issue and proceed to merge #7

CPerezz commented 5 years ago

Closed since the review of the #7 from @Bounce23 was positive!