| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
| gf2:asymetrie_u_signatur [2023/04/27 10:32] – marroc | gf2:asymetrie_u_signatur [2023/05/05 10:09] (aktuell) – marroc |
|---|
| ===== RSA-Verfahren: das erste asymmetrische Verschlüsselungssystem ===== | ===== RSA-Verfahren: das erste asymmetrische Verschlüsselungssystem ===== |
| Die drei Mathematiker Ron **R**ivest, Adi **S**hamir und Leonard **A**dleman wollten eigentlich die Ideen von Diffie und Hellman zur Möglichkeit eines asymmetrischen Kryptoverfahrens widerlegen und zeigen, dass man ein solches System stets angreifen und knacken kann. Nachdem sie bei einigen Ansätzen beweisen konnten, dass diese nicht funktionierten, stiessen sie schliesslich auf eine Möglichkeit, die keine Schwachstellen aufwies und daraus entstand das auch heute noch angewandte und nach ihnen benannte RSA-Verfahren. \\ | Die drei Mathematiker Ron **R**ivest, Adi **S**hamir und Leonard **A**dleman wollten eigentlich die Ideen von Diffie und Hellman zur Möglichkeit eines asymmetrischen Kryptoverfahrens widerlegen und zeigen, dass man ein solches System stets angreifen und knacken kann. Nachdem sie bei einigen Ansätzen beweisen konnten, dass diese nicht funktionierten, stiessen sie schliesslich auf eine Möglichkeit, die keine Schwachstellen aufwies und daraus entstand das auch heute noch angewandte und nach ihnen benannte RSA-Verfahren. \\ |
| Wir können dieses hier nicht im Detail behandeln, doch es basiert ähnlich wie der Schlüsseltausch nach Diffie-Hellman auf der Modulo-Arithmetik und zusätzlich darauf, dass es sehr schwer ist, eine Zahl in ihre Primfaktoren zu zerlegen, wenn diese das Produkt aus zwei sehr grossen Primzahlen ist. (Als Beispiel, welches wir noch im Kopf rechnen können: Die Primfaktoren von 55 sind 11 und 5, diese sind sehr schnell gefunden. Die Primfaktoren von 241103 zu finden, ist wesentlich schwieriger. Es dauert sicher länger, bis die beiden Primfaktoren 461 und 523 gefunden werden. Natürlich wird mit immens grossen Primzahlen operiert. --> grösste bekannte[[https://en.wikipedia.org/wiki/Largest_known_prime_number| Primzahl]].) | Wir können dieses hier nicht im Detail behandeln, doch es basiert ähnlich wie der Schlüsseltausch nach Diffie-Hellman auf der Modulo-Arithmetik und zusätzlich darauf, dass es sehr schwer ist, eine Zahl in ihre Primfaktoren zu zerlegen, wenn diese das Produkt aus zwei sehr grossen Primzahlen ist. \\ |
| | Als anschauliches Beispiel, welches wir noch im Kopf rechnen können: Die Primfaktoren von 55 sind 11 und 5, diese sind sehr schnell gefunden. Die Primfaktoren von 241103 zu finden, ist wesentlich schwieriger. Es dauert sicher länger, bis die beiden Primfaktoren 461 und 523 gefunden werden. Natürlich wird mit immens grossen Primzahlen operiert. --> grösste bekannte[[https://en.wikipedia.org/wiki/Largest_known_prime_number| Primzahl]]. |
| |
| <WRAP nicebox blue> | <WRAP nicebox blue> |
| Das RSA Verfahren wurde 1977 von Rivest, Shamir und Adleman entwickelt. Es ist die mathematische Beschreibung, wie man ein Schlüsselpaar aus einem öffentlichen Schlüssel (Public Key) und einem privaten Schlüssel (Private Key) erstellen kann. | Das RSA Verfahren wurde 1977 von Rivest, Shamir und Adleman entwickelt. Es ist die mathematische Beschreibung, wie man ein Schlüsselpaar aus einem öffentlichen Schlüssel (Public Key) und einem privaten Schlüssel (Private Key) erstellen kann. |
| |
| Der öffentliche Schlüssel kann in einem Verzeichnis veröffentlicht werden oder man kann ihn auf seiner Homepage jedem zugänglich machen (siehe z.B. [[https://www.ibr.cs.tu-bs.de/users/steinb/pgpkey.html|Profil eines Universitäts-Mitarbeiters]]). Nur mithilfe des geheimen privaten Schlüssels ist es möglich, eine mit dem öffentlichen Schlüssel chiffrierte Nachricht zu dekodieren. | Der öffentliche Schlüssel kann in einem Verzeichnis veröffentlicht werden oder man kann ihn auf seiner Homepage jedem zugänglich machen (siehe z.B. [[https://www.ibr.cs.tu-bs.de/users/steinb/pgpkey.html|Profil eines Universitäts-Mitarbeiters]]). \\ <color #7092be>Nur mithilfe des geheimen privaten Schlüssels ist es möglich, eine mit dem öffentlichen Schlüssel chiffrierte Nachricht zu dekodieren.</color> |
| </WRAP> | </WRAP> |
| |
| <WRAP nicebox green> | <WRAP nicebox green> |
| **Aufgabe ** | **Aufgabe ** \\ |
| Erstellen Sie auf [[https://www.devglan.com/online-tools/rsa-encryption-decryption|dieser Seite]] Ihren öffentlichen und privaten Schlüssel. Kopieren Sie dann Ihren **<color #ed1c24>öffentlichen</color>** Schlüssel in die vorgesehene Spalte auf der vorbereiteten "OneNote-Seite". Schicken Sie nun jemandem aus der Klasse mithilfe dessen öffentlichen Schlüssels eine verschlüsselte Nachricht. Sie erhalten von jemandem anderen eine Nachricht, die sie mit Hilfe Ihres privaten Schhlüssels - nicht des öffentlichen - dechiffrieren können. | Erstellen Sie auf [[https://www.devglan.com/online-tools/rsa-encryption-decryption|dieser Seite]] Ihren öffentlichen und privaten Schlüssel. Kopieren Sie dann Ihren **<color #ed1c24>öffentlichen</color>** Schlüssel in die vorgesehene Spalte auf der vorbereiteten "OneNote-Seite". Schicken Sie nun jemandem aus der Klasse mithilfe dessen öffentlichen Schlüssels eine verschlüsselte Nachricht. Sie erhalten von jemandem anderen eine Nachricht, die sie mit Hilfe Ihres privaten Schhlüssels - nicht des öffentlichen - dechiffrieren können. |
| |
| **Bemerkung** Dies dient natürlich nur zur Veranschaulichung: normalerweise sollte man die Schlüssel nicht online generieren lassen und auch die unverschlüsselte Meldung nicht online eingeben. \\ | **Bemerkung** \\ Dies dient natürlich nur zur Veranschaulichung: normalerweise sollte man die Schlüssel nicht online generieren lassen und auch die unverschlüsselte Meldung nicht online eingeben. \\ |
| **Zusatzfrage**: Begründen Sie, warum dies keine gute Idee wäre. | **Zusatzfrage**: Begründen Sie, warum dies keine gute Idee wäre. |
| </WRAP> | </WRAP> |
| {{:planung:kryptologie:instagram.png?400|}} | {{:planung:kryptologie:instagram.png?400|}} |
| |
| Der Client (mein Browser z.B. Google Chrome/Safari/Firefox) verbindet sich mit dem Server von Instagram und sendet ein so genanntes „Client Hello“. Dies ist eine Startmeldung, die dem Server zu verstehen gibt, dass sich jemand mit ihm verschlüsselt „unterhalten will“. Nun müssen sich Chrome und der Instagram-Server darauf verständigen, welche Verschlüsselungsmethode und welcher Schlüssel verwendet werden. Theoretisch könnte der Server einfach seinen öffentlichen Schlüssel senden und der Client verschlüsselt die gesammten Daten mit diesem öffentlichen Schlüssel und schickt sie dem Server, doch bei grösseren Datenmengen ist dies recht ineffizient da es ziemlich aufwändig ist, viele Daten mit dem RSA-Verfahren auszutauschen. | Der Client (mein Browser z.B. Google Chrome/Safari/Firefox) verbindet sich mit dem Server von Instagram und sendet ein so genanntes „Client Hello“. Dies ist eine Startmeldung, die dem Server zu verstehen gibt, dass sich jemand mit ihm verschlüsselt „unterhalten will“. Nun müssen sich Chrome und der Instagram-Server darauf verständigen, welche Verschlüsselungsmethode und welcher Schlüssel verwendet werden. Theoretisch könnte der Server einfach seinen öffentlichen Schlüssel senden und der Client verschlüsselt die gesamten Daten mit diesem öffentlichen Schlüssel und schickt sie dem Server, doch bei grösseren Datenmengen ist dies recht ineffizient da es ziemlich aufwändig ist, viele Daten mit dem RSA-Verfahren auszutauschen. |
| |
| Es wird daher von beiden Seiten ein symmetrisches Verfahren verwendet, welches zunächst abgemacht wird (DES, 3DES, Idea und RC4). Welches Verfahren verwendet wird, hängt davon ab, welche Verschlüsselung der Client und der Server beherrschen. Bevor aber symmetrisch verschlüsselt werden kann, muss zunächst ein Schlüssel (Session-Key) ausgetauscht werden. Dieser Schlüsseltausch geschieht mit dem RSA- oder mit dem Diffie-Hellman Verfahren. Sobald beiden Parteien den Schlüssel haben wird der gesamte Nachrichtenverkehr mit diesem Schlüssel verschlüsselt und bei jeder Neuverbindung wird ein neuer Schlüssel gewählt. | Es wird daher von beiden Seiten ein symmetrisches Verfahren verwendet, welches zunächst abgemacht wird (DES, 3DES, Idea und RC4). Welches Verfahren verwendet wird, hängt davon ab, welche Verschlüsselung der Client und der Server beherrschen. Bevor aber symmetrisch verschlüsselt werden kann, muss zunächst ein Schlüssel (Session-Key) ausgetauscht werden. Dieser Schlüsseltausch geschieht mit dem RSA- oder mit dem Diffie-Hellman Verfahren. Sobald beiden Parteien den Schlüssel haben wird der gesamte Nachrichtenverkehr mit diesem Schlüssel verschlüsselt und bei jeder Neuverbindung wird ein neuer Schlüssel gewählt. |