Transcript Document

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:





2
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:


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:


3
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.





4
Perbandingan
(enkripsi konvensional) dan (enkripsi kunci publik)
Yang perlu dilakukan:

1.
2.

Algoritma yang sama dengan
kunci yang sama digunakan
untuk enkripsi dan dekripsi
Pengirim dan penerima harus
men-share algoritma dan kunci
Yang perlu dilakukan:
1.
2.
Keamanan yang diperlukan:

1.
2.
3.
5
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

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:
1.
2.
3.
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
Y = E(PUb, X)
X = D(PRb, Y)
6
Authentication
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))
7
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
8
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
Diperkenalkan oleh: Rivest-Shamir-Adleman tahun 1978
Algoritma enkripsi:










9
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
10
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}.
11
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 ?
13
Any Question ?