Offline private key protocol
The offline private key protocol (OPKP) is a cryptographic protocol to prevent unauthorized access to back up or archive data. The protocol results in a public key that can be used to encrypt data and an offline private key that can later be used to decrypt that data.

The protocol is based on three rules regarding the key. An offline private key should:
 not be stored with the encrypted data (obviously)
 not be kept by the organisation that physically stores the encrypted data, to ensure privacy
 not be stored at the same system as the original data, to avoid the possibility that theft of only the private key would give access to all data at the storage provider; and to avoid that when the key would be needed to restore a backup, the key would be lost together with the data loss that made the restore necessary in the first place

To comply with these rules, the offline private key protocol uses a method of asymmetric key wrapping.

Security  

As the protocol does not provide rules on the strength of the encryption methods and keys to be used, the security of the protocol depends on the actual cryptographic implementation. When used in combination with strong encryption methods, the protocol can provide extreme security.

Operation  

Initially:
 a client program (program) on a system (local system) with data to back up or archive generates a random private key PRIV
 program creates a public key PUB based on PRIV
 program stores PUB on the local system 
 program presents PRIV to user who can store the key, e.g. printed as a trusted paper key, or on a memory card
 program destroys PRIV on the local system

When archiving or creating a backup, for each session or file:
 program generates a one-time random key OTRK
 program encrypts data using OTRK and a symmetric encryption method
 program encrypts the (optionally padded) key OTRK using PUB to OTRKCR
 program stores the OTRKCR and the encrypted data to a server
 program destroys OTRK on the local system
 program destroys OTRKCR on the local system
 the server stores OTRKCR and stores the encrypted data

To restore backed up or archived data:
 user feeds PRIV into program
 program downloads data with the respective OTRKCR
 program decrypts OTRKCR using PRIV, giving OTRK
 program decrypts data using OTRK
 program destroys PRIV on the local system

References 

Cryptographic protocols
Data security