Is there a hash function `H1` which, when given inputs `a`, `b`, etc., produces output `Z`, and an `H2` which can verify any one of `a`, `b`, etc. when given `Z` like this:

```
H1(a, b) => Z
H2(Z, a) => true
H2(Z, b) => true
H2(Z, c) => false

```

And where Z is (currently thought to be) cryptographically secure (i.e., modifying Z in any knowable way makes H2 return false for any of the provided inputs)?

**Edit:** An additional condition which I forgot to articulate originally. `a` cannot be derived from `b` and `Z`, and `b` from `a` and `Z`. Without this condition, we can just use [Shamir's Secret Sharing](http://en.wikipedia.org/wiki/Shamir's_Secret_Sharing), with a `k` value of 1, a randomly generated secret `Z` and `a`, `b`, etc are our `n` values.