Kriptografi Kunci Publik ( Asimetry Key) Algoritma RSA Materi 7
description
Transcript of Kriptografi Kunci Publik ( Asimetry Key) Algoritma RSA Materi 7
Kriptografi Kunci Publik (Asimetry Key)Algoritma RSA
Materi 7
Pemrograman Jaringan
Dosen: Eko PrasetyoTeknik Informatika UMG
2012
Kriptografi Kunci Publik
2
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
3
Plaintext: 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
4
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)
5
Yang perlu dilakukan:1. Algoritma yang sama dengan
kunci yang sama digunakan untuk enkripsi dan dekripsi
2. Pengirim dan penerima harus men-share algoritma dan kunci
Keamanan yang diperlukan:1. Kunci harus dijaga
kerahasiaannya2. Tidak mungkin dilakukan
decipher pesan jika tidak ada informasi yang tersedia
3. Dengan mengetahui algoritma ditambah sampel ciphertext harus tidak cukup untuk menentukan kunci
Yang perlu dilakukan:1. Satu algoritma dipakai untuk
enkripsi dan dekripsi dengan pasangan kunci, satu untuk enkripsi satu untuk dekripsi
2. Pengirim dan penerima harus mempunyai satu dari kunci yang cocok (tidak satu kunci yang sama)
Keamanan yang diperlukan:1. Satu daru dua kunci harus dijaga
kerahasiaannya2. Tidak mungkin dilakukan
decipher pesan jika tidak ada informasi yang tersedia
3. Dengan mengetahui algoritma ditambah satu dari dua kunci, ditamnah sampel ciphertext harus tidak cukup untuk menentukan kunci yang lain
Ada tiga skema cryptosystem
6
Secrecy Authentication
Y = E(PUb, X)X = D(PRb, Y)
Y = E(PRa, X)X = E(PUa, Y)
Ada tiga skema cryptosystem
7
Secrecy dan Authentication
Z = E(PUb, E(PRa, X))X = D(PUa, E(PRb, Z))
Penerapan Kriptosystem Kunci Publik
8
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 Yes Yes
Elliptic Curve
Yes Yes Yes
Diffie-Hellman
No No Yes
DSA No Yes No
Algoritma RSA
9
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
10
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
11
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
13
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 ?