tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
543
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von thekiller
    thekiller thekiller ist offline Viceinator
    Registriert seit
    Dec 2004
    Ort
    Wismar
    Beiträge
    396
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    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
    Angehängte Dateien Angehängte Dateien
    Geändert von thekiller (01.11.10 um 00:12 Uhr)
     
    OS: Win 7 Ultimate x64
    CPU: Intel Core i7 2600K (3,4GHz - 3,8 GHz)
    RAM: 4 x 8GB-DDR3 1333MHz
    Board: Asus P8Z68-V/Gen3
    GFX: Nvidia GTX580 (Palit)

    Cinema 4D R12, Photoshop CS5, Visual Studio 2010, Qt SDK, Notepad++
    blog.unlimitedengine.de
    design-projects.de

  2. #2
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi thekiller,

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

    Zitat Zitat von thekiller Beitrag anzeigen
    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
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  3. #3
    Avatar von thekiller
    thekiller thekiller ist offline Viceinator
    Registriert seit
    Dec 2004
    Ort
    Wismar
    Beiträge
    396
    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
     
    OS: Win 7 Ultimate x64
    CPU: Intel Core i7 2600K (3,4GHz - 3,8 GHz)
    RAM: 4 x 8GB-DDR3 1333MHz
    Board: Asus P8Z68-V/Gen3
    GFX: Nvidia GTX580 (Palit)

    Cinema 4D R12, Photoshop CS5, Visual Studio 2010, Qt SDK, Notepad++
    blog.unlimitedengine.de
    design-projects.de

  4. #4
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    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
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  5. #5
    Avatar von thekiller
    thekiller thekiller ist offline Viceinator
    Registriert seit
    Dec 2004
    Ort
    Wismar
    Beiträge
    396
    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.
     
    OS: Win 7 Ultimate x64
    CPU: Intel Core i7 2600K (3,4GHz - 3,8 GHz)
    RAM: 4 x 8GB-DDR3 1333MHz
    Board: Asus P8Z68-V/Gen3
    GFX: Nvidia GTX580 (Palit)

    Cinema 4D R12, Photoshop CS5, Visual Studio 2010, Qt SDK, Notepad++
    blog.unlimitedengine.de
    design-projects.de

  6. #6
    Avatar von thekiller
    thekiller thekiller ist offline Viceinator
    Registriert seit
    Dec 2004
    Ort
    Wismar
    Beiträge
    396
    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
     
    OS: Win 7 Ultimate x64
    CPU: Intel Core i7 2600K (3,4GHz - 3,8 GHz)
    RAM: 4 x 8GB-DDR3 1333MHz
    Board: Asus P8Z68-V/Gen3
    GFX: Nvidia GTX580 (Palit)

    Cinema 4D R12, Photoshop CS5, Visual Studio 2010, Qt SDK, Notepad++
    blog.unlimitedengine.de
    design-projects.de

Ähnliche Themen

  1. suche Tester
    Von wieschoo im Forum PHP
    Antworten: 20
    Letzter Beitrag: 02.08.09, 13:36
  2. Beta-Tester für Internetsender gesucht
    Von RalfHeinz im Forum Stellenangebote (unentgeltlich)
    Antworten: 2
    Letzter Beitrag: 27.07.07, 11:08