Kryptographie – Hashverfahren und elektronische Signatur – Anwendungsentwickler-Podcast #132

Dieser Beitrag ist Teil 2 von 4 in der Serie Kryptographie.

Die Fortsetzung zum Oberthema Kryptographie mit Hashverfahren und elektronischer Signatur gibt es in der einhunderzweiunddreißigsten Episode des Anwendungsentwickler-Podcasts.

Probeabo bei Audible (Affiliate)

Inhalt

  • Hashes
    • Hashverfahren erzeugen aus einer Eingangszeichenfolge beliebiger Länge eine Ausgangszeichenfolge fixer Länge, „Hash“ oder „Prüfsumme“ genannt.
    • Sie sind mathematische Einwegverfahren, die keinen Rückschluss auf die Eingangsdaten zulassen, wenn die Ausgangszeichenfolge bekannt ist.
    • Die erzeugten Hashes sollten sich selbst bei kleinsten Änderungen an den Eingangsdaten deutlich verändern, damit sofort ersichtlich ist, dass die Eingangsdaten verändert wurden.
    • Hashverfahren sollten möglichst „kollisionsarm“ sein. Das heißt, dass es sehr unwahrscheinlich sein muss, dass zwei unterschiedliche Eingangszeichenfolgen zum gleichen Hashwert führen.
    • Beispiele für Hashverfahren: MD5, SHA1, SHA256. Sie unterscheiden sich im verwendeten Algorithmus und/oder der Länge des erzeugten Hashwertes.
    • Ein Hashverfahren gilt als unsicher, wenn mit vertretbarem Aufwand eine Kollision herbeigeführt werden kann, z.B. indem einer veränderten Zeichenfolge weitere bewusste Änderungen hinzugefügt werden, um dann wieder zum ursprünglichen Hashwert zu gelangen. Das Verfahren MD5 gilt heute als unsicher.
  • Elektronische Signatur
    • Die elektronische Signatur soll die Integrität und Authentizität von Daten sicherstellen.
    • Beispiel: Bob möchte sicherstellen, dass die erhaltene Mail von Alice auch wirklich von ihr stammt (und nicht von einem Angreifer, der vorgibt, Alice zu sein) und auf dem Weg durch das Internet nicht von einem Angreifer manipuliert wurde (also z.B. Alices IBAN nicht durch die des Angreifers ersetzt wurde).
    • Aufbau: Der Hash der Eingangsdaten wird mit dem privaten Schlüssel des Absenders verschlüsselt. Der Empfänger entschlüsselt den Hash mit dem öffentlichen Schlüssel des Absenders und erzeugt mit dem gleichen Hashverfahren den Hash über die empfangenen Daten. Wenn der entschlüsselte Hash mit dem selbst erstellten übereinstimmt, weiß der Empfänger, dass Integrität und Authentizität eingehalten wurden.

Links

Navigation der Serie<< Kryptographie – Schutzziele und Verschlüsselung – Anwendungsentwickler-Podcast #131Kryptographie – Zertifikate und Zertifizierungsstellen – Anwendungsentwickler-Podcast #145 >>
Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

2 comments on “Kryptographie – Hashverfahren und elektronische Signatur – Anwendungsentwickler-Podcast #132

  1. Hi Stefan,
    ich heiße Artur und mache zur Zeit meine Ausbildung zum Fachinformatiker AE.
    Das ganze mache ich zum zweiten Mal, da mir von der Arge damals ein Strich durch die Rechnung gemacht hat.
    Daher kann ich auch den Wert deiner Aktivitäten , zur Unterstützung der Ausbildung , gut einschätzen.
    Du machst das supergut und da ich jeden Tag 3 Stunden Anfahrt zur Umschulungsstätte habe, ist es für mich als Unterstützung einfach Gold Wert.
    Ich finde es toll , das es Menschen wie dich gibt, die einfach nur helfen wollen.
    Echt super.
    Da ich bei meiner Umschulung vieles an Unterstützung nicht habe, hoffe ich das deine Azubis wissen was sie an dir haben.
    Mach weiter so.
    Vielen Dank und liebe Grüsse.
    Artur Orlowski

  2. Stefan Macke sagt:

    Hallo Artur, vielen Dank für das positive Feedback. Es freut mich, wenn ich dir (und anderen Azubis) helfen kann. Ich wünsche dir alles Gute und viel Erfolg für deine Umschulung!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax