Skip to content

Conversation

@daxpedda
Copy link
Contributor

This PR updates the Montgomery to Edwards isogeny mapping to a more optimized version.
Notably reducing inversions from two to one.

This is currently only used for hash2curve, which actually has a more optimized mapping I will add in a different PR. This functionality will however be used when adding Montgomery to Edwards conversions in #1306.

@daxpedda daxpedda changed the title Optimize Montgomery to Edwards isogeny mapping Optimize Montgomery to Edwards conversions Aug 2, 2025
@daxpedda daxpedda mentioned this pull request Aug 3, 2025
55 tasks
@daxpedda daxpedda force-pushed the edward-isogeny branch 6 times, most recently from 173d682 to 5bed37e Compare September 4, 2025 09:24
@tarcieri
Copy link
Member

tarcieri commented Oct 30, 2025

I'm a little confused what's happening here. The input and output types are both AffinePoint which is ostensibly the untwisted Edwards form. What is this isogeny between? It looks like you're computing the Montgomery coordinates from the Edwards affine ones?

@daxpedda
Copy link
Contributor Author

Indeed. As I was saying in the OP: this is currently only used in hash2curve.

This PR just improves existing code, I didn't add this function. But #1306 properly exposes this function to users and the Montgomery to Edwards conversion.

Alternatively we can just close this as this improvement is included in #1306.

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