| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung |
| gf_informatik:encryption2 [2026-04-09 09:24] – [Begriffe] gra | gf_informatik:encryption2 [2026-04-09 09:43] (aktuell) – [Aufgabe 4A – Vigenère-Funktion schreiben] gra |
|---|
| Als nicht-knackbar gilt das [[https://de.wikipedia.org/wiki/One-Time-Pad|one-time-pad (OTP)]], eine Einmalverschlüsselung, bei der das Schlüsselwort mindestens so lange wie der Klartext selbst und die eben nur ein einziges mal verwendet wird. | Als nicht-knackbar gilt das [[https://de.wikipedia.org/wiki/One-Time-Pad|one-time-pad (OTP)]], eine Einmalverschlüsselung, bei der das Schlüsselwort mindestens so lange wie der Klartext selbst und die eben nur ein einziges mal verwendet wird. |
| |
| **Auch das Vigenère-Verfahren (mit wiederholt verwendeten Schlüsselwörtern) gilt angesichts heutiger Entschlüsselungsmethoden als unsicher**. | Auch das Vigenère-Verfahren (mit wiederholt verwendeten Schlüsselwörtern) gilt angesichts heutiger Entschlüsselungsmethoden als unsicher. |
| \\ | \\ |
| |
| * ''key\_count'' zählt durch das Schlüsselwort. Wäre das Schlüsselwort "BOB", so wäre key\_count erst 0, dann 1, dann 2, dann wieder 0 etc. Du musst also schauen, dass key\_count bei jedem Durchgang erhöht wird – aber nicht höher als die Länge des Schlüsselworts. ((Die Länge einer Zeichenkette ermittelst du mit der Funktion ''len(Zeichenkette)''.)) | * ''key\_count'' zählt durch das Schlüsselwort. Wäre das Schlüsselwort "BOB", so wäre key\_count erst 0, dann 1, dann 2, dann wieder 0 etc. Du musst also schauen, dass key\_count bei jedem Durchgang erhöht wird – aber nicht höher als die Länge des Schlüsselworts. ((Die Länge einer Zeichenkette ermittelst du mit der Funktion ''len(Zeichenkette)''.)) |
| * ''shift\_letter'' ist der aktuelle Buchstaben aus dem Schlüsselwort. Wäre das Schlüsselwort "BOB", so wäre shift\_letter erst 'B', dann 'O', dann 'B' etc. Verwende folgende Code-Zeile: ''shift\_letter = key\_word[key\_count].upper()''. Damit ist shift\_letter immer ein Grossbuchstabe. | * ''shift\_letter'' ist der aktuelle Buchstaben aus dem Schlüsselwort. Wäre das Schlüsselwort "BOB", so wäre shift\_letter erst 'B', dann 'O', dann 'B' etc. Verwende folgende Code-Zeile: ''shift\_letter = key\_word[key\_count].upper()''. Damit ist shift\_letter immer ein Grossbuchstabe. |
| * ''shift'' ist der aktuelle Verschiebewert. Wäre das Schlüsselwort "BOB", so wäre ''shift'' erst 1, dann 14, dann 1, dann wieder 1 etc. Um shift zu ermitteln, benötigst du den shift\_letter und die Zeichenkette ''string.ascii\_uppercase''.((Du könntest auf die Variable shift\_letter auch verzichten und shift direkt in einer etwas komplizierteren Codezeile ermitteln. Schritt füt Schritt ist aber einfacher nachvollziehbar.)) | * ''shift'' ist der aktuelle Verschiebewert. Wäre das Schlüsselwort "BOB", so wäre ''shift'' erst 1, dann 14, dann 1, dann wieder 1 etc. Um shift zu ermitteln, benötigst du den shift\_letter und die Zeichenkette ''string.ascii\_uppercase''.((Du könntest auf die Variable shift\_letter auch verzichten und shift direkt in einer etwas komplizierteren Codezeile ermitteln. Schritt für Schritt ist aber einfacher nachvollziehbar.)) |
| ++++ | ++++ |
| |