Assignment crypto 03

Gruppenmitglieder: Basil Estermann, Jonas Arnold , Simon Frei

Wir konnten den Session key der Gruppe Odermatt Stefan & Pfenniger David reproduzieren. Den der Gruppe Reding & Staub leider nicht. Beim generieren des Session keys der erstgenannten Gruppe ist uns aufgefallen, dass nicht der gesamte Schlüssel vom Printf ausgegeben wird. Dies lag daran, dass der Compiler mit einer 32bit Zahl gerechnet hat (da Typ uint32). Jedoch versuchten wir eine 64bit Zahl auszugeben. Mit einem Blick in den Memory View (mithilfe Visual Studio) war schnell klar, dass der Key richtig generiert wurde, jedoch nicht vollständig ausgegeben wurde (per printf).
Deshalb haben wir unser Key-Paar, welches wir in den Austausch geladen hatten nochmal revidiert. In diesem war auch ein zu kurzer Session Key drin.

Mit dieser Änderung (gesamten Session Key ausgeben) konnten wir dann erfolgreich eigene 64bit Public und Session keys generieren und diese auch selber validieren (ohne anderen Private key). Validieren konnten wir lediglich einen anderen 64bit Session key. Den 1024bit Session key der Gruppe Reding & Staub konnten wir leider nicht validieren. Nach über einer Minute rechnen lieferte unser Programm den falschen Session key.

Die Library von Stefano war auf jeden Fall sehr hilfreich. Ohne diese wären wir niemals so schnell zum Ziel gekommen und hätten vermutlich nicht C verwendet sondern python oder eine andere Sprache, die für Operationen mit grossen Zahlen ausgelegt ist. Lediglich ein Problem ist mit der Library aufgetreten. Die Library überschreibt in der Funktion "encryptionArithmetic_stringToHex" kleingeschriebene Buchstaben eines Hex-Strings mit Grossbuchstaben. Leider haben wir als Hex-String ein konstantes Array als Parameter verwendet, deshalb versuchte die Funktion eine Konstante zu überschreiben (=> Access Violation).

Das assignment war sehr lehrreich. Zum Einen zeigte es auf, wie der DHEK funktioniert, zum anderen, dass das hantieren mit grossen Zahlen in C nicht so einfach ist. Wir waren froh um die Library von Stefano und um den Memory view von Visual Studio zum debuggen.

