Informatik

Recht auf Verschlüsselung

Jetzt auch unser Innenminister: deutsche Sicherheitsbehörderung müssen – so sein Wunsch – verschlüsselte Kommunikation lesen dürfen. Ähnliche Forderungen hat der englische Premierminister Cameron vor ihm gestellt, und auch der amerikanische Präsident Obama. Dienste wie WhatsApp sollen keine Ende-zu-Ende-Verschlüsselung anbieten dürfen, ohne dass die Regierung (will heißen: alle Regierungen) eine Hintertür dazu kriegen.

In der letzten Regierung sah das noch anders aus. Da meinte der damalige Innenminister Friedrichs: “Wir werden dafür sorgen, dass noch mehr Menschen in Deutschland ihre eigene Kommunikation noch sicherer machen”, und der innenpolitische Sprecher der Unions-Fraktion, Hans-Peter Uhl, sagte: “Wer seine Daten sichern will, wird sie wohl verschlüsseln müssen und kann nicht mehr auf seinen Nationalstaat hoffen.”

De Maizières Vorschlag gefällt mir nicht. Im Moment ist es so, dass alle guten Verschlüsselungsverfahren im Prinzip öffentlich sind. Da ist nichts, was prinzipiell geheim zu halten ist. Nur wenn das Verfahren zur Verschlüsselung öffentlich ist, können Mathematiker und Kryptographen das Verfahren daraufhin überprüfen, ob es sicher ist. Wenn es aber öffentlich ist, kann sich jeder selbst so ein Verschlüsselungsverfahren programmieren. Die größeren Programmiersprachen bieten das ohnehin schon an. Also kann ich verschlüsseln, was ich will. Zugegeben, wenn ich einen unsicheren Dienst wie WhatsApp nutzen möchte, muss ich meine Nachricht vorher verschlüsseln, und dann auf dem unsicheren Weg transportieren lassen. Das ist ein wenig aufwendiger.

Also muss ich verbieten, selbst so ein Programm zu schreiben. Das geht aus vielerlei Gründen nicht. Bleibt also nur, dass ich gerichtlich erzwingen kann, dass ich als Selbstverschlüsseler mein Passwort herausrücken muss, wenn ein Gericht das beschließt. So ist das im Moment in England; in Deutschland noch nicht. Da habe ich noch das Recht auf ein Geheimnis. Das möchte ich auch behalten.

Weitere Gründe, warum das eine dumme Idee ist, stehen zum Beispiel beim Guardian.

(Dass ich mich verdächtig mache, wenn ich Verschlüsselung benutze, steht auf einem anderen Blatt. Und auch dass es schwerer ist, den Akt der Kommunikation zu verbergen als deren Inhalt. Hier übrigens mein öffentlicher Schlüssel PGP-Key. )

Standard
Bücher, Informatik

Cory Doctorow & Jen Wang, In Real Life

doctorow_wang_irlGraphic Novel, etwa 175 Seiten.
Um die 13 Euro.

Zugegeben: Wenn es mehr gute Geschichten um Gamer und mehr gute Geschichten mit Heldinnen gäbe, dann würden mir bei In Real Life mehr die Nachteile einfallen. Die Geschichte ist ein bisschen dünn und plakativ, aber hey, das sind viele Jugendromane auch. Weil es aber nicht viel vergleichbare Bücher gibt, kann ich das nur empfehlen als Geschichte um eine Gamerin, ihre Onlinefreunde, jugendliche Naivität. Erfreulich – aber nicht verwunderlich, wenn man Doctorow kennt – ist, dass das Buch ohne die Klischees auskommt, die einem hierzulande bei Onlinespielern einfallen: Schlechte Noten, Realitätsverlust, falsche Identitäten. Dafür gibt es andere Klischees, meinetwegen, aber die sind nicht gar so platt. Und wer noch nie etwas von gold farming gehört hat, der kann hier noch etwas lernen.

Richtig schön ist auf jeden Fall, wie Wang die Bildersprache der Computerspiele mit der Bildersprache der Comics kombiniert – Eingabeformulare, Wartebalken, Punktegewinn. Das habe ich so noch nicht gesehen, aber ich lese ja auch gar nicht mehr viele Comics.

Siehe auch:

Standard
Informatik

Fachsprache und Fehlvorstellungen

Gestern entwickelte sich eine kurze Diskussion bei Twitter, angestißen durch die Frage, wie schlimm es ist, wenn man als Informatiker oder Informatiklehrer “Ordner” statt “Verzeichnis” sagt. (Was heißt schon Diskussion? Für mich funktioniert das auf Twitter nicht. Da gibt man Meinungen von sich, im besten Fall prägnant und pointiert, und bald bestehen die 140 Zeichen zur Hälfte aus Tags der Anzusprechenden. Endete dann auch fast schon mit einem Kellnerpunkt.)

Die Frage ist nicht ganz so unwichtig, wie sie scheint. In der Didaktik geht es darum, welche Begriffe optimal für den Lernvorgang sind – manche hemmen, andere fördern ihn. Bei “Ordner”, so die Didaktiktheorie, geht es um die Fehlvorstellung, die sich bei Schülern entwickeln kann, dass in einem Ordner ja nur Dokumente enthalten sein können, wie bei einem echten Leitz-Ordner, und keine weiteren Ordner. Bei dem Begriff “Verzeichnis” entstehe diese Fehlvorstellung weniger.

(Hintergrund: Bei Windows heißen die Verzeichnise zum Beispiele “Ordner/Folder”, bei Linux “Verzeichnis/Directory”.)

Im Prinzip halte ich das mit den Begriffen schon für wichtig. Deswegen mag ich im Deutschunterricht auch nicht das Wort “Imperfekt”, sondern nur “Präteritum”. Mit dem ersten Begriff wird, zumindest für die Grundschüler mit Sprachgefühl, eine Bedeutung transportiert, die dieses Tempus im Deutschen nicht hat. Als wäre da etwas nicht abgeschlosssen, unfertig, zweitklassig. (Dabei heißt das doch – noch grauslicher – die “1. Vergangenheit”, muss also wiederum etwas Besseres sein.) Da halte ich es für einen Vorteil, wenn die Fachbegriffe ganz bewusst aus einer unverstandenen Sprache kommen – eben weil sonst die Fehlvorstellung unterstützt wird, Tempus sei das gleiche wie Zeit oder Vergangenheit wie Präteritum. Die Schüler sind regelmäßig irritiert, dass im Deutschen die Zukunft wohl häufiger mit dem Präsens ausgedrückt wird als mit dem Futur.

Bei der Informatik liegt das insofern anders, als die meisten Begriffe dort Metaphern sind. Ordner ebenso wie Verzeichnis. Wenn ich in Windows das Verzeichnis lösche, ist nicht nur das Verzeichnis weg, sondern auch dessen Inhalt – dieses Verhalten passt wiederum besser zum Löschen von Ordnern. Wenn ich ein Verzeichnis verschiebe, verschiede ich auch dessen Inhalt, was man eher bei einem Ordner erwarten würde – andererseits geschieht beim Verschieben innerhalb eines Laufwerks tatsächlich genau das nicht; die Dateien bleiben auf ihrem Platz, es sieht nur so aus, als würden sie bewegt. (Deswegen geht das Verschieben innerhalb eines Laufwerks ja auch viel schneller als das auf ein anderes Laufwerk. Oder eine andere Partition.) Und ein Alltagsobjekt kann gleichzeitig nur in einem Ordner sein, aber in vielen Verzeichnissen. Wie ist das bei Festplatten. (Antwort: Es ist kompliziert.)

Tatsächlich glaube ich, dass es für Sechstklässler überhaupt keinen Unterschied macht, ob man “Verzeichnis” oder “Ordner” sagt. Was diese gelben Dinger sind, wird schnell klar, egal wie sie heißen. Ich bin aber auch als Strukturalist sozialisiert: die Bedeutung der Wörter entsteht aus ihrem Verhalten und aus ihrem Verhältnis zu anderen Wörtern, nicht aus ihrer Form. Dass auf dem Speichern-Knopf ein Disketten-Icon ist, irritiert Schüler ja auch nicht. (Hier allerdings die Ergebnisse des Projekts “Speichern unter” der Wirtschaftsförderung Region Stuttgart.)

Das ändert nichts daran, dass Fehlvorstellungen Probleme machen können. Auf unserem Schulsystem war aus vermeintliche praktischen Gründen ein bestimmter Ordner auf zwei Wegen erreichbar, mit zwei verschiedenen Laufwerksbuchstaben vorne dran. Prompt hat ein Kollege eines der beiden Verzeichnisse gelöscht, weil es ja doppelt war, und war dann überrascht, dass das andere auch weg war.

Sage ich “Feld” oder “Array”? Der zweite Begriff ist – gerade für Englischlernende – mit nichts verbunden, führt also zu keinen Vorstellungen. Der erste weckt eventuell Vorstellungen: sind es förderliche oder schädliche? Manchmal mache ich mir die deutsche Bedeutung zunutze und erkläre Felder mit diesen Bildern, nachdem wir vorher mit einer Klasse “Blume” gearbeitet haben:

Felder1

Felder2

Felder3

Felder4

(Weitere Metaphern gibt es auch, von der Schubladenreihe und dem Kistenstapel.)

Andererseits verwirrt der Begriff “Feld” dann wieder einige wenige Schüler, die dem Begriff schon als Übersetzung des englischen “Field” begegnet sind, das bei uns dann wieder Attribut heißt. Und vielleicht ist es besser, mit einem Begriff zu arbeiten, mit dem man erst mal nichts verbindet, also “Array”.

  • “Schleife” oder “Loop” oder “Wiederholschleife” oder “Wiederholung” oder “Zyklus”? “Zyklus” wäre schön, ist aber als Wort den Schülern zu fern. Schleife vermutlich.  Allerdings rückt das in die Nähe der gefürchteten “If-Schleife”, und da wollen wir gar nicht erst hin. In der Unterstufe spricht man von “Wiederholung mit Anfangsbedingung” und “Wiederholung mit fester Anzahl”, das ist für die Praxis wiederum recht lang.
  • “Zeichenkette” oder “String”, oder “string”? Gerne Zeichenkette.
  • Gleitkommazahl, Fließkommazahl, Kommazahl, float oder real? Mir reicht Kommazahl, ansonsten Gleitkommazahl. Aber was das ist, kommt ohnehin erst viel später.
  • “NP-hart” oder “NP-schwer”? Da hat sich das erste durchgesetzt. Das ist eine Fehlübersetzung, aber fürs Verständnis dürfte das das geringste Problem sein.
  • “Zeichen” oder “char”? Zeichen, sonnenklar, aber die Aussprache von “char” ist offen. Die meisten Schüler (und wohl auch Englisch-Muttersprachler) sprechen es wie das englische Wort “char” aus, was Zugehfrau oder Holzkohle bedeutet, oft in Zusammensetzungen. Hat nichts mit “charming” zu tun, klingt aber genau so. Mich schüttelt es dann immer. Es gibt auch die Ausprachen “care” und “char-“, also wie erste Silve von “character”, wo es ja auch herkommt.

Nachtrag 8.1.2015: Gerade habe ich gesehen, dass der Lehrplan auch von Ordnern spricht und nicht von Verzeichnissen. Aber das soll und muss uns als klugen und selbst denkenden Didaktikern erst mal egal sein. (Man ist ja nicht nur Beamter.)

Standard
Informatik

Computerfähigkeiten der deutschen Jugend, wieder einmal

Letzten Donnerstag wurden die Ergebnisse der ICILS-Studie zum Umgang mit digitalen Medien veröffentlicht. Das Kürzel steht für “International Computer and Information Literacy Study”. Getestet wurden Achtklässler, Deutschland liegt international und innerhalb von Europa im Mittelfeld.

Getestet wurde in der Studie vor allem, wie gut die Schüler mit dem Computer umgehen können, wenn es darum geht, im Web (“Internet”) Informationen zu suchen, zu bewertenund zu benutzen. Es geht also nicht um Informatik und nicht um Programmierung. Hier die offizielle Seite der Studie. Aus den dort angebotenen pdfs stattmt auch dieser Überblick über die angesprochenen Kompetenzen:

icils_kompetenzen

Durchführung der Studie: Am Computer. 15 Minuten Einführung in die Laptops und die Testumgebung, dann 2 von 4 verschiedenen Testeinheiten zu je 30 Minuten. Dazu gehörten Aufgaben mit Multiple Choice etc.; Aufgaben zum Umgang mit Software (Laden, Speichern); und sogenannte Autorenaufgaben:

Bei der Bearbeitung von Aufgaben diesen Aufgabentyps sollen die Schülerin nen und Schüler Informationsprodukte (z.B. Präsentationen) unter der Verwendung von computerbasierten Software-Anwendungen erstellen oder Informationsprodukte nach gegebener Aufgabenstellung verändern. Um den Realitätsbezug dieser Aufgaben zu gewährleisten, ist im Rahmen der Aufgaben bearbeitung teilweise die gleichzeitige Nutzung verschiedener Programme notwendig (z.B. E-Mail-Programme, Internetbrowser, Textverarbeitungsprogramme oder Präsentationssoftware).

Die Beschreibung der Kompetenzstufen:

  • Kompetenzstufe I: Die unterste Kompetenzstufe umfasst rudimentäre rezeptive Fertigkeiten und sehr einfache Anwendungskompetenzen, wie das Anklicken eines Links oder einer E-Mail. International befinden sich 17.0 Prozent der Schülerinnen und Schüler auf dieser untersten Kompetenzstufe. In Deutschland liegt der Anteil bei 7.4 Prozent.
  • Kompetenzstufe II: Die Kompetenzstufe II beinhaltet den kompetenten Umgang mit basalen Wissensbeständen sowie sehr einfache Fertigkeiten im Umgang mit Informationen, z.B. eine einfache Bearbeitung von Dokumenten (z.B. das Ausschneiden, Kopieren und Einfügen von Textteilen). International befinden sich 22.7 Prozent der Schülerinnen und Schüler auf der Kompetenzstufe II. In Deutschland liegt der Anteil bei 21.8 Prozent.
  • Kompetenzstufe III: Schülerinnen und Schüler, die die Kompetenzstufe III erreichen, können angeleitet, also mit Hilfestellungen, Informationen ermitteln, diese bearbeiten sowie einfache Informationsprodukte (wie z.B. einfache Textdokumente) erstellen. International befinden sich 37.6 Prozent der Schülerinnen und Schüler auf dieser Kompetenzstufe. In Deutschland liegt der Anteil bei 45.3 Prozent.
  • Kompetenzstufe IV: Die Kompetenzstufe IV umfasst das eigenständige Ermitteln und Organisieren von Informationen und das selbstständige Erzeugen von elaborierten Dokumenten und Informationsprodukten. International lassen sich 20.7 Prozent der Schülerinnen und Schüler der vierten Kompetenzstufe zuordnen. In Deutschland liegt der Anteil bei 24.0 Prozent.
  • Kompetenzstufe V: Die oberste Kompetenzstufe beschreibt schließlich sehr elaborierte computer- und informationsbezogene Kompetenzen, zu denen das sichere Bewerten und Organisieren selbstständig ermittelter Informationen sowie das Erzeugen von inhaltlich und formal anspruchsvollen Informationsprodukten gehört. International erreichen 2.0 Prozent der Schülerinnen und Schüler diese höchste
    Kompetenzstufe. In Deutschland liegt der Anteil bei 1.5 Prozent.

Klingt gar nicht so dramatisch, ehrlich gesagt. Mittelfeld halt. In der kurzen Presse-Pdf (die große Fassung mit 328 Seiten war mir zu lang) wird exemplarische eine Aufgabe vom Schiwerigkeitsgrad III gezeigt: Im Prinzip muss man einer Mail, die man gekriegt hat, eine Web-Adresse entnehmen, die nicht als anklickbare URL vorliegt, und in den Browser kopieren oder eintippen und dann zu der Seite gehen. Kriegen 50% der Achtklässler hin.

Ergebnisse, Ausschnitt:

  • Mädchen schneiden weltweit besser ab als Jungen.
  • Von allein lernen digital natives auch nicht den Umgang mit dem Computer, weshalb man den Begriff jetzt endlich mal beerdigen sollte.
  • In Deutschland gibt es ein viel zu kleines Feld von Jugendlichen, das Kompetenzstufe V erreicht (1,5%), und zu viele (7,4% bzw. 21,8%), die nur auf I oder II kommen.
  • Benachteiligt sind: Jugendliche aus unteren und mittleren sozialen Lagen; Schüler, die nicht aufs Gymnasium gehen (sondern auf andere Schularten, Gesamtschulen eingeschlossen)
  • Schulen sind nicht gut mit moderner Technik ausgestattet; Lehrer nicht gut genug geschult – und außerdem sehr skeptisch. Computer werden wenig in der Schule eingesetzt, abgesehen vom Fach Informatik.

Und, braucht man das mit dem Computer überhaupt? In einem Zeit-Interview mit einer der Verantwortlichen für die Studie fragt die Zeit dann auch:

ZEIT ONLINE: Ist denn überhaupt bewiesen, dass Schüler mit dem Computer tatsächlich mehr lernen als ohne?
Eickelmann: Da ist die Forschung der vergangenen 20 Jahre recht widersprüchlich. Mal zeigen Studien Lernvorteile durch digitale Medien, mal nicht.

Allerdings geht es nicht nur um Lernvorteile (für andere Fächer), sondern darum, dass man mit dem Computer umgehen können muss. Von den 30% der Schüler auf Stufe I und II sagen die Verantwortlichen für die Studie:

Diese Schülergruppe wird es voraussichtlich schwer haben, erfolgreich am privaten, berufl ichen sowie gesellschaftlichen Leben des 21. Jahrhunderts teilzuhaben.



Etwas Wichtiges fehlt bei dieser Studie, nämlich die Unterscheidung hinsichtlich Bundesländern und Lehrplänen beziehungsweise Fächern. Man sollte doch meinen, dass das Fach Informatik oder Informationstechnologie in der Schule einen Unterschied macht. Oder ist es am Ende gar kontraproduktiv, wie die Nutzung in anderen Fächern anzudeuten scheint?

In Bayern gibt es am Gymnasium für jeden Schüler Informatik in der 6. und 7. Jahrgangsstufe; an der Realschule gibt es Pflichtmodule in Informationstechnologie. Dazu gehören jeweils Textverarbeitung und Präsentationssoftware, Aufbau des Web, Suchen darin, und Erstellen vernetzter Dokumente.
An der Realschule gibt es ja nach Zweig weitere Wahlmodule; am Gymnasium gibt es – aber nur im naturwissenschaftlich-technologischen Zweig – Informatik verpflichtend in der 9. und 10. Jahrgangsstufe, optional bis zum Abitur.

Am letzten Elternsprechabend beklagte eine Schülermutter, dass die Schüler des sprachlichen Zweigs benachteiligt seien – von denen forderte man auch den Umgang mit Moodle, und die hätten doch keine Informatik nach der 7. Klasse mehr gehabt. Ob es da nicht doch eine Möglichkeit gebe.

Stellt sich heraus: Es gibt. In der Kursphase der Oberstufe, also den letzten beiden Jahren vor dem Abitur, können Schulen einen Kurs “Angewandte Informatik” anbieten, zumindest in der 11. Jahrgangsstufe, mit Lehrplan und Klausuren. Der Lehrplan entspricht so ziemlich dem der 9. Jahrgangsstufe am naturwissenschaftlich-technologischen Zweig, deshalb dürfen dessen Schüler den Kurs auch nicht belegen.
Außerdem können Schulen einen Kurs “Informationstechnologie” anbieten. Darüber habe ich bisher gar nichts gefunden, habe aber schon mal nachgefragt. Irgendwann, wenn es genug Informatiklehrer gibt, kann man sich ja vielleicht auch daran machen.

Nachtrag: “Informationstechnologie” ist ein Kurs ohne Lehrplan; vor Kursbeginn wird der Schulleitung eine Lehrplanskizze vorlegt mit Informationen über die Ziele, den Lehrstoff, seine Verteilung über die Ausbildungsabschnitte, die vorgesehenen Hilfsmittel und die Leistungskontrollen. Das kann die Schulleitung dann genehmigen. – Ich fürchte nur, dass an den meisten Schulen gerade mal ein regulärer Informatikkurs stattfinden kann; aus der meist kleinen Anzahl von Schülern aus dem sprachlichem Zweig werden sich wohl nicht genug Interessierte finden.

Standard
Informatik

Frauenanteil in der Informatik

Vor drei Wochen machte dieser Radiobeitrag von NPR die Runde, When Women Stopped Coding. Kern des Beitrags ist diese Grafik, die den Frauenanteil in medizinischen, juristischen, naturwissenschaftlichen Studiengängen im Verlauf der Jahre darstellt:

informatik_frauenanteil_usa

Man fragt sich: Was ist Anfang der 1980er Jahre passiert, dass der Anteil der Frauen – anders als in den anderen Studiengängen – plötzlich wieder gesunken ist? Die Antwort, die der Radiobeitrag gibt, lautet: Heimcomputer. Vorher waren Rechner eine Sache für Firmen; mit dem Aufkommen der Heimcomputer wurden sie zu etwas, das man zu Hause haben konnte – genauer gesagt: zu einem Spielzeug für Jungs. Und damit waren die Mädchen draußen. Als Beispiele dafür, dass das Spielzeug als Jungs-Spielzeug beworben wird, werden ein paar Werbespots zitiert; ich habe bei Youtube gesucht, welche davon zu finden sind, und kann diese zwei hier anbieten:

(Andere Spots aus der Zeit, die nicht so sehr zur Theorie passen, unterschlage ich hier mal.)

Tatsache ist, dass der Frauenanteil in der IT gering ist. Das gilt für IT-Berufe in Deutschland:

informatik_frauenanteil_berufe

2011 und 2012 lag der Anteil der Frauen, die in IT-Berufe einsteigen, bei 7,5%. Für Studiengänge sieht das ähnlich aus – der Frauenanteil ist allerdings im Steigen begriffen und liegt bei gut 22%, also dem höchsten Wert seit 1977.

informatik_frauenanteil_erstsemester

(Quelle für beide Grafiken)

Für den Anteil an Frauen, die in der Oberstufe am bayerischen Gymnasium Informatik wählen, habe ich leider keine Zahlen; in den Kursen der letzten Jahre waren es zwischen 15% und 25%.


Bleiben für mich drei Fragen:

  1. Warum ist der Frauenanteil – in der Schule, im Beruf – so gering?
  2. Ist das ein Zustand, den zu ändern sich die Gesellschaft bemühen sollte?
  3. Wenn ja, was kann man da machen?

Gute Antworten habe ich auf keine der Fragen. Zumindest will ich aber ein Argument entkräften, dem man gelegentlich begegnet: “Vielleicht wollen die Frauen einfach nichts mit Computern zu tun haben. Es soll doch jeder machen können, was er will, und zu nichts gezwungen werden.”

Klar soll jeder einzelne frei entscheiden können. Aber die Entscheidungen des einzelnen kommen ja nicht aus der Luft, sondern haben eine Vorgeschichte, und die Entscheidungen einer großen Gruppe von Menschen lassen sich an anderen Faktoren festmachen. Ich stelle mir ein gesellschaftliches System wie ein kompliziertes SimCity vor, eine Simulation einer Stadt, mit vielen Knöpfen und Drehreglern:

informatik_frauenanteil_sim

Links unten ist der Frauenanteil in der IT-Branche angegeben. Egal wie groß der ist, er hängt von den Einstellungen der verschiedenen Drehregler ab. Und ja, natürlich basiert der Anteil auf der Menge vieler freier Einzelentscheidungen. Und doch: Wenn man an den Regler im Spiel dreht, ändern sich viele andere Einstellungen, unter anderem auch der Frauenanteil in der IT. Es gibt keinen naturgegebenen Frauenanteil. “Lasst doch die Frauen und Männer machen, was sie wollen” stimmt schon, beantwortet aber nicht die Frage, ob die aktuellen Reglereinstellungen optimal sind oder nicht.

Zugegeben: Nicht alles lässt sich gesellschaftlich regeln. Es gibt Konstanten, die sich nicht ändern lassen. Das ist dann das Biologische. Aber das spielt wohl eine geringe Rolle gegenüber gesellschaftlichen Faktoren – ich kann mir keinen plötzlich eintretenden biologischen Faktor vorstellen, der Anfang der 1980er Jahre dazu geführt haben könnte, dass Frauen nicht mehr IT studieren.

(Ein weiteres Argument von sehr begrenztem Wert ist die Frage, ob es denn nichts Wichtigeres gebe. Gibt es, klar, aber das ist irrelevant.)

1. Warum ist der Frauenanteil – in der Schule, im Beruf – so gering?

Die kurze Antwort: Weil so wenige Frauen in die IT wollen. Die lange Antwort würde erklären, warum so wenige wollen. Das liegt ja an den Systemeinstellungen, wie in meinem SimCity-Beispiel. Und da habe ich allenfalls nur Vermutungen. Mit der Schule hat das ein bisschen was zu tun, aber das meiste dürften außerschulische Faktoren sein: Fehlende Vorbilder, traditionelle Rollenmodelle, Software von Männern für Männer.

2. Ist das ein Zustand, den zu ändern sich die Gesellschaft bemühen sollte?

Ja. Wenn Informatik allgemeinbildend ist und ihre Inhalte allgegenwärtig sind, und das behaupte ich mal, dann sollte man nicht einen Großteil der Bevölkerung davon ausschließen beziehungsweise sich ausschließen lassen.
Vorteile für die Welt der Softwareentwicklung: Ob gemischte Teams produktiver sind oder ob Frauen mehr Sozialkompetenz in die Firmen bringen, weiß ich nicht, da bin ich skeptisch. Grundsätzlich ist Vielfalt aber vermutlich ein Vorteil, weil sie neue Gesichtspunkte einbringt, wie auch immer die genau aussehen.
Zu Gamergate sag ich jetzt mal nichts, weil ich das nur am Rande mitkriege und ich nicht weiß, wie da szu meinem Thema passt.

3. Wenn ja, was kann man da machen?

Im Informatikunterricht nicht viel. Ein Pflichtfach Informatik einführen, wie es Bayern ja schon teilweise gemacht hat. Geeignete Themen wählen, auch wenn das nicht heißt, dass Mädchen keine Fußballfelder zeichnen sollen, sondern Puppenstuben… sagen wir: man sollte sich als Informatiklehrer essen bewusst sein, dass die Mädchen gefördert werden müssen. Wie man das macht, hängt vom Einzelfall ab. Ich bin ja schon froh, wenn die Prämisse, dass man die Mädchen nicht ausschließen soll, akzeptiert wird.

Bleibt die Frage, was das optimale Ergebnis ist. Wenn jeder Mensch sich frei für das entscheiden kann, was er will, klar – aber ganz frei sind diese Entscheidungen ja nicht. Müssen es 50% Frauen in der Informatik sein? Was tun eigentlich die Sprachen mit eine deutlich höheren Frauenanteil, müssen die sich anstrengen, Männer anzuwerben??

Ältere Blogeinträge dazu:

Standard
Informatik

Schleifchenmachen

In der 7. Klasse lernen die Schüler am bayerischen Gymnasium Algorithmik “mit einem Programmiersystem, mit dem sie die Algorithmen intuitiv umsetzen können und bei dem die Einzelschritte des Ablaufs altersgemäß visualisiert werden” (Lehrplan). Das heißt in der Regel: Robot Karol, das virtuelle Legomännchen. Es kann Ziegelsteine vor sich ablegen und aufnehmen, kann sich nach links und rechts drehen und einen Schritt nach vorne machen. Aus diesen Anweisungen bastelt man sich ein Programm.

Wenn man dabei überlegt vorgeht, schreibt man beispielsweise nicht:

schritt()
linksdrehen()
schritt()
linksdrehen()
schritt()
linksdrehen()

sondern:

wiederhole 3 mal
  schritt()
  linksdrehen()
*wiederhole

weil man erkannt hat, dass da eine gewisse Struktur in der Abfolge von Anweisungen ist.
Am Anfang neigen Schüler allerdings dazu, auf dieses “wiederhole” zu verzichten und einfach draufloszuschreiben. Deswegen gebe ich bei Aufgaben gerne mal vor, in wieviel Zeilen sie lösbar sind, in der Hoffnung, dass die Schüler versuchenn, meine Vorgabe zu erreichen – oder bei manchen Aufgaben auch schon mal zu unterbieten, wenn ihnen noch ein kürzerer Weg eingefallen ist.

robot_karola_aufgaben

Gestern habe ich ein Übungsprogramm dazu konstruiert, bei dem allerdings gar nichts altersgemäß visualisiert wird. Man gibt ein, welche Anweisungen es geben soll, wie viel Verschachtelungen von Schleifen es maximal geben soll, und dann erzeugt das Programm zum Beispiel:

schritt()
linksdrehen()
schritt()
linksdrehen()
schritt()
linksdrehen()

Selber muss man das dann kürzer fassen, wenn es geht, und vergleicht dann mit der Antwort. Hier als Java-Programm in einer ersten Version:

Weiterlesen

Standard
Informatik

Verschlüsselung auf Zeit

Vor ein paar Wochen stellte Klaus Schmeh in Klausis Krypto Kolumne ein Time-Lock-Verschlüsselungsverfahren vor. Um das Prinzip richtig zu begreifen, habe ich das alles nachprogrammiert, und wenn ich mir so viel Mühe mache, dann soll auch ein Blogeintrag dabei herauskommen. Ich bin kein Mathematiker oder Kryptologe und es ist nicht unwahrscheinlich, dass ich irgendwo Fehler drin habe; über Berichtigungen freue ich mich.

1. Wie man mit einem One-Time-Pad verschlüsselt

Cäsarische Schlüssel

Man verschiebt bei diesem Verfahren den Klartext zum Beispiel um eins nach rechts im Alphabet. Aus A wird B, aus B wird C, aus Z wird wieder A. So wird HALLO zu IBMMP.

Natürlich kann man auch um zwei nach rechts verschieben, dann wird aus HALLO: JCNNQ.
Es gibt, wenn wir von 26 Buchstaben ausgehen, 26 solche Cäsarsischen Schlüssel, einschließlich der Verschiebung um 0. Man sagt auch, der A-Schlüssel verschiebt um 0 (weil A zu A wird), der B-Schlüssel um 1 (weil A zu B wird), der C-Schlüssel um 2 (weil A zu C wird), der Z-Schlüssel um 25 (weil A zu Z wird).

Diese einfache Verschlüsselung ist überhaupt nicht sicher. Der häufigste Buchstabe im Deutschen ist “e”, und der häufigste Buchstabe in dem derart verschlüsselten Text wird dann wohl dem “e” entsprechen, und das gilt für die restlichen Buchstaben ebenso.

Vigenère-Verschlüsselung

Sicherer ist das Verfahren, wenn man nicht jeden Buchstaben um den gleichen Wert verschiebt. Das geht am einfach mit einem geheimen Schlüsselwort, sagen wir: HALLO. Dabei entspricht H dem Cäsarischen H-Schlüssel, A dem A-Schlüssel, und so weiter. Man schreibt das Schlüsselwort wiederholt unter den Klartext und verschiebt dann den Buchstaben des Klartexts jeweils so, wie es dem entsprechenden Cäsar-Schlüssel darunter entspricht.

Klartext:  ICHBINGEHEIM
Schlüssel: HALLOHALLOHA
Geheim:    PCSMWUGPSSPM

Das ist schon schwerer zu knacken, aber auch lösbar. Wenn man erst einmal herausgefunden hat, wie lang das Schlüsselwort ist, geht das dann wie oben durch Häufigkeitsanalyse.

Das One-Time-Pad

Ganz sicher, und prinzipiell nicht zu knacken, ist diese Art der Verschlüsselung dann, wenn das Schlüsselwort genau so lang wie der Klartext ist, oder auch noch länger. Außerdem muss es aus wirklich zufälligen Zeichen bestehen, darf also sicher kein Wort oder Text der deutschen Sprache sein, und darf natürlich nur ein einziges Mal benutzt werden. Für die nächste Nachricht reißt man dann den nächsten langen Schlüssel von seinem Block.
Dann heißt das Verfahren “One-Time-Pad”. Das Problem ist dabei nur, wie bei allen symmetrischen Verschlüsselungsverfahren, dass Sender und Empfänger beide über das gleiche One-Time-Pad verfügen müssen, das auf einem sicheren Weg übermittelt werden muss und nicht abgefangen werden darf.

2. Das gleiche nochmal mit Zahlen

Eigentlich machen sie eh alles mit Zahlen und sind nur so nett, diese Zahlen für uns als Buchstaben oder Grafiken auf dem Bildschirm darzustellen. Nach einem standardisierten Codierungsverfahren entspricht dem Buchstaben “H” etwa die Zahl 72. Und die Zahl 72 wird intern im Computer im Binärsystem als 1001000 dargestellt (8 bit lang) – für Menschen etwas übersichtlicher ist die Darstellung im Hexadezimalsystem als 48.

Das Wort HALLO in verschiedenen Darstellungsformen:

(1) Text:        H  A  L  L  O
(2) Dezimal:     72 65 76 76 79
(3) Hexadezimal: 48 41 4c 4c 4f
(4) Binär:       1001000 1000001 1001100 1001100 1001111

Dabei ist (1) das für den Menschen am leichtesten lesbar und (4) das für den Computer am leichtesten. Man trifft sich oft in der Mitte bei (3) – dabei entsprechen den 8 einzelnen bit im Binärsystem jeweils zwei Ziffern im Hexadezimalsystem (wo es 16 Ziffern gibt, 0-9 und A-F).

Der Klartext ICHBINGEHEIM sieht dann so aus:

Klartext:       I  C  H  B  I  N  G  E  H  E  I  M 
Klartext (hex): 49 43 48 42 49 4e 47 45 48 45 49 4d

Das Ver- und Entschlüsseln läuft über Zahlen, also eigentlich über das Binärsystem, aber lesbarer ist das im Hexadezimalsystem. Da sieht die Verschlüsselung mit einem Schlüsselwort, das mindestens so lang ist wie der Klartext (also einem One-Time-Pad entspricht), so aus: Der Klartext wird erst in Zahlen umgewandelt, dann wird das Schlüsselwort – ebenfalls eine Zahl – darauf angewendet, und die entstandene Zahl ist dann der Geheimtext:

Klartext:       I  C  H  B  I  N  G  E  H  E  I  M 
Klartext (hex): 49 43 48 42 49 4e 47 45 48 45 49 4d
Schlüsselwort:  43 c2 43 47 33 32 c1 1f 5d c9 39 e2
Geheimtext:     0a 81 0b 05 7a 7c 86 5a 15 8c 70 af

Dabei funktioniert das Verschieben über die XOR-Funktion. Schauen wir uns das erste I an: Aus dem Klartext 49 wird unter Anwendung des Schlüssels 43 der Geheimtext 0a. Binär ausgedrückt:

    1001001 ("I" binär)
    1000011 (Schlüssel binär)
-----------
    0001010 (Ergebnis der XOR-Funktion, entspricht 0a hexadezimal)

Die XOR-Funktion ist hier wie eine Addition ohne Übertrag: Aus 1 und 1 wird 0, aus 0 und 0 ebenso; aus 1 und 0 (oder 0 und 1) wird 1.

Zusammengefasst:
Klartext => Umwandlung in Zahl => XOR-Verechnung mit Schlüsselzahl (ensteht: Geheimtext als Zahl)

Die Entschlüsselung läuft dann einfach rückwärts ab:
Geheimtext als Zahl => XOR-Verechnung mit Schlüsselzahl => Umwandlung in Text (entsteht: Klartext)

3. Das Time-Lock-Puzzle

Die Aufgabe

Ron Rivest verschlüsselte 1999 einen Text, dessen Entschlüssselung prinzipiell lösbar ist, die aber 35 Jahre kontinuierlicher Berechnung braucht, die nach dem Mooreschen Gesetz (Wikipedia) zu erwartenden Fortschritte im Bereich der Computerentwicklung inbegriffen. Man kann mit dem Verfahren im Prinzip einstellen, wie lange die Entschlüsselung eines Textes dauern soll. (Hier ist der ursprüngliche Beitrag von Ron Rivest, in dem dieser das Rätsel erklärt und Java-Code zu Erzeugen ähnlicher Aufgaben zur Verfügung stellt.)
So ein Time-Lock-Rätsel ist also quasi das genaue Gegenteil des in Agentenkreisen beliebten “Diese Nachricht zerstört sich in nach einer festgelegten Zeitspanne selber”, nämlich ein: “Diese Nachricht wird in einer festgelegten Zeitspanne lesbar (wenn man fleißig rechnet)”.

Also: Gegeben ist der verschlüsselte Geheimtext, als Zahl, so wie oben gezeigt. Gesucht ist das geheime Schlüsselwort, mindestens so lang wie der Klartext, siehe oben, ebenfalls als Zahl. Wenn man das Schlüsselwort gefunden hat, wendet man die XOR-Funktion auf die beiden Zahlen an und wandelt das Ergebnis in Text um (nach dem ASCII-Standard, der bestimmt, welche Zahl welchem Buchstaben entspricht).

Das Schlüsselwort ist allerdings keine beliebige, völlig zufällige Zahl, wie das bei einer echten Einmalverschlüsselung der Fall wäre. Sondern man erhält Hinweise, wie man die Schlüsselwort-Zahl berechnen kann, nur dass das eben 35 Jahre dauert, wenn man 1999 angefangen hätte. Diese Angaben bestehen aus einer Zahl t und einer Zahl n. Dann muss man nur berechnen:

w = 2^{(2^t)} \mod{n}

Dabei steht mod für “Modulo” und entspricht dem Rest, der bei der Teilung durch n übrig bleibt. Man muss also zuerst das vordere berechnen, dann durch n teilen, und der Rest, der bei der Teilung übrig bleibt, ist die gesuchte Zahl w – der Schlüssel.

Warum das 35 Jahre dauert

Wenn die Zahlen t und w klein sind, geht das Berechnen schnell. Sie müssen also schon groß sein. Und wenn die Zahlen bestimmte bekannte Eigenschaften haben, gibt es mathematische Abkürzungen, wie man das schnell lösen kann, auch wenn die Zahlen groß sind; dazu später mehr.
Allgemein ist das Problem: 2^{(2^t)} \ kann man mit dem Computer überhaupt nicht berechnen, wenn t einigermaßen groß ist. Irgendwann reicht der Speicherplatz nicht mehr aus, um die Zahl überhaupt nur zu speichern.
Aber uns geht es ja auch nicht um 2^{(2^t)} \, sondern um 2^{(2^t)}\mod{n} – und das lässt sich sehr wohl berechnen. Man rechnet 2 * 2 * 2 * 2… und zwischendrin immer wieder mal modulo n. So wird die Zahl, mit der der Computer arbeitet, nie größer als 2*n. Allerdings muss der Computer das wieder und wieder und wieder machen, es geht um 2t-1 Multiplikationsvorgänge jeweils gefolgt von einer Modulo-Division – bei den enstprechenden Werten von n und t eben 35 Jahre lang.

In der Originalaufgabe von Rivest werden übrigens folgende Werte verwendet:

n = 631446608307288889379935712613129233236329881833084137558899
    077270195712892488554730844605575320651361834662884894808866
    350036848039658817136198766052189726781016228055747539383830
    826175971321892666861177695452639157012069093997368008972127
    446466642331918780683055206795125307008202024124623398241073
    775370512734449416950118097524189066796385875485631980550727
    370990439711973361466670154390536015254337398252457931357531
    765364633198906465140213398526580034199190398219284471021246
    488745938885358207031808428902320971090703239693491996277899
    532332018406452247646396635593736700936921275809208629319872
    7008292431243681

t = 79685186856218

Damit gilt es, folgenden Geheimtext zu entschlüsseln (hier in Dezimalschreibweise, nicht hexadezimal):

z = 427338526681239414707099486152541907807623930474842759553127
    699575212802021361367225451651600353733949495680760238284875
    258690199022379638588291839885522498545851997481849074579523
    880422628363751913235562086585480775061024927773968205036369
    669785002263076319003533000450157772067087172252728016627835
    400463807389033342175518988780339070669313124967596962087173
    533318107116757443584187074039849389081123568362582652760250
    029401090870231288509578454981440888629750522601069337564316
    940360631375375394366442662022050529545706707758321979377282
    989361374561414204719371297211725179287931039547753581030226
    7611143659071382

Man berechnet w, wendet dann die XOR-Funktion auf w und z an, wandelt die entstandene Zahl in eine Hexadezimalzahl um und diese wiederum nach dem ASCII-Standard in Text, wo jeweils zwei Hexadezimalziffern einen Buchstaben ergeben.

Das Verschlüsseln und der Trick bei der Sache

Die Verschlüsselung funktioniert dann, wenn n das Produkt zweier (sinnvollerweise: hoher) Primzahlen p und q ist. Wer den verschlüsselten Text erstellt, wählt zwei hohe Primzahlen aus, multipliziert die, um n zu erhalten, berechnet dann w und verschlüsselt den Klartext damit. Dann gibt er sowohl den Geheimtext als auch n und t weiter.

Aber Moment – es geht doch gerade darum, dass der Schlüssel

w = 2^{(2^t)} \mod{n}

so schwer zu berechnen ist. Wie macht man das dann beim Verschlüsseln, da braucht man den Schlüssel doch auch? Wie gesagt: wenn n das Produkt zweier (hoher) Primzahlen p und q ist, dann lässt sich Formel für w auch so schreiben:

w = 2^{(2^t\mod{(p-1)(q-1))}} \mod{pq}

(Das ist so wegen Mathematik und ich muss es erst mal glauben.)

Und während die erste Formel schwer zu berechnen ist, weil entweder die Zahlen zu hoch werden oder 2t Schritte dafür nötig sind, ist die zweite Formel für den Computer ein Klacks. (Allerdings: Völlig trivial ist das Werkeln mit so hohen Zahlen auch nicht; glücklicherweise bringt Java die entsprechenden Funktionen dafür gleich mit.)
Das heißt, wenn man die beiden Faktoren p und q weiß, aus denen n zusammengesetzt ist, dann lässt sich w leicht berechnen. Sonst nicht.

Mögliche Abkürzungen

1. Kann man das abkürzen, indem man mehrere Rechner oder Prozessoren parallel daran arbeiten lässt?

Nein. Man muss das wirklich der Reihe nach berechnen.
Aus Rivests Beispiel (mit n = 11 * 23 = 254 und t = 10):

              2^(2^1) = 2^2 = 4 (mod 253)
              2^(2^2) = 4^2 = 16 (mod 253)
              2^(2^3) = 16^2 = 3 (mod 253)
              2^(2^4) = 3^2 = 9 (mod 253)
              2^(2^5) = 9^2 = 81 (mod 253)
              2^(2^6) = 81^2 = 236 (mod 253)
              2^(2^7) = 236^2 = 36 (mod 253)
              2^(2^8) = 36^2 = 31 (mod 253)
              2^(2^9) = 31^2 = 202 (mod 253)
w = 2^(2^t) = 2^(2^10) = 202^2 = 71 (mod 253)

Da kann einem kein anderer Rechner einen nennenswerten Teil der Arbeit abnehmen.

2. Könnte man nicht einfach n faktorisieren, also p und q herausfinden?

In dem Fall könnte man die schnellere Formel verwenden, ja. Aber diese Faktorisierung ist schwieriger, als man denkt, wenn es um eine Zahl geht, die das Produkt zweier hoher Primzahlen ist. Die Zerlegung einer solche Zahl mit 200 Dezimalstellen dauerte vor zehn Jahren noch anderthalb Jahre, achtzig Rechner waren daran beteiligt (Wikipedia). Die Faktorisierung einer Zahl mit 616 Stellen (so viele hat das n in Rivests ursprünglichem Rätsel oben) ist zur Zeit noch nicht möglich; die Zahl ist ungefähr 2048 bit lang und damit noch auf einige Jahre sicher – die Bundesnetzagentur empfiehlt noch bis zum Jahr 2020 Schlüssel der Länge 2048 bit, in Zukunft werden aber wohl 3000 bit verlangt werden (Wikipedia).

Und wenn irgendwann mal Quantencomputer mit großem Speicher kommen sollten, sieht das alles nochmal ganz anders aus, aber davon verstehe ich zu wenig.

(Anhang: BlueJ-Projekt zum Spielen, als Ergänzung zu Rivests eigenem Javacode, siehe oben.)

Standard