International Association for Cryptologic Research

International Association
for Cryptologic Research

Advances in Cryptology – ASIACRYPT 2025

On Wagner’s k-Tree Algorithm Over Integers


README

On Wagner's k-Tree Algorithm Over Integers

This repository contains the implementation of the computed bounds of success probability and the complexity of Wagner's k-Tree algorithm over integers. The results are presented in the paper "On Wagner's k-Tree Algorithm Over Integers" by Haoxing LIN and Prashant Vasudevan: https://arxiv.org/abs/2410.06856.

We also provide the implementation of evaluation code for the k-Tree algorithm, which compares its actual performance with our computed bounds.

Prerequisites

Parameters of the k-Tree Algorithm

The k-Tree algorithm has the following parameters (refer to the paper for more details):

Project Structure

The computed bounds are implemented in the 'computed_bounds' directory, with the underlying functions in 'computed_bounds/proof_functions.py' and the plotting script in 'computed_bounds/plot_bounds.py'. There is also a bash script 'plot_all.sh' that allows you to plot multiple computed bounds with your specified parameters. The algorithms will output the computed bounds as pdf figures in the same directory.

Below are some examples of running the plotting script:

python3 plot_bounds.py -t type1 -zm 0 -m 256 -k 512

python3 plot_bounds.py -t type2_ub -zm 0 -m 256 -k 4 8 16 32 64 128 256 512 1024 2048 4096 -prob 0.5

python3 plot_bounds.py -t type2_ub -zm 0 -m 256 -k 4 8 16 32 64 128 256 512 1024 2048 4096 -prob 0.5

The arguments are as follows: