Algoritma Elgamal

11
Algoritma Elgamal Manajemen Jaringan Komputer Topik: Pengamanan Jaringan dan Informasi Eko Prasetyo Teknik Informatika Universitas Muhammadiyah Gresik 2011 1

description

Algoritma Elgamal. Manajemen Jaringan Komputer Topik : Pengamanan Jaringan dan Informasi. Eko Prasetyo Teknik Informatika Universitas Muhammadiyah Gresik 2011. Pendahuluan. - PowerPoint PPT Presentation

Transcript of Algoritma Elgamal

Page 1: Algoritma Elgamal

1

Algoritma ElgamalManajemen Jaringan KomputerTopik: Pengamanan Jaringan dan Informasi

Eko PrasetyoTeknik Informatika

Universitas Muhammadiyah Gresik2011

Page 2: Algoritma Elgamal

2

PendahuluanDibuat oleh Taher Elgamal

(1985). Pertama kali dikemukakan di dalam makalah berjudul "A public key cryptosystem and a signature scheme based on discrete logarithms”

Page 3: Algoritma Elgamal

3

Nilai keamanan algoritmaKeamanan algoritma ini terletak pada sulitnya

menghitung logaritma diskrit.Masalah logaritma diskrit: Jika p adalah

bilangan prima dan g dan y adalah sembarang bilangan bulat. carilah x sedemikian sehingga

gx y (mod p)Properti algoritma ElGamal:

1. Bilangan prima, p (tidak rahasia)2. Bilangan acak, g ( g < p) (tidak rahasia)3. Bilangan acak, x (x < p) (rahasia, kc. privat)4. y = gx mod p (tidak rahasia, kc. publik)5. m (plainteks) (rahasia)6. a dan b (cipherteks) (tidak rahasia)

Page 4: Algoritma Elgamal

4

Algoritma ElgamalPembangkitan Kunci1. Pilih sembarang bilangan prima p

( p dapat di-share di antara anggota kelompok)

2. Pilih dua buah bilangan acak, g dan x,

dengan syarat g < p dan 1 x p – 23. Hitung y = gx mod p.

Hasil dari algoritma ini: Kunci publik: PU {p, g, y}

Enkripsi Kunci privat: PR {p,x} Dekripsi

Page 5: Algoritma Elgamal

5

Algoritma ElgamalAlgoritma Enkripsi

1. Susun plainteks menjadi blok-blok m1, m2, …, (nilai setiap blok di dalam selang [0, p – 1].

2. Pilih bilangan acak k, yang dalam hal ini 1 k p – 2.

3. Setiap blok m dienkripsi dengan rumusa = gk mod pb = ykm mod pPasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran

cipherteks dua kali ukuran plainteksnya.

Algoritma Dekripsi4. Gunakan kunci privat x

untuk menghitung (ax)– 1 = ap – 1 – x mod p

5. Hitung plainteks m dengan persamaan:m = b/ax mod p = b(ax)– 1 mod p

Page 6: Algoritma Elgamal

6

Contoh 1Pesan yang akan dikirim secara

rahasia adalah ‘KAMPUS’ menggunakan algoritma ELGAMAL

Nilai p yang digunakan adalah 131

Nilai g = 3, g < pNilai x = 5, 1 ≤ x ≤ p-2

Page 7: Algoritma Elgamal

7

Contoh algoritma ElGamalPembangkitan Kunci y = gx mod p = 35 mod 131 = 112 Kunci Publik: PU = {p, g, y} = {131, 3, 112} Enkripsi Kunci Privat: PR = {p, x} = {131, 5} DekripsiPesan: KAMPUS, nilai kode ASCII-nya 75 65 77 80 85 83Enkripsi pesan (lakukan satu persatu untuk setiap blok) Untuk m = 75 Generate k = 7, 1 ≤ k ≤ p-2 a = gk mod p = 37 mod 131 = 91 b = yk.m mod p = 1127.75 mod 131 = 105

Kar (m) ASCII K (acak) a = 3k mod 131 b = 112k.m mod 131 Cipher (a,b)K 75 7 91 105 (91,105)A 65 4 81 12 (81,12)M 77 5 112 4 (112,4)P 80 7 91 112 (91,112)U 85 3 27 66 (27,66)S 83 4 81 104 (81,104)

Page 8: Algoritma Elgamal

8

Contoh algoritma ElGamalProses Dekripsi Cipher (a,b) = (91,105) (ax)-1 = ap-1-x mod p = 91131-1-5 mod 131 = 91125 mod 131 = (915 mod 131)25 mod 131 = 8025 mod 131 = (805 mod 131)5 mod 131 = 605 mod 131 = 113 m = b * (ax)-1 mod p = 105 * 113 mod 131 = 11865 mod 131 = 75 ‘K’Cipher (a,b) (ax)-1 = ap-1-x mod 131 m = b*(ax)-1 mod 131 Kar(91,105) 113 75 K(81,12) 60 65 A(112,4) 52 77 M(91,112) 113 80 P(27,66) 39 85 U(81,104) 60 83 S

Page 9: Algoritma Elgamal

9

Contoh 2Pesan yang akan dikirim secara

rahasia adalah ‘KAMPUS’ menggunakan algoritma ELGAMAL

Nilai p yang digunakan adalah 131

Nilai g = 3, g < pNilai x = 7, 1 ≤ x ≤ p-2

Page 10: Algoritma Elgamal

10

Tabel ASCII

Page 11: Algoritma Elgamal

11

Tugas Pesan yang akan dikirim secara rahasia adalah <NAMA

LENGKAP ANDA> menggunakan algoritma ELGAMAL Nilai p yang digunakan adalah 131 Nilai g = 4, g < p Nilai x = <digit terakhir noreg anda + 1>, 1 ≤ x ≤ p-2

◦ Contoh: noreg 09621012, maka x = 2+1 = 3 Gunakan k = 5 untuk setiap blok pesan. Tugas anda:

1. Lakukan enkripsi pada nama anda2. Lakukan dekripsi kembali nama anda