Studierende gesucht – Diplom- / Master-Arbeit – Integration von Sunset/FFapl in JCrypTool

Integration von Sunset/FFapl in JCrypTool

JCrypTool (https://www.cryptool.org/de/jcryptool) ist ein modernes, mächtiges und leicht erlernbares eLearning Werkzeug für das (Selbst-)Studium von Kryptographie. Das System ist plugin-basiert, und bietet per Menü Zugriff auf eine Vielzahl kryptographischer Algorithmen, deren Funktionsweise und Verhalten schnell und leicht anhand eigener Beispiele untersucht und verstanden werden kann.

Sunset/FFapl[1] ist eine integrierte Entwicklungsumgebung, welche der schnellen Implementierung von kryptographischen Basismechanismen dient. Hierfür wurde die Programmiersprache „FFapl“ (Finite Field Application Language) geschaffen, welche kryptographisch relevante Strukuren (Restklassengruppen, Ringe, endliche Körper) als first-class Datentypen unterstützt, wodurch der sonst übliche Rückgriff auf Bibliotheken hinfällig wird. Die Manipulation von Daten geschieht unabhängig vom Typ in der gewohnten Infix-Notation (etwa Division in endlichen Körpern, Addition von Punkten auf elliptischen Kurven[2], o.ä.).

Funktionalitäten der Erweiterung im Einzelnen:

  • Einbindung des Sunset/FFapl Skript-Interpreters in JCrypTool
  • Konzeptionierung und Implementierung von Ein- und Ausgabefunktionen für Benutzer/innen Eingaben.

Das Sunset/FFapl System ist unter GPL-3 lizensiert und frei verfügbar in github[3]. Die Aufgabenstellung besteht primär in der Integration des Skript-Interpreters für FFapl in JCrypTool; eine Integration von „Sunset“ als Entwicklungsumgebung für die FFapl Sprache ist nach Maßgabe der Möglichkeiten möglich.

Der Kreativität sind keine Grenzen gesetzt. Der/m Studierenden steht es nach Absprache mit dem Betreuer frei, das Funktionen-Repertoire der Software ggf. zu erweitern. Das Projekt ist in enger Kooperation mit der JCrypTool Community abzuwickeln, d.h. der ständige Kontakt und Austausch mit der Community (insbes. Prof. Dr. Bernhard Esslinger, Universität Siegen) ist ausdrücklich erwünscht; die Betreuung der Master-Arbeit an der Universität Klagenfurt übernimmt Prof. Dr. Stefan Rass.

Projektverlauf und Aufgaben:

  • Einarbeitung in JCrypTool und Sunset/FFapl
  • Konzeption der Software und Erweiterungen
  • Implementierung, Beschreibung und Tests

Rahmenbedingungen:

  • Projektstart: Ab sofort!
  • Projektende: 6-8 Monate nach Beginn (excl. Einarbeitungszeit)

Voraussetzungen:

  • Ausgezeichnete Kenntnisse der Programmiersprache Java
  • (programmiertechnische) Kreativität

Ansprechpartner und Betreuer:

Literatur

  • O. Ortner: Eine Umgebung zum vereinfachten Prototyping von Krypto-Verfahren, Master-Arbeit, Universität Klagenfurt, 2012.
  • Rass, J. Winkler: Computer Aided Teaching of Elliptic Curve Cryptography, Proc. of the 17th Int. Conference on Interactive Collaborative Learning, ICL2014, ISBN 978-1-4799-4438-5, pp. 180-175.
  • Sunset/FFapl github repository: https://github.com/stefan-rass/sunset-ffapl

 

Studierende gesucht – Diplom- / Master-Arbeit – Verifiable Secret Sharing in JCrypTool

Verifiable Secret Sharing in JCrypTool

JCrypTool (https://www.cryptool.org/de/jcryptool) ist ein modernes, mächtiges und leicht erlernbares eLearning Werkzeug für das (Selbst-)Studium von Kryptographie. Das System ist plugin-basiert, und bietet per Menü Zugriff auf eine Vielzahl kryptographischer Algorithmen, deren Funktionsweise und Verhalten schnell und leicht anhand eigener Beispiele untersucht und verstanden werden kann.

Ziel der Master-Arbeit ist die Einbindung einer bestehenden Implementierung des verifiable Secret Sharing (VSS) Verfahrens von Gennaro, Rabin und Rabin, sowie den dafür benötigten Verfahren wie Committments in JCrypTool. Aufbauend auf der Implementierung[1] soll Nutzer/innen ermöglicht werden, einfache Multi-Party Computations (MPC) selbst zu implementieren, um deren Korrektheit und Sicherheit zu verfizieren. Aktuelle Angriffsmethoden auf Multi-Party Protokolle, insbesondere die sog. Chosen-Instruction Attack[2] (eine Form des Seitenkanal-Angriffs), sollen zu Demonstrations-zwecken in JCrypTool konzeptioniert und implementiert werden.

Funktionalitäten der Erweiterung im Einzelnen:

  • Einbindung von VSS in JCrypTool
  • Unterstützung von Multy-Party Computation
  • Konzept und ggf. Umsetzung von Chosen-Instruction Attacks auf MPC
  • Optional: Visualisierung für MPC.

Eine Java-Implementierung des VSS Verfahrens von Gennaro, Rabin und Rabin, einschließlich eines Skript-Interpreters für Multi-Party Computation existiert bereits[1], und soll in JCrypTool integriert werden. Die Aufgabenstellung umfasst daher sowohl einen integrativen Teil (bzgl. der Einbindung bestehender Systeme), als auch einen Teil selbstständiger Entwicklung (bzgl. der Simulation von Chosen-Instruction Side-Channel Angriffen).

Der Kreativität sind keine Grenzen gesetzt. Der/m Studierenden steht es nach Absprache mit dem Betreuer frei, das Funktionen-Repertoire der Software ggf. zu erweitern. Das Projekt ist in enger Kooperation mit der JCrypTool Community abzuwickeln, d.h. der ständige Kontakt und Austausch mit der Community (insbes. Prof. Dr. Bernhard Esslinger, Universität Siegen) ist ausdrücklich erwünscht; die Betreuung der Master-Arbeit an der Universität Klagenfurt übernimmt Prof. Dr. Stefan Rass.

Projektverlauf und Aufgaben:

  • Einarbeitung in JCrypTool und den VSS Prototyp[1]
  • Konzeption der Software und Erweiterungen
  • Implementierung, Beschreibung und Tests

Rahmenbedingungen:

  • Projektstart: Ab sofort!
  • Projektende: 6-8 Monate nach Beginn (excl. Einarbeitungszeit)

Voraussetzungen:

  • Ausgezeichnete Kenntnisse der Programmiersprache Java
  • Kenntnisse der Kryptographie (secret sharing und MPC)
  • (programmiertechnische) Kreativität

Ansprechpartner und Betreuer:

Literatur

  • Pachatz: Implementation and Security Analysis of Secret Sharing Protocols, Master-Arbeit, Universität Klagenfurt, 2018.
  • Rass, P. Schartner: On the Security of a Universal Cryptocomputer The Chosen Instruction Attack, IEEE Access, 2016, 1, DOI: 10.1109/ACCESS.2016.2622724

Studierende gesucht – Softwarepraktikum – Virulentes Postscript File

Virulentes Postscript File

Digitale Signaturen sind prinzipiell auf jeder Form von Datei möglich, sichern im Allgemeinen jedoch lediglich die Unverändertheit der Datei an sich, nicht jedoch die Integrität der Inhalte, welche die Datei ggf. bei Anzeige in einem geeigneten Viewer erzeugt.

Postscript ist (ähnlich wie PDF) eine Seitenbeschreibungssprache, welche abhängig vom Kontext ihrer Anzeige durchaus unterschiedliche Texte hervorbringen kann, jenachdem welche Bedinungen der Postscript-Code auf dem System vorfindet, wo er angezeigt wird.

Dies führt zu dem möglichen Angriff, ein digital signiertes Postscript Dokument so zu gestalten, dass der angezeigte Text – trotz Signatur – veränderbar ist, da er dynamisch während der Anzeige erzeugt wird, die signatur sich jedoch nur auf den anzeigenden Code, und nicht auf dessen Ausgabe bezieht.

Ziel des Software-Praktikums ist die Schaffung eines Demonstrators, welcher genau diese Problematik live demonstrieren lässt. Im Einzelnen soll ein Postscript-File und Demonstrations-Skript erzeugt werden, welches folgende Eigenschaften erfüllt:

  • Abfrage lokaler Bedingungen an das anzeigende System. Konkret soll auf das Vorhandensein gewisser Dateien, Verzeichnisse, Pfade, o.ä. innerhalb des Postscript Codes geprüft und geeignet (unterschiedlich) reagiert werden können.
  • Möglichkeit, wenigstens zwei Versionen des gleichen Textes innerhalb des Postscript Dokuments zu verankern, und abhängig von der vorab geprüften Bedingung unterschiedlich anzuzeigen.
  • Anbringen einer (standardisierten) digitalen Signatur, und Demonstration der Veränderbarkeit des Textes, trotz verifizierbarer digitaler Signatur.

Hinweis: Für die Umsetzung des Projekts sind keine Kenntnisse über Kryptographie erforderlich; der Mechanismus der digitalen Signatur soll explizit in vorhandener Form, d.h. über kommerziell oder frei verfügbare Software-Werkzeuge genutzt werden.

Der Kreativität bei der Umsetzung sind keine Grenzen gesetzt. Das Projekt kann als Software-Praktikum in einem Team von 2-3 Personen abgewickelt werden.

Projektverlauf und Aufgaben:

  • Einarbeitung in die Postscript Sprache (im erforderlichen Umfang)
  • Konzeption des Dokuments und des Demo-Skripts
  • Implementierung und Demonstration

Rahmenbedingungen:

  • Projektstart: Ab sofort!
  • Projektende: 6-8 Monate nach Beginn (excl. Einarbeitungszeit)

Voraussetzungen:

  • Gute Programmierkenntnisse
  • Grundkenntnisse der angewandten Kryptologie und der linearen Algebra
  • Kreativität

Ansprechpartner und Betreuer:

 

Studierende gesucht – Softwarepraktikum/Praxissemester AINF – Simulation of Critical Infrastructures

Simulation of Critical Infrastructures

Kritische Infrastrukturen sind Systeme, von denen das Bestehen der Gesellschaft wesentlich abhängt, etwa Stromversorgung, Wasserversorgung, Transport, Gesundheitssysteme, Kommunikation, u.v.m.

Diese Systeme stehen in starker wechselseitiger Abhängigkeit, und Vorfälle in oder Ausfälle eines Teilsystems können weitreichende Folgen für nachgelagerte (abhängige) Infrastrukturen besitzen (sog. cascarding effects).

Im (EU-geförderten) SAURON Projekt werden kritische Infrastrukturen, genauer deren Wechselwirkung, modelliert und simuliert, um mögliche Schad-Szenarien wie etwa einen europaweiten Blackout oder ähnliche Möglichkeiten abzuschätzen, sodass rechtzeitig Maßnahmen getroffen werden können.

Das Projekt kann wahlweise als Softwarepraktikum, Praxissemester oder als Vorbereitung auf eine (aufbauende) Masterarbeit durchgeführt werden. Ziel ist die Modellierung eines Netzwerkes von kritischen Infrastrukturen auf Grundlage öffentlich verfügbarer Daten über die Versorgungsnetzwerke europäischer Staaten (also etwa die Abhängigkeit zwischen Wassernetz und Stromnetz eines Landes).

Der zu entwickelnde Prototyp soll hierbei folgende Aufgaben bzw. Funktionen erfüllen:

  • bestehende Datenbestände über Versorgungsnetzwerke als Eingabe nutzen können (große Graphen, die in standardisierten Dateiformaten vorliegen),
  • einfache Spezifikation von Abhängigkeiten zwischen mehreren Versorgungsnetzen
  • Aufbereitung der Daten für die Übergabe an eine bestehende Simulationssoftware (des Austrian Institute of Technology).

Hinweis: Die Umsetzung dieser Aufgaben erfolgt in enger Zusammenarbeit mit dem Austrian Institute of Technology (Niederlassung im Lakeside Park).

Der Kreativität bei der Umsetzung sind keine Grenzen gesetzt. Das Projekt kann als Software-Praktikum in einem Team von 2-3 Personen abgewickelt werden.

Projektverlauf und Aufgaben:

  • Einarbeitung in die vorhandenen Simulationsmodelle und Utility-Netzwerke
  • Spezifikation der Software
  • Implementierung eines Interfaces für die vorhandene Simulationskomponente

Rahmenbedingungen:

  • Projektstart: Ab sofort!
  • Projektende: 6-8 Monate nach Beginn (excl. Einarbeitungszeit)

Voraussetzungen:

  • Freude am Programmieren
  • Grundkenntnisse der Graphentheorie und endlicher Automaten
  • Kreativität

Ansprechpartner und Betreuer: