(Maaf jika ini sudah diketahui.) Saya ingin memberikan beberapa item kepada salah satu agen , sehingga agen akan mendapatkan item dengan probabilitas . Apakah ada alat kriptografi (atau lainnya) sehingga setiap agen (dan bahkan setiap pengamat) akan dapat diyakinkan bahwa gambar acak itu memang adil?
cr.crypto-security
Gil Kalai
sumber
sumber
Jawaban:
Jika saya memahami masalahnya dengan benar, tampaknya akan sama dengan publik membalik koin sided. Tampaknya ada banyak cara untuk melakukan ini jika Anda menganggap sedikit komitmen. Salah satu contoh akan memiliki masing-masing pihak menghasilkan bilangan bulat acak antara 0 dan , menggunakan komitmen bit untuk secara publik berkomitmen pada string bit itu. Kemudian setelah masing-masing agen melakukan, mereka semua secara terbuka mengungkapkan integer rahasia mereka. Agen pemenang kemudian diindeks oleh jumlah dari bilangan bulat modulo . Jika satu agen jujur, maka flip harus acak.k - 1 kk k - 1 k
Tentu saja satu masalah dengan ini adalah bahwa itu memerlukan sedikit komitmen. Skema teori informasi untuk komitmen bit tidak mungkin dilakukan untuk komputasi klasik dan kuantum (meskipun baru-baru ini Adrian Kent mengusulkan skema yang mengeksploitasi relativitas). Namun, komitmen bit aman dapat dicapai dengan asumsi komputasi.
sumber
Seperti yang telah diindikasikan oleh pengguna lain, ini adalah masalah yang dipelajari dalam kriptografi. Ini disebut "coin-flipping" dan merupakan kasus khusus perhitungan multi-pihak.
Protokol apa yang dikerjakan sebenarnya tergantung pada konteksnya.
Hanya untuk memberikan gambaran tentang betapa halusnya itu, protokol "semua orang berkomitmen untuk nilai acak" yang disarankan oleh responden lain tidak aman jika skema komitmen yang Anda gunakan mudah ditempa. Skema komitmen nonmalleable memang memberi Anda protokol yang aman, tetapi mereka agak rumit untuk dirancang.
sumber
Catatan: silakan baca komentar di bawah ini. Protokol ini tampaknya memiliki masalah.
Agen apa pun dapat memastikan nomor acak yang dipilih datang secara acak secara acak dengan memilih vektornya sendiri secara acak. Agar setiap pengamat diyakinkan, mereka harus percaya bahwa setidaknya satu agen mengikuti protokol, tetapi jika tidak ada, saya kira tidak ada yang benar-benar menginginkan lotere yang adil untuk memulai.
sumber
Pengamat pasif tidak dapat memverifikasi bahwa gambar tidak dipentaskan. Input ke dalam proses pseudorandom dapat dipilih untuk memberikan hasil yang diinginkan.
Namun jika pengamat dapat memberikan nomor acak yang dia tahu adalah acak DAN memastikan bahwa agen lain tidak akan mengubah input mereka setelah itu (karena mereka dapat mengkompensasi efeknya dengan input mereka), maka dia dapat yakin bahwa hasilnya memang acak .
Ini membutuhkan skema komitmen yang kita tidak tahu apa pun yang secara matematis terbukti aman tetapi dalam praktiknya dapat direalisasikan menggunakan hash aman (seperti SHA3).
Pertimbangkan contoh ini:
Saya sudah membuat contoh implementasi. Anda dapat melihatnya langsung di sini: https://mrogalski.eu/cl/ atau periksa sumber di GitHub .
sumber