Wo finde ich Code, mit dem ich Z1 und Z2 aus einer ECDSA-Signatur berechnen kann?

Indem ich dem Wiederherstellen von privaten Bitcoin-Schlüsseln mit schwachen Signaturen aus der Blockchain folge , bin ich in der Lage, andere Berechnungen durchzuführen, aber ich habe keine Ahnung, wie man Z1oder berechnet Z2. Es gab einen öffentlichen Code von Sean Bradley :

http://2coin.org/tx.asmx?op=GetTXExtended

Aber es scheint jetzt nicht zu funktionieren. Gibt es einen anderen öffentlichen Code zum Berechnen Z1und Z2in einer beliebigen Sprache. Ich kann es in die Sprache meiner Präferenz umwandeln. Jede Hilfe ist willkommen.

Kannst du vielleicht beschreiben wofür du das willst? Ich möchte nicht unbeabsichtigt jemandem helfen, die Bitcoins anderer Leute zu stehlen.
@DavidA.Harding Ich bin Sicherheitsforscher und möchte diesen Angriff replizieren. Alle gefährdeten Adressen sind bereits im Internet und leer. Und anfällige Anwendungen sind bereits behoben. Ich möchte das nur replizieren, sonst nichts.
Ich habe eine Antwort gegeben. Der Angriff, den Nils beschreibt, ist jedoch nur ein grundlegender Angriff mit wiederverwendeten kWerten. Wenn Sie es wirklich replizieren möchten, werden Sie feststellen, dass es viel einfacher ist, das Gepäck von Bitcoin abzuwerfen und die Mathematik für Ihre eigenen willkürlichen gehashten Daten durchzuführen. Sogar Wikipedia hat Anleitungen dafür .

Antworten (2)

Laut Nils Post sind die zWerte die Hashes, die in der ECDSA-Formel signiert werden. Hintergrundinformationen darüber, welche Daten in diese Hashes einfließen, finden Sie auf der Wiki-Seite OP_CHECKSIG und in Krzysztof Okupskis hervorragender Referenz-PDF für Entwickler .

Der Code von Bitcoin Core zum Generieren der Hashes ist hier . Jede andere Bitcoin-Anwendung, die Transaktionen signiert (oder Signaturen verifiziert), muss eine kompatible Funktion haben (zumindest für das Standard-SIGHASH_ALL), sodass Sie in der Lage sein sollten, eine Implementierung in so ziemlich jeder gängigen Programmiersprache zu finden.

Fügen Sie Ihre Transaktion auf dieser Seite ein https://2xoin.com/getRSZfromRawTX/

Es wird Ihnen alle R, S und Z geben, wenn es in der Lage war, den TX zu decodieren.

zum Beispiel,0100000002f64c603e2f9f4daf70c2f4252b2dcdb07cc0192b7238bc9c3dacbae555baf701010000008a4730440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1022044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e014104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ffffffffff29f841db2ba0cafa3a2a893cd1d8c3e962e8678fc61ebe89f415a46bc8d9854a010000008a4730440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad102209a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab014104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ffffffffff01a0860100000000001976a91470792fb74a5df745bac07df6fe020f871cbb293b88ac00000000

wird ausgegeben

[
  {
    "sigR": "d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1",
    "sigS": "44e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e",
    "sigZ": "c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e",
    "pubKey": "04dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff",
    "N": 0
  },
  {
    "sigR": "d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1",
    "sigS": "9a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab",
    "sigZ": "17b0f41c8c337ac1e18c98759e83a8cccbc368dd9d89e5f03cb633c265fd0ddc",
    "pubKey": "04dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff",
    "N": 1
  }
]
`