Rabu, 11 Desember 2013

Pengertian Public Key Algorithm atau Asymmetric Algorithm



Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key). Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.
Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi sementara kunci privat (private key) digunakan sebagai kunci dekripsi.
Kelebihan :
ü  Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi (tetapi otentikasi knci public tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada system simetri.
ü  Pasangan kunci public/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.
ü  Dapat digunakan untuk mengamankan pengirman kunci simetri
ü  Beberapa algoritma kunci-publik dapat digunakan untuk memebri tanda tangan digital pada pesan.
Kelemahan :
ü  Enkripsi dan dekripsi data umumnya lebih lambat daripada system simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar.
ü  Ukuran cipherteks lebih besar dari plainteks (bisa dua sampai empat kali ukuran plainteks)
ü  Ukuran kunci relative lebih besar daripada ukuran kunci simetri
ü  Karena kunci public diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim
ü  Tidak ada algoritma kunci public yang terbukti aman (sama seperti blok cipher).

Beberapa contoh asymmetric algorithm:
1.              RSA (Rivest Shamir Adleman)
Merupakan algoritma enkripsi yang paling umum digunakan sebagai public key.  Merupakan algoritma pertama yang cocok tanda tangan digital dan yang paling canggih dalam public key.RSA masih digunakan dalam protokol e-commerce dalam mengamankan dan menggunakan kunci yang cukup panjang. 
Contoh Penerapan  :
Misalkan Sil mengirim pesan kepada z. Pesan (plainteks) yang akan dikirimkan oleh Alice adalah :
            m =  HARI INI
atau dalam system decimal (pengkodean ASCII) adalah :
            7265827332737873
Sil memecah m menjadi blok yang lebih kecil, misalnya m dipecah menjadi enam blok yang berukuran 3 digit.
            m1  =  726                               m4 = 273
            m2  =  582                               m5 = 787
            m3  =  733                               m6 = 003
Sil mengetahui kunci public Z adalah e = 79 dan n = 3337. Z dapat mengenkripsikan setiap blok plainteks sebagai berikut :
            C1 = 72679 mod 3337  = 215  
C2 = 58279 mod 3337  = 776
C3 = 73379 mod 3337  = 1743
C4 = 27379 mod 3337  = 933
C5 = 78779 mod 3337  = 1731
C6 = 00379 mod 3337  = 158

Jadi cipherteks yang dihasilkan adalah :
            C = 215  776   1743   933  1731   158
Dekripsi dilakukan dengan mengunakan kunci privat yang diberikan oleh Sil
            d =  1019
Blok-blok  cipherteks didekripsikan sebagai berikut :
m1 = 2151019 mod 3337  = 726           
m2 = 7761019 mod 3337  = 582
m3 = 17431019 mod 3337  = 733
m4 = 9331019 mod 3337  = 273
m5 = 17311019 mod 3337  = 787
m6 = 1581019 mod 3337  = 003
Plainteks dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula
            m = 7265827332737873
yang dalam system pengkodena ASCII adalah :
            m = HARI INI

2.              Diffie Hellman
Merupakan algoritma enkripsi public key yang pertama. Ditemukan pada tahun 1976. Menggunakan logaritma diskrit dalam bidang terbatas. Memungkinkan dua pengguna untuk pertukaran kunci rahasia melalu media yang tidak aman tanpa rahasia sebelumnya.

3.              Digital Signature Algorithim
DSA atau Algoritma tanda tangan digital dibuat oleh National Institute of Standards and Technology (NIST) pada tahun 1991. Pembangkitan kunci memiliki dua fase. Tahap pertama adalah pilihan parameter algoritma yang dapat dibagi antara pengguna yang berbeda dari sistem, sedangkan tahap kedua membagi komputer publik dengan private key untuk single user.

4.              ElGamal
Merupakan algoritma enkripsi public key yang disarkan pada  Diffie Hellman. Enkripsi ElGamal terdiri dari tiga komponen: generator kunci, algoritma enkripsi, dan algoritma dekripsi. Enkripsi ElGamal adalah probabilistik, yang berarti bahwa plaintext tunggal dapat dienkripsi untuk ciphertexts dengan banyak kemungkinan

5.      ECDSA
Elliptic Curve Digital Signature Algorithm (ECDSA) adalah salah satu algoritma yang diterapkan dalam pembuatan tanda tangan digital yang menggunakan analogi kurva elips. Tidak seperti logaritma diskrit biasa dan masalah faktorisasi integer, masalah logaritma diskrit kurva elips tidak mengenal algoritma perkalian fungsi sub-eksponensial. Karenanya, kekuatan per bit kunci algoritma yang menggunakan kurva elips lebih kuat secara substansial daripada algoritma biasa.