Risposte:
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.
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.
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.
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"
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.