I am currently researching about key management in the cloud storage and looking for alternative for it. The current system stores encryption key for each file in the server and each key is encrypted with user's public key (key wrapping), so imagine 500 encrypted file with 500 encrypted encryption key stored in the server. File and key are stored encrypted and separately in different server and file is already encrypted before sent to the server. Everytime user wants to access the file, he needs to decrypt the encrypted key with his private key then use the key to decrypt the file.
I was thinking if there is an alternative to that, say user is able to generate the key without storing it to the server or using key wrapping. Also this alternative should also work with multiple devices.
My idea is that user can calculate the keys by himself without the need to store the key in the server to avoid unauthorized user listening to the communication during key exchange.
Any idea will help.