Kryptografie - Testen der Sicherheit eines selbstgeschriebenen Programms



  • hi

    ich habe aus spaß ein kleines programm geschrieben, dass textdateien verschlüsseln kann.
    gibt es eine möglichkeit zu testen, ob sich diese datei leicht, schwer, oder vllt. gar nicht entschlüsseln lässt?
    eventuell ne online entschlüsselungsseite oder so? habe recherchiert aber nix gefunden. vielleicht hat ja auch jemand von euch bock sich als dechiffrierer zu versuchen.
    es handelt sich um deutschen text, das dateiformat ist ascii.
    in dem verschlüsselungs-algorithmus sind absichtlich einige 'teaser' eingebaut:
    - die leerzeichen, tabulatoren und zeilenumbrüche sind unverändert.
    - jede kodierte zahl im verschlüsselten text ist auch eine zahl im original.
    - ein großbuchstabe im kodierten text ist auch ein großbuchstabe im original, entsprechendes gilt für kleinbuchstaben
    - verschlüsselt werden nur buchstaben und zahlen, d.h. satzzeichen bleiben unverändert

    ich schätze mal, diese 'teaser' erleichtern das entschlüsseln beträchtlich.
    http://m.uploadedit.com/b021/1379535954579.txt

    viel spaß!
    😃



  • Mach das mal mit einem englischen Text, und ungefähre Angabe der Keylänge wäre auch hilfreich. (1-6, 7-24, 25-256)



  • warum muss der text englisch sein? 😕

    bitte sehr, zwei verschlüsselte englische texte in ascii kodierung:

    http://m.uploadedit.com/b021/1379542265646.txt
    das zugehörige passwort ist abcd123456789efgh

    http://m.uploadedit.com/b021/137954233031.txt
    dieses passwort verrate ich nicht, es hat dieselbe länge wie obiges.



  • crypt0r schrieb:

    - die leerzeichen, tabulatoren und zeilenumbrüche sind unverändert.

    Ich nehme mal an das gilt für die Position und Reihenfolge.

    - jede kodierte zahl im verschlüsselten text ist auch eine zahl im original.
    - ein großbuchstabe im kodierten text ist auch ein großbuchstabe im original, entsprechendes gilt für kleinbuchstaben

    Okay, sehr einfache Teaser.

    - verschlüsselt werden nur buchstaben und zahlen, d.h. satzzeichen bleiben unverändert

    Behalten die auch ihre Position?



  • Ist einfach schrieb:

    crypt0r schrieb:

    - die leerzeichen, tabulatoren und zeilenumbrüche sind unverändert.

    Ich nehme mal an das gilt für die Position und Reihenfolge.

    ja.

    Ist einfach schrieb:

    crypt0r schrieb:

    - verschlüsselt werden nur buchstaben und zahlen, d.h. satzzeichen bleiben unverändert

    Behalten die auch ihre Position?

    ja.



  • Dann ist die Verschlüsselung sinnlos, da ich einfach anhand der länge der Worte enorm viel rauslesen kann ohne auch nur irgendwie was aufwendiges zu machen.



  • Schlechte Verschlüsselungen erkennt man daran, dass der Algorithmus geheimgehalten werden muss.



  • Z schrieb:

    Schlechte Verschlüsselungen erkennt man daran, dass der Algorithmus geheimgehalten werden muss.

    👍



  • Shade Of Mine schrieb:

    Dann ist die Verschlüsselung sinnlos, da ich einfach anhand der länge der Worte enorm viel rauslesen kann ohne auch nur irgendwie was aufwendiges zu machen.

    zeig mal. 🙂



  • Jester schrieb:

    Shade Of Mine schrieb:

    Dann ist die Verschlüsselung sinnlos, da ich einfach anhand der länge der Worte enorm viel rauslesen kann ohne auch nur irgendwie was aufwendiges zu machen.

    zeig mal. 🙂

    es ist doch offensichtlich dass man hier einen super einfachen angriffsvector hat oder bist du anderer meinung?

    aber gerne, freundschfatspreis von 100 euro die stunde und ich implementiere es dir, ok?



  • wieviele stunden brauchst du denn? man kann ja enorm viel rauslesen, also sollte das ja nicht so lange dauern, oder?

    edit: keine frage dass das ein schwachpunkt ist, du klingst nur grad so schön vollmundig, dass ich mal nachfragen wollte. 🙂



  • Shade Of Mine schrieb:

    es ist doch offensichtlich dass man hier einen super einfachen angriffsvector hat oder bist du anderer meinung?

    aber gerne, freundschfatspreis von 100 euro die stunde und ich implementiere es dir, ok?

    Nur hohle Phrasen wie immer.



  • Ich würde mal auf etwas ähnliches wie die Enigma tippen... 🙂

    Aber interresant...



  • crypt0r schrieb:

    hi

    ich habe aus spaß ein kleines programm geschrieben, dass textdateien verschlüsseln kann.
    gibt es eine möglichkeit zu testen, ob sich diese datei leicht, schwer, oder vllt. gar nicht entschlüsseln lässt?
    eventuell ne online entschlüsselungsseite oder so? habe recherchiert aber nix gefunden. vielleicht hat ja auch jemand von euch bock sich als dechiffrierer zu versuchen.
    es handelt sich um deutschen text, das dateiformat ist ascii.
    in dem verschlüsselungs-algorithmus sind absichtlich einige 'teaser' eingebaut:
    - die leerzeichen, tabulatoren und zeilenumbrüche sind unverändert.
    - jede kodierte zahl im verschlüsselten text ist auch eine zahl im original.
    - ein großbuchstabe im kodierten text ist auch ein großbuchstabe im original, entsprechendes gilt für kleinbuchstaben
    - verschlüsselt werden nur buchstaben und zahlen, d.h. satzzeichen bleiben unverändert

    ich schätze mal, diese 'teaser' erleichtern das entschlüsseln beträchtlich.
    http://m.uploadedit.com/b021/1379535954579.txt

    viel spaß!
    😃

    Schau dir die Verteilung der Zeichen an.
    Also nimm vom verschlüsselten Text die Zahlenwerte (also eben 'A'=65) und stell die Anzahl jedes Zeichens in irgendsoeinem Excel Diagramm dar.
    Wenn dann sehr viele Zeichen irgendwo im Bereich von 65-122 sind, dann ist es schon mal sehr auffällig, dass es sich um eine ziemlich einfache Verschlüsselung handelt.

    Idealerweise ist der verschlüsselte Text ziemlich gleich verteilt, also die Werte 0-255 sind alle vorhanden und etwa gleich oft vorhanden.



  • Zum Testen des Outputs ist das hier ganz gut: http://www.cryptool.org/de/
    Ich kenne nur die ältere Version von vor 4 Jahren, aber die hat mich schon begeistert.



  • Wie hast du die einzelen Zeichen verschlüsselt? Vigenère-Chiffre?

    Machst du sowas wie Key-Expansion?



  • lllllllllllllllll schrieb:

    Schau dir die Verteilung der Zeichen an.
    Also nimm vom verschlüsselten Text die Zahlenwerte (also eben 'A'=65) und stell die Anzahl jedes Zeichens in irgendsoeinem Excel Diagramm dar.
    Wenn dann sehr viele Zeichen irgendwo im Bereich von 65-122 sind, dann ist es schon mal sehr auffällig, dass es sich um eine ziemlich einfache Verschlüsselung handelt.

    Idealerweise ist der verschlüsselte Text ziemlich gleich verteilt, also die Werte 0-255 sind alle vorhanden und etwa gleich oft vorhanden.

    innerhalb welcher toleranzen spricht man noch von gleichverteilung?
    die buchstaben könnte man bis auf einen sprung beim großen O pi mal daumen und wenn man beide augen zudrückt vllt als ganz gut verteilt ansehen. 😛
    alle werte 0-255 zu benutzen wäre in wenigen minuten am code geändert, aber dann würden ja alle teaser flöten gehen. 😛
    trotzdem werde ich das mal aus gaudi morgen oder die tage ausprobieren, das mit der verteilung hat mich jetzt neugierig gemacht. :p

    analysiert wurden 769751 bytes.
    
    ascii code: 10 character: 
     haeufigkeit :5598
    ascii code: 13 character: 
     haeufigkeit :5598
    ascii code: 32 character:   haeufigkeit :134005
    ascii code: 33 character: ! haeufigkeit :307
    ascii code: 34 character: " haeufigkeit :4869
    ascii code: 36 character: $ haeufigkeit :2
    ascii code: 37 character: % haeufigkeit :1
    ascii code: 38 character: & haeufigkeit :9
    ascii code: 39 character: ' haeufigkeit :2348
    ascii code: 40 character: ( haeufigkeit :45
    ascii code: 41 character: ) haeufigkeit :45
    ascii code: 42 character: * haeufigkeit :22
    ascii code: 44 character: , haeufigkeit :9404
    ascii code: 45 character: - haeufigkeit :3780
    ascii code: 46 character: . haeufigkeit :8866
    ascii code: 47 character: / haeufigkeit :25
    ascii code: 48 character: 0 haeufigkeit :14
    ascii code: 49 character: 1 haeufigkeit :33
    ascii code: 50 character: 2 haeufigkeit :13
    ascii code: 51 character: 3 haeufigkeit :30
    ascii code: 52 character: 4 haeufigkeit :12
    ascii code: 53 character: 5 haeufigkeit :27
    ascii code: 54 character: 6 haeufigkeit :23
    ascii code: 55 character: 7 haeufigkeit :23
    ascii code: 56 character: 8 haeufigkeit :14
    ascii code: 57 character: 9 haeufigkeit :27
    ascii code: 58 character: : haeufigkeit :92
    ascii code: 59 character: ; haeufigkeit :725
    ascii code: 63 character: ? haeufigkeit :569
    ascii code: 64 character: @ haeufigkeit :2
    ascii code: 65 character: A haeufigkeit :673
    ascii code: 66 character: B haeufigkeit :703
    ascii code: 67 character: C haeufigkeit :702
    ascii code: 68 character: D haeufigkeit :676
    ascii code: 69 character: E haeufigkeit :556
    ascii code: 70 character: F haeufigkeit :683
    ascii code: 71 character: G haeufigkeit :894
    ascii code: 72 character: H haeufigkeit :589
    ascii code: 73 character: I haeufigkeit :823
    ascii code: 74 character: J haeufigkeit :503
    ascii code: 75 character: K haeufigkeit :994
    ascii code: 76 character: L haeufigkeit :630
    ascii code: 77 character: M haeufigkeit :569
    ascii code: 78 character: N haeufigkeit :634
    ascii code: 79 character: O haeufigkeit :1054
    ascii code: 80 character: P haeufigkeit :627
    ascii code: 81 character: Q haeufigkeit :766
    ascii code: 82 character: R haeufigkeit :555
    ascii code: 83 character: S haeufigkeit :603
    ascii code: 84 character: T haeufigkeit :545
    ascii code: 85 character: U haeufigkeit :771
    ascii code: 86 character: V haeufigkeit :766
    ascii code: 87 character: W haeufigkeit :812
    ascii code: 88 character: X haeufigkeit :618
    ascii code: 89 character: Y haeufigkeit :805
    ascii code: 90 character: Z haeufigkeit :697
    ascii code: 91 character: [ haeufigkeit :1
    ascii code: 93 character: ] haeufigkeit :1
    ascii code: 97 character: a haeufigkeit :21480
    ascii code: 98 character: b haeufigkeit :16855
    ascii code: 99 character: c haeufigkeit :24839
    ascii code: 100 character: d haeufigkeit :19889
    ascii code: 101 character: e haeufigkeit :18675
    ascii code: 102 character: f haeufigkeit :18823
    ascii code: 103 character: g haeufigkeit :31853
    ascii code: 104 character: h haeufigkeit :22775
    ascii code: 105 character: i haeufigkeit :23451
    ascii code: 106 character: j haeufigkeit :18556
    ascii code: 107 character: k haeufigkeit :25625
    ascii code: 108 character: l haeufigkeit :19192
    ascii code: 109 character: m haeufigkeit :21237
    ascii code: 110 character: n haeufigkeit :19131
    ascii code: 111 character: o haeufigkeit :21870
    ascii code: 112 character: p haeufigkeit :21971
    ascii code: 113 character: q haeufigkeit :27176
    ascii code: 114 character: r haeufigkeit :23329
    ascii code: 115 character: s haeufigkeit :18013
    ascii code: 116 character: t haeufigkeit :26228
    ascii code: 117 character: u haeufigkeit :27599
    ascii code: 118 character: v haeufigkeit :23758
    ascii code: 119 character: w haeufigkeit :20354
    ascii code: 120 character: x haeufigkeit :18573
    ascii code: 121 character: y haeufigkeit :21708
    ascii code: 122 character: z haeufigkeit :21997
    ascii code: 225 character: á haeufigkeit :1
    ascii code: 241 character: ñ haeufigkeit :15
    

    Z schrieb:

    Zum Testen des Outputs ist das hier ganz gut: http://www.cryptool.org/de/
    Ich kenne nur die ältere Version von vor 4 Jahren, aber die hat mich schon begeistert.

    kann ich da meinen text online knacken lassen? keine option gefunden ich habe und zum installieren des programms bleibt leider keine zeit, da dies hier nur ein hobbyprojekt mit begrenzten zeitlichen ressourcen ist. 😕

    Rhombicosidodecahedron schrieb:

    Wie hast du die einzelen Zeichen verschlüsselt? Vigenère-Chiffre?

    Machst du sowas wie Key-Expansion?

    das ist ein ziemlich simpler algorithmus, den ich mir ausgedacht habe, angelehnt am rotationsprinzip, bloß das die rotation vom passwort abhängt.
    oops .. gerade mal kurz über vigenere chiffre gelesen. oje, das gibts also schon 😃 naja, so ählich läuft das ab, ja. es wird zusätzlich noch ein variabler verschiebungsfaktor generiert, der key wird nicht verlängert.



  • Jester schrieb:

    wieviele stunden brauchst du denn? man kann ja enorm viel rauslesen, also sollte das ja nicht so lange dauern, oder?

    edit: keine frage dass das ein schwachpunkt ist, du klingst nur grad so schön vollmundig, dass ich mal nachfragen wollte. 🙂

    Weil es ein trivialer Angriffsvektor ist. Aber gerne, in 5h hab ich etwas fertig - zahlst du im voraus?



  • Würde man den Key des zweiten Passworts als solchen erkennen? Also ist der irgendein Wort oder enthält längere Folgen wie abcd oder 1234?



  • @Cryptor, Cryptool bietet verschiedene Analysemöglichkeiten die den Cyphertext nach Regelmäßigkeiten durchsuchen und damit Schwächen der Verschlüsselungsmethode aufzeigen können.

    Eine relativ einfache und gute Verschlüsselung ist SHA-256-XOR-CBC. Daran würde sich unser ambitionierter 100€-Hacker hier aber die Zähne ausbeißen. :p


Anmelden zum Antworten