Lets look at matrix operations as the basis of a āhash functionā then.
You want to verify that H(x,0) != H(0,x)
, or ⦠do you want that to be true? Where the hash function retains the associative and commutative properties of some underlying field.
Using matrix operations we can construct a function which returns the same result regardless of which side the input is on, if we say Ax is a matrix-vector-product, where you have some uniformly randomly chosen matrix A within a field.
Then you have x and y, which represent x=(a,0) and y=(0,a), you want Ax = Ay⦠This means that both of the inputs may be independent, but the sum of the two inputs equal the output.
Lets simplify this first, and provide a clearer example:
a(0) + b(x) = a(x) + b(0)
Which implies a and b are identical, where the sum evaluated at two points is also equal for either. Where a(0) = b(0) = 0 rite, and a(x) = b(x) = x?
So⦠lets take this back to matrix operations, where we want to directly translate the above statements into a problem which is āhard to solveā, and hopefully cryptographically secureā¦
Lets say x
and y
are our two inputs, where x
is left and y
is right. We need a matrix where the vector product relation exists such that 0 || x = y || 0 = x || 0 = 0 || y.
So, A\cdot({\vec{x}+\vec{0}}) = A\cdot({\vec{0}+\vec{x}})
This preserves the commutative relationship, albeit over a matrix and a vector, which is kinda what we need⦠Even if the matrix A is a Cauchy matrix, MDS matrix, or pretty much any other kind of matrix we retain the commutative and associativity laws when operating over a finite field.
Take, for example, the following Sage code:
from random import randint
q = 1244142437461793964053
n = m = 123 # for example
G = GF(q)
A = MatrixSpace(G, n, m).random_element()
RandomBinaryVector = lambda length: vector(G, [randint(0,1) for _ in range(length)])
x, y = RandomBinaryVector(n), RandomBinaryVector(n)
zero = vector(G, [0] * n)
assert A*(zero + x) == A*x
assert A*(y + zero) == A*y
However, the problem is⦠how do we make this not only cryptographically secure, but efficientā¦
At the moment it is neitherā¦