Kryptografie - Testen der Sicherheit eines selbstgeschriebenen Programms
-
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ändertich schätze mal, diese 'teaser' erleichtern das entschlüsseln beträchtlich.
http://m.uploadedit.com/b021/1379535954579.txtviel 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. :panalysiert 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?
-
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.
-
cooky451 schrieb:
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?
Du nimmst ein Passwort, machst daraus einen SHA256-Hash, der mittels XOR den ersten Block des Plaintexts verschlüsselt. Mit dem so enstandenen Block XORst du den nächsten Block, usw. (Cypher Block Chaining). Machst du das selbe mit dem Cyphertext nochmal, ist der Klartext wieder da. Für den Normalsterblichen ist das nicht zu knacken.
-
Ja, oder du nimmst SHA-256, baust dir nen CSPRNG draus den du mit nem Key seedest und hast einen Stream-Cipher den auch die NSA nicht knacken kann. Yay. Oder, noch besser: Du nimmst AES-CBC, BAM, das kann nicht mal mehr Shade Of Mine hacken!
-
@SeppJ: keine frage, dass das knackbar ist -- imsbesondere mit dem Mund, da iss gleich nochmal so leicht.
Ist Angriffsvector eigentlich ein Krypto-Fachbegriff?
-
SeppJ schrieb:
Niemand löst es, weil es einfach viel Mühe ist, aber prinzipiell ließe es sich durch konsequente Anwendung einfacher Techniken lösen.
Hey, ich hab ne prima idee. Ich knacke das. Ihr sagt mir was ich machen muss. Wie gehts los?