Frage von Curioso77, 31

Kryptographie: Schlüssel "rückwärts" errechnen?

Kryptographie:

Ist es - wenigsten theoretisch – möglich, den bei einer Verschlüsselung verwendeten Schlüssel (quasi rückwärts) zu errechnen wenn folgende Elemente bekannt sind:

=1= Die verschlüsselte Datei

=2= Die Verschlüsselungsmethode (Im schlimmsten Fall die „klassischen“ Verfahren durchprobieren.)

=3= Die Datei im unverschlüsselten Original – wobei diese Datei extra zu dem besagten Zweck angefertigt wurde und sehr komplex und umfangreich sein darf.

Sollte die Frage „dämlich“ sein, seht es mir bitte nach. In diesen Sachen bin ich nur ein interessierter Laie.Sollte die Frage schon gestellt worden sein verweist mich bitte auf die Quelle.

Hintergrund: Ransomware, Erpressungs-Trojaner, Locky, CryptoLocker, ...

Danke für die Mühe!!!

~ ~ ~ ~ 

Vielen Dank denen, die mir schon geantwortet haben !!!

Zur Präzisierung meiner Frage:

Es geht nicht darum solang herumzuprobieren bis der Schlüssel passt  (wobei sich dann die Frage erhebt ob es nicht sogar mehrer Schlüssel gibt die das leisten).

Ich meine vielmehr, ob es  - theoretisch - möglich ist den (evtl. - bei mehreren Lösungen - die)  Schlüssel direkt auszurechnen und wenn ja  unter welchen Voraussetzungen.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Shalec, 1

Hej,

Wenn dir der Klar- und Ciphertext zur Verfügung steht, kannst du zumindest mit einer Bruteforce-Attacke eine Kollision finden. Ob das aber der Schlüssel war, bleibt unbeantwortet. ;) Je mehr Paare dir zur Verfügung stehen, umso weniger mögliche Schlüssel wirst du finden. (Insofern alle mit dem selben Schlüssel verschlüsselt wurden.)

Es gibt so viele unterschiedliche Verschlüsselungsarten, dass es kaum möglich ist, pauschal zu beantworten, dass aufgrund dieser Gegebenheiten immer der Schlüssel errechenbar ist. Hast du nur den Ciphertext zeigt dir z.B. das One-Time-Pad (Schlüssellänge = Klartextlänge), dass dies nicht ohne Einschränkungen möglich ist. 

Einige Cryptosysteme basieren auf Hashfunktionen. Eine Hashfunktion hat die Eigenschaft, dass eine solche Kollision oder Invertierung nicht möglich ist (Cisco hat mit dem selbst entwickelten Hash 7 ein Gegenbeispiel geliefert ^^). Im Idealfall sind Hashfunktionen gerade so konstruiert, dass du anhand von Klar- und Ciphertext den Schlüssel nicht finden kann. 

Insgesamt werden zwei Arten von Cryptosystem unterschieden: Symmetrische und Asymmetrische. Zu den symmetrischen Cryptosystemen zählen u.A. Strom- und Blockchiffren, wie z.B. der DES oder AES. Derzeit existieren keine wesentlich effizienteren Angriffe auf den AES, als Bruteforce. Daher ist es hier praktisch nicht möglich auf einem Heimcomputer ein AES128 oder AES256 in absehbarer Zeit zu humanen Kosten zu berechnen.

Ganz anders sieht es da in der asymmetrischen Cryptographie aus. Hier werden auch wieder viele Systeme unterschieden, ich nenne mal ein paar Grundbeispiele und -Konzepte.
- Diskreter Logarithmus (RSA, ECC)
- Gitterbasierte (BLISS [Signatur], Ring-LWE)
- Codebasierte (McEliece, Niederreiter basieren zum teil auf Goppacodes, ...)
- Hashbasierte
- Multivariate Polynome

Die Verfahren, die auf dem DLP (diskreten Log) beruhen sind im Zeitalter der Quantencomputer unbrauchbar, da hier bereits ein Algorithmus existiert, der das DLP ohne weiteres lösen kann. Auch gibt es viele Angriffe darauf: Index Calculus, Pollard Rho, Pollard p-1, Babystep-Giantstep, Zahlkörpersieb, MOV, und viele weitere. Alle diese Angriffe liefern dir potentielle Keys. Es ist also gerade im DLP möglich sehr effizient (bei falschen Grundparametern) einen Key zu extrahieren. 

Die 4 letzt-genannten bleiben auch im Zeitalter der Quantencomputer nach aktuellem Wissensstand sehr sicher. (Verlieren vlt. die Hälfte der aktuellen Sicherheitseinstufung, die an äquivalenter symmetrischer Cryptographie gemessen wird) Gerade Gitterbasierte Algorithmen scheinen sehr gute Resultate bei mobilen Anforderungen zu erzielen. Es gibt bei einigen dieser Methoden bereits Angriffe, die aber die Sicherheit nicht stark beeinflussen. (Insofern die Parameter korrekt gewählt worden sind.) Aber auch hier: Bruteforce/exhaustive search. 

Es gibt ja auch noch die Möglichkeit mehrere Systeme zu verschachteln. Quasi E_1(E_2(E_3(m,k_3),k_2),k_1), Hier ist aber noch nicht ohne weitere Einschränkung klar, ob dies das System wirklich sicherer macht, oder sogar noch mehr Probleme mitsich bringt. 

Kurzum: Einen Key finden ist theoretisch unter unbegrenzter Rechenleistung und Energie möglich. Ob das aber DER Key war, ist nicht eindeutig ohne mehrere Proben. Praktisch werden diese Systeme aber so konzipiert, dass das Auffinden eines Keys mehr Zeit benötigt, als die Inhalte Wert haben. ;) (Wie lange darf darauf niemand Zugriff haben? - bestimmt die Keylänge und den Verschlüsselungsaufwand.)

Die obigen Systeme werden übrigens noch weiter differenziert. Je nach Einsatzgebiet ist es sogar sinnvoll die ID des Gerätes und des Servers/Kommunikationspartners zum Erstellen eines Rundenschlüssels mitzuverwenden. Auch kannst du dir mal das Konzept des 3DES und des MitM (Meet in the Middle, nicht Man in the Middle ;) ) anschauen. Dadurch ist super zu sehen, das Verschachtelungen nicht unbedingt immer die erwartete Sicherheit liefern.

Viele Grüße

Antwort
von NoHumanBeing, 4

Theoretisch ja.

Mit einer nichtdeterministischen Maschine könnte ich einfach die ursprüngliche Datei mit allen möglichen Schlüsseln (und evtl. weiteren randomisierten Werten bei IND-CPA-sicheren Kryptosystemen, welche die Eigenschaft haben, dass sie den selben Klartext mit dem selben Schlüssel auf unterschiedliche Ciphertexte abbilden) verschlüsseln und überprüfen, bei welchem ich den vorliegenden Ciphertext erhalte.

Wenn bei jeder Datei der selbe Schlüssel verwendet wurde (was ja nicht der Fall sein muss!), könnte ich mit dem so ermittelten Schlüssel auch die anderen Dateien entschlüsseln, zu denen ich eventuell keinen Klartext habe. (Wenn ich ohnehin überall den Klartext habe, habe ich durch die Fähigkeit, die Dateien zu entschlüsseln, ja nichts gewonnen.)

Faktisch kann ich das nicht, da ich nur eine deterministische Maschine habe und daher nicht alle Schlüssel zugleich durchprobieren kann, sondern stattdessen einen nach dem anderen probieren muss und der Schlüsselraum zu groß ist, als dass ich während meiner Lebenszeit (oder der verbleibenden Lebensdauer der Sonne) den richtigen Schlüssel finden werde.

Wenn ich beliebig viel Rechenleistung zur Verfügung hätte, könnte ich es natürlich schaffen. Nur ein Verfahren mit perfekter Geheimhaltung (one-time-pad) lässt sich auch durch einen unbeschränkten Angreifer nicht brechen. Praktische Kryptosysteme (wie RSA, AES, etc.) sind in der Regel nur gegen polynomiell beschränkte Angreifer sicher.

Antwort
von LeonardM, 2

Also mir würde nur einfallen da ja plain und encrypted document bekannt sind den encrypted so lange zu verschlüsseln mit sich wechselnden schlüsseln bis der output dem der verschlüsselten datei entspricht. Bei AES256 wären das allerdings theoretisch 2^(254,4) mögliche Schlüssel wenn ich mich nicht irre. Vorab: ich bin weder studiert noch hab ne ausbildung im it bereich, möglicherweise liege ich falsch oder es gibt noch mehr methoden von denen ich nichts weiss

Antwort
von AnglerAut, 9

Sobald die Datei länger als der Schlüssel ist, es also zu Wiederholungen kommen muss, wirst du hier keine Problem haben, den Schlüssel zu finden.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten