Penerapan teori bilangan pada kriptografi rsa
Transcript of Penerapan teori bilangan pada kriptografi rsa
PENERAPAN TEORI BILANGAN PADA
KRIPTOGRAFI RSA
Diajukan Untuk Memenuhi Tugas-Tugas Dalam
Mata Kuliah Seminar Pendidikan Matematika
Oleh:
Badratu n Nafis
NIM: 1206103020080
PROGRAM STUDI PENDIDIKAN MATEMATIKA
FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN
UNIVERSITAS SYIAH KUALA
DARUSSALAM, BANDA ACEH
2015
LEMBAR PENGESAHAN
Penerapan Teori Bilangan Pada Kriptografi RSA
Oleh
Nama : Badratun Nafis
NIM :1206103020080
Makalah ini telah disetujui oleh
Dosen Pembimbing
Drs. R.M.Bambang S, M.Pd Suartati, S.Pd, M.Pd
NIP : 195911091986031001 NIP : 197410211999032001
KATA PENGANTAR
Puji dan syukur penulis ucapkan kehadirat Allah SWT, yang telah
melimpahkan rahmat, karunia hidayah dan Ridho-Nya kepada penulis selama
menyusun dan menyelesaikan makalah seminar ini dengan judul : “Penerapan
Teori Bilangan pada Kriptografi RSA”.
Terselesainya makalah seminar ini tidak lepas dari bantuan banyak pihak.
Sehubungan dengan itu, pada kesempatan ini penulis dengan penuh kerendahan
hati menyampaikan ucapan terima kasih kepada pihak-pihak yang ikut serta
membantu menyelesaikan makalah ini.
Penulisan makalah seminar ini disusun dengan maksud untuk melengkapi
salah satu syarat guna mengikuti mata kuliah Seminar Pendidikan Matematika
pada Fakultas Keguruan dan Ilmu Pendidikan Unsyiah. Penulis menyadari
sepenuhnya bahwa makalah ini masih jauh dari sempurna, dikarenakan
keterbatasan dan kemampuan penulis. Semoga makalah ini dapat bermanfaat bagi
pembaca dan yang memerlukannya.
Banda Aceh, Maret 2015
Penulis
Daftar Isi
Halaman Judul
Lembar Pengesahan.......................................................................................... i
Kata Pengantar.................................................................................................. ii
Daftar Isi........................................................................................................... iii
A. Latar Belakang............................................................................................. 1
B. Rumusan Masalah........................................................................................ 2
C. Tujuan Penulisan.......................................................................................... 2
D. Pembahasan................................................................................................. 2
1. Sejarah Kriptografi RSA........................................................................ 2
2. Tujuan Kriptografi................................................................................ 3
3. Teori Bilangan...................................................................................... 4
3.1 Aritmatika Modulo........................................................................ 4
3.2 Relatif Prima.................................................................................. 4
4. Penerapan Teori Bilangan pada Proses Algoritma RSA....................... 5
5. Algoritma RSA...................................................................................... 8
5.1 Pembangkitan pasangan kunci........................................................ 8
5.2 Enkripsi........................................................................................... 9
5.3 Dekripsi........................................................................................... 9
6. Kekuatan dan Keamanan RSA..............................................................13
E. Penutup.........................................................................................................14
Daftar pustaka...................................................................................................16
A. LATAR BELAKANG MASALAH
Pada zaman sekarang ini dilingkupi oleh kriptografi. Mulai dari transaksi
di mesin ATM, transaksi di bank, transaksi dengan kartu kredit, percakapan
melalui telepon genggam, mengakses internet, sampai mengaktifkan peluru
kendali pun menggunakan kriptografi. Begitu pentingnya kriptografi untuk
keamanan informasi (information security), sehingga jika berbicara mengenai
masalah keamanan yang berkaitan dengan penggunaan komputer, maka orang
tidak bisa memisahkannya dengan kriptografi.
Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan
(Rinaldi Munir, 2012 : 203). Keamanan pesan diperoleh dengan menyandikannya
menjadi pesan yang tidak bermakna. Sehingga pesan rahasia yang ingin dikirim
kepada yang berhak menerima pesan tetap terjaga kerahasiaanya oleh orang-orang
yang tidak berhak menerima pesan.
Salah satu teori yang sering digunakan dalam kriptografi adalah teori
bilangan (number theory). Banyak permasalahan dalam teori bilangan yang
digunakan pada kriptografi, misalnya permasalahan RSA (Rivest, Shamir,
Adleman), logaritma diskrit, Diffie-Hellman, dan subset sum problem.
Seperti yang sudah di sebutkan di atas, permasalahan kriptografi yang
berpusat pada RSA adalah salah satu persoalan dalam teori bilangan. Aritmatika
modulo, relatif prima dan balikan modulo adalah materi pada teori bilangan yang
akan memodifikasikan pada penerapan kriptografi RSA.
B. RUMUSAN MASALAH
Berdasarkan latar belakang masalah di atas maka rumusan masalah
dalam penulisan ini adalah “Bagaimanakah aplikasi teori bilangan pada skema
kriptografi RSA?”
C. TUJUAN PENULISAN
Penulisan makalah ini bertujuan untuk mempelajari lebih lanjut tentang
teori bilangan pada penggunaan skema kriptografi RSA.
D. PEMBAHASAN
1. Sejarah kriptografi RSA(Rivest-Shamir-Adleman)
RSA adalah salah satu contoh kriptografi yang menerapkan konsep
publik-key. Algoritma ini pertama kali dipublikasikan ditahun 1976 oleh Ron
Rivest, Adi Shamir dan Leonard Adleman dari Massachusetts Institute of
Technology (MIT) (Rinaldi Munir, 2012:210). Nama RSA sendiri adalah
singkatan dari nama belakang mereka bertiga (Rivest Shamir Adleman).
Dalam bahasa kriptografi, kode disebut chipper, pesan yang belum
disandikan disebut plainteks, dan pesan yang belum dikodekan disebut chiperteks.
Proses mengubah dari planiteks menjadi chiperteks disebut enkripsi dan proses
mengubah dari chiperteks menjadi plainteks disebut dekripsi (Anton Rorrer,
2004:306). Sedangkan kunci adalah sebuah bilangan yang dirahasiakan yang
digunakan dalam proses enkripsi dan dekripsi.
Proses Enkripsi dan Dekripsi
Seperti yang telah di jelaskan, proses enkripsi mengubah plainteks
menjadi chiperteks sehingga isi informasi pada pesan tersebut sukar untuk
dimengerti. Pada kriptografi RSA kunci Enkripsi tidak dirahasiakan dan diketahui
oleh umum (dinamakan kunci public), namun kunci untuk dekripsi bersifat
rahasia. Sehingga RSA menggunakan dua kunci yang berbeda yaitu untuk proses
enkripsi dan dekripsi.
2. Tujuan Kriptografi
Kriptogrfi betujuan untuk memberikan layanan pada aspek-aspek
keamanan antara lain:
1. Confidentiality (kerahasiaan) yaitu layanan yang ditunjukan untuk
menjaga agar isi pesan yang di kirimkan tidak dapat dibaca oleh pihk lain
(kecuali pihak pengirim, pihak penerima/pihak-pihak yang memiliki izin).
2. Data integrity (keutuhan data) yaitu layanan yang mampu menjadikan
pesan masih asli/utuh atau belum pernah dimanipulasi selama masa waktu
pengiriman.
Plainteks Asaldekripsi
CiphertekssEnkripsi
Plainteks
3. Authentication (otentiikasi) yaitu layanan yang berhubungan dengan
identifikasi. Baik mengidentifikasi kebenaran pihak-pihak yang
berkomunikasi maupun mengidentifikasi kebenaran sumber pesan.
4. Non-repudiation (anti penyangkalan) yaitu layanan yang dapat mencegah
suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya.
3. Teori Bilangan
3.1 Aritmatika Modulo
Aritmatika modulo (modular arithmethic) memainkan peran yang penting
dalam komputasi integer, khususnya pada aplikasi kriptografi (Rinaldi Munir,
2012:191). Operator yang digunakan pada aritmatika modulo adalah mod.
Operator mod memberikan sisa pembagian . Sebagai contoh 53 mod 5
memberikan hasil = 10 dan sisa = 3. Maka 53 mod 5 = 3.
Definisi: misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0.
Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a
membagi m. Dengan kata lain, a mod m = r sedemikian sehingga a =
mq + r, dengan 0 ≤ r < m.
Bilangan m diebut modulo atau modulus, dan hasil aritmatika modulo m
terletak didalam himpunan {0, 1, 2, ..., m – 1}. Jika a mod m = 0, maka dikatakan
bahwa a adalah kelipatan dari m, yaitu a habis dibagi dengan m.
3.2 Relatif Prima
Definisi: Dua buh bilangan bulat a dan b dikatakan relatif prima (relative prime)
jika PBB(a, b) = 1.
Contoh 1:
3 dan 5 adalah relatif prima karena PBB(3, 5) = 1
31 dan 120 adalah relatif prima karena PBB(31, 120) = 1
Jika a dan b relatif prima, maka dapat ditemukan bilangan bulat m dan n
sedemikian sehingga:
ma + nb = 1
Contoh 2:
Bilangan 20 dan 3 adalah relatif prima karena PBB(20, 3) = 1, atau dapat
ditulis:
2 . 20 + (-13) . 3 = 1
Dengan m = 2 dan n = -13
4. Penerapan Teori Bilangan pada Proses Algoritma RSA
Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan
yang besar menjadi faktor-faktor prima (Rinaldi Munir, 2012:213). Pemfaktoran
dilakukan untuk memperoleh kunci pribadi. Besaran-besaran yang digunakan
pada algoritma RSA:
a. p dan q bilangan prima (rahasia)
b. r = p q (tidak rahasia)
c. (r) = r(1 – 1/p1)(1 – 1/p2) (rahasia)
d. PK (kunci enkripsi) (tidak rahasia)
e. SK (kunci dekripsi) (rahasia)
f. X (plainteks) (rahasia)
g. Y (cipherteks) (tidak rahasia)
Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa
(Sriyono Hilda, 2013):
a(r) 1 (mod r) ......................................(1)
dengan ketentuan,
a. a harus relatif prima terhadap r
b. (r) = r(1 – 1/p1)(1 – 1/p2) … (1 – 1/pn), yang dalam hal ini p1, p2, …,
pn adalah faktor prima dari r.
(r) adalah fungsi yang menentukan berapa banyak dari bilangan-
bilangan 1, 2, 3, …, r yang relatif prima terhadap r. Berdasarkan sifat am bm
(mod r) untuk m bilangan bulat 1, maka persamaan (1) dapat ditulis menjadi :
a m(r) 1m (mod r)
atau
am(r) 1 (mod r)............................................... (2)
Bila a diganti dengan X, maka persamaan menjadi
Xm(r) 1 (mod r) .............................................. (3)
Berdasarkan sifat ac bc (mod r), maka bila persamaan (3) dikali
dengan X menjadi:
Xm(r) + 1 X (mod r) .......................................... (4)
X relative prima terhadap r.
Misalkan SK dan PK dipilih sedemikian sehingga :
SK PK 1 (mod (r))
Atau
SK PK = m(r) + 1......................................... (5)
Substitusi (4) ke dalam persamaan (5) menjadi:
X SK PK X (mod r)...........................................(6)
Persamaan (7) dapat ditulis kembali menjadi:
(X PK)SK X (mod r)..........................................(7)
Yang artinya, perpangkatan X dengan PK diikuti dengan perpangkatan
dengan SK menghasilkan kembali X semula. Berdasarkan persamaan (7), maka
enkripsi dan dekripsi dirumuskan sebagai berikut:
EPK(X) = Y XPK mod r.....................................(8)
DSK(Y) = X YSK mod r.....................................(9)
Karena SK PK = PK SK, maka enkripsi diikuti dengan dekripsi
ekivalen dengan dekripsi diikuti enkripsi:
ESK (DSK(X)) = DSK (EPK(X)) XPK mod r...........(10)
Oleh karena XPK mod r (X + mr)PK mod r untuk sembarang bilangan
bulat m, maka tiap plainteks X, X + r, X + 2r, …, menghasilkan cipherteks yang
sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar
transformasinya satu-ke-satu, maka X harus dibatasi dalam himpunan {0, 1, 2, …,
r – 1} sehingga enkripsi dan dekripsi tetap benar seperti pada persamaan (8) dan
(9).
5. Algoritma RSA
5.1 Pebangkitan Pasangan Kunci
Secara ringkas, algoritma RSA terdidiri dai tiga bagian, yaitu bagian
untuk membangkitkan pasangan kunci, bagian untuk ekripsi dan bagian untuk
dekripsi (Rinaldi Munir, 2012: 211):
1. Pilih dua buah bilangan pria sebarang, sebut p dan q. Jaga kerahasiaan p
dan q ini.
2. Hitung r = pq. Besaran n tidak perlu dirahasiakan.
3. Hitung (r) = r(1 – 1/p1)(1 – 1/p2). Setelah (r) dihitung, p dan q dapat
dihapus untuk diketahui nya oleh pihak lain.
4. Pilih sebuah bilangan bulat untuk kunci public, sebut namanya PK, yang
relative prima terhadap (r).
5. Hitung kunci dekripsi, PK¸ dengan kekongruenan SK.PK 1(mod (r)).
Perhatikan bahwa SK.PK 1(mod (r)) ekivalen dengan SK.PK = 1 +
m(r), sehingga SK dapat dihitung dengan:
SK=1+mφ (r )
PK ................................................ (11)
Akan terdapat bilangan bulat m yang dapat menyebabkan bilangan blat
pada SK.
5.2 Enkripsi
1. Nyatakan pesan menjadi blok-blok plaintek: x1, x2, x3, ... (harus dipenuhi
persyaratan bahwa nilai xi harus terletak dalam himpunan nilai 0, 1, 2, …,
(r – 1) untuk menjammin hasil perhitungn tidak berada di luar himpunan).
2. Hitung blok cipherteks yi untuk blok plaintek xi dengan persamaan:
yi = xiPK
mod r
dalam hal ini PK adalh kunci publik
5.3 Dekripsi
Proses dekripsi dilakukan dengan menggunakan persamaan
xi = yiSK
mod r
yang dalam hal ini, SK adalah kunci pribadi.
Contoh 4:
Misalkan plainteks yang akan dienkripsikan adalah X = 23
Langkah pertama kita harus membangkitkan pasangan kuncinya.
1. Dengan 2 buah bilangan prima, misal kita ambil contoh kecil a=5 dan b=7
2. Hitung r = pq; r = 5 . 7 = 35
3. Hitung (r) = r(1 – 1/p1)(1 – 1/p2)
(r) = (1 – 1/5)(1 - 1/7) = 24
4. Pilih PK, sehingga PK tak bisa membagi rata (r), misal PK = 5
5. Hitung SK, sehingga SK.PK 1(mod (r))
(SK . 5) mod 24=1;
SK = 29
6. Public key{r, PK}={35,5}
7. Private key{r, SK}={35,29}
Langkah kedua, setelah kita peroleh pembangkit kuncinya maka kita akan
mengekripsi plainteks.
1. Dengan public key tadi {35,5}, hitung pesan baru.
Pesan bisa dipecah jadi beberapa blok, jika hanya 1 juga bisa.
2. Cipher = (XPK) mod r;
Cipher=(235) mod 35;
Cipher = 6436343 mod 35 = 18
3. Kita mendapat cipher=18
Langkah ketiga (untuk penerima pesan), kita akan mendekripsikan
menjadi plainteks asalnya
1. private key kita tadi {35, 29} dan cipher = 18
pesan bisa dipecah jadi beberapa blok(mengikuti saat tahap encrypt)
2. X = (YSK) mod r;
X = (1829) mod 35 = 23
3. Sekarang kita memperoleh kembali X = 23.
Contoh 5:
Misalkan plainteks yang akan dienkripsikan adalah X = HARI INI atau dalam
sistem desimal (pengkodean ASCII) adalah 7265827332737873.
Jawab:
Langkah pertama kita harus membangkitkan pasangan kuncinya.
Misalkan p = 47 dan q = 71 (keduanya prima). Selanjutnya, hitung nilai r = p.q =
3337 dan (r) = r(1 – 1/p1)(1 – 1/p2) = 3220.
Pilih kunci public SK = 79, karena 79 relatif prima dengan 3220. Nilai PK dan r
dapat dipublikasikan ke umum.
Selanjutnya, akan dihitung kunci dekripsi SK seperti yang dituliskan pada langkah
instruksi 5 dengan mengunakan persamaan (11).
SK=1+(m×3220 )79
Dengan mencoba nilai-nili m = 1, 2, 3, …, r – 1 di peroleh nilai Sk bilangan bulat
adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan.
Langkah kedua, setelah kita peroleh pembangkit kuncinya maka kita akan
mengekripsi plainteks.
Pecah X menjadi blok yang lebih kecil, misalnya X dipecah menjadi enam blok
yang berukuran 3 digit:
x1 = 726 x4 = 273
x2 = 582 x5 = 787
x3 = 733 x6 = 003
Nilai-nilai xi ini masih terletak di dalam rentang 0 sampai 3337 – 1 (agar
transformasi menjadi satu-ke-satu).
Blok-blok plainteks dienkripsikan sebagai berikut:
72679 mod 3337 = 215 = y1
58279 mod 3337 = 776 = y2
73379 mod 3337 = 1743 = y3
27379 mod 3337 = 933 = y4
78779 mod 3337 = 1731 = y5
00379 mod 3337 = 158 = y6
Jadi, cipherteks yang dihasilkan adalah
Y = 215 776 1743 933 1731 158.
Dekripsi dilakukan dengan menggunakan kunci rahasia
SK = 1019
Langkah ketiga (untuk penerima pesan), kita akan mendekripsikan
menjadi plainteks asalnya.
Blok-blok cipherteks didekripsikan sebagai berikut:
2151019 mod 3337 = 726 = x1
7761019 mod 3337 = 582 = x2
17431019 mod 3337 = 733 = x3
…
Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita
memperoleh kembali plainteks semula
P = 7265827332737873
yang dalam karakter ASCII adalah
P = HARI INI.
6. Kekuatan dan Keamanan RSA
Kekuatan algorima RSA terletak pada tingakat kesulitan dalam
memfaktorkan bilangan menjadi factor primnya, ang dalam hal ini adalah
menfaktorkan r menjadi p dan q, maka (r) = r(1 – 1/p1)(1 – 1/p2) dapat dihitung.
Selanjutnya karena kunci enkripsi PK diumumkan (tidak dirahasikan), maka kunci
dekripsi SK dapat dihitung dari persamaan SK.PK 1(mod (r)). Ini berarti
proses dekripsi dapat dilakukan oleh orang yang tidak berhak.
Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari
100 digit. Dengan demikian kali r = pq akan berukuran lebih dari 200 digit
(Rinaldi Munir, 2012:213). Bayangkan berapa besarr usaha kerja yang diperlukan
untuk menfaktorkan bilangan bulat 200 digit menjadi factor primanya. Menurut
Rivest dkk: “usaha untuk mencari factor bilangan 200 digit membutuhkan waktu
komputasi selama 4 milayar tahun! (dengan asumsi bahwa algoritma pemfaktoran
yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang
dipakai mempunyai kecepatan 1 milidetik)”.
Untunglah algoritma yang paling efisien untuk menfaktorkan bilangan
yang besar belum ditemukan. Inilah yang membuat algoritma RSA tetap dipakai
hingga saat ini. Selagi belum ditemukan algoritma yang efisian untuk
menfaktokan bilangan bulat menjadi bilangan prima, maka algoritma RSA masih
direkomendasikan untuk penyandian pesan.
E. PENUTUP
1. Kesimpulan
Aritmatika modulo dan relatif prima adalah 2 buah topik pada teori
bilangan yang dapat digunakan untuk membahas penyelesaiaan kriptografi. Pada
kriptografi ada dua kunci yang disebut dengan enkripsi dan dekripsi. Memperoleh
kunci pada kriptografi dapat digunakan dengan mengambil sebarang 2 buah
bilangan prima yang relatif prima.
2. Saran
Dalam membuat kunci pasangan prima sebaiknya dihitung terlebih
dahulu relatife primanya, agar tidak terjadi kesalahan. Jika ingin membuat pesan
rahasia sebaiknya menggunakan bilangan bulat yang paling besar agar
kerahasiaan kita tetap terjaga dan sulit bagi yang bukan berhak menerima untuk
membobol pesan kita.
DAFTAR PUSTAKA
Munir, Rinaldi. 2012. Matematika Diskrit. Bandung: Informatika
Rorrer, Chris & Howard Anton. 2004. Aljabar Linear Elementer. Jakarta:
Erlangga
Hilda, Sriyono. 2013. Kajian Perhitungan Dan Penerapan Algoritma RSA Pada Proses Pengamanan Data (online). (http://rektek.uhamka.ac.id/wp-content/uploads/2013/10/UHAMKA, diakses 23 Maret 2015)
SOAL-SOAL DARI HASIL PRESENTASI
1. Bagaimana cara kita menyelesaikan sebuah soal jika dari soal yang tertera
terdapat pangkat bilangan prima yang sangat besar?
2. Seberapa lama kita dapat memecahkan kode dari proses enkripsi?
JAWABAN DARI HASIL PRESENTASI
1. Dari contoh yang kelima terdapat contoh perpangkatan bilangan prima
yang besar dan kita dapat menyelesaikan dengan melihat pedoman dari
contoh trsebut.
2. Keaman dari kriptografi RSA sangatlah ketat, sehingga proses dari
pemecahannya bisa sangat lama. Penyerangan yang paling umum pada
RSA ialah pada penanganan masalah faktorisasi pada bilangan yang sangat
besar. Apabila terdapat faktorisasi metode yang baru dan cepat telah
dikembangkan, maka ada kemungkinan untuk membongkar RSA.
Pada tahun 2005, bilangan faktorisasi terbesar yang digunakan secara
umum ialah sepanjang 663 bit, menggunakan metode distribusi mutakhir.
Kunci RSA pada umumnya sepanjang 1024—2048 bit. Beberapa pakar
meyakini bahwa kunci 1024-bit ada kemungkinan dipecahkan pada waktu
dekat (hal ini masih dalam perdebatan), tetapi tidak ada seorangpun yang
berpendapat kunci 2048-bit akan pecah pada masa depan yang terprediksi.
Semisal Eve, seorang eavesdropper (pencuri dengar—penguping),
mendapatkan public key N dan e, dan ciphertext c. Bagimanapun juga, Eve
tidak mampu untuk secara langsung memperoleh d yang dijaga
kerahasiannya oleh Alice. Masalah untuk menemukan n seperti
pada ne=c mod N di kenal sebagai permasalahan RSA.
Cara paling efektif yang ditempuh oleh Eve untuk
memperoleh n dari c ialah dengan melakukan
faktorisasi N kedalam p dan q, dengan tujuan untuk menghitung (p-1)(q-1)
yang dapat menghasilkan d dari e. Tidak ada metode waktu polinomial
untuk melakukan faktorisasi pada bilangan bulat berukuran besar di
komputer saat ini, tapi hal tersebut pun masih belum terbukti.
Masih belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-
satunya cara untuk memperoleh n dari c, tetapi tidak ditemukan adanya
metode yang lebih mudah (setidaknya dari sepengatahuan publik).
Bagaimanapun juga, secara umum dianggap bahwa Eve telah kalah
jika N berukuran sangat besar.
Jika N sepanjang 256-bit atau lebih pendek, N akan dapat difaktorisasi
dalam beberapa jam pada Personal Computer, dengan
menggunakan perangkat lunak yang tersedia secara bebas.
Jika N sepanjang 512-bit atau lebih pendek, N akan dapat difaktorisasi
dalam hitungan ratusan jam seperti pada tahun 1999. Secara
teori,perangkat keras bernama TWIRL dan penjelasan dari Shamir dan
Tromer pada tahun 2003 mengundang berbagai pertanyaan akan keamanan
dari kunci 1024-bit. Santa disarankan bahwa N setidaknya sepanjang
2048-bit.
Pada thaun 1993, Peter Shor menerbitkan Algoritma Shor, menunjukkan
bahwa sebuah komputer quantum secara prinsip dapat melakukan
faktorisasi dalam waktu polinomial, mengurai RSA dan algoritma lainnya.
Bagaimanapun juga, masih terdapat pedebatan dalam pembangunan
komputer quantum secara prinsip.