KRIPTOGRAFI KUNCI PUBLIK (public-key cryptography) Topik Pengamanan Jaringan Eko Prasetyo Teknik Informatika Universitas Muhammadiyah Gresik 2011
Istilah Plaintext: Encryption algorithm: Public and private keys: 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.
Latar Belakang Dua masalah pada symmetric encryption: Distribusi kunci Penggunaan secara luas akan membuka peluang ketidakamanan data yang dienkripsi. Contoh Asymmetric encryption: Vigenere, DES, Triple DES, dsb.
Public-Key Cryptosystem: Secrecy Y = E(PUb, X) X = D(PRb, Y) Public-Key Cryptosystem: Authentication
Algoritma RSA (Rivest-Shamir-Adleman) Diperkenalkan oleh: Rivest-Shamir-Adleman Algoritma enkripsi: C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n C adalah Chiphertext M adalah Message e and 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)
Skema RSA e adalah kunci publik d adalah kunci privat Misal, A mempunyai kunci e dan d. Kunci e dipengangnya, kunci d diberikan ke B. Jika user A ingin mengirim M ke B, maka menggunakan e untuk menghitung C dengan C = Me mod n kemudian mentransmisikan C. Disisi penerima ciphertext, user B mendekrip dengan kunci d untuk menghitung M = Cd mod n
Contoh Pilih dua bilangan prima: p = 11, dan q = 17 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 = 4 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 = 80 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 ?