Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Ü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
# ...
X

Fehler melden

X

Suche