Crittografa il file con molte password

1

Sto cercando un modo per crittografare un file utilizzando molte password per la decrittografia. Utilizzo la crittografia AES come soluzione o qualsiasi altra compatibile.

Ho suggerito:

Encrypt file with one password, e quando decifriamo, possiamo usare molte password ma legate al primo come ( RANDOM_KEY.password.RANDOM_KEYS ) e codificarlo ... nella funzione decrypt decifichiamo la password e rimuoviamo random_keys.

Voglio rendere un file decifrabile con molte password, ma le altre password generate dalla password principale ... in questo modo un utente1 non può condividere la password con un utente2.

Ma come rendere questo pratico in una lingua C , ad esempio?

    
posta Creative Man 27.09.2016 - 13:39
fonte

3 risposte

3

Puoi crittografare il file con una chiave generata casualmente. E poi puoi crittografare quella chiave in molti modi diversi.

Alcuni termini e notazioni. Alice avrà la sua password, p A che viene elaborata da una funzione di derivazione chiave (KDF). Il risultato dell'esecuzione di KDF su p A sarà la chiave di crittografia chiave di Alice (KEK). Chiamiamo semplicemente la chiave generata a caso che crittografa il file, k .

Quindi nel caso di Alice k verrà crittografato con il suo KEK che deriva dall'esecuzione del KDF su p A . So

KEK A = KDF ( p A )

W A = Enc (withKey: KEK A ), data: k )

W A è la chiave "wrapped". Insieme al file crittografato con k , memorizzi i tasti avvolti: W A , W B , W C , ...

Potresti voler consultare RFC 3394 per i metodi consigliati per crittografare una chiave con un KEK.

    
risposta data 28.09.2016 - 07:00
fonte
1

Semplice.

Crea una chiave casuale e utilizzala come chiave AES.

Utilizza una funzione di derivazione chiave per ciascuna delle password di decrittografia desiderate.

Ora hai

  • La chiave casuale utilizzata per la crittografia.
  • Le password che possono essere utilizzate derivano le chiavi.

Cosa memorizzi:

  • Per ogni password, crea un XOR di
    • la chiave casuale
    • la chiave derivata derivata dalla password autorizzata

Quindi, per ogni password, hai un risultato XOR .

Se viene fornita una password, puoi facilmente ri-derivare la chiave e XOR contro il risultato XOR per ottenere la chiave originale > di nuovo.

Non memorizzare la chiave casuale. Non conservare la chiave derivata. Memorizza solo il risultato XOR di questi combinati. E naturalmente non memorizzare la password.

Se uno degli utenti viene de-autorizzato, dovrai ripetere il processo con una nuova chiave casuale. Qualsiasi materiale distribuito in precedenza sarà sempre disponibile utilizzando le password originali.

    
risposta data 28.09.2016 - 19:26
fonte
0

Non esiste alcuna crittografia che fornisca questo per quanto ne so. Tuttavia, una via di mezzo per il tipo di problema potrebbe essere l'uso di un file chiave utilizzato per crittografare i dati. Quindi si cripta la chiave n volte con la rispettiva chiave degli utenti.

Ogni utente sarà in grado di decifrare la chiave con le proprie credenziali e, quindi, sarà in grado di decodificare il file.

Per ulteriori informazioni, puoi consultare la risposta di Little Bear su questa domanda

    
risposta data 27.09.2016 - 14:09
fonte

Leggi altre domande sui tag