Verschlüsseln und entschlüsseln wie funktioniert das?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ein weites Feld ... Man unterscheidet asymmetrische Verschlüsselung (z.B. RSA) von symmetrischer Verschlüsselung (AES, RC4 etc.).

Bei asymmetrischer Verschlüsselung wird mit Schlüsselpaaren gearbeitet, man hat einen öffentlichen und einen privaten Schlüssel. Beide sind natürlich mathematisch voneinander abhängig. Den privaten Schlüssel darf man nicht aus der Hand geben, er sollte den Rechner nicht verlassen. Asymmetrische Verschlüsselung ist mathematisch recht aufwändig, sodass man Datenströme damit nicht verschlüsseln kann. IPSec, SSL sowie WEP, WPA und WPA2 im WLAN arbeiten deshalb mit symmetrischer Verschlüsselung. Asymmetrische Verschlüsselung wird verwendet, um E-Mails (PGP, S/MIME) oder Dateien (z.B. mit PGP) zu verschlüsseln, oder um Schlüssel für die symmetrische Verschlüsselung auszutauschen. Damit ich Dir eine verschlüsselte Nachricht schicken kann, benötige ich Deinen öffentlichen Schlüssel. Mit diesem verschlüssele ich die Nachricht. Eine mit Deinem öffentlichen Schlüssel verschlüsselte Nachricht kann ausschließlich mit Deinem privaten Schlüssel entschlüsselt werden. Du bist also der einzige, der die Nachricht lesen kann (sofern Du mit Deinem privaten Schlüssel sorgfältig umgegangen bist).

Asymmetrische Verfahren können auch verwendet werden, um etwas zu signieren. Ich könnte Dir eine Nachricht schicken, die ich mit meinem privaten Schlüssel verschlüssele. Diese verschlüsselte Nachricht kannst Du mit meinem öffentlichen Schlüssel entschlüsseln. Da mein öffentlicher Schlüssel ja prizipiell jeder haben kann, ist die Nachricht also nicht vertraulich. Jeder könnte sie lesen. Aber Du weißt, dass die Nachricht von demjenigen kommt, dessen öffentlichen Schlüssel Du verwendest hast.

Symmetrische Verfahren verwenden zum Verschlüsseln und Entschlüsseln den gleichen Schlüssel. Ich habe also ein gemeinsames Geheimnis mit meinem Kommunikationspartner. Die Herausforderung ist es nun, den von mir zum Verschlüsseln verwendeten Schlüssel zu meinem Kommunikationspartner zu transferieren - potenziell über ein unsicheres Netz. Um das zu erledigen, gibt es z.B. die Diffie-Hellman-Verfahren, die oft als Schlüsselaustausch-Algorithmen bezeichnet werden. Das ist nicht ganz richtig, weil hier nicht die Schlüssel ausgetauscht werden. Diffie-Hellman (DH) ist ein mathematisches Verfahren, wo beide Kommunikationspartner bestimmte Variablen austauschen, aus denen sich der symmetrische Schlüssel errechnet. Das Interessante daran ist, dass ein Man in the Middle, der den Austausch der Variablen mithört, den Schlüssel nicht errechnen kann. Eine weitere Möglichkeit, den symmetrischen Schlüssel zum Kommunikationspartner zu bekommen, ist die asymmetrische Verschlüsselung. Ich verschlüssele den symmetrischen Schlüssel mit dem öffentlichen Schlüssel meines Partners. Nur der kann ihn wieder entschlüsseln und die Kommunikation kann starten.

Ein wesentlicher Punkt bei den asymmetrischen Verfahren ist, dass ich die Identität meines Kommunikationspartners prüfen muss. Ich habe von meinem Kommunikationspartner namens Werner den öffentlichen Schlüssel. Woher weiß ich aber, dass dieser Schlüssel wirklich von Werner ist und mir nicht von Otto untergeschoben wurde? Ich muss also bei Werner anrufen, und den sogenannten Fingerprint des öffentlichen Schlüssels vergleichen. Der Fingerprint ist nichts anderes als eine Prüfsumme, die mittels eines Hash-Verfahrens (SHA, MD5) errechnet wurde. Erst dann kann ich sicher sein, dass der öffentliche Schlüssel wirklich der richtige ist. Wenn ich viele Kommunikationspartner habe, ist das Verfahren natürlich sehr aufwändig. Deshalb gibt es Zertifikate. Anwendung: z.B. SSL, S/MIME. Ich erstelle mir ein Schlüsselpaar. Mit dem öffentlichen Schlüssel gehe ich zu einer Zertifizierungs-Instanz (Certification Authority, CA). Bekannte CAs sind Thawte, Verisign. Die CA prüft meine Identität, stellt also fest, dass der öffentliche Schlüssel also wirklich meiner ist. Vom öffentlichen Schlüssel wird ein Fingerprint erstellt und dieser wird anschließend mit dem privaten Schlüssel der CA verschlüsselt. Mein öffentlicher Schlüssel wird also von der CA signiert, öffentlicher Schlüssel mit der Signatur der CA ist das Zertifikat. Ich schicke meinem Kommunikationspartner nicht meinen öffentlichen Schlüssel, sondern mein Zertifikat. Der Kommunikationspartner benötigt den öffentlichen Schlüssel der CA in Form des sogenannten Root-Zertifikates. Mithilfe dieses Root-Zertifikates kann mein Kommunikationspartner die Prüfsumme in meinem Zertifikat entschlüsseln und kontrollieren. Damit ist eine Kontrolle des öffentlichen Schlüssels mit einem Anruf bei mir hinfällig.

Beim HTTPS läuft das so: Ich surfe z.B. meine Bank an. Der Bankserver schickt mir sein Zertifikat. Das prüfe ich mit dem Root-Zertifikat der CA, welches in meinem Betriebssystem bzw. Browser hinterlegt ist. Damit weiß ich, dass ich wirklich mit meiner Bank rede. Dann kommt der Schlüsselaustausch und die verschlüsselte Kommunikation.

Der ausführlichen Darstellung von pdeleuw ist (fast) nur noch ein DH hinzuzufügen.

Ich möchte noch was zu deiner letzten Frage ergänzen: Die NSA hat das nicht nötig, denn es hat doch längst Zugriff auf alle wichtigen Root-Zertifikate (private keys) und kann somit sowieso das meiste schon ohne zusätzlichen Aufwand direkt entschlüsseln. Und dort wo das Herausfinden der Schlüssel zu aufwändig wäre, haben sie noch ganz andere Methoden, um zu ihren Informationen zu kommen, sodass sie die Verschlüsselungen gar nicht brauchen. Schau dir mal z.B. die ernüchternden Informationen von Jacob Applebaum an und du hast keinerlei Illusionen bezüglich "Sicherheit" mehr :-))

Die komplette Recherche will ichd ir natürlich nicht abnehmen, denn es gibt genug Verschlüsselungsmethoden und auch genug Seiten dazu im Internet. Alleine mit Wikipedia wirst du schon gut weiterkommen.

Es gibt unterschiedliche Sicherheitslevel an Verschlüsselungen, je nach Methode.

Ganz simpel ist zum Beispiel das ROT13 Verfahren. Das benutzt man zum Beispiel in Foren, um sogenannte Spoiler, also Informationen, die die Spannung verderben können, zu verschlüsseln und leicht wieder entschlüsseln zu können, damit es die, die es lesen wollen, auch lesen können, aber die, die lieber die Spannung bewahren wollen, es nicht versehentlich lesen. ROT13, wie der Name schon sagt, rotiert die Buchstaben des normalen europäischen Alphabets, die ja (ohne Sonderzeichen) genau 26 sind, um 13. Aus einem A wird also ein N, und so weiter. Rotiert man weitere 13, egal in welche Richtung, wird es wieder entschlüsselt. Netscape konnte ROT13 damals serienmäßig, deshalb und wegen seiner Einfachheit wurde es in Foren und Newsgroups so gerne benutzt, wenn es um Film-/Serien-Spoiler ging, die Mozilla-Nachfolgeprojekte Firefox, Thunderbird und Seamonkey brauchen dafür ein Plugin wie mhenhy.

Zum Üben: Fb fvrug rva EBG13 irefpuyüffrygre Grkg nhf (Umlaute werden nicht rotiert, ü bleibt ü)

Etwas komplexer, aber immer noch symmetrisch und somit leicht zu knacken ist zum Beispiel die XOR Verknüpfung (Exklusiv-Oder). Hierbei legst du ein Verschlüsselungswort fest und verknüpfst die Bits mit XOR-Operationen. Die Tabelle hierzu ist:

  • 0 XOR 0 = 0
  • 0 XOR 1 = 1
  • 1 XOR 0 = 1
  • 1 XOR 1 = 0

Durch ein zweites XOR-Verknüpfen mit dem gleichen Bitwort entschlüsselst du wieder. Wie man diesem Verfahren ansehen kann, verknüpft man wiederholt XOR mit dem gleichen Bit, kommt wieder das ursprüngliche Bit raus.

Beispiel:

  • 00111010010110 Zu verschlüsselndes Datenwort
  • 10101100111000 Verschlüsselungswort - Hiermit XOR nehmen, um zu verschlüsseln
  • 10010110101110 Das kommt dabei raus
  • 10101100111000 Verschlüsselungswort - Nochmal XOR nehmen zum entschlüsseln
  • 00111010010110 Siehe da, wieder wie vorher. Hätte man mit einer anderen Bitfolge verknüpft, sähe das jetzt anders aus.

Da XOR symmetrisch ist, kann man recht leicht nach dem Brute Force Prinzip mehrere Bitfolgen durchprobieren, bis man einen sinnvollen Satzteil erhält.

Auch die deutsche Enigma hatte die Schwachstelle der symmetrischen Verschlüsselung. Hierzu gibt es einen sehr guten Wikipedia-Artikel. Die Enigma sollte auf jeden Fall Erwähnung finden, versuche am Besten, ihre Funktionsweise zu verstehen und in deine eigenen Worte zu fassen.

Moderne Verschlüsselungen, wie sie z.B. bei SSL (Secure Socket Layer) Verbindungen wie bei HTTPS (sichere Internetseiten bei Homebanking, Paypal und Co) oder der Mailverschlüsselung PGP verwendet werden, arbeiten asymmetrisch.

Für asymmetrische Verschlüsselungen benötigt man einen öffentlichen und einen privaten Schlüssel. Der öffentliche Schlüssel wird in alle Welt hinaus geschickt und dient zur Verschlüsselung, während der private Schlüssel das Ganze wieder entschlüsselt.

Rufst du eine HTTPS Seite auf, sendet dir der Server ein Zertifikat, ob er vertrauenswürdig ist sowie seinen privaten Schlüssel. Wird das Zertifikat von entsprechenden Stellen bestätigt, zeigt der Browser das entsprechend an, nicht signierte Zertifikate werden als unsicher eingestuft. Siehe hierzu auch HTTPS bei Wikipedia und Co. Mit Hilfe des öffentlichen Schlüssels verschlüsselt dein Browser alle deine Eingaben, während der Webserver die Daten nur mit seinem privaten Schlüssel, den nur er kennt, wieder entschlüsseln kann.

Gleiches gilt für Mails. PGP bindet sich per Plugin in dein Mailprogramm ein. Wenn du nun einen Mailpartner hast, der dir eine verschlüsselte Mail schicken soll, braucht auch er PGP sowie deinen öffentlichen Schlüssel. Damit verschlüsselt er die Mail und du kannst sie mit deinem privaten Schlüssel, den du nicht rausgeben darfst (zudem enthält er ja auch ein Passwort, das nur du kennen solltest, und ohne das PGP nicht entschlüsselt) wieder entschlüsseln. Und wenn dein Mailpartner dir auch seinen öffentlichen Schlüssel gibt, kannst du damit auch Mails an ihn verschlüsseln.

Symmetrische Verschlüsselungen verwenden zum Erzeugen der Schlüssel und zum Ver- und Entschlüsseln recht komplizierte mathematische Verfahrungen, die aber alle quelloffen sind, für RSA, AES und Co gibt es Erklärungen im Internet. Die mathematischen Verfahren sind aber genau das Spannende, hier solltest du unbedingt suchen und das Ganze in dein Referat aufnehmen.

2048 Bit AES sind im Moment mit keinem Supercomputer der Welt in der Lebensspanne eines Menschen zu knacken. Mit Quantencomputern wird's allerdings brenzlig, dazu gibt es aber auch genug Veröffentlichungen im Internet.

user353737  22.01.2014, 08:58

Auch die deutsche Enigma hatte die Schwachstelle der symmetrischen Verschlüsselung.

Es gibt keine Schwachstelle "der symmetrischen Verschlüsselung". Symmetrische Verschlüsselung ist ein Oberbegriff für viele verschiedene Algorithmen (AES, RC4 als Beispiele). Symmetrische Verschlüsselung ist heute Stand der Technik wenn es darum geht, Datenströme zu verschlüsseln.

Moderne Verschlüsselungen, wie sie z.B. bei SSL (Secure Socket Layer)

SSL ist kein Verschlüsselungsverfahren. SSL verwendet als Verschlüsselungsverfahren z.B. AES, Camellia, RC4 oder auch andere.

Verbindungen wie bei HTTPS (sichere Internetseiten bei Homebanking, Paypal und Co)

HTTPS verwendet SSL, richtig. Die Verschlüsselung ist symmetrisch. Asymmetrisch verschlüsselt wird nur das gemeinsame Geheimnis, welches für die Datenverschlüsselung verwendet wird.

Rufst du eine HTTPS Seite auf, sendet dir der Server ein Zertifikat, ob er vertrauenswürdig ist sowie seinen privaten Schlüssel.

Das Zertifikat enthält den öffentlichen Schlüssel. Der private Schlüssel verbleibt auf dem Server und darf nie herausgegeben werden. Sonst wäre er nicht privat sondern öffentlich. Kommt der private Schlüssel in fremde Hände, hast Du ein Problem.

Wird das Zertifikat von entsprechenden Stellen bestätigt,

Das Zertifikat wird nicht bestätigt. Der öffentliche Schlüssel wird von einer sogenannten Certification Authority bestätigt, das ist dann das Zertifikat.

zeigt der Browser das entsprechend an, nicht signierte Zertifikate werden als unsicher eingestuft.

Es gibt keine nicht-signierten Zertifikate. Ein signierter öffentlicher Schlüssel ist ein Zertifikat.

Siehe hierzu auch HTTPS bei Wikipedia und Co. Mit Hilfe des öffentlichen Schlüssels

des Servers

verschlüsselt dein Browser alle deine Eingaben,

Falsch. Die Daten werden symmetrisch verschlüsselt, z.B. mit AES, Camellia, RC4.

Symmetrische Verschlüsselungen verwenden zum Erzeugen der Schlüssel und zum Ver- und Entschlüsseln recht komplizierte mathematische Verfahrungen, die aber alle quelloffen sind, für RSA,

RSA ist ein asymmetrisches Verfahren.

2

Naja du kannst einen Satz ganz einfach verschlüsseln, indem du statt dem Buchstaben A den Buchstaben B verwendest und statt B, den Buchstaben C. Entschlüsseln kannst du das, wenn du weißt welche Verschlüsselungstechnik angewandt wurde, wenn du also weißt welche Technik angewandt wurde geht das ganz leicht, wenn du das nicht weißt dann brauchst du mehrere Hochleistungsrechner die eben alle möglichen Verschlüsselungen durch zufälliges Probieren entschlüsseln.

xPaul1999x 
Fragesteller
 21.01.2014, 18:55

Bedeutet je schneller die Rechenkraft der Rechner desto schneller finden sie die Verschlüsselungsart und desto schneller hat man dann den Text? Also probieren die Rechner einfach einen logischen Text zu finden?

0