Whenever a user's access is revoked, the file owner generates a new version
of the file-lockbox key. For this discussion, let
denote the version of
the file-lockbox key. The owner generates the next version file-lockbox key
from the current key by exponentiating the current key with the owner's
private key
:
. This way only the
owner can generate valid new file-lockbox keys.
Authorized readers get the appropriate version of the file-lockbox key as
follows. (Figure 2 illustrates the
relation between the different file-lockbox key versions.) Let
be the
current version of the file-lockbox key that a user has.
In the above protocol, we use RSA encryption as a pseudorandom number
generator; repeated encryption is not likely to result in cycling, for
otherwise, it can be used to factor the RSA modulus
[33].
Though we use RSA for our key rotation, the property we need is that there
be separate encryption and decryption keys, and that the sequence of
encryptions is a pseudorandom sequence with a large cycle; most asymmetric
cryptosystems have this property.
Though this scheme resembles Lamport's password scheme [27], our scheme is more general. Our scheme provides for specific users (owners) to rotate the key forward, while allowing some other users (readers) to rotate keys backwards.