it-swarm.com.de

Warum können Sie nicht mit dem öffentlichen Schlüssel rückwärts arbeiten, um eine Nachricht zu entschlüsseln?

Wie der Titel schon sagt, bin ich gespannt, warum Sie mit einer Nachricht, einem öffentlichen Schlüssel und einer verschlüsselten Nachricht nicht rückwärts arbeiten können, um herauszufinden, wie die Nachricht entschlüsselt werden kann!

Ich verstehe nicht, wie eine Nachricht mit einem Schlüssel verschlüsselt werden kann und wie Sie dann nicht rückwärts arbeiten können, um die Verschlüsselung "rückgängig zu machen".

63
Max

Es gibt Einwegfunktionen in der Informatik (nicht mathematisch bewiesen, aber Sie werden reich und berühmt sein, wenn Sie etwas anderes beweisen). Diese Funktionen sind leicht in eine Richtung zu lösen, aber schwer umzukehren, z. es ist einfach für Sie, 569 * 757 * 911 = 392397763 in ein oder zwei Minuten auf einem Stück Papier. Auf der anderen Seite, wenn ich dir 392397763 und bat Sie, die Hauptfaktoren zu finden, würden Sie eine sehr schwere Zeit haben. Wenn diese Zahlen wirklich groß sind, kann selbst der schnellste Computer der Welt die Faktorisierung nicht in angemessener Zeit rückgängig machen.

In der Kryptografie mit öffentlichen Schlüsseln werden diese Einwegfunktionen auf clevere Weise verwendet, damit jemand den öffentlichen Schlüssel verwenden kann, um etwas zu verschlüsseln, was es jedoch sehr schwierig macht, die resultierende Nachricht zu entschlüsseln. Sie sollten den Wiki-Artikel RSA-Kryptosystem lesen.

88
Lucas

Ihre Frage ist ein bisschen so (mit Entschuldigung an Tom Stoppard ): "Warum kann ich die Marmelade in meinen Milchreis einrühren, aber nicht wieder ausrühren? "

Einige mathematische Operationen sind sowohl rückwärts als auch vorwärts so einfach durchzuführen. Zum Beispiel können Sie einer Zahl 100 so einfach hinzufügen wie 100 subtrahieren. Einige sind jedoch schwieriger umzukehren. Wenn ich zum Beispiel x nehme und g(x) = a(x^5)+b(x^4)+c(x^3)+d(x^2)+ex+f finde, muss ich nur einfache Multiplikationen und Additionen durchführen. Es ist jedoch schwierig (auf algebraische Weise), von g(x) zu x zurückzukehren, da es gibt keine allgemeine algebraische Lösung für eine quintische Gleichung . Es ist nicht sofort klar, warum dies der Fall sein sollte (im Gegensatz zu einer quadratischen Gleichung), aber es ist so. Wenn ich Ihnen als geeigneteres Beispiel sagen würde, dass 34129 und 105319 beide Primzahlen sind (was sie sind), könnten Sie schnell herausfinden, dass ihr Produkt 3594432151 ist. Wenn ich Sie jedoch bitten würde, die beiden Primfaktoren von 3594432151 zu finden Das würde dir wahrscheinlich schwerer fallen.

Für die Kryptografie mit öffentlichen Schlüsseln sind zwei Schlüssel erforderlich. Im Allgemeinen stellt der private Schlüssel den Parametern einen schwer umkehrbaren Algorithmus bereit, der in eine Richtung geht (z. B. Klartext, um Text zu verschlüsseln), und der öffentliche Schlüssel liefert Parameter für einen schwer umkehrbaren Algorithmus, der in die andere Richtung geht.

Der Grund, warum Sie nicht rückwärts arbeiten können, liegt einfach darin, dass der Algorithmus so konzipiert ist, dass dies schwierig ist.

44
abligh

Jonglieren ist einfach: Sie werfen die Bälle einfach zum richtigen Zeitpunkt, damit Sie beim Fallen freie Hand haben. Bei einem oder zwei Bällen ist dies trivial. Mit drei ist es einfach genug. Mit mehr Bällen wird es (überraschenderweise) schwieriger. Sogar wesentlich härter.

Im Allgemeinen ist das "Umkehren" der Verschlüsselung mit einem n - Bitschlüssel wie das Jonglieren mit 2n Bälle. Mit einem 2048-Bit-Schlüssel ist dies wie 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656 Bälle. Oder so.

(Da Algorithmen mit öffentlichen Schlüsseln viele mathematische Strukturen verwenden, haben intelligente Köpfe die Mathematik genutzt, um diese Anzahl von Bällen auf 162259276829213363391578010288128 zu reduzieren, was erheblich niedriger ist, aber immer noch weit über der Gesamtleistung aller vorhandenen Computer auf der Erde liegt.)

39
Thomas Pornin

Max, das beste Werkzeug, das jemals zum Nachdenken über Kryptographie entwickelt wurde, ist der Zauberwürfel. Wenn Sie von einer Welt ausgehen, in der das Lösen ein ungelöstes Problem darstellt, gibt es direkte Analoga für DiffieHellmanKeyExchange, RSA-Signatur, RSA-Verschlüsselung usw. Sie können Streiche spielen, indem Sie Bewegungen aufschreiben, sie auf Würfeln ausführen und sie austauschen. und die gruppentheoretischen Gleichungen sind für die Krypto- und die Rubiks-Würfel gleich.

Aber das Wichtigste, was Sie beachten sollten, ist meiner Meinung nach, was Sie stören muss: Sie haben Recht. Es ist "möglich", alle diese Operationen umzukehren. Technisch gesehen haben wir f(x) und f_inverse (x), wobei f(x) in Polynomzeit läuft) (dh Sie können große Zahlen schnell verschlüsseln ), während f_inverse (x, s) in exponentieller Zeit abläuft (dh: gerade mittlere Zahlen sind nicht realisierbar) - es sei denn, Sie haben das richtige Geheimnis, um sich in f_inverse einzufügen. Solche Funktionspaare werden Falltüren genannt. Die üblichen Falltüren sind Probleme der Zahlentheorie, wie z als Primfaktorisierung und diskrete Logarithmen.

7
Rob

Was Sie tun müssen, ist sich über Public-Key-Kryptographie zu informieren. Die kurze Antwort lautet: Es basiert auf einem Algorithmus, mit dem ein Schlüssel verschlüsselt und der andere Schlüssel entschlüsselt werden kann, weshalb Sie nicht rückwärts arbeiten können.

Dies ist eine vereinfachte Erklärung dessen, was passiert. Wenn Sie das Problem auf den Punkt bringen möchten, können Sie sich Quellen wie die folgenden ansehen. Seien Sie jedoch gewarnt, dass es schnell von der Klippe in eine Mathematik übergeht, die möglicherweise einfach ist oder nicht für Sie zu folgen: http://nrich.maths.org/22

2
BeepBeep

Im Allgemeinen können Sie nicht rückwärts arbeiten - auf offensichtliche Weise -, weil Sie nicht genügend Informationen haben.

RSA hängt von der Schwierigkeit ab, große Zahlen zu berücksichtigen. Sie erzeugen Ihren RSA-Modul n, indem Sie zwei große Primzahlen p und q multiplizieren. Das Multiplizieren von p mit q ist einfach. Sie können den Vorgang auch umkehren, indem Sie q = n / p (Oder p = n / q) Berechnen. Was Sie nicht einfach tun können, ist, sowohl p als auch q wegzuwerfen und sie dann aus n zu berechnen. Das ist ein anderes Problem, keine Umkehrung eines Prozesses, den Sie bereits verwendet haben.

In ähnlicher Weise beinhaltet die RSA-Verschlüsselung einer Nachricht m unter Verwendung des Verschlüsselungsschlüssels e die Berechnung von (m ^ e) mod n. Sie könnten m ^ e Theoretisch mithilfe von Protokollen invertieren, aber ohne die Modulo-Operation wäre diese Zahl zu groß, um damit zu arbeiten. In jedem Fall verwirft die Modulo-Operation einen Teil der Nummer, sodass Sie wiederum nicht über alle Informationen verfügen, die Sie benötigen würden, um auf triviale Weise rückwärts zu arbeiten.

0
Pete

Bei dieser Verschlüsselung mit öffentlichem Schlüssel (oder einer asymmetrischen Beschriftung) gehen Sie wie folgt vor, um etwas zu verschlüsseln:

Nehmen Sie Ihre Nachricht zur Übermittlung (als Nummer): Nehmen wir an, es ist 5.

Berechnen Sie 3 ^ 5 (3 zum "Geheimnis" erhoben) = 243

Berechnen Sie den Modul, geteilt durch eine andere Zahl: Sagen wir 143. Also 243/143 = 100.

Los geht's. Ihr verschlüsseltes Geheimnis ist 100.

Um das Geheimnis ohne den privaten Schlüssel zu finden, müssen Sie nur eine Zahl finden, die, wenn sie durch 143 geteilt wird, 100 ergibt, und dann den kubischen Radix davon finden.

0
woliveirajr