Code Monkey home page Code Monkey logo

ntl's People

Contributors

p-steuer avatar victorshoup avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ntl's Issues

Sensitive Data on the Heap

The standard of Dynamic Memory Management does not clean up memory after having released it. So e.g. private keys might persist in RAM after an application using NTL was closed and a later instantiated process could access such signature.

The optional GMP library as well as STL allow overwriting standard allocators with a controlled heap management, but I don't see this realized in NTL; so I would not suggest to deploy NTL for highly sensitive data on a common operating systems.

WinNTL-11_5_1: Support for MINGW / static GMP library

  1. Compiling and performing checks manually is time expensive.
    Is there a ´configure´ script for MINGW, which does the hardware acceleration checks?
    Is alternatively the unix release suitable for MINGW?

  2. The generator for gmp configuration header gmp_aux.h assumes dynamic linkeage the gmp lib
    Is statically linking gmp basically supported?

Where is the source code for this interface

hello void ComputeGS(const mat_ZZ &B, mat_RR &B1, mat_RR &mu, vec_RR &b,vec_RR &c, long k, const RR &bound, long st,
vec_RR &buf, const RR &bound2);Where is the source code for this interface

About computation in ring.

Hi, I wonder if there is support for computation in Z2k and extension ring? I noticed that all examples (site) are about Galois Field, not ring. I tried to use ZZ_p with p=2^64, but it is so slow.
Thanks.

Compilation error ZZ.h

When compiling I get the following error...

ZZ.h:1826:15: error: ‘MulHiUL’ was not declared in this scope
1826 | q = (long) MulHiUL(a, bninv);
| ^~~~~~~

Looks like q is declared as a long but MulHiUL is not found (within scope).

Version NTL 11.5.1
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal

Compiler version
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

Precompute FFT to speed up multiplications by same polynomial

Hello!

In a situation where we want to compute products f * g_i for several polynomials g_i's and a fixed polynomial f, we could precompute the FFT of f so that when we are given the g_i's, we just need to compute FFT(g_i), multiply and apply the inverse FFT...

Is there a way to precompute the FFT of a polynomial NTL::ZZX like this?

Thank you very much!

ZZ: need long long conv, maybe

On Apple's macOS, both long and long long are 64 bits. The system chooses to define uint64_t as unsigned long long, which isn't covered by NTL's conv routines, leading to some pretty unpleasant errors as I detailed in vigna/CPRNG#1.

Because NTL covers unsigned long which is the same size on that particular system, I ended up getting away with supplying an explicit unsigned long type argument to the template. But that's hacky. Maybe something can be done to officially add long long to ZZ.h?

GMP version mismatch

When GMP 6.2 or 6.2.1 is installed, NTL cannot be installed due to this error.

image

I'm not sure if this is intended though (e.g., due to known issues of latest versions of GMP?).

Arithmetic in integer sub-rings of cyclotomic number fields

I wish to do arithmetic on elements contained within an integer subring of a cyclotomic number field commonly used in ring-LWE. As an example, take the cyclotomic field created by adjoining \zeta_8, an 8th root of unity to the rational numbers, i.e., QQ(\zeta_8). This field is isomorphic to the quotient: QQ[X] / <x^4 + 1>. I wish to define elements in an integer subring of this field modulo an odd integer p, i.e., I wish to define elements in ZZ_p[X] / <x^4 + 1>. What is the appropriate class to use for this? I was thinking it may be ZZ_pE. So I tried instantiating this and using the init() method in this class to to set the minimal polynomial for this extension (x^4 + 1). Having done this, I'm not sure how to proceed. Is this the right approach? A code sample for instantiating elements and performing arithmetic in this ring would be appreciated.

CPU feature detection fails with NATIVE=off

We've been debugging some build failures over at https://bugs.gentoo.org/815775 and have learned that some of the CPU feature tests (AVX, PCLMUL, AVX2, FMA and AES_NIAVX, PCLMUL, AVX2, FMA and AES_NI) return false negatives when building with NATIVE=off, i.e. without -march=native in CXXFLAGS.

For the moment I'll re-enable NATIVE=on, but that's not a perfect solution since not all compilers support it, and it can still be overriden by the user's CXXFLAGS.

issue

Is there a test set corresponding to LLL_FP algorithm in ntl library? How can we verify the correctness of LLL_FP algorithm

cross-compile

Hello, would like to cross compile ntl but ./configure doesn't allow --host. Any advice on this?

build/install issue

Whenever i try to install ntl i have to reinstall a lower version of gmp e.g.
if i have installed gmp6.2.1 and then in try to configure ntl11.5.x it gives gmp version mismatch
then i remove gmp altogether and install gmp6.2.0 then make ntl11.5.x it works
each time i have to deprecate the preinstalled gmp version no matter what...
what is the isssue? can anyone explain

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.