1 / 14

Algoritma ElGamal

Algoritma ElGamal. Kelompok 8. Membangkitkan kunci Enkripsi Deskripsi. Pendahuluan. Keamanan algoritma ini terletak pada sulitnya menghitung logaritma diskrit .

rozene
Download Presentation

Algoritma ElGamal

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AlgoritmaElGamal Kelompok8

  2. Membangkitkankunci • Enkripsi • Deskripsi Rinaldi M/IF5054 Kriptografi

  3. Pendahuluan • Keamananalgoritmainiterletakpadasulitnyamenghitunglogaritmadiskrit. • Masalahlogaritmadiskrit: Jikapadalahbilangan prima dangdanyadalahsembarangbilanganbulat. Carilahxsedemikiansehinggagxy (mod p)

  4. PropertialgoritmaElGamal: 1. Bilangan prima, p (tidakrahasia) 2. Bilanganacak, g ( g < p) (tidakrahasia) • Bilanganacak, x (x < p) (rahasia, kc. privat) 4. y = gx mod p (tidakrahasia, kc. publik) 5. m (plainteks) (rahasia) 6. adanb (cipherteks) (tidakrahasia)

  5. Algoritma Pembangkitan Kunci • Pilih sembarang bilangan prima p ( p dapat di-share di antara anggota kelompok) • Pilih dua buah bilangan acak, g dan x, dengan syarat g < p dan 1 xp – 2 3. Hitung y = gx mod p. Hasil dari algoritma ini: - Kunci publik: tripel (y, g, p) - Kunci privat: pasangan (x, p)

  6. Algoritma Enkripsi • Susunplainteksmenjadiblok-blokm1, m2, …, (nilaisetiapblokdidalamselang [0, p – 1]. • Pilihbilanganacakk, yang dalamhalini 1 kp – 2. • Setiapblokm dienkripsidenganrumus a = gk mod p b = ykm mod p Pasanganadanbadalahcipherteksuntukblokpesanm. Jadi, ukurancipherteksdua kali ukuranplainteksnya.

  7. AlgoritmaDekripsi • Gunakankunciprivatx untukmenghitung(ax)– 1 = ap – 1 – x mod p • Hitungplainteksmdenganpersamaan: m = b/ax mod p = b(ax)– 1 mod p

  8. Contoh: • Pembangkitan kunci (Oleh Alice) Misal p = 2357, g = 2, dan x = 1751. Hitung: y = gx mod p = 21751 mod 2357 = 1185 Hasil: Kunci publik: (y = 1185, g = 2, p = 2357) Kunci privat: (x = 1751, p = 2357). (b) Enkripsi (Oleh Bob) Misal pesan m = 2035 (nilai m masih berada di dalam selang [0, 2357 – 1]). Bob memilih bilangan acak k = 1520 (nilai k masih berada di dalam selang [0, 2357 – 1]).

  9. Bob menghitung a = gk mod p = 21520 mod 2357 = 1430 b = ykm mod p = 11851520 2035 mod 2357 = 697 Jadi, cipherteks yang dihasilkan adalah (1430, 697). Bob mengirim cipherteks ini ke Alice. (c) Dekripsi (Oleh Alice) 1/ax = (ax)– 1 = a p – 1 – x mod p = 1430605 mod 2357 = 872 m = b/ax mod p = 697  872 mod 2357 = 2035

  10. AlgoritmaDesimal Biner • Misal :bilangan yang akandikonversikebineradalah x • ss=int(x);  set sisapembagianmula-mulanilai x • hasil=0;  set hasilbagimula-mula 0 • Jikahasil ≠ 1 lakukanlangkahselanjutnya hasil=ss/2; sisa=ss%2; larik[i]=sisa; ss=hasil; • Jikahasilsudahsamadengan 1 larik[i]=hasil;

  11. Repeated square-and-multiply algorithm for exponentiation in Zn • INPUT: a Є Zn, and integer 0 ≤ k < n whose binary representation is k. • OUTPUT: ak mod n. • Set b=1. If k = 0 then return(b). • Set A=a. • If k0 = 1 then set b=a. • For i from 1 to t do the following: Set A=A2 mod n. If ki = 1 then set b=A b mod n. • Return(b) .

  12. Alur Program • Input plaintext, p, g dan x • Ubah plain kebilangan ASCII • Bagi plain kebeberapablok (tiapbloksatukarakter) • Ubah x kebiner • Membuatkunciprivatdan public • Menginputkanbilanganacak k • Mengenkripsi • Mendeskripsi • Mengubahangkahasildeskripsidarikode ASCII kekarakter (jikabenarhasilnyasamadengan plaintext mula-mula)

  13. Sekian…

More Related