Kriptografi Kunci Publik Kustanto 11/22/2018
Analogi Kriptografi Kunci Publik Kunci enkripsi di umumkan ke publik, sehingga dapat di ketahui oleh siapapun. Siapapun dapat mengirim pesan yang dienkripsi dengan kunci publik tersebut, tetapi hanya penerima yang dapat mendekripsikan pesan tersebut, karena hanya ia yang mengetahui kunci pprivatnya sendiri. Kriptografi ini ibarat Kotak Surat yang sudah ada lubang untuk memasukkan surat. Kriptografi kunci-publik: Bob mengirimi Alice gembok dalam keadaan tidak terkunci (gembok = kunci publik Bob, kunci gembok = kunci privat Bob). 11/22/2018
Penulis makalah kriptografi Kunci Publik Makalah pertama perihal kriptografi kunci-publik ditulis oleh Diffie-Hellman (ilmuwan dari Stanford University) di IEEE Judul makalahnya “New Directions in Cryptography”. 11/22/2018
Gambar Whitfield Diffie dan Martin Hellman, penemu kriptografi kunci-publik 11/22/2018
Kriptografi kunci-nirsimtri disebut juga kriptografi kunci-publik Pada kriptografi kunci-publik, masing-masing pengirim dan penerima mempunyai sepasang kunci: 1. Kunci publik: untuk mengenkripsi pesan 2. Kunci privat: untuk mendekripsi pesan. Ee(m) = c dan Dd(c) = m 11/22/2018
Misalkan: Pengirim pesan: Alice Penerima pesan: Bob Alice mengenkripsi pesan dengan kunci publik Bob Bob mendekripsi pesan dengan kunci privatnya (kunci privat Bob) Sebaliknya, Bob mengenkripsi pesan dengan kunci publik Alice Alice mendekripsi pesan dengan kunci privatnya (kunci privat Alice) Dengan mekanisme seperti ini, tidak ada kebutuhan mengirimkan kunci rahasia (seperti halnya pada sistem kriptografi simetri 11/22/2018
Kriptografi Kunci-publik (http://budi.insan.co.id/courses/ec7010) Public key Public key repository Private key Alice Bob Encryption Decryption Plaintext Plaintext Ciphertext My phone 555-1234 My phone 555-1234 L)8*@Hg 11/22/2018
Kunci enkripsi dapat dikirim melalui saluran yang tidak perlu aman (unsecure channel). Saluran yang tidak perlu aman ini mungkin sama dengan saluran yang digunakan untuk mengirim cipherteks. 11/22/2018
11/22/2018
Dua keuntungan kriptografi kunci-publik: Tidak diperlukan pengiriman kunci rahasia Jumlah kunci dapat ditekan 11/22/2018
Kriptografi kunci-publik didasarkan pada fakta: 1. Komputasi untuk enkripsi/dekripsi pesan mudah dilakukan. 2. Secara komputasi hampir tidak mungkin (infeasible) menurunkan kunci privat, d, bila diketahui kunci publik, e. Ket: D=Dekripsi E=enkripsi 11/22/2018
Diberikan bilangan bulat n. Faktorkan n menjadi faktor primanya Pembangkitan sepasang kunci pada kriptografi kunci-publik didasarkan pada persoalan integer klasik sebagai berikut: 1. Pemfaktoran Diberikan bilangan bulat n. Faktorkan n menjadi faktor primanya Contoh: 10 = 2 * 5 60 = 2 * 2 * 3 * 5 252601 = 41 * 61 * 101 213 – 1 = 3391 * 23279 * 65993 * 1868569 * 1066818132868207 Semakin besar n, semakin sulit memfaktorkan (butuh waktu sangat lama). Algoritma yang menggunakan prinsip ini: RSA 11/22/2018
Kriptografi Kunci-Simetri vs Kriptografi Kunci-publik Kelebihan kriptografi kunci-simetri: Proses enkripsi/dekripsi membutuhkan waktu yang singkat. Ukuran kunci simetri relatif pendek Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja. 11/22/2018
Kelemahan kriptografi kunci-simetri: Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi. 11/22/2018
Kelebihan kriptografi kunci-publik: Hanya kunci privat yang perlu dijaga kerahasiaannya oleh seiap entitas yang berkomuniaksi. Tidak ada kebutuhan mengirim kunci kunci privat sebagaimana pada sistem simetri. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang. Dapat digunakan untuk mengamankan pengiriman kunci simetri. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan (akan dijelaskan pada materi kuliah selanjutnya) 11/22/2018
Kelemahan kriptografi kunci-publik: Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks). Ukuran kunci relatif lebih besar daripada ukuran kunci simetri. 11/22/2018
Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block cipher). Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dsb) yang menjadi dasar pembangkitan kunci. 11/22/2018
Analogi kriptografi kunci-simetri dan kriptografi kunci-publik dengan kotak surat yang dapat dikunci dengan gembok. Kriptografi kunci-simetri: Alice dan Bob memiliki kunci gembok yang sama Kriptografi kunci-publik: Bob mengirimi Alice gembok dalam keadaan tidak terkunci (gembok = kunci publik Bob, kunci gembok = kunci privat Bob). 11/22/2018
Aplikasi Kriptografi Kunci-Publik Meskipun masih berusia relatif muda (dibandingkan dengan algoritma simetri), tetapi algoritma kunci-publik mempunyai aplikasi yang sangat luas: 1. Enkripsi/dekripsi pesan Algoritma: RSA, Rabin, ElGamal 2. Digital signatures Tujuan: membuktikan otentikasi pesan/pengirim Algoritma: RSA, ElGamal, DSA, GOST 3. Pertukaran kunci (key exchange) Tujuan: mempertukarkan kunci simetri Algoritma: Diffie-Hellman 11/22/2018
KONSEP DASAR KRIPTOGRAFI KUNCI PUBLIK 11/22/2018
Algoritma RSA RSA adalah sistem sandi yang sangat kokoh untuk menyandi ataupun menterjemahkan sandi RSA menggunakan operasi pemangkatan 11/22/2018
Algoritma RSA memiliki besaran sbb: p dan q bilangan prima (rahasia) n=p.q (tidak rahasia) n=(p-1)(q-1) (rahasia) e(kunci emkripsi) (tdak rahasia) d (kunci dekripsi) (rahasia) m(planteks) (rahasia) c(cipherteks) (tidak rahasia) 11/22/2018
Algoritma membangkitkan pasangan kunci Pilih dua bilangan prima sembarang untuk nilai p dan q Hitung n=p*q -(sebaiknya p ≠ q, sebab jika p=q maka n=p² Hitung φ(n)=(p-1)(q-1) Pilih kunci publik, e, yang relatif prima terhadap φ(n). Bangkitkan kunci privat dengan menggunakan persamaan: e*d=1 (mod φ(n)). ---> e*d=1 (mod φ(n)) ekivalen dengan : e*d=kφ(n) + 1, sehingga secara sederhana d dapat dicari dengan: d =(kφ(n) + 1) /e 6. Kunci publik adalah pasangan (e,n) 7. Kunci privat adalah pasangan (d,n) 11/22/2018
Contoh: Alice akan membangkitkan kunci publik dan kunci privat miliknya. Alice memilih p=47 dan q=71 (dlm praktek nilai p dan q haruslah bilangan yang besar), alice menghitung, n=p*q= 47*71 =3337 dan φ(n)=(p-1)(q-1) = (47-1)(71-1)=46*70 =3220 Alice memilih kunci publik e=79, karena 79 relatif prima dengan 3220 (alice mengumumkan nilai e dan n kepada publik), selanjutnya Alice menghitung kunci privat (d), d =(kφ(n) + 1) /e = ((k*3220) + 1) /79, jika nilai k=1,2,3,.., (misalkan nilai k=25), maka d= 1019 (kunci privat ini harus dirahasiakan oleh Alice), sehingga didapatkan: Kunci publik: (e=79, n=3337) Kunci privat: (d=1019, n=3337) 11/22/2018
Contoh penggunaan algoritma Misal p = 47 dan q = 71 -(bilangan prima) n = p*q = 3337 (p-1)(q-1) = 46 * 70 = 3220 Pilih e secara acak misalkan e =79 d = (kφ(n) + 1)/e =1019 Misal pesan yang akan di kirim : m = 688 232 687 966 668 003 Maka nilai m di bagi menjadi 6 blok, yaitu : m1 = 688 m2 = 232 m3 = 687 m4 = 966 m5 = 668 m6 = 003 11/22/2018
m = 688 232 687 966 668 003 Enkripsi blok pertama adalah m^e mod n 688 ^79 mod 3337 = 1570 = c1 232 ^79 mod 3337 = 2765 = c2 687 ^79 mod 3337 = 2091 = c3 966 ^79 mod 3337 = 2276 = c4 668 ^79 mod 3337 = 2423 = c5 003 ^79 mod 3337 = 158 = c6 Dengan cara yang sama untuk setiap blok maka di peroleh : c = 1507 2765 2091 2276 2423 158 Deskripsi dari c ini adalah m= c^d mod n , sehingga 1570^1019 mod 3337 = 688 = m1 2765^1019 mod 3337 = 232 = m2 2091 ^1019 mod 3337 = 6871 = m3 2276^1019 mod 3337 = 966 = m4 2423 ^1019 mod 3337 = 668 = m5 158 ^1019 mod 3337 =003 = m6 m = 688 232 687 966 668 003 11/22/2018
Latihan_1 Bob mengirim pesan ke Alice. Pesan yang akan dikirim oleh Alice adalah: m=HARI INI Carilah kunci publik dan privatnya! Buktikan kebenaran kunci publik dan kunci privat yang dibangkitkan untuk melakukan enkripsi dan dekripsi pesan! 11/22/2018
Latihan 2 Jika p = 3, dan q = 11. Message = ABC Bagaimana kunci publik dan kunci privatnya ? Bagaimana ciphertext dari pesan ketika orang lain ingin mengenkripnya dengan kunci publik ? Buktikan hasil ciphertext tersebut benar, dengan mendekripnya kembali menjadi plaintext menggunakan kunci privat ! 11/22/2018
Latihan 3 Jika p = 5, dan q = 17. Message = ABC Bagaimana kunci publik dan kunci privatnya? Jika pemilik kunci, ingin mengirim pesan tersebut, kunci apa yang digunakan? Publik atau privat? Jika penerima akan membuka pesan dalam ciphertext, kunci apa yang digunakan? 11/22/2018
End Of Session To Day 11/22/2018