Lo capisco nei sistemi crittografici asimmetrici:
- La chiave pubblica viene generalmente utilizzata per crittografare i dati e solo la chiave privata può essere utilizzata per decrittografarli.
- È banale ricavare una chiave pubblica dalla chiave privata (vedi questa domanda SO ).
In primo luogo, è corretto?
Il mio obiettivo è fornire dati con la mia applicazione che è difficile per decrittografare e impossibile per cambiare, e quindi voglio essere in grado di criptare i miei dati usando un privato chiave (che ho solo io) e permetto alla mia applicazione di decifrare i dati durante il runtime (nascondendo il più possibile la chiave pubblica).
Capisco che questo non sia infallibile, tuttavia, voglio interrompere il riutilizzo casuale dei dati forniti con la mia applicazione.
Qualcuno può suggerire un algoritmo (preferibilmente parte di openssl) che può essere utilizzato per raggiungere il mio obiettivo? Esaminando RSA_private_encypt
, ad esempio, viene mostrato che i dati crittografati sono di dimensione RSA_size()
(qualcosa come 128-byte), perché questa funzione viene utilizzata per generare firme, non dati crittografati. Esiste un algoritmo di crittografia privato che genera dati pari alla dimensione dei dati di testo in chiaro?