28
October
2011

Algoritma Kriptografi Elgamal (Part 2 of 2)

Seperti yang telah dijelaskan pada posting sebelumnya, Algoritma Kriptografi ElGamal terdiri dari tiga proses, yaitu proses pembangkitan kunci, proses enkripsi dan proses dekripsi. Proses pembangkitan kunci dilakukan untuk memperoleh kunci publik yang akan digunakan pada proses enkripsi, hal ini tidak berlaku pada proses dekripsi yang dapat dilakukan tanpa proses pembangkitan kunci.

Proses Pembangkitan Kunci

Skema ElGamal memerlukan sepasang kunci yang dibangkitkan dengan memilih sebuah bilangan prima p dan dua buah bilangan random g dan x. Nilai g dan x lebih kecil dari p yang memenuhi persamaan :

y = gx mod p

Dari persamaan tersebut y, g dan p merupakan kunci publik dan x adalah kunci rahasia. Algoritma pembangkitan kunci pada ElGamal sudah dijelaskan pada posting sebelumnya (baca: Algoritma Kriptografi Elgamal). Untuk memudahkan, akan diberikan contoh untuk pemberi dan penerima pesan.

Contoh Pembangkitan Kunci:

Pemberi akan mengirimkan pesan kepada penerima secara rahasia. Oleh karena itu, penerima pesan harus membuat kunci publik dan kunci rahasia. Kemudian penerima membangkitkan pasangan kuncinya. Penerima memilih p = 2903, g = 5, dan x = 1751. Kemudian menghitung :

y = gx mod p = 51751 mod 2903 = 771

Diperoleh kunci publik ( y , g , p ) = ( 771, 5, 2903 ) dan kunci privatnya x = 1751. Kunci publik ( 771, 5, 2903 ) inilah yang diberikan penerima kepada pemberi pesan. Kunci rahasia tetap dipegang oleh penerima dan tidak boleh ada yang mengetahui selain dirinya sendiri.

Proses Enkripsi Pesan

Enkripsi adalah proses menyandikan plainteks menjadi cipherteks. Pada algoritma kriptografi ElGamal, setiap orang mengenkripsikan pesan untuk orang tertentu menggunakan nilai ( y , g , p ), dapat dilihat pada algoritma 2.2, tetapi hanya penerima pesan tersebut yang dapat mendekripsikan pesan tersebut, karena penerima pesan adalah orang satu-satunya yang mengetahui nilai x.

Proses enkripsi pada algoritma ElGamal dilakukan dengan menghitung :

a = gk mod p

dan,

b = yk m mod p

dengan m adalah plainteks dalam kode ASCII dan k anggota {0,1,…, p-2} bilangan acak, diperoleh Cipherteks (a,b) . Bilangan acak k ditentukan oleh pengirim dan harus dirahasiakan, jadi hanya pengirim saja yang mengetahuinya, tetapi nilai k hanya digunakan saat melakukan enkripsi saja dan tidak perlu disimpan.

Contoh proses Enkripsi :

Dari Contoh sebelumnya, pemberi pesan memperoleh kunci publik ( y , g , p ) = ( 771, 5, 2903 ). Suatu saat, pemberi akan mengirimkan pesan rahasia kepada penerima yang berisi ”Enkripsi Elgamal”. Karena sifat pesan yang rahasia, maka pesan tersebut harus dienkripsi, dan pemberi pesan akan mengenkripsi menggunakan kunci publik ( 771, 5, 2903 ) yang telah diberikan oleh penerima sebelumnya. Selanjutnya, pemberi pesan melakukan proses berikut. Pertama, pesan dipotong-potong menjadi blok-blok karakter dan setiap karakter dikonversi ke dalam kode ASCII.

Tabel 1. Konversi blok karakter ke dalam kode ASCII

Berikutnya adalah menentukan bilangan acak ki anggota {0,1,…,2901}, i = 1,2,…,16. Kemudian dihitung ai = 5ki mod 2903 dan bi = 771ki.mi mod 2903,  i = 1,2,…,16.

Tabel 2 Proses Enkripsi Plainteks

Berdasarkan Tabel 2, diperoleh cipherteks (ai,bi) , i = 1,2,…,16, sebagai berikut.

Selanjutnya pemberi pesan mengirimkan cipherteks ini kepada penerima pesan.

Karena pemilihan bilangan k yang acak mengakibatkan plainteks yang sama dapat dienkripsi menjadi cipherteks yang berbeda-beda.

Proses Dekripsi Pesan

Dekripsi merupakan proses untuk mengembalikan cipherteks ke plainteks semula. Pada algoritma ElGamal, digunakan kunci dekripsi yang berbeda dari kunci enkripsi-nya. Lihat algoritma pada posting sebelumnya (baca: Algoritma Kriptografi Elgamal).

Berdasarkan Contoh-contoh sebelumnya, pemberi pesan telah mengirimkan cipherteks kepada penerima pesan. Agar penerima dapat membaca pesan tersebut, dia kemudian menggunakan p = 2903 dan kunci rahasia x = 1751 yang telah disimpan sebelumnya. Selanjutnya, penerima mengembalikan pesan asli yang dikirimkan pemberi agar bisa dibaca dengan melakukan perhitungan sebagai berikut.

Tabel 3 Proses Dekripsi Cipherteks

Berdasarkan perhitungan pada Tabel 3, akhirnya penerima mengetahui pesan rahasia yang dikirimkan oleh pemberi, yaitu ”Enkripsi ElGamal”.

download artikel ini dalam versi PDF

download materi elgamal

Filesize : 617.01 KB

sip

selesai sudah, mudah-mudahan dapat dipahami,,,

CMIIW.

ads

4 Responses here...

  1. iwan says:

    boleh minta source nya gan? kirim ke iwan@ekurniawan.net.
    trims

  2. yuni says:

    kk, mau tanya cara menghitung 5^2081 mod 2983 gimana ya ?
    tolong bantuan nya kk..
    terima kasih..

  3. yuni says:

    kk, maaf mau tanya.. kenapa pada algoritma elgamal, p > kode ascii nya yaa kk?

  4. yeni says:

    boleh minta source code nya mbak ?

Leave a Reply

[+] monkey emoticons

Latest Posts

×

Categories

×

Recent Comments

×

Powered by Wordpress with an original design by Coralitus