I have recently been looking into Homomorphic encryption and I am looking for a specific hash-based encryption/decryption scheme.
I don't need a full implementation but I am not sure if what I want is even possible at all. So I am looking for some direction or explanation on why this is impossible (which is my gut feeling).
So let me explain. There a third party that generates a merkle tree(MT=root) with N leaves(L). The encrypting party encrypts a secret(T) with enc(T, MT, Lx) = CT + Decrypt function
The decrypting party publishes CT or a Helper.
Other random parties publish random data that (indirectly) have Hash(CT) in them, creating a hash chain.
Creating HC(Hash(data, Hash(data, Hash(data, Hash(CT))))). The hash chain can be of arbitrary length.
The decryption function should decrypt CT if the leaf is present in the hash chain that is higher then Lx but part of the Merkle tree's root.
So HC(Hash(Lx+N, Hash(data, Hash(data, Hash(data, Hash(CT))))))
In short it means, decrypt if the hash chain, where your 'request' is part of, contains a reveal with an index higher then when then the secret was encrypted.
The idea is to force the publication of the request data.
Is this even remotely possible or are there components in here that are just straight-up impossible?