Mathematics (Apr 2023)

BooLSPLG: A Library with Parallel Algorithms for Boolean Functions and S-Boxes for GPU

  • Dushan Bikov,
  • Iliya Bouyukliev,
  • Mariya Dzhumalieva-Stoeva

DOI
https://doi.org/10.3390/math11081864
Journal volume & issue
Vol. 11, no. 8
p. 1864

Abstract

Read online

In this paper, we present a library with sequential and parallel functions for computing some of the most important cryptographic characteristics of Boolean and vectorial Boolean functions. The library implements algorithms to calculate the nonlinearity, algebraic degree, autocorrelation, differential uniformity and related tables of vectorial Boolean functions. For the sake of completeness, we provide the mathematical basis of these algorithms. Furthermore, we compare the performance of the parallel functions from the developed software with the corresponding sequential functions and with analogous functions from the well-known SageMath and SET packages. Functions from BooLSPLG can be used to develop efficient algorithms for constructing Boolean and vectorial Boolean functions with good cryptographic properties. The parallel part of the library is implemented using a CUDA parallel programming model for recent NVIDIA GPU architectures. BooLSPLG is an open-source software library written in CUDA C/C++ with explicit documentation, test examples, and detailed input and output descriptions of all functions, both sequential and parallel, and it is available online.

Keywords