Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Does there exist any cryptographic algorithm which encrypts data in such a way t

ID: 651512 • Letter: D

Question

Does there exist any cryptographic algorithm which encrypts data in such a way that it can only be decrypted after a certain period of time?

The only idea that I can think of, is something like this: Seed a PRNG with a public value. Run the PRNG for a week and use the final value it produces to encrypt the message. Now anyone who runs that PRNG for a week starting from the seed value you made public can decrypt the message. Obviously this breaks down since they could use more computational power than you; if the time span was years then Moore's Law would apply, etc.

Is there anything like this other than physically burying a private key on a USB stick in a literal time capsule?

Explanation / Answer

No.

With neither a trusted third party nor trusted hardware, we know no system with an even mildly accurate delay of release.

If we accept a trusted third party, there are options. For example:
The trusted third party generates a public/private key pair per hour (for an asymmetric cipher such as RSA-OAEP), publish the public Pubt keys in advance (signed with the long-term public key of the third party), and publish a regularly updated list of all the past private keys Privt.
To time-lock some information P until t: fetch Pubt, and its signature, from the trusted third party; check the signature; draw a random key K for a symmetric cipher such as AES-CTR; encipher K using key Pubt giving KT; encipher P using key K giving C; forget K and P; publish the time-locked information KT||C.
When time t has come, anyone can fetch Privt from the trusted third party; decipher KT using key Privt giving K; decipher C using key K giving P.
In a variant, the trusted third party generates deterministically the Pubt/Privt pairs from a master key and t; this allows arbitrary precision for t with constant storage.

Trusted hardware with a trusted real-time clock (e.g. some HSM) can be used to implement the time lock (or to implement the above trusted third party).

With trusted hardware lacking a trusted real-time clock (e.g. a Smart Card), the clock can be delegated to a trusted third party. I believe (never done it) that buying a certificate from a certification authority also buys a free service, which answers unauthenticated queries "is this certificate still valid?" with a signed answer "this certificate was still valid at time t", which the trusted hardware can check (against the trusted third party's long term public key) to determine that the current time is at least t (on the trusted third party's clock), regardless of how this signed answer has reached the trusted hardware.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote