# The hwsl2 package

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]

## Properties

Versions | 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 |
---|---|

Dependencies | base (==4.8.*), bytestring (>=0.10) [details] |

License | MIT |

Author | Sam Rijs |

Maintainer | srijs@airpost.net |

Stability | Unknown |

Category | Data |

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

Uploaded | Sun Oct 25 05:54:23 UTC 2015 by srijs |

Distributions | NixOS:0.4.0.0 |

Downloads | 1286 total (4 in the last 30 days) |

Votes | |

Status | Docs available [build log] Last success reported on 2015-10-25 [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.0.tar.gz [browse] (Cabal source package)
- Package description (included in the package)