# hwsl2: Hashing with SL2

An algebraic hash function, inspired by the paper *Hashing with SL2* by Tillich and Zemor.

The hash function is based on matrix multiplication in the special linear group of degree 2, over a Galois field of order 2^127, with all computations modulo the polynomial x^127 + x^63 + 1.

This construction gives some nice properties, which traditional bit-scambling hash functions don't possess, including it being composable. It holds:

hash (m1 <> m2) == hash m1 <> hash m2

Following that, the hash function is also parallelisable. If a message can be divided into a list of chunks, the hash of the message can be calculated in parallel:

mconcat (parMap rpar hash chunks)

All operations in this package are implemented in a very efficient manner using SSE instructions.

[Skip to Readme]

Versions [faq] | 0.1.0.0, 0.1.1.0, 0.1.1.1, 0.1.1.2, 0.1.1.3, 0.1.1.4, 0.2.0.0, 0.3.0.1, 0.3.1.0, 0.3.1.1, 0.3.2.0, 0.4.0.0, 0.4.0.1 |
---|---|

Dependencies | base (>=4.8 && <5), bytestring (>=0.10) [details] |

License | MIT |

Author | Sam Rijs |

Maintainer | srijs@airpost.net |

Category | Data |

Home page | https://github.com/srijs/hwsl2 |

Source repo | head: git clone git://github.com/srijs/hwsl2-haskell.git |

Uploaded | by srijs at 2017-11-03T11:19:33Z |

Distributions | NixOS:0.4.0.1 |

Downloads | 7661 total (5 in the last 30 days) |

Rating | (no votes yet) [estimated by Bayesian average] |

Your Rating | |

Status | Docs available [build log] Last success reported on 2017-11-03 [all 1 reports] |

## Flags

Name | Description | Default | Type |
---|---|---|---|

avx2 | Enable AVX 2 optimisations. | Disabled | Automatic |

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

## Downloads

- hwsl2-0.4.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)