• Tidak ada hasil yang ditemukan

yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996). Dalam kriptografi, ada dua proses yang sangat penting, yaitu enkripsi dan dekripsi. Enkripsi merupakan proses mengubah pesan asli (plaintext) menjadi pesan yang dikodekan (ciphertext). Sedangkan dekripsi adalah proses mendapatkan plaintext dari ciphertext. Beberapa algoritma yang digunakan untuk enkripsi dan dekripsi pesan, misalnya Data Encryption Standard (DES), Triple-DES, Advanced Encryption Standard (AES), Blowfish, 3DES, RC5, RSA, dan lain sebagainya.

RSA adalah sebuah algoritma pada enkripsi kunci publik yang dikembangkan oleh Rivest-Shamir-Adleman. Algoritma ini menggunakan kunci yang berbeda untuk enkripsi dan dekripsi. Keamanan metode ini terletak pada kesulitan untuk memfaktorkan modulus n yang sangat besar, tetapi kelebihan ini mengakibatkan lambatnya waktu untuk menyelesaikan proses. Sedangkan RSA-CRT adalah RSA yang dimodifikasi dengan menggunakan CRT yang bertujuan untuk mempercepat proses dekripsi.

Quadratic Sieve dan Generalized Number Field Sieve merupakan algoritma faktorisasi bilangan bulat yang dapat menyerang RSA. Untuk mengatasi hal ini, maka dipilih nilai n yang besar. Nilai n besar membutuhkan sumber daya yang besar juga, maka dari itu diperlukan RSA-CRT untuk mengefisiensikan kinerja RSA.

Tujuan

Tujuan dari penelitian ini adalah:

1. Mengimplementasikan skema enkripsi dan dekripsi RSA dan RSA-CRT.

2. Menganalisis tingkat keamanan serta waktu yang dibutuhkan untuk proses enkripsi dan dekripsi.

Ruang Lingkup

Penelitian ini menggunakan RSA sebagai algoritma enkripsi dan dekripsi pesan dan penambahan CRT pada RSA-CRT. Modulus n yang digunakan sepanjang 1024 bit.

Penelitian dititikberatkan pada analisis algoritma dan kinerja algoritma RSA dan RSA-CRT yang meliputi analisis keamanan melalui telaah pustaka dan analisis uji running time enkripsi dan dekripsi. Data yang digunakan dalam percobaan adalah file teks (.txt) dengan ukuran yang bervariasi dari 1764 byte sampai dengan 21168 byte.

TINJAUAN PUSTAKA

Kriptografi

Kriptografi adalah studi teknik matematik yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996).

Kriptografi dapat memenuhi kebutuhan umum suatu transaksi yaitu:

1. Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi (penyandian).

2. Keutuhan (integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu arah.

3. Jaminan atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan transaksi dilakukan dengan menggunakan password atau sertifikat dijital. Sedangkan keautentikan data transaksi dapat dilakukan dengan tanda tangan dijital.

4. Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal ( non-repudiation) dengan memanfaatkan tanda tangan digital dan sertifikat dijital.

Kriptanalisis

Kriptanalisis adalah suatu ilmu dan seni membuka (breaking) ciphertext. Orang yang melakukannya disebut kriptanalis (Stallings 2003).

Kriptosistem

Kriptosistem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsisan tidak perlu identik, tergantung pada sistem yang digunakan (Stallings 2003).

PENDAHULUAN

Latar Belakang

Dalam era globalisasi sekarang ini, keamanan merupakan aspek yang sangat penting dalam transaksi informasi. Informasi yang dipertukarkan tidak semuanya terbuka bagi setiap orang. Informasi tersebut terkadang hanya ditujukan bagi kalangan tertentu saja dan dijaga kerahasiaanya dari orang lain. Teknik mengamankan informasi tersebut erat kaitannya dengan kriptografi.

Kriptografi adalah studi teknik matematik yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996). Dalam kriptografi, ada dua proses yang sangat penting, yaitu enkripsi dan dekripsi. Enkripsi merupakan proses mengubah pesan asli (plaintext) menjadi pesan yang dikodekan (ciphertext). Sedangkan dekripsi adalah proses mendapatkan plaintext dari ciphertext. Beberapa algoritma yang digunakan untuk enkripsi dan dekripsi pesan, misalnya Data Encryption Standard (DES), Triple-DES, Advanced Encryption Standard (AES), Blowfish, 3DES, RC5, RSA, dan lain sebagainya.

RSA adalah sebuah algoritma pada enkripsi kunci publik yang dikembangkan oleh Rivest-Shamir-Adleman. Algoritma ini menggunakan kunci yang berbeda untuk enkripsi dan dekripsi. Keamanan metode ini terletak pada kesulitan untuk memfaktorkan modulus n yang sangat besar, tetapi kelebihan ini mengakibatkan lambatnya waktu untuk menyelesaikan proses. Sedangkan RSA-CRT adalah RSA yang dimodifikasi dengan menggunakan CRT yang bertujuan untuk mempercepat proses dekripsi.

Quadratic Sieve dan Generalized Number Field Sieve merupakan algoritma faktorisasi bilangan bulat yang dapat menyerang RSA. Untuk mengatasi hal ini, maka dipilih nilai n yang besar. Nilai n besar membutuhkan sumber daya yang besar juga, maka dari itu diperlukan RSA-CRT untuk mengefisiensikan kinerja RSA.

Tujuan

Tujuan dari penelitian ini adalah:

1. Mengimplementasikan skema enkripsi dan dekripsi RSA dan RSA-CRT.

2. Menganalisis tingkat keamanan serta waktu yang dibutuhkan untuk proses enkripsi dan dekripsi.

Ruang Lingkup

Penelitian ini menggunakan RSA sebagai algoritma enkripsi dan dekripsi pesan dan penambahan CRT pada RSA-CRT. Modulus n yang digunakan sepanjang 1024 bit.

Penelitian dititikberatkan pada analisis algoritma dan kinerja algoritma RSA dan RSA-CRT yang meliputi analisis keamanan melalui telaah pustaka dan analisis uji running time enkripsi dan dekripsi. Data yang digunakan dalam percobaan adalah file teks (.txt) dengan ukuran yang bervariasi dari 1764 byte sampai dengan 21168 byte.

TINJAUAN PUSTAKA

Kriptografi

Kriptografi adalah studi teknik matematik yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi asal data (Menezes et al. 1996).

Kriptografi dapat memenuhi kebutuhan umum suatu transaksi yaitu:

1. Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi (penyandian).

2. Keutuhan (integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu arah.

3. Jaminan atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan transaksi dilakukan dengan menggunakan password atau sertifikat dijital. Sedangkan keautentikan data transaksi dapat dilakukan dengan tanda tangan dijital.

4. Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal ( non-repudiation) dengan memanfaatkan tanda tangan digital dan sertifikat dijital.

Kriptanalisis

Kriptanalisis adalah suatu ilmu dan seni membuka (breaking) ciphertext. Orang yang melakukannya disebut kriptanalis (Stallings 2003).

Kriptosistem

Kriptosistem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsisan tidak perlu identik, tergantung pada sistem yang digunakan (Stallings 2003).

Fungsi Satu Arah Pintu Jebakan

Fungsi satu arah pintu jebakan adalah fungsi satu arah f : A  B yang apabila diberikan informasi ekstra, maka perhitungan mencari nilai x  A, diketahui y  B sehingga y = f(x), menjadi mudah (Guritman 2003).

Enkripsi Kunci Publik

Pada enkripsi kunci publik, satu kunci digunakan untuk enkripsi dan satu kunci digunakan untuk dekripsi. Kunci enkripsi disediakan untuk umum, sedangkan kunci dekripsi harus dijaga kerahasiannya. Pengirim dan penerima pesan harus mempunyai satu dari pasangan kunci yang cocok. Algoritma ini mempunyai karakteristik yang penting yaitu secara perhitungan tidak layak menentukan kunci dekripsi dari kunci enkripsi (Stallings 2003).

Berikut ini adalah hal-hal yang dibutuhkan supaya keamanan enkripsi kunci publik tetap terjaga.

1. Salah satu kunci harus dijaga kerahasiannya.

2. Pesan tidak dapat di-dechipher jika tidak ada informasi ekstra.

3. Kunci yang lain tidak bisa ditentukan walaupun dilengkapi dengan pengetahuan mengenai algoritma, salah satu kunci, dan contoh-contoh dari ciphertext.

Misalkan {Ee/e  K} adalah himpunan semua transformasi enkripsi dan {Dd/d  K} adalah himpunan semua transformasi dekripsi yang terkait, dimana K adalah ruang kunci. Pasangan transfromasi (Ee, Dd) mempunyai sifat bahwa diketahui Ee dan sembarang c  C, secara perhitungan tidak layak dapat menentukan m  M sehingga Ee(m) = c. Diasumsikan bahwa transformasi enkripsi Ee adalah fungsi satu arah pintu jebakan, sehingga kunci dekripsi d dapat dihitung dari e yang ditambahkan informasi ekstra.

Gambar 1 Teknik enkripsi menggunakan kunci publik.

Dalam penggunaan model enkripsi ini, kunci yang digunakan berbeda untuk enkripsi dan dekripsi. Digambarkan pada Gambar 1, pembangkitan kunci akan menghasilkan dua buah kunci, yaitu kunci enkripsi dan kunci dekripsi. Kunci enkripsi dapat diketahui oleh umum, sedangkan kunci dekripsi dijaga kerahasiannya.

RSA (Rivest-Shamir-Adleman)

RSA adalah sebuah algoritma pada enkripsi kunci publik yang dikembangkan oleh Rivest-Shamir-Adleman. Algoritma ini menggunakan kunci publik untuk enkripsi dan kunci pribadi untuk dekripsi. Keamanan metode ini terletak pada kesulitan untuk memfaktorkan modulus n yang sangat besar, tetapi kelebihan ini mengakibatkan lambatnya waktu untuk menyelesaikan proses. Algoritma ini memberikan tujuan kerahasiaan dan penandaan dijital. Keamanan bertumpu kepada kompleksitas problem faktorisasi bilangan bulat. Tiga tahapan dari algoritma RSA adalah pembangkitan kunci, enkripsi, dan dekripsi. Enkripsi adalah proses mengubah pesan asli (plaintext) menjadi pesan yang dikodekan (ciphertext), sedangkan dekripsi adalah proses mendapatkan plaintext dari ciphertext (Stallings 2003).

Pembangkitan kuncinya adalah sebagai berikut.

1. Pilih dua bilangan prima, p dan q secara acak dan terpisah untuk setiap p dan q. Hitung n = p x q.

2. Hitung (n) = (p-1) (q-1).

3. Pilih bilangan bulat antara satu dan (1<e<) yang juga merupakan coprime dari . Coprime yang dimaksud adalah bilangan terbesar yang dapat membagi e dan untuk menghasilkan nilai 1 (pembagi ini dinyatakan dengan gcd (greatest common divisor).

4. Hitung d, dimana de-1 mod (n). Enkripsi pada RSA adalah sebagai berikut. 1. Plaintext : M < n.

2. Ciphertext : C = Me (mod n).

Dekripsi pada RSA adalah sebagai berikut. 1. Ciphertext : C.

2. Plaintext : M = Cd (mod n). Algoritma Euclid

Algoritma Euclid merupakan salah satu teknik dalam teori bilangan yang berfungsi untuk menentukan gcd dari dua bilangan bulat positif (Stallings 2003). Jika a, b  +

dengan algoritma pembagian berlaku langkah-langkah berikut ini.

Langkah ke-1 a = q1b + r1 0< r1<b Langkah ke-2 b = q2 r1 + r2 0<r2< r1 Langkah ke-3 r1 = q3 r2 + r3 0<r1< r2 . . . . . . . . . Langkah ke(i+2) ri= qi+2ri+1+ri+2 0<ri+2< ri+1 . . . . . . . . . Langkah ke-k rk-2 = qk rk-1+rk 0<rk <rk-1 Langkah ke-(k+2) rk-1 = qk+1rk

Maka rk, sisa tak nol terakhir, adalah gcd(a,b).

Notasi gcd (a, b) mempunyai arti gcd dari a dan b. Nilai gcd yang diperoleh harus positif, maka gcd (a, b) = gcd (a, -b) = gcd (-a, b) = gcd (-a, -b) = gcd (|a|, |b|) (Stallings 2003). Sifat-sifat lain dari pembagi bersama terbesar adalah:

1. gcd (a, 0) = |a| dan gcd (0,0) tak terdefinisikan,

2. c = gcd (a, b)  gcd (a/c, b/c) = 1. Bilangan bulat a dan b disebut prima relatif jika gcd (a, b) =1. Berdasarkan teorema, ada x, y

 Z sehingga xa + yb = 1. Teorema:

Untuk setiap a, b +

, ada tepat satu c + sehingga c = gcd (a, b). Selanjutnya ada x, y + sehingga c = xa + yb (c adalah suatu kombinasi linear dari a dan b).

Algoritma Euclid: EUCLID(a,b) (a) A  a ; B  b (b) if B = 0 return A = gcd (a, b) (c) R = A mod B (d) A  B (e) B  R (f) goto 2

Algoritma Euclid dapat diperluas sehingga tidak hanya menghasilkan gcd dari dua bilangan bulat a dan b, tetapi juga menghasilkan bilangan bulat x dan y yang memenuhi ax + by = d.

Prosedur berikut merupakan algoritma Euclid yang diperluas.

procedure gcd (a, b : bilangan bulat positif, positif, a  b) begin if b = 0 then begin d := a, x := 1, y := 0 return (d, x, y) end x2 := 1, x1 := 0, y2 := 0, y1 := 1 while b > 0 do begin

q:=a/b, r:=a–qb, x:=x2–qx1, y:= y2-qy1 a:=b, b:=r, x2:=x1, x1:=x, y2:=y1, y1:=y end d := a, x := x2, y := y2 return (d, x, y) end Relatif Prima

Dua buah bilangan a dan b disebut relatif prima apabila gcd (a, b) = 1. Sebagai contoh bilangan 7 dan 11 adalah relatif prima, karena pembagi 7 dan 1 adalah 7, sedangkan pembagi 11 adalah 1 dan 11, sehingga gcd (7, 11) = 1 (Cornel et al. 1990)

CRT (The Chinese Remainder Theorem) CRT adalah suatu pernyataan tentang kongruensi simultan. Misalkan n1, ..., nk adalah bilangan bulat positif yang setiap pasangnya adalah coprime (yang artinya gcd (ni, nj) = 1 untuk setiap ij). Untuk setiap bilangan bulat a1, ..., ak, selalu ada bilangan bulat x yang merupakan penyelesaian dari sistem kongruensi simultan (Wells 1992).

(a) x_solves_it=true; (b) for(i= 1; i <= k; i++) (c) if(x % n[i] != a[i] % n[i]) (d) x_solves_it=false;

Suatu penyelesaian x dapat ditemukan dengan cara sebagai berikut. Untuk setiap i, bilangan bulat ni dan n/ni adalah coprime, dan menggunakan ekstensi algoritma Euclid kita dapat menemukan bilangan bulat r dan s sehingga r ni + sn/ni = 1. Jika kita menentukan ei = sn/ni, maka untuk j≠ i sebagai berikut.

(a) for (i= 1; i <= k; i++)

(b) {r, s}= ExtendedEuclid( n[i], n / n[i] ); (c) e[i]= s * n / n[i];

(d) for(j= 1; j <= k; j++) (e) if (j != i)

(f)

assert(e[i]%n[i]==1&&e[i]%n[j]==0); Penyelesaian dari sistem kongruensi simultan ini adalah:

(b) x += a[i] * e[i];

RSA-CRT (Rivest-Shamir-Adleman-Chinese Remainder Theorem)

RSA-CRT adalah RSA yang dimodifikasi dengan penambahan CRT sehingga menghasilkan waktu dekripsi yang lebih cepat dibandingkan RSA tanpa CRT.

Pembangkitan kuncinya adalah sebagai berikut.

1. Pilih bilangan prima p dan q secara acak, sehingga gcd (p-1, q-1) = 2.

2. Hitung n = p x q.

3. Pilih 2 bilangan bulat dp dan dq secara acak, sehingga gcd (dp, p-1) = 1, gcd (dq, q-1) = 1dan dp == dq mod 2.

4. Cari suatu nilai d sehingga d == dp mod p-1 dan d == dq mod q-1.

5. Hitung e = d-1 (mod (n)).

Enkripsi pada RSA-CRT adalah sebagai berikut.

1.Plaintext : M < n.

2.Ciphertext : C = Me (mod n).

Dekripsi pada RSA-CRT adalah sebagai berikut.

1.Mp = Cdp mod p dan Mq = Cdq mod q. 2.v = (MqMp) p_inv_q mod q. 3.M = Mp + pv.

Dokumen terkait