Simulator yang Melelahkan dari Protokol Pengetahuan Nol dalam Model Oracle Acak

13

Dalam makalah berjudul "On Deniability dalam Common Reference String dan Random Oracle Model," tulis Rafael Pass:

Kami mencatat bahwa ketika membuktikan keamanan sesuai dengan definisi nol-pengetahuan standar dalam model RO [Random Oracle], simulator memiliki dua keunggulan dibandingkan simulator model biasa, yaitu,

  1. Simulator dapat melihat nilai-nilai apa yang diminta pihak oracle.
  2. Simulator dapat menjawab pertanyaan ini dengan cara apa pun yang dipilih selama jawaban "terlihat" OK.

Teknik pertama, yaitu kemampuan untuk "memantau" permintaan untuk RO, sangat umum di semua makalah yang mengacu pada konsep nol-pengetahuan dalam model RO.

Sekarang, pertimbangkan definisi black-box zero-knowledge ( PPT singkatan dari probabilistik, mesin poluring-time Turing ):

simulator PPT S , sehingga (mungkin curang) verifier PPT V , input umum x L , dan keacakan r , yang berikut ini tidak dapat dibedakan:SVxLr

  • pandangan saat berinteraksi dengan prover P pada input x dan menggunakan keacakan r ; VPxr
  • output pada input x dan r , ketika S diberi akses kotak hitam ke V . SxrSV

Di sini, saya ingin menunjukkan pemverifikasi kecurangan , yang tugasnya adalah menguras semua simulator yang mencoba memantau permintaan RO:V

Misalkan adalah simulator yang dijamin oleh penjumlahan eksistensial dalam definisi black-box zero-knowledge, dan misalkan q ( | x | ) menjadi polinomial yang membatasi waktu berjalan S pada input x . Asumsikan bahwa S mencoba untuk memantau permintaan V ke RO.Sq(|x|)SxSV

Sekarang, pertimbangkan kecurangan , yang pertama kali menanyakan RO untuk q (V kali (pada input sewenang-wenang dari pilihannya), dan kemudian bertindak sewenang-wenang jahat.q(|x|)+1

Jelas, knalpot simulator S . Cara sederhana untuk S adalah menolak perilaku jahat seperti itu, namun demikian, seorang pembeda dapat dengan mudah membedakan interaksi nyata dari yang disimulasikan. (Karena dalam interaksi nyata, prover P tidak bisa memantau V ' 'query s, dan dengan demikian tidak akan menolak didasarkan pada fakta bahwa V ' adalah query terlalu banyak.)VSSPVV

Apa solusinya untuk masalah di atas?

Edit:

Sumber yang baik untuk mempelajari ZK dalam model RO adalah:

Martin Gagné, Studi tentang Random Oracle Model, Ph.D. Tesis, Universitas California, Davis , 2008, 109 halaman. Tersedia di ProQuest: http://gradworks.umi.com/33/36/3336254.html

Khususnya, ini memberikan definisi ZK kotak hitam dalam Model RO di bagian 3.3 (halaman 20), dikaitkan dengan Yung dan Zhao:

Moti Yung dan Yunlei Zhao. Interaktif Tanpa Pengetahuan dengan Oracle Acak Terbatas. Dalam Teori Kriptografi - TCC 2006 , LNCS 3876, hlm. 21-40, 2006.

MS Dousti
sumber
Saya pikir Anda mungkin berarti "lengkap" daripada "melelahkan".
Dave Clarke
Saya mohon untuk berbeda. Maksud saya, saya menemukan cara untuk "melelahkan" simulator dari protokol ZK ... Tidak ada yang namanya simulator "lengkap".
MS Dousti
Salahku. Saya membaca melelahkan sebagai kata sifat, bukan kata kerja.
Dave Clarke

Jawaban:

10

Ada pertanyaan mengapa seseorang ingin mendefinisikan black-box ZK dalam model oracle acak. Setidaknya ada dua alasan mengapa orang menyarankan definisi pengetahuan nol kotak hitam:

1) Untuk hasil yang positif, ketika Anda mengatakan bahwa simulator adalah "black-box zero knowledge" itu secara otomatis memberi Anda batasan waktu berjalan yang baik (yaitu, sebagai lawan dari p o l y ( t i m e ( V ) ) ) dan juga mungkin berguna untuk mengetahui bahwa simulator tidak "melihat nyali V " dan tidak peduli jika V poly(|x|)time(V)poly(time(V))VVdiimplementasikan menggunakan RAM, sirkuit, dll ... Sementara simulator model acak mungkin efisien, itu jelas bukan kotak hitam, karena itu seharusnya entah bagaimana melihat eksekusi dan mengerti darinya ketika V VV mengevaluasi fungsi hash. Untuk alasan ini, ada perasaan di mana tidak masuk akal untuk mengatakan bahwa simulator model oracle acak adalah "kotak hitam".

2) Untuk hasil negatif, orang menggunakan "kotak hitam simulator" untuk menangkap kelas besar teknik bukti. Dalam hal ini Anda dapat mendefinisikan simulator kotak hitam juga dalam model oracle acak dan definisi yang masuk akal adalah apa yang dikatakan David. Bahkan, untuk hasil negatif bahkan tidak dalam model oracle acak, yang terbaik jika hasilnya berlaku bahkan jika Anda mengizinkan simulator waktu berjalan. Memang, meskipun tidak selalu dinyatakan, hasil negatif yang saya sadari semua memiliki properti ini, karena verifier kecurangan V poly(time(V))V biasanya merupakan algoritma polinom tetap yang menjalankan beberapa fungsi pseudorandom, sedangkan simulator dapat memiliki waktu menjalankan polinomial apa pun.

Boaz Barak
sumber
1
Apakah hal yang sama berlaku untuk "simulasi universal" ZK? Bagaimanapun, black-box ZK adalah jenis ZK simulasi-universal, yang waktu operasinya ditetapkan sebelum ditentukan. (Namun, ZK non-kotak hitam adalah jenis ZK simulasi-universal, di mana S dapat melihat "nyali" dari V *)V
MS Dousti
Silakan lihat pertanyaan yang diedit untuk beberapa referensi.
MS Dousti
1
VV
1
Saya menunda membalas komentar Anda karena saya ingin membaca lebih lanjut. Secara khusus, saya membaca makalah Yung dan Zhao (dikutip di atas), dan mencatat bahwa mereka menggunakan kotak hitam ZK dalam model RO untuk hasil positif, sementara Anda berkata "tidak masuk akal untuk mengatakan bahwa model acak-oracle simulator adalah 'kotak hitam'. " Apakah hasil mereka secara filosofis bermasalah, atau haruskah kita mengendurkan definisi kotak hitam?
MS Dousti
4

Inilah pendapat saya tentang masalah ini. Saya belum pernah membaca makalah apa pun yang berhubungan dengan black-box zero-knowledge dalam model oracle acak (RO), jadi saya hanya menebak-nebak apa artinya dan bukan pada apa yang tertulis di sana. Jawaban singkatnya (tebak) adalah bahwa BB-ZK dalam model RO harus membiarkan simulator berjalan dalam polinomial waktu di | x | dan jumlah kueri RO yang dikeluarkan oleh V *, pemverifikasi kecurangan.

Mari kita coba benarkan tebakan itu. Pengamatan awal adalah bahwa istilah "bukti nol pengetahuan kotak hitam dalam model acak" membutuhkan pandangan yang lebih dekat untuk mendefinisikan dengan benar. Simulator kotak hitam didefinisikan untuk bekerja dengan oracle apa pun (yaitu, pengecek kecurangan sebagai kotak hitam), dan satu-satunya antarmuka mereka adalah melalui input / output oracle. Jika kita hanya menambah model ini untuk memberikan RO ke semua pihak (mungkin dengan membiarkan sirkuit mereka memiliki gerbang RO), maka kita mendapatkan model di mana simulator tidak dapat memprogram RO - pada permintaan oracle, semuanya (termasuk permintaan RO) hanya terjadi "di dalam" oracle V *, dan kemudian mengembalikan pesan berikutnya. Jika kita ingin mengizinkan pemrograman RO, maka kita perlu memodifikasi antarmuka: Simulator sekarang mendapat input / output oracle untuk V * dan tidak ada oracle acak. Pada setiap panggilan ke oracle V *, alih-alih menghasilkan pesan berikutnya, oracle malah dapat menghasilkan permintaan berikutnya untuk RO, dan simulator dapat memberikannya respons RO dengan memanggil oracle lagi. Sekarang ini memungkinkan pemrograman RO, dan kami juga dapat mengizinkan waktu berjalan simulator bergantung pada jumlah kueri ke RO.

Setiap eksplorasi lebih lanjut dari arti definisi-definisi ini diserahkan kepada pembaca. Saya berpikir secara sintaksis.

David Cash
sumber
1
Terima kasih atas jawabannya, David. Terlepas dari kemampuan simulator untuk memprogram RO, itu harus dapat "memantau" mereka. Jadi, setiap permintaan oracle dari V * menghabiskan waktu M setidaknya oleh waktu. Ide besar Anda adalah mengubah model menjadi "biarkan simulator berjalan dalam polinomial waktu di | x | dan jumlah kueri RO yang dikeluarkan oleh V *." Itu bukan model standar, tetapi saya melihatnya sebagai solusi yang masuk akal. Namun saya pikir "raksasa" di komunitas harus mengakui keaslian model tersebut terlebih dahulu ...
MS Dousti
1
Bisakah Anda mengutip sumber yang secara tepat mendefinisikan "model standar"? (Istilah itu sering digunakan sebagai sinonim untuk "tidak ada orakel acak atau modifikasi semacam itu hadir dalam model perhitungan," tapi saya tidak berpikir bahwa ini adalah apa yang Anda maksudkan.) Harapan saya adalah bahwa saya telah membuat sketsa definisi dari apa yang akan dianggap standar, dan jika tidak, maka kita dapat mengetahuinya tanpa "raksasa" yang secara aktif mengesahkan alasan kita.
David Cash
1
Tentu, dengan "model standar" yang saya maksud adalah "definisi standar" ZK di bawah model RO. Anda dapat merujuk pada makalah Rafael Pass (dikutip dalam pertanyaan), atau tesis MSc-nya (berjudul "Varian Alternatif Bukti Nol-Pengetahuan"), atau makalah Wee di AsiaCrypt 2009 ("Nol Pengetahuan dalam Model Oracle Acak, Ditinjau Kembali") . Tak satu pun dari mereka mendefinisikan "kotak hitam" ZK dalam model RO (mereka semua menyebutkan input tambahan ZK), meskipun tidak ada yang disebut "run in time polynomial di | x | dan jumlah permintaan RO yang dibuat oleh V *". Oleh karena itu, saya pikir Anda mengedepankan definisi baru (Google it!)
MS Dousti
Silakan lihat pertanyaan yang diedit untuk beberapa referensi.
MS Dousti