Algoritma Kunci Asimetris

dokumen-dokumen yang mirip
Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

Digital Signature Algorithm (DSA)

BAB II LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

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

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

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB II LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

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

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

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

Elliptic Curve Cryptography (Ecc) Pada Proses Pertukaran Kunci Publik Diffie-Hellman. Metrilitna Br Sembiring 1

BAB 3 KRIPTOGRAFI RSA

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

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

RSA (Rivest, Shamir, Adleman) Encryption

Manajemen Keamanan Informasi

METODE ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN ALGORITMA ELGAMAL

Penerapan Skema Tanda Tangan Schnorr pada Pembuatan Tanda Tangan Digital. Implementation of Schnorr Signature Scheme in The Form of Digital Signature

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

Perancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

BAB Kriptografi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

Digital Signature Standard (DSS)

Penerapan algoritma RSA dan Rabin dalam Digital Signature

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

BAB II TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

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

PERANCANGAN DAN IMPLEMENTASI DSA (DIGITAL SIGNATURE ALGORITHM) MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

Public Key Cryptography

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

BAB 2 LANDASAN TEORI

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

Bab 1 PENDAHULUAN. 1.1 Latar Belakang

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

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

PENGGUNAAN DIGITAL SIGNATURE DALAM SURAT ELEKTRONIK DENGAN MENYISIPKANNYA PADA DIGITIZED SIGNATURE

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Kriptografi Kunci Rahasia & Kunci Publik

DESAIN DAN IMPLEMENTASI PROTOKOL KRIPTOGRAFI UNTUK APLIKASI SECURE CHAT PADA MULTIPLATFORM SISTEM OPERASI

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

BAB I PENDAHULUAN. 1.1 Latar Belakang

Perancangan dan Implementasi Aplikasi Bluetooth Payment untuk Telepon Seluler Menggunakan Protokol Station-to-Station

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

APLIKASI ENKRIPSI DAN DEKRIPSI MENGGUNAKAN ALGORITMA RSA BERBASIS WEB

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

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

Bab 2: Kriptografi. Landasan Matematika. Fungsi

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

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

BAB III KUNCI PUBLIK

Kriptografi Elliptic Curve Dalam Digital Signature

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

BAB 2 LANDASAN TEORI

Modifikasi Algoritma RSA dengan Chinese Reamainder Theorem dan Hensel Lifting

ANALISIS KEMAMPUAN ALGORITMA ELGAMAL UNTUK KRIPTOGRAFI CITRA

BAB II TINJAUAN PUSTAKA

TINJAUAN PUSTAKA. Protokol

BAB II LANDASAN TEORI

Otentikasi dan Tandatangan Digital (Authentication and Digital Signature)

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

PENERAPAN GRUP MULTIPLIKATIF ATAS TANDA TANGAN DIGITAL ELGAMAL

Integrasi Kriptografi Kunci Publik dan Kriptografi Kunci Simetri

BAB 2 LANDASAN TEORI

ANALISA KRIPTOGRAFI KUNCI PUBLIK RSA DAN SIMULASI PENCEGAHAN MAN-IN-THE-MIDDLE ATTACK DENGAN MENGGUNAKAN INTERLOCK PROTOCOL

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

Penerapan Matriks dalam Kriptografi Hill Cipher

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

Implementasi dan Perbandingan Algoritma Kriptografi Kunci Publik

Kriptografi. A. Kriptografi. B. Enkripsi

Perhitungan dan Implementasi Algoritma RSA pada PHP

Analisis Implementasi Algoritma Kunci Publik pada Tanda Tangan Digital

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

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

BAB III ANALISIS DAN PERANCANGAN

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

KRIPTOGRAFI KURVA ELIPTIK ELGAMAL UNTUK PROSES ENKRIPSI-DEKRIPSI CITRA DIGITAL BERWARNA

Algoritma Kriptografi Kunci-publik RSA menggunakan Chinese Remainder Theorem

Teknik-Teknik Kriptanalisis Pada RSA

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

BAB I PENDAHULUAN 1.1. Latar Belakang

DIGITAL CERTIFICATE & DIGITAL SIGNATURE

PERANCANGAN SIMULASI MAN IN THE MIDDLE ATTACK PADA ALGORITMA KRIPTOGRAFI RSA DAN PENCEGAHANNYA DENGAN INTERLOCK PROTOCOL NASKAH PUBLIKASI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KRIPTOGRAFI KUNCI PUBLIK

Perbandingan Algoritma RSA dan Rabin

Transkripsi:

Tugas Computer Security Algoritma Kunci Asimetris Dandy Pramana Hostiadi (1291761009) Muhammad Riza Hilmi (1291761010) I Gusti Rai Agung Sugiartha (1291761017) I Gede Muriarka (1291761018) PROGRAM PASCASARJANA MAGISTER SISTEM INFORMASI DAN KOMPUTER (MSIK) UNIVERSITAS UDAYANA DENPASAR 2013

Algoritma Deffie-Hellman I Gede Muriarka (1291761018) gm_obelix@yahoo.com A. SEJARAH Algoritma ini pertama kali diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1975. Mereka berdua adalah peneliti pada universitas Stanford. Mereka memperkenalkan algoritma ini untuk memberi solusi atas pertukaran informasi secara rahasia. Gambar 1. 1 Whitfield Diffie dan Martin Hellman Algoritma ini tidak berdasarkan pada proses enkripsi dan dekripsi, melainkan lebih kepada proses matematika yang dilakukan untuk menghasilkan kunci rahasia yang dapat disebarkan secara bebas tanpa harus khawatir karena kunci rahasia tersebut hanya dapat didekripsi hanya oleh pengirim dan penerima pesan. Dasar dari algoritma ini adalah matematika dasar dari aljabar eksponen dan aritmatika modulus. B. Langkah-langkah pertukaran kunci Langkah-langkah dalam pertukaran kunci dengan menggunakan algoritma Diffie- Hellman adalah sebagai berikut: 1. Pilih bilangan prima yang besar, p dan bilangan integer yang tidak melebihi dari nilai p, g, biasa disebut bilangan basis atau generator. Kedua bilangan tersebut dapat diketahui secara publik.

2. Pilih sebuah bilangan acak oleh pengirim, x, bilangan ini tidak boleh diketahui oleh orang lain. 3. Pilih sebuah bilangan acak oleh penerima, y, bilangan ini tidak boleh diketahui oleh orang lain. 4. Pengirim menghitung A = g x mod p. Bilangan A ini dapat diketahui secara publik. 5. Penerima menghitung B = g y mod p. Bilangan B ini dapat diketahui secara publik. 6. Lakukan pertukaran bilangan A dan B terhadap pengirim dan penerima. 7. Lalu Pengirim menghitung k a = B x mod p. 8. Penerima menghitung k b = A y mod p. 9. Berdasarkan hukum aljabar nilai k a sama dengan k b atau bisa disebut k a = k b = k. Sehingga pengirim dan penerima tersebut mengetahui kunci rahasia tersebut k. *note Bukti dari k a = k b = k : k a = k b B x mod p = A y mod p (g y mod p) x mod p = (g x mod p) y mod p (g y ) x mod p = (g x ) y mod p g yx mod p = g xy mod p C. Contoh Algoritma Deffie - Hellman 1. Alice dan Bob menetapkan p = 23 dan g = 5. 2. Eve (penyadap) tahu nilai p dan g. 3. Alice memilih nilai x = 6 dan Bob memilih nilai y = 15. 4. Alice menghitung nilai A = 5 6 mod 23 = 8. 5. Bob menghitung nilai B = 5 15 mod 23 = 19. 6. Alice dan Bob bertukar nilai A dan B. 7. Eve menyadap mereka dan tahu nilai A dan B. 8. Alice melakukan perhitungan k a = 19 6 mod 23 = 2. 9. Bob melakukan perhitungan k b = 8 15 mod 23 = 2. 10. Eve mengetahui nilai p, g, A, dan B tetapi dia tidak dapat mengetahui kunci rahasia, k dari Bob dan Alice.

Alice dan Bob dapat mengetahui kunci rahasia tersebut dan dapat bertukar pesan dengan aman tanpa harus diketahui oleh Eve. Eve hanya dapat mengetahui nilai p, g, A, dan B tetapi tidak dapat menghitung kunci rahasia dari mereka berdua. Sehingga Eve tidak dapat mengetahui pesan rahasia apa antara Alice dan Bob. Hal ini dapat diilustrasikan seperti pada gambar di bawah ini Gambar 1. 2 Ilustrasi penggunaan algoritma Diffie- Hellman Algoritma ini tidak hanya terbatas pada 2 pengguna saja. Jumlah pengguna yang ingin menggunakan pertukaran kunci menggunakan algoritma Diffie-Hellman ini tidak dibatasi. Hal ini hanya berlaku jika memenuhi 2 prinsip yang harus dilakukan: 1. Bilangan p dan g yang telah disetujui oleh semua anggota. 2. Setiap anggota harus melakukan pertukaran data yang diperlukan oleh anggota lainnya sehingga semua data dapat didapatkan secara merata g abc.n

D. Tingkat Keamanan Algoritma Deffie - Hellman Tingkat keamanan dari algoritma ini tinggi, jika nilai p dan g dipilih secara benar. Karena untuk mengetahui atau menebak nilai rahasia yang dimiliki oleh penerima dan pengirim harus menyelesaikan persamaan Diffie-Hellman terlebih dahulu. Ini merupakan masalah logaritma diskrit yang perhitungan tersebut tidak dapat diselesaikan untuk nilai bilangan p yang sangat besar. Menghitung logaritma diskrit dari bilangan modulo p memakan waktu yang kurang lebih sama seperti dengan memfaktorkan bilangan non prima menjadi faktor primanya, seperti yang digunakan di algoritma RSA. Oleh karena itu, algoritma ini tingkat keamanannya setingkat dengan algoritma RSA. Ilustrasi dalam pengkonversian kembali persamaan Diffie-Hellman dapat dilihat pada gambar di bawah ini Gambar 1. 3 Ilustrasi dalam pengkonversian kembali persamaan Diffie-Hellman

KRIPTOGRAFI ELGAMAL I Gusti Rai Agung Sugiartha (1291761017) sugiarta_dek@yahoo.com 1. Pendahuluan Algoritma ElGamal dibuat oleh ilmuwan Mesir Taher ElGamal pada tahun 1984. Algoritma ini mulanya digunakan untuk tanda tangan digital atau digital signature. Namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal digunakan dalam perangkat lunak yang dikembangkan oleh GNU (), program PGP, dan pada program keamanan jaringan lainnya. Keamanan ini terletak pada sulitnya menghitung algoritma diskrit. Sebelum membahas ElGamal, akan dijelaskan sedikit tentang permasalahan algoritma diskrit. Misalkan G merupakan sebuah grup siklik dengan order n, α adalam pembangun G dan elemen identitas dari G adalah 1. Diberikan γ ϵ G. masalah yang muncul adalah bagaimana menentukan suatu bilangan bulat nonnegatif terkecil b sedemikian memenuhi Bilangan bulat b seperti ini disebut dengan algoritma diskret dari γ dengan basis α. Masalah bagaimana untuk menentukan bilangan bulan b seperti ini disebut dengan masalah logaritma diskret. Masalah komputasi algoritma diskret sangat penting dalam kriptografi. Banyak kegiatan kriptografi yang tumpuan utamanya menggunakan masalah aloritma diskret. Misalnya menggunakan dasar pembangkitan kunci pada kriptografi ElGamal. 2. Kriptografi ElGamal Pada algoritma ElGamal ini terdiri dari tiga proses, yaitu pembangkitan pasangan kunci, proses enkripsi, dan proses dekripsi. Algoritma ini melakukan proses enkripsi pada blok-blok plaintext dan kemudian menghasilkan blok-blok chippertext yang kemudian dilanjutkan oleh proses dekripsi, dimana hasilnya digabungkan kembali, sehingga menjadi pesan yang utuh dan mudah dipahami. Untuk pembentukan sistem kriptografi ElGamal, dibutuhkan bilangan prima p dan elemen bilangan primitif. 2.1 Pembentukan Kunci Pembentukan kunci merupakan proses penentuan suatu bilangan yang kemudian akan digunakan sebagai kunci pada proses enkripsi dan dekripsi pesan. Kunci terdiri dari nilai p, g,

dan y. sedangkan kunci untuk dekripsi terdiri dari nilai a dan p. masing-masing nilai mempunyai persyaratan yang harus dipenuhi. Pada proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk grup, elemen primitif g dan sebarang a ϵ {1, 2, 3,, p-2}. Dipilih a dalam rentang tersebut karena dalam ElGamal merupakan bilangan yang digunakan untuk operasi pangkat, padahal diketahui grup ber-order p-1, oleh karena itu pangkatnya dari {1, 2,., p- 2}. Jika dipangkatkan dengan p-1 maka akan menghasilkan elemen identitas, dan pada grup elemen identitasnya adalah 1. Untuk kunci publik pada algoritma ElGamal ini adalah tiga pasangan bilangan yaitu (p, g, y), dengan y = mod p... (1) sedangkan untuk kunci privatnya adalah a. Karena algoritma ElGamal menggunakan bilangan bulat dalam proses perhitungannya, maka pesan yang akan dikirimkan harus dikonversikan ke dalam bilangan bulat. Sebagai pengkonversiannya, digunakan kode ASCII (American Standard for Information Interchange). Kode ini adalah representasi numerik dari karakter yang digunakan pada komputer, yang nilai minimalnya 0 dengan nilai maksimal 255. Berdasarkan sistem kriptografi ElGamal, maka bilangan prima yang digunakan adalah lebih besar dari 255. Kode ASCII berkorespodensi satu satu dengan karakter pesan yang akan dikirimkan. Berikut merupakan alur pembentukan kunci ElGamal Alur pembentukan Kunci Input : bilangan prima > 255, dan elemen primitif g, dimana g<p. Output : kunci publik (p, g, y) dan kunci rahasia a. Langkah : 1. Pilih bilangan prima p. 2. Pilih dua buah bilangan acak g dan a, dengan a ϵ {1, 2, 3,, p-2}. 3. Hitung y = mod p. 4. Publikasikan p, g, dan y tetapi a dirahasiakan. Kunci publik yang dihasilkan pada pembentukan kunci sifat tunggal, karena ketiga nilai yang akan digunakan pada pembentukan kunci sudah ditetapkan, sehingga nilai y adalah tunggal. Terdapat y 1 dan y 2. Diambil bilangan prima p, bilangan acak g ϵ, dan a ϵ {1, 2, 3,, p-2}. Dengan y = mod p, maka y 1 = mod p dan y 2 = mod p y = mod p, maka

= y 1 mod p Sehingga y 2 = y 1 mod p, dengan demikian y 2 =y 1, terbukti bahwa kemunculan kunci y bersifat tunggal. Berikut ini diperlihatkan diagram alir pembentukan kunci, seperti gambar dibawah ini: Mulai Bilangan prima > 255 Pilih a ϵ {1, 2, 3,, p-2} y = g a mod p Kunci publik ( p, g, y) Selesai Gambar 1 Diagram Alir Pembentukan Kunci Pihak yang melakukan proses pembuatan kunci adalah pihak penerima. Jadi pihak penerima mengetahui kunci publik dan kunci privat. Kunci publik yang dia hasilkan, diberitahukan kepada pengirim pesan. Namun, pengirim pesan tidak mengetahui kunci privatnya. Berikut ini akan diberikan contoh proses pembentukan kunci dengan menggunakan algoritma ElGamal. Budi memberikan pesan rahasia kepada Iwan. Iwan memilih bilangan prima p = 257, dan elemen primitif g = 2. Selanjutnya dipilih a = 178. Lalu dihitung y = mod p y = mod 257 = 4 Jadi diperoleh kunci publik (p, g, y) adalah (4, 2, 257) dan kunci private a = 178. Iwan memberikan kunci publik (4, 2, 257) kepada Budi dan untuk kunci privatenya Iwan simpan sendiri.

2.2 Proses Enkripsi Plaintext adalah himpunan dari {1, 2, 3,, p-1}. Untuk mengenkripsi sebuah plaintext m, dibutuhkan kunci publik (p, g, y) yang sebelumnya sudah dibuat oleh penerima pesan. Lalu dipilih sembarang bilangan rahasia acak k dimana k ϵ {1, 2, 3, 4,, p-2} Pesan yang akan disampaikan adalah m, lalu m akan dipecah tiap-tiap karakternya, yang dikonversikan ke dalam kode ASCII, sehingga pesan menjadi plaintext m 1, m 2, m 3,.., m n dengan m1 ϵ {1, 2, 3,, p-1}, i = 1, 2,.., n. Proses enkripsi dilakukan tiap-tiap blok m dengan menghitung: B = mod p...(2) β = m i mod p...(3) dengan k ϵ {1, 2, 3,, p-2} acak, sehingga diperoleh chipertext (B, β) untuk blok pesan m. jadi ukuran ciphertext menjadi dua kali lipat plaintext. Proses penentuan bilangan acak k, pengirim pesan yang berperan, dan sifat bilangan acak k tadi adalah rahasia, jadi hanya pengirim pesan saja yang mengetahuinya. Berikut merupakan alur proses enkripsi: Input : Pesan yang dikirimkan, kunci publik (p, g, y) Output : Ciphertext (B, β), i = 1, 2,., n Langkah : 1. Memotong pesan m menjadi blok-blok pesan, sehingga satu blok adalah satu karakter pesan. 2. Mengkonversikan masing-masing karakter yang telah diperoleh ke dalam kode ASCII, sehingga diperoleh plaintext sebanyak n bilangan, yaitu m 1, m 2, m 3,., m n. 3. Untuk i dari 1 sampai n : a. Memilih sebarang bilangan acak k i ϵ {1, 2, 3,, p-2}. b. Menghitung B i = mod p c. Menghitung β i = m i mod p 4. Diperoleh ciphertext (B i, β i ), i = 1, 2, 3,, n Berikut ini diperlihatkan diagram alir enkripsi pesan, seperti gambar dibawah ini:

Mulai pesan(m), panjang blok(i) kunci publik(p, g, y) Pemotongan pesan (m) Konversi ke kode ASCII Pilih k i ϵ {1, 2, 3,.., p-2} i= i+ 1 B i = g k mod p β i = y ki m i mod p i = panjang m Selesai Gambar 2 Diagram Alir Enkripsi Pesan Dari contoh pembentukan kunci publik sebelumnya, yaitu (p, g, y) = (257, 2, 4). Budi akan mengirimkan pesan Udayana kepada Iwan. Budi akan melakukan enkripsi dengan menggunakan kunci publik dari Iwan. Langkah pertama yaitu membagi pesan menjadi blok pesan, kemudian dikonversi menjadi kode ASCII. Hasil konversi ke dalam kode ASCII dapat dilihat dalam tabel berikut ini: Tabel 1 Konversi Blok Pesan ke Kode ASCII i m i Karakter Kode ASCII 1 m 1 U 85 2 m 2 D 100

Tabel 2 Konversi Blok Pesan ke Kode ASCII (Lanjutan) i m i Karakter Kode ASCII 3 m 3 a 97 4 m 4 y 121 5 m 5 a 97 6 m 6 n 110 7 m 7 a 97 Dari tabel diatas dapat kita lihat blok pesan yang terbentuk adalah sebanyak 7 buah. Langkah selanjutnya adalah membangkitkan bilangan k dimana k i ϵ {1, 2, 3,.., p-2} adalah k i ϵ {1, 2, 3,.., 255}, i = 1, 2,., 7. Setelah itu mencari nilai B dengan rumus (2) yaitu : B = mod 257 dan nilai β dengan rumus (3) yaitu β = m i mod 257, dengan i = 1, 2,., 7. Lebih jelasnya hasil enkripsi disajikan dalam tabel berikut ini: Tabel 3 Enkripsi Pesan menjadi Ciphertext i m i k i B = mod 257 β = m i mod 257 1 85 11 32 174 2 100 149 32 114 3 97 101 32 126 4 121 196 16 136 5 97 72 256 97 6 110 47 2 183 7 97 141 32 126 Dari tabel diatas dapat diperoleh ciphertext yang akan dikirimkan adalah sebagai berikut: (32,174) (32,114) (32,126) (16,136) (256,97) (2,183) (32,126) Ciphertext itulah yang nantinya akan diterima oleh Iwan. Kelebihan dari penggunaan algoritma Elgamal ini adalah ciphertext yang dihasilkan berbeda-beda, meskipun huruf aslinya adalah sama, hal ini dikarenakan karena pemilihan bilangan k yang acak. 2.3 Proses Dekripsi Proses selanjutnya adalah dekripsi. Setelah memperoleh ciphertext, maka penerima melakukan pengubahan ciphertext (B i, β i ) menjadi plaintext, sehingga dapat dengan mudah

membaca isi dari pesan tersebut. Untuk mendekripsi pesan, penerima membutuhkan kunci private a. Misalkan diberikan suatu kunci publik (p, g, y) dan kunci private a, serta ciphertext (B, β), maka: m = β mod p...(4) dengan m adalah plaintext. Plaintext juga dapat ditemukan kembali dengan m = β mod p...(5) ini merupakan grup siklik berorder p-1, dan lambang -1 menyatakan inversi modulo. Berikut merupakan alur proses dekripsi: Input : ciphertext (B i, β i ), i = 1, 2,.., n. Kunci publik (p, g, y) dan kunci private a. Output : pesan asli Langkah: 1. Untuk i sampai dengan n : Menghitung : mi = βi mod p 2. Akan diperoleh plaintext m 1, m 2, m 3,, m n. 3. Konversi dari kode ASCII kemudian digabung menjadi pesan asli. Berikut ini diperlihatkan diagram alir enkripsi pesan, seperti gambar dibawah ini:

Mulai ciphertext(b i, β i ), kunci publik(p, g, y) kunci private a mi = βi Bi a mod p i= i+ 1 Pesan m Konversi pesan m ke ASCII i = panjang m pesan Selesai Gambar 3 Diagram Alir Dekripsi Pesan Berdasarkan contoh sebelumnya. Iwan menerima ciphertext yang telah dikirimkan oleh Budi. Iwan harus melakukan proses dekripsi agar dapat membaca pesan yang terkirim. Adapun ciphertext yang diterima Iwan adalah : (32,174) (32,114) (32,126) (16,136) (256,97) (2,183) (32,126) Diperoleh kunci publik (p, g, y) = (257, 2, 4) dan kunci private a = 178. Iwan melakukan perhitungan sesuai dengan rumus (4), yaitu m = β mod 257

Sebagai hasil perhitungannya, akan disajikan dalam tabel berikut ini: Tabel 4 Dekripsi ciphertext menjadi pesan i Bi βi m = β mod 257 Karakter 1 32 174 85 U 2 32 114 100 d 3 32 126 97 a 4 16 136 121 y 5 256 97 97 a 6 2 183 110 n 7 32 126 97 a Setelah proses dekripsi, Iwan mengetahui pesan yang dikirim Budi adalah Udayana. 5. Penggunaan Kriptografi ElGamal Kriptografi ElGamal sering digunakan dalam sistem kriptografi hibrid, pesan sendiri di enkripsi dengan sistem simetrik dan ElGamal kemudian digunakan untuk dekripsi dengan menggunakan kunci rahasia (private). Karena sistem kriptografi asimetrik seperti ElGamal biasanya membutuhkan waktu yang lama dikembangkan untuk mengenkripsi sistem kriptografi simetrik(yang berbanding lurus dengan panjang pesan yang dikirimkan). Sistem Kriptogafi ElGamal biasa digunakan pada pengiriman surat elektronik (E-mail), tanda tangan digital, citra. 6. Simpulan Penerapan sistem kriptografi ElGamal dibagi menjadi proses pembentukan kunci, enkripsi pesan dan dekripsi pesan. Perhitungan ketiga proses menggunakan masalah logaritma diskret. Ciphertext yang terbentuk pada proses enkripsi sangat beragam, dipengaruhi oleh bilangan acak k yang dibangkitkan, sehingga pesan sangat aman untuk di kirimkan. Penerapan kriptografi ElGamal harus menjaga keamanan kunci publik, pembangkitan kunci publik harus terus berbeda setiap komunikasi agar tidak di manipulasi oleh pihak yang tidak bertanggung jawab. Penerapan kriptografi ElGamal dari tiga proses perhitungan, harus menggunakan beberapa algoritma tambahan, karena perhitungan terdiri dari eksponensial yang besar dan

modulus yang besar juga. Penggunaan tipe data yang disediakan oleh bahasa pemrograman akan tidak bisa menampung hasil perhitungan.

Algoritma RSA Dandy Pramana Hostiadi (1291761019) dan_ganx_cil@yahoo.co.id RSA di bidang kriptografi adalah sebuah algoritma pada enkripsi public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamnkan dengan menggunakan kunci yang cukup panjang. A. Sejarah RSA Algortima RSA dijabarkan pada tahun 1977 oleh tiga orang : Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Huruf RSA itu sendiri berasal dari inisial nama mereka (Rivest Shamir Adleman). RSA adalah salah satu algoritma penyandian yang paling banyak mengundang kontroversi, selain DES (Data Encryption Standart). Sejauh ini belum seorang pun yang berhasil menemukan celah keamanan pada DES dan RSA, tetapi tak seorang pun juga yang berhasil memberikan pembuktian ilmiah yang memuaskan dari keamanan kedua teknik sandi ini. RSA yang menggunakan algoritma asimetrik mempunyai dua kunci yang berbeda, disebut pasangan kunci (key pair) untuk proses enkripsi dan dekripsi. Kunci-kunci yang ada pada pasangan kunci mempunyai hubungan secara matematis, tetapi tidak dapat dilihat secara komputasi untuk mendeduksi kunci yang satu ke pasangannya. Algoritma ini disebut kunci publik, karena kunci enkripsi dapat disebarkan. Orang-orang dapat menggunakan kunci publik ini, tapi hanya orang yang mempunyai kunci privat sajalah yang bisa mendekripsi data tersebut. B. Keunggulan dan Kelemahan RSA Sisi keamanan pada sistem RSA terletak pada sulitnya memfaktorkan sebuah bilangan besar n yang dihasilkan dari perkalian dua buah bilangan prima p dan q. nilai n yang dihasilkan bersifat tidak rahasia, sementara nilai bilangan prima p dan q harus bersifat rahasia, sehingga hampir mustahil bagi seorang penyerang untuk mendapatkan nilai ϕ (n) (totien (n)atau disebut juga phi(n)) yang merupakan nilai bilangan dasar yang digunakan untuk menghasilkan

pasangan kunci publik e dengan kunci privat d. Secara umum, tipe serangan yang mungkin untuk algoritma RSA adalah: Brute Force Mathematical Attack Man-In-The-Middle Attack Choosen Ciphertext Attack Sisi Kelemahan RSA adalah pada ukuran kunci privat yang terlalu besar akan mengakibatkan proses dekripsi yang cukup lambat, terutama untuk ukuran pesan yang besar. Oleh karena itu, RSA umumnya digunakan untuk meng-enkripsi pesan berukuran kecil seperti kata kunci dari enkripsi simetris seperti DES dan AES yang kemudian kunci tersebut dikirim secara bersamaan dengan pesan utama. C. Implementasi RSA RSA merupakan metode penyandian yang masih kokoh untuk mengatasi masalah keamanan dalam pengiriman data pada suatu jaringan pada media elektronik. Dari segi teknis penghitungan, system RSA mempunyai cara enkripsi yang mudah, tetapi jika sudah dienkripsi, data yang terenkripsi sulit untuk dibobol jika hanya mempunyai kunci publiknya saja. Dalam proses pembuatan kunci publik dan kunci privat, terdapat beberapa faktor yang menjadi pertimbangan, yaitu ukuran dari kunci, penentuan nilai p dan q agar sulit untuk dibobol, dan kemungkinan-kemungkinan kelemahan yang dapat diketahui saat data selesai dienkripsi. Pada kehidupan sehari-hari, aplikasi sisten RSA dapat ditemukan pada system autentikasi data dan pembuatan tanda tangan digital pada komputer, pada tingkat perangkat keras, RSA banyak digunakan pada telepon yang mempunyai system pengaman dari penyadapan, kartu jaringan ethernet, dan pada kartu cerdas. RSA juga dimasukkan ke dalam protokol internet yang mempunyai sistem pengaman, seperti S-HTTP, S/MIME dan lain-lain.

D. Pembangkitan RSA Berikut merupakan perhitungan matematika dibalik enkripsi kunci publik RSA : Pilih P dan Q, dua bilangan prima besar Pilih E dimana E lebih besar dari 1, E adalah kurang dari PQ dan E relatif prima terhadap (P-1)(Q-1) (tidak memiliki faktor prima yang sama). E tidak harus prima tetapi harus ganjil. (P-1)(Q-1) tidak dapat prima karena merupakan bilangan genap. Hitung D dimana (DE-1) dibagi sempurna oleh (P-1)(Q-1). Ahli matematika menuliskan sebagai DE = 1 (mod(p-1)(q-1)) dan mereka menyebut D multiplicative inverse dari E. Lebih mudahnya pilih integer X yang menghasilkan D = (X(P-1)(Q- 1)+1)/E yang menghasilkan bilangan integer (bulat), gunakan nilai D. Fungsi Enkripsi adalah C = (T^E) mod PQ, dimana C adalah ciphertext (positive integer), T adalah plaintext (positive integer), dan ^ menunjukkan pangkat. Message yang dienkripsi, T, harus lebih kecil dari modulus PQ. Fungsi Dekripsi adalah T = (C^D) mod PQ, dimana C adalah ciphertext (positive integer), T adalah plaintext (positive integer), dan ^ menunjukkan pangkat. Public key adalah pasangan (PQ, E). Private key adalah D. Perkalian PQ adalah modulus (biasa disebut N dalam literatur). E adalah public exponent. D adalah secret exponent. Contoh Penghitungan Enkripsi dan Dekripsi dengan RSA dengan text Dandy Dimana code ASCII D = 68 a = 97 n = 110 d = 100 y = 121

Pembangkitan nilai public key dan nilai private key Pemilihan nilai p = 7 dan q = 19 Mencari nilai n ==>> n = p.q = 7 x 19 = 133 Mencari nilai m ==>> m = (p-1) (q-1) = (7-1)(19 1) = 108 Mencari nilai e dan d ==>> (e * d) mod 108 = 1 e = 5 d = 65 public key = (e,n) = (5,133) private key = (d,n) = (65,133) Proses Enkripsi Mencari nilai chipertext (Enkripsi) C = M e mod n = 68 5 mod 133 (karakter D ) = 45 (karakter - ) = 97 5 mod 133 (karakter a ) = 130 (karakter é ) = 110 5 mod 133 (karakter n ) = 59 (karakter ; ) = 100 5 mod 133 (karakter d ) = 123 (karakter { ) = 121 5 mod 133 (karakter y ) = 11 ( karakter ) Teks Dandy = -é;{ Proses Dekripsi Mencari nilai plaintext (Dekripsi) D = C d mod n

45 65 mod 133 (karakter - ) 68 (karakter D ) 130 65 mod 133 (karakter é ) 97 (karakter a ) 59 65 mod 133 (karakter ; ) 110 (karakter n ) 123 65 mod 133 (karakter { ) 100 (karakter d ) 11 65 mod 133 (karakter ) 121 (karakter y ) Teks -é;{ = Dandy

A. Pendahuluan Digital Signature Algorithm (DSA) Muhammad Riza Hilmi (1291761010) rizahilmi@gmail.com Seiring dengan perkembangan teknologi informasi, pada tahun 1990 keamanan informasi menjadi bahan pembicaraan bagi banyak kalangan antaranya pemerintah, bisnis komersial, dan individu. Informasi disimpan dalam bentuk elektronik karena medium ini lebih sederhana, ukurannya kompak, dan melayani transfer data yang cepat. Namun dengan terjadinya revolusi elektronik maka informasi menghadapi masalah yang serius yaitu keamanan informasi pada proses komunikasi. Proses komunikasi sendiri melibatkan dua pihak yaitu pihak pengirim (sender) dan penerima (receiver). Tentunya, yang dikirim adalah informasi atau pesan yang hanya boleh diketahui oleh kedua belah pihak. Namun jika pihak ketiga menyadap dan memodifikasi pesan atau berpurapura sebagai pengirim asli tentunya akan sangat merugikan. Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Kata cryptography berasal dari kata Yunani kryptos (tersembunyi) dan graphein (menulis). Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Enkripsi adalah transformasi data kedalam bentuk yang tidak dapat terbaca tanpa sebuah kunci tertentu. Tujuannya adalah untuk meyakinkan privasi dengan menyembunyikan informasi dari orang-orang yang tidak ditujukan, bahkan mereka mereka yang memiliki akses ke data terenkripsi. Dekripsi merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula. Kriptografi saat ini lebih dari enkripsi dan dekripsi saja. Otentikasi menjadi bagian dari kehidupan kita sama seperti privasi. Kita menggunakan otentikasi dalam kehidupan sehari-hari, sebagai contoh saat kita menandatangani sejumlah dokumen dan saat kita berpindah ke dunia dimana keputusan dan persetujuan kita dikomunikasikan secara elektronis, kita membutuhkan tekikteknik untuk otentikasi. Digital Signature Algorithm (DSA) adalah termasuk ke dalam sistem kriptografi kunci-publik.

B. Digital Signature Algorithm(DSA) Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology) mengumumkan algoritma sidik dijital yang disebut Digital Signature Algorithm (DSA). DSA dijadikan sebagai bakuan (standard) dari Digital Signature Standard (DSS). Digital signature merupakan sistem keamanan kriptografi simetris (symetric crypthography/secret key crypthography) atau public key cryptography system yang dikenal sebagai kriptografi simetris, menggunakan kunci yang sama dalam melakukan enkripsi dan dekripsi terhadap suatu pesan (message), disini pengirim dan penerima menggunakan kunci yang sama sehingga mereka harus menjaga kerahasian (secret) terhadap kunci tersebut. Suatu digital signature sebenarnya bukan tanda tangan biasa, tapi tanda tangan dengan menggunakan cara yang berbeda untuk menandai suatu dokumen sehingga dokumen atau data tidak mengidentifikasi dari pengirim. Kriptografi simetris menggunakan dua kunci yaitu satu kunci untuk melakukan enkripsi terhadap suatu pesan (messages) dan kunci yang lain digunakan untuk melakukan dekripsi terhadap pesan tersebut. Tanda tangan secara digital adalah memberikan suatu ciri khas terhadap suatu pesan. Message digest adalah suatu besaran (value) yang berasal dari suatu data/pesan yang memiliki sifat yang unik dengan kata lain pesan tersebut mempunyai suatu besaran tertentu yang diciptakan dengan melakukan enkripsi terhadap suatu data dengan menggunakan kriptografi satu arah (one way crypthography), yaitu suatu tehnik kriptografi yang terhadapnya tidak dapat dilakukan proses pembalikan (reversed). Pada saat message digests dienkripsi dengan menggunakan kunci privat dari pengirim dan "ditambahkan" kepada data/pesan yang asli maka hasil yang didapat adalah digital signature dari pesan tersebut.

Gambar 1. Alur Signing dan Verification dengan DSA Pada gambar 1 tersebut dijelaskan bagaimana data diubah ke hash yaitu bilangan biner dan diberikan kunci private key, kemudian ditambahkan certificate setelah itu data dikirimkan. Pada sisi penerima, data kembali dipecah menjadi datanya sendiri dan signature key-nya, kemudian hash dari data, dicocokkan dengan hash yang dimilik oleh penerima melalui public key, jika memiliki hash yang sama maka data akan ditampilkan. DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi intisari pesan yang berukuran 160 bit. DSA dan algoritma tanda-tangan digital lainnya mempunyai tiga proses utama yaitu: 1. Pembangkitan pasangan kunci (Key Pair Generation) 2. Pembangkitan tanda-tangan digital (Digital Signature Generation) 3. Verifikasi tanda-tangan digital (Digital Signature Verification) C. Parameter DSA DSA dikembangkan dari algoritma ElGamal. DSA mempunyai properti berupa parameter sebagai berikut: 1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 L 1024 dan L harus kelipatan 64. Parameter p bersifat publik dan dapat digunakan bersama oleh orang di dalam kelompok. 2. q, bilangan prima 160 bit, merupakan faktor dari p 1. Dengan kata lain, (p 1) mod q =0. Parameter q bersifat publik. 3. g=h (p -1) /q mod p, yang dalam hal ini h < p 1 sedemikian sehingga h ( p-1) / q mod p > 1. Parameter g bersifat publik. 4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci privat. 5. y = g x mod p, adalah kunci publik. 6. m, pesan yang akan diberi tanda-tangan. D. Prosedur Algoritma DSA 1. Prosedur Pembangkitan Sepasang Kunci 1) Pilih bilangan prima p dan q, yang dalam hal ini (p -1)mod q = 0 2) Hitung g = h (p 1)/q mod p, yang dalam hal ini 1>h>p -1dan h ( p-1) / q mod p-1 3) Tentukan kunci privat x, yang dalam hal ini x< q. 4) Hitung kunci publik y = gx mod p.

Jadi, prosedur di atas menghasilkan: kunci publik dinyatakan sebagai (p, q, g, y),kunci privat dinyatakan sebagai (p, q, g, x). 2. Prosedur Pembangkitan Tanda-tangan (Signing) 1) Ubah pesan m menjadi intisari pesan dengan fungsi hash SHA, H. 2) Tentukan bilangan acak k < q. 3) Tanda-tangan dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai berikut: r = (g k mod p) mod q s =(k -1 (H(m)+ x*r))mod q. 4) Kirim pesan m beserta tanda- tangan r dan s. 3. Prosedur Verifikasi Keabsahan Tanda-tangan (Verifying) 1) Hitung w = s -1 mod q u 1 =(H(m)*w) mod q u 2 =(r *w)mod q v = ((g u1 * y u2 )mod p)mod q 2) Jika v = r, maka tanda-tangan sah, yang berarti bahwa pesan masih asli dan dikirim oleh pengirim yang benar. E. Contoh Perhitungan a. Pembangkitan Sepasang Kunci 1) Pilih bilangan prima p dan q, yang dalam hal ini (p 1) mod q = 0. p = 59419 q = 3301 (memenuhi 3301 * 18 = 59419 1) 2) Hitung g = h (p 1)/q mod p, yang dalam hal ini 1 < h < p 1 dan h (p 1)/q mod p > 1. g = 18870 (dengan h = 100) 3) Tentukan kunci rahasia x, yang dalam hal ini x < q. x = 3223 4) Hitung kunci publik y = g x mod p. y = 29245 b. Pembangkitan Tanda-tangan (Signing)

1) Hitung nilai hash dari pesan, misalkan H(m) = 4321 2) Tentukan bilangan acak k < q. k = 997 k 1 = 2907 (mod 3301) 3) Hitung r dan s sebagai berikut: r = (g k mod p) mod q = 848 s = (k 1 (H(m) + x * r)) mod q = 7957694475 mod 3301 = 183 4) Kirim pesan m dan sidik dijital r dan s. c. Verifikasi Keabsahan Tanda-tangan (Verifying) 1) Hitung s 1 = 469 (mod 3301) w = s 1 mod q = 469 u 1 = (H(m) * w) mod q 2026549 mod 3301 = 3036 u 2 = (r * w) mod q = 397712 mod 3301 = 1592 v = ((g u1 * y u2 ) mod p) mod q) = 848 mod 3301 = 848 2) Karena v = r, maka sidik dijital sah.

DAFTAR PUSTAKA Arizka, Rininda Ulfa. 2011. Penerapan Sistem Kriptografi ElGamal Atas Z_p^* Dalam Pembuatan Tanda Tangan Digital. Universitas Negeri Yogyakarta : Program Studi Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Brownawell, W. Dale. Pseudo-Code for Integer Algorithms in Bressoud s Factorization and Primality Tesing. CSE/Math 467 ElGamal, Taher. 1985. A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms. IEEE Transactions on Information Theory Menezes, A. 1996. Handbook of Applied Cryptography CRC Press. Hal : 294-296 Rochmat, Nur. Dkk. 2012. Implementasi Algoritma Kriptografi ElGamal untuk Keamanan Pesa (Message Security). Transient Vol. 1, No. 3. ISSN : 2302-9927, 83.