What is the name of an algorithm that hashes its result as an embed of larger set of data that results back to the hash?

For instance where $f(x)$ is the hashed result and $x$ is the dataset, and $f(x)=foobar, \\ x={\dots foobar \dots}$

Differently stated: I'm interested in a hashing algorithm that generates a hash code of a dataset with the actual hash value as a subset of the dataset. (If the algorithm doesn't exist, I propose it be named to the GEB hash.)

Maybe a "hands-on" application would help: A barcode embedded in raster graphic. The barcode signifies the value of the hash code but the hash of the graphic as a whole (barcode too) renders the result value of the barcode.

A more abstract approach is embedding as a pre- or post-output sort of header in the same encoding...

My interest is in ensuring data completeness or cripple else. No rogue data here--just can't cut off the hash off the end. In above f(x) example, the dataset would/could be of the abstracted form $$x= {.... oo..b....fa...r}$$ It's interesting in the balance between having a algorithm that's substantive enough in influence/design of the 'original' and yet is not namely obtrusive. In the world of say books, I would imagine "parity" bits contributing the hash hidden on the edge fonts, sans stenography meets authentication and validation.

In principal, the "hash sentence" in the book would be hashed itself to monitor data tampering in an insulated environment. ie. can't readily look up the hash code from another "verified source" but I can recognize the "thumbs up" image and so can my "compiler".

  • 3
    $\begingroup$ What's the advantage supposed to be over just appending the hash value of the dataset and ignoring that when calculating the hash for comparison? $\endgroup$
    – otus
    Commented Sep 12, 2014 at 19:09

1 Answer 1


What you are describing sounds something like a Merkle Tree: https://en.m.wikipedia.org/wiki/Merkle_tree

Note that the organization of a Merkle tree is fairly arbitrary; the graph can look like just about anything so long as it is acyclic.

The interesting aspect of a Merkle tree is that any change anywhere in the data "bubbles up" the tree to the root, changing the hash value stored there. But there is no requirement to re-hash all of the data in the tree on every change.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.