Skip to content
No description, website, or topics provided.
C Python C++ Makefile Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
data
doc
src
Makefile
README
gpl-2.0.txt

README

Requirements
============

libfftw3    (http://www.fftw.org)

CPASSREF has only been tested with gcc 4.7.3 and libfftw3 version 3.3.3 on Debian.



Adding new parameter sets
=========================

Parameter sets are defined by preprocessor macros in constants.h. You can use
the following as a template for defining new parameters (explanations of the
identifiers follows):

#if PASS_N == 769
#define PASS_p 862819
#define PASS_g 754192
#define PASS_k 32767
#define PASS_b 29
#define PASS_t 400
#define PASS_WISDOM "data/768_wisdom.dat"
#define PASS_EVAL_POINTS "data/769_points.dat"
#define PASS_RADER_POLY "data/769_rader.dat"
#define PASS_PERMUTATION "data/769_perm.dat"
#endif

PASS_N is defined at compile time to select the desired parameter set.
Currently there is no explicit mechanism for allowing multiple parameter sets
with the same N.

There are currently two implementation related restrictions on the numeric
parameters:

    1) PASS_k must be one less than a power of two due to how noise polynomials
       are generated during signing.  Modify mknoise in sign.c if you want to
       change this.

    2) PASS_b can be no greater than 64 due to the implementation of formatc in
       formatc.c.


The string-valued macros point to precomputed data needed by CPASSREF.

PASS_WISDOM : FFTW wisdom file.
            Can be generated by:
            $ ./wiseup.sh N

The following three files can be generated with cpassref_rader.py.

PASS_EVAL_POINTS : Comma separated list of evaluation indicies {i s.t. g^i \in S}
PASS_RADER_POLY : Rader's algorithm polynomial for computing NTTs by convolution
PASS_RADER_PERMUTATION : Rader's algorithm permutation of input

To generate these files run:
    $ python ./cpassrader.py N p g t

You can’t perform that action at this time.