I have keypair (u,r), and two pieces of data, X and Y.
I reveal X publicly but keep Y secret. Y has high entropy.
I then concatenate X and Y, into Z.
I encrypt Z, into "encrypt(Z,u) = Q". r is needed to decrypt Q back into Z.
Later, (when it doesn't matter), r will be revealed and everyone will decrypt Q into Z. At that point, everyone will know that, all along, Q "contained" X. Can I prove that Q contains X before r is revealed (including interactive zero-knowledge proofs)?