Python: Wie kann ich eine Verschlüsselung mit Schlüsselwörter erstellen?

regex9  15.02.2021, 09:53

Wenn du eine konkrete Frage dazu stellen würdest (z.B. was du versuchst und woran du konkret scheiterst), könnte man dir sicherlich irgendwie helfen.

Hans1244 
Fragesteller
 16.02.2021, 13:41

Naja, ich soll halt einen Code erstellen, der eine Verschlüsselung von Wörtern beinhaltet. Diese Verschlüsselung soll dann auch noch durch Schlüssel Wörter „Verschlüsselt“ werden.


2 Antworten

Ein einfaches Verfahren könnte so aussehen:

Du hast ein Wort (z.B. Kartoffelbrei) und dazu einen Schlüssel (z.B. Regenbogen). Den Schlüssel verwendest du, um die einzelnen Zeichen des Worts zu verschieben.

Erst wird jedem Buchstaben des Wortes der zugehörige Buchstabe des Schlüssels zugeordnet. Wenn der Schlüssel kürzer ist, als das Wort (wie in diesem Fall), wiederholt er sich einfach.

K a r t o f f e l b r e i
R e g e n b o g e n R e g

Folgend wird Buchstabe für Buchstabe konvertiert. R ist der 18. Buchstabe im Alphabet, K wird nun um 18 Buchstaben verschoben.

 K +  R =           C 
11 + 18 = 29 % 26 = 3

Dieses Verfahren wiederholst du bei den übrigen Buchstaben.

 a +  e =           f
 1 +  5 =  6 % 26 = 6

usw. ...

Um mit Buchstaben rechnen zu können, musst du eigentlich nur wissen, dass einzelne Zeichen in vielen Programmiersprachen leicht zu Zahlen konvertiert werden können und andersherum.

Beispiel mit Java:

char letter = (char)97; // 'a'
int number = (int)'a';  // 97

Des Weiteren wäre die ASCII-Tabelle für so eine Aufgabe von Interesse. In dieser kannst du auch nachschlagen, wieso ein kleines a die Zahl 97 ergibt. Um sie auf 0-25 zu normalisieren, reicht eine leichte Rechnung:

(97 - 97) % 26 = 0 // 'a'
(98 - 97) % 26 = 1 // 'b'

Alles Weitere überlasse ich dir.

Die einfachste polyalphabetische Verschlüsselung ist die Vigenere-Tafel. Danach die XOR-one time pad Verschlüsselung. Bitte separat googeln, da die Infos sehr umfangreich sind. Dann noch eine einfach Möglichkeit mit + und -.

codiertes_Zeichen=uncodiertes_Zeichen + Code zeichen

Falls dann eine Zahl größer als 255 raus kommt dann

if (codiertes_Zeichen> 255) codiertes_Zeichen = codiertes_Zeichen - 255;

Beim Entschlüsseln:

 if (codiertes_Zeichen < 0)  codiertes_Zeichen = codiertes_Zeichen + 255;

Woher ich das weiß:Hobby
Hans1244 
Fragesteller
 16.02.2021, 13:42

hast du vielleicht ein Beispiel code oder so?

0