![]() |
Verschlüsselungs-Idee / Crackme
Letztens durchfuhr mich die Idee einer Verschlüsselung, die nutzerfreundlich und schwer(?) knackbar ist. Die Idee dahinter basiert auf polyadischen Zahlensystem (z.B. Oktal-/Hexadezimalsystem). Diese benötigen ja einen "Veranschaulichung" in dem System, in dem man arbeitet.
Nehmen wir mal das Hexa-System. Die "Veranschaulichung" / der Schlüssel zu diesem System besteht ja bekanntlich aus den Zeichen und der Reihenfolge
Code:
Meine Idee ist die folgende:
0123456789ABCDEF
Was wäre wenn der Schlüssel aus den gleichen Zeichen in anderer Reihenfolge bestehen würde?
Code:
Schon müsste man (im schlimmsten Fall) 20922789888000 (16!) Möglichkeiten durchprobieren bis man die richtige Reihenfolge gefunden hat.
70B12D8E345A69CF
Was wäre wenn der Schlüssel länger und aus nicht aufeinanderfolgenden Zeichen bestünde?
Code:
In diesem Fall gäbe es 51090942171709440000 Möglichkeiten.
94age3jdc2nm30qpyxt67
Was wäre wenn der Schlüssel ein nutzerdefinierter Text ist?
Code:
generiert aus
Das itmenMrkz
Code:
Dadurch würden sehr schön lange Schlüssel entstehen, die sich ein normaler Mensch trotzdem noch merken kann.
Das ist mein Merksatz
Der ganze obige Text verschlüsselt könnte z.B. so aussehen: (Wer den Schlüssel herausbekommt, darf bei der nächsten Scrabble-WM mitmachen)
Code:
Dies Beispiel zeigt einen Nachteil dieser Art der Verschlüsselung: Solange der Schlüssel weniger als 256 Zeichen enthält, vergrößert sich dadurch das Datenvolumen. (Was aber bei der heutigen Technik nicht das Problem sein sollte)
hua-DrXDhXrlipXDDhPüpeXDIopFRPXDRmXPü ADesDu-mlDmüfh-mlDAR-AsfRDDmf-sFADf-giI PDf-sD oRDDgehAhXDpl mAPXDüosürulDmüfh-mlD-gf-DrXDimXgDeXDimaaauRDmArFüpADRoaaauRDRoüFüpADghSPi pDslmloAADahSA-XADlSArRmlDesDpfehDDhspFfRDDSDhsfRDfüomh RDDPIFPiXDfaSeraRDehShFfRDlXüIsSRDfmlD-mADgeoeA RDm-ID oRDRhSgPmlDrpmüASADfüASfsXDpXaüIaADDme-üehDXiPioü-DIhDaRSAD huaAfRDFPIhsfRDXXrF- RDShhPPpXDhXXf-spDameluiAD Ali-mlDrüiSisfDmhmrsfRD-she- RDDmf-sFAD opofglDaIAFP RDamüFüpADem-ep-ADuamsoFADPmXgIiADüA-psfRDfA-pssXDpXaüIaADShsisFADDhPüIaADDhpo FADRoüiXsRDf-IRrfRDSgoospeDluoegpAD hSgPmlDPl rRmlD mü PmlDm-pgRmlDDpmmR RD m -PpXDSg ouehDDhspFfRDF-üRSfRDXsFlipXDpmXFPPXDmArFüpAD gooIDpDFüSpgrRDfüe pPPDIAaSmpüDumüRASADDmeAAmlDhhhRppXD ogSpPPDArsRrfRD mroafRDumXlgpADSshe- RDReDu-XADeS FPiXDmArFüpADFümI-pXDF-üIaFADF-ase-ADphDSaFADRoaaauRDRoXrDeXDRoXse-ADDg ougRDsSfrsfRDDmfsFrADSogFfihDerXsg hDilDoXühDAr-pofiDhRX PDRDsSDuauRDimarspeDlIRse-ADüe meX-Dhhmh-mlDoeihAmlDmüfh-mlDüüfffeAD eohsfRDl S-hfDDffF-l RDIPPDAemDrhSggXXDihFgPmlDm-IrRmlDuDfüASADhiüprfRDSmlsPPXDpX-psfRDaSfFASAD ArFüpADfüASffPD ArFüpADfamDSiADüeos FADmüfüofRDlXü IfRDAhDSaFADüüfffeADimroafRDumXlgpADihFggXXDSluhsfRDslRiRoRDsSimrhRDghsfrPhDrShPme-DIspXAoiDaPrDeh-DpAlsFrADmüfahmlDuRrsorADahDFmpüDprsRrfRDDhpo FADFapFSaADRoüFüpADmoPS aADuSiSaFADFap RSADSmüoaAhDFm PrAhDgSSlIühDFsurSihDFmer PhDühpPrulDf mmASADegiAPXADf-IRrfRDahRiRPXDrSAimmADlXree-ADfahSaFADReDphpXDDhpo FADRAihFfRDRAieIoRDRmrPfeAD Aü IfRDAhDSaFADüüfffeAD oIosfRD-maaauRDiSiIApADoüA rpeDriXAAsPDAArggXXDhhli-mlDgma-FFADRoXrDeXDDSRFüpADmA-i-pXD eoouIADmaürsfRDXsSaoFADhmlsPPXDIshAp-ADphDhAmlDAoPasfRDoopo FADSe SmgRDsSfrsfRDüAüIaFADF-ase-ADphDSaFADFüDRppXDmmloauRDihheDDRDpSohsfRDiosAuSRDPSARrPADm-pXhFADfosFIüADFhhFAiXDüSDorphDpSohsfRDiAüfRFADRAihFfRDpXrrPmlDü-uoXSADimXmiemDlhhrefRDploPFPhDDlSfIDiDmSmü-mhDohIfIDiDmmorSihDFmelSr-DümDep-ADpmr FfRDASiSaFADüemRIpeDrfmSlpXDFümmelXDihRfrfRDüeohgrRDfüe pPPDIAaSmpüDumüRASADDmf-sFADDmoeAiXDlf-AsuRD Aü-sFADesRIRiXD eol-APDf-PhAmlDASorF iDDmfsFrADmü eeD-DemüDSiADhXlSaFADf hSüoXDpAlsFrADmüfahmlDPmüpofRDll rDeXDmmlsPPXDuhRiRoRDsSimrhRDSipgRmlDoeihAmlDigf-sFADDSDrDeXDpsDpiiXDlim gFRDsSimrhRDDmeDSuRDiXüFüpADFasa-lXDhhSgPmlDIsFReeXDRoüFüpADührouIADAAürsfRDDSRFüpADmA-i-pXDf-PrefRDüeAFRiXDihDSaFADmorAe-ADiSfRh-ADpSirefRDAhDfDFADgAüF- RDhPIrRmlD RrlipXDphF-FhXDXPu-DrXDSArrPmlDüefFüpADRoarDeXDIhSgPmlDue -FFADüe
So, jetzt die Frage: ist das System wirklich (ich bilde es mir jedenfalls ein) nur durch bruteforcen zu knacken? |
Re: Verschlüsselungs-Idee / Crackme
Das ist im Prinzip nur eine stinknormale Substitution von unterschiedlichen Zeichen (der Schlüssel bildet nur eine art Lookup-Table von einer Darstellung in die Andere) und somit genauso einfach durch die Analyse der statistischen Verteilung der Buchstaben zu lösen. Sorry, aber das kryptographisch genauso anspruchslos wie Cäsar oder ROTx.
Die einzige Lösung das sicher zu machen ist ein One-Time-Pad. Aber dann ist XOR weniger aufwändig und genauso sicher ;-) |
Re: Verschlüsselungs-Idee / Crackme
Schwachstellen sind hier: Häufigkeit der verschiedenen Buchstaben in verschiedenen Sprachen.
In Deutsch ist z.B. das E der häufigste Buchstabe. So hätte man schon mal über eine einfache Statistik einen Teil des Schlüssels geknackt. Dann gibts da noch KURZE WÖRTER (3 Buchstaben) davon gibt es nicht soo viele und auf die kann man sich beim Knacken konzentrieren.... Also die Verschlüsselung ist Mist. |
Re: Verschlüsselungs-Idee / Crackme
Danke schon mal fürs drüber Nachdenken.
Zitat:
Zitat:
Zitat:
|
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Ein Beispiel hierfür ist ja die XOR-Verknüpfung. Kenne ich die verschlüsselte Nachricht und die PlainText-Nachricht kann ich per XOR beider den Schlüssel errechnen. Meiner Erinnerung nach gilt ein Verschlüsselungsverfahren dann als sicher, wenn man den Algorithmus offen legen kann und trotzdem der Schlüssel nicht errechnet werden kann. Das führt ja in vielen fällen zu dem letztendlichen Problem wie die Schlüssel ausgetauscht werden sollen. Aber ich denke das geht jetzt zu sehr an Deinem Thema vorbei. Interessant wäre es, ob Dein Algorithmus zur Verschlüsselung offen gelegt werden kann und du eine PlainText-Nachricht und das entsprechende verschlüsselte Ergebnis posten kannst, ohne das Gefühl zu bekommen, dass es dadurch knackbar wird. Dann wärst du einen ganzen Schritt weiter. Greez, Chris |
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Zitat:
![]() |
Re: Verschlüsselungs-Idee / Crackme
Sehe ich es richtig, dass du dich im Bereich der symetrischen Verschlüsselung befindest?
Also der Schlüssel selber muss irgendwie auf sicheren Wegen bekannt gemacht werden? Greez, Chris |
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Das ist zwar sehr altbacken, aber bei der Idee stand die Usability im Vordergrund. (Bsp.: Ein Mensch gibt einem Anderen eine Datei und sagt den Schlüssel dazu. Deshalb sollte der Schlüssel nutzerfreundlich aufgebaut sein) Und noch was: Ich bin hier nicht auf der Suche nach dem heiligen Gral. (Ich heiße ja auch nicht Indiana Jones :) ) Die User/Programme, die diese Verschlüsselung nutzen, sollten schon wissen wie man mit sensiblen Daten umgeht. Das sicherzustellen ist ja auch nicht Aufgabe der Verschlüsselung. |
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Zitat:
PS: "Das itmenMrkz" = "Das ist mein Merksatz" "DDaass iisstt mmeeiinn MMeerrkkssaattzz" "Das ist mein Merksatz Disaster" ... hier gehen wertvolle Informationen verloren [add] Aber ein Vorschlag: nutze die Doppelten Buchstaben doch für Vertauschopterationen im aktuellen, bis dahin "berechneten" Schlüssel. |
Re: Verschlüsselungs-Idee / Crackme
Zitat:
Zitat:
Zitat:
|
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 10:21 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