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 .Na ∈ Z×NN0 < c < Nb ∈ N1 ⩽ L ⩽ 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 × NNa ∈ Z×N
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 - 1a ∈ Z×NSebuahN- 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 L ≡ cNa ∈ Z×N0 ⩽ L < N- 1a NSebuahL.≡ c( modN)SebuahNa ∈ Z × N r N - 1 ≡ 1Na ∈ Z×N
rN- 1≡ 1( modN)danr( N- 1 ) / q≢ 1( modN) untuk bilangan prima q pemisah N- 1
menurut definisi (menggunakan fakta bahwa ada pesanan ).
N-1Z×NN- 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 ) / q ≡ 1NSebuahqN- 1q a N - 1 NSebuah( N- 1 ) / q≡ 1( modN)qSebuahN- 1N