Skip to content

primefield: generic MontyFieldElement type#1311

Merged
tarcieri merged 1 commit intomasterfrom
primefield/generic-monty-field
Jul 23, 2025
Merged

primefield: generic MontyFieldElement type#1311
tarcieri merged 1 commit intomasterfrom
primefield/generic-monty-field

Conversation

@tarcieri
Copy link
Member

The previous implementation was written entirely in terms of macros.

Leveraging types from crypto-bigint, this provides a generic field element type with an internal Montgomery form representation.

@tarcieri tarcieri force-pushed the primefield/generic-monty-field branch 3 times, most recently from ab3f85e to 0e533d9 Compare July 19, 2025 21:53
@tarcieri tarcieri force-pushed the primefield/generic-monty-field branch 16 times, most recently from cd24d6f to 9646e1c Compare July 23, 2025 01:32
@tarcieri tarcieri changed the title [WIP] primefield: generic MontyFieldElement type primefield: generic MontyFieldElement type Jul 23, 2025
@tarcieri tarcieri marked this pull request as ready for review July 23, 2025 01:32
@tarcieri tarcieri force-pushed the primefield/generic-monty-field branch 2 times, most recently from 74b10ae to d6e0519 Compare July 23, 2025 01:35
The previous implementation was written entirely in terms of macros.

Leveraging types from `crypto-bigint`, this provides a generic field
element type with an internal Montgomery form representation.
@tarcieri tarcieri force-pushed the primefield/generic-monty-field branch from d6e0519 to cfc8eb9 Compare July 23, 2025 01:35
@tarcieri tarcieri merged commit 20eeeff into master Jul 23, 2025
159 checks passed
@tarcieri tarcieri deleted the primefield/generic-monty-field branch July 23, 2025 02:33
tarcieri added a commit that referenced this pull request Dec 17, 2025
Adds support for an experimental backend which uses `crypto-bigint` as
the field element representation, as an off-by-default alternative to
`fiat-crypto`.

This uses the `monty_field_arithmetic!` macro introduced in #1547 which
in turn builds on the `MontyFieldElement` type introduced in #1311,
which builds on `crypto-bigint`'s `ConstMontyForm` type, which
implements Montgomery form modular arithmetic.
tarcieri added a commit that referenced this pull request Dec 17, 2025
Adds support for an experimental backend which uses `crypto-bigint` as
the field element representation, as an off-by-default alternative to
`fiat-crypto`.

This uses the `monty_field_arithmetic!` macro introduced in #1547 which
in turn builds on the `MontyFieldElement` type introduced in #1311,
which builds on `crypto-bigint`'s `ConstMontyForm` type, which
implements Montgomery form modular arithmetic.
tarcieri added a commit that referenced this pull request Dec 17, 2025
Adds support for an experimental backend which uses `crypto-bigint` as
the field element representation, as an off-by-default alternative to
`fiat-crypto`.

This uses the `monty_field_arithmetic!` macro introduced in #1547 which
in turn builds on the `MontyFieldElement` type introduced in #1311,
which builds on `crypto-bigint`'s `ConstMontyForm` type, which
implements Montgomery form modular arithmetic.
tarcieri added a commit that referenced this pull request Dec 17, 2025
Adds support for an experimental backend which uses `crypto-bigint` as
the field element representation, as an off-by-default alternative to
`fiat-crypto`.

This uses the `monty_field_arithmetic!` macro introduced in #1547 which
in turn builds on the `MontyFieldElement` type introduced in #1311,
which builds on `crypto-bigint`'s `ConstMontyForm` type, which
implements Montgomery form modular arithmetic.
tarcieri added a commit that referenced this pull request Dec 17, 2025
Adds support for an experimental backend which uses `crypto-bigint` as
the field element representation, as an off-by-default alternative to
`fiat-crypto`.

This uses the `monty_field_arithmetic!` macro introduced in #1547 which
in turn builds on the `MontyFieldElement` type introduced in #1311,
which builds on `crypto-bigint`'s `ConstMontyForm` type, which
implements Montgomery form modular arithmetic.
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.

1 participant