Upload
phammien
View
218
Download
0
Embed Size (px)
Citation preview
BAB III
KUNCI PUBLIK
Kriptografi dengan metode kunci publik atau asimetri merupakan perkembangan
ilmu kriptografi yang sangat besar dalam sejarah kriptografi itu sendiri. Mekanisme
kriptografi dengan model konvensional lebih didasarkan pada teknik substitusi dan
permutasi dengan kunci yang sama. Hal ini sangat memungkinkan bagi cryptoanalyst
untuk dengan mudah memecahkan algoritma konvensional.
Metode enkripsi kunci publik menawarkan keamanan yang lebih tinggi dan lebih
kompleks daripada metode konvensional. Metode kunci publik tidak hanya berdasar pada
subtitusi dan permutasi saja, tetapi juga perhitungan matematik. Yang lebih penting lagi,
metode kunci publik menggunakan dua buah kunci yang berbeda. Dengan penggunaan
dua kunci, kerahasiaan, distribusi kunci dan otentifikasi semakin dapat ditingkatkan
keamanannya. Namun, pada dasarnya kita tidak dapat mengatakan bahwa metode kunci
publik lebih aman daripada metode konvensional. Keamanan, selain ditunjang oleh
algoritma yang dipakai untuk enkripsi, ditentukan juga oleh panjangnya kunci dan
komputasinya. Hanya saja metode kunci publik lebih memungkinkan untuk
menggunakan kunci yang lebih bervariatif.
3.1. Prinsip Kerja
Metode enkripsi kunci publik membutuhkan dua buah kunci di dalam
algoritmanya, yaitu kunci publik dan kunci pribadi. Kunci publik digunakan untuk
mengenkripsi plaintext menjadi ciphertext dan kunci ini tidak terlalu bersifat rahasia
sehingga dapat diketahui oleh banyak orang. Kunci pribadi digunakan untuk mendekripsi
ciphertext menjadi plaintext dan kunci ini bersifat rahasia sehingga hanya user saja yang
boleh mengetahui kunci ini. Secara umum, prinsip kerja dari metode kunci publik dapat
dijelaskan sebagai berikut :
1. Setiap user masingmasing membuat sepasang kunci untuk pesan yang akan
diterimanya, yaitu kunci publik dan kunci pribadi.
2. Setiap user mengumumkan kunci publiknya masingmasing sehingga user lain
yang akan mengirim pesan kepada user tersebut dapat mengenkripsi pesannya
dengan menggunakan kunci publik dari user yang akan dikirimi.
3. Jika A ingin mengirim pesan kepada user B, maka user A harus menggunakan
kunci publik yang telah diumumkan oleh B untuk mengenkripsi pesan yang akan
dikirimkan kepada B.
4. Ketika B menerima pesan yang berupa ciphertext dari A, maka ia mendekripsinya
dengan kunci pribadi yang dimilikinya. Tidak ada user lain yang dapat
mendekripsi ciphertext tersebut karena hanya B yang tahu kunci pribadinya.
Dengan pendekatan model semacam ini, setiap user dapat mengetahui kunci
publik dari masingmasing user lain, tetapi tidak dapat mengetahui kunci pribadi yang
dimiliki user lain. Selama user dapat menjaga kunci pribadinya masingmasing, dapat
dikatakan bahwa komunikasi pesan masih aman. Setiap saat masingmasing user dapat
mengubah kunci pribadi dan kunci publiknya masingmasing dan mengumumkan kunci
publiknya kembali. Prinsip kerja dari metode ini juga dapat dijelaskan melalui rumus
umum seperti di bawah ini.
• User A ingin mengirim pesan X = [X1,X2,…,XM] dimana M adalah jumlah huruf
alfabet pesan.
• User B membuat dua buah kunci KUb sebagai kunci publik dan KRb sebagai kunci
pribadi dan kemudian memberikan kunci publik tersebut kepada user A.
• Dengan pesan X dan kunci publik KUb, A membentuk ciphertext Y = [Y1,Y2,…,
YN] dengan rumus sebagai berikut :
Y = EKUb(X)
• User B menerima ciphertext Y dan mendekripsi ciphertext tersebut dengan
menggunakan kunci pribadi KRb.
X = DKRb(Y)
• Jika ada pihak ketiga yang mengetahui Y dan KUb, tetapi tidak mengetahui KRb
atau X, maka dia harus membuat estimasi untuk KRb dan X agar dapat
memecahkan ciphertext tersebut menjadi plaintext.
Penggunaan metode kunci publik ini sangat luas dan dapat diimplementasikan ke
dalam berbagai macam aplikasi. Tetapi, secara umum penggunaan metode kunci publik
ini dapat dikategorikan menjadi 3 hal, yaitu :
1. Enkripsi/dekripsi : digunakan untuk aplikasi yang membutuhkan fungsi
enkripsi atau dekripsi.
2. Tanda tangan digital : digunakan untuk aplikasi yang membutuhkan
otentifikasi data, sehingga dapat menjaga integritas data sekaligus tanpa
penolakan.
3. Pertukaran kunci : digunakan untuk aplikasi yang memerlukan pertukaran
kunci yang bersifat rahasia.
Beberapa algoritma metode kunci publik dapat diimplementasikan pada ketiga kategori
diatas, tetapi ada beberapa pula yang bersifat khusus untuk kategori tertentu, misalnya
algoritma RSA, LUC dapat digunakan untuk ketiga kategori tersebut, DSS hanya dapat
digunakan pada tanda tangan digital dan DiffieHellman hanya dapat digunakan pada
kategori pertukaran kunci.
Pada dasarnya, ada beberapa syarat yang hahrus dipenuhi di dalam metode
enkripsi kunci publik ini :
1. Mudah bagi user untuk membentuk sepasang kunci (kunci publik dan kunci
pribadi)
2. Mudah bagi user lain untuk mengetahui kunci publik milik kita dan kemudian
mengenkripsi pesan yang akan dikirimkan kepada kita dengan kunci tersebut.
3. Mudah bagi penerima pesan untuk mendekripsi pesan ciphertext yang telah
diterima dengan kunci pribadi yang dimilikinya.
4. Tidak mudah bagi musuh untuk mengetahui kunci publik untuk menentukan
kunci pribadi yang dimiliki oleh user lain.
3.2. Algoritma RSA
Algoritma ini dikembangkan oleh Ron Rivest, Adi Shamir, dan Len Adleman
pada tahun 1977. Algoritma ini sekaligus menjawab tantangan dari sebuah paper yang
dibuat oleh Diffie dan Hellman tentang pendekatan baru mengenai algoritma kriptografi
yang dapat memenuhi kebutuhan untuk metode kunci publik. Algoritma RivestShamir
Adleman (RSA) ini adalah algoritma metode kunci publik yang paling banyak dipakai
sampai saat ini.
RSA merupakan algoritma yang melibatkan ekspresi dengan fungsi eksponensial.
Plaintext dienkripsi dalam blokblok, dimana setiap blok tersebut mempunyai nilai biner
yang kurang dari angka tertentu (n). Proses enkripsi dan dekripsi untuk plaintext blok M
dan ciphertext blok C dapat digambarkan sebagai berikut :
C = Me mod n
M = Cd mod n = (Me)d mod n = Med mod n
Kedua belah pihak (pengirim dan penerima) harus mengetahui nilai dari n. Pengirim
mengetahui nilai e dan hanya penerima yang tahu nilai d. Jadi, dapat disimpulkan bahwa
kunci publik dari algoritma ini adalah KU = {e,n} dan kunci pribadinya adalah KR =
{d,n}. Untuk penentuan kunci ini juga tidaklah bebas, harus melalui rumus tertentu.
Secara lengkap, langkahlangkah yang harus dilakukan di dalam algoritma RSA adalah
sebagai berikut :
1. Pilih 2 bilangan prima p dan q.
2. Cari n = pq
3. Hitung ø(n)=(p1)(q1)
4. Pilih e yang relatif prima terhadap ø(n) dan kurang dari ø(n)
5. Tentukan d dimana ed = 1 mod ø(n) dan d < ø(n)
6. Didapat kunci publik {e,n} dan kunci pribadi {d,n}.
7. Bilangan p dan q juga harus dirahasiakan sehingga kunci pribadi dapat kita tulis
sebagai {d,p,q}.
8. Dengan kedua kunci tersebut, user sudah dapat melakukan enkripsi ataupun
dekripsi dengan rumus yang sudah ditulis sebelumnya.
Untuk dapat mengetahui dengan lebih jelas prinsip kerja algoritma RSA ini, kita terapkan
langkahlangkah tersebut di dalam contoh berikut.
• Penentuan kunci publik dan kunci pribadi :
1. Pilih 2 bilangan prima p dan q, misalnya 7 dan 17
2. Cari n = pq = 7 x 17 = 119
3. Hitung ø(n)=(p1)(q1) = (71)(171) = 96
4. Pilih e yang relatif prima terhadap ø(n) = 96 dan kurang dari ø(n), dalam
hal ini e = 5
5. Tentukan d dimana ed = 1 mod ø(n) dan d < ø(n), berarti 5 x d = 1 mod
96, d = 77 karena 5 x 77 = 4 x 96 + 1
6. Didapat kunci publik {5,119 } dan kunci pribadi {77,119 }
• Jika kita menggunakan kunci tersebut untuk mengenkripsi pesan M = 19, maka
C = Me mod n = 195 mod 119 = 66
Jadi, ciphertext yang dihasilkan oleh pesan tersebut adalah 66
• Jika kita ingin mendekripsi ciphertext tersebut, kita masukkan rumus dengan
kunci pribadi :
M = Cd mod n = 6677 mod 119 = 19
Dalam memecahkan algoritma RSA ini, seorang cryptoanalyst dapat melakukan
pendekatan sebagai berikut :
• Brute force : mencoba semua kemungkinan kunci pribadi
• Mencoba mencari faktor p dan q, sehingga dapat dihitung ø(n). Dengan
mengetahui ø(n), maka dapat ditentukan faktor d.
• Menentukan ø(n) secara langsung tanpa menentukan p dan q. Hal ini juga dapat
menemukan hasil perhitungan dari faktor d.
• Menentukan d secara langsung, tanpa menentukan ø(n).
3.3. Manajemen Kunci
Permasalahan yang muncul dari kriptografi ini adalah bagaimana
mendistribusikan kunci yang digunakan di dalam algoritma kriptografi tersebut. Dalam
hal ini, kita akan mempelajari bagaimana harus mendistribusikan kunci publik yang akan
digunakan untuk algoritma kriptografi dengan metode kunci publik. Ada beberapa teknik
yang dapat dilakukan di dalam distribusi kunci, tetapi hal tersebut dapat dikategorikan
menjadi 4 hal berikut :
1. Public announcement
2. Publicly available directory
3. Public key authority
4. Publik key certificates
3.3.1. Public Announcement
Kunci publik dapat didistribusikan secara umum, karena realitasnya, kunci publik
adalah kunci umum yang digunakan oleh pengirim pesan untuk mengenkripsi pesan yang
akan dikirimkan kepada kita. Kelemahan dari metode ini adalah bahwa siapapun dapat
mengirimkan kunci publik. Hal ini membawa konsekwensi adanya user lain yang
berpurapura mengirimkan kunci publik atas nama kita.
3.3.2. Publicly Available Directory
Keamanan yang lebih tinggi dapat diperoleh dengan menggunakan sebuah
direktori dinamis yang berisi kunci publik. Pengorganisasian kunci publik dapat menjadi
tanggung jawab dari organisasi tertentu yang dipercaya. Syarat yang harus dipenuhi :
• Organisasi mengatur direktori penyimpanan kunci publik dengan nama dan kunci
publik yang dimiliki oleh user yang bersangkutan.
• Setiap user harus regristrasi terlebih dahulu, sehingga pengaturan direktori kunci
publik dapat dilakukan dengan baik.
• Dengan pengaturan dan regristrasi tersebut, setiap user masih tetap dapat
mengubah kunci publik yang dimilikinya dengan bebas.
• Secara periodik, organisasi yang mengatur direktori kunci publik dapat
mengumumkan direktori tersebut kepada user.
• User yang teregristrasi harus dapat mengakses direktori tersebut secara
elektronis/melalui komputer.
3.3.3. Public Key Authority
Model lain yang lebih aman adalah dengan otentifikasi yang lebih bisa dipercaya
agar user dapat memasuki direktori kunci publik. Pada dasarnya, prinsip kerja metode ini
sama dengan prinsip kerja model sebelumnya yang telah kita pelajari, namun untuk dapat
mengakses direktori harus diotentifikasi terlebih dahulu.
3.3.4. Public Key Certificates
Pendekatan yang lain yang bisa digunakan dalam manajemen kunci adalah
sertifikasi kunci publik. Pendekatan ini pertama kali dikenalkan oleh Kohnfelder. Prinsip
kerja metode ini adalah dengan pembuatan sertifikat yang digunakan oleh user untuk
dapat mempertukarkan kunci.