Non c'è modo di crittograficamente garantire che una chiave sia inutile dopo un certo periodo di tempo. Il massimo che puoi fare è firmare digitalmente una data di scadenza, indicando qualsiasi potenziale utilità di decrittografia per verificare prima la data prima della decrittografia. Le utility saranno quindi incaricate di segnalare il fatto della scadenza o di rifiutare di eseguire ulteriori azioni. Come menzionato in un commento, il formato x509 fornisce tale capacità e le utility compatibili (o almeno dovrebbe) controllare la data di scadenza.
La ragione di questo è semplice. Se hai C = Enc k (P) e P = Dec k (C) , dove P è testo in chiaro, C è testo cifrato, e k è una chiave segreta, è logicamente impossibile per il passare del tempo modificare il comportamento di un funzionale algoritmo tale che P ≠ Dec k (C) . Ovviamente è possibile che entrambe le parti concordino di "dimenticare" k o C tramite politiche concordate reciprocamente, come altre risposte hanno descritto in modo più dettagliato, ma non importa quanto tempo trascorso, dato C e k , puoi sempre calcolare P .