Determining the Multiplicative Complexity of Boolean Functions using SAT

Mathias Soeken

Abstract

We present a constructive SAT-based algorithm to determine the multiplicative complexity of a Boolean function, i.e., the smallest number of AND gates in any logic network that consists of 2-input AND gates, 2-input XOR gates, and inverters. In order to speed-up solving time, we make use of several symmetry breaking constraints; these exploit properties of XAGs that may be useful beyond the proposed SAT-based algorithm. We further propose a heuristic post-optimization algorithm to reduce the number of XOR gates once the optimum number of AND gates has been obtained, which also makes use of SAT solvers. Our algorithm is capable to find all optimum XAGs for representatives of all 5-input affine-equivalent classes, and for a set of frequently occurring 6-input functions.

Available format(s)
Publication info
Preprint.
Keywords
multiplicative complexitylogic synthesisXOR AND graphsSAT solvers
Contact author(s)
mathias soeken @ outlook com
History
Short URL
https://ia.cr/2020/530

CC BY

BibTeX

@misc{cryptoeprint:2020/530,
author = {Mathias Soeken},
title = {Determining the Multiplicative Complexity of Boolean Functions using SAT},
howpublished = {Cryptology ePrint Archive, Paper 2020/530},
year = {2020},
note = {\url{https://eprint.iacr.org/2020/530}},
url = {https://eprint.iacr.org/2020/530}
}

Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.