[DO NOT MERGE] crypto: derive key image generator & separate {un}biased hash to ec#10338
Open
j-berman wants to merge 1 commit intomonero-project:masterfrom
Open
[DO NOT MERGE] crypto: derive key image generator & separate {un}biased hash to ec#10338j-berman wants to merge 1 commit intomonero-project:masterfrom
j-berman wants to merge 1 commit intomonero-project:masterfrom
Conversation
monero-project/research-lab#142 Co-authored-by: Jeffro <jeffro256@tutanota.com> Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
This was referenced Feb 25, 2026
Contributor
|
Used as |
Collaborator
Author
|
void crypto_ops::derive_key_image_generator(const public_key &pub, const bool biased, ec_point &ki_gen) {
if (biased)
biased_derive_key_image_generator(pub, ki_gen);
else
unbiased_derive_key_image_generator(pub, ki_gen);
}
The scope of this PR (and the intended scope of the audit) are the lines of code specifically included in this PR, and not how they are used in the FCMP++/Carrot integration, which is slated for a later audit round. I was just aiming to provide some general context in that bullet. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 monero-project/research-lab#142 , @kayabaNerve noted the potential bias in Monero's hash-to-point function, and proposed introducing a cleaner unbiased hash-to-point function with the FCMP++ upgrade to maximize bit security. This proposal was discussed further in this MRL meeting, where @kayabaNerve provided additional context for why this property is even more desirable with FCMP++/Carrot to avoid the "burning bug" in potential circumstances specific to FCMP++/Carrot and not RingCT.
With that general context in mind, this PR introduces 3 new core crypto functions:
biased_hash_to_ec(previouslyhash_to_ec)unbiased_hash_to_ecderive_key_image_generatorI, which is a member of a leaf that enters the FCMP++ "curve tree," and is used to derive the key image (key images arex * I, where x is the one-time priv key used to spend an output). See references toIin the FCMP++ paper (specific commit).