Forum: PC Hard- und Software OpenPGP asymmetrische Verschlüsselung


von hope that you can help me (Gast)


Lesenswert?

Hallo Leute,

Ich habe Probleme beim Verstehen der asymmetrischen Verschlüsselung. 
Hoffentlich kann mir jemand das hier erklären, denn sonst habe ich noch 
weniger Vertrauen in verschlüsselte E-Mails und https/SSL+TLS als 
sowieso schon.

Um es auf den Punkt zu bringen: wieso kann man trotz dessen, dass die 
Algorithmen und die öffentlichen Schlüssel bekannt sind, nicht auf die 
privaten Schlüssel durch reine Logik kommmen?
Welche Operationen kann man denn nicht umkehren, sodass man nicht mit 
dem öffentlichen Schlüssel die damit verschlüsselte Nachricht wieder 
entschlüsseln kann? Wie soll soetwas gehen? Klingt irgendwie nach 
Zauberei...

Denn "mathematisch" gesehen müsste es doch so gehen:
1
A ------- Algorithmus 1 (öffentl. Schlüssel) -------> B
und laut PGP wieder zurück mit
1
B ------- Algorithmus 2 (privater Schlüssel) -------> A
was heißt, dass:
1
<--- Algorithmus 1 (öffentl. Schlüssel) --- = --- Algorithmus 2 (privater Schlüssel) --->
wobei gilt:
1
---> bedeutet Verschlüsseln
2
<--- bedeutet Entschlüsseln (Umkehrung des geschriebenen)
3
4
Also Umkehrung von Algorithmus 1 mit öffentl. Schlüssel (=Entschlüsseln) = Algorithmus 2 mit privatem Schlüssel (=Entschlüsseln)
Die beiden Algorithmen sind bekannt, der öffentliche Schlüssel auch. Wie 
wird der private Schlüssel generiert, wenn nicht in einem solchen 
Zusammenhang?

Was ist mein Denkfehler?

Danke für jeden Tipp

von Lukas T. (tapy)


Lesenswert?

https://de.wikipedia.org/wiki/Elgamal-Verschl%C3%BCsselungsverfahren

würde ich jetzt spontan empfehlen.
Da ist ein Beispiel mit dabei.
Einfach nachvollziehen.

Ansonsten die einschlägigen Scripte aus Mathe oder Informatik der 
diversen Universitäten. Das ist schon grob eine millionen mal erklärt 
worden.

von (prx) A. K. (prx)


Lesenswert?

hope that you can help me schrieb:
> Was ist mein Denkfehler?

Dass es mathematische Operationen gibt, die zwar in beide Richtungen 
durchführbar sind, aber nur in einer davon in realistischer Zeit. Sowas 
wie eine Multiplikation zweier sehr grosser Primzahlen und die Zerlegung 
des Produktes in beide Faktoren.

: Bearbeitet durch User
von Sven B. (scummos)


Lesenswert?

Ein Glas Milch und ein Glas Wasser zusammenschütten ist auch sehr 
einfach. Auch wenn es prinzipiell möglich ist, das wieder rückgängig zu 
machen, ist es in der Praxis schwierig ...

von Dussel (Gast)


Lesenswert?

A. K. schrieb:
> Sowas
> wie eine Multiplikation zweier sehr grosser Primzahlen und die Zerlegung
> des Produktes in beide Faktoren.
Das dürfte wohl eines der Standardverfahren sein.

Ich habe mir zwei Primzahlen gedacht. Das hat etwa zehn Sekunden 
gedauert. Das Produkt dieser Zahlen ist 5561. Wie lange brauchst du, um 
nur mit einem Taschenrechner die beiden Primzahlen rauszufinden?




Die Zahlen sind 67 und 83. Dafür hättest du aber sicher länger als zehn 
Sekunden gebraucht. Genauso ist es bei Computern, dann natürlich mit 
deutlich größeren Zahlen.

von Arno (Gast)


Lesenswert?

Restwertbildung kann man nicht umkehren. 17 % 5 = 2, aber aus der 2 und 
der 5 wieder eindeutig die 17 zu generieren geht nicht.

Es gibt zudem sogenannte Einwegfunktionen, die sich in einer Richtung 
sehr schnell, in der anderen (bei ausreichend großen Zahlen) praktisch 
nicht berechnen lassen. Die Exponentialfunktion ist schnell, der 
Logarithmus ist langsam. Darauf kann man wunderbar 
Public-Key-Kryptografie aufbauen:

https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch#Funktionsweise

Was dabei das Verständnis erleichtert: 1) Verschlüsseln und 
Entschlüsseln sind im Allgemeinen der gleiche Algorithmus mit 
verschiedenen Teilen des gleichen Schlüsselpaars (wie im 
Farbmisch-Beispiel).

2) Wenn man mit dem öffentlichen Schlüssel des Empfängers verschlüsselt, 
kann nur der Empfänger mit seinem privaten Schlüssel die Nachricht 
wieder entschlüsseln. Das nennt man Verschlüsseln (offensichtlich). 
Wenn man aber mit seinem eigenen privaten Schlüssel verschlüsselt, kann 
jeder Empfänger die Nachricht mit dem öffentlichen Schlüssel des 
Absenders wieder entschlüsseln (was zur Geheimhaltung natürlich nicht 
hilft :D). Das nennt man daher Signieren, weil damit eindeutig 
sichergestellt ist, dass die Nachricht vom Besitzer des privaten 
Schlüssels kommt.

MfG, Arno

von DPA (Gast)


Lesenswert?

Zunächst, deine Pfeile ergeben für mich so wenig sinn. Public Key: immer 
verschlüsseln. Private Key: entschlüsseln oder signieren.

Wie das Private-Public Schlüsselpaar generiert wird, ist vom jeweiligen 
Algorithmus abhängig. Oft wird der Public Key aus dem private Key 
generiert. Man verwendet dazu sogenannte Einwegfunktionen. 
https://de.wikipedia.org/wiki/Einwegfunktion

Einwegfunktionen(1) sind, wie alle Funktionen, in der tat umkehrbar, in 
dem sinne, dass man mögliche ursprüngliche Resultate dazu finden oder 
berechnen könnte. Mit momentaner Technik würden die momentan bekannten 
Verfahren aber zu lange dauern, als dass man den Key rechtzeitig finden 
würde, sofern man einen ausreichend gossen Wertebereich verwendet.

Ob es effektiv Funktionen gibt, die sich nicht in P zeit umzehren 
lassen, ist unbekannt. Es gibt aber welche, von denen man annimmt, dass 
sie nicht in P zeit umkehrbar sind.

Die meisten gehen mittlerweile von P!=NP aus, aber ich setze eher auf 
P=NP.

Bei längeren Inhalten sollte man dann zusätzlich noch einen 
Symmetrischen schlüssel verwenden, und mit diesem den eigentlichen 
Inhalt verschlüsseln. Das wird z.B. bei TLS (war früher SSL), bei LUKS, 
TrueCrypt, etc. so gemacht.

1) https://de.wikipedia.org/wiki/Einwegfunktion

Arno schrieb:
> Wenn man aber mit seinem eigenen privaten Schlüssel verschlüsselt, kann
> jeder Empfänger die Nachricht mit dem öffentlichen Schlüssel des
> Absenders wieder entschlüsseln (was zur Geheimhaltung natürlich nicht
> hilft :D). Das nennt man daher Signieren, weil damit eindeutig
> sichergestellt ist, dass die Nachricht vom Besitzer des privaten
> Schlüssels kommt.

Nein, Signierte Nachrichten sind nicht Verschlüsselt. Würde man das tun, 
wäre der Private schlüssel schon nach wenigen Nachrichten nicht mehr so 
privat.

von Günter Lenz (Gast)


Lesenswert?

hope that you can help me schrieb:
>Welche Operationen kann man denn nicht umkehren, sodass man nicht mit
>dem öffentlichen Schlüssel die damit verschlüsselte Nachricht wieder
>entschlüsseln kann? Wie soll soetwas gehen? Klingt irgendwie nach
>Zauberei...

Schau hier:

https://www.youtube.com/watch?v=Grd-sxx5dEQ

https://www.youtube.com/watch?v=oXlY-yx1oIw&t=627s

von PGP-Anwender (Gast)


Lesenswert?

Ein paar Klarstellungen:

1. Schlüsselerzeugung
Bei einer asymetrischen Verschlüsselung erstellt ein 
Schlüsselerzeugungsalgorithmus aus einem "Geheimnis" ein 
Schlüsselpärchen. Einer der beiden Schlüssel -egal welcher- wird per 
Definition zum privaten Schlüssel und muss unbedingt geheimgehalten 
werden.  Dazu wird dieser oft nochmals mit einem symetrischen Verfahren 
verschlüsselt, bei dem z.B. ein Passwort zum Ver- und Entschlüssel 
genutzt wird.

2. Schlüsselgebrauch (Verschlüsseln)
Wenn mit jemand eine geheime Nachricht senden will, verschlüsselt dieser 
die Nachricht mit meinem öffentlichen Schlüssel.  Mit dem 
geheimgehaltenen privaten Schlüssel kann ich (und nur ich) dann die 
Nachricht entschlüsseln.

Das Verschlüsseln von Nachrichten mit dem privaten Schlüssel ist zwar 
möglich, aber sinnlos, da diese ja mit dem öffentlichen Schlüssel 
gelesen werden können.

Da das Verschlüsseln mit asymetrischen Verfahren sehr rechenaufwenddig 
ist, wird die Nachricht in den meisten Verfahren mit einem on-the-fly 
gebildeten symetrischen Schlüssel verschlüsselt. Dieser symetrische 
Schlüssel wird dann mit dem asymetrischen Verfahren verschlüsselt und 
mitübertragen.

So funktionieren dann auch viele Unternehmeslösungen, bei denen mehrer 
Personen Zugriff auf verschlüsselte Dokumente haben sollen:  Hier wird 
der eigentlich symetrische Schlüssel dann einzeln mit mehreren 
öffentlichen Schlüsseln verschlüsselt, so dass jeder Besitzer eines 
entsprechenden Private-Key das Dokument entschlüsseln kann. 
Administratoren können -ohne selbst die Nachricht lesen zu können- 
Berechtigungen entfernen, indem einfach ein solcher Eintrag entfernt 
wird.  Weitere Berechtigungen erteilen kann nur jemand, der Zugriff auf 
den unverschüsselten symetrischen Key hat.

3. Schlüsselgebrauch (Signatur)
Eine Signatur ist etwas anderes als eine Verschlüsselung. Bei einer 
Signatur bleibt die Nachricht im Klartext enthalten, es wird jedoch ein 
Hash darüber gebildet, der mit dem jeweils privaten Schlüssel 
verschlüsselt wird.  Der verschlüsselte Hash wird der Nachricht -analog 
zu einer Unterschrift- hinzugefügt.  Der Empfänger der Nachricht kann 
den Hash entschlüsseln und die Nachricht somit verifizieren.

Meist ist eine Nachricht mit dem Public-Key des Empfängers verschlüsselt 
und mit dem Private-Key des Absenders signiert. Wenn der Absender geheim 
bleiben möchte, kann er zunächst signieren und die signierte Nachricht 
verschlüsseln.

4. Schlüsselvertrauen
Allen Verfahren liegt zugrunde, dass die verwendeten öffentlichen 
Schlüssel wirklich den Absendern gehören. Hier kommen Lösungen wir das 
Web-of-Trust oder die Zertifizierungsstellen (CA) für X.500 Zertifikate 
zum Einsatz.  Ein Zertifikat ist nichts anderes, als ein öffentlicher 
Schlüssel, der mit einem privaten Schlüssel einer "vertrauenswürdigen" 
Instanz signiert ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.