Search code examples
encryptiondelay

Is it possible to delay the reveal of information without further information?


Scenario:

I send encrypted information to a client program.

I want to the information to display 1 year later.

No further information will be sent by me.

If the user of the client program can do analysis of the binary file of the program, is it possible to prevent the early reveal of the information?


Solution

  • In general, such a thing is not possible. If the program is able to decrypt the data without further interaction, it must possess the key.

    Therefore, even with signed timestamping, you cannot prevent someone from reverse-engineering your program, taking the key, and doing the decryption.

    EDIT: Though you could at least in theory implement something like this indirectly, by requiring a computionally intensive puzzle to be solved for retrieving the key (which takes a year on the average!), but this is unreliable at best (faster/slower hardware) and will certainly not find acceptance among your users/customers. Be prepared to receive hate mails if you do that :-)