Make KEM ciphertext integrity (MAC) optional when unlinkability is not needed #20
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.
It occurred to me while writing up the API for the WebAuthn sign extension, where a key identifier
kid
will be the primary way to reference a non-ARKG key, that the only reason we needed the MAC in the KEM is for uncorrelatability when the key handle is transmitted through an untrusted channel - e.g., the original ARKG proposal where the key handle is transmitted between two WebAuthn authenticators through a WebAuthn RP, and the RP must not be able to track users by some ARKG seed identifier. In use cases where this uncorrelatability is not needed - e.g., the WebAuthn signing extension, where the WebAuthn RP is the ARKG subordinate party and the key handle is transmitted directly between subordinate (RP) and delegating party (authenticator), this MAC is not necessary. Thus we can omit the MAC and simply use a static, opaque identifier for the ARKG seed instead.One argument against this is the proliferation of mostly duplicated ARKG instances (e.g.,
ARKG-P256ADD-ECDH
andARKG-P256ADD-ECDH-HMAC
are close to identical), and the fact that computing/verifying a HMAC is a tiny additional computational cost compared to the dominant operations (EC point multiplication, or even heavier PQC). I would be okay with dismissing this idea and keeping the MAC (KEM ciphertext integrity) requirement for all ARKG instances, as that addresses the widest set of use cases. I'll still rewrite some of the reasoning and some of the "considerations" sections in that case, though.