Siapa NextGeners disini yang suka bermain kode-kodean? Pasti banyak ya, tapi kalo kode nya adalah kode kriptografi apakah ada? Mungkin belum banyak pasti nya ya. Kriptografi adalah ilmu mengenai teknik enkripsi dimana “naskah asli” (plaintext) diacak menggunakan suatu kunci enkripsi menjadi “naskah acak yang sulit dibaca” (ciphertext) oleh seseorang yang tidak memiliki kunci dekripsi. Begitu banyak metode yang digunakan untuk kriptografi, kali ini STEM-Z akan mengulas mengenai salah satu metode yang dikenal dengan Algoritma RSA.
Algoritma RSA diperkenalkan oleh tiga peneliti dari MIT (Massachusetts Institute of Technology) yaitu, Ron Rivest, Adi Shamir, dan Len Adleman.nama dari RSA sendiri berasal dari inisial nama ketiga peneliti tersebut. RSA mendasarkan proses enkripsi dan dekripsinya pada konsep bilangan prima dan aritmatika modulo. Baik kunci enkripsi maupun kunci dekripsi keduanya berupa bilangan bulat. RSA dibuat di MIT pada tahun 1977 dan dipatenkan oleh MIT pada tahun 1983. Setelah bulan September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas. Untuk menemukan kunci dekripsinya harus memfaktorkan suatu bilangan non prima menjadi faktor primanya. Kenyataannya memfaktorkan bilangan non prima menjadi faktor primanya bukanlah pekerjaan yang mudah.Semakin besar bilangan non primanya tentu semakin sulit pula pemfaktorannya sehingga semakin kuat algoritma RSA. Jika NextGeners ingin menggunakan algoritma RSA tersebut, NextGeners harus memahami beberapa notasi matematika dasar, teori dan formula. Hal tersebut dibutuhkan untuk mendukung semua kalkulasi yang dilakukan dalam algoritma RSA. Salah satu notasi yang digunakan adalah Modulos. operasi modulus adalah sebuah operasi yang menghasilkan sisa pembagian dari suatu bilangan terhadap bilangan lainnya. Dalam bahasa pemrograman operasi ini umumnya dilambangkan dengan simbol %, mod atau modulo.
RSA merupakan contoh yang powerful dan cukup aman dari Public-Key Cryptography. Berdasarkan matematika, proses yang digunakan berdasarkanfungsi-fungsi trap-door satu arah. Sehingga melakukan enkripsi dengan menggunakan public key sangat mudah bagi semua orang, namun prosesdekripsi menjadi sangat sulit. Biar tidak bingung, mari kita tampilkan contoh soal kriptografi yang menggunakan algoritma RSAMisalkan plainteks yang akan dienkripsikan adalah P= HARI INI Yang dalam desimal ASCII-nya adalah 7265827332737873
Enkripsi·
Nyatakan pesan menjadi blok-blok plainteks: p1,p2,p3,… (harus dipenuhi persyaratan bahwa nilai pi harus terletak dalam himpunan nilai 0,1,2,…, n-1·
Hitung blok cipherteks ci untuk blok plainteks pi dengan persamaan
Ci = pie mod n
yang dalam hal ini e adalah kunci publik.
DekripsiProses dekripsi dilakukan dengan menggunakan persamaan
Pi = cid mod n
Proses:
Pembangkitan pasangan kunci
1. Pilih harga a dan b (misalnya a=47 dan b=71)
2. N=a*b => 47*71 = 3337
3. M =(47-1)(71-1) = 3220
4. Kunci publik (Enkripsi) e=79 (yang relatif prima dengan 3220)
5. Kunci dekripsi
Dengan melakukan percobaan untuk k=1,2,3,… diperoleh harga d=1019.
Enkripsi
1. Pecah P menjadi blok yang lebih kecil, misalnya P dipecah menjadi enam blok yang berukuran 3 digit:
P1=726
P2=582
P3=733
P4=273
P5=785
P6=003
2. Hitung ci untuk blok pi
c1=726 79 mod 3337 = 215
c2=582 79 mod 3337 = 776
temukan juga hingga c6, sehingga cipherteks (c) akhir yang diperoleh adalah:
215 776 1743 933 1731 158
Dekripsi
Proses dekripsi dilakukan dengan menggunakan kunci rahasia d=1019, jadi blok ci di dekripsikan.
P1=215 1019 mod 3337 =725
P = 776 1019 mod 3337 = 582
Selesaikan hingga p6, sehingga plainteks yang diperoleh adalah:7265827332737873.
Atau dalam bentuk karakter ACSII adalah P= Hari ini.
Bagimana NexGeners pembahasan mengenai algoritma RSA?
Apakah kalian tertarik dengan algoritma ini? Atau ingin mempelajari algoritma lainnya?
Kita tunggu NextGeners untuk berinovasi di bidang Business Mathematics
Sumber Referensi:
http://ezine.echo.or.id/ezine12/echo12-05.txt
https://id.wikipedia.org/wiki/RSA
Sumber Gambar: