This may be easy, but I'm struggling to find a reasonable solution now.
Alice wants to send data to Bob. The data that Alice wants to send has been verified by Carl in some way, even though Carl has not seen the data. Anyway, given the data, Carl is able to recognize if it's the original data shown by Alice.
Bob receives the data, but now he maliciously claims that he did NOT receive the data.
How can Alice prove that he sent the data, and also keep the data secret from Carl or other parties?
Which real world tool (encryption, service, etc.) can Alice use?
1) It's not enough to prove to have sent something, Alice should be able to show that she sent exactly the data verified by Carl.
2) It's not allowed to use trusted third parties other than Carl. But Carl cannot explicitly see the data.
3) It's enough to prove that Alice sent the data, it's not needed to prove that Bob received.
4) It's not important if the data is encrypted or not. Realistically it will be.