I'd like to store a large amount of objects, all authenticated using something like a Merkle tree. The root will be published, and I'd like to make sure there is no way to enumerate these objects from the root of the tree, or even prove a document is in the tree, unless this information has been published by me.
Is there an existing variant of Merkle tree to do so, or should I invent something myself? I came up with the following scheme, but it is most probably utterly broken:
- A root is a hash(first-level nodes + salt).
- Every node is a hash(next-level nodes/documents + salt).
- A separate salt is stored for every document and for every node
- In order to reveal a document I publish the path in the tree with all the salts along the way.