Seberapa sulit menemukan logaritma diskrit?

20

The logaritma diskrit adalah sama dengan menemukan b di Sebuahb=cmodN , diberikan Sebuah , c , dan N .

Saya bertanya-tanya dalam kelompok kerumitan apa (misalnya untuk komputer klasik dan kuantum), dan pendekatan apa (yaitu algoritma) yang terbaik untuk menyelesaikan tugas ini.

Tautan wikipedia di atas tidak benar-benar memberikan runtimes yang sangat konkret. Saya berharap untuk sesuatu yang lebih seperti apa metode yang paling terkenal untuk menemukan itu.

Matt Groff
sumber
Saya tidak tahu apa algoritma terbaik, tetapi Anda dapat menemukan beberapa algoritma di bab 5 dari catatan kuliah ini oleh Johan Hastad. Saya akan meringkas algoritma ini tetapi saya tidak membaca bab ini, jadi saya hanya menyediakan tautan;)
Marc Bury

Jawaban:

21

Jawaban singkat.
Jika kita merumuskan versi masalah keputusan yang tepat dari masalah Logaritma Diskrit, kita dapat menunjukkan bahwa itu milik persimpangan kelas kompleksitas NP , coNP , dan BQP .


Versi masalah keputusan dari Discrete Log.
Masalah logaritma diskrit paling sering diformulasikan sebagai masalah fungsi , memetakan tupel bilangan bulat ke bilangan bulat lainnya. Perumusan masalah tersebut tidak sesuai dengan kelas kompleksitas P , BPP , NP , dan sebagainya yang lebih disukai orang, yang hanya menyangkut masalah keputusan (ya / tidak). Kami dapat mempertimbangkan versi masalah keputusan dari masalah log diskrit yang secara efektif setara:

Discrete Log (Masalah Keputusan). Diberi suatu prima , generator a Z × N dari unit multiplikatif modulo N , bilangan bulat 0 < c < N , dan batas atas b N , tentukan apakah ada 1 L b sedemikian sehingga .NSebuahZN×N0<c<NbN1L.bSebuahL.c(modN)

Ini akan memungkinkan kita untuk benar-benar menghitung log a ( c ) modulo N dengan pencarian biner, jika kita dapat mengatasinya secara efisien. Kami kemudian dapat bertanya ke kelas kompleksitas mana masalah ini berada. Perhatikan bahwa kami telah mengutarakannya sebagai masalah janji: kami dapat memperluasnya ke masalah keputusan dengan menangguhkan persyaratan bahwa menjadi prima dan generator, tetapi menambahkan kondisi bahwa pembatasan ini berlaku untuk setiap contoh 'YA' dari masalah.a Z × NNSebuahZN×


Discrete Log ada di BQP.
Dengan menggunakan algoritma Shor untuk menghitung logaritma diskrit ( Algoritma Polinomial-Waktu untuk Faktorisasi Utama dan Logaritma Diskrit pada Komputer Quantum ), kita dapat dengan mudah memuat Log Diskrit dalam BQP . (Untuk menguji apakah sebenarnya adalah generator, kita dapat menggunakan algoritma pencarian-urutan Shor dalam makalah yang sama, yang merupakan dasar untuk algoritma logaritma diskrit, untuk menemukan urutan dan bandingkan dengan .) a N - 1SebuahZN×SebuahN-1


Discrete Log ada dalam NP ∩ coNP.
Jika itu sebenarnya adalah kasus bahwa adalah prima dan adalah generator, sertifikat yang cukup baik untuk instance 'YA' atau 'TIDAK' dari masalah keputusan adalah bilangan bulat unik sedemikian rupa sehingga . Jadi sudah cukup untuk menunjukkan bahwa kita dapat mensertifikasi apakah kondisi pada dan ditahan. Berikut Brassard ini Catatan tentang kompleksitas kriptografi , jika kedua kasus yang adalah prima dan adalah generator, maka itu adalah hal a Z × N 0 L < N - 1 a LcNSebuahZN×0L.<N-1a NSebuahL.c(modN)SebuahNa Z × N r N - 11NSebuahZN×

rN-11(modN)danr(N-1)/q1(modN)  untuk bilangan prima q pemisah N-1
menurut definisi (menggunakan fakta bahwa ada pesanan ). N-1ZN×N-1
  • Sebuah sertifikat bahwa kendala pada dan keduanya ditahan akan menjadi daftar faktor prima membagi , yang akan memungkinkan kita untuk menguji kendala kesesuaian di atas. (Kita dapat menguji apakah setiap adalah prima menggunakan uji AKS jika kita mau, dan menguji bahwa ini semua adalah faktor utama dengan mencoba menemukan faktorisasi daya utama dengan hanya bilangan prima tersebut.)a q 1 , q 2 , ... N - 1 q j N - 1 N - 1NSebuahq1,q2,...N-1qjN-1N-1

  • Sebuah sertifikat bahwa salah satu kendala pada atau gagal akan menjadi integer yang membagi , sehingga . Tidak perlu menguji untuk kesopanan dalam kasus ini; itu langsung menyiratkan bahwa urutan kurang dari , dan itu adalah generator dari kelompok multiplikasi hanya jika gagal menjadi prima.a q N - 1 a ( N - 1 ) / q1NSebuahqN-1q a N - 1 NSebuah(N-1)/q1(modN)qSebuahN-1N

Niel de Beaudrap
sumber
3

Dalam skenario umum dan skenario terburuk, jawaban Niel de Beaudrap benar, sejauh yang saya ketahui.

Namun dalam kasus hanya memiliki faktor prima kecil, algoritma Pohlig-Hellman menemukan logaritma pada waktu . Oleh karena itu, untuk kasus ini, masalah Discrete Log adalah di . Dengan demikian, ketika protokol kriptografi tergantung pada kekerasan masalah ini, penting untuk memilih modulus, , sehingga memiliki faktor prima yang besar.N1O(log2(N))PNN1

danxinnoble
sumber
-1

karena , maka . (Artinya brute-force dalam EXP.)|Sebuah|=HAI(N)b=HAI(N)

Untuk mesin non-deterministik, ada saksi polinomial karena kita dapat melakukan eksponensial modular pada P. (Yaitu masalahnya ada di .)NP

Teori bahwa logaritma diskrit ada dalam tetapi bukan P adalah dasar dari kriptografi modern, tetapi itu jelas tidak terbukti.NPP

Metode Shor (ditautkan ke pada halaman wikipedia itu) berjalan dalam waktu polinomial pada komputer kuantum.

Xodarap
sumber