![]() |
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Ich nehm mal deinen Text
Code:
Darin ist das häufigste Zeichen das Leerzeichen (54 mal) dann kommt das e (35 mal). Damit würde man mit der e-Regel schon mal reinfallen.
Einfach nur Buchstaben zählen und ersetzen. Wenn es ein deutscher Text ist und der häufigste Buchstabe bei dir ist ein X, dann kann man davon ausgehen, dass es im Original ein E ist. Wenn man dann noch etwas über die Struktur der Sprache weiß und etwas logisch nachdenkt, hat man den Text sehr schnell entschlüsselt.
Nehmen wir an, wir fallen nicht herein und ich verschlüssele deinen Text mit dem Satz "Das ist mein Merksatz", dann kommt das heraus
Code:
Die Häufigkeiten darin sind so verteilt:
MtktDtasDDDmiikinnnDDDD eMzarnnDDDDzaeekrkasDDDae mtz DsDDDMtM tmnmsDDD aikkmaasDDDananazm sDDDzrmeDneisDDDzzizsnMmsDDDDtmkakenDDDDmmiszrm sDDDtnnairnnDDDDisDMtMnnDDDDeknM ratsDDDsMinsmaasDDDamzansaasDDDDM tassDDDe i maitsDDDrDiDiDrDsDDDaanrDzrasDDDszmkeisssDDDaisiinaasDDDrmtiaMeDsDDDktmneMDDsDDDteeszD DsDDDeekDiDrDsDDDmeD tassDDDireemmDasDDDtetaaieraDDDarmsMmDDsDDD mtDninssDDDmMeMtMnnDDDDtaantMnnDDDDn zkmtr sDDDDsmnkzitsDDDmreD kkasDDDerr rrenDDDD raMM kisDDDtnnairnnDDDDDkmitDsnaDDDikkDrisssDDDDetDaMnnDDDDisDMtMnnDDDDe szakisDDDkseakr raDDDrMeMtMnnDDDDtaantMnnDDDDMmkazrm sDDDktezDneDsDDDtritteatsDDDia airnnDDDDiM saneisDDDMm zimaasDDDmmktMreisDDDkMzk ttsDDDrD kttaasDDDMrMtmtDisDDDra tkrkasDDDszztrnaasDDDk rseaitsDDDkmMtmmDasDDDeDreeDkisDDDr DnrmnasDDDeiiekrkasDDDntzreteDsDDDDDrmiMm sDDDszmirrenDDDDtrDtmrnnDDDDtaantMnnDDDDmaentMnnDDDDDssnrratsDDDtmza kkasDDDazrtMneDsDDDrsarzMzssDDD Dkk Mm sDDDttiekrkasDDDsnsak kisDDDkzsiamtzDDDD
Code:
Und wie knackt man das jetzt? Jedes D ist ein Leerzeichen? *wunder* :)
=43
M=40 t=60 k=45 D=303 a=75 s=90 m=48 i=48 n=67 e=46 z=30 r=53 Zitat:
|
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Zitat:
![]() PS: Voraussetzung ist natürlich, dass man richtig zählt: ![]() |
Re: Verschlüsselungs-Idee / Crackme
Wenn ich ehrlich sein darf: mir ist der Algorithmus noch nicht ganz klar ... :?:
|
Re: Verschlüsselungs-Idee / Crackme
Eine Verschlüsselung ist nur gut, wenn sie zufällig ist.
Das in der verschlüsselten Form viele doppel- und dreiungen auftauchen ist schonmal eine massive Schwachstelle. Kennst Du die Schwachstelle der Enigma, wegen der die Nachrichten letzten Endes ohne Kenntnis der Schlüssel entschlüsselt werden konnten? Es war der einfache Fakt, dass die Maschine lediglich niemals ein A auf ein A veschlüsselt hat. Die Schlüssel waren immer länger als die Nachrichten (durch die rotierenden Walzen). Die Methode eine symmetrische Verschlüsselung zu 100% unknackbar zu machen ist es, für die Verschlüsselung mittels XOR einen zufällig generierten Schlüssel zu benutzen der länger ist als der zu verschlüsselnde Text. Dein Problem ist also nicht die Verschlüsselung an sich, sondern einfach der Schlüssel. Benutze einen guten (=nahe an der Normalverteilung) Zufallszahlengenerator, der sich mit einem schön großen Seed initialisieren lässt und pro Initialisierungs-Wert dennoch die gleiche Sequenz erzeugt. Dies liefert Dir soviele unterschiedliche mögliche Schlüssel wie Du Seeds benutzen kannst. Dann verwende einen ordentlichen Hash-algoritmus, der aus einer beliebigen Schlüsselphrase einen Seed-Erzeugt. Voilá: Du hast eine ziemlich sichere Verschlüsselung. Baust Du das modular, so dass Du den Zufallszahlengenerator und den Hash-Algorithmus austauschen kannst, so kannst Du mit der Zeit immer wieder auf einen anderen / sichereren Generatoren bzw. Algorithmus umsteigen. |
Re: Verschlüsselungs-Idee / Crackme
Das E ist durchschnittlich der häufigste Buchstabe und das Leerzeichen ist ein Zeichen. :stupid:
Nja, du verwirfst ja aktuell alle mehrfachen Zeichen. Und diese zusätzlichen/ungenutzten Zeichen wandelst du irgendwie in eine Verrechnungsvorschrift um, z.B. um - Buchstaben/Zeichen zu vertauschen - oder um Buchstaben/Zeichen zu verändern (z.B. aus zwei "a" wird ein "b" ... kommt im Schlüsseltext wiederum ein "b" vor, so wird aus den zwei "b"'s irgendwas Anderes usw.)
Code:
Keine schlechte Idee ist es auch den "Text" (welcher verschlüsselt werden soll) auch noch mit in die Verschlüsselung einzubeziehen.
"" "Das ist mein Merksatz"
"D" "as ist mein Merksatz" "Da" "s ist mein Merksatz" "Das" " ist mein Merksatz" "Das " "ist mein Merksatz" "Das i" "st mein Merksatz" "saD i" "t mein Merksatz" "saD it" " mein Merksatz" "siD at" "mein Merksatz" "siD atm" "ein Merksatz" ... (so würde dann z.B. aus einen "a" ein "abc" und ein späteres "a" würde vielleicht als "xyz" verschlüsselt) |
Re: Verschlüsselungs-Idee / Crackme
@himitsu:
Jetzt hab ich's verstanden. Danke :) Was die Häufigkeitsanalyse angeht: Ja ... das ist ein Problem (inzwischen hab ichs verstanden). Aber auch nicht wirklich, denn man kann die Daten (wir reden hier ja nicht nur über Text sondern allg. über Daten) ja vor der Verschlüsselung noch packen und schon schlägt jede Sprachanalyse fehl. @Sebastian: Ja ... so gehts natürlich auch. :) |
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Edit Nachtrag: Gibts sogar schon passenden Code dafür: ![]() |
Re: Verschlüsselungs-Idee / Crackme
Ist gibt hier bei mir keinen Anwendungsfall ... ich brauche keine Verschlüsselung (im Moment :)). Das ganze war nur ein Gedankenfurz, den ich mal von euch filtern lassen wollte. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz