Skip to main content


Zutaten: Zucker, Kakaomasse (50%), Milchzucker, Weizenmehl, Vollmilchpulver, Magermilchpulver, Butterreinfett, Sahnepulver, Butter (1,4%)
Kann Spuren von Analysis und Geometrie enthalten.

02_2022_titel_clown_auf_denkmal03_3

Mathematische Erektionen

Paula und Rike haben einen schönen Tag in München verbracht. Sie wollen gern den RSA-Algorithmus nach Buchmann in Python implementieren. Doch welchen Text sollen sie nehmen?

Paula Wollen wir mal ein kleines Python-Programm für den RSA-Algorithmus schreiben?

Rike Gut, machen wir! Wollen wir einen Text aus Effi Briest chiffrieren?

Paula Ach nö!

Rike Dann hab‘ ich ‘ne tolle Idee, ich habe mich nämlich in letzter Zeit mit Flaubert angefreundet.

Flaubertsche Erection

Paula Flaubert?

Rike Na, Gustave Flaubert, französischer Schriftsteller, hatte vor kurzem seinen 200. Geburtstag. Er hat 3000 Briefe hinterlassen! Er schreibt viel und ausführlich von seiner Orientreise, von seiner Arbeit an Madame Bovary, von seinen literarischen Plänen aber auch vom Sex. Mehrfach schreibt er von seinem Wunsch, ein Dictionnaire des Idées reçues zu entwerfen, ein Wörterbuch der Gemeinplätze.

Paula Aha!

Rike Ja, eben eine Art Knigge. Er meint es sehr zynisch. Es ist fast wie heute, was man sagen soll und was man damit meint.

Paula Aha! Ich sage, was ich meine, jedenfalls meistens.

Rike Hmm! Das kommentiere ich jetzt nicht. Hör mal, Flaubert hat auch an seine Freundin Louise Colet von diesem Wörterbuch geschrieben. Mir ist aufgefallen, dass sein Wort Erection als Aufrichtung übersetzt wurde.

Paula Haha!

Rike Hier, hier steht’s:

ERECTION: ne se dít qu’en parlant des monuments.

Paula EREKTION: sagt man nur, wenn man von Denkmälern spricht?

Rike Ja, richtig.

Paula Warum wurde Erection nicht mit Erektion übersetzt? Das ist doch naheliegend!

Rike Da fragst du was, ja, du hast recht. Wir hätten das so übersetzt.

Paula Na, nicht gut, dann wollen wir das mal mathematisch übersetzen.

Rike Ja, das machen wir, mathematische Erektionen!

Ein passender mathematischer Rahmen für Erection

Paula Ha! Unser Wort wäre

Das hat 8 Buchstaben, das E ist doppelt, dafür brauchen wir aber die 0. Das kleinste Alphabet mit diesen Buchstaben wäre

Also ist die Länge des Alphabets 8:

Die Blocklänge müsste mindestens 8 sein, wenn wir das Wort Erection bilden wollen,

Für den RSA-Algorithmus brauchen wir eine Zahl die die Eigenschaft hat:

Da wird sehr groß. So große Beispiele habe ich noch nie gerechnet. Aber wir probieren es mit Python, die lassen große Zahlen zu.

Rike Gut, ich bin gespannt.

Paula Vielleicht fangen wir mit einer Funktion an, nämlich die Abbildung von in das weißt du doch immer so gut…

Rike Okay, soll ein Wort auf eine Zahl abbilden. Zuerst erklären wir das Buchstabe für Buchstabe:

0ceinort
01234567

Abbildung von Buchstaben/Zeichen aus dem Alphabet auf Zahlen von 0 bis 7

Aus

wird

Den Wert brauchen wir als Zahl, nicht als Zeichenkette.

Paula Richtig. Außerdem brauchen wir den Wert dieser Oktalzahl als Dezimalzahl.

Rike Oktalzahl?

Paula Das 8er Stellenwertsystem heißt Oktalsystem.

Rike Alles klar. Kommt das oft bei euch vor?

Paula Haha, das Wort Erection mit 8 Zeichen hast du mitgebracht. Also gut, der Dezimalwert ist dann

Rike Na gut, dann bildet Produkte von Buchstaben, maximal 8 davon, in die natürlichen Zahlen ab:

und der komponentenweisen Abbildung

Mit den Koeffizienten

können wir dann die Zahl für Erection im Oktal- und im Dezimalsystem berechnen.

Paulas algorithmische Sicht

Paula Alles klar, sieht ja gar nicht so schwer aus. Wir starten mit einer Zeichenkette für das Wort Erection:

oder als Vektor geschrieben

Die Stellen in solchen Vektoren sind mit 0 beginnend durchnummeriert und enden mit 7. Das müssen wir beachten. Ich gehe also Buchstaben für Buchstaben durch und bestimme die Koeffizienten

Es wäre gut, wenn wir aus

die Zahl , die bei mir die Bezeichnung kriegt, berechnen könnten:

Rike Hmm, die kriegst du doch aus denselben Koeffizienten, nur mit Zehnerpotenzen multipliziert:

Den Dezimalwert von berechnest du ebenso:

Paula Okay, das passt, du hast doch einen mathematischen Blick auf solche Sachen, Rike. Warte, ich kodiere das mal eben. … So! Mit Erection klappt das.

Paulas Problem beim Testen des Programms

Doch wenn mein Wort kürzer ist, zum Beispiel

dann erhalte ich

Mit unserer Formel ergibt das dann:

Statt

und für kriegen wir

Richtig wäre aber

Was nun, Rike?

Rike Du hast recht, wir müssen auch kürzere Wörter berücksichtigen. Warte, …, wir berechnen die Wortlänge eines Wortes und berücksichtigen die. Hier in deinem Beispiel ist

Paula Stimmt.

Rike Die Zahl berechnen wir aus

Analog berechnen wir :

Paula Okay, ist ja etwas kompliziert.

Allgemeine Formel zur Berechnung der Zahlen

Rike So schwer ist es auch nicht:

Paula Den Dezimalwert rechnen wir mit den 8er-Potenzen aus, den Oktalwert mit den Zehnerpotenzen. Komisch!

Rike Haha, sehr witzig! Jetzt noch die Umkehrabbildung .

Paula Das ist jetzt nicht mehr schwer.

***

Übungsaufgaben

  1. Schreibe und teste das Programm.
  2. Schreibe auch ein Programm für die Umkehrfunktion!

Lösungen

1.funktion_f_abbilden_A_nach_N_v_12Programm als PDF

2.

funktion_f1_umkehrabbildung_A_nach__N_v_8

Programm als PDF