University of Applied Sciences Rapperswil

eprints OST (Ostschweider Fachhochschule)
Not a member yet
    1194 research outputs found

    Better Code Representation for Machine Learning

    Get PDF
    Using machine learning for code becomes more and more common. Different approaches based on paths or BERT are available. This paper focuses on improving parts of the input vector by creating a more compact embedding. Furthermore, it explores and discusses ways to reduce the amount of data inserted into a model when working with code changes. The results presented in this paper show that it is possible to reduce the input data into a latent space, cutting it to half the input data size, representing differences and similarities between code paths in a very compact way while still maintaining an accuracy of 99%. Moreover, it is shown that with proper preprocessing, it is possible to reduce the amount of data inserted into a code changes model by around 84%

    Post Quantum Cryptography

    Get PDF
    Quantum computers are becoming a reality in the industrial sector. With the quantum cloud from IBM putting quantum computing resources within reach of everyone with an internet connection. The computing power of these machines is starting to surpass their conventional counterparts and they are opening up new opportunities for solving problems unfeasible on traditional computers. These can be complex logistical optimizations, simulations of molecular interaction in drug development or the quick calculation of incredibly hard mathematical equations, etc.. One of these mathematical problems, of which they can reduce the calculating time, is the so called factorization problem. The issue with this is, the impossibility to efficiently factorize large numbers on conventional computers has been the foundation of modern cryptographic algorithms like RSA and ECC. Back in 1994, Shor’s Algorithm was invented for a more efficient way of breaking the factorization problem. This algorithm, if run on a quantum computer, could crack RSA (Rivest-Shamir-Adleman), which is based on said problem. But since the algorithm could only run efficiently on a future quantum computer, no change was needed in cryptography. Now that quantum computers have matured, this algorithm was put to the test, and it showed that it is capable of cracking asymmetric cryptography as expected. Rendering RSA useless is a huge problem for our modern IT infrastructure, since RSA is used in almost every data exchange via the internet. Quantum computers allow possible attackers to decrypt and read sensitive data in the near future, no matter how well it was encrypted. Secure communication as we know it, would cease to exist. A possible prevention with quantum resistant cryptography, so called "post quantum cryptography" will be the focus of this essay. The goal of this essay is to provide an overview over what is currently being done to prepare the IT infrastructure for the coming quantum threat. This is done by showcasing the most pressing issues of post quantum cryptography and some relating topics which we picked to be researched further. These include the current technical development of quantum computers, the current status of NIST (National Institute of Standards and Technology) standardization process for post quantum algorithms, certificates, cryptographic agility, hardware security modules and quantum key distribution. All of these topics were regarded in relation to a future, where quantum computers are available to possible attackers. We want to show how the issue of broken cryptography is being handled at the moment, and which technologies can help to increase the security. The procedure, with which this essay was created, is literature research. Sources are researched and afterwards assessed, evaluated and correlated. During the writing and research of this thesis, we were able to show that quantum computers are taking shape, and already have surpassed their conventional counterparts in certain use cases. IBM managed to build a 127 quantum bit processor [1] which shows the development of quantum computers is coming along. Steadily increasing the qbit count every year. Meanwhile, the cryptographic community has worked tirelessly to produce algorithms that can withstand a powerful quantum computer. The standardization process of these algorithms, lead by NIST is coming towards an end in early 2022, they aim to release a rough draft in the first half of next year [2]. Furthermore, the standardization procedure will continue, yielding quantum safe algorithms. But the change of one cryptographic algorithm to another cannot be performed without adequate tools and preparation. This is where we show how the idea of hybrid certificates can help to tie us over this period of change. It enables us to use old and new algorithms side by side until the infrastructure has been adapted to the new algorithms, phasing out the deprecated ones. As we can see, the cryptographic landscape is about to change, and the chances are high that it will be more fluid in the future. We need to say goodbye to our rigid and static understanding of cryptography and embrace it’s new fluid and agile nature. Crypto agility is the next spotlight of this essay in which we show how important it will be in the future to have an agile architecture, to be prepared for future algorithm changes. Hardware security module manufacturers have also started to prepare for quantum computers. They develop solutions for post quantum cryptography capable devices. New exciting hardware and software solutions are being trialed. Thereby, they ease the transition from current cryptography to post quantum solutions. Lastly, we could show how incredibly powerful and secure the technology of quantum key distribution is, but also highlight it’s drawbacks. While it is a highly interesting technology, its costs and limited range, which only lasts up to approximately 200-400km, prevent it from being used in many use cases. But it manages to perform well in certain use cases, such as short distance communications which need high security. Our recommendation, for companies of any scale, is to start cataloguing their infrastructure. It is crucial to know your assets and have a clear understanding of ones own architecture. Be this physical assets, software or the used cyphers. Only then, you will be able to prepare for the transition to a post quantum cryptography architecture. While the transition does not need to start immediately, it is advisable to keep a close eye on releases by NIST. Once standards and guidelines have been published, which should happen in a timely manner, it will be important to evaluate possible solutions and to start planning the future transition to post quantum cryptography. The choice of the most suitable solution is highly dependent on the existing architecture and the business needs of a company, and cannot be universally determined. It is thus crucial to create a tailored solution for every company. Our essay gives solutions applicable to different use cases. Keybords: algorithm,certificates,cryptography,ECC,NIST,QKD,quantum,RS

    Central Frontend for Segment Routing Applications

    Get PDF
    Initial Situation: Many segment routing (SR) applications are developed and maintained at the INS, and each of these applications must create its own UI. The implementation of these user interfaces is never the main focus during the development,resulting in additional effort for each SR app and reimplementation of existing components without maintaining a unified look and feel for each frontend. Objective: The goal is to create a central user interface that connects all existing and future SR apps. The Central Frontend should provide modularity, extensibility and reusability of the components. In this thesis, the Central Frontend should have a landing page that draws up to 1000 SR nodes onto a map. GPU-accelerated processing is required to meet the performance requirements. The graph should cluster the nodes together into groups to maintain visibility. The nodes and edges should be interactive and show the corresponding information coming from the Jalapeno API Gateway. In addition, the Central Frontend should allow other SR applications to be launched. A mock SR App should be integrated in this thesis. Result: It was decided to implement a ReactJS application that communicates with the Jalapeno API Gateway via gRPC-web. The sigma.js graph visualization library, which uses webGL, is used to display and render the network on a leaflet map in a performant way. TypeScript is used as the programming language. The Central Frontend covers all mandatory features and use cases and renders up to 1000 nodes in less than two seconds. Additionally, a custom clustering algorithm groups the nodes together regionally to increase visibility. An SR app list was implemented to search and launch different applications. A node and edge counter was implemented as a mock SR app

    Automated Lesson-Feedback

    Get PDF
    Problem Im Modul Cpp der OST können Studierende ihre Lösungen von Übungsaufgaben mit einem automatisierten Prototyp-Tool überprüfen lassen. Aktuell ist leider die Verwaltung dieser Aufgaben für die Dozierenden nicht direkt zugänglich. Die Erfassung neuer oder die Anpassung bestehender Übungen ist nur von einem Administrator durchführbar. Ziel Der existierende Prototyp des ALF-Tools soll durch eine verbesserte Version abgelöst werden. Die bewährte Funktionalität soll für die Studierenden erhalten bleiben. Zudem sollen sie die Möglichkeit haben, ihre Abgaben zur Korrektur einzureichen. Für die Dozierenden soll die Verwaltung der Aufgaben und der Zugriff auf die abgegebenen Lösungen über eine Benutzerschnittstelle ermöglicht werden. In der Entwicklung soll auch darauf geachtet werden, dass das Tool skalierbar ist. Zudem soll das Tool mit dem Gedanken an weitere Programmiersprachen entwickelt werden. Methode / Vorgehen Um das Ziel dieser Arbeit zu erreichen, wird neben dem Aufstellen und Analysieren der Anforderungen eine Analyse des alten ALF-Tools durchgeführt. Um frühzeitig Technologieprobleme angehen zu können, wird zu Beginn ein Durchstich durch alle Technologien gemacht. Dieser Durchstich soll folgendes beinhalten; Docker-Compose, Einreichung einer Abgabe auf dem Frontend, eine Verarbeitung eines leeren CMake-C++-Cute Projekts im Hintergrund und einer visuellen Anzeige der Antwort auf dem Frontend. Der Durchstich wird im Laufe des Projekts stets mit weiteren Features ausgestattet, bis zum aktuellen Stand des Produkts. Wesentliche Ergebnisse Auf dem entwickelten ALF-Tool können nun Dozierende Projekte selbst anlegen, diese modifizieren und testen. Die Studierenden können, nachdem sie eine Abgabe getätigt haben, alle ihre hochgeladenen Abgaben einsehen. Neben der Übersicht über die bestanden Unit-Tests, können die Studierenden ihre hochgeladenen Abgaben auch wieder herunterladen. Die Dozierenden sehen über ihre Übersicht den Stand des Projekts und können alle Abgaben auf einmal herunterladen. Zusätzlich können sie die Resultate der einzelnen Abgaben direkt über das Tool betrachten. Das ganze Tool wurde so implementiert, dass eine Erweiterung durch zusätzliche Sprachen ohne grössere Schwierigkeiten und Anpassungen möglich ist. Somit steht der Verwendung in anderen Modulen nichts mehr im Weg. Die Implementation wurde mit den folgenden Technologien umgesetzt; Python, Django, Bootstrap, SQLite, Traefik und Docker-Compose. Empfehlungen Das Projekt benötigt einen praktischen Einsatz. Dazu sollte es im bereits implementierten Modul Cpp praktisch eingesetzt werden. Damit würden weitere Erfahrungen gewonnen und das Tool würde eine erste Etablierung erfahren. Weiter sollten mehrere Projekttypen implementiert werden, sodass das Tool auch in anderen Modulen verwendet werden kann. Ebenfalls ist es anzudenken, dass das Tool in Moodle integriert wird. Schlüsselwörter ALF, automated lesson-feedback, Python, Django, Docker-Compose, Cpp, OST, Studienarbeit, Traefik, Bootstrap, SQLit

    Term Project Green Routing

    Get PDF
    Introduction: Traditional routing protocols and techniques are often used in today's networks, and their basics were generally established before the millennium. In recent years, the network area has not experienced the same level of fast transformation as other IT industries. With the development of the digital world and the introduction of new industries and technologies like 5G and cloud computing, the volume of data transferred through networks today is massive and will continue to expand in the future. Modern networks must not only deal with an unprecedented amount of data transmissions, but many new requirements have emerged in order to meet client demands. In our time with climate change a new requirement on the energy efficiency of routing was developed. Problem: Ecological aspects are becoming increasingly important in our world. The latest estimates for the ICT sector indicate emissions of around 1.4Gt of CO[sub]2[/sub] per year. Internet backbone networks are responsible for six percent of this ecological footprint. The growing bandwidth creates new opportunities to consider other metrics and aspects in addition to the traditional ones which mostly only tend to use more and more bandwidths. A new possibility of this is to measure the energy consumption of ASR 9000 routers and to draw conclusions for the definition of the path. This thesis is to look for a solution to implement a green routing approach, where in a network the most ecological paths are to be computed. The solution should be able to compute paths efficiently underlying a defined green index based on sensor data from routers. The calculated paths should be meaningful on the basis of power consumptions on a specified time range to prevent possible route flapping. Result: Through the thesis a first approach to the definition of the green index could be defined by setting paths with the cumulative least electricity consumption over the whole route from the source to the destination router. The overlying calculation of the best paths based on the green index could be implemented by a Green SR-App software in form of a REST-API. This backend API, which is written in modern GoLang, can synchronize all network data via the Jalapeno API Gateway, process it, store it optimally in the sense of statistical purposes and then calculate the best path over a predefined period of sensor data based on Dijkstra's algorithm. The software is designed to be very performant despite very large networks of up to 1000 routers with many times more links in between. High Quality, mature scalability and a proven architecture through a Domain Driven Design have been deliberately written, because this thesis is only the beginning of larger extensions

    Entwicklung eines IDE-Plugins zur Prüfung von Clean Code-Regeln

    Get PDF
    Clean Code, also sauber geschriebener Quelltext, ist ein elementarer Bestandteil für die Softwarequalität. Unter Clean Code versteht man saubere Struktur, Lesbarkeit und einfach verständlichen Quelltext. Clean Code begünstigt vor allem die Wartbarkeit und Erweiterbarkeit und sollte bei jedem Software Projekt hohe Priorität geniessen. Regeln für das Schreiben von gutem Quelltext sind viele bekannt und wurden auch schon in vielen Büchern niedergeschrieben. Diese Regeln gehen allerdings auch erfahrenen ProgrammiererInnen, beim entwickeln von Software, immer mal wieder vergessen. Für gewisse dieser Regeln gibt es verschiedene Werkzeuge die sicherstellen, dass sie eingehalten werden oder bei Verstössen die EntwicklerIn darauf aufmerksam machen. Für andere fehlt ein solches Werkzeug, insbesondere für die Benennung von Bezeichnern gibt es einige Lücken. Für angehende EntwicklerInnen wäre aber ein solches Werkzeug hilfreich, da sie sich bereits in der Phase des Erlernens der Sprachkonzepte durch sofortige Rückmeldungen an gute Namensgebung gewöhnen würden. Dieses Problem wollten wir im Rahmen dieser Arbeit mit der Entwicklung einer Erweiterung für die Entwicklungsumgebung Visual Studio Code adressieren. Das erstellte Plugin prüft den geschriebenen Quelltext gegen von uns gesammelt und implementierte Regeln. Gefundene Verstösse werden in der Entwicklungsumgebung farbig markiert und die EntwicklerIn erhält Problembeschreibungen welche sie darin unterstützen sollen das Problem zu lösen. Initial haben wir Fachliteratur zum Thema Clean Code konsultiert und systematisch Regeln daraus gesammelt. Diese Regeln haben wir dann genauer analysiert, kategorisiert und auf ihre Umsetzbarkeit geprüft. Danach haben wir einen Prototyp der Erweiterung gebaut, welcher die technologische Umsetzbarkeit unserer angedachten Regelprüfung bestätigte. Basierend auf den daraus gewonnenen Erkenntnissen haben wir eine Architektur abgeleitet und darauf aufbauend die tatsächliche Erweiterung entwickelt. Mit unserer Arbeit konnten wir aufzeigen, wie eine Erweiterung zur Prüfung von Clean Code Regeln in Visual Studio Code umgesetzt werden kann. Diese haben wir mit einigen Regeln zur Benennung von Bezeichnern und Benachrichtigung der ProgrammiererIn bei Regelverstössen umgesetzt. Dies legt die Grundlage, welche in eine umfänglichere Erweiterung mit mehr Regelprüfungen und Unterstützung für mehr Programmiersprachen ausgebaut werden kann

    Weiterentwicklung Prozessor-Simulator

    Get PDF
    Einleitung: Informatikstudenten lernen in den ersten Semestern ihres Studiums im Doppelmodul "Betriebssysteme" unter anderem, wie moderne Prozessoren funktionieren. Dies erfordert ein hohes Mass an abstraktem Denkvermögen und ist deshalb für Studiums-Neulinge oft anspruchsvoll. Um Studenten dabei zu helfen, wurde in der Vergangenheit die Entwicklung eines grafischen Prozessor-Simulators in Auftrag gegeben. Unsere Arbeit hatte zum Ziel, diesen weiterzuentwickeln und um zusätzliche Funktionen zu ergänzen. Wir fokussierten uns dabei hauptsächlich auf mehrere Verbesserungen in der Bedienbarkeit, sodass der Simulator zum Verständnis der Vorlesung und zur Prüfungsvorbereitung eingesetzt werden kann. Vorgehen: Unser erster Schritt war ein Erheben der Bedürfnisse der Studenten. Dazu besuchten wir eine Übungsstunde in "Betriebssysteme 1" und befragten die dort anwesenden Studenten nach ihrer Meinung über den Simulator. Die dort geäusserten Vorschläge setzten wir dann gemeinsam mit unseren eigenen Ideen um. Darunter fielen unter anderem: 1) die Möglichkeit, im Simulator "zurückzuspulen" und beliebig viele Schritte in der Simulation rückwärts zu gehen 2) der Einbau eines Sliders zum Regeln der Animationsgeschwindigkeit 3) zwei neue Farbschemen (Light & Dark Mode) und eine Möglichkeit, zwischen ihnen zu wechseln 4) eine neue, verständlichere Animation für Instruktionen, welche den Instruction Pointer modifizieren (z.B. Jumps, Call, Return) Ergebnis: Der Hauptteil der Arbeit bestand aus der Einbindung des sogenannten „Reverse Debugging“, das es Nutzenden ermöglicht, vergangene Simulationsschritte erneut durchzuführen. Dies kommt dem Lerneffekt zugute, da man sich die Ausführung nicht gänzlich klarer Schritte leicht nochmals ansehen kann, ohne alles von vorne starten zu müssen. Wir haben uns dabei für eine gemischte Lösung entschieden: die Felder des GUI werden mittels einer Transaktionsanalyse in jedem Schritt auf Änderungen überprüft (Javascript Proxies) und diese aufgezeichnet. Beim Schritt zurück werden die alten Werte aus dem Speicher wieder eingefügt. Der dahinterliegende Assembly-Emulator hingegen wird bei Bedarf neu aufgebaut und läuft von Anfang des Programms bis zur gewünschten Stelle durch. Es ist uns gelungen, den Reverse Debugger ohne signifikante Performance- und Speicher-Overheads zu implementieren. Der Simulator ist unter einer OpenSource-Lizenz veröffentlicht und kann unter http://cpusimulator.pages.gitlab.ost.ch/cpusim-frontend/ verwendet werden

    Zugsimulator: Dynamische Zugstrecken importieren und visualisieren

    No full text
    Einleitung: In dieser Bachelorarbeit wurde ein Tool geschrieben, welche Streckendaten von einer XML-Datei einliest und diese in Komponenten konvertiert. Auf diesen Komponenten kann nun ein Zug simuliert werden. Dieser löst beim Wechsel oder Überfahren von Komponenten unterschiedliche Events aus. Anhand dieser Events können spezifische Komponenten zwischengeschaltet werden, welche dann die entsprechende Hardware direkt ansteuern. Siemens Mobility AG liegt bereits eine Software vor, mit welcher sie Fehler in der Hardware verstehen und nachvollziehen können. Diese Software ist jedoch spezifisch auf das Zugsicherungssystem ZSL 90 und auf eine Teststrecke programmiert. In zwei Schritten sollen die Teststrecke austauschbar gemacht und die generischen Komponenten der Software extrahiert, neu implementiert und erweitert werden. Vorgehen: Zuerst werden mögliche Formate evaluiert. Anhand einer Entscheidungsmatrix und in Absprache mit Siemens Mobility AG wird ein Format gewählt, welches umgesetzt wird. Während der Umsetzung wird auf eine gute Testabdeckung geachtet, um eine korrekte Funktionalität sicherzustellen. Anschliessend werden mögliche generische Teile evaluiert. Da sich die generischen Komponenten in drei Gruppen einteilen lassen, werden aus jeder Gruppe jeweils eine Komponente komplett entwickelt und in das bestehende Tool eingebunden. So können rasch Probleme und Hindernisse erkannt und behoben werden. Eine speziell zu erwähnende Komponente ist die "Topologie"-Komponente. Diese besteht aus vielen einzelnen Komponenten, welche zwar alle unterschiedliche Aufgaben haben, aber stark ineinander verwoben sind. Eine direkte Extraktion dieser Komponenten ist ohne ein grosses Refactoring und Clean-Up nicht möglich. Die erarbeiteten Komponenten verfügen im Track Visualizer daher über alle nötigen Funktionalitäten und können so direkt verwendet werden. In einem Demoprojekt wird die Verwendung aller Komponenten gezeigt und die bekannte ZSL 90 Systemteststrecke verwendet. Ergebnis: Durch die Arbeit im ersten Schritt ist es nun möglich, die Strecke über eine XML-Datei zu definieren und einzulesen. Die Komponenten erhalten so die Eigenschaften aus dieser Datei. Neben den diversen kleineren Tests, um die Funktionalität sicherzustellen, wurde auch ein grosser Test geschrieben, welche die erstellten Komponenten beider Factories vergleicht. Im zweiten Schritt wurden je eine Anzeige und eine Steuerungskomponente extrahiert. Diese dienen in Zukunft als Vorlage wie die restlichen generischen Elemente extrahiert und in der bestehenden Software wieder eingegliedert werden können. Das Hauptaugenmerk im zweiten Schritt lag auf der Erweiterung der Komponenten aus dem ersten Schritt. Diese Komponenten dienen nicht mehr dem Konvertieren, sondern stellen die Funktionalität für das Zeichnen, die Logik und die Kommunikation mit der Software bereit. Dabei wurde darauf geachtet, dass im Track Visualizer nur die Basisfunktionalitäten implementiert werden. Die Funktionalitäten welche Abhängigkeiten zum Zugsicherungssystem oder zur Software haben, wurden im Demoprojekt implementiert. Dieses Demoprojekt zeigt zum einen, dass die implementierten Funktionalitäten funktionieren und zusätzlich dient es als Ausgangslage für eine zukünftige Implementierung in die bestehende oder in eine neue Software

    simBPMN Modellierungssoftware

    Get PDF
    Problemstellung Um Prozesse mit Simulationsbestand in einem System auf einer hohen Abstraktionsebene zu beschreiben, wurde von der ASIM-Fachgruppe ”Einsatz formaler Methoden und Vorgehensmodellen zur Simulation” die simBPMN Notation ausgearbeitet. Im Rahmen dieser Arbeit wird ein Spezifikationstool entwickelt, dass die effiziente Nutzung der Spezifikation mit Hilfe der simBPMN unterstützt. Neben der syntaktischen Korrektheit der Spezifikation werden weitere nicht formale Funktionen definiert und eingebaut, z.B. Definition von Anforderungen, Parameter zur Validierung und Verifikation und das Einbinden zusätzlicher Dokumente. Dieses ermöglicht es, Prozesse genauer zu spezifizieren und den Austausch zwischen verschiedenen Benutzern zu verbessern. Zusätzlich ist es wichtig, dass die Applikation auf den Betriebssystemen Windows, Linux und MacOS verwendet werden kann. Methode / Vorgehen Die Software wird mithilfe der agilen Methode Scrum+ entwickelt. Wöchentlich wird der Stand der Arbeit mit dem verantwortlichen Betreuer der Ostschweizer Fachhochschule besprochen. Da es sich um eine erste Version handelt wird an den Besprechungen Feedback entgegengenommen besprochen und in den Arbeitsplan mit eingearbeitet. Ergebnisse Die erstellte Lösung ermöglicht es zu jeden einzelnen Element in einem Prozess, eine Prozesslogik zu spezifizieren. Jedes Element kann ausserdem mit einem Anhang, unabhängig von der Applikation, genauer spezifiziert werden. Durch die zusätzlich implementierten Export- und Importfunktionen eines Projektes können die erstellten Spezifikationen ausgetauscht werden

    Building a Cryptocurrency Payment Provider

    Get PDF
    Die Blockchain Technologie ermöglicht das Entwickeln von Kryptowährungen. Immer mehr Menschen nutzen eine Kryptowährung als Investitionsmittel oder als Zahlungsmittel. Das Ziel dieser Arbeit ist es, einen Provider für Kryptowährungen zu entwickeln. Dabei wird untersucht, wie Ethereum und Bitcoin angebunden werden können. Durch diese Arbeit sollen Händler die Möglichkeit besitzen, Zahlungen in Ethereum und Bitcoin zu akzeptieren. Bitcoin und Ethereum wurden als initiale Kryptowährungen dieses Payment Providers implementiert. Wenn es um Geldtransaktionen geht, ist neben der Funktionalität die Sicherheit und Stabilität ein wichtiges Thema. Aus diesem Grund wurde ebenfalls Zeit in die Erarbeitung einer Lösung investiert, welche gegen Missbrauch geschützt ist und bei Teilausfällen des Systems weiterhin valide Daten besitzt. Der Payment Provider mit einer Ethereum und Bitcoin Integration wurde jeweils an das Mainnet und Testnet angebunden

    1,015

    full texts

    1,194

    metadata records
    Updated in last 30 days.
    eprints OST (Ostschweider Fachhochschule)
    Access Repository Dashboard
    Do you manage Open Research Online? Become a CORE Member to access insider analytics, issue reports and manage access to outputs from your repository in the CORE Repository Dashboard! 👇