# PolyBoRi Master Reference

The core of PolyBoRi is a C++ library, which provides high-level data types for Boolean polynomials and monomials, exponent vectors, as well as for the underlying polynomial rings and subsets of the powerset of the Boolean variables. As a unique approach, binary decision diagrams are used as internal storage type for polynomial structures.

On top of this C++-library we provide a Python interface. This allows parsing of complex polynomial systems, as well as sophisticated and extendable strategies for Gröbner base computation. PolyBoRi features a powerful reference implementation for Gröbner basis computation.

The structure of the framework is illustrated as follows.

## Documentation

The documentation of the PolyBoRi framework and incorporated works can be accessed via the following documents.

### External documents

Dive into Python

ipython Documentation

## Further Reading

See the following references for the mathematical background of the PolyBoRi framework and related articles.

- Brickenstein. Michael; Dreyer, Alexander. Gröbner-free normal forms for Boolean polynomials, Journal of Symbolic Computation, Volume 48, January 2013, pp. 37-53, ISSN 0747-7171, doi: 10.1016/j.jsc.2011.04.002.
- Brickenstein, Michael; Dreyer, Alexander. PolyBoRi: A framework for Gröbner-basis computations with Boolean polynomials, J. Symb. Comput. 44, No. 9, 1326-1345 (2009).
- Albrecht, Martin; Cid, Carlos. Algebraic techniques in differential cryptanalysis, In: Fast Software Encryption, Lecture Notes in Computer Science Volume 5665, 2009, pp 193-208
- Kreuzer, MartinAlgebraic attacks Galore! Groups-Complexity-Cryptology, Volume 1 (2009), No. 2, 231-259.
- Eröcal, Burcin; Stein, William. The Sage project: Unifying free mathematical software to create a viable alternative to Magma, Maple, Mathematica and MATLAB, http://www.sagemath.org
- Brickenstein, Michael. Slimgb: Gröbner bases with slim polynomials, Rev. Mat. Complut. 23, No. 2, 453-466 (2010).
- Brickenstein, Michael. Boolean Gröbner bases. Theory, algorithms and applications, Berlin: Logos Verlag; Kaiserslautern: TU Kaiserslautern, Fachbereich Mathematik (Diss. 2010) (ISBN 978-3-8325-2597-2/pbk). x, 149 p. (2010).
- Chai, Fengjuan; Gao, Xiao-Shan; Yuan, Chunming. A characteristic set method for solving Boolean equations and applications in cryptanalysis of stream ciphers, J. Syst. Sci. Complex. 21, No. 2, 191-208 (2008).
- Eibach, Tobias; Völkel, Gunnar; Pilz, Enrico. Optimising Gröbner bases on Bivium, Math. Comput. Sci. 3, No. 2, 159-172 (2010).
- Bulygin, Stanislav; Brickenstein, MichaelObtaining and solving systems of equations in key variables only for the small variants of AES, Math. Comput. Sci. 3, No. 2, 185-200 (2010).
- Sato, Yosuke; Inoue, Shutaro; Suzuki, Akira; Nabeshima, Katsusuke; Sakai, Ko. Boolean Gröbner bases, J. Symb. Comput. 46, No. 5, 622-632 (2011).
- Albrecht, Martin; Cid, Carlos; Dullien, Thomas; Faugère, Jean-Charles; Perret, Ludovic. Algebraic precomputations in differential and integral cryptanalysis. , Lai, Xuejia (ed.) et al., Information security and cryptology. 6th international conference, Inscrypt 2010, Shanghai, China, October 20-24, 2010. Revised selected papers. Berlin: Springer (ISBN 978-3-642-21517-9/pbk). Lecture Notes in Computer Science 6584, 387-403 (2011).
- Brickenstein, Michael; Dreyer, Alexander. PolyBoRi: A Gröbner Basis Framework for Boolean Polynomials, Reports of Fraunhofer ITWM, No. 122, Kaiserslautern, Germany, 2007.
- Brickenstein, Michael; Dreyer, Alexander. PolyBoRi: A framework for Gröbner basis computations with Boolean polynomials, Electronic Proceedings of the MEGA 2007 - Effective Methods in Algebraic Geometry, Strobl, Austria, June 2007.
- Brickenstein, Michael. Slimgb: Gröbner Bases with Slim Polynomials, Reports On Computer Algebra, Centre for Computer Algebra, University of Kaiserslautern, Volume 25, September 2005
- Somenzi, Fabio. CUDD: CU Decision Diagram Package, Department of Electrical and Computer Engineering, University of Colorado at Boulder
- Gregory V. Bard, Accelerating Cryptanalysis with the Method of Four Russians, Preprint July 22, 2006.

## Links

PolyBoRi's home at SourceForge

PolyBoRi's project page at Fraunhofer ITWM

Copyright © 2007-2012 The PolyBoRi, Team