• Tidak ada hasil yang ditemukan

BAB 2 TINJAUAN PUSTAKA

2.5 Algoritma ElGamal

Algoritma ElGamal merupakan algoritma kriptografi asimetris. Pertama kali dipublikasikan oleh Taher ElGamal pada tahun 1985. (Sadikin R. 2011)

Seperti RSA (Rivest Shamir Adleman), algoritma ElGamal 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 palintext dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses enkripsi, dan hasilnya digabungkan kembali menjadi pesan yang utuh dan bisa dimengerti. Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p. Untuk algoritma ElGamal maka secara secara umum dapat dijelaskan pada gambar dibawah ini, merupakan pseudo code ElGamal proses pembentukan kunci, enkripsi dan dekripsi ElGamal, (Sadikin R. 2011)

Pseudo code algoritma ElGamal (Ghazi M, 2010):

Gambar 2.10 Sistem Kriptografi proses pembentukan kunci, enkripsi dan dekripsi ElGamal

2.5.1 Landasan perhitungan Matematika Algoritma ElGamal

Dalam memahami dan mempelajari sebuah kriptografi, ada baiknya terlebih dahulu memahami konsep-konsep dasar dalam perhitungan matematis yang digunakan dalam suatu algoritma kriptografi tersebut.

2.5.1.1Modulo Eksponesial (menghitung modulo / sisa hasil pembagian)

Modulo eksponensial sering dipakai dalam bidang kriptografi dalam menghitung hasil dari enkripsi maupun dekripsi. Permaslahan pada operasi modulo adalah bagaimana mengitung dengan yang sangat besar. Terdapat beberapa cara untuk menghitung modulo eksponensial, antara lain adalah dengan cara iteratif.

Function mod exp (x, y, n) {

z =1

For (i=1; i≤y; i++){

z = x * z mod n Return z

}

1.Pilih P dimana P adalah bilangan prima

2.Pilih a dimana a adalah primitive root P dan a < p 3.Pilih sembarang bilangan Xa , dimana Xa < Q - 1 4.Hitung Ya, dimana Ya = a Xa mod Q

5.Plaintext key = { P, a, Ya} 6.Private key = {Xa}

7.Plaintext M < Q

8.Pilih sembarang bilangan K0 dimana K0 < Q 9.Hitung K1 dimana K1 = Yak mod Q

10. Hitung C1 = ak0 mod Q 11. Hitung C2 = K1 * M mod Q 12. Cipher = (C1, C2)

13. Dekripsi : cipher = (C1, C2) 14. Hitung K1 dimana K1 = C1 Xa mod Q 15. Plaintext M = (C2K1-1) mod Q

Contoh : Tentukan hasil dari dengan cara iterasi! Diketahui nilai x = 2, y = 5 dan n = 60

z = 1 i = 1 z = 4 * 1 mod 60 = 4 i = 2 z = 4 * 2 mod 60 = 8 i = 3 z = 4 * 4 mod 60 = 16 i = 4 z = 4 * 8 mod 60 = 32 i = 5 z = 4 * 16 mod 60 = 4

Maka hasil dari adalah 4

Hasil kalkulator

2.5.1.2Algoritma Euclidean

Algoritma Euclidean merupakan algoritma yang digunakan untuk mencari Faktor Persekutuan Terbesar (Great Common Divisor) dari dua bilangan bulat. Algoritma ini berdasarkan pernyataan bahwa ada dua bilangan bulat yang positif yaitu dan

dimana . Tahap perhitungan algoritma ini adalah sebagai berikut:

1. Jika

Jika tidak lanjutkan kelangkah selanjutnya (langkah nomor 2)

2. Bagilah dengan dan misalkan sisanya adalah

3. Ganti nilai dengan nilai dengan nilai , lalu ulang kembali ke langkah awal (langkah nomor 1)

Contoh 1: Tentukan GCD dari 312 dan 720 720 mod 312 = 96

312 mod 96 = 24 96 mod 24 = 0

Jadi GCD dari (312, 720) adalah 96

Contoh 2: Tentukan GCD dari 64 dan 93 93 mod 64 = 29

64 mod 29 = 6 29 mod 6 = 5 6 mod 5 = 1 5 mod 1 = 0

Jadi GCD dari (64, 93) = 1. Apabila GCD dari maka disebut relatif prima

2.5.1.3Inversi Modulo

Jika a dan n relatif prima dan , maka inversi dari a mod n dapat ditemukan. Inversi dari , disebut juga sebagai inversi perkalian, dimana bilangan

demikian sehingga:

Pembuktian dari persamaan diatas dapat dilihat dari defenisi relatif prima diketahu bahwa

Contoh 1: tentukan inversi dari 7 mod 17, dapat dijelaskan dalam tabel 2.4 berikut ini:

Dari tabel diatas iterasi berhenti ketika dan diperoleh hasil

Contoh 2: Tentukan inversi dari 25 mod 31,

Tabel 2.5 Inversi Modulo dari 25 mod 31

Dari tabel diatas iterasi berhenti ketika dan diperoleh hasil

2.5.1.4Bilangan Prima Aman

Input : Bilangan prima

Output : Pernyataan “bilangan prima aman” atau”bukan bilangan prima aman” Langkah-Langkah:

1. Hitung prima

2. Jika q adalah bilangan prima, maka output “bilangan prima aman” 3. Jika q komposit, maka output “bukan bilangan prima aman”

Dengan melakukan tes keprimaan diatas , diperoleh bahwa 1289 merupakan bilangan prima. Jadi dapat disimpulkan bahwa 1289 merupakan bilangan prima aman.

2.5.1.5Elemen primitive

Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitive yang merupakan elemen pembangun dari Zp. Untuk mencari dan menentukan elemen ini digunakan , dimana merupakan bilangan prima. Jika elemen dan , maka merupakan elemen primitive (Jeffrey dkk, 2008).

Dalam Gambar Gambar 2.11 dibawah ini akan dijelaskan elemen primitive dari algoritma ElGamal

Gambar 2.11 Elemen primitive algoritma ElGamal ( Stalling W., 5th, pg. 305, 2011)

Tahap menentukan suatu bilangan merupakan elemen primitive atau tidak dapat dilihat dari beberapa poin dibwah ini:

1. Input bilangan prima aman . 2. Hitung

3. Hitung dan .

4. Jika 5. Jika

6. Jika tidak terpenuhi dua persyaratan diatas maka merupakan elemen primitive

Contoh 1: Misalkan pada point 2.5.1.4 diatas merupakn bilangan prima aman. Maka dapat ditentukan bilangan prima = 1289. Untuk menunjukkan bahwa suatu bilangan bulat a merupakan elemen primitive Z2579*, harus ditunjukkan bahwa .

Dari tabel 2.5 dibawah ini dapat ditunjukkan untuk perhitungan yaitu sebagai berikut:

Tabel 2.5 Perhitungan bilangan prima aman algoritma ElGamal 2578

4 9 16 25 36 49 64

2578 1 1 1 2578 1 2578

Dalam algoritma ElGamal menggunakan bilangan bulat dalam proses perhitungannya, maka pesan harus di konversi kedalam bilangan bulat. Untuk mengubah pesan menjadi bilangan bulat, digunakan kode ASCII (American Standart for Information Interchange). Kode ASCII merupakan represntasi Numerik dari karakter masing-masing yang digunakan pada komputer, serta mempunyai nilai minimal 0 sampai 255. Oleh karena itu, berdasarkan sistem kriptografi ElGamal diatas harus digunakan bilangan yang lebih besar dari 255. Karakter dalam ASCII berkorespondesnsi 1-1 dengan karakter pesan.

2.5.2 Prinsip Kerja Algoritma ElGamal

2.5.2.1Algoritma Pembangkitan Kunci ElGamal

Dalam gambar 2.12 dibawah ini akan dijelaskan bagaimana gambaran Pembangkian Kunci Algoritma ElGamal,

Gambar 2.12 Pembangkitan kunci algoritma ElGamal ( Stalling W., 5th, pg. 305, 2011)

1. Pilih sembarang bilang prima p (sebaiknya nilai bilangan prima lebih besar dari 255). Misalkan 271

2. Ambil bilangan

α

sebagai primitive mod p Misalkan

α

= 107

3. Ambil bilangan acak

α dengan syarat α berada pada rentang

. Misalkan 96

4. Hitung berapa

Maka hasil perhitungan didapat

a. Kunci public (p, α, x) = (271, 107, 39) b. Kunci private (p,a) = (271, 96)

Contoh: Diketahui bilangan prima aman yaitu p = 2579, elemen primitive a = 2. Dan dipilih a = 765 dan dihitung

Jadi diperoleh kunci public dan kunci private . Kunci public diberikan Alice kepada Bob. Sedangkan kunci private tetap di rahasiakan oleh alice dan tidak di publikasikan.

2.5.3 Enkripsi Algoritma ElGamal

Proses enkripsi dari algoritma ElGamal dapat dijelaskan secara ringkas dalam gambar 2.13 dibawah ini:

Gambar 2.13 Proses Enkripsi ElGamal ( Stalling W., 5th, pg. 305, 2011)

Input : Pesan yang akan di enkripsi dan kunci public (p, α, x) Output : Ciphertext (1, 2, .... n)

Langkah enkripsi algoritma ElGamal adalah sebagai berikut:

1. Sebelum melakukan enkripsi harus menerima kunci public (p, α, x)

2. Pesan di potong-potong (blok) kedalam bentuk blok-blok dengan setiap blok adalah karakter suatu pesan.

3. Konversikan masing-masing karakter tersebut kedalam kode ASCII, maka diperoleh plaintext sebanyak n, bilangan, yaitu

4. Diperoleh ciphertext yaitu (C1 = ak mod q; C2 = KM mod q)

Contoh 1: Tentukan output dari “Desember tahun 2015”, dengan diketahui kunci public

(p, α, x) = (2579, 2, 1127), jika diketahui alice mengirim pesan rahasia “Desember tahun 2015” kepada bob. Alice akan mengengripsi kunci public (2579, 2, 1127) yang telah diterima oleh bob sebelumnya. Selanjutnya pesan di potong menjadi beberapa blok dari setiap karakter pesan, dan konversikan dalam bentuk ASCII.

Untuk menyelesaikan permasalahan diatas dapat dijelaskan dengan tabel 2.6 dibawah ini:

Tabel 2.7 Blok Cipher Algoritma ElGamal dalam bentuk ASCII i Karakter Plaintext (Mi) ASCII

1 D 68

2 e 101

4 e 101 5 m 109 6 b 98 7 e 101 8 r 114 9 spasi 32 10 t 116 11 a 97 12 h 104 13 u 117 14 n 110 15 spasi 32 16 2 50 17 0 48 18 1 49 19 5 53

Berdasarkan tabel 2.6 diatas diperoleh banyak karakter pada pesan tersebut . Proses selanjutnya yaitu menentukan bilangan acak rahasia Kemudian dihitung dan , . Dapat dijelaskan pada tabel 2.7 dibawah ini:

Tabel 2.8 Pembentukan ciphertext algoritma ElGamal i Karakter 1 D 68 2341 798 1955 2 e 101 2329 1192 2318 3 s 115 1127 2264 2179 4 e 101 1303 1669 407 5 m 109 859 2050 187 6 b 98 662 2569 115 7 e 101 863 1852 1840

8 r 114 202 1177 1832 9 spasi 32 377 1127 2240 10 t 116 1259 2373 1681 11 a 97 13 455 95 12 h 104 681 227 799 13 u 117 587 1694 2206 14 n 110 315 99 2156 15 spasi 32 213 1710 724 16 2 50 2383 1019 2045 17 0 48 545 1891 111 18 1 49 545 1891 1924 19 5 53 450 739 868

Berdasarkan tabel diatas diperoleh ciphertext sebagai berikut: (798, 1955) (1177, 1832) (1710, 724) (1192, 2318) (1127, 2240) (1019, 2045) (2264, 2179) (2373, 1681) (1891, 111) (1669, 407) (455, 95) (1891, 1924) (2050, 187) (227, 799) (739, 868) (2569, 115) (1694, 2206) (1852, 1840) (99, 2156)

Selanjutnya Alice sending chiper message to Bob,

Salah satu kelebihan dari Algoritma ElGamal merupakan bahwa sebuah ciphertext akan di enkripsi menjadi ciphertext yang berbeda. Permasalahan ini terjadi karena pemilihan bilangan acak k. Namun meskipun demikian, ciphertext yang diperoleh berbeda, tetapi proses enkripsi dan dekripsi akan diperoleh plaintext yang sama, seperti akan dijelaskan pada tahap dekripsi Algoritma ElGamal.

2.5.4 Dekripsi Algoritma ElGamal

Proses dekripsi dari algoritma ElGamal dapat dijelaskan secara ringkas dalam gambar 2.14 dibawah ini:

Gambar 2.14 Proses Dekripsi ElGamal ( Stalling W., 5th, pg. 305, 2011)

Langkah dekripsi algoritma ElGamal adalah sebagai berikut:

Input : Ciphertext ( , ) γ δ i i , i n =1, 2,..., , kunci publik p dan kunci rahasia a.

Output : Pesan asli. (plaintext)

Langkah dekripsi algoritma ElGamal adalah sebagai berikut: 1. Untuk i dari 1 sampai dengan n kerjakan

1.1Hitung 1.2Hitung

2. Diperoleh plaintext

3. Konversikan masing-masing bilangan kedalam karakter sesuai dengan kode ASCII

Contoh : pada contoh kasus dalam algoritma Enkripsi bahwa Alice telah mengirimkan ciphertext kepada Bob, Ciphertextnya yang diperoleh adalah:

(798, 1955) (1177, 1832) (1710, 724) (1192, 2318) (1127, 2240) (1019, 2045) (2264, 2179) (2373, 1681) (1891, 111)

(2050, 187) (227, 799) (739, 868) (2569, 115) (1694, 2206)

(1852, 1840) (99, 2156)

Bob mempunyai kunci public p = 2579 dan kunci rahasia, 765. Selanjutnya maka dilakukan perhitungan pada tabel 2.7 sebagai berikut:

Tabel 2.8 Dekripsi pengembalian ciphertext ke dalam bentuk plaintext algoritma ElGamal i 1 798 1955 314 68 D 2 1192 2318 2392 101 e 3 2264 2179 767 115 s 4 1669 407 165 101 e 5 2050 187 2552 109 m 6 2569 115 2535 98 b 7 1852 1840 1852 101 e 8 1177 1832 352 114 r 9 1127 2240 1879 32 spasi 10 2373 1681 1051 116 t 11 455 95 734 97 a 12 227 799 1472 104 h 13 1694 2206 55 117 u 14 99 2156 79 110 n 15 1710 724 456 32 spasi 16 1019 2045 62 50 2 17 1891 111 2792 48 0 18 1891 1924 2192 49 1 19 739 868 215 53 5

Dari tabel diatas maka pesan dalam blok maka digabungkan maka pesan akan menjadi semula yaitu “Desember Tahun 2015”.

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Teknologi informasi dan komunikasi telah berkembang pesat, memberikan pengaruh yang besar bagi kehidupan manusia. Perkembangan teknologi jaringan dan internet memungkinkan setiap orang untuk saling bertukar data, informasi, atau pesan kepada orang lain tanpa batasan jarak dan waktu.

Keamanan dan kerahasiaan merupakan aspek penting yang dibutuhkan dalam proses pertukaran pesan/informasi melalui jaringan/internet, karena turut berkembang pula kejahatan teknologi dengan berbagai teknik interupsi, penyadapan, modifikasi, maupun fabrikasi. Tanpa adanya jaminan keamanan, orang lain dapat dengan mudah mendapatkan pesan/informasi yang dikirimkan melalui jaringan/internet. Berbagai macam teknik keamanan telah dikembangkan untuk melindungi dan menjaga kerahasiaan pesan agar terhindar dari orang yang tidak berhak, salah satunya yaitu teknik kriptografi. Kriptografi adalah suatu ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya. Kriptografi telah ada dan digunakan sejak berabad-abad yang lalu dikenal dengan istilah kriptografi klasik, yang bekerja pada mode karakter alfabet.

Dalam dunia kriptografi, pesan yang akan dirahasiakan disebut plaintext. Pesan yang sudah diacak disebut ciphertext. Proses untuk mengkonversi plaintext menjadi ciphertext disebut enkripsi. Proses untuk mengembalikan plaintext dari ciphertext disebut dekripsi. Algoritma kriptografi (ciphers) adalah fungsi-fungsi matematika yang digunakan untuk melakukan enkripsi dan dekripsi. Dalam kriptografi diperlukan kunci yaitu kode untuk melakukan enkripsi dan dekripsi.

Penelitian ini menggunakan dua algoritma berbeda yaitu algoritma FEAL dan ElGamal penggabungan algoritma simetri dan asimetri yang juga disebut dengan hybrid cryptosystem.

1.2. Rumusan Masalah

Bagaimana menerapkan algoritma FEAL (Fast Data Encipherment Algorithm) dalam mengamankan kunci dan algoritma ElGamal untuk mengamankan suatu data dengan cara di enkripsi dan mendekripsikannya.

1.3. Batasan Masalah

Batasan masalah yang dapat diambil dari latar belakang diatas adalah:

1. Algoritma yang digunakan adalah Hybrid FEAL dan ElGamal 2. File yang digunakan dalam bentuk *.txt, *doc, dan *.rtf

3. Bahasa pemograman yang digunakan dalam aplikasi ini adalah bahasa pemograman PHP dan Database Management System Structure Query Languange (DBMS MYSQL).

4. Algoritma yang digunakan adalah penggabungan algoritma FEAL sebagai algoritma simetri dan ElGamal sebagai algoritma asimetri yang biasa disebut dengan Hybrid cryptosystem.

5. Pengecekan keprimaan pada pembangkit prima menggunakan metode Lehmann.

6. Tabel ASCII (American Standart for Information Interchange) yang digunakan adalah karakter yang memiliki nilai ASCII antara 0-255.

1.4. Tujuan Penelitian

Tujuan penelitian ini adalah untuk mengamankan teks yang akan dikirim dan di enkripsi dari orang-orang yang ingin membaca informasi yang terdapat pada teks tersebut, selain itu juga memenuhi syarat kelulusan program Strata-1 (S-1) Ilmu

Komputer Universitas Sumatera Utara, mempelajari konsep pegamanan data menggunakan penggabungan Algoritma FEAL dan Elgamal yang disebut juga dengan Hybrid Cryptosystem.

1.5. Manfaat Penelitian

Tugas akhir ini diharapkan akan mampu memberikan keamanan bagi user dalam mengamankan pesan agar orang yang tidak berhak tidak bisa membaca informasi yang ada pada teks tersebut sehingga keamanan dan kerahasiaan data yang dikirim akan terjaga dengan baik.

1.6. Metode Penelitian

Metodologi yang digunakan dalam tugas akhir ini adalah: 1. Studi Literatur

Mempelajari literatur tentang teori dasar mengenai kriptografi, jenis-jenis kriptografi, memahami tentang metode pembangkit Prima Lehmann (Lehmann Prime Generator), proses enkripsi dan dekripsi pada algoritma FEAL dan ElGamal baik dari sumber berupa buku-buku, jurnal ilmiah, jurnal penelitian, paper, yang berkaitan tentang algoritma FEAL dan algoritma ElGamal dan konsep pengamanan menggunakan hybrid cryptosystem.

2. Implementasi dan Perancangan Sistem

Merancang sebuah sistem dan simulasi untuk menguji seberapa jauh tingkat keamanan algoritma FEAL sebagai kunci dan dijadikan kunci untuk algoritma ElGamal.

3. Analisis dan Pengujian

Pengujian dibagi menjadi 3 buah skenario program. Pada skenario pertama pengujian dilakukan dengan memasukkan input plaintext dengan format ekstensi *.txt, *.doc, *.rtf yang kemudian disertakan key untuk dilakukan proses enkripsi. Dari hasil tersebut antara algoritma FEAL dan algoritma

ElGamal dilakukan penggabungan, serta keamanan maupun waktu yang dibutuhkan dalam proses enkripsi maupun dekripsi tersebut.

4. Implementasi Sistem

Pada tahap ini akan dilakukan pembangunan aplikasi enkripsi dan dekripsi sesuai dengan analisi dan perancanan yang sudah didefenisikan sebelumnya. 5. Dokumentasi

metode ini dilaksanakan dengan membuat dokumentasi dalam bentuk draft laporan tugas akhir.

1.7. Sistematika Penulisan

Sistematika penulisan skripsi ini dibagi menjadi 5 (lima) bab yaitu:

Bab 1 Pendahuluan

Pada bab ini adalah pendahuluan yang berisi latar belakang, rumusan masalah, tujuan penelitian, batasan masalah, manfaat penelitian, dan sistematika penulisan dalam skripsi ini.

Bab 2 Tinjauan Pustaka

Pada bab ini yaitu membahas beberapa teori-teori penunjang yang akan mendukung pembahasan pada bab-bab selanjutnya.

Dokumen terkait