Cointime

Download App
iOS & Android

ビットコインとイーサリアムに対する市松模様のハーフハーフ攻撃を解析する

Validated Project

著者: シルヴァン・ペリシエ編集: Cointime.com 237

パブリック ブロックチェーンには、ECDSA 署名に対する攻撃の長い歴史があります。すべてのトランザクションは公開されるため、暗号化攻撃の完璧な実験場となります。 「A Curious Case of Half-Bitcoin ECDSA Random Numbers」と呼ばれるラティス攻撃が最近公開され、ビットコインで実験されました。半分ずつのフォンデュを愛するスイスのチームとして、私たちはこの攻撃を調査する必要がありました。以前の攻撃である「多項式乱数」も、この方法で ECDSA 乱数を生成できることがわかりました。この論文では、その方法を説明し、論文で得られた結果とどのように比較するかを示します。

前の攻撃

メッセージに署名するために、ECDSA は nonce と呼ばれる値を使用します。 nonce はランダムに生成される必要があり、署名されるメッセージごとに一意である必要があります。ビットコインとイーサリアムの secp256k1 曲線の場合、典型的なノンス値は次のとおりです。

ECDSA のよく知られ、よく研究されている落とし穴は、ノンスの再利用です。名前が示すように、ノンスが別の署名で再利用される場合、それらの署名から秘密鍵を復元できます。明らかに、ブロックチェーンに適用される最初の攻撃はノンス再利用攻撃です。 2 つの異なるメッセージが同じ nonce で署名されるとすぐに、秘密鍵が危険にさらされます。この問題は通常、RFC 6979 に従って決定論的な乱数を生成することで解決されます。

ただし、ECDSA ノンスは非常に重要であるため、生成に偏りがあると秘密キーの回復につながる可能性があります。したがって、より巧妙な格子ベースの攻撃が後にパブリック ブロックチェーンに適用されました。これらの攻撃では、64、110、128、および 160 ビットの長さの予想よりも短いノンスが回復される可能性があります。たとえば、次のように生成された乱数は、格子ベースの攻撃に対して脆弱です。

ノンスが小さいほど、攻撃に使用される格子の次元が小さくなり、攻撃の成功に必要な署名の数が少なくなります。 Biased Random Numbers の論文によると、2 つの 128 ビット乱数と 3 次元格子により、成功 (秘密キーの回復) の確率は 75% になります。 3 つの 170 ビット乱数と 4 次元格子を使用すると、95% の成功確率が得られます。この攻撃の変種は、共有のプレフィックスとサフィックスを持つノンスを検出するためにも適用できます。たとえば、次のように生成された乱数は、前述の攻撃や一般的なサフィックス構造に対して同様に脆弱です。

ポリノンス

ECDSA を攻撃するもう 1 つの方法は、乱数間の代数的関係を仮定することです。私たちのチームは、未知の係数 a_i 間に次の形式の多項式関係があると仮定する Polynonce 攻撃を提案しました。

k_{n+1} = a_1 k_n + a_0

また

k_{n+1} = a_2 k_n^2 + a_1 k_n + a_0

Polynonce 攻撃は、成功の確率 100% で代数的に秘密キーを回復できますが、線形の場合は 4 つの署名、二次の場合は 5 つの署名など​​が必要になります。この攻撃は主に多項式を解くことに依存しているため、格子ベースの攻撃と比較して非常に高速です。詳細については、この攻撃については今後開催される DEFCON カンファレンスで発表される予定です。

単一の署名

これまでのすべての攻撃では、同じ秘密キーからの少なくとも 2 つの異なる署名が必要でした。ただし、Ledger のようなウォレットは、単一の秘密キーを使用してトランザクションに署名し、その後秘密キーを変更します。これは、多くのビットコインのパブリック アドレスが現在 1 回しか使用されない理由を説明します。以下は、P2PKH トランザクションに限定された対数スケールでプロットされたビットコイン送金データ (2022 年 9 月 5 日時点、ブロック 752759) のグラフです。

これは、P2PKH トランザクションに使用される公開キーの 92% が 1 回のみ使用されていることを示しています。この機能は主にプライバシーを目的としていますが、間接的に以前の攻撃からも保護します。イーサリアムの場合は状況が少し異なります。 151429561 個の一意のキーから 1759432087 個の署名を分析し、線形スケール プロットを作成しました。

これは、P2PKH トランザクションに使用される公開キーの 92% が 1 回のみ使用されていることを示しています。この機能は主にプライバシーを目的としていますが、間接的に以前の攻撃からも保護します。イーサリアムの場合は状況が少し異なります。 151429561 個の一意のキーから 1759432087 個の署名を分析し、線形スケール プロットを作成しました。

これはまったく異なる状況です。公開鍵の 42% は 1 つの署名のみに使用され、22% は 2 つの署名に、13% は 3 つの署名に使用されます。したがって、イーサリアムではプライバシー保護手法はあまり適用されないか、まったく適用されないようです。

半分半分の乱数

最近、メッセージ ハッシュの上半分を使用して、ノンスが秘密キーの上半分と連結されるときに、いくつかの問題を引き起こす新しい攻撃方法が出現しました。つまり、乱数 k は次のように表すことができます。

k = h_{msb} || d_{msb}

この攻撃の新規性は、単一の署名から秘密鍵 d を回復できることです。以前の格子ベースの攻撃と同様に、乱数 k の式が ECDSA 式に挿入され、再配置されて隠れ数問題のインスタンスが形成されます。次に、BKZ アルゴリズムを使用してインスタンスが解決されます。この手法は、一度だけ使用される秘密キーを使用して発行されたトランザクションを攻撃するために必要な署名が 1 つだけであるため、非常に強力です。最適化されたバージョンの攻撃では、99.99% の成功率で 0.48 秒で秘密キーを回復できました。これは非常に強力ですが、作者がビットコイン ブロックチェーンへの攻撃を実行するのに 49 CPU 年かかりました。

Polynonce をハーフハーフ乱数に適用する

ハーフハーフ攻撃について読んでいると、Polynonce はハーフハーフ乱数を使用して秘密キーを回復するためにも使用できることがわかりました。 ECDSA 署名 (r, s)、メッセージ ハッシュ h、および秘密鍵 d については、ノンスに関連して次の関係があります。

k = s^{-1}(h + rd) mod q

前述の半々式を使用して生成された 2 つの乱数 k_0 と k_1 がある場合、それらの差は次のようになります。

k_0 - k_1 = s_0^{-1}h_0 - s_1^{-1}h_1 + (s_0^{-1}h_0 - s_1^{-1}h_1)d = h_{0,msb} - h_{1, msb}

他のすべての値が既知である d の線形方程式を見つけました。これにより、方程式を解いて秘密鍵 d を回復するための非常に高速な方法が提供されます。ただし、Polynonce を使用するには、同じ秘密キーからの 2 つの nonce と 2 つの署名が必要です。私たちはこれまでの攻撃に比べて大きなアドバンテージを失ってしまいました。それにもかかわらず、この攻撃の亜種は非常に高速であるため、最初に複数の署名を持つ公開鍵に対してこの攻撃を使用し、次に残りの署名に対してラティスベースの攻撃を使用することが可能です。

方程式の乱数の差は h_{0,msb} - h_{1,msb} のみに依存するため、これにより、式 k_i = h_{i,msb} || c の使用に戻ることができます (c は(シークレット) 定数) 生成されたすべての乱数。これはより一般的ですが、ビットコインの場合は少し複雑です。 ECDSA 署名 (r、s) から始まり、同じメッセージの別の署名 (r、-s) も有効です。ビットコインは署名の偽造を避けるために s の最大値を持つ署名を拒否するため、-k と k の両方を計算する必要があることを意味します。したがって、攻撃では、各ノンスの符号を推測する必要があります。

この構造は、共有サフィックスに対するラティス攻撃に関する以前の研究でも発見されているはずですが、成功率はわずか 75% でした。

結果

前回の分析で使用したビットコイン ブロックチェーン ダンプ ファイル (2022 年 9 月 5 日時点のブロック 752,759) に対して分析を実行しました。私たちは少なくとも 2 つの署名を持つ 3,400 万個の公開鍵を分析しました。 2.7 GHz クロックの 16 コア AMD プロセッサでは、10 分 23 秒かかりました。

私たちは 110 個の一意の秘密キーを見つけて回復することに成功しました。たとえば、住所

18zg6FG5pu8Bpq73L54AYvB8phTw3qCCR7

取引

私たちは 110 個の一意の秘密キーを見つけて回復することに成功しました。たとえば、住所

18zg6FG5pu8Bpq73L54AYvB8phTw3qCCR7

取引

f3151fc1b29c117f1e4b67045b2d2901e7c289f596c242d7de123243fb623981

f7bf1edf9d9cefa8421322c53bb00ecf118f99489171da72a9c11cf8d02b65f8

ハーフアンドハーフ方式を使用して乱数を生成します。私たちのスクリプトは、このアドレスの秘密キーを回復できます。

このようなトランザクションの nonce を再計算すると、次のようになります。

nonce の最下位半分が秘密キーの最上位半分に等しいことが明確にわかります。ただし、上で述べたように、他の興味深いケースを復元することができました。同じアドレスに対して 2 つのノンスが見つかりました。

この場合、実際には別の未知の定数が見つかったため、秘密キーは関係しません。また、このような乱数を使用する一部のキーは小さいキーであるという以前の調査結果も確認できました: d = {1, 2, 4, 7, 11, 24, 75, 77, 87, 128, 144, 549, 897 }。したがって、これらのキーは、Web サイト https://privatekeys.pw で行われる作業と同様に、ブルート フォース手法によって簡単に回復できます。残高がゼロ以外のアカウントは見つかりませんでした。ボットによって監視されており、残高が変化すると空になると考えられます。

この攻撃は非常に高速であるため、半乱数生成の他の亜種に対しても同じ攻撃を実行しました: k = h_{lsb} || d_{msb}, k = d_{msb} || h_{msb} および k = d_{msb} || h_{lsb} ですが、追加の結果は見つかりませんでした。

また、前回の攻撃中に収集されたイーサリアム データセットに対しても同じ攻撃を実行しました。同じマシンでの攻撃には 49 分 11 秒かかりました。この攻撃では秘密鍵は回復されませんでした。

これまでのさまざまな創造的な乱数生成構造は非常に興味深いもので、他にもエキゾチックな構造があるのではないかと考えました。これらの新たな攻撃では新しい秘密鍵は回復されませんが、他の弱い乱数生成アルゴリズムが以前のトランザクションで使用されなかったことを意味するものではなく、同様の方法で回復が達成できることを意味するものでもありません。このような問題が発見された場合、資金を保護する最善の方法は、これまで取引に使用されていない新しいアドレスに資金を移動し、脆弱なアドレスを空のままにすることです。私たちの攻撃スクリプトと得られた結果は、Polynonce 攻撃の Github リポジトリで入手できます。

コメント

全てのコメント

Recommended for you

  • 米上院銀行委員会の委員長は、ステーブルコインの利回りに関する新たな草案が早ければ今週中にも公表される可能性があると述べた。

    Cointimeの報道によると、上院銀行委員会の委員長を務めるティム・スコット上院議員は、ワシントンD.C.で開催されたブロックチェーンサミットで、議員らは早ければ今週中にも、少なくともステーブルコイン関連の条項を含む新たな法案草案を目にする可能性があると述べた。スコット議員は、法案の中で最も注目を集めているのはステーブルコインの利回り問題だが、議員らは引き続きこの問題に取り組んでいると指摘した。 スコット議員は、「今週中に最初の提案が提出されるだろう。もしそれが週末までに実現すれば、少なくとも法案の枠組みが形になりつつあるかどうかが分かるだろう。そうなれば、我々はより良​​い状況に立てると思う」と述べた。また、ステーブルコインの利回り問題に関して、民主党のアンジェラ・アルソブルックス上院議員、共和党のトム・ティリス上院議員、そしてホワイトハウス高官のパトリック・ウィット氏の尽力も、この進展に貢献していると述べた。 スコット氏は、過去1か月間の交渉で、ドナルド・トランプ大統領とその家族の暗号資産プロジェクトに対する議員の懸念、主要な規制機関における超党派代表の欠如、顧客確認(KYC)規制など、その他の未解決問題も取り上げられたと述べた。 スコット氏はまた、「倫理問題と定足数については、合意に非常に近づいていると思います。これは相手側にとっても重要な問題だと認識しているので、こちらも対応しています。また、いくつかの人事についても進展が見られており、これは良いニュースです。DeFiに関しては、マーク・ワーナー上院議員が注力している分野であり、マネーロンダリング対策(AML)は非常に重要な要素です。これらの問題についても前進していると思います」と述べた。

  • ゴールデンモーニングブリーフィング|3月18日の主要な夜間動向

    21:00~7:00 キーワード:ファントムウォレット、ストライプウォレット、オートノマスウォレット、イラン 1. イランは、米国とイスラエルが自国領土を使用することを容認する国に対して、合法的に攻撃できると主張している。 2. 米国CFTC(商品先物取引委員会)は、ファントムウォレットはブローカーとしての登録を必要としないと発表。 3. アリゾナ州司法長官は、予測マーケティング担当者のカルシ氏を刑事告発。 4. 米国国務省は、世界中のすべての在外公館に対し、「直ちに」安全保障評価を実施するよう命じた。 5. ロビンフッド・ベンチャーキャピタルは、ストライプウォレットとイレブンラボに約3500万ドルを投資。 6. GSRは、オートノマスウォレットとアーキテックを買収するために5700万ドルを投資し、暗号資産ファンド管理プラットフォームを構築。 7. 米国証券取引委員会(SEC)とCFTCは、ほとんどのデジタル資産は証券ではないとする新たな暗号資産ガイダンスを発表。

  • 米国証券取引委員会(SEC)と商品先物取引委員会(CFTC)は、仮想通貨に関する新たな見解を発表し、ほとんどのデジタル資産は証券の範疇には含まれないとした。

    Cointimeは3月18日、米国証券取引委員会(SEC)と商品先物取引委員会(CFTC)が暗号資産に関する68ページのガイダンス文書を公表し、ほとんどのデジタル資産は証券ではないと明記したと報じた。この新たな説明では、ステーブルコイン、デジタル商品、および「デジタル商品」トークンの分類が詳細に説明されており、これらはすべて証券ではないと両機関は述べている。また、「非証券暗号資産」がどのようにして証券になり得るのかを説明し、マイニング、プロトコルステーキング、エアドロップに連邦証券法がどのように適用されるのかを明確にしている。 SECはさらに、非証券デジタル資産が投資契約の対象となる仕組みについても説明している。SECの説明によると、「非証券暗号資産は、発行者が投資家に対し共同事業への投資を促し、必要な経営業務を行うという約束または表明を行い、かつ購入者がそこから利益を得ると期待する理由がある場合に、投資契約の対象となる」。

  • マスターカードは、ステーブルコイン企業であるBVNKを最大18億ドルで買収する計画だ。

    Cointimeの報道によると、Mastercardはステーブルコインインフラのスタートアップ企業であるBVNKを、条件付き買収額3億ドルを含め最大18億ドルで買収する計画だ。この買収は、BVNKとCoinbaseの約20億ドル規模の合併交渉が決裂してからわずか4ヶ月後のことである。両社は火曜日に発表した共同声明で、この取引を確認した。

  • ビットコインが7万5000ドルを突破

    市場データによると、BTCは75,000ドルを突破し、現在75,033.01ドルで取引されており、24時間で2.83%上昇しています。市場は著しい変動に見舞われているため、リスク管理には十分ご注意ください。

  • ビットコインが7万1500ドルを突破

    市場データによると、BTCは71,500ドルを突破し、現在71,510.19ドルで取引されており、24時間で1.06%上昇しています。市場は著しい変動に見舞われているため、リスク管理には十分ご注意ください。

  • イーサリアムが2100ドルを突破

    市場データによると、イーサリアム(ETH)は2,100ドルを突破し、現在2,100.58ドルで取引されており、24時間で0.44%上昇しています。市場は著しい変動に見舞われていますので、リスク管理に十分ご注意ください。

  • 米国の現物イーサリアムETFには、昨日2670万ドルの純流入があった。

    Farside Investorsが監視しているデータによると、3月14日、米国の現物イーサリアムETFには昨日、2670万ドルの純流入があった。

  • 米国司法省はパウエル事件の判決を不服として控訴する予定であり、これによりウォーシュ氏の任命が遅れる可能性がある。

    3月14日、裁判官が連邦準備制度理事会(FRB)に発行された召喚状を却下した後、ロバート・ピロ連邦検事は、FRB議長ジェローム・パウエル氏に対する捜査を継続すると誓い、5月に任期が満了する後任のケビン・ウォーシュ氏の任命を遅らせる可能性があると述べた。ジェームズ・ボスバーグ連邦地裁判事は、FRB本部の改修工事とパウエル氏の同プロジェクトに関する発言に関連する召喚状を政府が正当化する証拠を提示できなかったと述べた。ピロ氏は、「この手続きは過激な判事によって恣意的に妨害された。手続きは円滑に進むべきだったが、そうはならなかった。彼らは恥ずべき行為をしている」と述べた。上院銀行委員会のメンバーであるティリス上院議員は、司法省によるパウエル氏に対する捜査が続く限り、FR​​B議長の指名を阻止すると警告した。「この判決は、パウエル議長に対する刑事捜査がいかに弱く根拠のないものであったかを裏付けるものであり、FRBの独立性に対する失敗した攻撃に過ぎない」とティリス氏は述べた。 「この控訴は、ケビン・ウォーシュ氏の次期連邦準備制度理事会議長への就任承認を遅らせるだけだろう。」

  • ビットコインが7万2000ドルを下回る

    市場データによると、BTCは72,000ドルを下回り、現在71,996.46ドルで取引されています。24時間での上昇率は2.32%に縮小しました。市場の変動性が高いため、リスク管理を徹底してください。