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

Robust PPH Implementation - BLV19 Construction 2 #9

Open
3 tasks done
sambux1 opened this issue Feb 4, 2024 · 2 comments
Open
3 tasks done

Robust PPH Implementation - BLV19 Construction 2 #9

sambux1 opened this issue Feb 4, 2024 · 2 comments
Assignees
Labels
implementation Implement a major feature

Comments

@sambux1
Copy link
Owner

sambux1 commented Feb 4, 2024

We need to implement a robust PPH. The best starting point is construction 2 of the BLV19 paper, since we already have the nonrobust version implemented, and the two constructions are very similar.

The first major step is to implement the sparsify() function from the paper, which converts an input vector into a larger sparse version of the input vector.

  • implement sparsify() function
  • add unit test for sparsify() function

The next and only other major step is to figure out parameters and sampling the hash function. Hashing and evaluation will be similar to the nonrobust version.

  • figure out parameters and implement sample()
@sambux1 sambux1 self-assigned this Feb 4, 2024
@sambux1 sambux1 added the implementation Implement a major feature label Feb 4, 2024
@sambux1
Copy link
Owner Author

sambux1 commented Feb 13, 2024

This is done but buggy. I need to still do 2 things:

  • make sure the matrix and the sparsified inputs have compatible dimensions (currently having incompatibilities due to rounding errors)
  • automatically find the minimum hash size given certain parameters

@sambux1
Copy link
Owner Author

sambux1 commented Mar 19, 2024

I added a function to automatically calculate the minimum hash size given values for the input length and the threshold and an optional upper bound on epsilon. The bad news is it doesn't seem like any choice of parameters will make preimage resistance possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
implementation Implement a major feature
Projects
None yet
Development

No branches or pull requests

1 participant