Title (eng): Implementation of SIKE in Java

Author: Schubert, S. (Stefan)

Description (deu): St. Pölten, Bachelorstudiengang IT Security, Bachelorarbeit 2019

Description (deu): Die Ära der Quantencomputer rückt mit großen Schritten näher, denn die Forschung im Bereich der Quantencomputer nimmt rasant zu. Ein Quantencomputer mit ausreichenden q-Bits wird einen großen Einfluss auf die konventionelle Kryptographie haben und möglicherweise deren Sicherheit durch die Anwendung von entsprechenden Algorithmen zunichte machen. Deshalb ist die sogenannte Post-Quantum-Kryptographie, welche ein neuer Bereich der Kryptographie ist, notwendig, um im Zeitalter der Quantencomputer weiterhin sicher kommunizierun zu können. Ein solches System existiert noch nicht und deshalb hat das NIST (National Institute of Standards and Technology) einen Call for Papers angekündigt, um Forscher zu ermutigen, ein Kryptosystem zu finden, das Angriffen von Quantencomputern standhalten kann, während es Schlüsselgrößen mit einer angemessenen Länge und guter mathematischer und rechnerischer Leistung aufweist. Einer der vielversprechendsten Kandidaten ist der SIDH (Supersingular Isogeny Diffie-Hellman) mit dem SIKE (Supersingular Isogeny Key Exchange), welche die gewünschten Eigenschaften bieten. Die Herausforderung beim SIDH/SIKE-Kryptosystem ist eine optimierte Implementierung, welche Schlüssel und Signaturen so klein wie möglich hält und gleichzeitig die isogenen Berechnungen so schnell wie möglich durchführt. Dies ist eine schwierige Aufgabe, da viele kleine IoT-Geräte und Smart Gadgets auf einer reduzierten Version von Java laufen, in der die Leistung und Kompatibilität ziemlich schlecht ist. Aus diesem Grund versucht diese Arbeit, ein schnelles und optimiertes Basis-Framework für SIDH/SIKEAnwendungen in Java zu schaffen. Dies beinhaltet eine vollständige Erklärung des gesamten mathematischen und algorithmischen Konzepts, einschließlich einer SIDH-Implementierung in Sagemath und einer vollständigen SIDH/SIKE-Implementierung in Java. Jede wichtige Java-Funktion wird ausführlich erläutert und enthält Optimierungskonzepte, alternative Algorithmen und beschreibt die Rolle der Funktion im gesamten SIDH/SIKE-Kryptosystem. Diese Implementierung wird dann auf ihre Rechengeschwindigkeit hin gemessen, um einen Vergleich zu ermöglichen und eine Grundlage für andere Implementierungen und zukünftige Optimierungen zu schaffen. Die gesammelten Informationen werden dann zu einem Sicherheitskonzept zusammengefasst, in dem die Bedeutung korrekter Berechnungen und der Quantensicherheit verdeutlicht wird. Desweiteren könnte dieses Basis-Framework auch in anderen isogenen Konzepten wie Authentifizierung verwendet werden.

Description (eng): The era of quantum computers is approaching with great strides, because research in the field of quantum computers is increasing rapidly. A quantum computer with sufficient q-bits will have a great influence on conventional cryptography and possibly destroy its security by the application of appropriate algorithms. Therefore, the so-called post quantum cryptography, which is a new area of cryptography, is necessary to be able to communicate safely in the age of quantum computers. Such a system does not yet exist and therefore the NIST (National Institute of Standards and Technology) has announced a Call for Papers to encourage researchers to find a cryptosystem that can withstand attacks from quantum computers while providing key sizes with an appropriate length and good mathematical and computational performance. One of the most promising candidates is the SIDH (Supersingular Isogeny Diffie-Hellman) with the SIKE (Supersingular Isogeny Key Exchange), which offers the desired properties. The challenge with the SIDH/SIKE cryptosystem is an optimized implementation that keeps keys and signatures as small as possible while performing isogenic calculations as fast as possible. This is a difficult task because many small IoT devices and smart gadgets run on a reduced version of Java where performance and compatibility is quite poor. For this reason, this bachelor thesis tries to create a fast and optimized basic framework for SIDH/SIKE applications in Java. This includes a full explanation of the entire mathematical and algorithmic concept, including a SIDH implementation in Sagemath and a full SIDH/SIKE implementation in Java. Each important Java function is explained in detail and includes optimization concepts, alternative algorithms, and the role of the function in the entire SIDH/SIKE cryptosystem. This implementation is then measured in terms of its computational speed to enable comparison and provide a basis for other implementations and future optimizations. The collected information is then combined into a security concept that explains the importance of correct calculations and quantum security. Furthermore, this basic framework could also be used in other isogenic concepts such as authentication.

Object languages: English

Date: 2019

Rights: © All rights reserved

Classification: Quantencomputer ; Kryptografie ; National Institute of Standards and Technology

Permanent Identifier