Skip to content

srijs/hwsl2-scala

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 m can be divided into a list of chunks cs, the hash of the message can be calculated in parallel.

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

diagram

About

Hashing with SL2 for Scala

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published