Hallo Leute Schaffe es leider nicht eine Warscheinlichkeitsrechung aufzustellen. Darum bitte ich um Hilfe. Angenommen ich wäre ein Hacker, und wollte eine Seriennummer eines Programmes knacken. Angenommen der Benutzername ist bekannt (soll auch noch in mein Programm einfliesen, um die Sicherheit zu erhöhen). Die Seriennumer ist 32 Stellen lang. Es können Zahlen von 0 bis 9 und Buchstaben von A bis Z verwendet werden. (Ein paar Zahlen und Buchstaben sind verboten nähmlich 6 Stück ) Wie lange wäre ich beschäftigt, wenn ich zb. 1000 Versuche pro Sekunde mache? Mit welcher Methode wäre ich schneller am Ziel? Zufallszahlen ausprobieren oder 000000001 dann 0000002 usw probieren? Wie sicher wird die Methode wenn ich den Benutzernamen miteinfließen lasse ?
A..Z = 26 0..9 = 10 -- 36 Verboten -6 -- Erlaubt: 30 Zeichen Seriennummer mit 32 Stellen ergibt 30^32 = 1.853*10^47 mögliche Seriennummern 1.853*10^47/1000 = 1,835*10^44 Sekunden nach Nummer suchen 1,835*10^44 sind ca. 5.88*10^36 Jahre
> Die Seriennumer ist 32 Stellen lang. Es können Zahlen von 0 bis 9 > und Buchstaben von A bis Z verwendet werden. (Ein paar Zahlen und > Buchstaben sind verboten nähmlich 6 Stück ) d.h. dein Alphabet besteht aus 29 Symbolen > Wie lange wäre ich beschäftigt, wenn ich zb. 1000 Versuche pro > Sekunde mache? dazu muessen wir erstmal wissen, wieviele Kombinationen es gibt. DU hast 32 Stellen. Gut Für die erste Stelle gibt es 29 Möglichkeiten. Für jede einzelne dieser Möglichkeiten in der ersten Stelle hast du 29 Möglichkeiten für die 2.te Stelle. Für jede Kombination aus 1.ter und 2.ter Stelle gibt es wieder 29 Möglichkeiten für die 3.te Stelle. usw. Insgesammt gibt es 29 hoch 32 Möglichkeiten: Moment: tip, tip, tip das sind 6,2 mal 10 hoch 46 Möglichkeiten. Bei 1000 Versuchen in der Sekunde, brauchst du also 6,2 mal 10 hoch 43 Sekunden um alle Kombinationen durchzutesten. Ein Jahr hat 60*60*24*356 -> ~ 3 mal 10 hoch 7 Sekunden. d.h. du brauchst ca. 2 mal 10 hoch 39 Jahre. Das Universium ist ca. 15 Milliarden Jahre alt (ob das jetzt 15 oder 18 oder 20 sind, spielt keine Rolle.) Das sind 15 mal 10 hoch 9 Das heist das du das gegenwärtige Alter des Universums in etwa 4 mal 10 hoch 29 mal aufbrauchst um alle Kombinationen durchzuspielen. > Mit welcher Methode wäre ich schneller am Ziel? Zufallszahlen > ausprobieren oder 000000001 dann 0000002 usw probieren? Eindeutig Zufallszahlen. Du könntest Glück haben und die Nummer zufällig erraten. Systematisch durchprobieren ist mit der von dir genannten Testrate wie oben gezeigt nicht zielführend.
Mist. Ich habe die 0 vergessen. d.h. die Zahlen sind noch einen Tick höher. Spielt aber keine wirkliche Rolle. Die Zeiträume sind so dermassen lang.
1000 Versuche/Sekunde sind aber auch nicht viel. Jetzt müsste man noch berechnen, wie die Anzahl der maximalen Versuche/Sekunde, die ein jeweils aktueller Rechner schafft, im Laufe der Zeit steigt... Ausserdem muss noch bekannt sein, wie die Seriennummern im möglichen Bereich verteilt sind, um einen passenden Suchalgorithmus zu finden.
>> Mit welcher Methode wäre ich schneller am Ziel? Zufallszahlen >> ausprobieren oder 000000001 dann 0000002 usw probieren? > > Eindeutig Zufallszahlen. Mit welcher Begründung? Bei gleichverteilten Nummern (das sollte bei einer pseudozufälligen Seriennummer der Fall sein) macht doch keinen Unterschied ob man zufällig oder der Reihe nach vorgeht. Ist aber rein akademisch, bei der Menge an möglichen Zahlen ist ein Erraten völlig und absolut unmöglich.
> Mit welcher Begründung?
Ganz einfach.
Wenn du systematisch durch den Suchraum gehst (lineare Suche),
dann musst du (Moment muss hochscrollen) du x mal das
Alter des Universums lang suchen bis du durch den Suchraum
bist. Wenn du Pech hast, ist es der letzte Key der richtig ist.
Nicht mal das Wissen, dass man bei linearer Suche im mittel
bei n/2 fündig wird (n sei die Größe des Suchraumes) hilft
dir: Du bist längst tot bis du n/2 erreicht hast.
Sorry. Hatte nicht weitergelesen. Die Überlegung ist: 'Ein blindes Huhn findet auch mal ein Korn'. Wenn du zufällig probierst, könntest du Glück haben und zufällig den richtigen erwischen. Die Chancen dafür sind zwar astronomisch schlecht, aber sie sind nicht ganz 0. Auf der anderen Seite könnte man natürlich Glück haben und der Ersteller des Keys benutzte einen Key der bei systematischer Suche ganz am Anfang auftaucht. Dann ist er aber selber Schuld.
> Auf der anderen Seite könnte man natürlich Glück haben und > der Ersteller des Keys benutzte einen Key der bei systematischer > Suche ganz am Anfang auftaucht. Dann ist er aber selber Schuld. Es gibt keinen prinzipiellen Unterschied zwischen einem Wert der bei der linearen Suche ganz am Anfang auftaucht (z.B. 0001), und einem der per Zufall bestimmt wird (z.B. 4590). Es gibt keine "natürliche Reihenfolge", keinen Grund dafür warum die Werte 0001, 0002, 0003 usw. seltener auftauchen sollten als welche die du "zufällig" wählst. Den gäbe es nur wenn der Ersteller den Algorithmus bewusst so gestaltet hätte dass eine bestimmte Art von Werten vermieden wird, was bei 30^32 möglichen Werten völlig sinnlos wäre. Die lineare Suche dauert nicht länger als die Zufallssuche, sie macht nur anschaulich klar wie sinnlos das Unterfangen in diesem Fall ist.
Ich stimme euch allen zu: Man ist theoretisch bei derart riesigen Zahlen dass es praktisch gesehen völlig unmöglich ist. > der Ersteller den Algorithmus bewusst Von einem Algorithmus war doch im Originalposting überhaupt nicht die Rede. Ich gehe davon aus, dass die bewusste Nummer von einem Menschen generiert wird. Und Menschen haben Vorlieben. Ich denke mal dass die wenigsten Menschen die Nummer 0000000000000....1 wählen würden. > Die lineare Suche dauert nicht länger als die Zufallssuche, sie > macht nur anschaulich klar wie sinnlos das Unterfangen in diesem > Fall ist. Natürlich tut sie das nicht. Den letztendlich bleibt nichts anderes übrig als den kompletten Suchraum absuchen. Als Mensch würdest du halt nur ein paar Kombinationen zurückstellen von denen du nicht erwartest, dass der Generierer (ebenfalls ein Mensch) sie gewählt hat. Ich sag ja auch nicht, dass eine zufällige Suche zu Lebzeiten zum Ziel führen würde, ganz im Gegenteil. Sie ist aber lustiger. Vor allem die Buchführung welche Kombination schon gewählt wurde stell ich mir toll vor :-)
Die Berechnung wird üblicherweise mit einem Hash gemacht, damit das Programm die Nummer auch überprüfen kann (sonst müssten ja alle möglichen Nummern in der Software mitgeliefert werden).
Wollte ich auch schon sagen. Natürlich wird die Seriennummer dadurch weniger sicher, was bisher keiner erwähnt hat. Denn es gibt natürlich weit mehr als nur eine gültige Seriennummer.
Geh den einfachen Weg und debugge das Programm und NOP einfach die Seriennummer abfrage, denn dann ist es völlig egal wie viele Nummern die Seriennummer hat :-)
> 1000 Versuche/Sekunde sind aber auch nicht viel.
Stimmt, bei 1 Milliarde / Sekunde wären es nur noch 4 * 10 ^ 23 mal das
Alter des Universums ;-)
Aber bei 1 Milliarde/Sekunde/Rechner sieht's dann besser aus. Vorausgesetzt man hat genügend Rechner zur Verfügung ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.