Each day, the previous day's key is encrypted again with another layer of encryption that would probably take (say) 1 day to brute force (1+delta if computers and algorithms have improved in the past day), and the old key is thrown away.
To decrypt something N days old, even legitimately, you have to sequentially brute force N days of keys, and then finally decrypt using the innermost key.
One application is "deletion should encrypt" (more in detail in a future post). The general idea is for when you probably don't need old encrypted data very often, and when you do, you are willing to pay for the inconvenience. Your adversaries do, but they will have to do a tremendous amount of work to get at it, perhaps so much it's not worth it.
One implementation uses weak RSA public and private keys, throwing away the private key each time. However, each day's factorization problem can be brute force solved in parallel (sieve algorithms) much faster than 1 day for an adversary with greater computational resources.
Another implementation is to use a day's worth of iterations of crypt(3), PBKDF2, or scrypt. Unfortunately, this requires your computer to be computing constantly.
Is there a better way?
No comments :
Post a Comment