Journal of Computing and Applied Informatics (JoCAI) Vol. 01, No. 1, 2017 | 30 - 37
DATA SCIENCE
Journal of Computing and Applied Informatics
*Corresponding author at:
1
College of Science and Engineering, School of Environmental Design, Kanazawa University, Japan
2,3
Department of Computer Science, Faculty of Computer Science and Information Technology, Universitas
Sumatera Utara, Medan 20155, Indonesia
E-mail address: ade_candra@stu.kanazawa-u.ac.jp (Ade Chandra), mandrib@usu.ac.id (Mohammad Andri
Budiman), dian.rachmawati@usu.ac.id (Dian Rachmawati)
Copyright © 2017 Published by Talenta Publisher, ISSN: 2580-6769 | e-ISSN: 2580-829X
Journal Homepage: https://talenta.usu.ac.id/JoCAI
On Factoring the RSA Modulus Using Tabu Search
Ade Candra
1
, Mohammad Andri Budiman
2
, and Dian Rachmawati
3
1
College of Science and Engineering, School of Environmental Design, Kanazawa University
2,3
Department of Computer Science, Universitas Sumatera Utara, Medan, Indonesia
Abstract. It is intuitively clear that the security of RSA cryptosystem depends on the
hardness of factoring a very large integer into its two prime factors. Numerous studies about
integer factorization in the field of number theory have been carried out, and as a result, lots
of exact factorization algorithms, such as Fermat’s factorization algorithm, quadratic sieve
method, and Pollard’s rho algorithm have been found. The factorization problem is in the
class of NP (non-deterministic polynomial time). Tabu search is a metaheuristic in the field
of artificial intelligence which is often used to solve NP and NP-hard problems; the result of
this method is expected to be close-to-optimal (suboptimal). This study aims to factorize the
RSA modulus into its two prime factors using tabu search by conducting experiments in
Python programming language and to compare its time performance with an exact
factorization algorithm, i.e. Pollard’s algorithm. The primality test is done with Lehmann’s
algorithm.
Keyword: RSA, Tabu search, Pollard’s factorization, Prime numbers, Lehmann’s primality
test, Python.
Abstrak. Secara intuitif, keamanan sistem kriptografi kunci publik RSA bergantung kepada
sulitnya memfaktorisasi sebuah bilangan bulat yang sangat besar menjadi dua buah faktor
primanya. Penelitian mengenai faktorisasi bilangan bulat umumnya dilakukan di ranah teori
bilangan dan telah menghasilkan beberapa macam algoritma eksak, seperti algoritma
faktorisasi Fermat, metode saringan kuadratik, dan algoritma Pollard. Masalah faktorisasi
itu sendiri termasuk dalam kelas NP (non-deterministic polynomial time). Tabu search
adalah suatu metaheuristik pada ranah kecerdasan buatan yang jamak dipakai untuk
menyelesaikan masalah kelas NP dan NP-hard; kategori hasil dari metode ini adalah
mendekati optimal (suboptimal). Penelitian ini berupaya untuk memfaktorkan modulus RSA
menjadi dua buah faktor primanya dengan menggunakan tabu search dengan pendekatan
eksperimental dalam bahasa pemrograman Python dan membandingkan waktu
faktorisasinya dengan salah satu algoritma eksak, yaitu algoritma Pollard. Uji keprimaan
dilakukan dengan algoritma Lehmann.
Kata Kunci: RSA, tabu search, faktorisasi Pollard, bilangan prima, uji prima Lehmann,
Python.
Received 27 April 2017 | Revised 29 May 2017 | Accepted 30 June 2017