Kamis, 23 April 2020

Algoritma untuk Anjak piutang dan Komputasi Logaritma Diskrit (Algorithms for Factoring and Computing Discrete Logarithms)

www.uts.ac.id

Nama : Evi Nurmala
NIM : 17.01.071.029
Mata Kuliah : KRIPTOGRAFI


Seperti dibahas dalam Bab 7, saat ini tidak ada algoritma waktu polinomial yang dikenal untuk anjak piutang atau untuk menghitung logaritma diskrit di Z p. Tetapi ini tidak berarti bahwa pencarian dengan kekerasan adalah metode terbaik yang tersedia untuk menyerang masalah ini! Di sini, kami mensurvei beberapa algoritma yang lebih baik untuk masalah ini. Selain menarik dalam hak mereka sendiri, dan berfungsi sebagai aplikasi yang bagus dari beberapa teori bilangan yang telah kita pelajari, memahami keefektifan algoritma ini sangat penting untuk memilih parameter kriptografi dalam praktik: jika skema kriptografi berdasarkan anjak seharusnya tahan musuh yang memasang serangan berdedikasi selama 5 tahun, lalu - minimal! - modulus N yang digunakan oleh skema harus cukup lama sehingga algoritma anjak piutang paling terkenal akan membutuhkan waktu (setidaknya) 5 tahun untuk berhasil faktor N.

8.1.3 Algoritma Saringan Quadratic
Algoritma Pollard rho berjalan dalam waktu eksponensial dalam panjang angka N yang akan diperhitungkan. Algoritma kuadratik berjalan dalam waktu sub-eksponensial. Ini adalah algoritma anjak piutang yang paling cepat diketahui hingga awal tahun 90-an, dan tetap merupakan algoritma anjak pilihan untuk angka hingga sekitar 300 bit. Pada bagian ini, kami menjelaskan prinsip-prinsip umum yang mendasari algoritma ayakan kuadratik tetapi mengingatkan pembaca bahwa banyak detail penting dihilangkan. Ingatlah bahwa elemen z Z N adalah modulo residu kuadratik jika ada.ada x Z p sehingga x2 = z mod N; kita katakan x adalah akar kuadrat dari z dalam kasus ini. Pengamatan berikut, digunakan juga dalam Bab 11, berfungsi sebagai titik awal kami:
• Jika N = pq adalah produk dari dua bilangan prima yang berbeda, maka setiap modulo kuadrat residu memiliki tepat empat akar kuadrat. Lihat Bagian 11.1.2 untuk bukti.
• Diberikan x, y dengan x2 = y2 mod N dan x 6 = ± y mod N, dimungkinkan untuk menghitung dalam waktu polinomial faktor non-sepele dari N. Ini berdasarkan fakta bahwa x2 = y2 mod N menyiratkan
            0 = x2 −y2 = (x−y)(x + y) mod N,                                                                               
            dan begitu N | (x − y) (x + y). Di sisi lain, N6 | (x − y) dan N6 | (x + y) karena x 6 = ± y mod N. Jadi itu harus menjadi kasus yang gcd (x − y, N) sama dengan salah satu faktor utama N. Lihat juga Lemma 11.20.
Algoritma kuadratik mencoba menghasilkan sepasang nilai x, y yang kuadratnya sama dengan modulo N; harapannya adalah bahwa dengan probabilitas konstan juga akan menyatakan bahwa x 6 = ± y mod N. Ini mencari x dan y melalui proses dua langkah sebagai berikut:
Langkah 1. Perbaiki himpunan B = {p1, ..., pk} dari bilangan prima kecil. Temukan `> k nilai yang berbeda x1, ..., x` Z N yang qi def = [x2 i mod N] adalah" kecil ", sehingga qi dapat difaktorkan ke bilangan bulat (menggunakan, misalnya, pembagian percobaan ) dan sedemikian rupa sehingga semua faktor utama qi terletak pada B. (Diperlukan pula xi> √n, jadi x2i> n dan reduksi modular x2i tidak sepele.) Kami mengabaikan detail bagaimana ini { xi} ditemukan.
Mengikuti langkah ini, kami memiliki seperangkat persamaan bentuk:


                                                                                         


Melihat hanya pada eksponen dari masing-masing modulo pi 2, kita memperoleh matriks





 Tujuannya adalah untuk memiliki `> k dengan tidak ada deretan Γ semua 0. Setelah ini selesai, lanjutkan ke langkah berikutnya.
Langkah 2. Matriks Γ yang dibangun pada langkah sebelumnya memiliki lebih banyak baris daripada kolom. Oleh karena itu, beberapa bagian dari baris harus dijumlahkan ke semua-0 modulo 2. (Selanjutnya, dengan konstruksi, Γ tidak memiliki semua-0 baris.) Satu set baris
yang tepat dapat ditemukan secara efisien menggunakan aljabar linier. Demi ilustrasi, ucapkan baris `1,` 2, `3 jumlah ke semua-0 baris; itu adalah,



di mana penambahan adalah modulo 2. Mengambil persamaan yang sesuai dari Persamaan (8.3), kita miliki




Selain itu, dengan pilihan `1,` 2, `3 kita tahu bahwa e`1, i + e`2, i + e`3, i bahkan untuk semua i. Ini artinya kita bisa menulis



dan kami telah menemukan dua elemen yang kotaknya sama modulo N. Meskipun
tidak ada jaminan bahwa x`1 · x`2 · x`3 6 = ± Qk i = 1 p
(e`1, i + e`2, i + e`3, i) / 2 i mod N, kita setidaknya dapat secara heuristik berharap bahwa ini akan menjadi kasus dengan probabilitas sekitar 1/2 (karena X memiliki empat akar kuadrat ).
Contoh 8.4
Ambil N = 377753. Kami memiliki 6647 = [6202 mod N], dan kami dapat memfaktorkan 6647 (lebih dari bilangan bulat, tanpa pengurangan modular) sebagai
6647 = 172 ·23
Dengan demikian, 6202 = 172 · 23 mod N. Demikian pula,
                                    6212 = 24 ·17·29 mod N
6452 = 27 ·13·23 mod N
6552 = 23 ·13·17·29 mod N.
Jadi,
                        6202 ·6212 ·6452 ·6552 = 214 ·132 ·174 ·232 ·292 mod N
    (620·621·645·655 mod N)2 =27 ·13·172 ·23·29 mod N2 mod N
        1271942 = 453352 mod N,

dengan 127194 6 = ± 45335 mod N. Computing gcd (127194−45335, 377753) = 751 menghasilkan faktor non-sepele N.

Durasi.
Kami telah menghilangkan banyak detail dalam diskusi kami tentang algoritma di atas. Akan tetapi, dapat diperlihatkan bahwa dengan optimasi yang tepat, algoritma ayakan kuadrat berjalan dalam waktu 2O (·n · log n) untuk memasukkan faktor sejumlah N lengthO (n). Poin penting adalah bahwa waktu berjalan ini adalah sub-eksponensial dalam panjang N.

 

 

Algoritma untuk Anjak piutang dan Komputasi Logaritma Diskrit (Algorithms for Factoring and Computing Discrete Logarithms)

www.uts.ac.id Nama : Evi Nurmala NIM : 17.01.071.029 Mata Kuliah : KRIPTOGRAFI Seperti dibahas dalam Bab 7, saat ini t...