I'm looking for a way to publish a message, so that it will only be publicly known after some time (let's say a few minutes). Even I shouldn't have the power to prove what my message was, before this time passes.

I was thinking of something like:

  • the message is encoded using my private key, then published in this encoded way
  • (I could prove what the message is by revealing my private key, but I really don't want to reveal my private key)
  • the message can also be recovered by some kind of brute-forcing, that is known to take some time
  • this brute-forcing doesn't reveal my private key, only the message

Is there a way to do this?

  • 3
    $\begingroup$ Does this answer your question? Is it possible to make time-locked encrytion algorithm? and Time Capsule cryptography $\endgroup$
    – knaccc
    Jan 28, 2023 at 1:03
  • $\begingroup$ @knaccc it's on a right track, but I think it doesn't fully solve this. The proposed solutions seem to only guarantee that other people can't disclose my secret before the target time. But here, even I want to be unable to prove what the message was, until the time passes. This is a considerably harder problem. Unless there's something about the techniques that I didn't understand? $\endgroup$ Jan 30, 2023 at 6:02
  • $\begingroup$ Once you choose a time-lock approach that eventually reveals the private key, your question can be simplified as "can I encrypt a message with a private key such that I cannot prove what the message is without the private key?". Regular encryption works like that - you can't tell anything about the ciphertext without the private key (other than the maximum length). So, you encrypt, then discard the private key, and then when the private key is revealed after the time-lock period only then can it be decrypted. $\endgroup$
    – knaccc
    Jan 30, 2023 at 8:13
  • $\begingroup$ @knaccc OK, I was a bit confused but I think I know what to do now. So I can't encrypt WITH the private key, because it can be decrypted with my public key (it's the same as signing). I also can't encrypt with my public key, because then, I could just declare what the message was, and people can verify that, because they know my public key. $\endgroup$ Jan 31, 2023 at 23:46
  • $\begingroup$ @knaccc The solution is to encrypt the pair (message, my private key) with my public key. Now revealing the contents would reveal my private key which I don't want. It still doesn't solve my original problem, because at the end the private key is revealed, but after some thinking I now don't see this as a problem for my use case. Thanks for help! $\endgroup$ Jan 31, 2023 at 23:46