Skip to content

reimplement wrapper.cpp under algorithms #7

Open

Description

@malb

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

Activity

  1. changed the title [-]reimplement wrapper.cpp in Python under contrib[/-] [+]reimplement wrapper.cpp under algorithms[/+] on Dec 22, 2016
  2. krishnacharya commented on Aug 31, 2017

    @krishnacharya

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

  3. malb commented on Aug 31, 2017

    @malb
    CollaboratorAuthor

    Fixed

  4. krishnacharya commented on Sep 3, 2017

    @krishnacharya

    @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 ?

  5. malb commented on Sep 4, 2017

    @malb
    CollaboratorAuthor

    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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions