Apa itu bit entropi, dan kenapa kami tak memberimu persentase

Diterbitkan oleh David Carrero

Persentase kekuatan adalah opini dengan dua angka di belakang koma.

Ketika sebuah situs bilang kata sandimu “92 % aman”, pertanyaan yang jelas menyusul adalah: 92 % dari apa? Mana yang 100 %? Tak ada. Tak seorang pun pernah menerbitkan kata sandi sempurna sebagai tolok ukur yang lain. Angka itu keluar dari hitungan yang dikarang seseorang pada suatu Selasa siang — sekian poin untuk huruf besar, sekian untuk simbol — dan satu-satunya tugas nyatanya adalah menyalakan bilah hijau supaya kamu lanjut jalan.

Bit, sebaliknya, selalu berarti persis hal yang sama. Dan berarti sesuatu yang bisa kamu pakai.

Satu bit adalah satu pertanyaan ya atau tidak

Seluruh gagasannya muat dalam satu kalimat: tiap bit melipatduakan jumlah percobaan yang dibutuhkan orang yang tak tahu apa-apa tentangmu.

Satu bit berarti dua kemungkinan. Dua bit, empat. Tiga, delapan. Sepuluh bit adalah 1.024, dan dua puluh bit sedikit lebih dari sejuta. Hitungannya tidak naik, ia berlipat ganda, dan pelipatgandaan itulah yang membuat intuisi kita jatuh ke jurang.

Karena itu kalimat “40 bit dua kali lebih baik dari 20” salah dengan cara yang nyaris lucu. Antara 20 dan 40 bit ada dua puluh kali pelipatduaan, alias faktor 2²⁰: 40 bit bukan dua kali 20, melainkan sejuta kali lebih. Dan 60 bit bukan tiga kali 20: ia sejuta kali lebih dari 40. Kepala kita membaca skala itu seolah ia penggaris, padahal bukan. Ia skala seperti skala gempa atau desibel, tempat satu langkah kecil di angkanya adalah lompatan brutal di kenyataannya.

Itulah seluruh keunggulan bit atas persentase. Persentase memberimu perasaan. Bit memberimu jumlah kerja.

Dari mana kata itu datang

Kata entropi yang diterapkan pada informasi datang dari sebuah artikel tahun 1948: A Mathematical Theory of Communication, karya Claude Shannon.

Perlu dikatakan dengan tepat, karena sering dikutip keliru: Shannon tidak sedang memikirkan kata sandi. Belum ada kata sandi komputer yang layak disebut. Ia sedang bekerja di Bell Labs pada persoalan yang jauh berbeda — seberapa banyak informasi yang sungguh-sungguh diangkut sebuah pesan, dan seberapa jauh ia bisa dimampatkan sebelum rusak — dan ia butuh mengukur sesuatu yang licin: ketidakpastian orang yang ada di seberang sana.

Temuannya, kalau dibilang kasar, adalah bahwa informasi dan kejutan itu satu hal yang sama. Pesan yang sudah kamu tahu tak memberitahumu apa-apa. Pesan yang mustahil ditebak lebih dulu memberitahumu banyak sekali. Entropi mengukur seberapa banyak kejutan yang ada di sumber yang memproduksi pesan-pesan itu, dan ia diukur dalam bit.

Bahwa itu berguna untuk kata sandi nyaris sebuah kebetulan yang beruntung. Sebuah kata sandi adalah, persis, pesan yang harus mustahil ditebak lebih dulu.

Gembok beroda angka

Inilah satu-satunya rumus di artikel ini, dan saya janji ia gratis:

H = L × log₂(N)

Lupakan logaritmanya sejenak dan bayangkan salah satu gembok sepeda dengan roda angka itu. Kamu punya dua cara menyulitkan orang yang ingin membukanya:

  • Pasang lebih banyak roda. Itulah panjang (L): berapa karakter yang dimiliki kata sandimu.
  • Pasang lebih banyak simbol di tiap roda. Itulah alfabet (N): apakah tiap roda cuma memuat sepuluh angka, atau 26 huruf, atau huruf dan angka dan tanda baca.

Logaritma cuma melakukan satu hal: menerjemahkan “berapa simbol yang dimuat satu roda” menjadi “berapa bit yang disumbangkan roda itu”. Roda berisi 26 huruf menyumbang sekitar 4,7 bit. Roda dengan 95 karakter tercetak di papan ketik menyumbang sekitar 6,6.

Dan di situlah lelucon besarnya. Perhatikan letak masing-masing di dalam rumusnya. Alfabetnya ada di dalam logaritma, tergencet; panjangnya ada di luar, mengalikan.

Melipatempatkan simbol tiap roda — dari 26 huruf ke 95 karakter — cuma membelikanmu kurang dari dua bit per roda. Menambah satu roda lagi membelikanmu satu log₂(N) utuh, lagi, dan lagi, dan lagi. Karena itu dua belas huruf kecil dan tak ada yang lain (sekitar 56 bit) mengalahkan delapan karakter dengan huruf besar, angka dan simbol yang dituntut formulir-formulir itu (sekitar 53). Si P@ssw0rd kalah melawan kudabenarbateraistaples dan bahkan tidak mendekat.

NIST, dalam SP 800-63B, sampai ke tempat yang sama lewat jalan lain: mereka membuang aturan komposisi — satu huruf besar, satu angka, satu simbol — dan bertahan pada panjang serta pemeriksaan kata sandi terhadap daftar bocoran. Jangan menaruh di mulut mereka apa yang tak mereka katakan: argumen mereka bukan soal rumus ini, melainkan bahwa memaksa orang memasukkan satu simbol tidak membuat orang jadi tak terduga, cuma membuatnya terduga dengan cara lain. Malah dokumen itu sendiri tidak percaya pada usaha memperkirakan entropi kata sandi yang dipilih seorang manusia. Dua penalaran berbeda, kesimpulan yang sama. Kerumitan wajib bekerja di dalam logaritma. Panjang bekerja di luar.

Cetakan kecil yang hampir tak ada yang menceritakan

Ada satu jebakan, dan inilah bagian jujur dari semuanya: entropi tidak mengukur kata sandimu, ia mengukur proses yang membuatnya.

4$Kp!9zQ tidak punya 53 bit itu karena ia kelihatan susah. Ia punya kalau — dan hanya kalau — ia keluar dari undian yang sungguh-sungguh acak di antara 95 tuts itu. Kalau kamu yang mengetiknya sambil berusaha terlihat acak, rumusnya tak berlaku: kamu bukan undian. Huruf besarnya kamu taruh di depan, angkanya di belakang, dan simbolnya sebuah !. Orang yang menyerangmu tidak mencoba 95 pilihan di tiap posisi: ia mencoba dulu yang biasa dilakukan manusia.

Dari situ keluar asimetri keamanan kata sandi yang bikin tak nyaman. Entropi itu langit-langit, bukan lantai. Kalau mesin yang membuatnya, langit-langitnya nyata. Kalau kamu yang memilihnya, yang kamu tahu cuma bahwa kamu ada di bawahnya, dan kamu tak tahu seberapa jauh.

Karena itu ada dua alat dan bukan satu. Generator mengundi beneran dan karena itu bisa menunjukkan bit kepadamu dengan muka serius: ia tahu berapa roda yang ada (L), tahu berapa simbol yang dimuat masing-masing (N) dan melakukan perkaliannya di depan matamu. Kalau kamu geser penggesernya dan lihat angkanya naik, kamu sedang melihat si L mendorong. Pemeriksa, sebaliknya, tak bisa melakukan itu pada kata sandi yang sudah ada: ia sama sekali tak tahu bagaimana kata sandi itu lahir, jadi ia melakukan satu-satunya hal yang masuk akal, yaitu mencarinya di kamus, daftar nama dan pola papan ketik lalu mengandaikan yang terburuk.

Yang perlu dibawa pulang

Tiga kalimat:

  • Satu bit adalah satu pelipatduaan. Sepuluh bit lagi berarti seribu kali lebih banyak kerja; dua puluh bit lagi, sejuta.
  • Panjang mengalikan, alfabet nyaris cuma menambah. Menambah satu kata lebih berharga daripada menambah satu tanda seru.
  • Bit cuma berharga kalau keacakannya sungguhan. Mesin bisa menjanjikannya. Kamu, yang mengetik dengan tangan, tidak.

Shannon sedang mencari seberapa banyak kejutan yang muat dalam sebuah pesan. Tujuh puluh sekian tahun kemudian, ternyata itu justru pertanyaan yang tepat untuk sebuah kata sandi: bukan apakah ia kelihatan rumit, melainkan seberapa banyak kejutan yang ia bawa di dalamnya bagi orang yang sama sekali tak mengenalmu.


Sumber: C. E. Shannon, “A Mathematical Theory of Communication”, Bell System Technical Journal, 1948 · NIST SP 800-63B, Digital Identity Guidelines (Authentication and Lifecycle Management) · generator password.es, yang menghitung H = L × log₂(N) dan menampilkan L, N serta bit hasilnya.

← Kembali ke blog