Algoritma ElGamal DATA MAHASISWA

RS, LS yang menggantikan masukan plaintext. Namun fungsi key schedule digunakan secara terbalik. Untuk lebih spesifik, berikut ini adalah urutan key schedule pada saat melakukan dekripsi: 1. Subkey K12, K13,K14,K15 digunakan untuk XOR initial subkey 2. Sedangkan subkey K8,K9,K10,K11 digunakan untuk XOR final subkey. 3. Dan putaran kunci digunakan dari i=8 hingga i=1 tahap 7 Contoh Dekripsi 1: Diketahui kunci yang digunakan : elektro Nilai signature yang dimasukkan : Public key : 2203, 5959 Signature : 3784 Plaintext:

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.1 Modulo 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 = Ya k mod Q 10. Hitung C1 = a k0 mod Q 11. Hitung C2 = K 1 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.2 Algoritma 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.3 Inversi 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: Tabel 2.4 Inversi Modulo dari 7 mod 17 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.4 Bilangan 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” Contoh 1: Tentukan bilangan p = 2579 adalah bilangan prima Dengan melakukan tes keprimaan diatas , diperoleh bahwa 1289 merupakan bilangan prima. Jadi dapat disimpulkan bahwa 1289 merupakan bilangan prima aman. 2.5.1.5 Elemen primitive Selain bilangan prima, dalam kriptografi ElGamal juga digunakan elemen primitive yang merupakan elemen pembangun dari Z p . 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 Z 2579 , 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.1 Algoritma 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 t ahun 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 3 s 115 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 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 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.1 Hitung 1.2 Hitung 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 1669, 407 455, 95 1891, 1924 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 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 sem ula 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 pesaninformasi melalui jaringaninternet, karena turut berkembang pula kejahatan teknologi dengan berbagai teknik interupsi, penyadapan, modifikasi, maupun fabrikasi. Tanpa adanya jaminan keamanan, orang lain dapat dengan mudah mendapatkan pesaninformasi yang dikirimkan melalui jaringaninternet. 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