1

I'm not very good in functional analysis or cryptography (so I'm not very sure in what I'm saying):

A hash function (as I see it) is some kind of rule that makes an integer from an array (of letters or whatever).

Then, let us imagene some kind of miraculous hash function, which isn't limited by memory size (i.e. result can be as big as it needs to be) and therefore has no collisions.

Arrays can be considered as vectors, so it's easy (though pointless) to implement linear operatoins with them. Then we have a linear space of arrays.

My questions are:

  1. Will such hash function be a linear functional?
  2. If it will, then, can we apply Riesz representation theorem and replace said hash function with some kind of inner product on array space?
  3. What about real hash functions with limited resulting values?

(I'm really sorry for my english)

Amomum
  • 203

1 Answers1

1

In principle, one has to adjust some technical problems due to the fact of working on a finite field, i.e. a Galois field. Inner product space definition requires the field be $\mathbb R$ or $\mathbb C$ in order to get completeness, see this question. However, I should note I'm aware there exist attempts to write Quantum Mechanics on a finite Hilbert space, over a Galois field. (but I'm not aware of details.)

Let us neglect these aspects, and assume we can load a proper vector space $V$ on memory (that would be infinite sized), over the field $\mathbb R$ (idealized extension of the finite field one can use on a computer). I mean "infinite size" in the sense that we can allocate an infinite number of vector with fixed lenght $n$, since surely we can't allocate an infinite number of entries in a finite time. An inner product can be defined as usual. So $V$ is an inner product space, hence Hilbert since has finite dimension.

Let $h : V \to \mathbb R$ the hash function, defined in some manner. Surely, it is injective (otherwise hash makes no sense) and we can require it is linear. Hence is a linear functional. We can't distinguish infinite values between them, so we would require $h$ be bounded (i.e., $\sup_{\| v \| = 1 } h(v) < \infty$), making $h$ a bounded linear functional, i.e., $h \in V^*$ (dual of $V$). Since $V$ is Hilbert, Riesz' theorem holds and there exists a unique $w \in V$ such that $h(v) = (v, w)$ for all $v\in V$.

Remarks. I don't really know how a hash function is defined, however should be noted that linearity seems a strange request (different - in principle - sequences such as $(1,1,\dots, 1)$ and $(2,2,\dots,2)$ would have hash codes which are one the double of the other). In truth, all that seems to me an overkilling (maybe an exercise), if not concerned with finite fields.

user91126
  • 2,466
  • Thank you! I have totally forgot what linearity will actualy do. I thought that may be changing hash function to inner product will benefit the calculations.. somehow. Like, it would be easier to bruteforce or something. But linearity kinda breaks it :) – Amomum Feb 03 '14 at 23:07