AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verschlüsselungs-Idee / Crackme

Ein Thema von chaosben · begonnen am 29. Mär 2010 · letzter Beitrag vom 29. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#11

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 12:50
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 von himitsu:
Aber ein Vorschlag: nutze die Doppelten Buchstaben doch für Vertauschopterationen im aktuellen, bis dahin "berechneten" Schlüssel.
Das versteh ich nicht.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 12:59
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
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#13

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 13:03
Wenn ich ehrlich sein darf: mir ist der Algorithmus noch nicht ganz klar ...
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#14

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 13:08
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#15

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 13:09
Das E ist durchschnittlich der häufigste Buchstabe und das Leerzeichen ist ein Zeichen.

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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#16

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 13:29
@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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#17

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 13:42
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
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#18

Re: Verschlüsselungs-Idee / Crackme

  Alt 29. Mär 2010, 13:44
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.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz