{"repo":"mhostetter/galois","free":true,"listed":false,"github":"https://github.com/mhostetter/galois","clone":"git clone https://github.com/mhostetter/galois.git","description":"A performant NumPy extension for Galois fields and their applications","language":"Python","stars":471,"topics":["python","finite-fields","galois","galois-fields","encryption","number-theory","aes","rsa","cryptography","numpy"],"license":"MIT","category":"security-tools","readme_excerpt":"The galois library is a Python 3 package that extends NumPy arrays to operate over finite fields. Enjoying the library? Give us a :star: on GitHub! The user creates a FieldArray subclass using GF = galois.GF(p m) . GF is a subclass of np.ndarray and its constructor x = GF(array like) mimics the signature of np.array() . The FieldArray x is operated on like any other NumPy array except all arithmetic is performed in $\\mathrm{GF}(p^m)$, not $\\mathbb{R}$. Internally, the finite field arithmetic is implemented by replacing NumPy ufuncs with specialized versions. The new ufuncs are written in pure Python and just-in-time compiled with Numba. The ufuncs can be configured to use either lookup tables (for speed) or explicit calculation (for memory savings). Warning The algorithms implemented in the NumPy ufuncs are not constant-time, but were instead designed for performance. As such, the library could be vulnerable to a side-channel timing attack. This library is not intended for production security, but instead for research & development, reverse engineering, cryptanalysis, experimentation, and general education. Features - Supports all Galois fields $\\mathrm{GF}(p^m)$, including arbitrarily large fields. - Faster than native NumPy. GF(x) GF(y) is often faster than (x y) % p for $\\mathrm{GF}(p)$. - Seamless integration with NumPy -- normal NumPy functions work on FieldArray s. - Linear algebra over finite fields using normal np.linalg functions. - Linear transforms over finite fiel","default_branch":null,"files":null,"tree":[],"storefront":"/r/mhostetter","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mhostetter/galois/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}