Setelah mengetahui cara untuk membangkitkan kunci publik dan kunci rahasia (baca di sini), tahapan selanjutnya dalam algoritma RSA adalah proses enkripsi dan dekripsi pesan. Tahapan dari enkripsi ini meliputi:

  1. Pengubahan tiap karakter teks asli (plainteks) menjadi bilangan bulat 01-26 (contohnya A=01, B=02, C=03, D=04,\cdots, Z=26). Kemudian membagi teks tersebut ke dalam beberapa blok b yang sama besarnya, dengan besar tiap blok kurang dari n;
  2. Untuk tiap blok kita menghitung c=b^{e}(mod n), kemudian c  ini menjadi blok teks yang akan dikirimkan.

Setelah selesai mengenkripsi pesan, maka pesan berupa sandi (ciperteks) akan dikirimkan ke penerima. Kemudian penerima melakukan proses dekripsi pesan untuk mengubah ciperteks menjadi pesan aslinya. Tahapan-tahapan dalam mendekripsikan pesan sebagai berikut:

  1. Menghitung nilai d yang memenuhi e.d=1(mod \phi(n));
  2. Untuk setiap blok sandi c yang diterima, hitunglah b=c^{d}(mod n).

Agar lebih jelasnya, perhatikan contoh berikut ini:

Andy ingin mengirim pesan rahasia kepada Betty Lapea dengan menggunakan algoritma RSA. Misalkan untuk membangkitkan kunci publik, Betty memilih p=13 dan q=17 sehingga diperoleh n=13.17=221. Berikutnya Betty memilih dengan acak besaran dari e, yaitu e=5 yang relatif prima terhadap \phi(221)=(13-1)(17-1)=192. Jadi didapat kunci publiknya adalah (5,221). Kunci publik ini ia publikasikan kepada umum.

Jika pesan yang ingin dikirim oleh Andy adalah teks “TAMAN”, maka ia harus mengubah huruf-huruf dalam teks menjadi angka-angka, jadi

T=20, A=01, M=13, A=01, N=14

diperoleh barisan angka-angka

20, 01, 13, 01, 14

Kemudian misalkan Andy membuat blok dengan panjang tiga digit, maka terdapat 4 blok yang akan disandikan, yaitu

200, 113, 011, 4

Selanjutnya untuk tiap blok kita hitung c=b^{e}(mod n), dengan c adalah blok teks sandi yang akan dikirimkan.

200 disandikan menjadi \rightarrow 200^{5}(mod 221)=200

113 disandikan menjadi \rightarrow 113^{5}(mod 221)=146

011 disandikan menjadi \rightarrow 11^{5}(mod 221)=163

4 disandikan menjadi \rightarrow 4^{5}(mod 221)=140

Jadi Andy mengirimkan empat blok rahasia 200 146 163 140 kepada Betty.Enkripsi dan dekripsi.JPG

Nah ketika pesan sandi tersebut telah diterima oleh Betty, maka ia harus membangkitkan kunci rahasia yang diperoleh dari hubungan e.d=5d=1(mod 221). Didapat d=77. Sekarang yang harus dilakukan oleh Betty adalah mendekripsikan pesan sandi tersebut untuk mendapatkan pesan aslinya.

blok sandi 200 didekrip menjadi \rightarrow 200^{77}(mod 221)=200

blok sandi 146 didekrip menjadi \rightarrow 146^{77}(mod 221)=113

blok sandi 163 didekrip menjadi \rightarrow 163^{77}(mod 221)=11=011

blok sandi 140 didekrip menjadi \rightarrow 140^{77}(mod 221)=4

Sehingga Betty mendapatkan pesan asli 200 113 011 4 yang dikelompokkan ke dalam dua digit menjadi 20 01 13 01 14. Atau jika dikonversikan kembali ke dalam huruf menjadi teks “TAMAN”.

Jadi algoritma RSA ini sangat cocok dipelajari sama kamu yang suka main kode-kodean dengan si dia, hehe..


Sumber Pustaka:

Siang, J.J. (2002). Bilangan Prima: Sejarah dan Aplikasinya. INTEGRAL, vol. 7 no. 1, April 2002

Iklan