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

enhancement request: implement KDF (SDHI and/or Naor-Reingold) #423

Open
udf2457 opened this issue Apr 11, 2023 · 1 comment
Open

enhancement request: implement KDF (SDHI and/or Naor-Reingold) #423

udf2457 opened this issue Apr 11, 2023 · 1 comment
Labels
good first issue help wanted Extra attention is needed question Further information is requested

Comments

@udf2457
Copy link

udf2457 commented Apr 11, 2023

By way of backround, this request is based on my reading about Meta Anonymous Credential Service which they recently open-sourced (unfortunately in C !) https://github.com/facebookresearch/acs.

Anyways ... TL;DR, the curious beast in me thought I might have a go at re-implementing it in Go so I can play around with it.

Obviously Go stdlib doesn't provide many of the necessary building crypto building blocks, but circl does:

  • VOPRF ✅
  • DLEQ ✅
  • Ed25519 ✅

But unfortunately .....

"attribute-based key derivation function" ❌

Meta say in their blog post:

We recommend Strong Diffie–Hellman Inversion (SDHI) or Naor-Reingold for better key transparency.

Hence this request 😉
( espcially as my github searches seem to show nobody else has a Go implementation of either of those KDFs either)

Perhaps see also comments in the header files re: SDHI and Naor-Reingold:
kdf/kdf_sdhi.h
kdf/kdf_naor_reingold.h

@armfazh armfazh added help wanted Extra attention is needed question Further information is requested good first issue labels Aug 31, 2023
@armfazh
Copy link
Contributor

armfazh commented Aug 31, 2023

Implementing either algorithm can benefit from using CIRCL's group interface, as they only require conventional elliptic curve arithmetic.

We would like to hear other use cases. I leave this ticket open in case anyone wants to contribute with the implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants