Dalam beberapa tahun terakhir, teknologi komunikasi jaringan telah berkembang pesat dan memungkinkan orang untuk berinteraksi secara online. Salah satu contoh aplikasinya adalah Mental Poker, sebuah protokol komputasi multi-pihak yang memungkinkan para pemain untuk bermain poker secara online tanpa perlu bersentuhan fisik.
Konsep dasar
Mental Poker menggunakan kriptografi publik untuk menjaga keamanan dan keterbukaan dalam proses bermain. Protokol ini didasarkan pada komposisi berbasis public-key dengan sifat komutatif, yaitu:
- E B (E A (M)) = E A (E B (M))
Dimana E X menunjukkan enkripsi menggunakan kunci publik X, dan D X menunjukkan dekripsi menggunakan kunci privat X.
Tokoh-tokoh
Dalam protokol ini, tiga pemain, Alice, Bob, dan Carol, ingin bermain poker secara online. Dealer untuk tangan ini adalah Alice, namun Bob dan Carol ingin pasti bahwa mereka mendapatkan tangan yang adil. Salah satu protokol yang mungkin digunakan adalah sebagai berikut:
- Penyajian kartu
Alice menggenerate 52 angka acak x1, x2, …, x52, di mana kita asumsikan bahwa daftar yang terurut dari angka-angka ini sesuai dengan deck kartu yang terurut. Angka termuda adalah Ace of Spades, angka kedua adalah Ace of Clubs, dan seterusnya.
- Enkripsi kartu
Alice mengenkripsi masing-masing xi menggunakan kunci publiknya sendiri dan mengirimkan daftar nilai enkripsi ke Bob.
- Tangan Bob
Bob memilih 5 kartu yang dienkripsi sebagai tanganannya, yaitu di indices {i1; i2; i3; i4; i5} dan menghitung E B (E A (xi1)), EB(EA(xi2)), E B (E A (xi3)), E B (E A (xi4)), dan E B (E A (xi5)). Bob juga mengirimkan 47 kartu yang tersisa ke Carol.
- Tangan Carol
Carol memilih 5 kartu yang dienkripsi sebagai tanganannya, yaitu di indices {j1; j2; j3; j4; j5} dan menghitung E C (E A (xj1)), EC(EA(xj2)), EC(EA(xj3)), EC(EA(xj4)), dan EC(EA(xj5)). Carol juga memilih 5 kartu yang tersisa sebagai tangan Alice, dan mengirimkannya ke Alice.
- Tangan Alice
Alice membandingkan nilai enkripsi yang diterima dari Bob dan Carol dengan menggunakan kunci privatnya sendiri. Bagi setiap ik, k = 1, 2, …, 5, Alice menghitung DA(EB(EA(xik))), yang sama dengan EB(xik); dan mengirimkan nilai-nilai tersebut ke Bob. Dia juga membandingkan nilai enkripsi yang diterima dari Carol dengan menggunakan kunci privatnya sendiri. Bagi setiap ik, k = 1, 2, …, 5, Alice menghitung DA(EC(EA(xjk))), yang sama dengan EC(xjk); dan mengirimkan nilai-nilai tersebut ke Carol.
- Siapa yang menang
Bob dan Carol mendekripsi nilai kartu yang dipilihnya, Alice mereveals daftar angka x1; x2; …; x52, dan semua pemain belajar tangan mereka (dan siapa yang menang).
Dalam Mental Poker, kita dapat melihat bahwa protokol ini menggunakan kriptografi publik untuk menjaga keamanan dan keterbukaan dalam proses bermain. Protokol ini memungkinkan para pemain untuk berinteraksi secara online tanpa perlu bersentuhan fisik, sehingga sangat efektif dalam aplikasi jaringan yang memerlukan keamanan dan keterbukaan.