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

Allow nodes to specify the "[decryption] request encrypting key" for E2EE threshold decryption requests #80

Merged
merged 1 commit into from
May 23, 2023

Conversation

derekpierre
Copy link
Member

@derekpierre derekpierre commented May 15, 2023

Based over #81

Related to nucypher/nucypher#3081.

  • Nodes specify the "decryption request encrypting key" when posting their aggregated transcripts; we know at this point that the node believes that all transcripts are valid
  • The "decryption request encrypting key" is stored in the corresponding Participant struct for the node.

Corresponding nucypher/nucypher PR to account for extra postAggregation parameter, and extra member in Participant struct done in nucypher/nucypher#3123

@derekpierre derekpierre self-assigned this May 15, 2023
@derekpierre derekpierre changed the title [WIP] Allow nodes to specify the "[decryption] request encrypting key" for E2EE threshold decryption requests Allow nodes to specify the "[decryption] request encrypting key" for E2EE threshold decryption requests May 15, 2023
@derekpierre derekpierre marked this pull request as ready for review May 16, 2023 17:50
// nodes commit to their aggregation result
bytes32 aggregatedTranscriptDigest = keccak256(aggregatedTranscript);
participant.aggregated = true;
participant.requestEncryptingKey = requestEncryptingKey; // TODO validation?
Copy link
Contributor

@piotr-roslaniec piotr-roslaniec May 18, 2023

Choose a reason for hiding this comment

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

From the top of my head: I don't know if we should validate this key (or how), but if we reuse requestEncryptingKey as transcript verification, then that gives us some sort of reference point to the validity of this key. Related: #77

Copy link
Member Author

@derekpierre derekpierre May 18, 2023

Choose a reason for hiding this comment

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

I had the same thought of just re-using the ferveo public blinding key as the request encrypting key in nucypher/nucypher#3081. It would be efficient.

However, @cygnusv had some thoughts about using a different cryptographic scheme than ferveo, perhaps one more browser-compatible. The request and response encrypting keys (see #nucypher/nucypher#3123) should probably use the same scheme so that is a consideration for the scheme we end up using. We just haven't nailed down which one to use as yet. Across the E2EE code, I've used Umbral for now as a placeholder to change later, but we should have a conversation soon about what scheme to use. If Ferveo then this PR can replace #77 with some tweaks, if not then it would be a separate feature.

@derekpierre derekpierre force-pushed the e2e-dkg branch 2 times, most recently from 50bad97 to f14d09e Compare May 18, 2023 21:10
…hould be used when making threshold decryption requests to nodes.
@derekpierre derekpierre merged commit 922f207 into nucypher:main May 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Completed
Development

Successfully merging this pull request may close these issues.

4 participants