Algoritma Elgamal: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Syahrulbek12 (bicara | kontrib)
kTidak ada ringkasan suntingan
Syahrulbek12 (bicara | kontrib)
k suntingan kecil saja, untuk merapihkan teks agar rata.
Baris 3:
Algoritma Elgamal tidak dipatenkan. Tetapi, algoritma ini didasarkan pada algoritma Diffie – Hellman, sehingga hak paten algoritma Diffie – Hellman juga mencakup algoritma ElGamal. Karena hak paten algoritma Diffie – Hellman berakhir pada bulan April 1997, maka algoritma ElGamal dapat diimplementasikan untuk aplikasi komersil.
 
1. '''Pembentukan 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 = g<sup>x</sup> mod p
Dari persamaan tersebut y, g dan p merupakan kunci publik dan x adalah kunci rahasia.
 
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 = g<sup>x</sup> mod p
2. Proses Enkripsi
Proses enkripsi merupakan proses mengubah pesan asli (plaintext) menjadi pesan rahasia (ciphertext). Pada proses ini digunakan kunci publik (p, g, y).
Langkah-langkah dalam mengenkripsi pesan adalah sebagai berikut:
* Potong plaintext menjadi blok-blok m1, m2, …, nilai setiap blok di dalam selang [0, p – 1].
* Ubah nilai blok pesan ke dalam nilai ASCII.
* Pilih bilangan acak k, dengan syarat 1 ≤ k ≤ p – 2.
* Setiap blok m dienkripsi dengan rumus sebagai berikut.
gamma (γ) = gk mod p. (1)
delta (δ) = ykm mod p. (2)
* Susun ciphertext dengan urutan γ1,δ1, γ2,δ2,…,γn,δn.
Pasangan γ dan δ adalah cipherteks untuk blok pesan m. Hasil yang didapat dari proses enkripsi berupa pesan rahasia (ciphertext).
 
Dari persamaan tersebut y, g dan p merupakan kunci publik dan x adalah kunci rahasia.
3. Proses Dekripsi
 
Proses dekripsi merupakan proses mengubah pesanrahasia (ciphertext) menjadi pesan asli (plaintext). Padaproses ini digunakan kunci pribadi (x, p).
 
Langkah-langkah dalam mendekripsi pesan adalah sebagai berikut:
2. '''Proses Enkripsi'''
* Penentuan nilai gamma dan delta. Nilai gamma (γ) diperoleh dari ciphertext dengan urutan ganjil sedangkan delta (δ) dengan urutan genap.
 
* Hitung plaintext m dengan persamaan rumus berikut:
Proses enkripsi merupakan proses mengubah pesan asli (plaintext) menjadi pesan rahasia (ciphertext). Pada proses ini digunakan kunci publik (p, g, y). Langkah-langkah dalam mengenkripsi pesan adalah sebagai berikut:
m = δ. γ(p-1-x) mod p (3)
 
* Ubah nilai m yang didapat kedalam nilai ASCII.
* SusunPotong plaintext denganmenjadi urutanblok-blok m1, m2, …,mn nilai setiap blok di dalam selang [0, p – 1].
Ubah nilai blok *pesan ke dalam nilai ASCII.Pilih bilangan acak k, dengan syarat 1 ≤ k ≤ p – 2.
* Setiap blok m dienkripsi dengan rumus sebagai berikut.beriku:
 
gamma (γ) = gk mod p. (1)
 
delta (δ) = ykm mod p. (2)
 
Susun ciphertext dengan urutan γ1,δ1, γ2,δ2,…,γn,δn. Pasangan γ dan δ adalah cipherteks untuk blok pesan m. Hasil yang didapat dari proses enkripsi berupa pesan rahasia (ciphertext).
 
 
3. '''Proses Dekripsi'''
 
Proses dekripsi merupakan proses mengubah pesanrahasia (ciphertext) menjadi pesan asli (plaintext). Padaproses ini digunakan kunci pribadi (x, p).
 
Langkah-langkah dalam mengenkripsimendekripsi pesan adalah sebagai berikut:
 
* Penentuan nilai gamma dan delta. Nilai gamma (γ) diperoleh dari ciphertext dengan urutan ganjil sedangkan delta (δ) dengan urutan genap.
 
* Hitung plaintext m dengan persamaan rumus berikut:
 
m = δ. γ(p-1-x) mod p (3)
 
* Ubah nilai blokm pesanyang kedidapat dalamkedalam nilai ASCII.
 
* Susun ciphertextplaintext dengan urutan γ1m1,δ1, γ2,δ2m2,…,γn,δnmn.