-
Notifications
You must be signed in to change notification settings - Fork 37
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
Make Session Initialization Implicit #364
Merged
Merged
Commits on Oct 21, 2024
-
Make session initialization implicit
A session is now initialized by generating keys and sharing them out of band. The semantics of the protocol are otherwise unchanged. Because sessions are implicit the typestate is now called `Receiver`.
Configuration menu - View commit details
-
Copy full SHA for 8b80fcf - Browse repository at this point
Copy the full SHA 8b80fcfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e7cd28 - Browse repository at this point
Copy the full SHA 4e7cd28View commit details -
Configuration menu - View commit details
-
Copy full SHA for 86e3781 - Browse repository at this point
Copy the full SHA 86e3781View commit details -
Encrypt Message A with ephemeral key like Noise IK
Encrypting Message A with an ephemeral "encapsulation key" allows the sender "reply key" corresponding to its subdirectory to be hidden from the directory.
Configuration menu - View commit details
-
Copy full SHA for 84bec83 - Browse repository at this point
Copy the full SHA 84bec83View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9b2635a - Browse repository at this point
Copy the full SHA 9b2635aView commit details -
Configuration menu - View commit details
-
Copy full SHA for affb88b - Browse repository at this point
Copy the full SHA affb88bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 38d8777 - Browse repository at this point
Copy the full SHA 38d8777View commit details -
make payloads uniform by removing sender auth key
Since the encapsulation keypair was ephemeral and not known to the receiver, but used in the Auth pattern it was included as authenticated associated data in the payload. This means that encrypt_message_a and encrypt_message_b had distinguishable bit patterns, the former starting with two uncompressed curve points (one for the DHKEM and one for this auth key), whereas the latter only had one (the DHKEM point). Since the sender's first message establishes a reply key, that key could be used in a second Auth HPKE setup after the Base setup, in order to prove that the sender can decrypt the receiver's reply. However, incentives are for the sender to provide a valid point, and the reply key is included in AEAD ciphertext, so this would add complexity without meaningful improving security or incentive compatibility.
Configuration menu - View commit details
-
Copy full SHA for 3135d57 - Browse repository at this point
Copy the full SHA 3135d57View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c4880c - Browse repository at this point
Copy the full SHA 9c4880cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 69c7800 - Browse repository at this point
Copy the full SHA 69c7800View commit details -
test HPKE encryption/decryption
The constants PADDED_PLAINTEXT_{A,B}_LENGTH now represent the maximum payload size for the input, whereas before the message A constant included the reply key size. This makes the PayloadTooLarge error represent a maximum and actual size that correspond to the inputs to encrypt_message_a and encrypt_message_b.
Configuration menu - View commit details
-
Copy full SHA for 5d83737 - Browse repository at this point
Copy the full SHA 5d83737View commit details -
Configuration menu - View commit details
-
Copy full SHA for 96c0eb6 - Browse repository at this point
Copy the full SHA 96c0eb6View commit details
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.