Senin, 25 Oktober 2010

Public Key

Kriptografi adalah ilmu/seni penyadian pesan ke dalam bentuk yang tidak dipahami oleh orang lain. Kriptografi kunci-publik menggunakan sepasang kunci, satu kunci untuk enkripsi dan satu kunci untuk dekripsi [MUN06]. Kunci untuk enkripsi bersifat publik (tidak rahasia) sehingga dinamakan kunci publik (public key), sedangkan kunci dekripsi bersifat rahasia sehingga dinamakan kunci rahasia (private key atau secret key).

1. RSA
Salah satu algoritma kriptografi kunci-nirsimetri (kunci-publik) yang paling terkenal adalah RSA (Rivest, Shamir, Adleman). Algoritma ini dibuat oleh Ron Rivest, Adi Shamir, dan Leonard Adleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktorfaktor prima. Pemfaktoran ini dilakukan untuk memperoleh kunci rahasia. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma maka selama itu pula keamanan algoritma RSA tetap terjamin [MUN06].

Untuk membangkitkan pasangan kunci (kunci publik dan kunci rahasia), beberapa langkah yang harus dilakukan antara lain:
1. Pilih dua bilangan prima sembarang p dan q
2. Hitung n = p.q. Sebaiknya p ≠ q maka n = p2 sehingga p dapat diperoleh dengan menarik akar kuadrat dari n
3. Hitung φ(n) = (p - 1).(q - 1)
4. Pilih kunci publik e yang relatif prima terhadap φ(n)
5. Bangkitkan kunci rahasia d dengan persamaan:
e.d ≡ 1 (mod φ(n)) ..............................................(1)
Perhatikan bahwa persamaan diatas ekivalen dengan e.d ≡ 1 + k φ(n), sehingga d dapat dihitung dengan:
d = (1 + k φ(n))/e .............................................(2)
Disini akan didapat dua hasil perhitungan yaitu pasangan n dan d sebagai kunci rahasia (private) dan pasangan n dan e sebagai kunci publik yang sifatnya tidak rahasia [MUN06].

Untuk mengenkripsi pesan (plainteks) menjadi cipherteks, langkah-langkah yang dilakukan adalah:
1. Ambil kunci penerima pesan e dan modulus n 
2. Nyatakan plainteks m menjadi blok-blok m1, m2, ... sedemikian sehingga setiap blok merepresentasikan nilai dalam selang [0,n-1]
3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus
E m c me n
e i i i ( ) = ≡ mod ........................ ..............(3)
Sedangkan untuk dekripsi digunakan rumus:
D c m cd n
d i i i ( ) = = mod ..................................... (4)
Kekuatan algoritma RSA ini terletak pada sulitnya memfaktorkan suatu bilangan yang besar menjadi faktor primanya. Sehingga semakin panjang pasangan kunci yang digunakan (dalam artian semakin besar bilangan kuncinya) maka algoritma RSA akan semakin aman.

2. Protokol Diffie-Hellman
Protokol merupakan serangkaian aturan yang terurut yang harus dilakukan untuk tercapainya tujuan. Seperti yang telah dijelaskan pada bagian sebelumnya bahwa Protokol Diffie-Hellman diperkenalkan oleh Whitfield Diffie dan Martin E. Hellman. Protokol Diffie-Hellman ini digunakan untuk mempertukarkan kunci antara pihak yang saling berkomunikasi. Protokol ini bekerja pada saluran komunikasi publik yang tidak aman, namun dapat menghasilkan kunci (shared secret key) secara aman.
Secara matematis Protokol Diffie-Hellman
digambarkan sebagai berikut [MUN06] :
 
Parameter Umum
Misalkan Alice dan Bob akan mempertukarkan kunci melalui saluran publik. Maka untuk dapat menggunakan protokol ini keduanya akan memilih suatu bilangan dasar n dan g sedemikian sehingga g < n. Nilai n dan g tidak perlu rahasia. Bahkan, Alice dapat membicarakannya melalui saluran yang tidakaman sekalipun.

Algoritma Diffie-Hellman
1. Alice membangkitkan bilangan bulat acak yang
besar x dan mengirim hasil perhitungan berikut
kepada Bob:
X = gx mod n ......................................................(5)
2. Bob membangkitan bilangan bulat acak besar y dan mengirimkan hasil perhitungan berikut kepada
Alice:
Y = gy mod n.......................................................(6)
3. Alice menghitung
K = Yx mod n..................................................... (7)
4. Bob menghitung
K’ = Xy mod n.................................................... (8)
Jika perhitungan dilakukan dengan benar, maka
K = K’
yang berarti kunci simetri sudah berhasil diterima oleh kedua belah pihak. Baik K dan K’ sama dengan gxy mod n. Carol yang menyadap pembicaraan antara Alice dan Bob tidak dapat menghitung K. Ia hanya memiliki informasi n, g, X dan Y, tetapi ia tidak mempunyai informasi nilai x dan y. Untuk mengetahui nilai x dan y, ia perlu melakukan perhitungan logaritma diskrit, yang mana sangat sulit dikerjakan.

Tidak ada komentar:

Posting Komentar