Hallo,
ich habe die Tage ein winziges Programm für Arduboy in C geschrieben. Es verschlüsselt und speichert bis zu sieben Notizzettel mit je 128 Zeichen auf dem Device das von der größe wie eine Scheckkarte in den Geldbeutel passt und man kann überall schnell darauf zugreifen.
Die Passwörter bestehen aus Tastenkombinationen ähnlich den Kombinationen von Streetfighter Moves :-)
Die Hardware ist dannach autark und kann so niemals korrumpiert werden, keine Internetverbindung etc.
Also auch sicher vor Keyloggern und allen sonstigen Schädlingsprogrammen.
Außerdem kann man damit auch lange Schlüssel für andere Programme generieren und sicher Nachrichten mit Freunden austauschen.
Das war mein Ziel,theoretisch, aber ich bin alles andere als ein Profi Programmierer. Aber es funktioniert vollständig auch wenn mein Code vermutlich nach Chaos aussieht *lol*
Weshalb ich hier schreibe ist der Verschlüsselungsallgorithmus, bzw. herauszufinden was Ihr davon haltet. Er ist simpel und unkonventionell, aber so hoffe ich in Verbindung mit dem Passwortaufbau sehr stark und ohne Schwachstellen. Aber was weiß ich schon von Verschlüsselung ;-)
Das Passwort besteht aus 16 Schlüsselelementen, jedes ist eine Kombination aus gedrückten Tasten, bis zu 6 in Folge. Die Tasten können auch während der Eingabe losgelassen werden solange zumindest eine Taste gehalten wird. Ist die länge von 6 Zeichen erreicht oder alle Tasten werden losgelassen ist die Eingabe des Elements beendet und das nächste Schlüsselelement ist bereit zur Eingabe.
Als standard Sicherheit rate ich 2x einen Schlüssel mit 6 Tasten Länge einzugeben. 2x5, sowie 4x2, die restlichen 8 Schlüsselelemente können 1 Button Eingaben sein. Eine stärke des Systems liegt darin das der Angreifer nicht weiß an welchen Schlüsselstellen die Langen Eingaben gemacht wurden und wo die kurzen. Man bringt seine langen und kurzen Eingaben also nach eigenem Ermessen unter.
Dazu kommt die Verschlüsselung:
Die vollständig und relativ Rechenaufwendig durchgeführt werden muss ehe gesagt werden kann ob das Passwort stimmt. Zuerst werden 7 der 8 Textzeilen durch Werte verändert die einmal aus dem Passwort und einmal aus der ersten unveränderten Textzeile bestehen, die Verschlüsselung erfolgt also auch inhaltsabhängig. Ein Zeichen im Inhalt führt genauso wie ein Element im Schlüssel zu einem völlig anderem Ergebnis. Nachdem der Inhalt verändert wurde werden die Elemente der 7 Zeilen miteinander ausgetauscht, auch abhängig vom Schlüsselelement und dem aktuellen Inhalt von Zeile 1. Jeweils zwei Elemente miteinander aber sehr oft. Zuletzt wird Zeile 1 mit der letzten Zeile ausgetauscht, was dafür sorgt das diese unveränderte Zeile beim nächsten mal "mitgemischt" wird. Dannach wird das ganze Prozedere wiederholt mit dem zweiten der 16 Schlüsselelemente, und so weiter. Nach allen 16 Schlüsselemente so durchgerechnet werden und der Quelltext völlig verändert wurde, wird das komplette prozedere 27 mal wiederholt.
Dieser Vorgang lässt sich schwer abkürzen da Schlüssel wie auch der zu kodierende Inhalt beteiligt sind und dauert auf dem Arduboy etwa eine Sekunde. Das stört das handling nicht aber ist auch nichts wovon man per bruteforce in einer Millisekunde hundert tausende Varianten durchrechnen könnte.
Bei dem was ich als Standardsicherheit vermute liegen wir bei 4,00E+21 Schlüsselkombinationsmöglichkeiten. Ich persönlich verwende mindestens 3x6 buttons + 3x5 buttons + 5x2 buttons was man sich auch sehr leicht merken kann und es erreicht über 8,45E+30 Variationen für den Schlüssel.
Aber ich habe von Kryptographie nicht wirklich Ahnung und vielleicht findet doch jemand eine Lücke für einen Angriff?
Da das ganze sehr überschaubar ist ist es jedenfalls sehr schön zum tüfteln / daran kniffeln geeignet.
Ich habe auch eine einfache Aufgabe mit bewußt schwachem Passwort in die Info Textdatei gepackt.
Das Programm:
HTTP://WWW.3DARTLAB.DE/SAFE-AND-SOUND.ino
Anleitung mit Challenge:
HTTP://WWW.3DARTLAB.DE/INFO.TXT
Wie es damit genau weiter geht weiß ich noch nicht, keine Ahnung wer den Nutzen darin erkennt und wie das Feedback ist.
Ich freue mich jedenfalls sehr um jedes Feedback und hoffe wir haben alle etwas Spaß damit. So sieht das erste Rätsel ürigens aus:
Crypted text:
P5YA!%ÖS2TG2CU3E
,SHßO!DÜRY2\P@/$
O<!%/FÜCOWKD.O0N
$!>TG9S.0:X,@E76
">YMB=3Ö<A9V!35\
Ü?"01!F6GJ-Y3,ÄÜ
YH2SXEA7Ö2NC4$(6
IZ#0WC/ CEÜ9EEI,
VG
Markus
ich habe die Tage ein winziges Programm für Arduboy in C geschrieben. Es verschlüsselt und speichert bis zu sieben Notizzettel mit je 128 Zeichen auf dem Device das von der größe wie eine Scheckkarte in den Geldbeutel passt und man kann überall schnell darauf zugreifen.
Die Passwörter bestehen aus Tastenkombinationen ähnlich den Kombinationen von Streetfighter Moves :-)
Die Hardware ist dannach autark und kann so niemals korrumpiert werden, keine Internetverbindung etc.
Also auch sicher vor Keyloggern und allen sonstigen Schädlingsprogrammen.
Außerdem kann man damit auch lange Schlüssel für andere Programme generieren und sicher Nachrichten mit Freunden austauschen.
Das war mein Ziel,theoretisch, aber ich bin alles andere als ein Profi Programmierer. Aber es funktioniert vollständig auch wenn mein Code vermutlich nach Chaos aussieht *lol*
Weshalb ich hier schreibe ist der Verschlüsselungsallgorithmus, bzw. herauszufinden was Ihr davon haltet. Er ist simpel und unkonventionell, aber so hoffe ich in Verbindung mit dem Passwortaufbau sehr stark und ohne Schwachstellen. Aber was weiß ich schon von Verschlüsselung ;-)
Das Passwort besteht aus 16 Schlüsselelementen, jedes ist eine Kombination aus gedrückten Tasten, bis zu 6 in Folge. Die Tasten können auch während der Eingabe losgelassen werden solange zumindest eine Taste gehalten wird. Ist die länge von 6 Zeichen erreicht oder alle Tasten werden losgelassen ist die Eingabe des Elements beendet und das nächste Schlüsselelement ist bereit zur Eingabe.
Als standard Sicherheit rate ich 2x einen Schlüssel mit 6 Tasten Länge einzugeben. 2x5, sowie 4x2, die restlichen 8 Schlüsselelemente können 1 Button Eingaben sein. Eine stärke des Systems liegt darin das der Angreifer nicht weiß an welchen Schlüsselstellen die Langen Eingaben gemacht wurden und wo die kurzen. Man bringt seine langen und kurzen Eingaben also nach eigenem Ermessen unter.
Dazu kommt die Verschlüsselung:
Die vollständig und relativ Rechenaufwendig durchgeführt werden muss ehe gesagt werden kann ob das Passwort stimmt. Zuerst werden 7 der 8 Textzeilen durch Werte verändert die einmal aus dem Passwort und einmal aus der ersten unveränderten Textzeile bestehen, die Verschlüsselung erfolgt also auch inhaltsabhängig. Ein Zeichen im Inhalt führt genauso wie ein Element im Schlüssel zu einem völlig anderem Ergebnis. Nachdem der Inhalt verändert wurde werden die Elemente der 7 Zeilen miteinander ausgetauscht, auch abhängig vom Schlüsselelement und dem aktuellen Inhalt von Zeile 1. Jeweils zwei Elemente miteinander aber sehr oft. Zuletzt wird Zeile 1 mit der letzten Zeile ausgetauscht, was dafür sorgt das diese unveränderte Zeile beim nächsten mal "mitgemischt" wird. Dannach wird das ganze Prozedere wiederholt mit dem zweiten der 16 Schlüsselelemente, und so weiter. Nach allen 16 Schlüsselemente so durchgerechnet werden und der Quelltext völlig verändert wurde, wird das komplette prozedere 27 mal wiederholt.
Dieser Vorgang lässt sich schwer abkürzen da Schlüssel wie auch der zu kodierende Inhalt beteiligt sind und dauert auf dem Arduboy etwa eine Sekunde. Das stört das handling nicht aber ist auch nichts wovon man per bruteforce in einer Millisekunde hundert tausende Varianten durchrechnen könnte.
Bei dem was ich als Standardsicherheit vermute liegen wir bei 4,00E+21 Schlüsselkombinationsmöglichkeiten. Ich persönlich verwende mindestens 3x6 buttons + 3x5 buttons + 5x2 buttons was man sich auch sehr leicht merken kann und es erreicht über 8,45E+30 Variationen für den Schlüssel.
Aber ich habe von Kryptographie nicht wirklich Ahnung und vielleicht findet doch jemand eine Lücke für einen Angriff?
Da das ganze sehr überschaubar ist ist es jedenfalls sehr schön zum tüfteln / daran kniffeln geeignet.
Ich habe auch eine einfache Aufgabe mit bewußt schwachem Passwort in die Info Textdatei gepackt.
Das Programm:
HTTP://WWW.3DARTLAB.DE/SAFE-AND-SOUND.ino
Anleitung mit Challenge:
HTTP://WWW.3DARTLAB.DE/INFO.TXT
Wie es damit genau weiter geht weiß ich noch nicht, keine Ahnung wer den Nutzen darin erkennt und wie das Feedback ist.
Ich freue mich jedenfalls sehr um jedes Feedback und hoffe wir haben alle etwas Spaß damit. So sieht das erste Rätsel ürigens aus:
Crypted text:
P5YA!%ÖS2TG2CU3E
,SHßO!DÜRY2\P@/$
O<!%/FÜCOWKD.O0N
$!>TG9S.0:X,@E76
">YMB=3Ö<A9V!35\
Ü?"01!F6GJ-Y3,ÄÜ
YH2SXEA7Ö2NC4$(6
IZ#0WC/ CEÜ9EEI,
VG
Markus
Comment