MSTR Cat

Blockchain/Tahap II · Mekanisme/2.1 Kriptografi/Pelajaran 5

Entropi dan kerawakan

Asas yang tidak kelihatan: mengapa sesuatu kunci hanya sekuat hingar (noise) yang menciptanya

BahanSatu set dadu (pilihan, untuk melihat entropi fizikal)Buku nota

Ingin tahu

  1. Apakah yang membezakan kerawakan sebenar daripada intuisi manusia?
  2. Bagaimanakah pepijat perisian dalam sebuah distribusi Linux mendedahkan ribuan kunci kepada serangan brute-force?
  3. Mengapa frasa dua belas perkataan mewakili tepat 128 bit entropi ditambah dengan checksum?

Teroka

  1. Kunci peribadi Bitcoin ialah integer rawak antara 1 dan n-1, dengan n ialah peringkat penjana lengkung secp256k1. Ruang ini mengandungi kira-kira 1.158 × 10^77 nilai yang mungkin. Untuk mensasarkan keselamatan 128 bit terhadap serangan logaritma diskret, kunci mesti dipilih secara seragam daripada julat ini. Jika proses pemilihan boleh diramal atau berat sebelah, entropi berkesan akan menurun, lalu mengurangkan usaha yang diperlukan oleh penyerang kepada sebahagian kecil daripada nilai maksimum teori.
  2. Entropi mengukur ketidakpastian dalam unit bit. Mnemonik BIP39 dua belas perkataan mengekodkan 128 bit kerawakan sebenar ditambah checksum empat bit yang diterbitkan daripada SHA-256. Frasa dua puluh empat perkataan membawa 256 bit. Perkataan terakhir berfungsi sebahagiannya sebagai pengesan ralat; perkataan rawak jarang membentuk frasa yang sah kerana checksumnya akan gagal. Struktur ini mengurangkan ralat transkripsi yang tidak disedari, dengan syarat entropi sumbernya benar-benar tulen.
  3. Kerawakan yang dijana oleh manusia terkenal sangat lemah. Frasa yang dipilih oleh manusia membawa entropi yang jauh lebih rendah daripada yang disangka, kerana orang cenderung memilih perkataan, petikan dan corak yang biasa. Penyerang mengeksploitasi hal ini dengan menjalankan serangan kamus terhadap kunci yang diterbitkan daripada frasa yang mudah diingat, yang dikenali sebagai 'brain wallet'. Vasek, Bonneau et al. (2016) mendokumentasikan bagaimana dompet sebegini dikosongkan secara rutin, selalunya sejurus selepas diisi dana, kerana penyerang dapat menguji senarai frasa berkemungkinan yang sangat besar.
  4. Kecacatan pelaksanaan perisian telah berulang kali menjejaskan penjanaan kunci. Satu perubahan Debian pada OpenSSL (digunakan dari 2006 hingga 2008, didedahkan dalam DSA-1571) menjadikan ID proses hampir satu-satunya sumber variasi, sehingga setiap jenis dan saiz kunci hanya mempunyai kira-kira 32,768 kunci yang mungkin. Pada Ogos 2013, kecacatan dalam SecureRandom Android menyebabkan sesetengah dompet bitcoin menggunakan semula nonce tandatangan, lalu mendedahkan kunci peribadi dan membolehkan kecurian. Insiden-insiden ini menunjukkan bahawa sumber entropi mesti selamat secara kriptografi dan bebas daripada keadaan sistem.
  5. 'Randstorm', yang didedahkan pada tahun 2023 oleh Unciphered, menunjukkan bahawa dompet web era BitcoinJS (kira-kira 2011-2015) menggunakan penjana kerawakan yang lemah, sekali gus mendedahkan pengguna kepada serangan pemulihan kunci. Dompet perkakasan moden mengumpul entropi daripada pelbagai sumber dalaman semasa permulaan, lalu memaparkan mnemonik yang terhasil satu perkataan demi satu perkataan. Setelah ditulis, perkataan-perkataan ini menjadi satu-satunya kuasa ke atas dana tersebut; kehilangannya bermakna kehilangan akses secara kekal.
  6. Entropi yang baik datang daripada penjana nombor rawak kriptografi sistem pengendalian (CSPRNG), RNG perkakasan, atau proses fizikal seperti lontaran dadu (dengan kaveat tentang bias). CSPRNG mencampurkan hingar daripada peristiwa sistem dan sensor perkakasan untuk menghasilkan bit yang tidak dapat diramal. Jika output berada antara 1 dan n−1, ia menjadi kunci peribadi yang sah; jika tidak, penjana akan mencuba semula dengan data rawak baharu. Gelung ini memastikan taburan seragam merentasi keseluruhan peringkat lengkung.

Fakta utama

  • Kunci peribadi Bitcoin mensasarkan keselamatan 128 bit, yang memerlukan pemilihan seragam daripada ~1.158 × 10^77 nilai yang mungkin.
  • Frasa BIP39 dua belas perkataan mengekodkan 128 bit entropi ditambah checksum empat bit; dua puluh empat perkataan mengekodkan 256 bit.
  • Pepijat OpenSSL Debian (2006-2008, DSA-1571) mengecilkan ruang kunci kepada kira-kira 32,768 kemungkinan bagi setiap jenis dan saiz kunci.
  • Kecacatan SecureRandom Android yang didedahkan pada Ogos 2013 menyebabkan sesetengah dompet menggunakan semula nonce tandatangan, lalu mendedahkan kunci kepada kecurian.
  • 'Randstorm' (didedahkan pada 2023) mengenal pasti kerawakan yang lemah dalam dompet web era BitcoinJS dari kira-kira 2011-2015.
  • Kunci yang diterbitkan daripada frasa yang mudah diingat ('brain wallet') secara rutin ditemui dan dikosongkan oleh penyerang.

Latihan sembilan, enam, tiga, satu

9KumpulSenaraikan 9 sumber kerawakan digital atau fizikal. Catatkan mekanismenya (contohnya, ketaran (jitter) jam sistem, hingar terma) serta sebarang kelemahan bersejarah yang diketahui berkaitan dengan setiap satunya.
6KelompokkanKumpulkan 9 sumber tersebut ke dalam 6 kategori berdasarkan kualiti entropinya: CSPRNG yang selamat secara kriptografi, RNG perkakasan, proses fizikal, dijana oleh manusia, pelaksanaan perisian yang cacat, atau lain-lain.
3SaringKurangkan 6 kumpulan tersebut kepada 3 kriteria untuk menilai sama ada sesuatu sumber kerawakan sesuai untuk menjana kunci peribadi Bitcoin.
1KristalkanTulis 1 ayat tentang mengapa taburan seragam merentasi peringkat lengkung n adalah syarat mutlak bagi keselamatan kunci.

Semakan fakta

Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.

Buka dalam akademi interaktif →

EN PT ES ZH JA KO RU DE FR