Blog

Neuigkeiten, Infos & Inspiration

SmartNinja-Student/Innen konkurrierten um die Entwicklung der besten Verschlüsselungssoftware. Wer gewann?

SmartNinja-Student/Innen konkurrierten um die Entwicklung der besten Verschlüsselungssoftware. Wer gewann?

13.07.2020 Smart Ninja

Alle ein bis zwei Monate organisieren wir eine SmartNinja Challenge, bei welcher unsere StudentInnen/KursteilnehmerInnen um die Erstellung der besten Softwareprojekte konkurrieren können.

Für die Mai/Juni 2020 Challenge, müssten die TeilnehmerInnen ein Desktop Programm oder eine Web Applikation, für die Verwendung von Caesar-Verschlüsselung erstellen.

Caesar-Verschlüsselung? Was ist das?

Caesar-Verschlüsselung ist eine sehr einfache Methode zum Verschlüsseln von Daten. Es wurde vom berühmten römischen Kaiser Julius Caesar benannt, der diese Methode angewendet hat um zu verhindern, dass unerwünschte Augen seine Botschaften lesen.

Heutzutage ist diese Methode zum Verschlüsseln von Daten veraltet und unsicher aber damals (als nur wenige Menschen einen Text lesen oder gar entschlüsseln konnten) war sie eine sehr effektive Methode.

Möglicherweise haben Sie Caesars Chiffre verwendet als Sie in der Schule waren und Ihren Klassenkameraden Notizen in Papierform geschrieben haben. Um zu verhindern das andere Klassenkameraden Ihre Notiz lesen, haben Sie wahrscheinlich Caesars Chiffre verwendet - ohne zu wissen, dass Sie eine über 2000 Jahre alte Methode angewendet haben!

Wie funktioniert Caesar-Verschlüsselung?

Angenommen wir möchten diesen Text verschlüsseln: "Hallo"

Um den Text zu verschlüsseln, werden wir die Buchstaben des Wortes um eine bestimmte Zahl verschieben, sagen wir um 3 Stellen. Dies bedeutet, dass wir das gesamte Alphabet um drei Stellen drehen.

In diesem Fall wird A zu D, B wird zu E, C wird zu F usw. (zumindest im englischen Alphabet):

So wird unsere Nachricht "Hallo" zu "Kdoor".

Der Empfänger unserer Nachricht muss die Nummer kennen, um die wir das Alphabet verschoben haben (in unserem Fall 3). Diese Informationen müssen jedoch geheim bleiben, nur der Absender und der Empfänger sollten sie kennen. Deshalb nennen wir diese Informationen einen geheimen Schlüssel.

Mit einem so grundlegenden Verschlüsselungsalgorithmus wie Caesars Chiffre, könnte natürlich jeder einfach alle möglichen Kombinationen ausprobieren und herausfinden, was die geheime Nachricht ist. Diese Art von "Angriff" auf die Chiffre wird als "Brute Force" -Angriff bezeichnet (weil wir alle möglichen Kombinationen ausprobieren).

Die Herausforderung

Die Herausforderung die unsere StudentInnen erfüllen mussten, bestand darin ein Programm zu erstellen, das die Verschlüsselung von Caesar für uns übernimmt (damit wir es nicht manuell tun müssen).

Das Programm konnte entweder ein Desktop-Programm oder eine Webanwendung sein.

Zusätzliche Anforderungen waren, dass das Programm in Python geschrieben werden musste (zumindest der Teil, der den eigentlichen Caesar-Verschlüsselungsalgorithmus implementiert)und die TeilnehmerInnen mussten den Algorithmus selbst schreiben.

Kein Programmierpaket (ein vorab geschriebener Codeabschnitt) durfte verwenden werden, welches den Verschlüsselungs-/ Entschlüsselungsteil ausführen würde. Des Weiteren musste das Programm über eine grafische Benutzeroberfläche (GUI) verfügen.

Wer gewann?

Zwei Schüler erzielten die beste Punktzahl und gewannen den Wettbewerb: Beno und Jaka. Herzlichen Glückwunsch!

Beno

Beno besuchte unseren Kurs Programmieren für AnfängerInnen, in dem er lernte, wie man die Programmiersprache Python verwendet und Desktop-Anwendungen erstellt.

Er entwickelte ein Desktop-Programm und verwendete Tkinter für die grafische Benutzeroberfläche.

Der geheime Schlüssel (Nummer) wird mit einem Schieberegler ausgewählt. Wenn Sie den Schieberegler bewegen, bewegt sich die rote Buchstabenzeile ebenfalls in Echtzeit, sodass Sie einen schönen Überblick über die Konvertierung von Buchstaben erhalten.

Durch Klicken auf das Kontrollkästchen Benigma können Sie den gesamten Vorgang zurücksetzen. Anstatt zu verschlüsseln, startet das Programm das Entschlüsseln einer Nachricht.

Der Code von Benos Lösung ist verfügbar hier auf GitHub.

Jaka

Jaka hat zwei unserer Kurse besucht: Web Development 1 und Web Development 2. Er hat anstelle eines Desktop-Programms eine Webanwendung erstellt.

Seine Web-App verwendet ein beliebtes Python-Framework namens Flask. Für die Kommunikation zwischen Backend und Frontend verwendete Jaka JavaScript.

Die Benutzeroberfläche wurde mit Hilfe von HTML und CSS erstellt, und die Website kann sich gut an mobile Bildschirme anpassen (Responsive Design).

Jakas Code ist auf seinem GitHub-Konto zugänglich und die Web-App läuft auf Heroku-Webservern.

Herzlichen Glückwunsch!

Wir gratulieren beiden Gewinnern ganz herzlich. Ihr habt tolle Arbeit geleistet! 🎉 Wir sind gespannt auf die weiteren SmartNinja Challenges und spannenden Ergebnisse. Bleibt am Laufenden hier auf unserem GitHub-Konto 🤓

challenge kryptographie

Entdecke unsere neuesten Coding Kurse

Web Development 1 (online)

Web Development 1 (online)

beliebiger Ort 17.08.2020

Im Web Development Kurs lernst du Websites und Web-Anwendungen zu entwickeln. Im Frontend mit HTML & CSS und im Backend mit Python.

Ab 899,00 EUR

Anmelden
SQL und Datenbanken (Online)

SQL und Datenbanken (Online)

beliebiger Ort 24.08.2020

Eine Datenbank zu planen und aufzubauen ist eines der wichtigsten Skills wenn du ein IT-Produkt erstellst. Melde dich jetzt an und lerne es!

Ab 299,00 EUR

Anmelden

Melde dich für den SmartNinja Newsletter an!