Kriptografi Kunci Publik (Asimetry Key) Algoritma RSA Materi 7 Pemrograman Jaringan Dosen: Eko Prasetyo Teknik Informatika UMG 2012
Kriptografi Kunci Publik Dua masalah pada symmetric encryption: Distribusi kunci Penggunaan kunci secara luas akan membuka peluang ketidakamanan data yang dienkripsi. Contoh symmetric encryption: Caesar, Hill, Vigenere, DES, Triple DES, dsb. Algoritma asimetry menggunakan satu kunci untuk enkripsi, dan kunci yang lain (tapi terhubung) untuk melakukan dekripsi. Karakteristik penting: Komputasinya infeasible untuk menentukan kunci dekripsi jika diketahui hanya algoritma kriptografi dan kunci enkripsi Menggunakan dua kunci yang terkait, satu untuk enkripsi, satu untuk dekripsi.
Istilah penting Plaintext: Encryption algorithm: Pesan atau data yang dapat dibaca yang dimasukkan kedalam algoritma sebagai input. Encryption algorithm: Algoritma enkripsi yang melakukan bermacam-macam transformasi pada plaintext Public and private keys: Pasangan kunci yang terpilih sehingga jika yang satu digunakan untuk enkripsi maka yang lain digunakan untuk dekripsi. Ciphertext: Pesan yang segera dihasilkan sebagai output. Tergantung pada plaintext dan kunci. Untuk sebuah pesan, dua kunci yang berbeda akan menghasilkan dua ciphertext yang berbeda. Decryption algorithm: Algoritma yang menerima cipher text dan mencocokkan kunci sehingga menghasilkan plaintext yang asli.
Sistem Kriptografi Kunci Publik Setiap user membangkitkan pasangan kunci, untuk enkripsi dan dekripsi Setiap user memberikan satu dari dua kunci ke publik (diketahui orang luar), sedangkan satu kunci lagi tetap dirahasiakan. Setiap user memegang kumpulan kunci publik dari orang lain Jika Bob ingin mengirim pesan rahasia ke Alice, Bob mengenkrip pesan menggunakan kunci publik Alice Ketika Alice menerima pesan, dia mendekrip menggunakan kunci private nya.
Perbandingan (enkripsi konvensional) dan (enkripsi kunci publik) Yang perlu dilakukan: Algoritma yang sama dengan kunci yang sama digunakan untuk enkripsi dan dekripsi Pengirim dan penerima harus men-share algoritma dan kunci Keamanan yang diperlukan: Kunci harus dijaga kerahasiaannya Tidak mungkin dilakukan decipher pesan jika tidak ada informasi yang tersedia Dengan mengetahui algoritma ditambah sampel ciphertext harus tidak cukup untuk menentukan kunci Yang perlu dilakukan: Satu algoritma dipakai untuk enkripsi dan dekripsi dengan pasangan kunci, satu untuk enkripsi satu untuk dekripsi Pengirim dan penerima harus mempunyai satu dari kunci yang cocok (tidak satu kunci yang sama) Keamanan yang diperlukan: Satu daru dua kunci harus dijaga kerahasiaannya Tidak mungkin dilakukan decipher pesan jika tidak ada informasi yang tersedia Dengan mengetahui algoritma ditambah satu dari dua kunci, ditamnah sampel ciphertext harus tidak cukup untuk menentukan kunci yang lain
Ada tiga skema cryptosystem Secrecy Authentication Y = E(PUb, X) X = D(PRb, Y) Y = E(PRa, X) X = E(PUa, Y)
Ada tiga skema cryptosystem Secrecy dan Authentication Z = E(PUb, E(PRa, X)) X = D(PUa, E(PRb, Z))
Penerapan Kriptosystem Kunci Publik Encryption/decryption: Pengirim mengenkrip pesan menggunakan kunci publik penerima. Digital Signature: Pengirim “menandatangani” pesan dengan kunci private. Key Exchange: Dua pihak bekerjasama untuk menukarkan kunci. Algoritma Enkripsi/Dekripsi Digital Signature Key Exchange RSA Yes Elliptic Curve Diffie-Hellman No DSA
Algoritma RSA Diperkenalkan oleh: Rivest-Shamir-Adleman tahun 1978 Algoritma enkripsi: C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n C adalah Chiphertext M adalah Message e dan d adalah invers multiplikatif dari modulo ø(n), dimana ø(n) adalah Euler totient function. Untuk p, q bilangan prima, ø(n) = (p-1)(q-1) e.d ≡ 1 mod ø(n) d ≡ e1 mod ø(n)
RSA e adalah kunci publik d adalah kunci privat Misal, A mempunyai kunci e dan d. Kunci d dipegangnya, kunci e diberikan ke B. Jika user B ingin mengirim M ke A (hanya A yang boleh membuka M), maka menggunakan e untuk menghitung C dengan C = Me mod n kemudian mentransmisikan C. Disisi penerima ciphertext, user A mendekrip dengan kunci d untuk menghitung M = Cd mod n
Contoh Pilih dua bilangan prima: p = 17, dan q = 11 Hitung n = p.q = 17 x 11 = 187 Hitung (n) = (p-1)(q-1) = 16 x 10 = 160 Pilih e yang relatif prima terhadap (n) = 160 dan kurang dari (n), pilih e = 7. Pilih d, dengan syarat e.d ≡ 1 (mod 160), Maka nilai d yang cocok adalah 23. Karena 23 * 7 = 161 = 160 + 1. public key PU = {7,187} private key PR = {23,187}.
Latihan 1 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 !
Latihan 2 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 akam membuka pesan dalam ciphertext, kunci apa yang digunakan ?
Any Question ?