Dovrò fare un po 'di crittografia dei dati dell'utente nella mia applicazione desktop Windows, scritta in C
/ C++
usando WinAPI (senza .NET o WinRT.) Vale a dire, farò quanto segue:
- Crittografia simmetrica:
AES
- Crittografia della chiave pubblica (asimmetrica): preferibilmente utilizzando
Elliptic curve cryptography
.
I miei unici requisiti sarebbero:
- Il codice deve essere eseguito su Windows XP SP3 e versioni successive.
- Sii sufficientemente robusto.
Quindi mi stavo chiedendo, quale sarebbe stato più adatto per l'uso su Windows?
-
Per utilizzare Windows integrato API di crittografia o
-
Per utilizzare una libreria crittografica basata su C o C ++. Se sì, quale? Puoi spiegare? (L'app sarà sviluppata in
Visual Studio 2008
come progetto C ++ / MFC.)
Il mio pensiero sui vantaggi di ciascuno era questo:
-
Con Windows integrato in API crittografiche, è una codifica più veloce poiché la maggior parte del codice di crittografia viene fornito nelle API. Inoltre, le librerie di Windows possono implementare l'accelerazione della CPU (ad esempio, alcune CPU Intel dispongono di operandi AES integrati).
-
Ma, con la libreria C / C ++, non ci sono dipendenze da DLL di Windows che potrebbero non essere presenti sul vecchio sistema operativo, o contengono bug più vecchi che Microsoft non ha corretto.