Academia.eduAcademia.edu

PUBLIC-KEY CRYPTOGRAPHY PRINCIPLES

2020

PUBLIC-KEY CRYPTOGRAPHY PRINCIPLES • Struktur Enkripsi Public-Key • Aplikasi Public-Key Cryptosystems • Ketentuan Public-Key Cryptography Struktur Enkripsi Public-Key • Pertama kali diusulkan oleh Diffie dan Hellman tahun 1976 • Public-key cryptography adalah asymmetric encryption • Menggunakan 2 key yang berbeda untuk enkripsi dan dekripsi  confidentiality, key distribution, dan authentication • Public key dapat diakses oleh semua partisipan • Private key dibangkitkan secara lokal oleh setiap partisipan dan tidak perlu didistribusikan • Selama user dapat melindungi private key-nya, komunikasi berlangsung aman • Kapanpun user dapat mengubah private key dan mem-publish public key untuk mengganti public key yang lama Komponen Enkripsi Public-Key • Plaintext • Algoritma Enkripsi • Public key dan private key • Ciphertext • Algoritma Dekripsi Aplikasi Public-Key Cryptosystems • Encryption/ Decryption • Digital Signature • Key Exchange Ketentuan Public-Key Cryptography 1. Receiver B dapat membangkitkan sepasang public key PUb dan private key PRb 2. Sender A dapat mengetahui public key dan pesan yang dienkripsi M untuk membangkitkan ciphertext C 3. Receiver B dapat mendekripsi ciphertext menggunakan private key untuk memperoleh pesan asli Ketentuan Public-Key Cryptography 4. Opponent tidak dapat dengan mudah mengetahui public key PUb untuk menentukan private key PRb 5. Opponent tidak dapat dengan mudah mengetahui public key PUb dan ciphertext C, untuk memperoleh pesan asli M 6. Salah satu dari 2 key dapat digunakan untuk enkripsi, dan key yang lain dapat digunakan untuk dekripsi PUBLIC-KEY CRYPTOGRAPHY ALGORITHMS • RSA Algorithm • Diffie – Hellman Key Exchange • Digital Signature Standard (DSS) • Elliptic – Curve Cryptography (ECC) Algoritma RSA • Dikembangkan pertama kali oleh Ron Rivest, Adi Shamir, dan Len Adleman di Massachusetts Institute of Technology (MIT) tahun 1977, kemudian dipublikasikan pertama kali tahun 1978 • RSA adalah block cipher, dimana plaintext dan ciphertext adalah bilangan bulat antara 0 dan n – 1 • Sender dan receiver harus mengetahui nilai n dan e, sementara hanya receiver yang mengetahui nilai d Algoritma RSA • Ketentuan yang harus dipenuhi untuk algoritma RSA : 1. Dapat menemukan nilai e, d, n yaitu Med mod n = M, M < n 2. Relatif mudah menghitung Me dan Cd untuk semua nilai M < n 3. Sulit menentukan d untuk e dan n yang diketahui e M d n C n M Algoritma RSA Contoh Perhitungan untuk Key Generation 1. Pilih 2 bilangan prima, p dan q, misal p = 17 dan q = 11 2. Hitung nilai n yang merupakan modulus untuk proses enkripsi dan dekripsi, n = p × q = 17 × 11 = 187 3. Hitung Euler totient n, yaitu bilangan bulat positif kurang dari n dan “relatively prime” terhadap n, ø(n) = (p - 1)(q - 1) = 16 × 10 = 160 4. Pilih bilangan bulat e, dimana e merupakan “relatively prime” terhadap ø(n) dan kurang dari ø(n), maka dipilih e = 7 5. Menentukan d dimana de mod ø(n) = 1 dan d < 160. Sehingga nilai d = 23 karena 23 × 7 = 161 = (1 × 160) + 1 Hasil : public key PU = {e, n} = {7, 187} private key PR = {d, n} = {23, 187} Contoh Perhitungan Enkripsi dan Dekripsi RSA • Plaintext M = 88 , dimana M < n • Ciphertext C = Me (mod n) C  M (mod n) e • Ciphertext C = 11 • Plaintext C = Me (mod n) M  C (mod n) d  88 (mod 187)  11 (mod 187)  11  88 7 23