Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add note about deterministic key generation #12

Merged
merged 2 commits into from
Apr 9, 2024

Conversation

emlun
Copy link
Member

@emlun emlun commented Apr 4, 2024

(2024-04-03) Review comments from @AltmannPeter and @sander: There are desired use cases for deterministically generated seed keys, such as that outlined in the example here.

I don't think the defined procedures really need to change, since this is rather an implementation detail for the delegating party. I think we can just note that implementations are free to make that choice, without defining an interoperability API for this.

(A formal definition of ARKG-Generate-Seed is needed just to tie BL-Generate-Keypair and KEM-Generate-Keypair together, but its implementation details are not important for interoperability, unlike ARKG-Derive-Public-Key and ARKG-Derive-Secret-Key.)

@emlun emlun requested a review from ve7jtb as a code owner April 4, 2024 13:53
Copy link
Collaborator

@ve7jtb ve7jtb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@emlun emlun requested a review from AltmannPeter April 5, 2024 13:42
### Deterministic key generation

Although the above definition expresses the key generation as opaque,
likely sampling random key distributions,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

likely sampling uniformly random key distributions,

likely sampling random key distributions,
implementations MAY choose to implement the functions `BL-Generate-Keypair()`,
`KEM-Generate-Keypair()` and `ARKG-Generate-Seed()`
as deriving keys deterministically from some given input key material.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"as deterministic functions for a given input."

ARKG-Generate-Seed() does not derive a key.

implementations MAY choose to implement the functions `BL-Generate-Keypair()`,
`KEM-Generate-Keypair()` and `ARKG-Generate-Seed()`
as deriving keys deterministically from some given input key material.
This can be thought of as defining a single-use ARKG instance where these functions return a constant result.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"This can be thought of as defining a single-use ARKG instance where these function outputs are static."

@emlun emlun requested a review from AltmannPeter April 8, 2024 12:20
@emlun emlun merged commit 4d11c02 into main Apr 9, 2024
2 checks passed
@emlun emlun deleted the review-2024-04-03/deterministic-keygen branch April 9, 2024 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants