Antworten:
Nein, das ist der Punkt bei asymmetrischen Schlüsseln (öffentlich und privat), da Sie eine Nachricht leicht mit dem öffentlichen Schlüssel codieren können (dafür ist es da), für den Sie die ent- und verschlüsselte Nachricht haben. Das Entschlüsseln der verschlüsselten Nachricht ist jedoch nur mit dem privaten Schlüssel möglich. Der private Schlüssel kann nicht neu generiert werden.
Da es nicht erwähnt wurde: Dies ist als bekannter Klartext-Angriff bekannt und wäre eine sehr schlechte Sicherheitslücke für eine Chiffre. Tatsächlich entspricht dieser Angriff in der Krypto mit öffentlichem Schlüssel einem ausgewählten Klartextangriff , da jeder jede Nachricht verschlüsseln kann!
Es gab tatsächlich einige bekannte / ausgewählte Klartextangriffe gegen RSA (die von PGP am häufigsten zum Verschlüsseln des symmetrischen Schlüssels verwendete Verschlüsselung mit öffentlichem Schlüssel) , aber sie beinhalten normalerweise Seitenkanalangriffe gegen schlechte Implementierungen oder erfordern eine verrückte Anzahl von Chiffretexten oder arbeiten nur gegen bestimmte, seltene Schlüssel .
Im Allgemeinen lautet die Antwort auf Ihre Frage jedoch "Nein" - das macht die Verschlüsselung sicher.
Nein, das wäre sehr schlecht. Die PGP-Verschlüsselung verwendet eine serielle Kombination aus Hashing, Datenkomprimierung, Kryptografie mit symmetrischen Schlüsseln und schließlich Kryptografie mit öffentlichen Schlüsseln. Beim Hashing werden Einwegfunktionen verwendet . Eine Einwegfunktion ist eine Funktion, die einfach zu berechnen, aber schwer zu invertieren ist. Die Kryptographie mit öffentlichem Schlüssel verwendet asymmetrische Algorithmen.
Die für die Kryptographie mit öffentlichen Schlüsseln verwendeten Algorithmen basieren auf mathematischen Beziehungen (die bemerkenswertesten sind die Ganzzahlfaktorisierung und diskrete Logarithmusprobleme), die vermutlich keine effiziente Lösung haben. Obwohl es für den beabsichtigten Empfänger rechnerisch einfach ist, die öffentlichen und privaten Schlüssel zu generieren, die Nachricht mit dem privaten Schlüssel zu entschlüsseln und für den Absender einfach, die Nachricht mit dem öffentlichen Schlüssel zu verschlüsseln, ist dies äußerst schwierig (oder effektiv unmöglich) Jeder, der den privaten Schlüssel ableitet, nur basierend auf seiner Kenntnis des öffentlichen Schlüssels.
Nur die ursprüngliche Nachricht zu haben, reicht nicht aus, um auf den privaten Schlüssel zu schließen.
Darauf gibt es zwei Antworten.
Ist es theoretisch möglich? Ja. Sie könnten einen gefälschten Schlüssel generieren, die Verschlüsselung ausprobieren und prüfen, ob sie übereinstimmt. Wenn nicht, versuchen Sie es mit einem anderen gefälschten Schlüssel, verschlüsseln Sie ihn und prüfen Sie, ob die Ausgabe übereinstimmt. Dies wird allgemein als Brute-Force-Angriff bezeichnet
In der Praxis ist dies nicht möglich. Es dauert nicht viel Zeit und Rechenleistung, um dies zu versuchen. Bei der PGP-Verschlüsselung wird normalerweise ein Schlüssel mit angemessener Größe verwendet, z. B. 512, 1024, 2048 oder sogar mehr Bits. Der Schlüsselraum (die Anzahl der Schlüssel, die Sie möglicherweise haben könnten) ist so groß, dass Sie ewig brauchen würden, um diese Kombination zu finden.
Ich vermute, Sie haben gefragt, ob Sie das wirklich tun könnten, nicht die Theorie. Die Antwort lautet also nein. Die Welt hat dafür nicht genug Rechenleistung. Wenn Sie auf security.stackexchange.com nachfragen, könnte Ihnen jemand, der mit den Algorithmen und der Mathematik besser vertraut ist, sagen, wie lange dies wahrscheinlich dauern würde (möglicherweise bis die Sonne unseren Planeten metastasiert und zum Kochen bringt). Meine kurze Antwort lautet "nicht in deinem Leben"
Nicht wahrscheinlich, es könnte helfen, aber es sollte Sie nicht zu weit bringen. Das Sicherheitsformular ist wahrscheinlich ein besserer Ort dafür, aber:
Sie sollten mehrere Schritte zur Verschlüsselung haben, zumindest sollte sogar ein Anständiger einen Samen, einen Hasch und ein Salz haben.
Beispielsweise könnten Sie ein Salt haben, um alle Passwörter 64 Bit lang zu machen, und das dann durch den Hash laufen lassen. Wenn es nur ein Hash wäre, wäre es sehr leicht zu knacken.
Dies ist eine sehr einfache Version davon ... aber es ist nicht so einfach.