This design is for transport security between a client and a server. I'm planning on using it for a cloud storage system. I would like it to be secure against you-know-who.
I'm trying to prevent the anyone (like the NSA) from forcing me to hand over my keys to the data, so the goal is for even me not to be able to access it.
Here's how it works:
There are two layers. On the outside there is a layer of RSA-4096 encryption with a permanent encryption/decryption key pair. On the inside there is another layer of RSA-4096 encryption, but it uses a temporary key pair which is not saved anywhere, and can not be turned over. It uses the outside layer to verify the identity of the server, and the inside layer to secure the connection.
Are there any possible holes in this schematic I'm not seeing, besides the fact that if I was forced to turn over the permanent private key, impersonation of the server would be possible, and the temporary keys would be useless? Also, how can I resolve this?