Schlüsseltechnologie

STP043: Kryptografische Primitiven


Listen Later

Im zweiten Teil unserer Reihe über Kryptografie besehen wir uns einzelne Klassen von Bausteinen, welche dann zu Verschlüsselungsprotokollen zusammengesetzt werden können.

Shownotes
  • Rückblick zu STP041

    • Kryptografische Systeme dienen dem Erreichen der vier Schutzziele (Vertraulichkeit, Integrität, Authentizität, Verbindlichkeit)
    • Implementierung vollständiger Kryptosysteme braucht Primitiven (Grundbausteine)
    • heute: Vorstellung grundlegender Klassen von Primitiven
    • Symmetrische Verschlüsselung

      • Schritt 1: Klartext (Plaintext) + Schlüssel (Key) -> Geheimtext (Ciphertext)
      • Schritt 2: Geheimtext + selber Schlüssel -> Klartext
      • üblicherweise als Blockchiffre mit Beschränkung des Klartexts auf eine Blockgröße von z.B. 128 oder 256 Bits, übliche Schlüsselgrößen ähnlich groß
      • zwei Probleme:
        1. Wie verschlüsselt man mehr als einen Block?
        2. Wie einigt man sich auf einen gemeinsamen Schlüssel, ohne dass Beobachter den Schlüssel abgreifen können?
        3. zu Problem 1: Erweiterung der Blockchiffre zu einem Stromchiffre mittels eines geeigneten Betriebsmodus

          • Datenstrom wird in einzelne Blöcke der gewünschten Größe zerteilt; Betriebsmodus beschreibt dann die Anwendung des Blockchiffre auf die Folge von Blöcken
          • einfachster Betriebsmodus ist ECB (Electronic Codebook): der Blockchiffre wird auf jeden Block komplett separat angewendet -> offensichtliche Probleme (siehe Bild im verlinkten Abschnitt)
          • bei den meisten modernen Betriebsmodi werden meist Daten aus dem aktuellen Blockchiffre in den nächsten Block übertragen, um die Analyse des Geheimtextes zu erschweren -> Problem: schwer parallelisierbar, Lesezugriff nur sequentiell
          • CTR-Betriebsmodus (Counter): jeder Block wird beim Verschlüsseln mit einem Zähler kombiniert, damit sich keine wiederkehrenden Muster wie bei ECB ergeben -> Vorteil: wahlfreier Schreib- und Lesezugriff möglich (interessant für Festplattenverschlüsselung)
          • siehe unten: Beispiel für die Geschwindigkeit moderner Stromchiffern insb. mit Hardwareunterstützung
          • $ cryptsetup benchmark
            ...
            # Algorithm | Key | Encryption | Decryption
            ...
            aes-xts 512b 3547,4 MiB/s 3540,4 MiB/s
            serpent-xts 512b 742,7 MiB/s 729,4 MiB/s
            twofish-xts 512b 398,9 MiB/s 404,8 MiB/s
            • zu Problem 2 (Einigung auf einen gemeinsamen Schlüssel) zwei Ansätze:

              1. Schlüsselaustausch-Protokolle wie Diffie-Hellman
              2. asymmetrische Verschlüsselung
              3. Asymmetrische Verschlüsselung

                • statt einem einzelnen Schlüssel ein Schlüsselpaar
                  • wir haben keine gute Bildmetapher dazu; Xyrills Vorschlag: zwei Ratschen; eine dreht nur nach rechts und eine nur nach links
                  • Schritt 1: Klartext + öffentlicher Schlüssel -> Geheimtext
                  • Schritt 2: Geheimtext + privater Schlüssel -> Klartext
                  • Beispiel RSA:
                    • Grundgeheimnis sind zwei sehr große Primzahlen (p und q, jeweils z.B. 500 Dezimalstellen)
                    • aus dem Produkt dieser Primzahlen (N = p * q) werden zwei weitere Zahlen (d und e) mittels günstiger Rechenoperationen abgeleitet
                    • dann ist der öffentliche Schlüssel das Zahlenpaar d,N und der private Schlüssel das Zahlenpaar e,N
                    • Ableitung des privaten aus dem öffentlichen Schlüssel erfordert Primzahlfaktorisierung von N, was extrem teuer ist (siehe Beispiel unten)
                    • Problem 1 teilweise gelöst: Empfänger muss nur seinen öffentlichen Schlüssel offenbaren, der kein Geheimnis enthält
                    • Problem 2 ungelöst: auch asymmetrische Verschlüsselung arbeitet nur pro Block
                    • $ time factor 1350918345091284620469824069824602946802496824562049682046982406982406980
                      1350918345091284620469824069824602946802496824562049682046982406982406980: 2 2 3 5 7 193 941 5077 3488395463852632669275489205712092360621005476304268749586169
                      factor 1,92s user 0,00s system 99% cpu 1,926 total
                      $ time factor 1350918345091284620469824069824602946802496824562049682046982406982406981
                      1350918345091284620469824069824602946802496824562049682046982406982406981: 11 3931 5242879872157046321 5958863859256362497309559371496021100634736129421
                      factor 462,19s user 0,01s system 99% cpu 7:43,24 total
                      • neues Problem: asymmetrische Verfahren sind sehr viel rechenaufwändiger als symmetrische Verfahren -> hybrides Kryptosystem

                        • asymmetrische Verschlüsselung wird nur zum Austausch eines symmetrischen Schlüssels verwendet
                        • Beispiel "verschlüsselte E-Mail": Alice hat den öffentlichen Schlüssel O, Bob hat den privaten Schlüssel P dazu
                          • Alice erstellt die Nachricht N im Klartext
                          • Alice erzeugt einen zufälligen symmetrischen Schlüssel S
                          • Alice verschlüsselt N mit S und einem Stromchiffre zu N'
                          • Alice verschlüsselt S mit O zu S'
                          • Alice schickt N' und S' an Bob
                          • Bob entschlüsselt S' mit P zu S
                          • Bob entschlüsselt N' mit S zu N
                          • zweite Anwendung von asymmetrischer Kryptografie: Signaturen

                            • Verschlüsselung: vorwärts mit dem öffentlichen Schlüssel, rückwärts mit dem privaten Schlüssel
                            • bei Signierung umgekehrt: vorwärts mit dem privaten Schlüssel (Erzeugung), rückwärts mit dem öffentlichen Schlüssel (Überprüfung)
                            • im Detail: erst Komprimierung der zu signierenden Daten auf eine feste Größe mittels einer Hashfunktion (siehe STP004), dann Verschlüsselung dieses Hash-Wertes mit dem privaten Schlüssel
                            • Überprüfung: Berechnung des Hashes auf dieselbe Weise, Vergleich mit entschlüsselter Signatur
                            • noch eine Primitive zum Schluss: Geheimnisteilung

                              • Problem: Ein Geheimnis soll in N Teile so aufgeteilt werden, dass M beliebige Teile zum Entschlüsseln genutzt werden können.
                              • Beispiel: Backup des Passwortspeichers in 5 Fragmente aufteilen und bei 5 Freunden so einlagern, dass man später nur 3 beliebige Fragmente zum Wiederherstellen braucht
                              • Illustrationen: Visuelle Kryptografie, Blakley-Schema
                              • im Gespräch erwähnt

                                • Anerzählt Podcast zu AES
                                • Whitfield Diffie und Moxie Marlinspike und eine Flasche Whiskey auf der Bühne
                                • ...more
                                  View all episodesView all episodes
                                  Download on the App Store

                                  SchlüsseltechnologieBy Xyrillian Noises


                                  More shows like Schlüsseltechnologie

                                  View all
                                  Bits und so by Undsoversum GmbH

                                  Bits und so

                                  25 Listeners

                                  WRINT: Wer redet ist nicht tot by Holger Klein

                                  WRINT: Wer redet ist nicht tot

                                  15 Listeners

                                  Methodisch inkorrekt! by Methodisch inkorrekt!

                                  Methodisch inkorrekt!

                                  13 Listeners

                                  Apfelfunk by Malte Kirchner & Jean-Claude Frick

                                  Apfelfunk

                                  8 Listeners

                                  Das Wissen | SWR by SWR

                                  Das Wissen | SWR

                                  113 Listeners

                                  c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

                                  c’t uplink - der IT-Podcast aus Nerdistan

                                  6 Listeners

                                  Stay Forever - Retrogames & Technik by Stay Forever Team

                                  Stay Forever - Retrogames & Technik

                                  34 Listeners

                                  Logbuch:Netzpolitik by Metaebene Personal Media - Tim Pritlove

                                  Logbuch:Netzpolitik

                                  5 Listeners

                                  Computer und Kommunikation by Deutschlandfunk

                                  Computer und Kommunikation

                                  10 Listeners

                                  Der KI-Podcast by ARD

                                  Der KI-Podcast

                                  12 Listeners

                                  KI-Update – ein heise-Podcast by Isabel Grünewald, heise online

                                  KI-Update – ein heise-Podcast

                                  2 Listeners

                                  Passwort - der Podcast von heise security by Dr. Christopher Kunz, Sylvester Tremmel

                                  Passwort - der Podcast von heise security

                                  3 Listeners

                                  Geschichten aus der Mathematik by detektor.fm – Das Podcast-Radio

                                  Geschichten aus der Mathematik

                                  2 Listeners

                                  UNFASSBAR – ein Simplicissimus Podcast by Simplicissimus

                                  UNFASSBAR – ein Simplicissimus Podcast

                                  25 Listeners

                                  Darknet Diaries Deutsch by heise online

                                  Darknet Diaries Deutsch

                                  0 Listeners