Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Verschlüsselungs-Idee / Crackme (https://www.delphipraxis.net/149748-verschluesselungs-idee-crackme.html)

chaosben 29. Mär 2010 11:50

Re: Verschlüsselungs-Idee / Crackme
 
Zitat:

Zitat von Luckie
Durch Erklärung des Prinzips (siehe oben) bist du nicht zu überzeugen?

Nö. So schnell nicht. :)

Ich nehm mal deinen Text
Code:
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.
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.

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:
 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
Die Häufigkeiten darin sind so verteilt:
Code:
 =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
Und wie knackt man das jetzt? Jedes D ist ein Leerzeichen? *wunder* :)



Zitat:

Zitat von himitsu
Aber ein Vorschlag: nutze die Doppelten Buchstaben doch für Vertauschopterationen im aktuellen, bis dahin "berechneten" Schlüssel.

Das versteh ich nicht.

Luckie 29. Mär 2010 11:59

Re: Verschlüsselungs-Idee / Crackme
 
Zitat:

Zitat von chaosben
Ich nehm mal deinen Text
Code:
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.
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.

Nein, würden wir nicht. Da das Leerzeichen kein Buchstabe ist.

Zitat:

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:
 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
Die Häufigkeiten darin sind so verteilt:
Code:
 =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
Und wie knackt man das jetzt? Jedes D ist ein Leerzeichen?
Ich habe dir nur das Prinzip der Häufigkietsanalyse erläutert. In wie fern sie auf deine Verschlüsselung anwendbar ist, kann ich nicht sagen. Und noch mal zum Nachlesen: http://de.wikipedia.org/wiki/H%C3%A4ufigkeitsanalyse

PS: Voraussetzung ist natürlich, dass man richtig zählt: http://www.kas-bc.de/krypto/analyse.php

jfheins 29. Mär 2010 12:03

Re: Verschlüsselungs-Idee / Crackme
 
Wenn ich ehrlich sein darf: mir ist der Algorithmus noch nicht ganz klar ... :?:

Phoenix 29. Mär 2010 12:08

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.

himitsu 29. Mär 2010 12:09

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:
""         "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"
...
Keine schlechte Idee ist es auch den "Text" (welcher verschlüsselt werden soll) auch noch mit in die Verschlüsselung einzubeziehen.
(so würde dann z.B. aus einen "a" ein "abc" und ein späteres "a" würde vielleicht als "xyz" verschlüsselt)

chaosben 29. Mär 2010 12:29

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. :)

Phoenix 29. Mär 2010 12:42

Re: Verschlüsselungs-Idee / Crackme
 
Zitat:

Zitat von chaosben
denn man kann die Daten (wir reden hier ja nicht nur über Text sondern allg. über Daten) ja vor der Verschlüsselung noch packen [...]

Warum benutzt Du dann nicht gleich Passwortgeschützte ZIP-Archive, wie man sie z.B. mit 7Zip ganz einfach erzeugen kann? Mit AES-256 ist das sogar relativ sicher.

Edit Nachtrag: Gibts sogar schon passenden Code dafür: http://www.progdigy.com/?page_id=13

chaosben 29. Mär 2010 12:44

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.
Seite 2 von 2     12   

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