Leute ich raffs nicht und vllt könnt ihr mir wertvolle Tipps geben.
Mich interessiert aktuell die Umwandlung der Darstellung von sha256.
So wie ich es verstehe habe ich in der binären Darstellung 256 Zustände von jeweils 0 und 1. Diese kann ich jetzt anscheinend im Hexadezimalen System mit nur 64 Zeichen darstellen wo jeder Wert 16 Zuständen entsprechen kann (0-9 + A-F).
Somit macht für mich auch Sinn, was Sunny in seinem Buch schreibt, dass jede weitere 0 in der Difficulty einer exponentiellen Steigerung der Schwierigkeit um den Faktor 16 bedeutet.
Wenn ich mir jetzt allerdings überlege das 64 Zeichen á 16 Zustände die Darstellung ist, dann komm ich doch auf 1024 und nicht auf 256, wie ursprünglich im sha Algorithmus.
Wo ist mein Denkfehler? Habt ihr da ne gute Quelle um das nachvollziehen zu können? Und wie zur Hölle stelle ich am Ende diese 64 Zeichen wiederum als 12 oder 24 Wörter dar? Fragen über Fragen…
ahhhhhh ja doch Hex ist mir jetzt klar. Über die Wortliste muss noch etwas grübeln aber ich bin schon einen großen Schritt weiter. Danke Die Tabelle ist echt hilfreich fürs Verständnis.
PS: grad hats klick gemacht
2048 = 2¹¹
und
256 : 11 = 23,27
Einfach geil und doch garnicht so schwer. So bringt bitcoin mir am Ende noch Mathe bei so ganz am Rande und ich glaub ich hab auch grad verstanden warum 12 Wörter potenziell nicht unsicherer sind als 24 es ist halt nur eine andere Darstellung aber bleibt sha256 im Kern.
Ja, das mit 12 Wörtern vs. 24 Wörtern habe ich auch so verstanden.
Also potentiell kann man mit 24 Wörtern auf das selbe Ergebnis kommen wie mit 12 Wörtern. Weil 24 Wörter erzeugen mehr Variationen als Bitcoin im Kern eigentlich zulässt.
24 Wörter sind aber dann sinnvoll, wenn man seinen Seed Splitten möchte in 3x8 Wörter. Wenn jemand dann beispielsweise 16 von den 24 Wörtern hat, ist es stand jetzt nicht möglich die restlichen 8 Wörter mit Bruteforce zu knacken. Wenn man solch einen Split mit 12 Wörtern machen würde,… also 3x4 Wörter und jemand hat dann 8 von denen, dann kann der Rest mit Bruteforce geknackt werden.
Du hast ganz einfach Mal-Rechnung mit Hoch-Rechnung vermixt. 16 \cdot 64 = 1024 ist die falsche Rechnung. Stattdessen …
16^{64} = (2^{4})^{64} = 2^{4 \cdot 64} = 2^{256}
64 Hexadezimal-Ziffern können also die gleichen Zahlen darstellen wie 256 Binär-Ziffern.
Es ist schon ein bisschen komplizierter als das. Allgemein bieten 12 Wörter nicht die gleiche Sicherheit wie 24 Wörter.
12 Wörter bieten aber ungefähr das gleiche Sicherheitsniveau ggü. Brute-Force-Angriffen, wie die resultierenden ungehashten Public Keys selbst; nämlich 128 Bit. Das ist unabhängig davon, ob man die Public Keys aus 12 oder 24 Wörtern abgeleitet hat.
Deshalb wird gerne argumentiert, dass man keine 24 Wörter braucht, wenn der resultierende Public Key sowieso nur 128 Bit Sicherheit bietet. Im Detail betrachtet ist es aber nicht ganz so einfach, siehe die Threads zum Thema hier im Forum.
Ein ungehashter Public Key bietet nur 128 Bit Sicherheit, obwohl es ca. 2^{256} davon gibt. Das liegt daran, dass es bessere Verfahren als simples Brute-Forcen gibt, mit denen man nur in der Größenordnung von 2^{128} Versuchen braucht, um zum Private Key zurückzurechnen. Mit SHA-256 hat das nichts zu tun.
Deine Erklärungen dazu sind aber richtig. Wenn jemand eine Teilsicherung findet, muss er nur noch 8 Wörter bruteforcen. Bei 12 Wörtern, also 3x8 Wörter Teilsicherungen, wären es entsprechend nur 4 Wörter.