Dienstag, 28. Oktober 2014

RSA-Kryptosystem

In der heutigen Übung behandeln wir das RSA-Kryptosystem. Das RSA (Rivest, Shamir und Adleman) ist ein asymmetrisches kryptographisches Verfahren. Es kann sowohl zur Verschlüsselung als auch zur digitalen Signatur verwendet werden. Es verwendet hierbei zwei Schlüssel, ein privater Schlüssel, zum Entschlüsseln oder Signieren von Daten und einem öffentlichen Schlüssel, mit dem man verschlüsselt oder Signaturen prüft.

Erzeugung des öffentlichen und privaten Schlüssels
Der öffentliche Schlüssel (public key) ist ein Zahlenpaar (e, N) und der private Schlüssel (private key) ein Zahlenpaar (d, N). N ist bei beiden Schlüsseln gleich. N wird das RSA-Modul genannt, e ist der Verschlüsselungsexponent und d wird als Entschlüsselungsexponent bezeichnet.

Erzeugung der Zahlen am Beispiel Alice und Bob:


  1. Alice wählt zwei verschiedene Primzahlen p und q. Diese sollen die gleiche Größenordnung haben, aber nicht zu nah beieinander liegen.
  2. Alice berechnet das RSA-Modul: N = p*q
  3. Zusätzlich die Eulersche φ-Funktion von N: φ(N) = (p-1)*(q-1)
  4. Alice wählt eine Zahl e, die zu φ(N) teilerfremd ist
  5. Alice berechnet den Entschlüsselungsexponenten d 


Verschlüsseln einer Nachricht:

Um eine Nachricht m zu verschlüsseln, verwendet der Absender (in unserem Fall Bob) die Formel
c = me (mod N)
und erhält so aus der Nachricht m den Geheimtext c. Die Zahl m muss dabei kleiner sein als der RSA-Modul N.

Entschlüsseln von Nachrichten:

Der Geheimtext c kann durch modulare Exponentiation wieder zum Klartext m entschlüsselt werden. Der Empfänger also Alice benutzt die Formel
M = cd (mod N)

mit dem nur ihm bekannten Wert d sowie N.



Beispiel:


Nun wird ein einfaches Bespiel gezeigt. Dabei wird die Zahl 17 von Bob verschlüsselt.

Als Erstes Alice wählt zwei Primzahlen z.B. 11 und 23 und berechnet das RSA-Modul N.
N = p*q = 11 *23 = 253

Zusätzlich rechnet Alice die Eulersche φ-Funktion von N aus.
φ(N) = (p-1)*(q-1) = (11-1)*(23-1)=10*22= 220

Alice wählt eine Zahl e, die zu φ(N) teilerfremd ist. Es ist eine zufällige Zahl.
z.B. e=81

Um eine Nachricht m zu verschlüsseln, verwendet der Absender, also Bob die Formel:
c = me (mod N) = 1781 mod 253 = 61

Das Ergebnis des Verschlüsselns der Zahl 17 ergibt in Bobs Fall 61. Alice muss nun den berechneten Entschlüsselungsexponenten d anwenden, um die verschlüsselten Zahl zu entschlüsseln. Dies geschieht mit der oben genannten Formel M = cd (mod N). Nun weiß Alice die von Bob gesendete geheime Zahl.




Wo wird dieses Kryptosystem eingesetzt?

 Anwendungsgebiete:

  • Internet- und Telefonie-Infrastruktur: X.509-Zertifikate
  • Übertragungs-Protokolle: IPSec, TLS, SSH, WASTE
  • E-Mail-Verschlüsselung: PGP, S/MIME
  • Authentifizierung französischer Telefonkarten
  • Kartenzahlung: EMV
  • RFID Chip auf dem deutschen Reisepass
  • Electronic Banking: HBCI


Wie steht es mit der Verschlüsselungsgeschwindigkeit gegenüber AES? Was wird gemacht, um die Geschwindigkeit zu erhöhen?

Verschlüsselungsgeschwindigkeit: 


RSA ist im Vergleich zu Verfahren wie 3DES und AES mindestens um den Faktor 1000 langsamer. In der Praxis wird RSA daher meist nur zum Austausch eines Schlüssels für die symmetrische Verschlüsselung benutzt. Für die Verschlüsselung der Daten werden dann symmetrische Verfahren eingesetzt. Damit sind die Vorteile beider Systeme vereint: einfacher Schlüsselaustausch und effiziente Verschlüsselung. Diese Verfahren nennt man Hybride Verfahren.


Quelle:
http://sourceblogging.de/einfuehrung-in-die-verschluesselung/


Wie lange müssen die Schlüssel sein, damit das Verfahren nach derzeitigem Wissen sicher ist?

Schlüssellängen:

Es gibt unterschiedliche Aussagen zum Sicherheitsniveau bestimmter Schlüssellängen. Eine Mindestlänge von 1976 Bit ist laut Bundesnetzagentur für RSA-basierte Signaturen bis 2020 geeignet. Empfohlen wird eine Länge von 2048 Bit.  

Quelle:

Samstag, 4. Oktober 2014

Asymmetrische Kryptosysteme

In der heutigen Aufgabe beschäftige ich mich mit den asymmetrischen Kryptosystemen. Diese Gruppe von Kryptosystemen unterscheidet sich von den symmetrischen Verfahren insofern, als dass zum Entschlüsseln einer anderer Schlüssel benötigt wird.

Funktion: 

Wie funktioniert genau das Senden einer verschlüsselten Nachricht von Alice an Bob mit einem asymmetrischen Kryptosystem?

Alice verschlüsselt ihre Nachricht mit dem öffentlichen Schlüssel (Public Key). Dieser Schlüssel ist jedem bekannt und öffentlich zugänglich. Dann sendet sie die verschlüsselte Nachricht zu Bob, der sie mit seinem privaten Schlüssel (Private Key) wieder entschlüsselt.

Wieviele Schlüssel sind notwendig? Wer hat welche und wer erzeugt sie?
Mit welchem Schlüssel wird verschlüsselt?

Es sind dabei zwei Schlüssel notwendig. Ein Schlüssel ist öffentlich und von der ganzen Welt bekannt. Der andere Schlüssel wird nur von einer Person privat verwendet und ist geheim. 

Wenn Alice eine geheime Nachricht sendet, wird sie mit dem Public Key verschlüsselt. Bob entschlüsselt die Nachricht dann mit seinem eigenem Private Key.




Warum werden nicht ausschließlich asymmetrische Verfahren eingesetzt?

Nachteile:

Trotz vieler Vorteile haben asymmetrische auch beachtliche Nachteile. So arbeiten die asymmetrischen Algorithmen sehr langsam, nämlich ca. 10 000 Mal langsamer als symmetrische Kryptosysteme. Sie benötigen eine hohe Rechenzeit.
Zudem werden große Schlüssellängen benötigt. 
Außerdem gibt es Probleme bei mehreren Empfänger einer verschlüsselten Nachricht, da jedes Mal die Nachricht extra verschlüsselt werden muss. Daher ist es ein erhöhter Aufwand.
Durch den für jeden zugänglichen Public Key entsteht auch ein Sicherheitsrisiko. Dies wird in der Man
in the Middle Attack ausgenutzt. Die Funktion dieser Attacke ist im nächsten Absatz genauer erläutert.

Was passiert bei einer "(wo)man in the middle attack", d.h. zwischen Alice und Bob ist Mallory dazwischengeschaltet?

Man-in-the-middle-attack/Mittelsmann-Angriff:

Bei dieser Attacke stellt sich eine Mittelsmann (Mallory) zwischen die Kommunikation zweier Personen (in diesem Fall Bob und Allice). Dabei täuscht er seinen eignen Public Key als den des eigentlichen Empfänger vor. Anschließend entschlüsselt er mit seinem eigenen Private Key und verschlüsselt die Nachricht schließlich mit dem eigentlichen Public Key des eigentlichen Empfängers und schickt die Nachricht weiter. Kommunikationspartner merken wahrscheinlich davon gar nicht, aber ihre Nachricht wurde erfolgreich gelesen.

Um diese Angriffe zu verhindern, muss gewährleistet sein, dass der erhaltene Public Key auch wirklich authentisch, also dem gewünschten Empfänger zugehörig ist. Dazu werden Zerifikationsstellen verwendet, mit denen man die Authenzität prüfen kann. Dort werden die Public Keys hinterlegt. 




Nennen Sie Vertreter von asymmetrischen Verfahren und vergleichen Sie die Schlüssellängen mit symmetrischen Verfahren.

Vetreter der asymmetrischen Kryptosysteme:
  •    Elliptische-Kurven-Verfahren - Basis sind elliptische Kurven / Ähnelt Elgamal
  •   Merkle/Hellman - basierend auf dem Tornister-Problem 
  •   LUC - ähnlich RSA, Bildung der Lucas-Folge
  •   MNLN - wie RSA, aber das Polynom xe durch »Dickson-Polynom« ersetzt
  •   Digital Signature Algorithm (DSA) - basiert auf dem Diskreten Logarithmus- Problem und benutzt die Kryptosysteme von Schnorr und ElGamal


Quelle: http://www.kryptowissen.de/asymmetrische-verschluesselung.html
http://www.philipphauer.de/info/info/asymmetrische-verschluesselung/#nachteile_asymmetrisch
            https://www.youtube.com/watch?v=I2eQYXzCPzU