Selasa, 29 Maret 2011

KRIPTOGRAFI

Kriptografi Asimetris

RSA merupakan algoritma kriptografi asimetris. Ditemukan pertama kali pada tahun 1977
oleh Ron Rivest, Adi Shamir, dan Leonard Adleman. Nama RSA sendiri diambil dari inisial nama
depan ketiga penemunya tersebut. Sebagai algoritma kunci publik, RSA mempunyai dua kunci,
yaitu kunci publik dan kunci pribadi. Kunci publik boleh diketahui oleh siapa saja, dan digunakan
untuk proses enkripsi. Sedangkan kunci pribadi hanya pihak - pihak tertentu saja yang boleh
mengetahuinya, dan digunakan untuk proses dekripsi. Algoritma RSA masih digunakan hingga
pada saat ini seperti yang diuraikan M. Zaki Riyanto dan Ardhi Ardhian:
Keamanan sandi RSA terletak pada sulitnya memfaktorkan bilangan yang besar. Sampai
saat ini RSA masih dipercaya dan digunakan secara luas di internet. (Kriptografi Kunci Publik:
Sandi RSA, 2008).

Gambar 1 Skema Kunci Asimetris
Skema algoritma kunci publik Sandi RSA terdiri dari tiga proses, yaitu proses
pembentukan kunci, proses enkripsi dan proses dekripsi. Sebelumnya diberikan terlebih dahulu
beberapa konsep perhitungan matematis yang digunakan RSA (RSA and Public Key
Criptography, 2003, hlm 61).
Algoritma Pembentukan Kunci:
1. Tentukan p dan q bernilai dua bilangan Prima besar, acak dan dirahasiakan.
p ≠ q, p dan q memiliki ukuran sama.
2. Hitung n = pq
Dan hitung ı(n) = (p-1)(q-1).
Bilangan integer n disebut (RSA) modulus.
3. Tentukan e bilangan Prima acak, yang memiliki syarat:
1 < e < ı(n) GCD(e, ı(n)) = 1, disebut e relatif prima terhadap ı(n), Bilangan integer e disebut (RSA) enciphering exponent. 4. Memakai algoritma Euclid yang diperluas (Extended Eucledian Algorithm). Menghitung bilangan khusus d, syarat 1 < d < ı(n) d ≡ e-1 mod ı(n) ed ≡ 1 (mod ı(n)) ed ≡ 1 + k.ı(n) untuk nilai k integer. Bilangan integer d disebut (RSA) deciphering exponent. 5. Nilai (n,e) adalah nilai yang boleh dipublikasi. Nilai d, p, q, ı(n) adalah nilai yang harus dirahasiakan. Pasangan (n,e) merupakan kunci publik. Pasangan (n,d) merupakan kunci rahasia. Keterangan · Fungsi ı(n) Phi-Euler merupakan fungsi terhadap bilangan bulat positif n yang meyatakan banyaknya elemen Zn yang mempunyai invers terhadap operasi pergandaan. Zn belum tentu merupakan grup terhadap operasi pergandaan, dengan kata lain, ı(n) adalah banyaknya elemen {x, 0 ≤ x < n | gcd(x,n) = 1} · Algoritma Euclid digunakan untuk mencari nilai GCD (Greatest Common Divisor) atau sering disebut FPB (Pembagi Persekutuan terbesar) dari dua bilangan bulat. Algoritma ini didasarkan pada pernyataan gcd (r0, r1) = gcd(r1, r2) ... gcd(rn-1, rn) = gcd(rn, 0) = rn Contoh: Akan dihitung gcd(40,24) Jawab: 40 = 1.24 + 16 40 mod 24 = 16 24 = 1.16 + 8 24 mod16 = 8 16 = 2.8 16 mod 8 = 0, stop Jadi gcd(40,24) = 8. Dua buah bilangan bulat a dan b akan dapat dikatakan relatif prima jika gcd(a,b) = 1. · Enkripsi: c = me mod n · Dekripsi: m = cd mod n Contoh enkripsi: Untuk mengenkripsi, dilakukan langkah – langkah sebagai berikut ini: - Ubah tiap karakter teks terang menjadi bilangan bulat 01 - 26 (A = 01, B = 02, … , Z = 26), dan bagi teks menjadi beberapa blok b yang besar tiap bloknya lebih kecil dari n. - Untuk tiap blok, hitung c = be (mod n). c menjadi blok teks sandi yang dikirimkan. Untuk mendekripkan kembali teks sandi, dilakukan langkah-langkah sebagai berikut : 9 JURNAL INFORMATIKA, VOLUME 5 NOMOR 1, APRIL 2009 - Hitung bilangan bulat d sedemikian hingga de = 1 (mod (p-1)(q-1)). Pasangan (n, d) merupakan kunci rahasia. - Untuk setiap blok sandi c yang diterima, hitung b = cd (mod n). Bagi pembuat sandi, dengan memilih 2 buah bilangan prima p dan q, tidaklah sulit untuk menghitung kunci publik n = pq, serta mendekripkannya kembali. Contoh Perhitungan: Andaikan B memilih p = 13 dan q = 17. Maka n = pq = 221. Berikutnya, misalkan secara acak B memilih e = 5 yang merupakan bilangan yang relatif prima dengan (p-1)(q-1) = 192. Maka kunci publik (n, e) = (221, 5). A hendak mengirim teks “TAMAN”, maka ia harus mengubahnya menjadi barisan angka - angka sebagai (A = 01, B = 02 , …): 20 01 13 01 14. Misalkan A mengambil blok dengan panjang 3 digit, maka ia memiliki 4 blok untuk disandikan, masing - masing adalah 200, 113, 011, 4 200 disandikan menjadi (200)5 (mod 221) = 200 113 disandikan menjadi (113)5 (mod 221) = 146 011 disandikan menjadi (11)5 (mod 221) = 163 4 disandikan menjadi (4)5 (mod 221) = 140 B yang menerima pesan sandi dari A harus mencari kunci rahasia yang didapat dari relasi ed = 5d = 1 (mod192). Didapat d = 77. Maka : didapat pesan asli 200 113 011 4 yang jika dikelompokkan dalam 2 digit menjadi 20 01 13 01 14 atau teks “TAMAN” seperti pesan semula. blok sandi 200 didekrip menjadi (200)77 (mod 221) = 200 blok sandi 146 didekrip menjadi (146)77 (mod 221) = 113 blok sandi 163 didekrip menjadi (163)77 (mod 221) = 11 = 011 (karena 3 digit) blok sandi 140 didekrip menjadi (140)77 (mod 221) = 4

 

Kriptografi Simetris


Algoritma Simetris (Algoritma Sandi Kunci Rahasia)

Algoritma simetris, sering juga disebut dengan algoritma kunci rahasia atau sandi kunci rahasia. Adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Algoritma ini mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka saling berkomunikasi. Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan.

Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan adalah orang yang dapat dipercaya. Masalahnya akan menjadi rumit apabila komunikasi dilakukan secara bersama-sama oleh sebanyak n pengguna dan setiap dua pihak yang melakukan pertukaran kunci, maka akan terdapat sebanyak (n-1)/2 kunci rahasia yang harus dipertukarkan secara aman.

Contoh dari algoritma kriptografi simetris adalah Cipher Permutasi, Cipher Substitusi, Cipher Hill, OTP, RC6, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi, DES dan IDEA.

Hybrid (encoding dua tahap)
Selama pengguna hanya menyimpan data secara local di hard disk dan tidak mengirimkannya, enkripsi simetris sudah cukup aman. Keunggulan metode ini adalah cara kerjanya yang sangat cepat karena menggunakan algoritma matematis yang tidak rumit dan panjang kunci yang lebih pendek. TrueCrypt, misalnya dapat mengenkripsi sekitar 175 MB/detik.
Metode simetris kurang tepat untuk mentransfer data. Karena untuk dapat menggunakan datanya mitra komunikasi harus bertukar kunci yang dibuat secara acak untuk setiap sesi (Session Key), sehingga apabila jika seorang hacker menemukan kunci ini maka dengan mudah ia dapat men-decrypt komunikasi tersebut.
Metode asimetris mengatasi masalah tersebut dengan membuat sepasang kunci. Pengirim mengenkripsi data dengan sebuah Public Key yang didapat dari mitra komunikasinya. Hanya Private Key yang memiliki penerima dapat men-decrypt data. Dengan demikian, kunci untuk decryption tidak jatuh ke orang lain. Sebaliknya publikasi Public Key tidak menjadi masalah karena tidak dapat men-decrypt data. Private Key juga tidak dapat diturunkan dari Public Key, seperti halnya sebuah gembok yang digunakan untuk mengunci gerbang, tetapi tidak dapat membukanya kembali.
Metode asimetris juga memiliki kelemahan. Karena lebih rumit, metode ini bekerja 1000 kali lebih lambat dibandingkan metode simetris, sehingga tidak tepat untuk data dalam jumlah besar. Dalam praktiknya, misalnya pada transfer data di Internet, lalu lintas e-mail atau online banking, digunakan metode hibrida. Metode Hibrida mengenkripsi data sebenarnya secara simetris, tetapi kuncinya secara asimetris. Metode semacam ini mengkombinasikan pertukaran kunci yang aman dan data encryption yang cepat.

Metode hibrida terdiri atas enkripsi simetris dengan satu kunci (Session Key) dan enkripsi asimetris dengan sepasang kunci (Public/Private Key).
Langkah 1 : Pengirim mengenkripsi teks dengan Session Key.
Langkah 2 : Mengenkripsi Session Key dengan Public Key.
Langkah 3 : Penerima men-decrypt Session Key dengan Private Key.
Langkah 4 : Men-decrypt teks dengan Session Key.


Tidak ada komentar:

Posting Komentar