Algoritma RSA dan ElGamal

dokumen-dokumen yang mirip
Adi Shamir, one of the authors of RSA: Rivest, Shamir and Adleman

Properti Algoritma RSA

BAB 3 KRIPTOGRAFI RSA

RSA (Rivest, Shamir, Adleman) Encryption

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

BAB III ANALISIS DAN PERANCANGAN

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB 2 LANDASAN TEORI

Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna

Perbandingan Algoritma RSA dan Rabin

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB 2 LANDASAN TEORI Interaksi Manusia dan Komputer. interaktif untuk digunakan oleh manusia. Golden Rules of Interaction Design, yaitu:

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Departemen Teknik Informatika Institut Teknologi Bandung 2004

BAB 2 LANDASAN TEORI

Sistem Kriptografi Kunci-Publik

KRIPTOGRAFI KUNCI PUBLIK

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Public Key Cryptography

Rancangan dan Implementasi Algoritma Pembangkitan Kunci Kombinasi antara Algoritma RSA dan ElGamal

Digital Signature Standard (DSS)

Kajian Perhitungan dan Penerapan Algoritma RSA pada Proses Pengamanan Data

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

Modifikasi Algoritma RSA dengan Chinese Reamainder Theorem dan Hensel Lifting

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

Kegunaan Chinese Remainder Theorem dalam Mempercepat dan Meningkatkan Efisiensi Peforma Sistem Kriptografi RSA

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

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

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

METODE ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN ALGORITMA ELGAMAL

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

Analisis dan Perbandingan Kecepatan Algoritma RSA dan Algoritma ElGamal

Implementasi dan Perbandingan Algoritma Kriptografi Kunci Publik

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Sifat Prima Terhadap Fungsionalitas Algoritma RSA

BAB 1. Pendahuluan. 1.1 Latar Belakang Masalah

Algoritma Kriptografi Kunci-publik RSA menggunakan Chinese Remainder Theorem

Otentikasi dan Tandatangan Digital (Authentication and Digital Signature)

Implementasi Tandatangan Digital Kunci-Publik pada Berkas Gambar dengan Format JPEG

APLIKASI ENKRIPSI DAN DEKRIPSI MENGGUNAKAN ALGORITMA RSA BERBASIS WEB

BAB II TINJAUAN PUSTAKA

Enkripsi Dan Deskripsi Menggunakan Algoritma RSA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

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

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

MODUL PERKULIAHAN EDISI 1 MATEMATIKA DISKRIT

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

Teori Bilangan (Number Theory)

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

BAB II TINJAUAN PUSTAKA

Rusmala 1, Islamiyah 2

Penerapan ECC untuk Enkripsi Pesan Berjangka Waktu

Analisis Penggunaan Algoritma RSA untuk Enkripsi Gambar dalam Aplikasi Social Messaging

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

Teknik Kriptografi Rabin, Serangan yang Dapat Dilakukan dan Perbandingannya dengan RSA

PENERAPAN KRIPTOGRAFI DAN GRAF DALAM APLIKASI KONFIRMASI JARKOM

BAB 2 LANDASAN TEORI

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

APLIKASI ENKRIPSI DATA PADA FILE TEKS DENGAN ALGORITMA RSA (RIVEST SHAMIR ADLEMAN)

Algoritma Pendukung Kriptografi

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

PERBANDINGAN KRIPTOGRAFI KUNCI PUBLIK MENGGUNAKAN ALGORITMA RSA DAN MATRIKS

Pengaman Pengiriman Pesan Via SMS dengan Algoritma RSA Berbasis Android

BAB II TINJAUAN PUSTAKA

Penggunaan Sidik Jari dalam Algoritma RSA sebagai Tanda Tangan Digital

JURNAL IMPLEMENTASI ALGORITMA KRIPTOGRAFI RSA PADA E-VOTING BUPATI KABUPATEN NGANJUK

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

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

Algoritma Kriptografi Modern (AES, RSA, MD5)

PENERAPAN METODA CHINESE REMAINDER THEOREM PADA RSA

Analisis dan Implementasi Serangan Kunci secara Konkuren pada Algoritma RSA

Protokol Kriptografi

PERANCANGAN APLIKASI MEMO MENGGUNAKAN ALGORITMA KRIPTOGRAFI CAESAR CIPHER DAN RSA BERBASIS ANDROID

Digital Signature Algorithm (DSA)

VISUALISASI ALGORITMA RSA DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

Tanda Tangan Digital untuk Pengecekan Keaslian Data pada Perpustakaan Digital

ENKRIPSI DENGAN MENGGUNAKAN METODE ELGAMAL PADA PERANGKAT MOBILE

BAB I PENDAHULUAN 1.1 Latar Belakang

Integrasi Kriptografi Kunci Publik dan Kriptografi Kunci Simetri

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB

BAB 2 LANDASAN TEORI Keamanan Informasi

Studi dan Implementasi Optimal Asymmetric Encryption Padding(OAEP) pada Algoritma RSA untuk Mencegah Adaptive Chosen Ciphertext Attacks

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

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

BAB I PENDAHULUAN. 1.1 Latar Belakang

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

Implementasi Kriptografi Kunci Publik dengan Algoritma RSA-CRT pada Aplikasi Instant Messaging

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Cipher yang Tidak Dapat Dipecahkan (Unbreakable Cipher)

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

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

BAB I PENDAHULUAN , 1.1. Latar Belakang

BAB II LANDASAN TEORI

Kongruen Lanjar dan Berbagai Aplikasi dari Kongruen Lanjar

Transkripsi:

Bahan Kuliah ke-15 IF5054 Kriptografi Algoritma RSA dan ElGamal Disusun oleh: Ir. Rinaldi Munir, M.T. Departemen Teknik Informatika Institut Teknologi Bandung 2004

15.1 Pendahuluan 15. Algoritma RSA dan ElGamal Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi faktorfaktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. 15.2 Properti Algoritma RSA Besaran-besaran yang digunakan pada algoritma RSA: 1. p dan q bilangan prima (rahasia) 2. n = p q (tidak rahasia) 3. φ(n) = (p 1)(q 1) (rahasia) 4. e (kunci enkripsi) (tidak rahasia) 5. d (kunci dekripsi) (rahasia) 6. m (plainteks) (rahasia) 7. c (cipherteks) (tidak rahasia) Rianldi Munir - IF5054 Kriptografi 1

15.2 Perumusan Algoritma RSA Algoritma RSA didasarkan pada teorema Euler (lihat bahan kuliah Teori Bilangan) yang menyatakan bahwa a φ(n) 1 (mod n) (15.1) yang dalam hal ini, 1. a harus relatif prima terhadap n 2. φ(n) = n(1 1/p 1 )(1 1/p 2 ) (1 1/p r ), yang dalam hal ini p 1, p 2,, p r adalah faktor prima dari n. φ(n) adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3,, n yang relatif prima terhadap n. Berdasarkan sifat a k b k (mod n) untuk k bilangan bulat 1, maka persamaan (15.1) dapat ditulis menjadi atau a kφ(n) 1 k (mod n) a kφ(n) 1 (mod n) (15.2) Bila a diganti dengan m, maka persamaan (15.2) menjadi m kφ(n) 1 (mod n) (15.3) Berdasarkan sifat ac bc (mod n), maka bila persamaan (15.3) dikali dengan m menjadi: m kφ(n) + 1 m (mod n) (15.4) yang dalam hal ini m relatif prima terhadap n. Rianldi Munir - IF5054 Kriptografi 2

Misalkan e dan d dipilih sedemikian sehingga atau e d 1 (mod φ(n)) (15.5) e d = kφ(n) + 1 (15.6) Sulihkan (15.6) ke dalam persamaan (15.4) menjadi: m e d m (mod n) (15.7) Persamaan (15.7) dapat ditulis kembali menjadi (m e ) d m (mod n) (15.8) yang artinya, perpangkatan m dengan e diikuti dengan perpangkatan dengan d menghasilkan kembali m semula. Berdasarkan persamaan (15.8), maka enkripsi dan dekripsi dirumuskan sebagai berikut: E e (m) = c m e mod n (15.9) D d (c) = m c d mod n (15.10) Karena e d = d e, maka enkripsi diikuti dengan dekripsi ekivalen dengan dekripsi diikuti enkripsi: D d (E e (m)) = E e (D d (m)) m d mod n (15.11) Rianldi Munir - IF5054 Kriptografi 3

Oleh karena m d mod n (m + jn) d mod n untuk sembarang bilangan bulat j, maka tiap plainteks m, m + n, m + 2n,, menghasilkan cipherteks yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar transformasinya satu-ke-satu, maka m harus dibatasi dalam himpunan {0, 1, 2,, n 1} sehingga enkripsi dan dekripsi tetap benar seperti pada persamaan (15.8) dan (15.9). 15.5 Algoritma Membangkitkan Pasangan Kunci 1. Pilih dua buah bilangan prima sembarang, p dan q. 2. Hitung n = p q (sebaiknya p q, sebab jika p = q maka n = p 2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n). 3. Hitung φ(n) = (p 1)(q 1). 4. Pilih kunci publik, e, yang relatif prima terhadap φ(n). 5. Bangkitkan kunci privat dengan menggunakan persamaan (15.5), yaitu e d 1 (mod φ(n)). Perhatikan bahwa e d 1 (mod φ(n)) ekivalen dengan e d = 1 + kφ(n), sehingga d dapat dihitung dengan 1+ kφ( n) d = (15.12) e Akan terdapat bilangan bulat k yang memberikan bilangan bulat d. Hasil dari algoritma di atas: - Kunci publik adalah pasangan (e, n) - Kunci privat adalah pasangan (d, n) Catatan: n tidak bersifat rahasia, namun ia diperlukan pada perhitungan enkripsi/dekripsi. Rianldi Munir - IF5054 Kriptografi 4

Contoh 15.1. Misalkan A akan membangkitkan kunci publik dan kunci privat miliknya. A memilih p = 47 dan q = 71 (keduanya prima). Selanjutnya, A menghitung dan n = p q = 3337 φ(n)= (p 1)(q 1) = 3220. A memilih kunci publik e = 79, karena 79 relatif prima dengan 3220. A mengumumkan nilai e dan n. Selanjutnya A menghitung kunci dekripsi d seperti yang dituliskan pada langkah instruksi 5 dengan menggunakan persamaan (15.12), d 1 + ( k 3220) = 79 Dengan mencoba nilai-nilai k = 1, 2, 3,, diperoleh nilai d yang bulat adalah 1019. Ini adalah kunci privat untuk mendekripsi pesan. Kunci ini harus dirahasiakan oleh A. Kunci publik: (e = 79, n = 3337) Kunci privat: (d = 1019, n = 3337) Rianldi Munir - IF5054 Kriptografi 5

15.6 Algoritma Enkripsi/Dekripsi Enkripsi 1. Ambil kunci publik penerima pesan, e, dan modulus n. 2. Nyatakan plainteks m menjadi blok-blok m 1, m 2,, sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, n 1]. 3. Setiap blok m i dienkripsi menjadi blok c i dengan rumus c i = m i e mod n Dekripsi 1. Setiap blok cipherteks c i didekripsi kembali menjadi blok m i dengan rumus m i = c i d mod n Contoh 15.2. Misalkan B mengirim pesan kepada A. Pesan (plainteks) yang akan dikirim oleh A adalah m = HARI INI atau dalam sistem desimal (pengkodean ASCII) adalah 7265827332737873 B memecah m menjadi blok yang lebih kecil, misalnya m dipecah menjadi enam blok yang berukuran 3 digit: m 1 = 726 m 4 = 273 m 2 = 582 m 5 = 787 m 3 = 733 m 6 = 003 Nilai-nilai m i ini masih terletak di dalam selang [0, 3337 1] agar transformasi menjadi satu-ke-satu. Rianldi Munir - IF5054 Kriptografi 6

B mengetahui kunci publik A adalah e = 79 dan n = 3337. A dapat mengenkripsisikan setiap blok plainteks sebagai berikut: c 1 = 726 79 mod 3337 = 215; c 2 = 582 79 mod 3337 = 776; c 3 = 733 79 mod 3337 = 1743; c 4 = 273 79 mod 3337 = 933; c 5 = 787 79 mod 3337 = 1731; c 6 = 003 79 mod 3337 = 158 Jadi, cipherteks yang dihasilkan adalah c = 215 776 1743 933 1731 158. Dekripsi dilakukan dengan menggunakan kunci privat d = 1019 Blok-blok cipherteks didekripsikan sebagai berikut: m 1 = 215 1019 mod 3337 = 726 m 2 = 776 1019 mod 3337 = 582 m 3 = 1743 1019 mod 3337 = 733 Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula m = 7265827332737873 yang dalam sistem pengkodean ASCII adalah m = HARI INI. Rianldi Munir - IF5054 Kriptografi 7

15.7 Keamanan RSA Kamanan algoritma RSA didasarkan pada sulitnya memfaktorkan bilangan besar menjadi fakto-faktor primanya. Masalah pemfaktoran: Faktorkan n, yang dalam hal ini n adalah hasil kali dari dua atau lebih bilangan prima. Pada RSA, masalah pemfaktoran berbunyi: Faktorkan n menjadi dua faktor primanya, p dan q, sedemikian sehingga n = p q. Sekali n berhasil difaktorkan menjadi p dan q, maka φ(n) = (p 1) (q 1) dapat dihitung. Selanjutnya, karena kunci enkrispi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e d 1 (mod φ(n)). Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan demikian hasil kali n = p q akan berukuran lebih dari 200 digit. Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor prima dari bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun, sedangkan untuk bilangan 500 digit membutuhkan waktu 10 25 tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik). Untunglah algoritma yang paling mangkus untuk memfaktorkan bilangan yang besar belum ditemukan. Selama 300 tahun para matematikawan mencoba mencari faktor bilangan yang besar namun tidak banyak membuahkan hasil. Semua bukti yang diketahui menunjukkan bahwa upaya pemfaktoran itu lura biasa sulit. Rianldi Munir - IF5054 Kriptografi 8

Fakta inilah yang membuat algoritma RSA tetap dipakai hingga saat ini. Selagi belum ditemukan algoritma yang mangkus untuk memfaktorkan bilangan bulat menjadi faktor primanya, maka algoritma RSA tetap direkomendasikan untuk mengenkripsi pesan. Untuk informasi RSA lebih lanjut, kunjungi situs web www.rsasecurity.com 15.7 Algoritma ElGamal Algoritma ElGamal juga adalah algoritma kriptografi kuncipublik. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. Keamanan algoritma ini terletak pada sulitnya menghitung logaritma diskrit. Masalah logaritma diskrit: Jika p adalah bilangan prima dan g dan y adalah sembarang bilangan bulat. Carilah x sedemikian sehingga g x y (mod p) Besaran-besaran yang digunakan di dalam algoritma ElGamal adalah: 1. Bilangan prima, p (tidak rahasia) 2. Bilangan acak, g ( g < p) (tidak rahasia) 3. Bilangan acak, x (x < p) (rahasia, kunci privat) 4. y = g x mod p (tidak rahasia, k. publik) 5. m (plainteks) (rahasia) 6. a dan b (cipherteks) (tidak rahasia) Rianldi Munir - IF5054 Kriptografi 9

Algoritma Membangkitkan Pasangan Kunci 1. Pilih sembarang bilangan prima p ( p dapat di-share di antara anggota kelompok) 2. Pilih dua buah bilangan acak, g dan x, dengan syarat g < p dan 1 x p 2 3. Hitung y = g x mod p. Hasil dari algoritma ini: Kunci publik: tripel (y, g, p) Kunci privat: pasangan (x, p) Catatan: g dan p tidak rahasia, namun diperlukan pada perhitungan enkripsi/dekripsi (lihat algoritma enkripsi/dekripsi di bawah). Algoritma Enkripsi/Dekripsi Enkripsi: 1. Susun plainteks menjadi blok-blok m 1, m 2,, sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, p 1]. 2. Pilih bilangan acak k, yang dalam hal ini 1 k p 2. 3. Setiap blok m dienkripsi dengan rumus a = g k mod p b = y k m mod p Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya. Rianldi Munir - IF5054 Kriptografi 10

Dekripsi 1. Gunakan kunci privat x untuk mendekripsi a dan b menjadi plainteks m dengan persamaan: m = b/a x mod p (Catatan: (a x ) 1 = a p 1 x mod p ) (Catatlah bahwa karena a x g kx (mod p) maka b/a x y k m/a x g xk m/g xk m (mod p), yang berarti bahwa plainteks dapat ditemukan kembali dari pasangan cipherteks a dan b) Contoh 15.3. Misalkan A ingin membangkitkan pasangan kuncinya. A memilih p = 2357, g = 2, dan x = 1751. A menghitung y = g x mod p = 2 1751 mod 2357 = 1185 Jadi, kunci publik A adalah (y = 1185, g = 2, p = 2357) dan kunci privatnya adalah (x = 1751, p = 2357). Enkripsi: Misalkan B ingin mengirim plainteks m = 2035 kepada A (nilai m masih berada di dalam selang [0, 2357 1]). B memilih bilangan acak k = 1520 (nilai k masih berada di dalam selang [0, 2357 1]). B menghitung a = g k mod p = 2 1520 mod 2357 = 1430 b = y k m mod p = 1185 1520 2035 mod 2357 = 697 Rianldi Munir - IF5054 Kriptografi 11

Jadi, cipherteks yang dihasilkan adalah (1430, 697). B mengirim cipherteks ini ke A. Dekripsi: A mendekripsi cipherteks dari B dengan melakukan perhitungan sebagai berikut: (a x ) 1 = a p 1 x mod p = 1430 605 mod 2357 = 872 m = b/a x mod p = 697 872 mod 2357 = 2035 Paten Algoritma ElGamal tidak dipatenkan. Tetapi, algoritma ini didasarkan pada algoritma Diffie-Hellman, sehingga hak paten algoritam Diffie-Hellman juga mencakup algoritma ElGamal. Untunglah hak paten algoritma Diffie-Hellman berakhir pada bulan April 1997, sehingga algoritma ElGamal dapat diimplementasikan untuk aplikasi komersil. Rianldi Munir - IF5054 Kriptografi 12