Voy a responder primero a la pregunta: "¿Tiene alguna otra buena idea?"
.Net framework tiene soporte incorporado para encriptar las secciones de configuración. Puede aplicar este cifrado a la mayoría de las secciones de configuración con algunas excepciones (por ejemplo, machine.config). A menos que tenga una buena razón para desplegar su propio cifrado de configuración, podría ser una mejor idea usar lo que ya se le proporcionó en el marco.
Si va por esa ruta, aquí hay un buen punto de partida. http://msdn.microsoft.com/en-us/library/53tyfkaw(v=vs.100).aspx
Si va con RSA, todavía necesitará obtener su clave pública y privada en la máquina durante la instalación. Según su pregunta, presumiblemente tiene una forma de obtener la clave de la máquina; solo necesita saber dónde almacenarla. En ese caso, Microsoft proporciona un lugar para almacenar sus claves RSA. Puede seguir este artículo sobre cómo importar y exportar claves: http://msdn.microsoft.com/en-us/library/yxw286t2(v=vs.100).aspx
En los equipos que ejecutan la aplicación, marque la clave privada como no exportable cuando instale el par de claves para mayor seguridad. Si la aplicación se ejecuta bajo una cuenta de usuario específica, instale el par de claves en la tienda de usuarios.
El usuario (o grupo de aplicaciones en el caso de la mayoría de las aplicaciones web) necesitará permiso para leer la clave privada. Puede usar aspnet_regiis.exe para la concesión de permisos.
La mayoría de los ejemplos en la web se referirán a aspnet_regiis.exe para crear, exportar, importar y otorgar permisos a pares de claves RSA. Usted no tiene que usar ese programa, pero si lo hace, hay un par de aspectos críticos:
sólo se ejecuta en archivos denominados web.config. Entonces, si tiene una aplicación de consola, debe cambiar el nombre de su archivo de configuración a web.config para usarlo con aspnet_regiis.exe.
Si usa aspnet_regiis.exe para crear su par de claves, ignorará el parámetro de longitud de la clave. A partir de esta respuesta, la longitud de clave recomendada actual es 3072. Para crear un par de claves con una clave privada de 3072 bits, no use aspnet_regiis.exe. Consulte How to set key size of RSA key created using aspnet_regiis? para ver un ejemplo de cómo crear una longitud de clave más grande.
Después de todo eso, si todavía necesita para almacenar la clave AES en alguna parte, usted podría considerar ponerlo en un archivo y lo protege con EFS usando cipher.exe.