Necesitaré realizar un cifrado de los datos del usuario en mi aplicación de escritorio de Windows, escrito en C
/ C++
usando WinAPIs (no .NET o WinRT stuff). Es decir, haré lo siguiente:
- cifrado simétrico:
AES
- Cifrado de clave pública (asimétrico): preferiblemente utilizando
Elliptic curve cryptography
.
Mis únicos requisitos serían:
- El código debe ejecutarse en Windows XP SP3 y posterior sistema operativo.
- Sé lo suficientemente robusto.
Así que me preguntaba, ¿cuál sería el mejor uso para Windows?
-
Para usar Windows integrado en API de criptografía , o
-
Para usar alguna biblioteca criptográfica basada en C o C ++. ¿Si es así, Cuál? ¿Puedes explicar? (La aplicación se desarrollará en
Visual Studio 2008
como proyecto C ++ / MFC).
Mi pensamiento sobre los beneficios de cada uno fue este:
-
Con Windows incorporado en las API criptográficas, es una codificación más rápida, ya que la mayoría de los códigos de cifrado se proporcionan en las API. Además, las bibliotecas de Windows pueden implementar la aceleración de la CPU (por ejemplo, algunas CPU de Intel tienen operandos AES incorporados).
-
Pero, con la biblioteca C / C ++, no hay dependencias en las DLL de Windows que pueden no estar presentes en el sistema operativo anterior, o contienen errores más antiguos que Microsoft no corrigió.