Ristretto Basepoint issues on Compression/Decompression process. #78
Comments
Product of previous discussions with @Bounce23 and a discussion with @bellesmarta where we were checking that the 4coset listed on https://ristretto.group/details/isogeny_encoding.html#torquing-points-to-lift-mathcal-e--mathcal-e4-to-mathcal-e--mathcal-e2- was right doing something like: Maybe the problem is that the Basepoint we choose was not the right one in terms of: The Basepoint is inside a 4-coset with 3 other points, but as we know, only one of them satisfies the Ristretto constraints and then, only one can be the correct RistrettoPoint. Line 57 in e8066b5
It might be the source of this unexpected behavior. |
Furthering the above comment, including the talks, the base point has been proven to be the correct one. However, there is an issue with point selection. As each Edwards/Tedwards curve admits certain formulae, we are searching for the one that has These requirements are satisfied by the base point selection in #76 but still fail the decompression process. There are a couple of reasons this could be the case, the most likely is the equivalence of inverse square root shown here. This will be addressed this evening and fixed to create correct equivalence in the coset. |
Since, the only way to get a 100% valid RistrettoPoint (only using the library as it is right now) is basically getting the identity and add it to itself, which will produce a valid RistrettoPoint that we will be able to encode and decode, closing #79 will be a huge advance in order to know what happens with the Basepoint. Because all of the conditions that Ristretto/Decaf give to a point that lives on a 4-coset to be the one chosen as the RistrettoPoint valid encoding are:
The basepoint satisfies this but does not work. So being able to get other points from the lib itself will be nice (checking them correctness obviously). |
I'll obtain other working values that satisfy the basepoint and its a case of trial and error from the coset values. I will obtain all 4 from the coset from which I gave you last time. |
The standard behavior of the
RistrettoPoint
works like:RistrettoPoint --> compression --> CompressedRistretto
CompressedRistretto --> decompression --> RistrettoPoint
Obviously, the expected behavior for a point compression followed by a point decompression is to obtain the same exact point in Twisted Edwards Extended Coordinates.
We should obtain the same RistrettoPoint we used as input.
Also, with the equality formulas that appear on:
https://ristretto.group/formulas/equality.html this statement mentioned above should happen always.
So after making some tests, I verified that:
This happened on: e8066b5 and my ideas are:
The text was updated successfully, but these errors were encountered: