I give you here an example from which you can find a solution but there are other ways.
Let be "compress" an application which compress and encrypt files.
Let be "decompress" the application on the other hand which decompress and decrypt the encrypted files by the compress application.
A file is compressed and encrypted on the machine1, sent via ftp to the machine2.
On the machine2 the file should be decrypted and decompressed.
The encryption algorithm is using a private key like one you are looking.
How is managed the encryption key ?
The solution is to have a separate KeyManagement application with the purpose to create and manage the private key at a given level, for instance the enterprise level.
For a client that wants to use the above “compress” to encrypt a file , that client must obtain from the KeyManagement a file which contains that private key (also encrypted), let name it "keyfile".
The KeyManagement generate "keyfiles" and distribute these files to the clients ( in this case the clients of the “compress” and “decompress” ).
When encrypting ,the "compress" application reads the “keyfile” , decrypt the private key and perform encryption.
On the other hand when decrypting the same “keyfile” should be obtained , "decompress" read it, get the private key and use this key in the decryption process.
As you can see, for the project P1 , KeyManagement generates a “keyfile” and distribute it. The users of this “keyfile” no need to know the private key. The private key is known only by the KeyManagement. If the “keyfile” is lost then the KeyManagement will provide for the P1 Project the same “keyfile”.
You have to implement a KeyManagement application to generate encrypted private keys. You C# application needs to read that “keyfile” to extract the private key before performing any encryption.
Another application that receives something encrypted should have the same “keyfile” obtained from the KeyManagement , extract the private key and use it when decrypting.
Hope this example will help you to find out a design.
-obislavu-