Come decodificare un file crittografato con più chiavi pubbliche GPG

6

In base al link

To decrypt a message the option --decrypt is used. You need the private key to which the message was encrypted. Similar to the encryption process, the document to decrypt is input, and the decrypted result is output.

Scenario:

Bob ha un file, vuole mantenere segreto il file. Vuole solo che i suoi amici Alice, John e Paul possano guardare il file.

Codifica il file singolo con ciascuna delle sue chiavi pubbliche dei suoi amici.

La sua intenzione è che, quando Alice, ad esempio, ha bisogno di guardare il file, non ha bisogno di stare con gli altri per accedervi.

Un attaccante trova il file crittografato.

Quello che sto chiedendo è:

L'hacker avrebbe dovuto scoprire ciascuna chiave privata degli amici per decodificarlo? O l'attaccante avrebbe solo bisogno di conoscere una delle chiavi private degli amici?

    
posta Kōdo no musō-ka 16.03.2016 - 14:18
fonte

3 risposte

5

Ci sono due possibili interpretazioni della tua domanda. Prenderò in considerazione ciò che hai in mente è il seguente:

Supponi che i tuoi amici abbiano coppie di chiavi (sk_1,pk_1), (sk_2,pk_2), (sk_3,pk_3) e e(pk, data) crittografate e (sk, data) decrypts e p è il tuo testo normale.

Prima interpretazione

Cifra in questo modo:

c = e(pk_3,e(pk_2,e(pk_1, p)))

Quindi, sì, per decrittografare c devi fare

p = d(sk_1,d(sk_2,d(sk_3,c)))

es. bisogno di tutte le chiavi dei tuoi amici.

Si noti che l'ordinamento in crutial e che nessun utente singolo può decodificare i dati né può essere recuperato ogni volta che si perde una chiave.

Inoltre, questo richiederebbe ai tuoi amici di condividere a loro volta i risultati intermedi (perché nessuno gira via la sua chiave segreta, si spera) l'uno con l'altro e il file decrittografato. Soprattutto l'ultimo passaggio potrebbe imporre altri problemi di sicurezza se non è fatto con attenzione.

Esistono tuttavia sistemi che richiedono a un gruppo di persone di lavorare insieme per la decrittazione e che sono personalizzati per questo scopo, che GPG non è.

Seconda interpretazione

L'altra interpretazione è:

Crei un file per ogni amico, come

c1 = e(pk_1, p)
c2 = e(pk_2, p)
c3 = e(pk_3, p)

Quindi ciascuno dei tuoi amici può decifrare il proprio file "suo / a".

    
risposta data 16.03.2016 - 14:35
fonte
3

No, avresti bisogno solo di una delle chiavi usate per la crittografia. Che cosa accadrebbe in questa situazione è che il file verrà crittografato utilizzando la crittografia simmetrica, ad es. AES, la chiave utilizzata con questa crittografia viene quindi crittografata una volta con ogni chiave pubblica fornita. In questo modo chiunque abbia una delle chiavi private può decodificare la chiave simmetrica e usarla per decrittografare il file.

    
risposta data 16.03.2016 - 14:34
fonte
1

@SmokeDispenser è corretto per la crittografia simmetrica standard fornita da GnuPG. Tuttavia, hai anche la possibilità di utilizzare Shamir's Secret Sharing Scheme . È progettato in modo tale da poter specificare quante "chiavi" devono essere presenti affinché la decrittografia sia possibile.

È possibile costruire un testo cifrato in modo tale che una qualsiasi delle singole chiavi di Alice, John o Paul lo decodificherà. O qualsiasi coppia di loro. O tutti e tre.

    
risposta data 17.03.2016 - 07:15
fonte

Leggi altre domande sui tag