Suche Beta-Tester für Verschlüsselungssoftware!

thekiller

Viceinator
Moin moin,

ich habe mir für meine Netzwerkfähige Software einen Verschlüsselungsalgorythmus entwickelt um halt ein bisschen Sicherheit hinein zu bekommen.
Nunja ich hab mir dann gedacht, dass dieser Algorythmus auch für Dateien geeignet wäre und habe dass dann auch umgesetzt.
Scheint soweit auch zu funktionieren, aber wie das so ist, als alleiniger Programmierer kann man nicht alle Fehler entdecken.
Wären vielleicht einige bereit meine Software zu testen?

Paar kleine Infos zum Programm:
Also die Software zum ver/entschlüsseln ist über Komandozeile ausführbar. Dazu habe ich mithilfe von Qt aber auch eine GUI zu entwickelt, was dass ganze etwas vereinfacht.
Zum Verschlüsselungsalgorythmus möchte ich näher eigentlich nichts verraten, nur, dass er auf Bitebene operiert und dass ich Ihn "Crypto" bezeichne.
Der Key kann derzeit maximal 1024 Byte lang sein(kann ich auch noch erhöhen). Dateien werden bis zu einer Größe von 2^64Byte unterstützt.

Ein - zwei Beispiele anhand einer Textdatei:
Code:
Inhalt der Datei: Hallo
Schlüssel:        123
Ergebnis:         nG<JI

Inhalt der Datei: Hallo
Schlüssel:        kryptographie
Ergebnis:         ×þóóð

Inhalt der Datei: Hallo
Schlüssel:        111111
Ergebnis:         ‘¸µÃÀ

Inhalt der Datei: Hallo
Schlüssel:        Als Schlüssel sind alle denkbaren Zeichen möglich! Außer bestimmte Sonderzeichen über Komandozeile.
Ergebnis:         ?"

Was ich in Zukunft noch einbauen werde:
- Dass man jede x-beliebige Datei(nicht größer als 1024Byte) als Key verwenden kann.
- Verschlüselung mit einem vom Algorithmus generierten Key welche dann als Key-Datei abgespeichert wird. Ähnlich wie bei VPN oder anderen Verschlüssleungsmethoden
- Threadunterstützung für mehr Geschwindigkeit

LG Manuel


EDIT.:
Hab es mal angehängt als zip-Archiv.
Anregungen sind natürlich willkommen!


EDIT2.:
Was ich vielleicht noch sagen sollte ist, dass es vom Programm keine Bestätigung geben kann, dass die Daten auch korrekt entschlüsselt werden konnten. Dass ist mit meinem Algorithmus unmöglich raus zu bekommen, weil ich keine Checksummen berechnen lasse geschweige denn abspeichere. Also entweder man entschlüsselt mit dem richtigen Key oder man hat Pech^^


EDIT3.:
Ich habe jetzt hinzugefügt, dass eine Key-Datei generiert werden kann mit einer Größe von 1-1024Byte. Wenn man eine Datei mit einer Key-Datei verschlüsselt ist es nur noch mithilfe dieser Datei und des Standard-Key(könnte man in diesem Fall auch schon fast ein Passwort nennen) möglich die Datei zu entschlüsseln. Also Key-Datei an einem sicheren Ort speichern. Neue Version ist natürlich im Anhang.


EDIT4.:
Ich werde bei Gelegenheit mal einen Brute-Force Algorithmus schreiben, welcher versucht den verwendeten Key zu ermitteln. Glaube aber dass das etwas dauern könnte.


EDIT5.:
Nabend. Ich hab mal wieder etwas Zeit gefunden weiterzumachen und habe mich dafür entschieden hier den Verschlüsselungsalgorithmus für Visual Studio zur Verfügung zu stellen.
Erfahrene Programmierer werden wissen wie das Modul einzusetzen ist. Wenn nicht einfach fragen! Kost ja nix ;-)

Wenn den Methoden die Daten zum ver/entschlüsseln übergeben werden, wird intern Speicher allokiert welche momentan NOCH NICHT selbstständig wieder gelöscht wird(war ich bisher zu faul zu^^)
Dafür habe ich aber eine weitere Methode implementiert die den Speicher wieder freigibt.
Naja wie gesagt, wer nich mit klar kommt einfach fragen, wenns denn überhaupt einer verwendet^^

Ach und ne neue Version der GUI hab ich auch gleich noch hochgeladen.

EDIT6.:
Falls es hier im Forum ein paar engagierte Hacker gibt, hätte ich echt nix dagegen, wenn die sich mal dran versuchen meinen Algorithmus zu knacken bzw. es irgendwie schaffen eine Verschlüsselte Datei ohne Kenntnisse des ursprünglichen Keys wieder herzustellen.
Und ich bin jetz einfach mal ganz dreist und behaupte solange nichts anderes bewiesen wurde, dass mein Algorithmus sicher ist ;-)

EDIT7.:
Ich habe ein Speicherleck beseitigt, welches beim ver/entschlüsseln auftrat. Jetzt beträgt der Speicherbedarf für die EncDec.exe um die 700KB, je nach länge des angegebenen Keys.

Kleine Info: Eine 700MB Datei lies sich auf meinem Q6600(2,4GHz) unter Windows 7 x64 in ca. 35 s verschlüsseln.
Und es ist durchaus noch einiges an Performance rauszuholen. Derzeit wird ja nur ein Prozessorkern ausgelastet.

EDIT8.:
Kleines Update. Hab den Verschlüsselungsalgorithmus jetzt auch in Qt umgesetzt und in eine Klasse gepackt. Hoffe hab keinen Fehler gemacht und die libs können problemlos eingebunden werden.

EDIT9.:
Noch ein kleines Update. Hab die Ver-/Entschlüsselung schneller hinbekommen.
Wie ich bei EDIT7 schon sagte brauchte es bei mir etwa 35 s um eine 700MB Datei zu verschlüsseln mit einem 8 Zeichen langen Key. Mit der aktuellen Version hab ich es bei gleichen Bedingungen in etwas über 17 s geschafft. Also Rechenzeit halbiert. Kleiner Nachteil => Der Speicherbedarf der EncDec.exe ist auf 1,2MB gestiegen^^
 

Anhänge

  • Crypto2 - Qt 4.7.0.zip
    117,4 KB · Aufrufe: 12
  • Crypto2 - MSVS.zip
    29,1 KB · Aufrufe: 12
  • EncDecGUI 3.0.zip
    5,8 MB · Aufrufe: 13
Zuletzt bearbeitet:

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi thekiller,

werde mir das Ding heute Abend mal anschauen, habe aber vorweg schon einmal eine Frage:

Zum Verschlüsselungsalgorythmus möchte ich näher eigentlich nichts verraten, nur, dass er auf Bitebene operiert und dass ich Ihn "Crypto" bezeichne.

Ich hoffe mal, dass die Sicherheit des Algorithmus nicht durch Geheimhaltung erzielt wird. Warum das nicht gut ist, dafür gibt es viele Beispiele, siehe Security through obscurity.

Gruß
BK
 

thekiller

Viceinator
Naja ich selber habe jetzt nicht versucht einen Key aus einer verschlüsselten Datei zu errechnen. Aber ich denke, dass dürfte nicht ganz so einfach sein. Vor allem nicht, wenn man keinelei Ahnung darüber hat wie der Algorythmus verschlüsselt.
Aber es kann ja gerne einer versuchen dafür is der Beta-Test ja auch da^^
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hallo,

wie der Algorithmus funktioniert, kann man mehr oder weniger einfach über Reverse-Engineering und Disassemblen rausfinden. Wenn der Computer weiß, was er zu machen hat, dann kann das auch ein Mensch rausfinden. Bestes Beispiel hierfür sind Kopierschutzmaßnahmen. Egal wie sehr sich die Industrie anstrengt, es wird immer wieder Cracker geben, die das knacken können. Dies kann man auch als einen geheimen Algorithmus bezeichnen, der immer wieder geknackt wird.
Je nach Verbreitungsgrad deines Programmes solltest du dir genau überlegen, ob dein Programm noch sicher ist, wenn der Algorithmus mal "entdeckt" wird.

Gruß
BK
 

thekiller

Viceinator
Dessen bin ich mir bewusst, aber ich kann selber behaupten, dass mein Algorythmus teilweise so undurchsichtig ist, dass ich selbst manchmal Schwierigkeiten hatte den Entschlüsselungsalgo zu programmieren. Und selbst wenn einer den Verschlüsselungsalgorythmus entdeckt hat, hat er immernoch keinen Key um es zu entschlüsseln. Und wie lange es dauert einen Key von mir zu errechnen weiß ich nicht. Das hängt aber auch von der Länge des Keys ab. Je länger der Key ist, umso länger Dauert das ver/entschlüsseln und umso sicherer ist es, wie bei den meisten anderen dingen auch.
Naja und wie schon angekündigt werde ich es noch so erweitern, dass eine Schlüsseldatei erzeugt werden kann, die selbst auch noch verschlüsselt sein wird.
 

thekiller

Viceinator
Nabend :)

ich habe wieder etwas Zeit gefunden weiterzumachen.
Die anderen Infos habe ich alle im Startbeitrag gepostst.
Über weiteres Feedback würde ich mich natürlich freuen ;-)

MfG Manuel