Inferire la chiave privata PGP utilizzando un campione decodificato codificato


9

Se ho sia un messaggio codificato sia il suo originale, è possibile inferire la chiave privata?

Risposte:


9

No. Questo è il punto delle chiavi asimmetriche (pubbliche e private) in quanto puoi facilmente codificare un messaggio con la chiave pubblica (ecco a cosa serve) hai il messaggio decriptato e crittografato. Ma la decrittografia del messaggio crittografato è possibile solo con la chiave privata. La chiave privata non può essere rigenerata.


10

Dal momento che non è stato menzionato: questo è noto come un attacco noto-testo in chiaro , e sarebbe una pessima vulnerabilità per un codice. In realtà, nella crittografia a chiave pubblica questo attacco equivale a un attacco in chiaro , dato che chiunque può crittografare qualsiasi messaggio!

Ci sono stati infatti alcuni attacchi noti / scelti in chiaro contro RSA (il codice a chiave pubblica più spesso usato da PGP per crittografare la chiave simmetrica) , ma di solito comportano attacchi di canale laterale contro implementazioni scadenti o richiedono un numero folle di ciphertexts , o funziona solo contro determinate chiavi rare .

Tuttavia, in generale, la risposta alla tua domanda è "no" - questo è ciò che rende sicuro il codice.


5

No, questo sarebbe molto male. La crittografia PGP utilizza una combinazione seriale di hashing, compressione dei dati, crittografia a chiave simmetrica e infine crittografia a chiave pubblica. L'hashing fa uso di funzioni a senso unico . Una funzione unidirezionale è una funzione facile da calcolare, ma difficile da invertire. La crittografia a chiave pubblica utilizza algoritmi asimmetrici.

Gli algoritmi utilizzati per la crittografia a chiave pubblica si basano su relazioni matematiche (le più importanti sono la fattorizzazione dei numeri interi e problemi di logaritmo discreto) che presumibilmente non hanno una soluzione efficiente. Sebbene sia computazionalmente facile per il destinatario previsto generare le chiavi pubbliche e private, decrittografare il messaggio utilizzando la chiave privata e facile per il mittente crittografare il messaggio utilizzando la chiave pubblica, è estremamente difficile (o effettivamente impossibile) per chiunque a derivare la chiave privata, basandosi solo sulla propria conoscenza della chiave pubblica.

Il solo fatto di avere il messaggio originale non è sufficiente per dedurre la chiave privata.


2

Ci sono due risposte a questo.

È teoricamente possibile? Sì. È possibile generare una chiave falsa, provare la crittografia, vedere se corrisponde. In caso contrario, prova un'altra chiave falsa, crittografa, controlla se l'output corrisponde. Questo è comunemente chiamato un attacco di forza bruta

In pratica, questo non può essere fatto. Ci vuole una quantità di tempo e una potenza di calcolo diversa da zero per provare questo. La crittografia PGP userebbe di solito una chiave di dimensioni decenti, forse 512, 1024, 2048 o anche più bit. Lo spazio-chiave (il numero di chiavi che potresti avere) è così grande che ti ci vorrebbe un'eternità per trovare questa combinazione.

Suppongo che stavi chiedendo se potevi davvero fare questo, non la teoria. E quindi la risposta è no. Il mondo non ha abbastanza potenza di calcolo per questo. Se hai chiesto a security.stackexchange.com qualcuno che conoscesse meglio gli algoritmi e la matematica potrebbe dirti quanto tempo ci vorrebbe (probabilmente fino a quando il sole metastatizza e bolle il nostro pianeta). La mia breve risposta è "non nella tua vita"


0

Probabilmente, potrebbe aiutare, ma non dovrebbe portarti troppo lontano. Il modulo di sicurezza è probabilmente un posto migliore per questo, ma:

Dovresti avere più passaggi per la crittografia, almeno anche un decente dovrebbe avere un seme, un hash e un sale.

Ad esempio, potresti avere un sale per rendere tutte le password lunghe 64 bit e quindi eseguirle attraverso l'hash. Se fosse solo un hash, sarebbe molto facile decifrare.

Questa è una versione molto semplice ... ma non è così facile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.