Public-Key-Infrastruktur - Ein Verständnisproblem?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ja, wäre so, wenn Du als Hash z.B. einfach eine Quersumme nimmst. Dann noch ein bischen am Dokument schrauben, und der Hash passt wieder.

So ein Hash wäre schwach. Bei MD5 z.B. wurden Schwachstellen gefunden, die es vereinfachen solche Hashkollisionen herbeizuführen.

Bei einem guten Hash geht das nicht.

Richard30 
Fragesteller
 25.01.2022, 17:27

Okay dann ist es also die Mathematik dahinter, die es erschwert einen passenden Hash zu erzeugen der dann auch mit dem Dokument passt.

Aber wie funktioniert das und warum kann man das wie ich meinte nicht einfach rückwärts rechnen? Die Verschlüsselung und alles ist ja bekannt und wenn man in einer Gleichung nach X sucht, kann man die ja auch schrittweise auflösen.

0
freejack75  25.01.2022, 17:38
@Richard30

da die Hashfunktion deterministisch ist, könntest du die natürlich prinzipiell invertieren. Die gilt dann als sicher, wenn das gleich oder mehr Aufwand verursacht als einfach alles durchprobieren (Brute Force Angriff).

Also ähnliches Prinzp wie beim RSA Public Key Verfahren. Da wird genutzt, dass zwei sehr große Primzahlen p und q vergleichsweise einfach zu multiplizieren sind, jedoch nur vergleichsweise schwer zu Faktorisieren.

So wie Du sehr einfach ein Kilo Erbsen und ein Kilo Linsen zusammenkippen kannst. Nur das Trennen geht nicht so einfach. Ist natürlich möglich, jedoch viel mehr Aufwand.

1
Richard30 
Fragesteller
 25.01.2022, 17:49
@freejack75

Ah okay.

Und je größer die Primzahlen sind, desto schwieriger wird es.

Aber wenn wir mit den Primzahlen den vergleich ziehen: Irgendwie muss ja eine Seite das ganze verschlüsselt haben, ohne die Primzahlen zu kennen die benutzt wurden. Wenn dazu eine Primzahl benutzt wurde, jeder die aber sehen kann, könnte jeder einfach nur das Ergebniss durch diese bekannte verreichnen, es muss also komplexer sein, ein einfaches Multiplizieren würde da bei weitem nicht ausreichen und es muss eine Logik geben mit der die beiden Keys zusammenhängen.

Dennoch würde ich die Mathematik dahinter gerne genau begreifen.

0
Alice will Bob etwas zusenden, sie selbst erstellt einen PiK /Private Key) und einen PuK (Public Key). Ihren PuK lässt sie bei einer Registrierungsstelle sichern,

Der Public Key wird nicht gesichert, sondern er wird signiert. Die Signatur ist der Hashwert über den Schlüssel, der mit dem privaten Schlüssel der Registrierungsstelle verschlüsselt wird.

Wenn sie nun etwas versendet, erstellt sie mit dem PiK und der Prüfsumme der Nachricht einen Haswert,

Ein Hashwert ist eine Prüfsumme. Es wird mittels Hashfunktion eine Prüfsumme/ein Hashwert über die Nachricht errechnet.

Bob kann nun von dieser sicheren Stelle

Bleibe bei den gewählten Begriffen. Du hast oben von Registrierungsstelle gesprochen, also bleiben wir dabei.

einen PuK besorgen,

Nicht einen, sondern den richtigen Public Key. Es muss schon derjenige sein, der zum Privaten Schlüssel gehört, mit dem die Signatur generiert wurde.

damit enschlüsselt er den Hash wert, er erhält eine Prüfsumme.

Er entschlüsselt die Signatur und erhält den Hashwert/die Prüfsumme.

Wenn jetzt die Nachricht verändert wird, stimmt die Prüfsumme der Datei nicht mehr mit der des Hashwertes überein

stimmt die Prüfsumme der empfangenen Datei nicht mit der mitgelieferten (in der Signatur enthaltenen) Prüfsumme überein.

oder das Dokument dementsprechend so ändern, dass diese beiden wieder übereinstimmen, wäre das nicht möglich?

Du meinst, der Angreifer generiert ein Dokument, welches dieselbe Prüfsumme hat wie das Original-Dokument? Ja, das ist möglich und nennt sich Pre-Image-Angriff. Bei einer geeigneten Hashfunktion ist das aber nur theoretisch, nicht aber praktisch möglich. Die Kunst dabei ist auch, dass das empfangene Dokument den Erwartungen entsprechen muss. Wenn das gefälschte Dokument nur Zeichensalat ist, merkst Du auch ohne Prüfsumme, dass da was schief gelaufen ist. Bei MD5 z. B. ist das 2004 gelungen (https://de.wikipedia.org/wiki/Message-Digest_Algorithm_5#Kollisionsresistenz), bei SHA1 ist das 2017 gelungen: https://shattered.io/

Wenn diese Prüfsumme doch nach einem mathematischem Prinzip erzeugt wird, müsste man diesen dann nicht einfach nur umkehren?

Eine Hash-Funktion ist eine Einweg-Funktion. Sie ist nicht umkehrbar, sonst wäre es eine Verschlüsselung. Eine Hash-Funktion führt zu einem Wert mit definierter Länge. Bei SHA256 sind es z. B. 256 Bit. Die Länge der Prüfsumme ist unabhängig von der Datenmenge, über die diese Prüfsumme errechnet wird. Jetzt rechne mal über ein 1.000 Seiten starkes Buch oder über einen 2 GB großen Film einen SHA256-Hash. Du bekommst jeweils eine Prüfsumme mit 256 Bit Länge. Meinst Du, Du könntest aus 256 Bit wieder ein 1.000 Seiten starkes Buch oder einen 2 GB großen Film zurückrechnen? Eher nicht. Du hast beim Errechnen des Hashwertes immer Informationsverlust. Information, die verloren geht, lässt sich nicht wiederherstellen, nicht wieder zurückrechnen.

Es kann ja beides falsch sein, der Hashwert UND die Nachricht, es sei denn der Haschwert wird dann nochmals über einen weiteren Kanal versendet, aber ich nehme mal stark an ich habe einen Denkfehler.

Natürlich kann es auch Übertragungsfehler geben. Das Risiko geht man ein. Im Zweifel geht man von einer verfälschten Nachricht aus, auch wenn nur der Hash kaputt ist.

Ich muss ehrlich sagen, ich verstehe auch bei einer Verschlüsselung nicht, warum man diese, wenn man den Puk und die Nachricht hat, dadurch nichtauf den PiK kommen kann,

Auch das ist nur theoretisch möglich. Früher hatte man RSA-Schlüssel mit 768 Bit Länge. Das reicht heute nicht mehr aus. Deshalb nimmt man heute mindestens 2.048, besser 4.096 Bit. Nur wenn die Zahlen groß genug sind, gelingt die Rückrechnung vom öffentlichen auf den privaten Schlüssel nicht. Der Aufwand ist so hoch, dass es praktisch nicht durchführbar ist.