VBA am Beispiel zur Kryptologie


Kenntnisse der VBA-Programmierung erweitert man am besten anhand sinnvoller und nachvollziehbarer Aufgabenstellungen.
Anhand eines aus mehreren Teilen aufgebauten Fallbeispiels zur Verschlüsselung lernt man Kontrollstrukturen, Objekte und interessante Funktionen kennen:

  • die Kontrollstrukturen für verschiedene Schleifen und Fallunterscheidungen
  • die Excel-Objekte Application, Workbook, Sheet und Cell erklären sich im Kontext
  • die Ein- und Ausgabeanweisungen für Textdateien sind offensichtlich
  • die Funktionen zur Zerlegung von Zeichenketten in einzelne Zellen
    und deren Umwandlung in Zahlen zu denen Zufallszahlen aus anderen Arbeitsmappen addiert und subtrahiert werden um zu verschlüsseln bzw. zu entschlüsseln.

VBA-Grundkenntnisse sind notwendig

Wer alles gedanklich noch einmal nachvollziehen möchte, sollte mindestens 20 Stunden einkalkulieren, wenn die Programmierung mit VBA schon bekannt ist. VBA-Neulinge werden ein Vielfaches davon benötigen.


Der Code ist komplett offengelegt und kommentiert. Daher ist das Verständnis des Zusammenspiels zunächst eine Fleißarbeit. Interessanter wird es, wenn man die Ideen weiterentwickelt und sich aktiv an dieser Plattform beteiligt.

Eine verlockende Idee für Verschlüsselungen von Text könnte die Verwendung von frei im Internet zugänglicher fremdsprachlicher Literatur sein. Wenn man z.B. jedes 3. Zeichen der Kalevala Sage in finnischer Sprache ab einer bestimmten Seite nimmt und die Umwandlung des Codes von jedem 3. oder 5. Buchstaben mit vereinbarten Funktionen verändert, dürfte es schwer sein, die Abfolge der aus Botschaft und Fremdtext gebildeten Zahlen zu knacken. Man benötigt kein gemeinsames Codebuch an beiden Enden der Verbindung sondern nur einen Hinweis zum Auffinden des Schlüssels innerhalb der Milliarden von weltweit verfügbaren Textseiten.
Das ist ein Projekt, welches umgesetzt wird, wenn sich Mitstreiter finden.

Zum Einstieg reicht ein selbst generiertes Codebuch mit Zufallszahlen zur Erzeugung unlesbarer Botschaften. Mit VBA und Excel werden Klartext und Codebuch beim Vorgang des Verschlüsselns zusammengebracht. Das Entschlüsseln entfernt die Zahlen aus dem Codebuch wieder vom übertragenen Zahlensalat, so das der Klartext erscheint.

Die in den Videos gezeigten Excel-Dateien stehen zum Download bereit.
Die Intro-Datei ist eine Excel-Arbeitsmappe:
KonradVerschlüsselung-Intro

Mit den folgenden Links können Sie Excel-Binärarbeitsmappen (.xlsb) herunterladen. Die Binärarbeitsmappen enthalten  enthalten Makros bzw. VBA und werden bei einigen Browsereinstellungen möglicherweise Warnungen erzeugen:
KonradsCodebuchGenerator
KonradsVerschluesselung
KonradsEntschluesselung

Die Grundlagen der Programmierung mit VBA werden von Microsoft bereitgestellt:

Erste Schritte mit VBA in Excel 2010

Das Codebuch

Das Codebuch ist ein Betriebsgeheimnis. Es macht man aus einem lesbaren Text eine geheime Botschaft, die für Dritte unlesbar ist.

Botschaft + Geheimnis = Geheime Botschaft

In den beiden Videos dieses Abschnitts wird erklärt, wie Codebücher mit Excel erstellt werden können.
Das 1. Video dient der Einleitung und der Erstellung eines Anwender-freundlichen Dialoges.

Das 2. Video erklärt alle Schritte der Programmierung. Unter den Videos finden Sie den Link zum Quellcode.

Quellcode zum 2. Video mit eingefügten Kommentaren

Die Verschlüsselung

Geheime Botschaft = Botschaft + Geheimnis

Die Entschlüsselung

Botschaft = Geheime Botschaft – Geheimnis

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.