Algorythmus knacken

Hallo,

habe ein .txt in der sich etwa 20.000 16 stellige codes befinden die alle nach einem bestimmten Algorythmus aufgebaut sind...

Suche jetzt ein Programm das anhand der 20 k codes diesen Rythmus knacken kann, und mir neue, nach dem gleichen Rythmus aufgebaute 16 stellige codes ausgibt..

kennt jemand ein solches Programm oder hat eine Idee das ganze zu schaffen?

Vielen Dank schonmal

greetz codeX
 
Code:
while $verstanden = false {
  $verstanden = read([url=http://de.wikipedia.org/wiki/Algorithmus]this[/url])
}

So, da nun hoffentlich verstanden hast, was ein Algorithmus ist, kannst du deine Frage(n) ja nun genauer formulieren. :)
 
okay, habe verstanden ^^

also die 16 stelligen codes bestehen immer aus den zahlen 0-9 und ca. 10 verschiedenen buchstaben.

diese sind immer unterschiedlich angeordnet..

ich glaube anhand von einem Beispiel kann man sich am besten ein Bild davon machen! Hier mal 20 der 20.000 codes:

p8wmmp692d6t73pg
03mdaw5591j8p1p5
p80871d307330t09
030wt11a61m246g1
80m0jm395979t539
7tp8ap0wt280pwdj
07wa1t244091t18j
0t24t60g4p30t701
p8004868td2w642m
784390m3m46tj047
1501mg10887g5pjt
p7gw1t16t30wd114
7p747matmdm8a4g6
001g6686j0a0w709
8g5damw0707aa374
7771w972996906dm
tp05m9d5jg49a0j1
08p3j9p0d14t6107
1g6tw76j3200d0wa
00m15d2j3101a151

greetz codeX
 
Das Problem ist, dass es unendlich viele Algorithmen gibt. Es kann dir so keiner sagen, ob das entschlüsselt werden kann und wenn ja wie. Du kannst mal versuchen mit Hilfe einer Suchmaschine herauszufinden, wie diese Strings erzeugt werden. Dafür musst du ja nur wissen mit welchem Programm diese Zeichenketten generiert wurden.
Falls du da nicht fündig wirst, kannst du noch alle gängigen Hash-/Verschlüsselungsverfahren an einem String (wovon du den Klartext kennst) durchprobieren. Wenn jedoch ein Salt verwendet wurde, kommst du auch damit nicht sehr weit. Dann blieben meines Wissens nur noch kryptografische Analysen und/oder Reverse Engineering.
 
Es ist sehr unwahrscheinlich, dass du anhand der Codes auf den Algorithmus schließen können wirst, aber vielleicht kann dir jemand helfen, wenn du sagen kannst, wofür die Codes sind.
 
Erinnert mich an diese CocaCola-Codes xD ...

@TS: Ja ich denke, wenn man den Kontext kennt kann dir evtl. jemand helfen. Es sieht sehr nach Hashes aus, aber es könnte auch ein RollCode sein.
In jedem Fall denke ich aber, dass eine statistische Analyse einige Informationen zutage fördert. z.b. häufigkeit der einzelnen Muster oder deren abhängigkeit voneinander.
 
Es gibt unendlich viele Algorithmen, die diese 20.0000 codes erzeugen kann.
Wie willst du herausfinden, welches dieser unendlich vielen Algorithmen nun auch weitere gültige andersartige codes erzeugt?
 
Nehmen wir an es ist ein symetrisches Kryptosystem so ergibt sich folgendes Schema:

Verschlüsslung:
Algorithmus( Text.Plain, Key ) = Text.Crypted
Algorithmus( Text.Crypted, Key) = Text.Plain

Um nun auf den Algorithmus zu schließen benötigst du, abgesehen von einer guten Begabung in Mathematik, einige gültige Kombinationen vom Schema Key:(Text.Plain,Text.Crypted)

Solltest du keine gültige Kombination haben, so könntest du probieren anhand von typischen Charistiken auf den benutzen Verschlüsselungsalgorithmus zu schließen und probieren einen der in der Datenbank vorkommenen verschlüsselten Texte zu finden.

Dies funktioniert allerdings nur wenn es ein Resultat eines symetrisches Kryptosystem ist und kein Resultat eines asymetrisches Kryptosystem bzw. ein Hash ist.
 
informationstheoretisch ist das problem nicht eindeutig lösbar ...

wie +++ath0 schon geschrieben hat, gibt es viele algorithmen die diese werte als ausgabe haben können ...

ob dies nun unendlich viele sind, oder nicht ist substanziell egal, das problem ist sogar noch etwas größer:

der algorithmus, egal wie er ausssieht, lässt sich als turingmaschine darstellen. die aufgabe hier wäre also diejenige turingmaschine zu finden, die die betreffende ausgabe erzeugt, von der ein teil (besagte 20k zeilen) vorliegt.

aus der aufgabe weitere codes zu erzeugen folgt, dass die ausgabe (keyspace) größer ist, als das was bekannt ist. (eigentlich trivial)

ohne den algorithmus, oder die erzeugende turingmaschine ist es nicht möglich diesen fehlenden teil der ausgabe zu erzeugen. ohne den fehlenden teil ist es nicht möglich eine potentielle turingmaschine gegen das problem zu testen ... da man das problem die besagte turingmaschine/ den algorithmus zu finden auch durch eine turingmaschine lösen können muss (alternativ wäre das problem eh größer als "nur" turingvollständig, und somit nicht mit bekannten mitteln lösbar) kann man nun das problem theoretisch lösen in dem man eben diese turingmaschine findet.

egal ob man diese turingmaschine nun hat, oder wo sie herkommen soll, sie hat eine interessante eigenschaft:
man kann nicht sagen, ob diese turingmaschine hält oder nicht ...

eine turingmaschine kann dieses problem also nicht zweifelsfrei berechnen ...

laut Church-Turing-These kann ein mensch das in diesem fall auch nicht.

das ende vom lied: man kann nichtmal sagen ob die bemühungen, wie auch immer sie aussehen, vom teil der ausgangsdaten auf den algorithmus zu schließen jemals zu einer aussage über die lösbarkeit der aufgabe kommen ... (intuitiv: "weil immer eine rest-unsicherheit besteht, ob ein potentieller algorithmus auch wirklich die vorhandenen aber unbekannten ausgaben erzeugt, und eben nur diese")

all dies beinhaltet keine aussage darüber ob man einen "passenden" algorithmus nicht mit einer hinreichenden gewissheit finden kann ... den original algorithmus mit gewissheit zu finden, ist auf grund des entscheidungsproblems in endlicher zeit nicht möglich
 
@MemoryMatt:
Es handelt sich hier aber nicht um ein Verschlüsselungsverfahren, sondern um einen Algorithmus, welcher n Serials errechnet. Entweder mit Fremdeingabe oder eingenständig.

Edit:
ob dies nun unendlich viele sind, oder nicht ist substanziell egal, das problem ist sogar noch etwas größer:

Es sind notwendig immer unendlich viele Algorithmen. Es gibt auch unendliche viele Berechnungsvorschriften, die die 1 erzeugen. Eine kleine Untermenge davon ist zum Beispiel: [100-99, 101-100, 102-101....]
Also übertragen auch unendlich verschiedene Automaten, die diese Ausgabe erzeugen. Man wird für diese 20.000 Serials also auch unendlich viele Automaten finden.

Die einzige Möglichkeit ist auf "Ockham's razor" zu vertrauen. Der menschlichste und einfachste Algorithmus, der all diese Serials erzeugt, ist mit hoher Wahrscheinlichkeit der Gesuchte.
 
Zuletzt bearbeitet:
Zurück
Oben