8-bit bent function


This page reports our numerical experiments related to the generation of bent functions, started winter 2024 with Valerie Gillot under a suggestion of Alexandr Polujan.


8-bit bent function

In the paper
Langevin, P., Leander, G. 
Counting all bent functions in dimension eight 99270589265934370305785861242880.
Des. Codes Cryptogr. 59, 193–205 (2011). 
DOI:https://doi.org/10.1007/s10623-010-9455-z
We described a methode to count the number of 8-bit bent functions. The main goal of that numerical experiment is to recompute the preclass of 8-bit bent functions that we used our big number !

bent function

Let m = 2t be a even integer. The space of Boolean functions from GF(2)^m into GF(2) is denoted by Boole(m). The Walsh coefficient of f in Boole(m) at a in GF(2)^m is the Fourier coefficient of Xof := (-1)^f at a :

W(f,a) = sum_{x in GF(2)^m } X( f(x) + a.x )

The Boolean function f is bent if and only the absolute value of its Walsh coefficients are constant equal to 2^t. From the paper :

Result on Bent Function
Journal of Combinatorial Theory, Series A
Volume 80, Issue 2, November 1997, Pages 232-246
[ https://doi.org/10.1006/jcta.1997.2804 ]
we know that if f is bent then for all w of weight greater or equal to t+2 the coefficients of the ANF of f satisfy the quadratic equation :
sum_{ u <| v = w } a_u a_v = 0

where f(x) = sum_u a_u X^u.

data

The bent-zip directory contains files of bent functions in "zipped" format : nothing to do with the usual zip format. In zipped format, an 8-bit function is encoded on 32 Bytes, whence a filesize divided 32 is nothing but the number of bents in a file. One may use the C-source unzip.c to build a command to output samples of bent functions from a zip file.

pl@fedora/bent> ./unzip.exe  -a  -l1  ~/web-docs/data/bent/bent-1.zip

anf=ab+bc+bd+acd+be+ce+bcde+af+abf+df+abdf+ef+bef+acef+def+bg+abg+cg+acg+bcg+cdg+ceg+deg+afg+bfg+bdfg+cdfg+befg+h+ah+bh+abh+dh+adh+cdh+aeh+adeh+fh+afh+abfh+agh+abgh+cgh+cdgh+egh+aegh+fgh
#1 bent found...

pl@fedora/bent> ./unzip.exe  -x  -l2 -r3   ~/web-docs/data/bent/bent-1.zip

x_1x_3+x_1x_4+x_1x_5+x_2x_5+x_4x_5+x_2x_3x_4x_5+x_1x_6+x_2x_6+x_1x_3x_6+x_2x_3x_6+x_1x_2x_4x_6+x_3x_5x_6+x_1x_3x_5x_6+x_4x_5x_6+x_1x_7+x_1x_2x_7+x_3x_7+x_1x_3x_7+x_2x_3x_7+x_4x_7+x_2x_4x_7+x_3x_4x_7+x_5x_7+x_1x_5x_7+x_2x_5x_7+x_3x_5x_7+x_6x_7+x_1x_6x_7+x_2x_4x_6x_7+x_3x_4x_6x_7+x_2x_5x_6x_7+x_8+x_2x_8+x_1x_2x_8+x_3x_8+x_1x_4x_8+x_3x_4x_8+x_5x_8+x_1x_5x_8+x_1x_4x_5x_8+x_1x_2x_6x_8+x_7x_8+x_1x_7x_8+x_1x_2x_7x_8+x_3x_4x_7x_8+x_5x_7x_8+x_1x_5x_7x_8

x_1x_3+x_2x_3+x_2x_4+x_1x_3x_4+x_1x_5+x_2x_5+x_4x_5+x_2x_3x_4x_5+x_1x_6+x_2x_6+x_3x_6+x_2x_3x_6+x_1x_4x_6+x_1x_2x_4x_6+x_5x_6+x_1x_3x_5x_6+x_1x_7+x_1x_2x_7+x_3x_7+x_1x_3x_7+x_4x_7+x_5x_7+x_2x_5x_7+x_3x_5x_7+x_1x_6x_7+x_2x_6x_7+x_2x_4x_6x_7+x_3x_4x_6x_7+x_2x_5x_6x_7+x_8+x_2x_8+x_3x_8+x_1x_4x_5x_8+x_1x_2x_6x_8+x_2x_7x_8+x_1x_2x_7x_8+x_4x_7x_8+x_3x_4x_7x_8+x_5x_7x_8+x_1x_5x_7x_8+x_6x_7x_8
#2 bent found...

pl@fedora/bent> ./unzip.exe  -t  -l1    ~/web-docs/data/bent/bent-1.zip

TT= 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1
#1 bent found...
[ data ] [ bent zip file ]

Philippe Langevin,
Institut Mathématiques de Toulon,
last modification : january 2024.