Crittografia lucchetto

1

Sto lavorando a un'applicazione di tipo editor di testo che esegue qualcosa di simile a questo (è un'app di piccole dimensioni):

  1. Il client può utilizzare l'app per un'ora dopo averla eseguita. L'app si trova in un ambiente in cui non è possibile lasciare l'app senza perdere tutti i dati.
  2. Una volta scaduto il tempo, il programma salverà il testo inserito dal client in un file nella loro directory locale.
  3. Il client può quindi attivare questo file.

È il secondo passaggio a cui sto pensando. Voglio progettare l'applicazione in modo che, una volta scaduto il tempo, il file nella directory locale dei client sia crittografato in modo che non possano visualizzare di nuovo il contenuto del testo. So che posso usare i checksum per tracciare eventuali manomissioni dopo che è trascorso il tempo, ma non è quello che sto chiedendo. Ho bisogno che non siano in grado di recuperare l'input di testo che hanno messo in primo piano.

La mia idea immediata era di fornire a ciascun client una chiave pubblica e memorizzare una chiave privata lato server per ogni cliente. Quando l'applicazione si chiude, il loro testo viene crittografato con RSA utilizzando la chiave pubblica fornita e solo io sarò in grado di crittografare l'invio dalle chiavi private che tengo.

Tuttavia so che RSA non è un buon approccio per la crittografia dei dati reali. Come ho capito, è usato di più per crittografare le chiavi di un sistema di crittografia simmetrica.

Dovrei semplicemente usare RSA qui o c'è un approccio migliore?

    
posta gowrath 18.04.2017 - 06:38
fonte

1 risposta

1

Quello che chiedi può essere tranquillamente fatto con RSA, ma generalmente non è preferito a causa della quantità di calcolo che richiederebbe rispetto a qualsiasi altra routine di crittografia simmetrica.

Quello di cui hai bisogno è un cryptosystem ibrido , qualcosa che usa sia la crittografia a chiave pubblica con crittografia simmetrica, sia il lato client.

Esempio direttamente dalla pagina di Wikipedia:

To encrypt a message addressed to Alice in a hybrid cryptosystem, Bob does the following:

  • Obtains Alice's public key.

  • Generates a fresh symmetric key for the data encapsulation scheme.

  • Encrypts the message under the data encapsulation scheme, using the symmetric key just generated.

  • Encrypt the symmetric key under the key encapsulation scheme, using Alice's public key.

  • Send both of these encryptions to Alice.

To decrypt this hybrid ciphertext, Alice does the following:

  • Uses her private key to decrypt the symmetric key contained in the key encapsulation segment.

  • Uses this symmetric key to decrypt the message contained in the data encapsulation segment.

E ulteriori letture.

    
risposta data 18.04.2017 - 07:17
fonte

Leggi altre domande sui tag