Kryptografie - Testen der Sicherheit eines selbstgeschriebenen Programms



  • 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



  • Shade Of Mine schrieb:

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

    was kriege ich wenn du es nicht hinkriegst? -- schade übrigens dass du jetzt so lange zum antworten gebraucht hast, inzwischen sind hier schon wesentlich mehr Informationen im thread als heute morgen.



  • Z schrieb:

    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

    Aus SHA-256 kann man ganz einfach einen wirklich sicheren Algorithmus bauen, wo soll da denn der Witz sein? 😕

    @TE

    cooky451 schrieb:

    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?


  • Mod

    Also bei 5 Stunden a 100 Euro wäre ich auch dabei. Shade Of Mine, wir können uns ja zusammen tun, wenn jemand für uns beide insgesamt 10 Mannstunden bezahlen möchte. Ich habe bloß bisher noch nichts in diesem Thread geschrieben, weil der COde auf dem ersten Blick schon als total unsicher erkennbar ist. Wie kann man da bloß drei Seiten drüber diskutieren? Das ist doch bloß wieder ein weiterer Fall eines 4000-Teile Puzzles, wie es so oft hier im Forum vorkommt. Niemand löst es, weil es einfach viel Mühe ist, aber prinzipiell ließe es sich durch konsequente Anwendung einfacher Techniken lösen. Bloß weil niemand Bock hat, für Lau so viel Arbeit zu investieren, hält sich der TE nun wieder für den Oberhacker. Dabei bedeuten ein paar Stunden Analyseaufwand zum Knacken eines Kryptosystems, dass man auch gleich Klartext hätte schreiben können.


Anmelden zum Antworten