A Julia library for working with braid groups.
- Basic operations on braids (composition, equality, inversion, generators)
- Unreduced Burau representation of braids into a matrix space over
- Dehornoy reduction of braids, mainly used in the implementation of the equality operation (the Dehornoy always reduces the trivial braid to the identity)
The motivation for building Braids.jl
is to enable research into braid-based cryptography using the Julia language. There are a wide variety of outstanding questions in braid algorithms that have important applications in post-quantum cryptography. Furthermore, many of these problems require running algorithms requiring massive compute resources, and the Julia implementation makes it easy to build distributed implementations of complex braid algorithms.
The Burau representation uses Nemo to manipulate polynomials. A field of fractions is used in place of the inverse element (Nemo doesn't yet support negative exponents).