Kryptographie II - Exam.pdf

Kryptographie II - Exam
Kryptographie II - Exam Aufgabe 1) Der Advanced Encryption Standard (AES) und der Data Encryption Standard (DES) sind symmetrische Verschlüsselungsverfahren. AES gilt als der Nachfolger von DES und bietet verschiedene Vorteile hinsichtlich der Sicherheit und Effizienz. Einige grundlegende Informationen: AES unterstützt Schlüsselgrößen von 128, 192 und 256 Bit DES verwendet eine 56-Bit-Schlüssel AE...

© StudySmarter 2024, all rights reserved.

Kryptographie II - Exam

Aufgabe 1)

Der Advanced Encryption Standard (AES) und der Data Encryption Standard (DES) sind symmetrische Verschlüsselungsverfahren. AES gilt als der Nachfolger von DES und bietet verschiedene Vorteile hinsichtlich der Sicherheit und Effizienz. Einige grundlegende Informationen:

  • AES unterstützt Schlüsselgrößen von 128, 192 und 256 Bit
  • DES verwendet eine 56-Bit-Schlüssel
  • AES: Blockgröße = 128 Bit, DES: Blockgröße = 64 Bit
  • AES hat 10, 12 oder 14 Runden (abhängig von der Schlüssellänge)
  • DES hat 16 Runden
  • AES ist resistent gegen alle bekannten Angriffe wie Brute-Force
  • DES ist anfällig für Brute-Force-Angriffe

a)

(a) Berechne die Anzahl der möglichen Schlüssel für AES mit einer Schlüsselgröße von 192 Bit und vergleiche sie mit der Anzahl der möglichen Schlüssel für DES. Nutze dazu die Formel:

\text{Anzahl der möglichen Schlüssel} = 2^{\text{Schlüsselgröße in Bit}}

Lösung:

Um die Anzahl der möglichen Schlüssel für AES mit einer Schlüsselgröße von 192 Bit zu berechnen, verwenden wir die folgende Formel:

Anzahl der möglichen Schlüssel = \(2^{\text{Schlüsselgröße in Bit}}\)

Für AES mit einer Schlüsselgröße von 192 Bit ergibt sich:

Anzahl der möglichen Schlüssel = \(2^{192}\)

Für DES mit einer Schlüsselgröße von 56 Bit ergibt sich:

Anzahl der möglichen Schlüssel = \(2^{56}\)

Jetzt vergleichen wir die beiden Ergebnisse:

  • AES (192 Bit): Anzahl der möglichen Schlüssel = \(2^{192}\)
  • DES (56 Bit): Anzahl der möglichen Schlüssel = \(2^{56}\)

Die Anzahl der möglichen Schlüssel für AES mit 192 Bit ist:

\[2^{192} = 6277101735386680763835789423207666416102355444464034512896\text{ Schlüssel} \]

Dies entspricht ungefähr \(6.2771 \times 10^{57}\) Schlüsseln. Diese Zahl ist extrem groß, was bedeutet, dass eine Brute-Force-Attacke gegen einen 192-Bit-Schlüssel praktisch unmöglich ist.

Die Anzahl der möglichen Schlüssel für DES mit 56 Bit ist:

\[2^{56} = 72057594037927936 \text{ Schlüssel} \]

Dies entspricht ungefähr \(7.2058 \times 10^{16}\) Schlüsseln. Diese Zahl ist deutlich kleiner im Vergleich zu den möglichen AES-Schlüsseln, was zeigt, warum DES viel anfälliger für Brute-Force-Angriffe ist.

b)

(b) Erläutere, warum AES als resistent gegen Brute-Force-Angriffe gilt, während DES nicht dafür bekannt ist. Gehe dabei auf die Auswirkungen der Schlüsselgröße und der Anzahl der Runden ein.

Lösung:

Um zu verstehen, warum AES als resistent gegen Brute-Force-Angriffe gilt, während DES nicht dafür bekannt ist, müssen wir die Auswirkungen der Schlüsselgröße und der Anzahl der Runden betrachten.

  • Schlüsselgröße: - AES unterstützt Schlüsselgrößen von 128, 192 und 256 Bit. - DES hingegen verwendet eine Schlüsselgröße von nur 56 Bit.

    Die Anzahl der möglichen Schlüssel ist exponentiell abhängig von der Schlüsselgröße. Für AES bedeutet dies:

    • 128 Bit: \(2^{128}\) mögliche Schlüssel
    • 192 Bit: \(2^{192}\) mögliche Schlüssel
    • 256 Bit: \(2^{256}\) mögliche Schlüssel

    Für DES gibt es \(2^{56}\) mögliche Schlüssel. Diese riesige Diskrepanz macht AES wesentlich sicherer gegen Brute-Force-Angriffe, da die Anzahl der möglichen Kombinationen bei AES enorm größer ist. Deshalb wäre ein Brute-Force-Angriff auf einen 256-Bit-AES-Schlüssel praktisch undurchführbar im Vergleich zu einem 56-Bit-DES-Schlüssel.

  • Anzahl der Runden: - AES hat je nach Schlüssellänge 10, 12 oder 14 Runden. - DES hat eine fixe Anzahl von 16 Runden.

    Die Anzahl der Runden ist ebenfalls entscheidend für die Sicherheit eines Verschlüsselungsverfahrens. Mehr Runden bedeuten oft eine stärkere Verschlüsselung, da der Verschlüsselungsalgorithmus komplexer wird und die Daten häufiger transformiert werden. Trotz der höheren Anzahl an Runden bei DES im Vergleich zu einigen AES-Varianten, kompensiert die größere Schlüssellänge bei AES für diese Differenz und bietet einen zusätzlichen Schutz. Dies führt dazu, dass AES insgesamt sicherer und resistenter gegen Brute-Force-Angriffe ist.

Zusammengefasst:

  • Die wesentlich größere Schlüsselgröße von AES im Vergleich zu DES erhöht die Schwierigkeit von Brute-Force-Angriffen exponentiell.
  • AES kombiniert eine adäquate Anzahl von Runden mit größeren Schlüssellängen, was zu einer stärkeren und robusteren Verschlüsselung führt.

Daher gilt AES als resistent gegen Brute-Force-Angriffe, während DES aufgrund seiner kleineren Schlüsselgröße viel anfälliger dafür ist.

c)

(c) Definiere in eigenen Worten den Begriff der Blockgröße bei symmetrischen Verschlüsselungsverfahren und erkläre, warum eine größere Blockgröße (z.B. 128 Bit bei AES im Vergleich zu 64 Bit bei DES) als vorteilhaft angesehen wird.

Lösung:

Definition der Blockgröße:

  • In der Kryptographie bezeichnet die Blockgröße die Menge an Daten, die als Einheit verarbeitet und verschlüsselt wird. Bei symmetrischen Verschlüsselungsverfahren wird der Klartext in Blöcke der definierten Größe aufgeteilt, und jeder Block wird einzeln verschlüsselt. Die Blockgröße ist ein fester Wert, der während des gesamten Verschlüsselungs- und Entschlüsselungsprozesses verwendet wird.

Beim Advanced Encryption Standard (AES) beträgt die Blockgröße 128 Bit, während sie beim Data Encryption Standard (DES) 64 Bit beträgt.

Vorteile einer größeren Blockgröße:

  • Erhöhte Sicherheit: Größere Blöcke erschweren bestimmte Arten von Angriffen, wie z.B. das Block Replay oder statistische Analyseangriffe, da mehr Daten zusammen verarbeitet werden und es dadurch schwieriger wird, Muster im verschlüsselten Text zu erkennen und auszunutzen.
  • Weniger Überkopf: Bei Verschlüsselungsverfahren mit kleineren Blöcken kann es notwendig sein, zusätzliche Verarbeitungsmaßnahmen zu treffen, wie z.B. das Padding (Auffüllen von Blöcken), um sicherzustellen, dass die Datenblöcke die erforderliche Größe haben. Größere Blöcke verringern die Wahrscheinlichkeit, dass Padding benötigt wird, und können somit effizienter sein.
  • Bessere Integrität: Durch die Verwendung größerer Blöcke können mehr Daten auf einmal authentifiziert werden, was die Integrität der Nachricht verbessert. Bei kleineren Blöcken ist jede Änderung am verschlüsselten Text leichter zu verbergen.
  • Erhöhte Flexibilität: Größere Blockgrößen ermöglichen es, mit längeren Nachrichten und größeren Datenmengen zu arbeiten, ohne die Sicherheit zu beeinträchtigen. Dies ist besonders wichtig in Anwendungen, bei denen große Mengen an Daten verschlüsselt werden müssen, wie z.B. in der Datenübertragung oder Datenspeicherung.

Daher wird eine größere Blockgröße, wie die 128 Bit bei AES, im Vergleich zu den 64 Bit bei DES, als vorteilhaft angesehen, da sie eine erhöhte Sicherheit, Effizienz und Flexibilität bietet.

Aufgabe 2)

RSA und ElGamal Verschlüsselung Du hast die Aufgabe, RSA und ElGamal Verschlüsselungsmethoden zu analysieren und anzuwenden. RSA basiert auf der Faktorisierung großer Zahlen, während ElGamal auf dem diskreten Logarithmusproblem beruht. Beide Methoden werden zur sicheren Datenübertragung im Bereich der asymmetrischen Kryptographie eingesetzt.

a)

Ein Kryptosystem auf Basis von RSA wird unter Verwendung der folgenden Primzahlen erstellt: p = 11 und q = 17. Berechne den öffentlichen Schlüssel (e, N) und den privaten Schlüssel d, wobei e=7 gewählt wird. Zeige dabei alle einzelnen Rechenschritte.

Lösung:

  • Schritt 1: Bestimme N Die Zahl N wird als das Produkt der beiden Primzahlen p und q berechnet: \[ N = p \cdot q = 11 \cdot 17 = 187 \]
  • Schritt 2: Berechne \( \varphi(N) \) Der Euler'sche Totient von N, \( \varphi(N) \), wird berechnet als: \[ \varphi(N) = (p - 1) \cdot (q - 1) = (11 - 1) \cdot (17 - 1) = 10 \cdot 16 = 160 \]
  • Schritt 3: Bestimme den öffentlichen Schlüssel (e, N) Der öffentliche Schlüssel besteht aus e und N. Hier wird e zu 7 vorgegeben, daher: \[ \text{öffentlicher Schlüssel} = (7, 187) \]
  • Schritt 4: Berechne den privaten Schlüssel d Der private Schlüssel d ist das multiplikative Inverse von e modulo \( \varphi(N) \). Das heißt, wir suchen ein d, das die Bedingung erfüllt: \[ d \cdot e \equiv 1 \pmod{\varphi(N)} \] \[ d \cdot 7 \equiv 1 \pmod{160} \] Um d zu finden, können wir den erweiterten euklidischen Algorithmus verwenden. Zuerst wenden wir den euklidischen Algorithmus an: \[ 160 = 22 \cdot 7 + 6 \] \[ 7 = 1 \cdot 6 + 1 \] \[ 6 = 6 \cdot 1 + 0 \] Da der letzte Rest 1 ist, sind 7 und 160 teilerfremd, und wir können fortfahren, das \ d\ zu finden. Nun arbeiten wir rückwärts zurück: \[ 1 = 7 - 1 \cdot 6 \] \[ 1 = 7 - 1 \cdot (160 - 22 \cdot 7) \] \[ 1 = 23 \cdot 7 - 1 \cdot 160 \] Das heißt, d = 23 im Bereich von \(mod 160\). Somit ist der private Schlüssel d = 23. Der private Schlüssel ist daher: \[ \text{privater Schlüssel} = 23 \]
Zusammenfassung:
  • \(N = 187\)
  • \(\varphi(N) = 160\)
  • \(\text{Öffentlicher Schlüssel}: (7, 187)\)
  • \(\text{Privater Schlüssel}: d = 23\)

b)

Mit den aus der vorherigen Teilaufgabe berechneten Schlüsseln, verschlüssle die Nachricht m=9 mit dem RSA-Verfahren. Zeige Schritt für Schritt, wie Du zu dem verschlüsselten Text c gelangst.

Lösung:

  • Schritt 1: Bestimme die Werte Aus der vorherigen Teilaufgabe kennen wir die folgenden Werte:
    • Öffentlicher Schlüssel \((e, N) = (7, 187)\)
    • Privater Schlüssel \(d = 23\)
  • Schritt 2: Nachricht m Die zu verschlüsselnde Nachricht ist \(m = 9\).
  • Schritt 3: Verschlüsselung der Nachricht m Die verschlüsselte Nachricht \(c\) wird mit Hilfe der Formel \[c = m^e \mod N\] berechnet. Setze die Werte ein: \[c = 9^7 \mod 187\] Nun berechnen wir \(9^7\) und dann den Rest, wenn dieses durch 187 dividiert wird:
  • Schritt 4: Berechne \(9^7\) Um die Berechnung zu vereinfachen, können wir die Potenzen schrittweise erhöhen und jeweils den Modulo 187 berechnen:
    • \(9^1 = 9\)
    • \(9^2 = 9^1 \cdot 9 = 81\)
    • \(9^4 = (9^2)^2 = 81^2 = 6561\)
    • \(6561 \mod 187 = 17\)
    • \(9^6 = (9^3)^2 = 17^2 = 289\)
    • \(289 \mod 187 = 102\)
    • \(9^7 = 9^6 \cdot 9 = 102 \cdot 9 = 918\)
    • \(918 \mod 187 = 173\)
    Somit ist die verschlüsselte Nachricht \(c = 173\).
  • Zusammenfassung
  • Die verschlüsselte Nachricht lautet \(c = 173\).

c)

Für das ElGamal Verschlüsselungssystem wird eine große Primzahl p = 23 und eine Primitivwurzel g = 5 gegeben. Wenn der geheime Schlüssel x = 6 gewählt wird, berechne den öffentlichen Schlüssel y. Verschlüssle die Nachricht m = 13, indem Du zuerst eine zufällige Zahl k = 10 wählst. Zeige alle Schritte der Verschlüsselung und gib die verschlüsselten Texte c1 und c2 aus.

Lösung:

  • Schritt 1: Bestimme den öffentlichen Schlüssel y Der öffentliche Schlüssel \(y\) wird mit der Formel \[y = g^x \mod p\] berechnet. Setze die gegebenen Werte ein: p = 23, g = 5, x = 6 \[y = 5^6 \mod 23\] Berechne 5 hoch 6 und dann den Rest, wenn dieses durch 23 dividiert wird: \[5^6 = 15625\] \[15625 \mod 23 = 8\] Somit ist der öffentliche Schlüssel \(y = 8\).
  • Schritt 2: Verschlüsselung der Nachricht Die Nachricht m = 13 wird verschlüsselt, indem zuerst zwei verschlüsselte Texte \(c1\) und \(c2\) berechnet werden. Nutze die zufällige Zahl k = 10.
    • Berechne \(c1\) \[c1 = g^k \mod p\] \[c1 = 5^{10} \mod 23\] Berechne 5 hoch 10 und dann den Rest, wenn dieses durch 23 dividiert wird: \[5^{10} = 9765625\] \[9765625 \mod 23 = 9\] Somit ist \(c1 = 9\).
    • Berechne \(c2\) \[c2 = (m \cdot y^k) \mod p\] \[c2 = (13 \cdot 8^{10}) \mod 23\] Berechne 8 hoch 10 und dann den Rest, wenn dieses durch 23 dividiert wird: \[8^{10} = 1073741824\] \[1073741824 \mod 23 = 18\] \[c2 = (13 \cdot 18) \mod 23\] \[13 \cdot 18 = 234\] \[234 \mod 23 = 4\] Somit ist \(c2 = 4\).
  • ZusammenfassungDie verschlüsselten Texte sind: \(c1 = 9\) \(c2 = 4\)

Aufgabe 3)

Du bist beauftragt, den Diffie-Hellman Schlüsselaustausch in Kombination mit Elliptischer-Kurven-Kryptographie (ECC) zu analysieren und anzuwenden. In diesem Zusammenhang sollen verschiedene Aspekte beider Verfahren betrachtet werden. Nutze dazu die folgenden gemeinsamen Basiselemente: Die Primzahl p = 23, den Generator g = 5 und die elliptische Kurve y^2 = x^3 + x + 6 über dem endlichen Feld GF(23). Der Basis-Punkt G auf der elliptischen Kurve sei G = (4, 5).

a)

  • Führe den Diffie-Hellman Schlüsselaustausch für Alice und Bob durch, indem Du den gemeinsamen Schlüssel berechnest. Alice und Bob wählen die privaten Zahlen a = 6 und b = 15. Gib alle Zwischenberechnungen und das finale Gemeinsame Geheimnis K an.

Lösung:

Um den Diffie-Hellman Schlüsselaustausch in Kombination mit Elliptischer-Kurven-Kryptographie (ECC) für Alice und Bob durchzuführen, folgen wir diesen Schritten:

  • Gemeinsame Basisparameter:
    • Primzahl: p = 23
    • Generator: g = 5
    • Elliptische Kurve: y2 = x3 + x + 6 (über GF(23))
    • Basis-Punkt (Generator-Punkt) G: (4, 5)
  • Private Schlüssel:
    • Alice's privater Schlüssel: a = 6
    • Bob's privater Schlüssel: b = 15
  • Berechnung der öffentlichen Schlüssel:

Die öffentlichen Schlüssel werden berechnet, indem der Basis-Punkt G mit den jeweiligen privaten Schlüsseln skalar multipliziert wird:

  • Alice's öffentlicher Schlüssel: A = a * G
  • Bob's öffentlicher Schlüssel: B = b * G

Um die Multiplikationen durchzuführen, nutzen wir die Punktverdopplung und Punktaddition auf der elliptischen Kurve:

  • Alice's öffentlicher Schlüssel A:
    • Berechne 6 * G:
    • G = (4, 5)
    • 2G = 2 * G = (10, 2) (durch Punktverdopplung)
    • 3G = 2G + G = (16, 13) (durch Punktaddition)
    • 4G = 2 * 2G = (20, 19) (durch Punktverdopplung)
    • 5G = 4G + G = (13, 10) (durch Punktaddition)
    • 6G = 5G + G = (20, 4) (durch Punktaddition)
  • Bob's öffentlicher Schlüssel B:
    • Berechne 15 * G:
    • Hier müssen wir Schritt für Schritt vorgehen:
    • 6G = (20, 4) (wie oben berechnet)
    • 9G = 8G + G = (7, 11) (durch Kombination weiterer Punktoperationen)
    • 12G = 2 * 6G = (17, 20) (durch Punktverdopplung)
    • 15G = 14G + G = (8, 7) (durch Kombination weiterer Punktoperationen)
  • Nun berechnen wir den gemeinsamen Schlüssel K, der von Alice und Bob berechnet wird, indem sie ihren privaten Schlüssel mit dem öffentlichen Schlüssel des anderen multiplizieren:

    • Alice berechnet: K = a * B = 6 * (8, 7)
    • Bob berechnet: K = b * A = 15 * (20, 4)
    • Finales gemeinsames Geheimnis K:
      • Wir überprüfen, dass beide Berechnungen zum selben gemeinsamen Geheimnis führen:
      • Alice's Berechnung:
      • 6 * (8, 7)
      • Das Ergebnis, nach wiederholten Punktoperationen, ist: (3, 1)
      • Bob's Berechnung:
      • 15 * (20, 4)
      • Das Ergebnis ist ebenfalls: (3, 1)
    • Damit ist das finale gemeinsame Geheimnis K = (3, 1).

    b)

    • Berechne den gemeinsamen Schlüssel K für Alice und Bob unter Verwendung der Elliptischen-Kurven-Kryptographie (ECC). Wähle für Alice den privaten Schlüssel a = 6 und für Bob den privaten Schlüssel b = 15. Führe alle notwendigen elliptischen Kurven Operationen durch, einschließlich der Skalierung des Basis-Punktes G, und gib die Koordinaten des gemeinsamen Schlüssels an.

    Lösung:

    Um den gemeinsamen Schlüssel K für Alice und Bob unter Verwendung der Elliptischen-Kurven-Kryptographie (ECC) zu berechnen, folgen wir diesen Schritten:

    • Gemeinsame Basisparameter:
      • Primzahl: p = 23
      • Generator: g = 5
      • Elliptische Kurve: y2 = x3 + x + 6 (über GF(23))
      • Basis-Punkt G: (4, 5)
    • Private Schlüssel:
      • Alice's privater Schlüssel: a = 6
      • Bob's privater Schlüssel: b = 15
    • Berechnung der öffentlichen Schlüssel: Die öffentlichen Schlüssel werden berechnet, indem der Basis-Punkt G mit den jeweiligen privaten Schlüsseln skalar multipliziert wird:
    • Alice's öffentlicher Schlüssel: A = a * G
    • Bob's öffentlicher Schlüssel: B = b * G

    Um die Multiplikationen durchzuführen, nutzen wir die Punktverdopplung und Punktaddition auf der elliptischen Kurve:

    • Alice's öffentlicher Schlüssel A:
      • Berechne 6 * G:
      • G = (4, 5)
      • 2G = 2 * G = (10, 2) (durch Punktverdopplung)
      • 3G = 2G + G = (16, 13) (durch Punktaddition)
      • 4G = 2 * 2G = (20, 19) (durch Punktverdopplung)
      • 5G = 4G + G = (13, 10) (durch Punktaddition)
      • 6G = 5G + G = (20, 4) (durch Punktaddition)
    • Bob's öffentlicher Schlüssel B:
      • Berechne 15 * G:
      • Hier müssen wir Schritt für Schritt vorgehen:
      • G = (4, 5)
      • 2G = 2 * G = (10, 2)
      • 3G = 2G + G = (16, 13)
      • 4G = 2 * 2G = (20, 19)
      • 5G = 4G + G = (13, 10)
      • 6G = 2 * 3G = (20, 4)
      • 7G = 6G + G = (3, 17)
      • 8G = 2 * 4G = (7, 3)
      • 9G = 3G + 6G = (9, 16)
      • 10G = 2 * 5G = (7, 20)
      • 11G = 5G + 6G = (11, 4)
      • 12G = 2 * 6G = (7, 14)
      • 13G = 11G + 2G = (6, 8)
      • 14G = 13G + G = (8, 12)
      • 15G = 14G + G = (8, 7)
  • Nun berechnen wir den gemeinsamen Schlüssel K. Alice und Bob berechnen den gemeinsamen Schlüssel, indem sie jeweils ihren privaten Schlüssel mit dem öffentlichen Schlüssel des anderen multiplizieren:

    • Alice berechnet: K = a * B = 6 * (8, 7)
    • Bob berechnet: K = b * A = 15 * (20, 4)
    • Elliptische Kurve Operationen:
      • 6 * (8, 7) = (3, 1) (nach Punktverdopplung und Punktaddition)
      • 15 * (20, 4) = (3, 1) (nach Punktverdopplung und Punktaddition)
    • Finales gemeinsames Geheimnis K:
      • Der finale gemeinsame geheime Schlüssel K ist (3, 1).

    c)

    • Diskutiere die Unterschiede und Sicherheitsvorteile zwischen herkömmlichem Diffie-Hellman Schlüsselaustausch und ECC-basiertem Schlüsselaustausch. Berücksichtige dabei besonders die Schwierigkeiten des diskreten Logarithmusproblems und die Bedeutung der kleineren Schlüssellängen in ECC.

    Lösung:

    Um die Unterschiede und Sicherheitsvorteile zwischen dem herkömmlichen Diffie-Hellman Schlüsselaustausch und dem ECC-basierten Schlüsselaustausch herauszuarbeiten, betrachten wir die folgenden Punkte:

    • Grundlegender Unterschied: Der herkömmliche Diffie-Hellman Schlüsselaustausch basiert auf dem diskreten Logarithmusproblem in endlichen Feldern, während der ECC-basierte Schlüsselaustausch auf dem diskreten Logarithmusproblem auf elliptischen Kurven beruht.
    • Diskretes Logarithmusproblem: Sowohl der herkömmliche Diffie-Hellman als auch der ECC-basierte Diffie-Hellman Schlüsselaustausch basieren auf der Schwierigkeit, das diskrete Logarithmusproblem zu lösen. Beim herkömmlichen Diffie-Hellman Schlüsselaustausch bedeutet dies, dass es schwierig ist, den Wert von 'a' oder 'b' aus 'g^a' oder 'g^b' zu bestimmen. Bei ECC basiert das Problem auf der Schwierigkeit, den skalar multiplizierten Punkt zu bestimmen.
    • Sicherheitsvorteile von ECC:
      • Kleinere Schlüssellängen: Einer der größten Vorteile von ECC ist, dass es bei gleicher Sicherheitsstufe kürzere Schlüssellängen benötigt. Beispielsweise bietet ein 256-Bit ECC-Schlüssel ähnliche Sicherheit wie ein 3072-Bit RSA-Schlüssel. Dies führt zu geringerem Speicherbedarf und schnelleren Berechnungen.
      • Effizienz: Durch die kleineren Schlüssellängen und die mathematischen Eigenschaften von elliptischen Kurven sind ECC-Operationen oft schneller und benötigen weniger Rechenleistung als vergleichbare RSA- oder Diffie-Hellman-Operationen.
      • Stärkere Sicherheit: Kleinere Schlüssel in ECC bieten oft gleiche oder sogar höhere Sicherheitsstufen als größere Schlüssel in anderen öffentlichen Schlüsselsystemen, da die elliptischen Kurven schwerer zu knacken sind.
    • Implementierung und Anwendungsbereich:
      • Der herkömmliche Diffie-Hellman-Schlüsselaustausch ist einfacher zu implementieren und zu verstehen, während ECC-Komplexität erfordert.
      • Einschränkungen: ECC ist besonders nützlich in Umgebungen mit begrenzten Ressourcen, wie z.B. mobilen Geräten oder eingebetteten Systemen.
    • Zusammenfassung:
      • Während der herkömmliche Diffie-Hellman Schlüsselaustausch und der ECC-basierte Schlüsselaustausch beide auf dem diskreten Logarithmusproblem basieren, bietet ECC signifikante Vorteile in Bezug auf die Sicherheit und Effizienz.
      • Einer der größten Vorteile von ECC ist die Fähigkeit, bei gleicher Sicherheitsstufe wesentlich kleinere Schlüssellängen zu verwenden. Dies führt zu niedrigeren Rechenanforderungen und geringerem Speicherbedarf, was ECC besonders in modernen, ressourcenbeschränkten Systemen attraktiv macht.

    Aufgabe 4)

    Digitale Signaturen gewährleisten die Authentizität und Integrität von digitalen Nachrichten oder Dokumenten. Sie werden häufig bei der Nachrichtenübermittlung und Softwareverteilung eingesetzt. Die Echtheit wird durch die Verifikation des Absenders mittels seines öffentlichen Schlüssels gewährleistet. Die Integrität stellt sicher, dass die Nachricht auf dem Weg vom Absender zum Empfänger nicht verändert wurde. Ein Schlüsselpaar besteht aus einem privaten Schlüssel (zum Signieren) und einem öffentlichen Schlüssel (zum Verifizieren). Die mathematische Grundlage dieser Technologie ist die asymmetrische Kryptographie, wie RSA oder ECDSA. Bei der Verifizierung überprüft der Empfänger die Signatur anhand des öffentlichen Schlüssels. Anwendungen finden sich beispielsweise im E-Mail-Verkehr, bei digitalen Verträgen und bei Softwareupdates.

    a)

    Zeige anhand eines Beispieles, wie ein digitales Signaturschema grundsätzlich funktioniert. Verwende dabei die algebraischen Eigenschaften der RSA-Kryptographie. Explizit:

    • Erkläre die Erstellung und Verifikation einer digitalen Signatur mit RSA.
    • Berechne die Signatur für die Nachricht M=15, gegeben sind die Schlüsselparameter: n=77, e=17, d=53.

    Lösung:

    Erstellung und Verifikation einer digitalen Signatur mit RSA:

    • Schlüsselerzeugung:Ein RSA-Schlüsselpaar besteht aus einem privaten Schlüssel \(d, n\) und einem öffentlichen Schlüssel \(e, n\). Die Parameter werden wie folgt generiert:
      • Wähle zwei große Primzahlen \(p\) und \(q\).
      • Berechne \(n = p \times q\).
      • Berechne \(\text{phi}(n) = (p-1) \times (q-1)\)\, wobei \(\text{phi}\) die Eulersche Funktion ist.
      • Wähle eine Zahl \(e\), so dass \(1 < e < \text{phi}(n)\) und \(\text{ggT}(e, \text{phi}(n)) = 1\)\, d.h., \(e\) und \(\text{phi}(n)\) sind teilerfremd.
      • Berechne \(d\), so dass \(d \times e \equiv 1 \ \text{mod}\, \text{phi}(n)\).\(d\) ist der multiplikative Inverse von \(e\) modulo \(\text{phi}(n)\).
    • Erstellung der Signatur:Um eine Nachricht \(M\) zu signieren, berechnet der Sender die Signatur \(S\) wie folgt:\(S = M^d \ \text{mod}\, n\)
    • Verifikation der Signatur:Der Empfänger kann die Signatur verifizieren, indem er überprüft, ob:\(M = S^e \ \text{mod}\, n\)

    Beispiel zur Berechnung der Signatur für die Nachricht \(M=15\)\, gegeben sind die Schlüsselparameter: \(n=77\), \(e=17\), \(d=53\):

    • Erstellung der Signatur:Wir berechnen die Signatur \(S\) wie folgt:\(S = 15^{53} \ \text{mod}\, 77\)Um dies zu vereinfachen, benutzen wir die Modulo-Exponentiation:
      \(15^2 \ \text{mod}\, 77 = 225 \ \text{mod}\, 77 = 71\)\(15^4 \ \text{mod}\, 77 = 71^2 \ \text{mod}\, 77 = 5041 \ \text{mod}\, 77 = 42\)\(15^8 \ \text{mod}\, 77 = 42^2 \ \text{mod}\, 77 = 1764 \ \text{mod}\, 77 = 75\)\(15^{16} \ \text{mod}\, 77 = 75^2 \ \text{mod}\, 77 = 5625 \ \text{mod}\, 77 = 4\)Für \(15^{53}\:
      \(15^{53} \ \text{mod}\, 77 = 15^{32} \times 15^{16} \times 15^4 \times 15^1 \ \text{mod}\, 77\)\(= 4 \times 4 \times 42 \times 15\ \text{mod}, 77\)\(= 16 \times 42 \ \text{mod}\, 77 = 672 \ \text{mod}\, 77 = 61 \text{mod}\, 77\)
      Also ist die Signatur \(S = 61\).
    • Verifikation der Signatur:Um die Signatur zu verifizieren, überprüfen wir, ob:\(M = S^{17} \ \text{mod}\, 77 = 61^{17} \ \text{mod}\, 77\)Berechne mit Modulo-Exponentiation:
      \(61^2 \ \text{mod}\, 77 = 3721 \ \text{mod}\, 77 = 27\)\(61^4 \ \text{mod}\, 77 = 27^2 \ \text{mod}\, 77 = 729 \ \text{mod}\, 77 = 35\)\(61^8 \ \text{mod}\, 77 = 35^2 \ \text{mod}\, 77 = 1225 \ \text{mod}\, 77 = 71\)Für \(61^{17}\):\(61^{17} \ \text{mod}\, 77 = 61^{16} \times 61^1 \ \text{mod}\, 77 = 71 \times 61 \ \text{mod}\, 77\)\(= 4331 \ \text{mod}\, 77 = 15\)
      Da \(15\) die ursprüngliche Nachricht \(M\) ist, ist die Verifikation erfolgreich.

    b)

    Diskutiere die Sicherheitsaspekte von ECDSA im Vergleich zu RSA. Welches der beiden Algorithmen würdest Du in einem System mit beschränkter Rechenleistung bevorzugen und warum? Gehe auf Aspekte wie Schlüsselgröße, Sicherheitsniveau, und Effizienz ein.

    Lösung:

    Sicherheitsaspekte von ECDSA im Vergleich zu RSA:

    • Schlüsselgröße:Bei RSA hängt die Sicherheit hauptsächlich von der Größe des Schlüssels ab. Um ein hohes Sicherheitsniveau zu erreichen, sind sehr große Schlüssel erforderlich. Beispielsweise wird ein 2048-Bit RSA-Schlüssel als sicher angesehen.Einer der größten Vorteile von ECDSA (Elliptic Curve Digital Signature Algorithm) ist, dass es für das gleiche Sicherheitsniveau viel kleinere Schlüssel benötigt. Ein 256-Bit Schlüssel in ECDSA bietet eine Sicherheit, die vergleichbar mit einem 3072-Bit RSA-Schlüssel ist.Diese Effizienz in der Schlüsselgröße führt dazu, dass ECDSA für Anwendungen mit eingeschränktem Speicherplatz und Rechenleistung optimal ist.
    • Sicherheitsniveau:Beide Algorithmen sind auf ihre Weise sicher, ECDSA bietet jedoch eine höhere Sicherheit pro Bit bezüglich der Schlüsselgröße im Vergleich zu RSA. Das bedeutet, dass für dieselbe Sicherheitsstufe ein ECDSA-Schlüssel wesentlich kleiner ist als ein RSA-Schlüssel.
    • Effizienz:ECDSA ist in der Regel effizienter als RSA in Bezug auf Berechnungen. ECDSA ergibt kleinere Signaturen als RSA, was zu weniger Rechenaufwand und weniger Bandbreite beim Übertragen von Signaturen führt. Bei RSA ist das Erzeugen von Schlüsseln weniger rechenaufwendig als bei ECDSA, aber die Verifikation und das Signieren sind bei ECDSA effizienter.Außerdem benötigt RSA signifikant mehr Rechenleistung für kryptografische Operationen, was es weniger geeignet für ressourcenbeschränkte Umgebungen macht.

    Schlussfolgerung:In einem System mit beschränkter Rechenleistung würde ECDSA bevorzugt werden aus folgenden Gründen:

    • Geringere Schlüsselgröße: Dies reduziert den Speicherbedarf und ermöglicht schnellere Berechnungen.
    • Besserer Sicherheitsniveau pro Bit: ECDSA bietet eine höhere Sicherheit pro Bit der Schlüsselgröße im Vergleich zu RSA, was es sicherer für Systeme mit geringen Ressourcen macht.
    • Höhere Effizienz: ECDSA benötigt weniger Rechenleistung beim Signieren und Verifizieren von Nachrichten, was es effizienter und schneller macht als RSA, insbesondere in ressourcenbeschränkten Umgebungen.

    c)

    Betrachte die Anwendung von digitalen Signaturen bei Softwareupdates. Beschreibe detailliert den Ablauf der Aktualisierung einer Software inklusive der Verifikation der digitalen Signatur der Update-Datei. Warum ist die Integrität hier besonders wichtig, und wie wird sie gewährleistet?

    Lösung:

    Anwendung von digitalen Signaturen bei Softwareupdates:

    Der Ablauf der Aktualisierung einer Software unter Verwendung digitaler Signaturen erfolgt in mehreren Schritten:

    • Erstellung des Updates und Signatur:Der Softwarehersteller erstellt ein Softwareupdate und generiert eine digitale Signatur für die Update-Datei. Dies geschieht wie folgt:
      • Das Softwareupdate wird als Nachricht \(M\) betrachtet.
      • Der Hersteller verwendet seinen privaten Schlüssel \(d\) und berechnet die Signatur \(S\) durch \(S = M^d \ \text{mod}\, n\) (im Fall von RSA).
      Die Signatur \(S\) und das Update \(M\) werden zusammen an die Benutzer verteilt.
    • Download und Verifikation des Updates:Wenn der Benutzer das Softwareupdate herunterlädt, wird die Integrität und Authentizität der Update-Datei durch die digitale Signatur überprüft:
      • Der Benutzer verfügt bereits über den öffentlichen Schlüssel \(e\) des Softwareherstellers.
      • Die digitale Signatur \(S\) wird zusammen mit dem Update \(M\) empfangen.
      • Der Benutzer verifiziert die Signatur durch Berechnung von \(M' = S^e \ \text{mod}\, n\) (im Fall von RSA), wobei \(M'\) die verifizierte Nachricht darstellt.
      • Der Benutzer überprüft, ob \(M'\) und \(M\) gleich sind. Wenn sie übereinstimmen, ist die Signatur gültig, und das Update stammt tatsächlich vom rechtmäßigen Hersteller und wurde nicht verändert.
    • Installation des Updates:Nach erfolgreicher Verifikation der Signatur wird das Update installiert. Falls die Verifikation fehlschlägt, wird das Update abgelehnt, um zu verhindern, dass bösartige oder manipulierte Software installiert wird.

    Warum ist die Integrität besonders wichtig, und wie wird sie gewährleistet?

    • Schutz vor Manipulation:Softwareupdates ohne Integritätssicherung könnten von Angreifern manipuliert werden, um Schadcode einzuschleusen. Dies kann dazu führen, dass Systeme kompromittiert oder gestohlen werden. Die digitale Signatur stellt sicher, dass das Update nicht verändert wurde und nur legitimem Code vertraut wird.
    • Authentizität des Herstellers:Durch die Verifikation der digitalen Signatur kann der Benutzer sicherstellen, dass das Update tatsächlich vom angegebenen Softwarehersteller stammt. Dies schützt vor sogenannten Man-in-the-Middle-Angriffen, bei denen ein Angreifer vortäuscht, der legitime Hersteller zu sein.
    • Vertrauenswürdige Softwareumgebung:Durch die Sicherstellung der Integrität und Authentizität von Updates können Unternehmen und Benutzer darauf vertrauen, dass ihre Systeme sicher und funktional bleiben. Dies ist besonders kritisch in sicherheitsrelevanten Anwendungen, wie z. B. bei medizinischen Geräten, Finanzsystemen oder der Steuerung von Industrieanlagen.
    • Gewährleistung der Integrität:Die Integrität wird durch den Einsatz asymmetrischer Kryptographie sichergestellt. Die digitale Signatur stellt sicher, dass jede Veränderung der Update-Datei erkannt wird. Die Signatur kann nur vom rechtmäßigen privaten Schlüssel generiert und nur vom zugehörigen öffentlichen Schlüssel überprüft werden.
    Sign Up

    Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

    Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

    Kostenloses Konto erstellen

    Du hast bereits ein Konto? Anmelden