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

reimplement wrapper.cpp under algorithms #7

Open
malb opened this issue Jan 5, 2016 · 4 comments
Open

reimplement wrapper.cpp under algorithms #7

malb opened this issue Jan 5, 2016 · 4 comments

Comments

@malb
Copy link
Collaborator

malb commented Jan 5, 2016

Reimplementing https://github.com/fplll/fplll/blob/master/fplll/wrapper.cpp in Python would

  • help to check if the API is complete
  • as an example how to use fpylll
  • as a template from which users can develop their own variants
@malb malb changed the title reimplement wrapper.cpp in Python under contrib reimplement wrapper.cpp under algorithms Dec 22, 2016
@krishnacharya
Copy link

@malb it seems damien's repository is no longer available, are there other links to the same?

@malb
Copy link
Collaborator Author

malb commented Aug 31, 2017

Fixed

@krishnacharya
Copy link

krishnacharya commented Sep 3, 2017

@malb
I've been going through the documentation and code base, correct me if I'm wrong, solving this issue would require: The implementation of fast_lll(..), heuristic_lll(..) and proved_lll(..) which would then be called accordingly by the main function lll(..)

Another technicality:
The data structures that were used in wrapper.cpp are those defined in fpll/fpll/nr, how are we doing representing the same in python, for example are we porting numpy arrays to matrix objects ?

@malb
Copy link
Collaborator Author

malb commented Sep 4, 2017

The equivalent of the functions fast_lll etc is already implemented as options in LLL.reduction, see it's documentation. Maybe start with a Python programme that first tries to run LLL with double precision and if that fails will switch to long double, to see how things fit together. You don't need to implement your own matrices, we already have FPLLL's matrices. I suggest you play a bit with FP(Y)LLL to understand what it does and how. You could e.g. follow the labs here https://www.maths.ox.ac.uk/groups/cryptography/spring-school-lattice-based-cryptography

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants