{"id":335256,"date":"2022-07-03T03:00:07","date_gmt":"2022-07-03T03:00:07","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=335256"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=335256","title":{"rendered":"<span>\u0421\u0430\u043c\u0430\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 Blockchain \u0438 \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 Bitcoin ECDSA \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 RSZ \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 RawTX<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c87\/d10\/e85\/c87d10e8556b6c8ddf8660539481f0e8.png\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c87\/d10\/e85\/c87d10e8556b6c8ddf8660539481f0e8.png\"\/><figcaption><\/figcaption><\/figure>\n<p> \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 <code>ECDSA R, S, Z<\/code> \u0438\u0437 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0439\u043d, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043e \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b <a href=\"https:\/\/github.com\/tcatm\" rel=\"noopener noreferrer nofollow\">\u041d\u0438\u043b\u044c\u0441 \u0428\u043d\u0430\u0439\u0434\u0435\u0440<\/a> (<code>Nils Schneider<\/code> <em>\u043e\u043d \u0436\u0435<\/em> \u2013 <a href=\"https:\/\/github.com\/tcatm\" rel=\"noopener noreferrer nofollow\"><strong>tcatm<\/strong><\/a>)  <\/p>\n<p> \u0411\u0438\u0442\u043a\u043e\u0438\u043d-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 <em>&#171;BitcoinWatch&#187;<\/em> &amp; <em>&#171;BitcoinCharts&#187;.<\/em><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/20d\/674\/8c4\/20d6748c4bdd5e28ada4e9d06b9e8d35.png\" alt=\"4.1 \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0410\u0442\u0430\u043a \u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\" title=\"4.1 \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0410\u0442\u0430\u043a \u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\" width=\"407\" height=\"358\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/20d\/674\/8c4\/20d6748c4bdd5e28ada4e9d06b9e8d35.png\"\/><figcaption>4.1 \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0410\u0442\u0430\u043a \u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0438\u043d<\/figcaption><\/figure>\n<blockquote>\n<p><u>Document<\/u> <code>[PDF]<\/code>:<a href=\"https:\/\/eprint.iacr.org\/2014\/848.pdf\" rel=\"noopener noreferrer nofollow\">  <em>Private Key Recovery Combination Attacks: On Extreme Fragility of Popular Bitcoin Key Management, Wallet and Cold Storage Solutions in Presence of Poor RNG Events<\/em>  <\/a><\/p>\n<\/blockquote>\n<p><em>25 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2012 \u0433\u043e\u0434\u0430<\/em> \u041d\u0438\u043b\u044c\u0441 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u044c \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0439\u043d\u0430.<\/p>\n<p><strong>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e:<\/strong> <\/p>\n<p><code>transaction:<\/code> <a href=\"https:\/\/www.blockchain.com\/btc\/tx\/9ec4bc49e828d924af1d1029cacf709431abbde46d59554b62bc270e3b29c4b1\" rel=\"noopener noreferrer nofollow\">9ec4bc49e828d924af1d1029cacf709431abbde46d59554b62bc270e3b29c4b1<\/a><\/p>\n<hr\/>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cc3\/2e2\/94a\/cc32e294aa0e77019d1581ce61893349.png\" width=\"813\" height=\"139\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cc3\/2e2\/94a\/cc32e294aa0e77019d1581ce61893349.png\"\/><figcaption><\/figcaption><\/figure>\n<hr\/>\n<pre><code>input script 1: 30440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1022044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e0104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff  input script 2: 30440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad102209a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab0104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff<\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u0432\u0445\u043e\u0434\u0430 \u0438 \u043e\u0434\u0438\u043d \u0432\u044b\u0445\u043e\u0434.<br \/> \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0434\u0432\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0435\u0441\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0431\u0430\u0439\u0442\u043e\u0432.<br \/> \u042d\u0442\u0438 \u0431\u0430\u0439\u0442\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0430\u0434\u0440\u0435\u0441\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u044e\u0442\u0441\u044f \u043c\u043e\u043d\u0435\u0442\u044b, \u0442\u0430\u043a \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043b\u043e\u0445\u043e\u0433\u043e.<br \/> \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u2014 \u044d\u0442\u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c <code>(r, s)<\/code>:<\/p>\n<pre><code>r1: d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1 r2: d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1  s1: 44e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e s2: 9a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab<\/code><\/pre>\n<blockquote>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, <code>r1<\/code> \u0440\u0430\u0432\u043d\u043e <code>r2<\/code>. <em>\u042d\u0442\u043e <\/em><strong><em><u>\u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/u><\/em><\/strong><em>.<\/em> <\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <strong><u>\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447<\/u><\/strong> \u043d\u0430 \u044d\u0442\u043e\u0442 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447: <\/p>\n<p><code>04dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff<\/code><\/p>\n<\/blockquote>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439 \u0438\u0437 \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u044b \ud83d\ude09<\/p>\n<pre><code>private key = (z1*s2 - z2*s1)\/(r*(s1-s2))<\/code><\/pre>\n<p>\u041d\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <code>z1<\/code> \u0438 <code>z2<\/code><\/p>\n<p>\u042d\u0442\u043e <code>\u0445\u044d\u0448\u0438<\/code> \u0432\u044b\u0445\u043e\u0434\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0445 (\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f <code>OP_CHECKSIG<\/code>):<\/p>\n<pre><code>z1: c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e z2: 17b0f41c8c337ac1e18c98759e83a8cccbc368dd9d89e5f03cb633c265fd0ddc<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0443\u043f\u0430\u043a\u0443\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u0438\u043d <em>Python<\/em>&#8212;<em>\u0441\u043a\u0440\u0438\u043f\u0442:<\/em> <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/vulnerabilityR.py\" rel=\"noopener noreferrer nofollow\">vulnerabilityR.py<\/a><\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5f\/301\/358\/c5f301358b79c833d7701b7c883235a7.png\" alt=\"Python-\u0441\u043a\u0440\u0438\u043f\u0442: vulnerabilityR.py\" title=\"Python-\u0441\u043a\u0440\u0438\u043f\u0442: vulnerabilityR.py\" width=\"566\" height=\"387\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c5f\/301\/358\/c5f301358b79c833d7701b7c883235a7.png\"\/><figcaption>Python-\u0441\u043a\u0440\u0438\u043f\u0442: vulnerabilityR.py<\/figcaption><\/figure>\n<p><code>p<\/code> \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a <code>G<\/code>, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043a\u0440\u0438\u0432\u043e\u0439 <code>secp256k1<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u0411\u0438\u0442\u043a\u043e\u0439\u043d\u043e\u043c. <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439:<\/p>\n<pre><code>K = GF(p)<\/code><\/pre>\n<pre><code>K((z1*s2 - z2*s1)\/(r*(s1-s2)))<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442: <code>python3 vulnerabilityR.py<\/code><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/vulnerabilityR.py\" rel=\"noopener noreferrer nofollow\">vulnerabilityR.py<\/a> \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442 <strong><u>\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447<\/u><\/strong> \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u0435:<\/p>\n<pre><code>ADDR: 1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm WIF:  5KJp7KEffR7HHFWSFYjiCUAntRSTY69LAQEX1AUzaSBHHFdKEpQ hex:  c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a69\/992\/dcf\/a69992dcf93bacd0324c9a06722be9b5.png\" alt=\"\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 bitaddress\" title=\"\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 bitaddress\" width=\"558\" height=\"526\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a69\/992\/dcf\/a69992dcf93bacd0324c9a06722be9b5.png\"\/><figcaption>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 bitaddress<\/figcaption><\/figure>\n<p><em><u>\u0417\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430\u0439\u0434\u0435\u043d!<\/u><\/em><\/p>\n<p><a href=\"https:\/\/www.blockchain.com\/btc\/address\/1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm\" rel=\"noopener noreferrer nofollow\">https:\/\/www.blockchain.com\/btc\/address\/1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm<\/a><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/049\/126\/899\/049126899d0dc2b84a30b18fc496c258.png\" alt=\" 0.1638109 BTC\" title=\" 0.1638109 BTC\" width=\"370\" height=\"388\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/049\/126\/899\/049126899d0dc2b84a30b18fc496c258.png\"\/><figcaption> 0.1638109 BTC<\/figcaption><\/figure>\n<blockquote>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0438 \u044d\u0442\u0443 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043d\u0435\u0434\u0440\u0438\u0432 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>RFC 6979<\/code> \u0432\u043d\u043e\u0441\u0438\u0442 \u0432 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u0443\u0441\u0438\u043b\u0438\u0432\u0430\u0435\u0442 \u043a\u0440\u0438\u043f\u0442\u043e\u0441\u0442\u043e\u0439\u043a\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 <code>ECDSA<\/code><\/p>\n<\/blockquote>\n<p><u>Document<\/u> <code>[PDF]<\/code>:<a href=\"https:\/\/eprint.iacr.org\/2014\/848.pdf\" rel=\"noopener noreferrer nofollow\">  <\/a><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6979\" rel=\"noopener noreferrer nofollow\"><em>RFC 6979: Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)<\/em><\/a><\/p>\n<hr\/>\n<h2>\u041a\u0430\u043a \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u0435\u0441\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/h2>\n<blockquote>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 <code>\u0441\u0442\u0430\u0442\u044c\u044e<\/code>: <a href=\"https:\/\/habr.com\/ru\/post\/671932\/\" rel=\"noopener noreferrer nofollow\"><em>\u00ab\u041e\u0434\u043d\u0430 \u0441\u043b\u0430\u0431\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432 ECDSA \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Lattice Attack \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 Private Key \u043a \u043c\u043e\u043d\u0435\u0442\u0430\u043c BTC\u00bb<\/em><\/a><\/p>\n<\/blockquote>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6b8\/723\/07d\/6b872307d4a4dc3a74386c2b83d133a2.png\" alt=\"https:\/\/habr.com\/ru\/post\/671932\/\" title=\"https:\/\/habr.com\/ru\/post\/671932\/\" width=\"494\" height=\"68\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6b8\/723\/07d\/6b872307d4a4dc3a74386c2b83d133a2.png\"\/><figcaption>https:\/\/habr.com\/ru\/post\/671932\/<\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 <code>Bitcoin<\/code> <code>ECDSA<\/code> \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>R, S, Z<\/code> \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/RawTX.json\" rel=\"noopener noreferrer nofollow\">\u00abRawTX.json\u00bb<\/a> (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432 <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/tree\/main\/01BlockchainGoogleDrive\" rel=\"noopener noreferrer nofollow\"><strong>01BlockchainGoogleDrive<\/strong><\/a> )<\/p>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c \u0434\u043b\u044f Google Colab <a href=\"https:\/\/github.com\/demining\/TerminalGoogleColab\" rel=\"noopener noreferrer nofollow\">[<strong>TerminalGoogleColab]<\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0420\u0430\u043d\u0435\u0435 \u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b: <a href=\"https:\/\/www.youtube.com\/watch?v=S2D7PI6dK08\" rel=\"noopener noreferrer nofollow\"><strong>\u00abTERMINAL \u0432 Google Colab \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0441\u0435 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442 \u0432 GITHUB\u00bb<\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043f\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\" rel=\"noopener noreferrer nofollow\"><strong>\u00abCryptoDeepTools\u00bb<\/strong><\/a> \u0434\u043b\u044f \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/getsign.sh\" rel=\"noopener noreferrer nofollow\">getsign.sh<\/a><\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7d1\/bdc\/190\/7d1bdc190149e6da8505d21155f14bbd.png\" alt=\"\u041a\u043e\u043c\u0430\u043d\u0434\u044b\" title=\"\u041a\u043e\u043c\u0430\u043d\u0434\u044b\" width=\"445\" height=\"260\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7d1\/bdc\/190\/7d1bdc190149e6da8505d21155f14bbd.png\"\/><figcaption>\u041a\u043e\u043c\u0430\u043d\u0434\u044b<\/figcaption><\/figure>\n<figure class=\"bordered\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9bf\/c35\/0c7\/9bfc350c715272db79f6bd5c6039e924.png\" alt=\"\u0424\u0430\u0439\u043b\u044b\" title=\"\u0424\u0430\u0439\u043b\u044b\" width=\"277\" height=\"267\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9bf\/c35\/0c7\/9bfc350c715272db79f6bd5c6039e924.png\"\/><figcaption>\u0424\u0430\u0439\u043b\u044b<\/figcaption><\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f0\/cf5\/6f0\/5f0cf56f00c897f69fab24e8a3073588.png\" alt=\"\u041a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430: getsign.sh\" title=\"\u041a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430: getsign.sh\" width=\"466\" height=\"308\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5f0\/cf5\/6f0\/5f0cf56f00c897f69fab24e8a3073588.png\"\/><figcaption>\u041a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430: getsign.sh<\/figcaption><\/figure>\n<blockquote>\n<p>\u0418 \u0442\u0430\u043a \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/getsign.sh\" rel=\"noopener noreferrer nofollow\">getsign.sh<\/a><\/p>\n<\/blockquote>\n<pre><code class=\"bash\">cat RawTX.json > index.json<\/code><\/pre>\n<p>\u0414\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u043f\u0438\u044e \u0444\u0430\u0439\u043b\u0430 <code>RawTX.json<\/code> \u0432 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b <code>index.json<\/code><\/p>\n<pre><code class=\"bash\">for run in {1..4}; do<\/code><\/pre>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <code>\u0426\u0418\u041a\u041b<\/code> \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0444\u0430\u0439\u043b\u0435  <code>index.json<\/code> <em>4 \u0441\u0442\u0440\u043e\u043a<\/em> \u0431\u0435\u0440\u0435\u043c <code>{1..4}<\/code><\/p>\n<pre><code class=\"bash\">export LINE=1 ; sed -n \"${LINE}p\" index.json > index2.json<\/code><\/pre>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <code>export<\/code> \u0431\u0435\u0440\u0435\u0442 <em>\u0441\u0442\u0440\u043e\u043a\u0443 \u21161<\/em> \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u043d\u043e\u0432\u043e\u043c \u0444\u0430\u0439\u043b\u0435 <code>index2.json<\/code><\/p>\n<pre><code class=\"bash\">sed -i '1d' index.json<\/code><\/pre>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <code>sed<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 <em>\u0441\u0442\u0440\u043e\u043a\u0443 \u21161 <\/em> \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <code>index.json<\/code><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/972\/d1b\/555\/972d1b5554e84191da57b16415061198.png\" alt=\"\u0423\u0442\u0438\u043b\u0438\u0442\u0430 echo \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0430\u043c Python-\u0441\u043a\u0440\u0438\u043f\u0442 fileopen.py\" title=\"\u0423\u0442\u0438\u043b\u0438\u0442\u0430 echo \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0430\u043c Python-\u0441\u043a\u0440\u0438\u043f\u0442 fileopen.py\" width=\"563\" height=\"120\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/972\/d1b\/555\/972d1b5554e84191da57b16415061198.png\"\/><figcaption>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 echo \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0430\u043c Python-\u0441\u043a\u0440\u0438\u043f\u0442 fileopen.py<\/figcaption><\/figure>\n<pre><code class=\"bash\">python3 fileopen.py<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <em>Python-\u0441\u043a\u0440\u0438\u043f\u0442<\/em> <code>fileopen.py<\/code> \u0438 \u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439  <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <code>signscript.sh<\/code>  <\/p>\n<pre><code class=\"bash\">chmod +x signscript.sh .\/signscript.sh<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442<\/em>: signscript.sh<\/p>\n<blockquote>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f <em>Python-\u0441\u043a\u0440\u0438\u043f\u0442<\/em> <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/breakECDSA.py\" rel=\"noopener noreferrer nofollow\">breakECDSA.py<\/a> \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0438\u0437 <code>RawTX<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>R, S, Z<\/code> \u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 Bitcoin<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b: <code>\"signatures.json\"<\/code> <\/p>\n<\/blockquote>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e1\/9df\/c27\/2e19dfc270a6f0bc6bd2ea9123215442.png\" alt=\"\u0444\u0430\u0439\u043b: &quot;signatures.json&quot;   \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 Bitcoin \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 R, S, Z \" title=\"\u0444\u0430\u0439\u043b: &quot;signatures.json&quot;   \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 Bitcoin \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 R, S, Z \" width=\"413\" height=\"429\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e1\/9df\/c27\/2e19dfc270a6f0bc6bd2ea9123215442.png\"\/><figcaption>\u0444\u0430\u0439\u043b: &#171;signatures.json&#187;   \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 Bitcoin \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 R, S, Z <\/figcaption><\/figure>\n<pre><code>rm signscript.sh rm fileopen.py<\/code><\/pre>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <code>rm<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 <em>Python-\u0441\u043a\u0440\u0438\u043f\u0442<\/em> <code>fileopen.py<\/code> \u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439  <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <code>signscript.sh<\/code> <\/p>\n<pre><code>done<\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435<em> 4-\u0445 \u0446\u0438\u043a\u043b\u043e\u0432<\/em> <\/p>\n<pre><code>rm index.json<\/code><\/pre>\n<p>\u0426\u0438\u043a\u043b \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <code>rm<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 <code>index.json<\/code><\/p>\n<p> <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442<\/em>: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/getsign.sh\" rel=\"noopener noreferrer nofollow\">getsign.sh<\/a>  <code>\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443!<\/code><\/p>\n<h2>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c:<\/h2>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 <code>Bitcoin <\/code>\u0438\u0437<code> ECDSA<\/code><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>R, S, Z<\/code> \u0438\u0437<code> ECDSA<\/code><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u043b\u044f <code>\u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434: <\/strong><a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\" rel=\"noopener noreferrer nofollow\"><strong>https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography<\/strong><\/a><\/p>\n<p><strong>Telegram:\u00a0<\/strong><a href=\"https:\/\/t.me\/cryptodeeptech\" rel=\"noopener noreferrer nofollow\"><strong>https:\/\/t.me\/cryptodeeptech<\/strong><\/a>  <\/p>\n<p><strong>\u0412\u0438\u0434\u0435\u043e\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b:\u00a0<\/strong><a href=\"https:\/\/youtu.be\/BYd-cuFRZmM\" rel=\"noopener noreferrer nofollow\"><strong>https:\/\/youtu.be\/BYd-cuFRZmM<\/strong><\/a>  <\/p>\n<hr\/>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62c0ba7fb6b9a8627a8d4dad\" data-style=\"\" id=\"62c0ba7fb6b9a8627a8d4dad\" width=\"\"><\/div>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/674736\/\"> https:\/\/habr.com\/ru\/post\/674736\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p> \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 <code>ECDSA R, S, Z<\/code> \u0438\u0437 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0439\u043d, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043e \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b <a href=\"https:\/\/github.com\/tcatm\" rel=\"noopener noreferrer nofollow\">\u041d\u0438\u043b\u044c\u0441 \u0428\u043d\u0430\u0439\u0434\u0435\u0440<\/a> (<code>Nils Schneider<\/code> <em>\u043e\u043d \u0436\u0435<\/em> \u2013 <a href=\"https:\/\/github.com\/tcatm\" rel=\"noopener noreferrer nofollow\"><strong>tcatm<\/strong><\/a>)  <\/p>\n<p> \u0411\u0438\u0442\u043a\u043e\u0438\u043d-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 <em>&#171;BitcoinWatch&#187;<\/em> &amp; <em>&#171;BitcoinCharts&#187;.<\/em><\/p>\n<figure class=\"\"><figcaption>4.1 \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0410\u0442\u0430\u043a \u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0438\u043d<\/figcaption><\/figure>\n<blockquote>\n<p><u>Document<\/u> <code>[PDF]<\/code>:<a href=\"https:\/\/eprint.iacr.org\/2014\/848.pdf\" rel=\"noopener noreferrer nofollow\">  <em>Private Key Recovery Combination Attacks: On Extreme Fragility of Popular Bitcoin Key Management, Wallet and Cold Storage Solutions in Presence of Poor RNG Events<\/em>  <\/a><\/p>\n<\/blockquote>\n<p><em>25 \u0434\u0435\u043a\u0430\u0431\u0440\u044f 2012 \u0433\u043e\u0434\u0430<\/em> \u041d\u0438\u043b\u044c\u0441 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u044c \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u0445 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 \u0411\u0438\u0442\u043a\u043e\u0439\u043d\u0430.<\/p>\n<p><strong>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e:<\/strong> <\/p>\n<p><code>transaction:<\/code> <a href=\"https:\/\/www.blockchain.com\/btc\/tx\/9ec4bc49e828d924af1d1029cacf709431abbde46d59554b62bc270e3b29c4b1\" rel=\"noopener noreferrer nofollow\">9ec4bc49e828d924af1d1029cacf709431abbde46d59554b62bc270e3b29c4b1<\/a><\/p>\n<hr\/>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<hr\/>\n<pre><code>input script 1: 30440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1022044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e0104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff  input script 2: 30440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad102209a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab0104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff<\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u0432\u0445\u043e\u0434\u0430 \u0438 \u043e\u0434\u0438\u043d \u0432\u044b\u0445\u043e\u0434.<br \/> \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0434\u0432\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0435\u0441\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0431\u0430\u0439\u0442\u043e\u0432.<br \/> \u042d\u0442\u0438 \u0431\u0430\u0439\u0442\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0430\u0434\u0440\u0435\u0441\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u044e\u0442\u0441\u044f \u043c\u043e\u043d\u0435\u0442\u044b, \u0442\u0430\u043a \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043b\u043e\u0445\u043e\u0433\u043e.<br \/> \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u2014 \u044d\u0442\u043e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c <code>(r, s)<\/code>:<\/p>\n<pre><code>r1: d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1 r2: d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1  s1: 44e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e s2: 9a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab<\/code><\/pre>\n<blockquote>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, <code>r1<\/code> \u0440\u0430\u0432\u043d\u043e <code>r2<\/code>. <em>\u042d\u0442\u043e <\/em><strong><em><u>\u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/u><\/em><\/strong><em>.<\/em> <\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <strong><u>\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447<\/u><\/strong> \u043d\u0430 \u044d\u0442\u043e\u0442 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447: <\/p>\n<p><code>04dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff<\/code><\/p>\n<\/blockquote>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439 \u0438\u0437 \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u044b \ud83d\ude09<\/p>\n<pre><code>private key = (z1*s2 - z2*s1)\/(r*(s1-s2))<\/code><\/pre>\n<p>\u041d\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <code>z1<\/code> \u0438 <code>z2<\/code><\/p>\n<p>\u042d\u0442\u043e <code>\u0445\u044d\u0448\u0438<\/code> \u0432\u044b\u0445\u043e\u0434\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0445 (\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f <code>OP_CHECKSIG<\/code>):<\/p>\n<pre><code>z1: c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e z2: 17b0f41c8c337ac1e18c98759e83a8cccbc368dd9d89e5f03cb633c265fd0ddc<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0443\u043f\u0430\u043a\u0443\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u0438\u043d <em>Python<\/em>&#8212;<em>\u0441\u043a\u0440\u0438\u043f\u0442:<\/em> <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/vulnerabilityR.py\" rel=\"noopener noreferrer nofollow\">vulnerabilityR.py<\/a><\/p>\n<figure class=\"bordered full-width\"><figcaption>Python-\u0441\u043a\u0440\u0438\u043f\u0442: vulnerabilityR.py<\/figcaption><\/figure>\n<p><code>p<\/code> \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a <code>G<\/code>, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043a\u0440\u0438\u0432\u043e\u0439 <code>secp256k1<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u0411\u0438\u0442\u043a\u043e\u0439\u043d\u043e\u043c. <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439:<\/p>\n<pre><code>K = GF(p)<\/code><\/pre>\n<pre><code>K((z1*s2 - z2*s1)\/(r*(s1-s2)))<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442: <code>python3 vulnerabilityR.py<\/code><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/vulnerabilityR.py\" rel=\"noopener noreferrer nofollow\">vulnerabilityR.py<\/a> \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442 <strong><u>\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447<\/u><\/strong> \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u0435:<\/p>\n<pre><code>ADDR: 1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm WIF:  5KJp7KEffR7HHFWSFYjiCUAntRSTY69LAQEX1AUzaSBHHFdKEpQ hex:  c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96<\/code><\/pre>\n<figure class=\"full-width\"><figcaption>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 bitaddress<\/figcaption><\/figure>\n<p><em><u>\u0417\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430\u0439\u0434\u0435\u043d!<\/u><\/em><\/p>\n<p><a href=\"https:\/\/www.blockchain.com\/btc\/address\/1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm\" rel=\"noopener noreferrer nofollow\">https:\/\/www.blockchain.com\/btc\/address\/1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm<\/a><\/p>\n<figure class=\"\"><figcaption> 0.1638109 BTC<\/figcaption><\/figure>\n<blockquote>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0438 \u044d\u0442\u0443 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u043d\u0435\u0434\u0440\u0438\u0432 \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>RFC 6979<\/code> \u0432\u043d\u043e\u0441\u0438\u0442 \u0432 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u0443\u0441\u0438\u043b\u0438\u0432\u0430\u0435\u0442 \u043a\u0440\u0438\u043f\u0442\u043e\u0441\u0442\u043e\u0439\u043a\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 <code>ECDSA<\/code><\/p>\n<\/blockquote>\n<p><u>Document<\/u> <code>[PDF]<\/code>:<a href=\"https:\/\/eprint.iacr.org\/2014\/848.pdf\" rel=\"noopener noreferrer nofollow\">  <\/a><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6979\" rel=\"noopener noreferrer nofollow\"><em>RFC 6979: Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)<\/em><\/a><\/p>\n<hr\/>\n<h2>\u041a\u0430\u043a \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u0435\u0441\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/h2>\n<blockquote>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 <code>\u0441\u0442\u0430\u0442\u044c\u044e<\/code>: <a href=\"https:\/\/habr.com\/ru\/post\/671932\/\" rel=\"noopener noreferrer nofollow\"><em>\u00ab\u041e\u0434\u043d\u0430 \u0441\u043b\u0430\u0431\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432 ECDSA \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435 \u0411\u0438\u0442\u043a\u043e\u0438\u043d\u0430 \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Lattice Attack \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 Private Key \u043a \u043c\u043e\u043d\u0435\u0442\u0430\u043c BTC\u00bb<\/em><\/a><\/p>\n<\/blockquote>\n<figure class=\"\"><figcaption>https:\/\/habr.com\/ru\/post\/671932\/<\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 <code>Bitcoin<\/code> <code>ECDSA<\/code> \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>R, S, Z<\/code> \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/RawTX.json\" rel=\"noopener noreferrer nofollow\">\u00abRawTX.json\u00bb<\/a> (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432 <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/tree\/main\/01BlockchainGoogleDrive\" rel=\"noopener noreferrer nofollow\"><strong>01BlockchainGoogleDrive<\/strong><\/a> )<\/p>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c \u0434\u043b\u044f Google Colab <a href=\"https:\/\/github.com\/demining\/TerminalGoogleColab\" rel=\"noopener noreferrer nofollow\">[<strong>TerminalGoogleColab]<\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0420\u0430\u043d\u0435\u0435 \u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432\u0438\u0434\u0435\u043e\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b: <a href=\"https:\/\/www.youtube.com\/watch?v=S2D7PI6dK08\" rel=\"noopener noreferrer nofollow\"><strong>\u00abTERMINAL \u0432 Google Colab \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0441\u0435 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442 \u0432 GITHUB\u00bb<\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043f\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\" rel=\"noopener noreferrer nofollow\"><strong>\u00abCryptoDeepTools\u00bb<\/strong><\/a> \u0434\u043b\u044f \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/getsign.sh\" rel=\"noopener noreferrer nofollow\">getsign.sh<\/a><\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><figcaption>\u041a\u043e\u043c\u0430\u043d\u0434\u044b<\/figcaption><\/figure>\n<figure class=\"bordered\"><figcaption>\u0424\u0430\u0439\u043b\u044b<\/figcaption><\/figure>\n<figure class=\"\"><figcaption>\u041a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430: getsign.sh<\/figcaption><\/figure>\n<blockquote>\n<p>\u0418 \u0442\u0430\u043a \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/getsign.sh\" rel=\"noopener noreferrer nofollow\">getsign.sh<\/a><\/p>\n<\/blockquote>\n<pre><code class=\"bash\">cat RawTX.json > index.json<\/code><\/pre>\n<p>\u0414\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u043f\u0438\u044e \u0444\u0430\u0439\u043b\u0430 <code>RawTX.json<\/code> \u0432 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b <code>index.json<\/code><\/p>\n<pre><code class=\"bash\">for run in {1..4}; do<\/code><\/pre>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <code>\u0426\u0418\u041a\u041b<\/code> \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0444\u0430\u0439\u043b\u0435  <code>index.json<\/code> <em>4 \u0441\u0442\u0440\u043e\u043a<\/em> \u0431\u0435\u0440\u0435\u043c <code>{1..4}<\/code><\/p>\n<pre><code class=\"bash\">export LINE=1 ; sed -n \"${LINE}p\" index.json > index2.json<\/code><\/pre>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <code>export<\/code> \u0431\u0435\u0440\u0435\u0442 <em>\u0441\u0442\u0440\u043e\u043a\u0443 \u21161<\/em> \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u043d\u043e\u0432\u043e\u043c \u0444\u0430\u0439\u043b\u0435 <code>index2.json<\/code><\/p>\n<pre><code class=\"bash\">sed -i '1d' index.json<\/code><\/pre>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <code>sed<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 <em>\u0441\u0442\u0440\u043e\u043a\u0443 \u21161 <\/em> \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 <code>index.json<\/code><\/p>\n<figure class=\"full-width\"><figcaption>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 echo \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u0430\u043c Python-\u0441\u043a\u0440\u0438\u043f\u0442 fileopen.py<\/figcaption><\/figure>\n<pre><code class=\"bash\">python3 fileopen.py<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c <em>Python-\u0441\u043a\u0440\u0438\u043f\u0442<\/em> <code>fileopen.py<\/code> \u0438 \u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439  <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <code>signscript.sh<\/code>  <\/p>\n<pre><code class=\"bash\">chmod +x signscript.sh .\/signscript.sh<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442<\/em>: signscript.sh<\/p>\n<blockquote>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f <em>Python-\u0441\u043a\u0440\u0438\u043f\u0442<\/em> <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/breakECDSA.py\" rel=\"noopener noreferrer nofollow\">breakECDSA.py<\/a> \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0438\u0437 <code>RawTX<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>R, S, Z<\/code> \u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 Bitcoin<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b: <code>\"signatures.json\"<\/code> <\/p>\n<\/blockquote>\n<figure class=\"\"><figcaption>\u0444\u0430\u0439\u043b: &#171;signatures.json&#187;   \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 Bitcoin \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 R, S, Z <\/figcaption><\/figure>\n<pre><code>rm signscript.sh rm fileopen.py<\/code><\/pre>\n<p>\u0423\u0442\u0438\u043b\u0438\u0442\u0430 <code>rm<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 <em>Python-\u0441\u043a\u0440\u0438\u043f\u0442<\/em> <code>fileopen.py<\/code> \u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439  <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/em>: <code>signscript.sh<\/code> <\/p>\n<pre><code>done<\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435<em> 4-\u0445 \u0446\u0438\u043a\u043b\u043e\u0432<\/em> <\/p>\n<pre><code>rm index.json<\/code><\/pre>\n<p>\u0426\u0438\u043a\u043b \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <code>rm<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 <code>index.json<\/code><\/p>\n<p> <em>Bash-\u0441\u043a\u0440\u0438\u043f\u0442<\/em>: <a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\/getsign.sh\" rel=\"noopener noreferrer nofollow\">getsign.sh<\/a>  <code>\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443!<\/code><\/p>\n<h2>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c:<\/h2>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 <code>Bitcoin <\/code>\u0438\u0437<code> ECDSA<\/code><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>R, S, Z<\/code> \u0438\u0437<code> ECDSA<\/code><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u043b\u044f <code>\u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434: <\/strong><a href=\"https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography\" rel=\"noopener noreferrer nofollow\"><strong>https:\/\/github.com\/demining\/CryptoDeepTools\/blob\/main\/02BreakECDSAcryptography<\/strong><\/a><\/p>\n<p><strong>Telegram:\u00a0<\/strong><a href=\"https:\/\/t.me\/cryptodeeptech\" rel=\"noopener noreferrer nofollow\"><strong>https:\/\/t.me\/cryptodeeptech<\/strong><\/a>  <\/p>\n<p><strong>\u0412\u0438\u0434\u0435\u043e\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b:\u00a0<\/strong><a href=\"https:\/\/youtu.be\/BYd-cuFRZmM\" rel=\"noopener noreferrer nofollow\"><strong>https:\/\/youtu.be\/BYd-cuFRZmM<\/strong><\/a>  <\/p>\n<hr\/>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62c0ba7fb6b9a8627a8d4dad\" data-style=\"\" id=\"62c0ba7fb6b9a8627a8d4dad\" width=\"\"><\/div>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/674736\/\"> https:\/\/habr.com\/ru\/post\/674736\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-335256","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/335256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=335256"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/335256\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=335256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=335256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=335256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}