Pages:
Author

Topic: Bitcoinbasics, vielleicht eine Moeglichkeit BTCs geziehlt zu generieren - page 4. (Read 8412 times)

member
Activity: 86
Merit: 19
Interessant, allerdings.

Aber nur mal für Laien:
Er nimmt den Text "v0.1" (ohne Leerzeichen!), und hasht den mit md6-256.
Dann erstellt er eine signierte Nachricht, und deren SHA-Hash passt zufälligerweise zu o.g. MD6-Wert, ausgenommen der ersten und letzten Stelle?

"i will manipulate... to produce" hört sich fast so an als ob es "auf Zuruf" möglich wäre, aber das isses nicht, oder?
Ich gehe doch davon aus, das es von vornherein so beabsichtigt war, oder auch einfach reiner Zufall ist.



Nicht ganz:

md6-256 von v0.1 ergibt 4C04E262DCAF32C396EC666AAD9A53D97464572E71C0748EA29205B41ACC2566

die bitcoin adresse des privaten Schlüssels 1C04E262DCAF32C396EC666AAD9A53D97464572E71C0748EA29205B41ACC2561 ist 1MyFun5vPzSgAhCQLuFrRz11213RcrK8M5


Die signierte Nachricht spielt hierbei keine Rolle, denn an der Signatur kann ich jetzt nichts ungewöhnliches erkennen. Also würde ich das mal ausklammern.
Im Endeffekt hat der Schreiber nur 5 Bitstellen nach Belieben geändert und nach paar Schritten eine Adresse bekommen, welche mit MyFun anfängt.
Angenommen, er hat sich auf v0.1 als Startdatum festgelegt, dann hätte er nach seiner Logik nur 256 Kombinationen durchprobieren müssen, und dann wäre eben sowas rasugekommen, oder auch nicht.
Die Wahrscheinlichkeit für eine 33 stellige Adresse, welche mit fünf bestimmten Buchstaben anfängt, beträgt (1/58)^5*(57/58)^28 ~ 1 zu 1.000.000.000
Mit "i will manipulate... to produce" liegt er nicht falsch, aber es bedeutet viel weniger, als man denken könnte.

Edit: Schande über denjenigen, welcher den Pastebin Link nicht gepostet hat.
legendary
Activity: 1100
Merit: 1058
Interessant, allerdings.

Aber nur mal für Laien:
Er nimmt den Text "v0.1" (ohne Leerzeichen!), und hasht den mit md6-256.
Dann erstellt er eine signierte Nachricht, und deren SHA-Hash passt zufälligerweise zu o.g. MD6-Wert, ausgenommen der ersten und letzten Stelle?

"i will manipulate... to produce" hört sich fast so an als ob es "auf Zuruf" möglich wäre, aber das isses nicht, oder?
Ich gehe doch davon aus, das es von vornherein so beabsichtigt war, oder auch einfach reiner Zufall ist.

sr. member
Activity: 854
Merit: 284
@bitcoinfori
etwas Interessantes für Dich, solltest du unbedingt lesen  Wink

Quote
his was posted on pastebin today:

"What I'm going to present is better evidence of who I am than access to mere private keys (which can be stolen). And it's definitely more convincing than what was ever offered by CSW.

The point here is to demonstrate superior understanding of Bitcoin encryption. I will manipulate the first and last digit of a hash (md6-256) that's not native to Bitcoin, to produce a vanity address ON BITCOIN that coincides with the signed statement.

The original hash, before being manipulated, will be derived from " v0.1 ", the first version of Bitcoin.

To recognize the significance of this, you will need to bring your attention to the similarities in the two hashes.

"v0.1" was the first version of Bitcoin. It was hashed in md6-256 which is not sha-256. Slightly modified it exposes a hidden vanity address that starts out with "1MyFun".

1MyFun5vPzSgAhCQLuFrRz11213RcrK8M5
----BEGIN BITCOIN SIGNED MESSAGE----
Creating Bitcoin Was All About "My Fun".
-----END BITCOIN SIGNED MESSAGE----

----BEGIN SIGNATURE----
HA5V2RstFymbo4Z1/dSi/4VVYDG3T8svnlAEOriUdCOwLs2ivkOnJ03rKlxqSapfjCS2duuLH+Korm7+3K9HxAI=
----END BITCOIN SIGNED MESSAGE----
Private Hexidecimal Key
1C04E262DCAF32C396EC666AAD9A53D97464572E71C0748EA29205B41ACC2561
---------------------------------------------------------------------
Bitcoin v0.1 Alpha Release
" v0.1" (md6-256)
4C04E262DCAF32C396EC666AAD9A53D97464572E71C0748EA29205B41ACC2566
--------------------------------------------------------------------

The odds of anyone being able to manipulate the first and last digits of any hash relating to the first version of Bitcoin to reveal a hidden vanity address are about 10 trillion to 1.

Not accepting this as undeniable proof means you don't understand the statistical probability ratios involved with knowing where to look and what to change.

Greedy and uneducated people are only interested in ‘where the money is’ (access to keys) instead of real cryptographic evidence.

NOTE: Do not attempt to add these private keys to your wallet.
PS: I live in Bali, Indonesia."
legendary
Activity: 1100
Merit: 1058
Welche Info sollte man von dir erfragen? Huh
Selbst in einem schlechten Wiki steht mehr und richtigere Information über Hashes als in diesem Thread. Roll Eyes

Und wegen der Kollision: Ich bitte darum. Mit Rechenweg. Und Dauer. Wink

Die eigenartige Schreibweise ist übrigens vom Comicverkäufer (Simpsons) entlehnt, der wasauchimmer gerne mit
"Schlechtester.
xxxxx
Aller.
Zeiten."
kommentiert.

Das soll ausdrücken, das man hier betont langsam und deutlich spricht, damit es jeder versteht.
full member
Activity: 255
Merit: 100
trueque
Null ist nicht negativ, und es wird nicht mit Vorzeichen gerechnet, eher mit Bitmustern, die einen scheiß geben auf die Notation.

Simple.
Binäre.
Mathematik.

Und:
Ohne.
Umkehrmöglichkeit.

Oder:
Ohne.
eine.
sinnvolle,
rein.
aufgrund.
der.
Zahlengröße.

Der einzige, der hier auf 16 Seiten sinnloses und/oder unverständliches geschwurbel postet, ist der fori.
Du musst dich nicht wundern, das es niemanden gibt, der sich das antut, die meisten werden nach 5 Seiten Kopfschmerzen haben.
Die die von Anfang an dabei waren geben sich alle paar Tage einen neuen Foripost, dann kann man es ertragen.
Eigentlich: Auch nicht wirklich, aber man muss nicht sofort schwallartig erbrechen.

Es haben dir schon mehrere Leute Beispielwerte und "einfache" Aufgaben genannt.
Wie viele hast du davon gelöst?
Keine.
Warum?
Weil du nicht weißt wie's geht.
Was aber nicht schlimm ist, denn: Es geht nicht.
Dein ganzes gesumse mit den Variablennamen ist lauwarme Luft, denn wo auch immer dich dein Weg hinführt: er basiert auf massiven Fehlannahmen deinerseits und funktioniert nicht.

witzige art zu schreiben.
erinnert mich sehr an ein kapitel von raumschiff enterpreis, wo sie maschinen kaputt machen indem sie widersprueche erzeugen zwischen dem, das die maschine interpretiert und das was sie sieht und hoert.
werde mich hier nicht rechtfertigen und nicht mal auf die meinungen von anderen lesern hinweisen.
wenn hier jemand info haben moechte, dann kann er fragen.
hoffe, dass ich in meinem naechsten post einen beweis von meinem algorythmus posten kann. habe vor eine kollision komplett zu machen und zwar nicht erst, wenn unsere sonne erloschen ist.
legendary
Activity: 1100
Merit: 1058
Null ist nicht negativ, und es wird nicht mit Vorzeichen gerechnet, eher mit Bitmustern, die einen scheiß geben auf die Notation.

Simple.
Binäre.
Mathematik.

Und:
Ohne.
Umkehrmöglichkeit.

Oder:
Ohne.
eine.
sinnvolle,
rein.
aufgrund.
der.
Zahlengröße.

Der einzige, der hier auf 16 Seiten sinnloses und/oder unverständliches geschwurbel postet, ist der fori.
Du musst dich nicht wundern, das es niemanden gibt, der sich das antut, die meisten werden nach 5 Seiten Kopfschmerzen haben.
Die die von Anfang an dabei waren geben sich alle paar Tage einen neuen Foripost, dann kann man es ertragen.
Eigentlich: Auch nicht wirklich, aber man muss nicht sofort schwallartig erbrechen.

Es haben dir schon mehrere Leute Beispielwerte und "einfache" Aufgaben genannt.
Wie viele hast du davon gelöst?
Keine.
Warum?
Weil du nicht weißt wie's geht.
Was aber nicht schlimm ist, denn: Es geht nicht.
Dein ganzes gesumse mit den Variablennamen ist lauwarme Luft, denn wo auch immer dich dein Weg hinführt: er basiert auf massiven Fehlannahmen deinerseits und funktioniert nicht.
full member
Activity: 255
Merit: 100
trueque
...
t1 und t2 sind keine Konstanten und lassen sich auch nicht über mehrere Schritte zusammenfassen. Auch die Werte von a-h hängen von den Vorgängerwerten ab, nicht von den Nachfolgewerten. Deine Theorie ist also falsch oder zumindest unvollständig. Das wird dir auch dein "Mathegenie" hoffentlich erklären.

Schreib das doch einfach mal in sauberer mathematischer Notation hin (ich kann auch LaTeX...), was du überhaupt genau willst. c(60) = x1 * c(61) + x2 * c(62) + x3 * c(63) ist z.B. schon mal nicht wirklich sinnvoll im Kontext von SHA256.

hallo,
also d scheinst du etwas nicht richtig verstanden zu haben.
1. t1 und t2 sind aus a und d (bzw e) errechenbar.
2. dass sie konstant sind, habe ich nie geschrieben
3. wenn etwas vorwaerts abhaenig ist, ist es das auch rueckwaerts
4. wenn ich die a..h-matix habe, habe ich auch die t-werte
5. das ganze ueber die x-werte zu machen habe ich aufgegeben, weil dieser zusammenhang wahrscheinlich nicht so lineal ist, wie ich das dachte. also ist es nicht sehr vorteilbringend, darueber zu diskutieren.

also mit welchen von diesen punkten hast du schwierigkeiten?
ist alles mathematisch beweissbar.


legendary
Activity: 2618
Merit: 1007
um zu beweisen, dass die c-werte eine innere abhaenigkeit haben, brauche ich kaum code.
dass c(j)=f(c(j+1),c(j+2),c(j+3)) ist, ist fuer mich jetzt der aufhaenger.
[...]

in den t1- und t2-werten stecken indirekt die h- und w-werte. dass ich weder h noch w kenne stoert mich nicht fuer die rekonstruktion von den c-werten.
wenn ich damit also bis auf c2 komme, habe ich die komplette a..h-matrix und damit auch die w-werte fuer eine moeglich kollision.

t1 und t2 sind keine Konstanten und lassen sich auch nicht über mehrere Schritte zusammenfassen. Auch die Werte von a-h hängen von den Vorgängerwerten ab, nicht von den Nachfolgewerten. Deine Theorie ist also falsch oder zumindest unvollständig. Das wird dir auch dein "Mathegenie" hoffentlich erklären.

Schreib das doch einfach mal in sauberer mathematischer Notation hin (ich kann auch LaTeX...), was du überhaupt genau willst. c(60) = x1 * c(61) + x2 * c(62) + x3 * c(63) ist z.B. schon mal nicht wirklich sinnvoll im Kontext von SHA256.
full member
Activity: 255
Merit: 100
trueque
@hodlcoins: danke fuer die auffrischung, aber als ich in die schule gegangen bin, haben die lehrer noch mit rechenschieber gerechnet.

@Sukrim: ganz schoen verbittert. wenn du deinen frust rauslassen willst, dann bitte in einem anderen thread. der link koennte nuetzlich sein, wenn man davon absieht, dass das programm ein paar schlappe giga gross ist, aber das muessen sie ja heutzutage sein, damit man sie ernst nimmt. moechte wissen, wieviel abfall da dabei ist.

@MinerVonNaka: scheinst noch von der aelteren garde zu sein, auch da du # als quote benutzt. ich habe auch das letzte mal vor einigen jahren programmiert. hier ging es nicht um programmieren, sondern um optimierung. scheint hier aber niemand verstanden zu haben.

nehme es niemanden uebel, wenn er sich die jetzt schon 16 seiten nicht mehr durchliest, oder einfach nur nix davon versteht, was in diesen 16 seiten steht, aber hier dann nur dicke luft machen, koennt ihr euch sparen.

solche sachen, wie dass die null fuer den sha negativ ist, dass eben schon, zumindest ab und zu, mit vorzeichen "gerechnet" wird und, dass es nicht mein code ist, steht alles schon weiter oben.

und noch eine anmerkung: latein ist auch totgesagt, aber es gibt immernoch einige, die sich damit efektiv komunizieren und ich rede nicht nur von aerzten, apotekern oder akademikern.

ich hatte auch latein in der schule und das hat mir sehr fuers spanische geholfen, aber das ist eine andere geschichte.

habe nicht mehr sehr viel lust, diesen thread weiterzuschreiben, aber ich schaetze, dass ich es trotzdem machen werde, da ich dieses mal ja gleich 3 antworten bekommen habe.

den oben verlinken python-code habe ich noch nicht zum laufen gebracht, ist aber auch nicht so wichtig, vor allem, weil er fasst genau die gleiche nomenklatur hat, viel der visual, den ich als grundlage genommen habe.

um zu beweisen, dass die c-werte eine innere abhaenigkeit haben, brauche ich kaum code.
dass c(j)=f(c(j+1),c(j+2),c(j+3)) ist, ist fuer mich jetzt der aufhaenger.
habe aber leider fuer meine annahme, dass es direkt mit
c(j)=x1*c(j+1)+x2*c(j+2)+x3*c(j+3)
geht, bis jetzt noch keine x-werte finden koennen, die fuer alle c-werte zutreffen.
das einzig erstaunliche war, dass alle x-werte im betrag kleiner als 10 sein koennen.
aber dafuer werde ich mich doch wohl noch mal mit dem mathegenie unterhalten muessen, wenn er mal zeit fuer mich findet und ich die energie dazu habe.

und fuer die, die es immernoch nicht glauben:
in den t1- und t2-werten stecken indirekt die h- und w-werte. dass ich weder h noch w kenne stoert mich nicht fuer die rekonstruktion von den c-werten.
wenn ich damit also bis auf c2 komme, habe ich die komplette a..h-matrix und damit auch die w-werte fuer eine moeglich kollision.

also soweit die theorie, die dahinter steckt. jetzt fehlt nur noch eine effiziente implementation und das richtige kaos kann beginnen.

also wenn du z b wissen willst, was das fbi so mit dem kremlin komuniziert, haengst du dich mit einem durch kollision erzeugtem zertifikat in ihr vpn und schreibst einfach alles mit.

legendary
Activity: 1100
Merit: 1058
Alter. Roll Eyes
2 Zahlen addieren.

Ein Byte geht von 0-255, 8 bit.
100 plus 100 ist 200. Klar?
plus weitere 100? wäre 300.
passt nicht. das notwendge 9. bit fällt in den Müll, das Ergebnis ist also 44. 300-256, is klar. oder?
Falls nicht: eigentlich käme x012c raus, aber das ist ein 16-bit-Wert. Bei 8-bit wird eben das obere Byte abgeschnitten, es existiert nicht, also bleibt x2c über.
Ups. 200 plus 100 ist 44???  Wink

Ein signed byte geht von -128 bis +127.
Nee, sind auch nur 8 bit.
Das oberste ist das Vorzeichen: 0=+, 1=-. "Null" ist übrigens b00000000, also positiv! Wink
die anderen 7 bit sind die Zahl.
Das nennt man Zweier-Komplement.

Wenn du jetzt "-1 signed" als unsigned liest, ist das b11111111, also "255" unsigned.

Liegt dran, weil man von der Null vorwärts bis +127 zählt, oder eben rückwärts bis -128.
-1 ist dann also ein Unterlauf, aus b00000000 "0" wird b11111111 "255".
-2 ist b11111110, also "254".
usw usf.

Du darfst also Signed und Unsigned nicht mixen, außer über Cast oder Convert, und dann ist das Ergebnis einer Rechnung eindeutig, in beide Richtungen.
SHA benutzt m.W. keine Signed-Rechnungen. Manche Sprachen defaulten allerdings aus welchen Gründen auch immer auf signed.
Du kannst aber in einer Zahl die unsigned sein soll und signed gerechnet wird (also falsch/nicht konvertiert wird) logischerweise nicht viel addieren, denn wenn du >n-1 Bits kommst, springt das Vorzeichen um und der Wert ist falsch. Ähnliches gilt für Subtraktion.
Und Bitmusteroperationen (XOR) sind normalerweise Byte-orientiert, also 8-bit oder vielfaches davon, wenn das höchstwertige Bit das Vorzeichen ist, wirds lustig, denn das sind 7/15/31-Bittige Zahlen.

Das sind übrigens Grundlagen aus der 7/8. Klasse. Und nicht im Gymnasium. Wars zumindest, als ich vor vielen Dekaden da drin war.
legendary
Activity: 2618
Merit: 1007
Im Code den ich verlinkt habe gibt es keine "addunsigned" Funktion und dass sich Excel verrechnet glaube ich dir nach diesem Thread hier ehrlich gesagt auch nicht, ohne dass du ein konkretes Beispiel angibst.

Schreib die Formel halt in mathematischer Notation hin und rechne dann die Umkehrfunktion mit Stift und Papier aus, wenn du es in BASIC oder Excel nicht hinbekommst. Matlab macht auch keine Magie und du schaffst es offenbar nicht mal, ein paar Schritte zu verstehen und umzukehren. Falls du (oder jemand der mitliest) sowas wie Matlab wirklich brauchst, kannst du dir ja mal http://www.sagemath.org anschauen.

Helfen kann man dir nur, wenn du auch konkrete Beipiele gibst - nicht nur irgendwelche Tiraden über Excel/Bill Gates/interpretierte Sprachen oder halbfertige Codeschnipsel in toten Sprachen die aus den Zusammenhang gerissen sind.

eine andere Frage:
wieso rechnest Du nicht mit C bzw. C++ ist einfache dennoch sehr effiziente Sprache?

Er schafft es nicht mal Excel oder BASIC korrekt zu verwenden und scheitert an Python... glaubst du im Ernst, er schafft es, auch nur einen simplen Compiler unter Windows zum Laufen zu kriegen ohne mehrere Seiten über wie pöhse doch Visual Studio etc. ist? Von Memory Management ganz zu schweigen...
sr. member
Activity: 854
Merit: 284
#python,
#pypy ist sein eigener interpreter,
# excel ausprobiert

eine andere Frage:
wieso rechnest Du nicht mit C bzw. C++ sind sehr einfache, dennoch sehr effiziente Sprachen?

Schneller geht es nur mit Assembler, da gibt es aber keine Zeiger und Array sind glaube ich auch nur sehr schwer zu implementieren, kannst aber ins C-Code einbinden
Sorry wenn ich zur Assembler jetzt Unfug gepostet habe bin mittlerweile seit paar Jahren raus aus der Programmierung  Wink


 
full member
Activity: 255
Merit: 100
trueque
hallo
hab mir python installiert.
ist ja der wahnsinn.
pypy ist sein eigener interpreter, aber interpreter werden nie eine gute performace haben.
muesste wenn dann den code umwandeln und compilieren, aber so zum testen muesste es gehen. muesste so wie das basic laufen.

die c-werte haben noch ein misterium fuer mich. der c0, c1, c2, c62 und c63 sind recht offensichtlich, aber diese verflixte addunsigned-funktion macht irgendwas, was ich nicht verstehe.
und etwas umzukehren, was man nicht versteht, ist reichlich viel schwieriger.
wenn man annimmt, dass minus die umkehrung von plus ist, was ist dann die umkehrung von diesem plus ohne vorzeichen?
hab es sogar mit excel ausprobiert und dabei einige bugs in excel gefunden.
naja, billy kann ja nicht alles richtig machen.
bei grossen zahlen wird excel zum analfabeten. dann ist 3+2 auf einmal 1 oder 9+4 gleich 7.
also ich habe das nicht mal nachvollziehen koennen.
schaetze, dass mir da nur noch mathlab helfen kann, aber das ist nicht so ganz billig und auf hackversion habe ich weniger lust.
also wenn jemand mir da helfen koennte, dann waere es schoen. muss nicht mal ein vpn sein Smiley

habe sogar schon ueberlegt, kollisionen zu verkaufen, aber das wuerde dann doch etwas zu weit gehen, schaetze ich. aber gegen tauschen kann man an sich ja nichts sagen Smiley
full member
Activity: 255
Merit: 100
trueque
Statt dich wieder in irgendwelchen Mutmaßungen zu verlieren, hast du hier mal eine Sha256 Implementation in reinem Python: https://github.com/thomdixon/pysha2
Weniger als 100 Zeilen Code und recht verständlich. Damit kannst du dann auch performateren Code schreiben, als mit Excel oder was auch immer das für eine grausige Sprache ist, von der du da Ausschnitte postest.

danke, werde ich mir mal durchschauen.

zur theorie:
also wenn ich mich nicht getaeuscht habe, kann ich das komplette a bis h array fuer eine kollision rekonstruieren.
wie?
nicht unbedingt ganz einfach, aber ich habe einfach mich auf die c konzentriert.
der xte c-wert laesst sich naemlich aus den drei darauf folgenden ausrechnen.
Nein. Alternativ kannst du mir ja einfach alle c-Werte der Reihe nach für den Hash von vorhin (79fe8e376dcd447545a3275fd405ffba5ca75e7c77276466b7a6d2360cd7ecb2) nennen, den letzten hast du ja schon richtig (0x093433ED).

bin dabei, mir die sachen zu automatisieren, aber habe schwierigkeiten auf den c0 zu kommen und wenn der nicht stimmt, dann ist das ganze array verkehrt...
also ist es doch nicht so trivial, wie ich mir gedacht hatte, weil bei den moeglichen rueckwaertsgaengen auch "falsche" dabei sind. werde also mehr wert auf die moeglichen legen muessen, die ich bis jetzt nicht beachtet habe.

hast recht, visual basic ist schrecklich, habe aber python nicht installiert. sollte ich vielleicht aendern.

und danke fuer das ernst nehmen. aber da das kollisionsfinden mit diesem thread wenig zu tun hat, sollte ich vielleicht einen neuen aufmachen, oder schreibe ich hier weiter?

legendary
Activity: 2618
Merit: 1007
Statt dich wieder in irgendwelchen Mutmaßungen zu verlieren, hast du hier mal eine Sha256 Implementation in reinem Python: https://github.com/thomdixon/pysha2
Weniger als 100 Zeilen Code und recht verständlich. Damit kannst du dann auch performateren Code schreiben, als mit Excel oder was auch immer das für eine grausige Sprache ist, von der du da Ausschnitte postest.

zur theorie:
also wenn ich mich nicht getaeuscht habe, kann ich das komplette a bis h array fuer eine kollision rekonstruieren.
wie?
nicht unbedingt ganz einfach, aber ich habe einfach mich auf die c konzentriert.
der xte c-wert laesst sich naemlich aus den drei darauf folgenden ausrechnen.
Nein. Alternativ kannst du mir ja einfach alle c-Werte der Reihe nach für den Hash von vorhin (79fe8e376dcd447545a3275fd405ffba5ca75e7c77276466b7a6d2360cd7ecb2) nennen, den letzten hast du ja schon richtig (0x093433ED).
full member
Activity: 255
Merit: 100
trueque
hallo,
naja, im prinzip braucht mir das ja auch niemand zu erklaeren.
neuester stand, ist, dass ich etwas wichtiges gefunden habe:
leider kann ich mit dem jetzigen stand nur zwei hoch 512 kollisionen finden, also nicht alle.
das heisst, wenn die orginalnachricht halt nicht in dieser menge ist, dann bleibt sie unbekannt.
also so genau weiss ich es zwar nicht, aber ich habe aufgegeben, die moeglichkeiten nachzuverfolgen.
in den meisten faellen reicht schon eine Smiley

deshalb ist mir das mit dem vorzeichenlosen summen jetzt recht egal....

zur theorie:
also wenn ich mich nicht getaeuscht habe, kann ich das komplette a bis h array fuer eine kollision rekonstruieren.
wie?
nicht unbedingt ganz einfach, aber ich habe einfach mich auf die c konzentriert.
der xte c-wert laesst sich naemlich aus den drei darauf folgenden ausrechnen.
damit kenne ich von c0 bis c63
da ja h0 bekannt ist, naemlich der inicialwert, habe ich damit w0 und damit auch die restlichen h-werte und somit auch die restlichen w-werte. also fehlt nur noch die kollision aus w0 bis w16 abzulesen.
wieviele moeglichen anderen kollisionen bei diesem weg auf der strecke geblieben sind, habe ich keine ahung, aber ich glaube, dass ich auf diese weise eine kollision "direkt" ausrechnen kann.

gut, ist nicht so ganz direkt.
sind achzig iterationen.
wenn man davon ausgeht, dass die funktion fuer t2 nur probiert werden kann, muessten es 2 hoch 80 versuche sein. aber ich glaube, dass die umkehrbar ist.
abgesehen davon, dass sie sha1 totgesagt haben, weil nachgewiesen wurde, dass mit 2 hoch 69 moeglichkeiten diese kanckbar ist, bin ich ja gespannt, was sie jetzt dazu fuer den sha im allgemeinen sagen.


full member
Activity: 255
Merit: 100
trueque
Hm, wenn du dann W63 ausgerechnet hast, was genau hast du dann erreicht?

Nur so als Hinweis: Beim Bitcoinmining kann man mehrere Runden komplett auslassen, siehe http://www.nicolascourtois.com/bitcoin/Optimising%20the%20SHA256%20Hashing%20Algorithm%20for%20Faster%20and%20More%20Efficient%20Bitcoin%20Mining_Rahul_Naik.pdf

hallo,
vielen dank fuer das paper. das haette mir viel arbeit ersparen koennen, wenn ichs vorher gefunden haette.
leider hat der autor wahrscheinlich genau den gleichen fehler wie ich gemacht.
das paper ist echt gut und diese optimierungen sind echt genial, aber sicher schon in allen neuen asic.
an sich haben die a bis h keinen index und der zaehler in meinem source ist j nicht t, aber der rest ist recht aehnlich. so hat man wenigstens eine basis, wenn man eine nomenklatur benutzt.
habe den fehler in meinem algorythmus gefunden. fuer die im paper beschriebenen optimierungen hat das keine auswirkung.
es gibt kein k(64).
der index von t1 und t2 ist gemischt, weil sie in der runde j, w(j) und k(j), aber a(j-1) bis h(j-1) benutzen.
deswegen hat das bei mir nicht hingehauen.
t1(63) und t2(63), fuer die letzte runde, nicht die a-h indexe, kann ich die werte leicht ausrechnen.

An sich hatte ich oben schon erkaert, wozu ich w63 wenn dann verwende, aber jetzt mit meinen neuen erkenntnissen nochmal:
wenn ich die wahrscheinlichen w63-wert rausbekommen kann, dann kann ich die pruefungmenge reduzieren, oder besser anfangs nur auf w63 pruefen und erst bei erfolgsaussichten den eigentlichen hash errechnen.

hier noch eine nachbesserung von vorherigem hash:
 a63    ...  h63  in hex
 99A280DB, 5B8C32D7, 39AFEE33, 3D05FB2D, 4427D149, 18834BB9, 7E901FCD, 7BE779DB

diese summe ohne vorzeichen macht mir graue haare:
_______________________________________________________________________________ _________

Function AddUnsigned(ByVal lX As Long, ByVal lY As Long) As Long
 Dim lX4 As Long
 Dim lY4 As Long
 Dim lX8 As Long
 Dim lY8 As Long
 Dim lResult As Long
 lX8 = lX And &H80000000
 lY8 = lY And &H80000000
 lX4 = lX And &H40000000
 lY4 = lY And &H40000000
 lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)
 If lX4 And lY4 Then lResult = lResult Xor &H80000000 Xor lX8 Xor lY8
  ElseIf lX4 Or lY4 Then If lResult And &H40000000 Then
   lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8                 '<- Huh
  Else lResult = lResult Xor &H40000000 Xor lX8 Xor lY8
  End If
  Else lResult = lResult Xor lX8 Xor lY8
 End If
 AddUnsigned = lResult
End Function
__________________________________________________________________

kann mir das jemand erklaeren?

legendary
Activity: 2618
Merit: 1007
Hm, wenn du dann W63 ausgerechnet hast, was genau hast du dann erreicht?

Nur so als Hinweis: Beim Bitcoinmining kann man mehrere Runden komplett auslassen, siehe http://www.nicolascourtois.com/bitcoin/Optimising%20the%20SHA256%20Hashing%20Algorithm%20for%20Faster%20and%20More%20Efficient%20Bitcoin%20Mining_Rahul_Naik.pdf
full member
Activity: 255
Merit: 100
trueque
Hallo,
also verstehe nicht, wieso der bezug auf den vorhergehen post.
wenn meine a bis h werte ok sind, was sollte mich dann davon abhalten, aus der formel das w63 auszurechnen?

habe noch etwas schwierigkeiten mit dieser vorzeichenlosen summe. da wird schon bei 2 hoch 30 abgeschnitten. das verstehe ich irgendwie nicht.
aber man muss ja einen tv auch nicht verstehen, um zu glotzen Smiley

hoffe ich habe beim naechten post meine tabellenkalkulation fertig, weil ich naemlich zu ergeizig bin, das ganze nicht automatisiert zu machen.
aber eins kann ich jetzt schon abschaezten.
selbst wenn ich hier alle moeglichen w63 werte fuer die moeglichen kollisionen von den letzten hash poste, wird es nicht mal eine hand voll geben, die diese ueberpruefen koennten, also koennte ich hier einfach irgendwelche zahlen hinschreiben.

aber wie erwaehnt, dazu bin ich zu ergeizig. also wenn ich hier was poste, dann bin ich davon ueberzeugt, dass es auch so ist.

also werde ich dieses ueble out of range ueberwinden!
legendary
Activity: 2618
Merit: 1007
wie du dir sicher vorstellen kannst, kann ich das mit meinem kasten nicht in meiner lebenszeit ueberpruefen, bin da halt auf groessere angewiesen...

vs.

aber wenn du meinst, schreibe ich mal eine formel hin:


w63 gleich t1 - (h63 + sigma(e63) + ch(e63,f63,g63) + k63)

glaube aber nicht, dass dir das viel weiterhilft, ausser du hast wirklich viel ahnung und kennst auch noch die nomenklatur vom dem open source, den ich habe.

Dann schreib halt mehr hin? Wie berechnest du die restlichen Werte z.B.?

Nochmal: W63 hängt vom gesamten Input ab und die weiteren Werte auf die du dich da beziehst, stammen auch aus früheren Runden der Hashfunktion und sind nicht einfach so irgendwelche Konstanten.

also gut, nochmal in anderen worten:
auf dem hashwert, sagen wir mal 666, rechne ich die variablen a, b, c, d, e, f, g und h fuer den letzten schritt zurueck. also a63, ... h63
dann mache ich die verknuepfungen, wie es auf der wikiseite steht, nur dass ich einfach den w63 ausklammere, also die gleichung nach w63 aufloese.

die restlichen w-werte sind nicht rueckrechenbar, weil es ja eine einwegfunktion sein sollte.
kann sie zwar statistisch "erahnen", wenn ich den w63-wert habe, ist aber nicht sehr genau.

also nehme ich nur den w63-wert als kriterium und schon habe ich eine vorauswahl fuer mein brute force.

so und wenn es jetzt nicht klar geworden ist, dann gebe ich auf. dann sind meine komunikationsfaehigkeiten zu unausreichend. das versteht naemlich sogar meine 10 jahrige tochter.

Deine Werte von a bis h stimmen, aber nein, ich glaube dir NICHT, dass es "rückwärts" geht - da du offenbar eben nicht mit deiner Methode auf W63 kommst, wenn du den Hash kennst.
Pages:
Jump to: