s n h m r u
i

Übungen

Aufgabe 1

Benutze die die Funktion sha256 aus der Python-Bibliothek hashlib, um ein Signiersystem wie im Abschnitt Einstieg - Signiersysteme zu simulieren.

Teste mit diesem Signiersystem, welche Möglichkeiten ein Angreifer zur Manipulation einer Nachricht hat.

from chiffriersystemModularePotenz import *
from hashlib import sha256

def fingerabdruck(text):
    sha256Ergebnis = sha256(bytes(text, 'iso8859-1')).hexdigest()
    zahl = int('0x'+sha256Ergebnis, 16)
    return zahl

# Vorgaben
abc = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ'
oeffentlicherSchluesselAlice = (65537, 3475540152245156575672595655541174668192098004113331077900989083455772646364338528746104119)
privaterSchluesselAlice = (939191847296362710456103713316663920742207540542463637852353915678518786689275466125319473, 3475540152245156575672595655541174668192098004113331077900989083455772646364338528746104119)
# Nachricht erstellen
quelltext = 'HEUTE HITZEFREI'
fingerabdruckQuelltext = fingerabdruck(quelltext)
print('Fingerabdruck zur Nachricht:', fingerabdruckQuelltext)
fingerabdruckVerschluesselt = verschluesselteZahl(fingerabdruckQuelltext, privaterSchluesselAlice)
print('verschlüsselter Fingerabdruck:', fingerabdruckVerschluesselt)
nachricht = (quelltext, fingerabdruckVerschluesselt)
print('Nachricht gesendet:', nachricht)
# Nachricht verändern
quelltextVeraendert = 'HEUTE KEIN HITZEFREI'
nachrichtEmpfangen = (quelltextVeraendert, fingerabdruckVerschluesselt)
print('Nachricht empfangen:', nachrichtEmpfangen)
# Nachricht analysieren
# ...

Aufgabe 2

Sabrina hatte Marco aufgefordert, mit ihrer Hash-Funktion SRA zum Wort "Hund" eine Kollision zu finden. Marco antwortet: Zu "Hund" konnte ich jetzt nichts finden, aber zu "Katze" war es ziemlich einfach, eine Kollision zu finden."

Beurteile Sabrinas Funktion SRA in Hinblick auf starke und schwache Kollisionsresistenz.

Suche

v
11.5.5
dev.inf-schule.de/kryptologie/digitalesignatur/uebungen
dev.inf-schule.de/11.5.5
dev.inf-schule.de/@/page/hQrwDHBJ4Gn6y2j4

Rückmeldung geben