Fundamentals ·

Apa Itu Entropy? Keacakan di Balik Keamanan Kripto


Setiap dompet kripto dimulai dengan angka acak. Bukan kata sandi yang Anda pilih, bukan pola yang Anda rancang, melainkan keacakan mentah yang diambil dari dunia fisik. Keacakan ini disebut entropy, dan ini adalah faktor tunggal terpenting yang menentukan apakah aset kripto Anda aman atau rentan.

Jika entropy di balik dompet Anda kuat, penyerang perlu mencari melalui lebih banyak kombinasi daripada jumlah atom di alam semesta yang dapat diamati untuk menemukan kunci Anda. Jika entropy lemah, dana Anda bisa dicuri dalam hitungan detik. Tidak ada jalan tengah.

Entropy Didefinisikan

Dalam kriptografi, entropy mengukur ketidakpastian data. Ini dihitung dalam bit. Satu bit entropy mewakili satu pilihan biner tunggal: kepala atau ekor, 0 atau 1. Dua bit entropy memberi Anda empat kemungkinan hasil. Tiga bit memberi delapan. Setiap bit tambahan menggandakan jumlah kemungkinan.

Rumusnya sederhana: n bit entropy menghasilkan 2^n kemungkinan nilai.

Pertumbuhan eksponensial inilah yang membuat entropy begitu kuat. Pada angka kecil, kemungkinannya tampak bisa dikelola. Pada jumlah bit yang digunakan dalam kripto, mereka menjadi sangat besar tak terpikirkan.

Entropy dalam konteks kripto bukan metafora atau konsep abstrak. Ini adalah kuantitas keacakan yang spesifik dan terukur yang dimasukkan ke algoritma deterministik untuk menghasilkan seed phrase, private key, dan akhirnya alamat Anda. Segala sesuatu setelah entropy awal diturunkan secara matematis. Entropy itu sendiri adalah satu-satunya bagian yang harus benar-benar acak.

128 Bit vs 256 Bit

Standar BIP39, yang mendefinisikan bagaimana seed phrase dibuat, mendukung dua panjang entropy utama:

128 bit (seed phrase 12 kata)

  • Menghasilkan 2^128 kemungkinan seed phrase
  • Yaitu 340.282.366.920.938.463.463.374.607.431.768.211.456 kombinasi
  • Kira-kira 3,4 x 10^38

256 bit (seed phrase 24 kata)

  • Menghasilkan 2^256 kemungkinan seed phrase
  • Yaitu kira-kira 1,16 x 10^77 kombinasi
  • Lebih banyak dari perkiraan jumlah atom di alam semesta yang dapat diamati

Kedua level dianggap aman terhadap teknologi saat ini. 128 bit entropy adalah standar untuk sebagian besar dompet konsumen, dan tidak ada metode komputasi yang diketahui dapat mencari melalui 2^128 kemungkinan dalam kerangka waktu yang praktis. Opsi 256 bit memberikan margin keamanan tambahan bagi pengguna yang menginginkan perlindungan maksimum atau khawatir tentang kemajuan komputasi di masa depan. Untuk perbandingan detail, lihat Seberapa Cepat Seed Phrase Bisa Di-Brute-Force?.

Hubungan antara bit entropy dan jumlah kata mengikuti aturan sederhana: setiap 11 bit entropy dipetakan ke satu kata dari daftar kata BIP39 (2.048 kata, dan 2^11 = 2.048). Frasa 12 kata mengkodekan 128 bit entropy ditambah 4 bit checksum. Frasa 24 kata mengkodekan 256 bit entropy ditambah 8 bit checksum. Untuk penjelasan lengkap proses ini, baca BIP39 Dijelaskan.

Sumber Keacakan: Hardware RNG dan Web Crypto API

Pertanyaan kritis adalah: dari mana entropy berasal? Tidak semua generator angka acak diciptakan sama.

Pseudorandom vs Aman Secara Kriptografis

Fungsi acak pemrograman standar (seperti Math.random() JavaScript) adalah pseudorandom. Ia menggunakan formula matematis untuk menghasilkan angka yang tampak acak tetapi sepenuhnya deterministik. Dengan seed awal yang sama, ia akan menghasilkan urutan yang sama setiap kali. Ini sangat tidak cocok untuk menghasilkan kunci kripto.

Generator angka acak yang aman secara kriptografis (CSPRNG) menyelesaikan ini dengan menggabungkan keacakan fisik sejati dari sumber perangkat keras.

Generator Angka Acak Perangkat Keras

CPU modern menyertakan generator angka acak perangkat keras khusus yang mengumpulkan entropy dari fenomena fisik:

  • Intel RDRAND/RDSEED: Menggunakan noise termal di sirkuit silikon
  • ARM TrustZone TRNG: Memanfaatkan pembuatan bit acak level perangkat keras
  • Entropy pool level OS: /dev/urandom Linux, CryptGenRandom Windows, dan SecRandomCopyBytes macOS semuanya memelihara pool entropy yang diisi oleh kejadian perangkat keras seperti waktu interrupt, variasi pencarian disk, dan waktu kedatangan paket jaringan

Sumber fisik ini menghasilkan keacakan yang tidak dapat diprediksi bahkan oleh penyerang dengan pengetahuan lengkap tentang state perangkat lunak sistem.

Web Crypto API

Untuk alat berbasis browser, Web Crypto API menyediakan akses ke generator angka acak kriptografis sistem operasi melalui crypto.getRandomValues(). Fungsi ini ditentukan oleh W3C dan diimplementasikan di semua browser modern. Ia mengambil dari pool entropy level OS yang sama yang digunakan oleh aplikasi native.

SafeSeed menggunakan Web Crypto API untuk semua pembuatan kunci. Saat Anda menggunakan Bitcoin Seed Phrase Generator atau Ethereum Seed Phrase Generator, entropy bersumber melalui crypto.getRandomValues(), yang menyediakan byte acak yang aman secara kriptografis langsung dari perangkat keras perangkat Anda. Tidak ada yang dihasilkan di server; semuanya berjalan di browser Anda.

Web Crypto API tidak sama dengan Math.random(). Ini adalah sistem yang secara fundamental berbeda yang dirancang khusus untuk operasi kriptografis. Perbedaannya sangat penting: Math.random() memiliki sekitar 52 bit state internal pada kebanyakan implementasi, artinya penyerang yang mengamati beberapa output dapat memprediksi semua output masa depan. crypto.getRandomValues() tidak memiliki kelemahan tersebut.

Dari Entropy ke Seed Phrase

Perjalanan dari entropy mentah ke seed phrase mengikuti jalur yang tepat dan deterministik yang didefinisikan oleh spesifikasi BIP39:

Langkah 1: Hasilkan byte acak

CSPRNG menghasilkan 16 byte (128 bit) atau 32 byte (256 bit) data acak.

Langkah 2: Hitung checksum

Hash SHA-256 dari entropy dihitung. 4 bit pertama (untuk entropy 128 bit) atau 8 bit pertama (untuk entropy 256 bit) dari hash ini ditambahkan ke entropy sebagai checksum.

Langkah 3: Bagi menjadi grup 11 bit

Bit gabungan entropy + checksum dibagi menjadi grup 11 bit masing-masing. Untuk frasa 12 kata: 128 + 4 = 132 bit, dibagi menjadi 12 grup 11 bit.

Langkah 4: Petakan ke kata

Setiap nilai 11 bit (0-2047) digunakan sebagai indeks ke daftar 2.048 kata BIP39. Hasilnya adalah frasa mnemonic Anda.

Langkah 5: Turunkan seed

Frasa mnemonic dilewatkan melalui PBKDF2-HMAC-SHA512 dengan 2.048 iterasi untuk menghasilkan seed 512 bit. Seed ini kemudian digunakan untuk menurunkan pohon HD wallet mengikuti derivation path BIP44.

Setiap langkah setelah langkah 1 bersifat deterministik. 128 bit entropy yang sama akan selalu menghasilkan 12 kata yang sama, seed yang sama, dan alamat yang sama. Seluruh keamanan sistem bertumpu pada ketidakpastian byte acak awal tersebut.

Ketika Entropy Lemah Menyebabkan Dana Dicuri

Konsekuensi entropy lemah bukan teoritis. Beberapa insiden dunia nyata telah menunjukkan apa yang terjadi ketika keacakan gagal.

Kerentanan Android SecureRandom (2013)

Pada Agustus 2013, cacat dalam implementasi SecureRandom Android ditemukan. Library kriptografi Java di Android tidak seeding generator angka acaknya dengan benar, menyebabkan beberapa dompet Bitcoin menghasilkan private key dengan entropy tidak cukup. Penyerang mengeksploitasi ini untuk mencuri bitcoin dari dompet yang terdampak. Kerentanan ini memengaruhi beberapa aplikasi dompet dan menyebabkan patch darurat di seluruh ekosistem Android.

Blockchain Bandit (kunci yang dapat diprediksi)

Peneliti keamanan Adrian Bednarek mendokumentasikan kasus di mana penyerang secara sistematis memindai blockchain Ethereum mencari alamat yang diturunkan dari private key lemah. Kunci seperti 0x0000...0001 (angka 1) atau kunci yang diturunkan dari frasa sederhana telah digunakan oleh orang yang tidak memahami entropy. Bot otomatis memantau alamat-alamat ini dan mencuri dana apa pun yang disetorkan ke sana dalam hitungan detik. Ribuan ether terkuras dari alamat dengan kunci yang dapat diprediksi.

Serangan brain wallet

Brain wallet -- di mana private key diturunkan dari frasa yang dihafal -- telah berulang kali dikompromikan karena frasa yang dipilih manusia memiliki entropy jauh lebih sedikit dari yang diasumsikan. Penyerang menjalankan kamus besar berisi frasa, lirik lagu, kutipan buku, dan kata sandi umum melalui fungsi derivasi yang sama yang digunakan brain wallet. Frasa apa pun yang bisa dihafal manusia kemungkinan besar berada dalam ruang pencarian serangan ini.

Insiden-insiden ini berbagi pelajaran yang sama: algoritma kriptografi itu sendiri (SHA-256, secp256k1, ECDSA) tidak rusak. Entropy yang dimasukkan ke dalamnya yang tidak cukup.

Menguji Kualitas Entropy

Bagaimana Anda memverifikasi bahwa generator angka acak menghasilkan entropy berkualitas? Beberapa tes statistik ada:

NIST SP 800-22

National Institute of Standards and Technology menerbitkan rangkaian tes statistik untuk keacakan. Termasuk tes frekuensi (apakah 0 dan 1 kira-kira seimbang?), tes run (apakah urutan bit identik memiliki panjang yang diharapkan?), dan tes rank matriks, di antara lainnya. CSPRNG yang berfungsi baik harus lulus semuanya.

Rangkaian tes Dieharder

Rangkaian tes keacakan yang diperluas yang mendorong generator lebih keras dari rangkaian NIST. Dinamai sesuai tes Diehard asli George Marsaglia, rangkaian ini biasa digunakan untuk memvalidasi generator angka acak baru.

Verifikasi praktis

Untuk pengguna akhir, verifikasi paling praktis adalah memastikan Anda menggunakan alat yang sudah diaudit yang mengandalkan crypto.getRandomValues() atau CSPRNG level OS yang setara. Anda tidak boleh mencoba meningkatkan entropy dengan menambahkan "keacakan" sendiri (seperti memilih kata sendiri), karena pilihan manusia jauh kurang acak dari yang terasa.

Alat SafeSeed adalah open-source, artinya siapa pun dapat memverifikasi bahwa sumber entropy adalah crypto.getRandomValues() dan bukan alternatif yang lebih lemah. Kode berjalan sepenuhnya di browser tanpa komunikasi server, jadi tidak ada kesempatan untuk man-in-the-middle memengaruhi pembuatan angka acak. Untuk diskusi lebih luas tentang mengapa pembuatan di sisi klien penting, lihat Apakah Generator Seed Online Aman?.

Entropy dan Postur Keamanan Anda

Memahami entropy mengubah cara Anda berpikir tentang keamanan kripto. Seed phrase 12 kata Anda bukan sekadar mekanisme cadangan yang nyaman; ini adalah encoding yang dapat dibaca manusia dari angka acak yang begitu besar sehingga alam semesta tidak mengandung cukup energi untuk mencari melalui semua kemungkinan.

Tetapi perlindungan itu hanya bertahan jika angka acak asli benar-benar acak. Saat memilih alat untuk membuat dompet:

  1. Verifikasi sumber entropy: Alat harus menggunakan crypto.getRandomValues(), /dev/urandom, atau keacakan berbasis perangkat keras yang setara.
  2. Hindari entropy kustom: Jangan pilih kata sendiri, lempar dadu dengan metode bias, atau gunakan sumber keacakan apa pun yang Anda "rasa" cukup baik.
  3. Gunakan standar yang sudah teruji: BIP39 telah diuji pertempuran sejak 2013. Alat yang mengikuti BIP39 secara tepat, seperti Solana Seed Phrase Generator di SafeSeed, mewarisi satu dekade tinjauan keamanan.
  4. Buat offline jika memungkinkan: Bahkan dengan entropy kuat, membuat kunci di perangkat air-gapped atau offline mengeliminasi vektor serangan berbasis jaringan. Lihat Cara Membuat Bitcoin Seed Phrase Offline untuk panduan praktis.

Entropy tidak terlihat. Anda tidak bisa melihatnya, merasakannya, atau memverifikasinya dengan melihat output. Seed phrase yang dibuat dari entropy lemah terlihat identik dengan yang dibuat dari entropy kuat. Satu-satunya cara untuk memastikan keamanan Anda adalah mempercayai prosesnya: gunakan alat open-source yang sudah diaudit yang mengambil dari generator angka acak berbasis perangkat keras, dan jangan pernah berkompromi pada fondasi ini.