GeoGebra 3.2: Texte codieren, Listen bearbeiten, Restklassenarithmetik

Thema Mathematik 5 6 - Themenheft Mathematik mit GeoGebra, Kryptographie

Texte codieren

Alle bedeutenden kryptographischen Verfahren basieren auf mathematischen Algorithmen. Zu verschlüsselnde Texte werden daher in die einzelnen, aufeinanderfolgenden Buchstaben zerlegt, denen ihr Index in der ASCII-Tabelle zugeordnet wird:

A tex:\mapsto 65

B tex:\mapsto 66

Für alle Großbuchstaben sind somit 26 Indizes belegt - Ä, Ö oder Ü werden in dieser Reihe nicht berücksichtigt.

Um die Ergebnisse beim Potenzieren klein zu halten, ist es günstig, alle ASCII-Indizes um 64 oder 65 zu vermindern.

atext = TextzuUnicode[nachricht]

liefert eine Liste der Ascii-Codes.

nachricht = UnicodeZuText[atext]

liefert eine Liste der Buchstaben zu den ASCII-Indizes in der Liste atext

Beispiel:

nachricht="KRYPTO"
atext=TextzuUnicode[nachricht]

liefert

atext = {75,82, 89, 80, 84, 79}

Mit einer Schleife verringern wir alle Indizes in der Liste um 64.

itext = Folge[Element[atext,i]-64,i,1,Länge[atext]]

liefert

itext = {11, 18, 25, 16, 20, 15}

Um beispielsweise alle Indizes um 3 zu erhöhen (vgl. Caesar-Verschlüsselung), verwenden wir wieder eine Schleife. Beachte, dass alle Indizes über 26 mit Hilfe der Modulo-Funktion reduziert werden:

ictext=Folge[Mod[Element[itext, i] + 3, 26], i, 1, Länge[itext]]

liefert

ictext = {14, 21, 2, 19, 23, 18}

Zuletzt verschieben wir die Indizes wieder um 64 und geben den Text aus:

actext=Folge[Element[ictext, i] + 64, i, 1, Länge[ictext]]
chiffre=UnicodeZuText[actext]

liefert

NUBSWR

Listen bearbeiten

Die GeoGebra-Funktion Folge[] erzeugt eine Liste, deren Elemente von den Argumenten von Folge[Ausdruck, Laufvariable, Startwert, Endwert] gebildet werden.

Das i-te Element einer Liste wird mit der GeoGebra-Funktion

Element[Liste,i]

ausgegeben.

Restklassenarithmetik

Mod[n,m]

liefert den ganzzahligen Rest bei der Division n : m

Beachte: Bei großen Zahlen n und m liefert die Mod[]-Funktion kein Ergebnis.

Beispiel:

liste=Folge[Mod[Element[amtext, i] Mod[alpha^b, p], p], i, 1, Länge[amtext]]

liefert eine Liste von Elementen, auf die der Algorithmus nach Elgamal angewendet wird. Dabei wird jedes Element mit dem Ausdruck αb multipliziert. Sowohl auf αb als auch auf das Produkt wird die Mod[] - Funktion angewendet.

Zurück zu Lernpfad Kryptographie | Restklassen und Kongruenzen | Mathematik mit GeoGebra