# Are there any practical implementation of a homomorphic hashing or signature scheme?

A homomorphic hash function is a function $H : A \to B$ between two sets with some algebraic structure $(A, *)$ and $(B, \star)$ such that

• $H$ is collision resistant, i.e. it is hard to find $x \neq y$ such that $H(x) = H(y)$ and
• $H$ is a homomorphism, i.e. $H(x * y) = H(x) \star H(y)$.

Are there any practical realizations of such a homomorphic hash function, or even a homomorphic signature scheme (i.e., where we can "add" valid signatures to get a signature of the "sum" of two messages)?

Even better, are there even any libraries implementing this?

-
As far as I know, there is yet no practically efficient implementation of fully homomorphic encryption on the horizon. So the answer to your question would evidently be negative, at least for a good hashing scheme, IMHO. –  Mok-Kong Shen Feb 27 at 11:00
FYI, I posted a question on Meta a while back about this type of question and whether we should allow them. Perhaps you would like to weigh in? –  mikeazo Feb 27 at 12:31
sashank, I think you might need to specify more precisely exactly what you mean by homomorphic hashing. –  D.W. Feb 27 at 15:45
@D.W., sashank: I edited the question to contain an explanation of what is searched here. –  Paŭlo Ebermann Feb 27 at 20:16
You might want to add an additional constraint; the Identity function pedantically meets all the requirements listed; it is hard (impossible) to find $x \neq y$ with $I(x) = I(y)$, and for it homomorphic with any operation $\star$, that is, $I(A \star B) = I(A) \star I(B)$ –  poncho Feb 27 at 22:20
show 5 more comments

## 1 Answer

There's plenty of research in this area. I'll give you just a small sampling:

Like I said, this is only a small subset of the available research in this area. I found most of these through about 5 minutes with Google Scholar. I recommend you start by doing a literature review to familiarize yourself with the research literature on this subject: search to find as many relevant papers as possible; read each such paper; for each paper you find, read the related work section and bibliography to try to identify other relevant papers, and also use Google Scholar or other sites to find other papers that cite that paper that might be relevant; for each additional relevant paper you find, repeat the process.

After you have done this process, you should be in a better position to ask a more narrowly targeted question with a particular set of requirements -- or, if you're lucky, you might have found a solution to your particular problem already described in the literature!

-
I know i can do it myself if it was research references, i am not a noob , i have been good community player and good netizen while asking questions, my question was precisely on a library or platform which implemented these techniques , which got distorted by edits , i could not find myself the library through google . thts reason i have posted the question, am NOT looking for research references –  sashank Feb 28 at 6:53
@sashank: Note though that I had responded to your original (unedited) OP with a comment and given there a negative answer. –  Mok-Kong Shen Mar 2 at 14:26
add comment