# A C++ CLASS FOR ANALYSING VECTOR BOOLEAN FUNCTIONS FROM A CRYPTOGRAPHIC PERSPECTIVE

### José Antonio Álvarez-Cubero, Pedro J. Zufiria

#### Abstract

In this paper, a C++ class for analising Vector Boolean Functions from a cryptographic perspective is presented. This implementation uses the NTL library from Victor Shoup, replacing some of the general purpose modules of this library by some more specialized and better suited to cryptography, and adding new modules that complement the existing ones. With this class, we can obtain the classical representation of Vector Boolean Function such as its Truth Table and Algebraic Normal Form (ANF). It is possible to calculate mathematical structures such as the Walsh Spectrum, Linear Profile, Differential Profile and Autocorrelation Spectrum. Cryptographic criteria such as nonlinearity, linearity distance, order of correlation immunity, balancedness, algebraic degree and propagation criterion can be obtained with this class. It permits to find out some interesting cryptologic parameters such as linear structures, linear potential, differential potential and the maximum possible nonlinearity or linearity distance of a Vector Boolean Function with the same dimensions. Finally, operations such as to identify if two Vector Boolean Functions are equal, their sum, direct sum, composition, bricklayering, adding coordinate functions and obtaining the polynomial representation over GF(2n) of a Vector Boolean Function given the irreducible polynomial and its Truth Table are presented.

#### References

- Adams, C. and Tavares, S. (1993). Designing s-boxes for ciphers resistant to differential cryptanalysis. In Proceedings of the 3rd Symposium on State and Progress of Research in Cryptography, pages 181-190.
- Bibliowicz, A., Cohen, P., and Biham, E. (2003). A system for assisting analysis of some block ciphers. Technical report, NESSIE.
- Carlet, C. (2004). On the secondary constructions of resilient and bent functions. In Progress in Computer Science and Applied Logic, vol. 23, pages 3-28.
- Carlet, C. (2008a). Boolean functions for Cryptography and Error Correcting Codes. Cambridge University Press.
- Carlet, C. (2008b). Vectorial Boolean functions for Cryptography. Cambridge University Press.
- Chabaud, F. and Vaudenay, S. (1994). Links between differential and linear cryptanalysis. In EUROCRYPT, pages 356-365.
- Daemen, J. and Rijmen, V. (2002). The Design of Rijndael. Springer-Verlag, New York, Inc., Secaucus, NJ, USA.
- Davio, M., Deschamps, J., and Thayse, A. (1978). Discrete and Switching Functions, volume 1 of Advanced Book Program. McGraw-Hill.
- Gammel, B. M. (2006). http://www.matpack.de/. In Matpack C++ Numerics and Graphics Library.
- McWilliams, F. and Sloane, N. (1977). The Theory of Error Correcting Codes, volume 1,2. New York, NY: North Holland.
- NBS (1977). Data Encryption Standard. NBS, Washington, DC, USA.
- Nyberg, K. (1992). On the construction of highly nonlinear permutations. In EUROCRYPT, pages 92-98.
- Nyberg, K. (1994). S-boxes and round functions with controllable linearity and differential uniformity. In Fast Software Encryption, pages 111-130.
- Pommerening, K. (2001). Analysis of boolean maps (sboxes).
- Rothaus, O. S. (1976). On ”bent” functions. J. Comb. Theory, Ser. A, 20(3):300-305.
- Shoup, V. (2009). http://www.shoup.net/ntl/. In NTL: A Library for doing Number Theory.

#### Paper Citation

#### in Harvard Style

Antonio Álvarez-Cubero J. and J. Zufiria P. (2010). **A C++ CLASS FOR ANALYSING VECTOR BOOLEAN FUNCTIONS FROM A CRYPTOGRAPHIC PERSPECTIVE** . In *Proceedings of the International Conference on Security and Cryptography - Volume 1: SECRYPT, (ICETE 2010)* ISBN 978-989-8425-18-8, pages 512-520. DOI: 10.5220/0002964505120520

#### in Bibtex Style

@conference{secrypt10,

author={José Antonio Álvarez-Cubero and Pedro J. Zufiria},

title={A C++ CLASS FOR ANALYSING VECTOR BOOLEAN FUNCTIONS FROM A CRYPTOGRAPHIC PERSPECTIVE},

booktitle={Proceedings of the International Conference on Security and Cryptography - Volume 1: SECRYPT, (ICETE 2010)},

year={2010},

pages={512-520},

publisher={SciTePress},

organization={INSTICC},

doi={10.5220/0002964505120520},

isbn={978-989-8425-18-8},

}

#### in EndNote Style

TY - CONF

JO - Proceedings of the International Conference on Security and Cryptography - Volume 1: SECRYPT, (ICETE 2010)

TI - A C++ CLASS FOR ANALYSING VECTOR BOOLEAN FUNCTIONS FROM A CRYPTOGRAPHIC PERSPECTIVE

SN - 978-989-8425-18-8

AU - Antonio Álvarez-Cubero J.

AU - J. Zufiria P.

PY - 2010

SP - 512

EP - 520

DO - 10.5220/0002964505120520