BAB II TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. 1.1 Latar Belakang

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

METODE ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN ALGORITMA ELGAMAL

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

BAB II LANDASAN TEORI

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

Bab 2: Kriptografi. Landasan Matematika. Fungsi

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

BAB II TINJAUAN PUSTAKA

RANCANGAN KRIPTOGRAFI HYBRID KOMBINASI METODE VIGENERE CIPHER DAN ELGAMAL PADA PENGAMANAN PESAN RAHASIA

BAB 3 KRIPTOGRAFI RSA

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB III ANALISIS DAN PERANCANGAN

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda

BAB 2 LANDASAN TEORI Keamanan Informasi

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS. Pada tahap analisis, dilakukan penguraian terhadap topik penelitian untuk

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN Latar belakang

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

BAB I PENDAHULUAN. Pengiriman informasi yang dilakukan dengan mengirimkan data tanpa melakukan

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Perbandingan Penggunaan Bilangan Prima Aman Dan Tidak Aman Pada Proses Pembentukan Kunci Algoritma Elgamal

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Algoritma RSA dan ElGamal

BAB II TINJAUAN PUSTAKA

BAB Kriptografi

BAB III ANALISIS DAN DESAIN SISTEM

KOMBINASI ALGORITMA AFFINE CIPHER DAN ELGAMAL UNTUK PENGAMANAN PESAN RAHASIA SKRIPSI

BAB 2 LANDASAN TEORI

BAB III METODOLOGI PENELITIAN. ditemukan oleh Rivest, Shamir dan Adleman (RSA) pada tahun

ANALISIS KEMAMPUAN ALGORITMA ELGAMAL UNTUK KRIPTOGRAFI CITRA

BAB 2 TINJAUAN PUSTAKA

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

BAB I PENDAHULUAN. dengan cepat mengirim informasi kepada pihak lain. Akan tetapi, seiring

KRIPTOGRAFI ELGAMAL MENGGUNAKAN METODE MERSENNE

DAFTAR ISI. Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA)

Perancangan Aplikasi Pembelajaran Kriptografi Kunci Publik ElGamal Untuk Mahasiswa

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

Modifikasi Algoritma RSA dengan Chinese Reamainder Theorem dan Hensel Lifting

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

Penerapan algoritma RSA dan Rabin dalam Digital Signature

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB II BAB II TINJAUAN PUSTAKA

PENGAMANAN DOKUMEN MENGGUNAKAN METODE RSA (RIVEST SHAMIR ADLEMAN)BERBASIS WEB


PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

BAB 2 LANDASAN TEORI

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

KRIPTOGRAFI HILL CIPHER DENGAN MENGGUNAKAN OPERASI MATRIKS

A-2 Sistem Kriptografi Stream Cipher Berbasis Fungsi Chaos Circle Map dengan Pertukaran Kunci Stickel

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN TEORETIS

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

VISUALISASI ALGORITMA RSA DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

BAB III PENYANDIAN ONE TIME PAD MENGGUNAKAN SANDI VIGENERE

Algoritma Kunci Asimetris

BAB 2 LANDASAN TEORI

Studi dan Analisis Perbandingan Antara Algoritma El Gamal dan Cramer-Shoup Cryptosystem

BAB 1 PENDAHULUAN Latar Belakang

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

SUATU ALGORITMA KRIPTOGRAFI STREAM CIPHER BERDASARKAN FUNGSI CHAOS

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

tidak boleh bocor ke publik atau segelintir orang yang tidak berkepentingan Pengirim informasi harus merahasiakan pesannya agar tidak mudah diketahui

BAB 2 LANDASAN TEORI

Tanda Tangan Digital Majemuk dengan Kunci Publik Tunggal dengan Algoritma RSA dan El Gamal

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

BAB III ANALISIS DAN PERANCANGAN

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI Kriptografi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

IMPLEMENTASI ALGORITMA ELGAMAL UNTUK ENKRIPSI TEXT PADA APLIKASI CLIENT

BAB II LANDASAN TEORI. Kriptografi mempunyai peranan penting dalam dunia komputer. Hal ini

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

Pembangkitan Kunci pada Algoritma Asimetris ElGamal untuk Meningkatkan Keamanan Data bertipe.docx

BAB I PENDAHULUAN. Universitas Sumatera Utara

Proses enkripsi disetiap putarannya menggunakan fungsi linear yang memiliki bentuk umum seperti berikut : ( ) ( ) (3) ( ) ( ) ( )

BAB III ANALISIS DAN DESAIN SISTEM

PERANCANGAN PERANGKAT LUNAK SIMULASI PENGAMANAN TANDA TANGAN DENGAN MENGUNAKAN METODE SCHNORR AUTHENTICATION DAN DIGITAL SIGNATURE SCHEME

: IMPLEMENTASI ALGORITMA KRIPTOGRAFI ELGAMAL UNTUK FILE CITRA 2 DIMENSI

Teknik-Teknik Kriptanalisis Pada RSA

SISTEM KRIPTOGRAFI. Mata kuliah Jaringan Komputer Iskandar Ikbal, S.T., M.Kom

BAB II LANDASAN TEORI

Transkripsi:

BAB II TINJAUAN PUSTAKA 2.1. Kriptografi Kriptografi secara etimologi berasal dari bahasa Yunani kryptos yang artinya tersembunyi dan graphien yang artinya menulis, sehingga kriptografi merupakan metode pembelajaran untuk mengirimkan pesan secara rahasia. (Mollin, 2007). Menurut Katz (2007), kriptografi adalah studi ilmiah atau teknik untuk mengamankan informasi digital, transaksi, dan komputasi yang terdistribusi. Kriptografi memiliki beberapa istilah atau terminologi, antara lain (Schneier,1996) : 1. Pengirim dan Penerima Misalkan seorang pengirim ingin mengirim pesan pada penerima. Kemudian, pengirim ingin mengirim pesan secara aman. Pengirim ingin menjamin bahwa penyadap tidak bisa membaca pesannya. 2. Pesan dan Enkripsi Sebuah pesan disebut pesan murni (plaintext) atau pesan yang akan dikirim. Proses untuk menyamarkan pesan untuk menyembunyikan maksudnya disebut enkripsi(encryption). Pesan yang dienkripsi disebut ciphertext. Proses untuk mengembalikan ciphertext menjadi plaintext disebut dekripsi(decryption). 3. Algoritma dan Kunci Algoritma kriptografi disebut juga cipher, adalah fungsi matematis yang digunakan untuk enkripsi dan dekripsi. Kunci digunakan sebagai pengenal antara proses enkripsi dan dekripsi.

7 4. Algoritma Simetris Ada dua tipe algoritma yang berbasis kunci yaitu simetris dan asimetris. Algoritma simetris kadang-kadang disebut juga algoritma konvensional, adalah algoritma dimana kunci enkripsi dapat dihitung dari kunci dekripsi dan sebaliknya. Di kebanyakan algoritma simetris, kunci enkripsi dan dekripsi adalah sama. Algoritma ini juga disebut algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, membutuhkan persetujuan antara pengirim dan penerima sebelum mereka bisa melakukan komunikasi secara aman. Proses Enkripsi dan Dekripsi algoritma simetris dapat dilihat pada Gambar 2.1. Gambar 2.1. Proses Enkripsi dan Dekripsi Algoritma Simetris(Paar et all, 20010) 5. Algoritma Asimetris Algoritma kunci publik didesain agar kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Algoritma ini dikatakan kunci publik karena kunci enkripsi dapat dibuat publik. Seseorang yang tidak bersangkutan dapat menggunakan kunci enkripsi untuk melakukan enkripsi, tetapi hanya orang-orang tertentu saja yang dapat melakukan dekripsi. Kunci enkripsi sering disebut kunci publik, dan kunci dekripsi sering disebut kunci privat. Proses enkripsi dan dekripsi algoritma asimetris dapat dilihat pada Gambar 2.2.

8 Gambar 2.2. Proses Enkripsi dan Dekripsi Algoritma Asimetris(Paar et all, 2010) 6. Kriptanalisis Keseluruhan tujuan dari kriptografi adalah untuk menjaga plaintext dan kunci agar tidak diketahui oleh penyadap. Penyadap diasumsikan memiliki akses penuh untuk komunikasi antara pengirim dan penerima. Kriptanalisis adalah ilmu untuk memulihkan plaintext dari sebuah pesan tanpa akses ke kunci. Kriptanalisis yang berhasil mampu memulihkan plaintext atau kuncinya. Dapat juga menemukan kelemahan dari sebuah kriptosistem. 7. Keamanan Algoritma Algoritma yang berbeda dapat menawarkan tingkat keamanan yang berbeda, tergantung pada seberapa rumit untuk dipecahkan. Jika harga yang dibutuhkan untuk memecahkan algoritma lebih besar dari nilai data yang dienkripsi, maka kemungkinan pesan tersebut kemungkinan aman. Jika waktu yang dibutuhkan untuk memecahkan algoritma lebih lama dari lamanya data tersebut harus rahasia, maka pesan tersebut juga kemungkinan aman. Jika jumlah data yang dienkripsi dengan sebuah kunci lebih kecil dari data yang dibutuhkan untuk memecahkan algoritma tersebut, maka pesan kemungkinan aman.

9 2.2. Keamanan Data Menurut Schneier (1996) selain menyediakan kerahasiaan, kriptografi sering diminta untuk melakukan pekerjaan lain yaitu : 1. Autentikasi, pesan harus memungkinkan penerima untuk bisa memastikan asalnya. 2. Integritas, pesan harus memungkinkan penerima untuk memverifikasi pesan tersebut tidak dimodifikasi sewaktu proses pengiriman. 3. Non-repudiasi, pengirim tidak bisa menyangkal bahwa dia adalah pengirim pesan. 2.3. Bilangan Prima dan Komposit Misalkan ada bilangan bulat positif 1, 2, 3, 4,... Di antara bilangan tersebut ada bilangan prima dan bilangan komposit. Bilangan komposit adalah bilangan yang memiliki faktor 1, seperti 15 = 3,5; atau 16 = 2,8. Karakteristik bilangan prima adalah hanya memiliki faktor sebanyak 1 (Riesel, 2011). 2.4. Bilangan Prima Aman Bilangan prima aman adalah bilangan prima berbentuk p = 2q + 1 dimana q adalah prima (Menezes et all, 1996). Langkah-langkah untuk menentukan suatu bilangan prima aman atau tidak adalah sebagai berikut : 1. Pilih bilangan prima p 5 2. Hitung q = 3. Jika q adalah bilangan prima, maka output ( prima aman ) 4. Jika q komposit, maka output ( bukan prima aman )

10 Contoh 1 : 1. Pilih bilangan prima p = 13 2. q = = 6 3. q komposit, maka p = 13 bukan prima aman. Contoh 2 : 1. Pilih bilangan prima p = 23 2. q = = 11 3. q adalah prima, makan p = 23 adalah prima aman. 2.5. Faktor Persekutuan Terbesar (Greatest Common Divisor) Bilangan bulat d yang tidak negatif adalah faktor persekutuan terbesar dari bilangan bulat a dan b, ditulis d = gcd(a,b), jika : (i) d adalah faktor persekutuan dari a dan b dan (ii) jika c a dan c b, maka c d. Demikian dapat dinyatakan bahwa, gcd(a,b) adalah bilangan bulat positif terbesar yang membagi a dan b, dengan pengecualian gcd(0,0) = 0 (Menezes et all, 1996). Contoh : Faktor persekutuan dari 12 dan 18 adalah {1, 2, 3, 6}, maka gcd(12,18) adalah 6. 2.6. Relatif Prima Dua angka a dan b dikatakan relatif prima jika angka-angka tersebut tidak memiliki faktor persekutuan ( gcd(a, b) = 1 ) (Batten, 2013). Contoh : 19 dan 13 adalah relatif prima dikarenakan gcd(19,13) = 1. 6 dan 8 tidak relatif prima dikarenakan gcd(6,8) = 2.

11 2.7. Kekongruenan Jika a dan b adalah bilangan bulat, maka a dikatakan kongruen ke b modulo n, ditulis a b (mod n), jika n habis membagi (a b). Bilangan bulat n disebut modulus kongruen (Menezes et all, 1996). Contoh : 24 4 (mod 5) karena 24 4 = 20 dan n = 5 habis membagi 20. 2.8. Fungsi Euler ( ) Untuk n 1, adalah bilangan bulat < n yang relatif prima dengan n, dengan ketentuan (Menezes et all, 1996) : 1. Jika p adalah bilangan prima, maka = p 1. 2. Jika gcd(m, n) = 1, maka =. 3. Jika n =,,..., adalah faktorisasi prima dari n, maka = n... Contoh : 1. = = 2. = = = 3. = = = = 2.9. Ordo Modulo Jika gcd(a, n) = 1 maka ordo a modulo n adalah adalah bilangan bulat positif terkecil e sehingga = mod. Dalam hal ini ditulis e = (Batten, 2013). Contoh : : = 9 mod, = mod, = mod, = mod. Maka =.

12 2.10. Modulo Invers Jika a dan m relatif prima dan m > 1, maka dapat ditemukan invers dari a modulo m. Invers dari a(mod m), disebut juga invers perkalian, yaitu bilangan bulat a -1 (Menezes et all, 1996). Contoh : 1. Diberikan m 3-4 (mod 7). Tentukan invers modulonya. 2. m (3-1 ) 4 (mod 7) 3. Tentukan invers modulo dari n (3-1 ) (mod 7) n n. 3 (mod) 7 1 3 2 6 3 3 4 5 5 1 4. n adalah hasil iterasi yang menghasilkan nilai 1. Maka dari itu n = 5. m 5 4 (mod 7) = 2. 2.11. Akar Primitif (Primitive Roots) Jika m merupakan elemen bilangan bulat, n merupakan elemen bilangan asli dan ord =, maka m disebut akar primitif modulo n. Dengan kata lain, m adalah akar primitif jika m termasuk pada eksponen modulo n. Menurut algoritma Gauss, jika m merupakan elemen bilangan asli, 1 < m < p, hitung m t untuk t = 1,2,... hingga m t 1 (mod p). Dengan kata lain, hitung pangkat hingga nilai ord ditemukan. Jika t = ord = p 1, maka m adalah akar primitif (Mollin, 2007). Contoh :

13 Apakah 2 dan 4 merupakan akar primitif dari 5? Cek bilangan 2 : 1. Hitung m t 1 (mod p) : 2 1 2 (mod 5), 2 2 4 (mod 5), 2 3 3 (mod 5), 2 4 1 (mod 5) 2. Karena nilai t = ord = p 1, maka 2 merupakan akar primitif modulo 5. Cek bilangan 4 : 1. Hitung m t 1 (mod p) : 4 1 4 (mod 5), 4 2 1 (mod 5) Karena nilai t = ord p 1, maka 4 bukan merupakan akar primitif modulo 5. Menurut Shoup (2008), terdapat cara menemukan akar primitif yang efisien dengan menggunakan faktor prima dari p 1. Langkah-langkahnya adalah sebagai berikut : 1. Hitung fakor prima dari p-1 hingga setiap faktor memiliki nilai yang berbeda. 2. Untuk setiap faktor (f) hitung m p-1 / f mod p. 3. Jika tidak ada yang menghasilkan nilai 1, maka m adalah bilangan prima. Contoh : Menggunakan cara di atas, akan dicari apakah 5 merupakan akar primitif dari 37. 1. Hitung faktor prima dari 37 f = [2, 3] 2. Untuk setiap faktor prima, hitung m p-1 / f mod p f[2] = 5 36/2 mod 37 = 36 f[3] = 5 36/3 mod 37 = 10 Karena tidak ada yang menhasilkan nilai 1, maka 5 merupakan akar primitif dari 37. 2.12. Metode Pembangkit Bilangan Prima Lehmann Menurut Scheiner(1996), berikut adalah langkah-langkah untuk menentukan apakah p adalah prima menggunakan pembangkit bilangan prima Lehmann : 1. Pilih sembarang bilangan a lebih kecil dari p

14 2. Hitung p mod 2, jika p mod 2 = 0 maka p bukanlah bilangan prima. 3. Hitung a (p-1)/2 mod p. 4. Jika a (p-1)/2 1 atau -1 (mod p), maka p sudah pasti tidak prima. 5. Jika a (p-1)/2 = 1 atau -1 (mod p), maka kemungkinan bahwa p tidak prima adalah tidak lebih dari 50%. Contoh 1 : Diberikan sebuah bilangan p = 7, dipilih a = 2, 3, 4, 5,6. 1. a (p-1)/2 mod p = 2 (7 1) / 2 mod 7 = 2 3 mod 7 = 8 mod 7 = 1 Kemungkinan p prima = 50%. 2. a (p-1)/2 mod p = 3 (7 1) / 2 mod 7 = 3 3 mod 7 = 27 mod 7 = 6 3. a (p-1)/2 mod p = 4 (7 1) / 2 mod 7 = 4 3 mod 7 = 64 mod 7 = 1 Kemungkinan p prima = 50% + 25% = 75%. 4. a (p-1)/2 mod p = 5 (7 1) / 2 mod 7 = 5 3 mod 7 = 125 mod 7 = 6 5. a (p-1)/2 mod p = 6 (7 1) / 2 mod 7 = 6 3 mod 7

15 = 216 mod 7 = 6 Karena kemungkinan p prima adalah 75%, p dapat dikatakan bilangan prima. Metode pembangkit bilangan prima Lehmann dipilih karen pada prosesnya hanya perlu melakukan perulangan sebanyak sepuluh kali untuk menentukan sebuah bilangan prima atau tidak. 2.13. Algoritma ElGamal Algoritma ElGamal ditemukan oleh Taher ElGamal pada tahun 1984. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal digunakan di dalam perangkat lunak sekuriti yang dikembangkan oleh GNU, program PGP dan pada sistem keamanan lainnya, Keamanan algoritma ini terletak pada sulitnya menghitung logaritma diskrit (Munir, 2006). Algoritma ini didasarkan pada masalah logaritma diskret dan terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi, dan proses dekripsi. Algoritma ini merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok palinteks dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p dan elemen primitif (Massandy, 2009). 2.14. Pembentukan Kunci Proses pertama pada algoritma ElGamal adalah pembentukan kunci yang terdiri dari kunci privat dan kunci publik. Pada proses ini dibutuhkan sebuah bilangan prima aman p, akar primitif yang, dan sembarang a {0,1,...,p-2}. Pada proses pembentukan kunci, panjang digit bilangan prima p sangat berpengaruh pada panjang pesan yang dienkripsi (Singh & Kumar 2012).

16 Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu (,, p), dengan mod dimana a merupakan kunci rahasia (Batten, 2013). 2.15. Proses Pembentukan Kunci Langkah-langkah dalam pembentukan kunci adalah sebagai berikut (Menezes et all, 1996): 1. Pilih bilangan prima besar (p > 255) dan elemen primitif dari bilangan bulat mod p. 2. Pilih bilangan bulat a, dimana 1 a p 2. 3. Hitung mod. 4. Publikasikan nilai,, dan p, serta rahasiakan nilai a. Pihak yang membuat kunci adalah pihak penerima. Penerima kemudian akan mengirimkan kunci publik yaitu,, dan p untuk digunakan pada proses enkripsi. Misalkan Alice dan Bob ingin berkomunikasi. Dalam hal ini Bob akan membuat kunci publik dan kunci privat. Bob memilih bilangan prima p = 257, = 20, dan kunci privat a = 5. mod = 20 5 mod 257 = 93 Jadi kunci publik Bob adalah p = 257, = 20, dan = 93 dan kunci privatnya adalah 5. Bob mengirimkan (257, 20, 93) pada Alice dan menyimpan kunci privatnya. 2.16. Enkripsi Pada proses enkripsi, pesan asli (plaintext) diubah menjadi pesan rahasia (ciphertext). Pada proses ini digunakan kunci publik (p, ). Dalam perhitungannya, algoritma ElGamal menggunakan bilangan bulat. Oleh karena itu digunakanlah kode ASCII(American Standard for Information Interchange). Kode ASCII adalah representasi numerik dari karakter-karakter yang digunakan dalam komputer.

17 Setelah mendapatkan kunci publik, Alice memilih bilangan acak rahasia b {0,1,...,p-2}. Bilangan acak b sebaiknya berbeda untuk setiap plaintext menghindari serangan acak bilangan b yang dapat mempengaruhi plaintext lainnya (Sharma et all, 2012). Misalkan m adalah pesan yang akan dikirim. Selanjutnya m diubah ke dalam blok-blok karakter dan setiap karakter dikonversikan ke dalam kode ASCII, sehingga diperoleh plaintext m 1, m 2, m 3,..., m n dengan m i {1, 2,..., p-1} dan i =1, 2,..., n. Enkripsi kemudian dilakukan dengan menghitung mod dan mod Algoritma enkripsi pesan : 1. Plaintext disusun menjadi blok-blok m 1, m 2,..., m n sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai p 1 (dengan mengubah nilai m menjadi kode ASCII). 2. Pilih bilangan acak b dengan rentang 0 < b < p 1, sehingga b relatif prima dengan p 1. 3. Setiap blok m dienkripsi dengan rumus mod dan mod. 4. Setelah dienkripsi, blok teks disusun menjadi =, ). Menggunakan kunci publik Bob (p, ) = (257, 20, 93), Alice ingin mengirimkan pesan GUNALAN kepada Bob. Pesan tersebut harus dienkripsi, oleh karena itu hal yang dilakukan oleh Alice adalah memotong pesan-pesan menjadi blokblok karakter dan setiap karakter dikonversi menjadi kode ASCII. Dapat dilihat pada Tabel 2.1 :

18 Tabel 2.1. Konversi Blok-blok Karakter Pesan ke Kode ASCII i Karakter Plaintext m i ASCII 1 G m 1 71 2 U m 2 85 3 N m 3 78 4 A m 4 65 5 L m 5 76 6 A m 6 65 7 N m 7 78 Dari Tabel 1, diperoleh banyaknya karakter pada pesan tersebut adalah n = 7. Proses selanjutnya adalah menentukan bilangan acak rahasia b i {0,1,...,257}. Kemudian dihitung mod dan mod. Tabel 2.2. Proses Enkripsi i m i b i mod 257 m i mod 257 1 71 67 14 187 2 85 10 168 219 3 78 124 44 214 4 65 43 181 226 5 76 234 215 55 6 65 228 92 152 7 78 189 202 9

19 Berdasarkan Tabel 2.2. diperoleh ciphertext (, ), sebagai berikut : (14, 187) (168,219) (44, 214) (181, 226) (215, 55) (92, 152) (202, 9) Selanjutnya ciphertext dikirim ke Bob. 2.17. Dekripsi Setelah ciphertext diterima, proses selanjutnya adalah mendekripsikan ciphertext menggunakan kunci publik (p, ) dan kunci privat a. (p, ) sebagai kunci publik dan a sebagai kunci privat, jika diberikan ciphertext (, ) maka dihitung : mod dan mod. dengan m adalah plaintext. Algoritma dekripsi pesan : 1. Hitung mod Hitung mod 2. Setelah plaintext m diperoleh, konversikan ke dalam karakter yang sesuai dengan kode ASCII, kemudian hasilnya digabungkan kembali. Bob telah menerima ciphertext dari Alice, ciphertext yang diperoleh adalah sebagai berikut : (14, 187) (168,219) (44, 214) (181, 226) (215, 55) (92, 152) (202, 9)

20 Untuk itu Bob pertama kali menghitung p 1 a = 257 1 5 = 251. Kemudian menggunakan kunci publik p = 257 dan kunci privat a = 5, Bob melakukan perhitungan seperti pada tabel 2.3 : Tabel 2.3. Proses Dekripsi i 251 (mod 257) 251 (mod 257) m 1 14 187 10 71 G 2 168 219 248 85 U 3 44 214 46 78 N 4 181 226 172 65 A 5 215 55 221 76 L 6 92 152 134 65 A 7 202 9 180 78 N Berdasarkan Tabel 2.3, Diketahui bahwa pesan tersebut adalah GUNALAN 2.18. Baby-step Giant-step Keamanan ElGamal bergantung pada pemecahan masalah logaritma diskrit dengan modulo yang sangat besar (Sharma et all, 2012). Metode Baby-step Giant-step merupakan salah satu metode pencarian dengan mencocokkan dua daftar. Metode ini bertujuan untuk menemukan a dari mod. Dalam hal ini a disebut logaritma diskrit. Jika ingin menemukan a langkah pertama adalah memilih + 1 sehingga p 1 N 2. Hal ini dilakukan karena perhitungan akan melakukan hasil yang sama jika melebihi. Kemudian dibuat dua dafta dimana daftar pertama meningkatkan pemangkatan sebanyak satu, sedangkan daftar kedua meningkatkan pemangkatan sebanyak N.

21 Daftar Baby-step : j mod p untuk 0 j N. Daftar Giant-step : -Nk mod p untuk 0 k N. Daftar Baby-step akan diproses sebanyak modulo p dikarenakan adalah akar primitif. Daftar Giant-step mungkin akan diproses sedikit lama dikarenakan proses berjalan sebanyak perkalian dengan. Jika ditemukan hasil yang sama di setiap daftar (akan memakan banyak waktu jika p bernilai besar) dapat ditulis mod sehingga + mod, maka ditemukanlah = +. Banyaknya langkah pada algoritma ini sekitar dan angka sebanyak N perlu disimpan (Batten, 2013). Diberikan 20 a mod 257 = 93. a dapat dihitung dengan mengikuti langkah langkah berikut: 1. Pilih nilai + 1. N + 1 = 17. 2. Hitung daftar Baby-step dengan rumus j mod p untuk 0 j < N. Tabel 2.4. Proses Baby-step j j mod 257 0 1 1 20 2 143 3 33 4 146 5 93 6 61 7 192

22 j j mod 257 8 242 9 214 10 168 11 19 12 123 13 147 14 113 15 204 16 225 17 131 3. Hitung daftar Giant-step dengan rumus -Nk untuk 0 k < N hinga ditemukan hasil yang cocok pada daftar Baby-step. Tabel 2.5. Proses Giant-step k -17k 0 93 Perhitungan Giant-step dihentikan karena kecocokan yang ditemukan yaitu 20 5 93 * 20 0 (mod p), jadi menurut rumus a = j + Nk, a = 5 + 0 = 5. Oleh karena itu diperoleh a = 5 yang memenuhi perhitungan 20 5 mod 257 = 93 2.19. Penelitian yang Relevan 1. Pada penelitian yang dilakukan oleh Ratnaningtyas Yoga Wijayanti (2013) yang berjudul Analisis dan Perbandingan Penggunaan Metode Pembangkitan Bilangan Prima Fermat dan Lucas-Lehmer dalam Kriptografi Elgamal menyebutkan bahwa kunci p yang besar dapat mempengaruhi lamanya waktu dekripsi.

23 2. Pada penelitian yang dilakukan oleh Anandia Zelvina (2012) yang berjudul Perancangan Aplikasi Pembelajaran Kriptografi Kunci Publik ElGamal untuk Mahasiswa menyebutkan bahwa pada algoritma ElGamal suatu plaintext yang sama akan dienkripsi menjadi ciphertext yang berbeda-beda. Hal ini dikarenakan pemilihan bilangan k yang acak. Akan tetapi, walaupun ciphertext yang diperoleh berbeda beda, tetapi pada proses dekripsi akan diperoleh plaintext yang sama. 3 Pada penelitian yang dilakukan oleh Muhamad Zaki Riyanto (2007) yang berjudul Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi ElGamal atas Grup Pergandaan Z p * menyebutkan bahwa agar dapat menentukan elemen primitif grup Z p *, maka penentuan bilangan prima p sebagai kunci publik sebaiknya harus diketahui faktorisasi prima dari p-1, seperti bilangan prima aman, yaitu p= 2q + 1, dengan q bilangan prima.