Keamanan Serius: Anda tidak bisa mengalahkan rumah di Blackjack – atau bisakah?

Cryptoguru Bruce Schneier (di mana? kripto cara kriptografi, bukan yang lain!) baru saja menerbitkan catatan menarik di blognya yang berjudul Tentang Keacakan Pengocok Kartu Otomatis.

Jika Anda pernah ke kasino, setidaknya satu di Nevada, Anda akan tahu bahwa meja blackjack tidak mengambil risiko dengan pelanggan yang dikenal dalam perdagangan sebagai penghitung kartu.

Istilah itu digunakan untuk merujuk pada pemain yang telah melatih ingatan mereka sampai pada titik di mana mereka dapat melacak dari dekat kartu yang dimainkan sejauh ini di tangan, yang memberi mereka keuntungan teoretis atas rumah ketika memprediksi apakah akan berdiri atau memukul sebagai permainan. berkembang.

Penghitung kartu dapat memperoleh keuntungan bahkan jika yang mereka lakukan hanyalah melacak rasio 10 kartu (Sepuluh, Jack, Ratu, dan Raja) dengan non-10 yang tersisa di posisi dealer.

Misalnya, jika dealer duduk dengan Ace, tetapi jumlah kartu 10 nilai di atas rata-rata telah habis, maka dealer memiliki peluang di bawah rata-rata untuk membuat blackjack (21 poin dengan dua kartu, yaitu Ace dan salah satu dari 10-JQK) dan menang sekaligus, dan peluang di atas rata-rata untuk bangkrut sebelum mencapai titik pemberhentian 17 ke atas.

Jika Anda dapat menyeimbangkan probabilitas di kepala Anda secara real time, maka Anda mungkin dapat memodifikasi taruhan Anda sesuai dengan itu dan unggul dalam jangka panjang.

Jangan benar-benar mencoba ini, setidaknya di Nevada: kasino kemungkinan akan menangkap Anda dengan cukup cepat, karena pola permainan Anda akan menyimpang terutama dari pilihan pemenang paling informasi yang tersedia jika Anda tidak menghitung kartu. Anda mungkin tidak akan berakhir di pengadilan, tetapi Anda hampir pasti akan dikawal keluar dari tempat itu, dan tidak akan pernah diizinkan masuk kembali lagi.

Meratakan peluang

Untuk mengurangi penyeimbang probabilitas yang dinikmati oleh penghitung kartu (setidaknya mereka yang belum tertangkap), kasino biasanya:

  • Tangani tangan dari sepatu yang diisi dengan enam bungkus (dek) dari 52 kartu. Ini berarti bahwa setiap kartu yang dibagikan membuat pembagian kartu yang tersisa kurang dari jika satu paket digunakan.
  • Kocok seluruh sepatu 312 kartu (enam bungkus) sebelum setiap tangan. Untuk menghemat waktu dan menghilangkan kecurigaan dari dealer, mesin elektromekanis pseudorandom mengocok kartu tepat di atas meja, di depan semua pemain.

Itu segera menimbulkan pertanyaan yang diajukan oleh Schneier: seberapa baik kartu yang dikocok saat keluar dari mesin?

Khususnya, dengan enam paket kartu baru, yang tiba dalam urutan yang dapat diprediksi (misalnya Ace ke King of Hearts, Ace ke King of Clubs, King to Ace of Diamonds, King to Ace of Spades), berapa banyak pemesanan parsial yang tersisa setelah mesin telah melakukan pekerjaannya?

Bisakah Anda "menebak" kartu berikutnya lebih baik dari yang disarankan?

Sebuah pengacak elektronik sepenuhnya dibatasi dalam kompleksitasnya terutama oleh kecepatan CPU yang digunakannya, yang biasanya diukur dalam ratusan juta atau miliaran operasi aritmatika per detik.

Tetapi pengocok kartu elektromekanis benar-benar harus memindahkan kartu di kehidupan nyata.

Jelas ada batasan seberapa cepat ia dapat melakukan pemecahan paket, pertukaran kartu, dan operasi interleaving sebelum kecepatan mekanisme mulai merusak kartu, yang berarti ada batasan seberapa banyak keacakan (atau, lebih tepatnya, keacakan semu) mesin dapat memperkenalkan sebelum saatnya untuk memainkan tangan berikutnya.

Acak untuk waktu yang terlalu singkat, dan kasino mungkin benar-benar membuat segalanya lebih mudah untuk penghitung kartu, jika ada bias yang diketahui dalam distribusi kartu sejak awal.

Acak terlalu lama, dan permainan akan terlalu lambat, sehingga pemain akan bosan dan berkeliaran, sesuatu yang sangat dihindari oleh kasino.

Posting blog Schneier tertaut ke a bagian yang menarik oleh BBC yang menjelaskan bagaimana seorang ahli matematika/pesulap bernama Persi Diaconis dari Universitas Stanford, bersama dengan Jason Fulman dan Susan Holmes, melakukan penyelidikan formal terhadap masalah ini pada awal abad ini, dalam sebuah makalah yang berjudul: ANALISIS MESIN SHUFFLING RAK KASINO.

Tingkat kerumitan

Jelas, ada beberapa teknik pengocokan yang tidak terlalu mencampuradukkan kartu sama sekali, seperti hanya pemotongan bungkus menjadi dua bagian dan pindahkan bagian bawah ke atas.

Teknik lain menghasilkan (atau merasa seolah-olah harus menghasilkan) pencampuran yang lebih baik, misalnya: mengocok riffle, di mana Anda membagi pak kira-kira menjadi dua, pegang satu setengah di masing-masing tangan, dan “balik” kedua bagian itu bersama-sama, pisahkan mereka dengan cara pseudorandom yang bergantian antara mengambil beberapa kartu dari satu sisi, lalu beberapa kartu dari yang lain .

Idenya adalah bahwa jika Anda mengacak-acak paket beberapa kali, Anda melakukan urutan pemotongan pseudorandom setiap kali Anda membagi paket sebelum setiap senapan, dicampur bersama dengan urutan variabel pseudorandomly dari operasi interleaving pseudorandom yang melibatkan N-dari-the- proses kiri-lalu-M-dari-kanan.

Namun, yang menarik, ketika pengocok manusia yang terampil terlibat, tidak satu pun dari asumsi ketidakpastian itu yang aman.

Pesulap tangkas dan pedagang jahat (Diaconis sendiri adalah yang pertama, tetapi bukan yang terakhir) dapat melakukan apa yang dikenal sebagai mengocok faro, atau pengocokan yang sempurna, di mana mereka melakukan kedua hal berikut setiap kali mereka mengobrak-abrik paket:

  • Pisahkan kartu menjadi dua, sehingga mendapatkan tepat 26 kartu di masing-masing tangan.
  • Sisipkan mereka dengan sempurna, membalik tepat satu kartu pada satu waktu secara bergantian dari masing-masing tangan, setiap saat.

Diaconis sendiri dapat melakukan pengocokan yang sempurna (termasuk keterampilan langka melakukannya hanya dengan satu tangan untuk memegang kedua bagian bungkusan!), dan menurut BBC:

[Dia] suka menunjukkan pengocokan yang sempurna dengan mengambil setumpuk kartu baru dan menulis kata RANDOM dengan spidol hitam tebal di satu sisi. Saat dia melakukan sulap dengan kartu, huruf-hurufnya bercampur, muncul sesekali dalam bentuk hantu, seperti gambar yang tidak disetel dengan sempurna di TV lama. Kemudian, setelah dia melakukan shuffle kedelapan dan terakhir, kata itu muncul kembali di sisi geladak. Kartu berada dalam urutan aslinya yang tepat, dari Ace of Spades hingga Ace of Hearts.

Dua jenis kesempurnaan

Sebenarnya, ada dua jenis shuffle sempurna, tergantung dari tangan mana Anda mulai mengacak setelah memotong kartu menjadi dua tumpukan 26 kartu.

Anda dapat menyisipkan kartu sehingga berakhir dalam urutan 1-27-2-28-3-29-…-25-51-26-52, jika kartu pertama yang Anda balikkan berasal dari tangan yang Anda pegang dia bagian bawah paket.

Tetapi jika kartu pertama yang Anda balikkan adalah kartu terbawah dari apa yang sebelumnya berada di bagian atas paket, Anda akan mendapatkan 27-1-28-2-29-3-…-51-25-52-26, jadi kartu hanya melewati setengah berakhir di atas sesudahnya.

Tipe sebelumnya disebut an keluar-acak, dan menyusun ulang paket setiap delapan kali Anda mengulanginya, seperti yang Anda lihat di sini (gambar memiliki 52 baris piksel, setiap baris sesuai dengan tepi satu kartu dengan kata RANDOM tertulis di atasnya dengan spidol):

Keamanan Serius: Anda tidak bisa mengalahkan rumah di Blackjack – atau bisakah? Kecerdasan Data PlatoBlockchain. Pencarian Vertikal. Ai.
Setiap 8 out-shuffle, urutan asli dari garis pada gambar berulang.

Jenis yang terakhir adalah di-shuffle, dan ini, luar biasa, membutuhkan 52 pengocokan ulang sebelum berulang, meskipun Anda dapat melihat dengan jelas di sini bahwa paket tidak pernah benar-benar menunjukkan keacakan yang sebenarnya, dan bahkan melewati pembalikan sempurna di tengah jalan:

Keamanan Serius: Anda tidak bisa mengalahkan rumah di Blackjack – atau bisakah? Kecerdasan Data PlatoBlockchain. Pencarian Vertikal. Ai.
In-shuffle berulang dengan cara yang menarik setiap 52 kali.

Apa yang dikatakan para matematikawan?

Jadi, kembali pada tahun 2013, ketika Diaconis el al. mempelajari mesin pengocok rak atas undangan pabrikan, apa yang mereka temukan?

Seperti yang dijelaskan makalah itu, pengocok rak adalah upaya elektromekanis untuk merancang "pengocokan multi-potongan multi-riffle" acak otomatis, idealnya sehingga kartu hanya perlu dikerjakan sekali, untuk menjaga waktu pengocokan singkat.

Kartu di pengocok rak dengan cepat "dibagikan" secara acak, satu per satu, ke salah satu dari N rak logam di dalam perangkat (dari mana namanya), dan setiap kali kartu ditambahkan ke rak, kartu itu akan digeser di bawah, atau dijatuhkan di atas kartu sebelumnya. (Kami berasumsi bahwa mencoba menyodok kartu di antara dua kartu acak yang sudah ada di tumpukan akan lebih lambat dan cenderung merusak kartu.)

Setelah semua kartu ditempatkan di rak, sehingga setiap rak memiliki sekitar 1/N kartu di atasnya, kartu-kartu tersebut disusun kembali menjadi satu tumpukan dalam urutan pseudorandom.

Secara intuitif, mengingat pseudorandomness yang terlibat, Anda akan berharap bahwa pengacakan ulang tambahan akan meningkatkan keacakan keseluruhan, hingga titik tertentu…

…tetapi dalam kasus ini, di mana mesin memiliki 10 rak, para peneliti secara khusus ditanya, "Apakah satu lintasan mesin cukup untuk menghasilkan keacakan yang memadai?"

Agaknya, perusahaan ingin menghindari menjalankan mesin melalui beberapa siklus untuk membuat para pemain senang dan permainan mengalir dengan baik, dan para insinyur yang telah merancang perangkat tidak mendeteksi anomali statistik yang jelas dapat dieksploitasi selama pengujian mereka sendiri.

Tetapi perusahaan ingin memastikan bahwa itu belum lulus tesnya sendiri hanya karena tesnya cocok dengan mesin, yang akan memberi mereka rasa aman palsu.

Pada akhirnya, para peneliti tidak hanya menemukan bahwa keacakan itu agak buruk, tetapi juga bahwa mereka mampu mengukur dengan tepat seberapa buruk itu, dan dengan demikian merancang tes alternatif yang secara meyakinkan mengungkapkan kurangnya keacakan.

Secara khusus, mereka menunjukkan bahwa hanya satu pass dari perangkat yang meninggalkan cukup banyak urutan kartu pendek dalam output yang dikocok sehingga mereka dapat dengan andal memprediksi antara 9 dan 10 kartu rata-rata ketika satu pak 52 kartu yang dikocok dibagikan setelahnya.

Seperti yang ditulis para peneliti:

[Dengan] menggunakan teori kami, kami dapat menunjukkan bahwa pemain yang berpengetahuan luas dapat menebak sekitar 9 setengah kartu dengan benar dalam sekali lari melalui setumpuk 52 kartu. Untuk dek yang dikocok dengan baik, strategi optimal mendapatkan sekitar 4 setengah kartu yang benar. Data ini memang meyakinkan perusahaan. Teori ini juga menyarankan obat yang berguna.

[...]

Presiden perusahaan menjawab, “Kami tidak senang dengan kesimpulan Anda, tetapi kami mempercayainya dan untuk itulah kami mempekerjakan Anda.” Kami menyarankan alternatif sederhana: gunakan mesin dua kali. Ini menghasilkan pengocokan yang setara dengan mesin 200 rak. Analisis matematis kami dan tes lebih lanjut, tidak dilaporkan di sini, menunjukkan bahwa ini cukup acak.

Apa yang harus dilakukan?

Kisah ini berisi beberapa "momen yang dapat diajarkan", dan Anda sebaiknya belajar dari mereka, apakah Anda seorang programmer atau manajer produk yang bergulat secara khusus dengan keacakan, atau profesional SecOps/DevOps/IT/keamanan siber yang terlibat dalam jaminan keamanan siber di umum:

  • Lulus tes Anda sendiri tidak cukup. Gagal dalam tes Anda sendiri jelas buruk, tetapi mudah untuk berakhir dengan tes yang Anda harapkan dari algoritme, produk, atau layanan Anda lulus, terutama jika koreksi atau "perbaikan bug" Anda diukur dengan apakah mereka membuat Anda lulus tes. Terkadang, Anda membutuhkan opini kedua kemudian datang dari sumber yang objektif dan independen. Tinjauan independen itu bisa datang dari tim ahli statistik matematika dari California, seperti di sini; dari "tim merah" penguji penetrasi eksternal; atau dari kru MDR (deteksi dan respons terkelola) yang membawa mata dan telinga mereka sendiri ke situasi keamanan siber Anda.
  • Mendengarkan berita buruk itu penting. Presiden perusahaan mesin pengocok dalam kasus ini menjawab dengan sempurna ketika dia mengakui bahwa dia tidak senang dengan hasilnya, tetapi dia telah membayar untuk mengungkap kebenaran, bukan hanya untuk mendengar apa yang dia harapkan.
  • Kriptografi pada khususnya, dan keamanan siber pada umumnya, itu sulit. Meminta bantuan bukanlah pengakuan akan kegagalan tetapi pengakuan atas apa yang diperlukan untuk berhasil.
  • Keacakan terlalu penting untuk dibiarkan begitu saja. Mengukur gangguan tidak mudah (membaca kertas untuk memahami mengapa), tetapi itu bisa dan harus dilakukan.

Kekurangan waktu atau keahlian untuk menangani respons ancaman keamanan siber? Khawatir bahwa keamanan siber akan mengganggu Anda dari semua hal lain yang perlu Anda lakukan?

Pelajari lebih lanjut tentang Deteksi dan Respons Terkelola Sophos:
Perburuan, deteksi, dan respons ancaman 24/7  ▶


Stempel Waktu:

Lebih dari Keamanan Telanjang