Come crittografare i dati utilizzando la chiave privata?

2

Lo capisco nei sistemi crittografici asimmetrici:

  1. La chiave pubblica viene generalmente utilizzata per crittografare i dati e solo la chiave privata può essere utilizzata per decrittografarli.
  2. È 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?

    
posta trojanfoe 16.05.2012 - 12:40
fonte

1 risposta

1

Se decidi entrambi di crittografare e decifrare, non hai bisogno della chiave pubblica.

Puoi utilizzare una delle Rijndael implementazioni per crittografare i tuoi dati prima di spedire l'applicazione e decifrare durante il runtime.

Potresti anche voler usare un file di licenza con sale unico per Rijndael (lo stesso sale dovrebbe essere usato per crittografare i dati). In questo modo i tuoi dati non possono essere utilizzati con un'altra installazione senza copiare il codice di licenza.

    
risposta data 16.05.2012 - 15:30
fonte

Leggi altre domande sui tag