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

Compatibility with signature-key-blinding #89

Merged
merged 1 commit into from
Jan 19, 2025
Merged

Conversation

sander
Copy link
Owner

@sander sander commented Jan 6, 2025

Since draft-irtf-cfrg-signature-key-blinding is mature, we may want to reuse some of its definitions and security properties for BL. Adaptations needed:

  • Introduce DeriveBlindingFactor(bk, ctx) to expose intermediate value bf and BlindSign(skS, bf, msg) to use it: no security impact expected.
  • Introduce BlindDH(skX, bf, pkY) for a similar “Key Blinding for Diffie-Hellman” scheme: security proof needed (Security Proof Multiplicative Key Blinding #77).
  • Allow any 32-byte string as private blind key bk for P-256, not just scalars modulo Order(), enabling direct use of KEM or hash output: security argument needed. Generalise by keeping DeriveBlindKey(ikm) which is the identity function in this case.

Further changes needed to HDK:

  • Derive the private blinding key from salt.
  • Derive the KEM private key from salt.

Suggested HDK interface update:

  • Replace single HDK function by CreateContext(index), creating context string ctx, and Descend(salt, ctx), deriving child HDK salt'. This enables simple application of BL by both parties.
  • Replace generic Authenticate(sk, reader_data, bf) with specific BlindSign and BlindDH invocations.

@sander sander force-pushed the feat/key-blinding branch from 0714c36 to 02d24d4 Compare January 19, 2025 12:33
@sander sander marked this pull request as ready for review January 19, 2025 12:33
@sander sander merged commit 5066d45 into main Jan 19, 2025
2 checks passed
@sander sander deleted the feat/key-blinding branch January 19, 2025 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

1 participant