This project holds data for profiling and benchmarks, as well as visualizations for implementations of key exchange algorithms recommended for use today, as well as implementations of key encapsulation mechanisms submitted to NIST's standardization process.
To build all samples, simply run the following command.
make all
To render graphs run the following command.
make render
To build graphs etc. for a specific target, run a command like the following.
make -C ntru render
You may also generate visualizations of data gathered from a benchmark. Assuming that data.sqlite
contains the data from one or more benchmarks, the following command will build all graphs in parallel.
make -j4 visualizations
To build, the following prerequisites are required:
make
graphviz
(for rendering graphs)
To build all samples, simply run the following command.
make all
To render graphs run the following command.
make render
To build graphs etc. for a specific target, run a command like the following.
make -C ntru render
To use the visualizations tool, first ensure that you have Python 3, matplotlib and numpy installed.
You may then use the command like so:
# List available visualizations
./visualization.sh ls
# View the help for graphing
./visualization.sh graph -h
# View the help for a specific graph
./visualization.sh graph example-graph -h
# Vie the help for a specific table
./visualization.sh table example-table -h
# Create a graph and show it
./visualization.sh graph --database ./my-database.sqlite example-graph --numbers 100
# Create a graph and store it
./visualization.sh graph --database ./my-database.sqlite --output my-graph.png example-graph --numbers 100
# Create a table and print it
./visualization.sh table --database ./my-database.sqlite example-table --numbers 10
# Create a table and store it
./visualization.sh table --database ./my-database.sqlite --output my-table.tex example-table --numbers 10