Permasalahan Kriptografi Kunci Privat

Pada penjelasan sebelumnya kita lihat bahwa proses enkripsi menggunakan kunci dalam proses penyandiannya. Pada mulanya semua proses kriptografi menggunakan satu kunci yang sama untuk mengunci data dan membuka data. Jadi, kerahasiaan kunci ini sangat esensial. Jika kunci ini jatuh ke tangan pihak yang tidak berwenang, maka terbukalah rahasia. Penggunaan satu kunci ini membuat sistem pengamanan data tadi disebut private-key cryptosystem, atau sistem kriptografi berbasis kunci privat. Penekanan ada pada kata “privat”, dimana kunci ini harus dirahasiakan, privat. Selain itu sistem ini juga disebut symmetric cryptosystem, atau sistem kriptografi simetris karena kunci yang dipakai untuk proses enkripsi sama dengan kunci yang digunakan pada proses dekripsi. Simetris. Dalam aplikasinya, sistem kripto kunci privat ini memiliki beberapa masalah. Masalah pertama adalah kesulitan dalam distribusi kunci. (Key Distribution Problem.) Jika Anwar (A) ingin berkomunikasi melalui email dengan Broto (B) dengan mengenkripsi datanya (karena tidak yakin jalur data mereka aman dari penyadapan), apa kunci yang mereka gunakan? Bagaimana cara mereka untuk membuat kesepakatan kunci yang akan digunakan? Jika kunci tersebut dikirimkan melalui jalur komunikasi yang dianggap tidak aman tersebut, maka ada kemungkinan disadap orang. Ada beberapa solusi terhadap masalah ini, misalnya Anwar dan Broto bertemu dahulu secara fisik kemudian mendiskusikan kunci rahasia mereka. Atau mereka menggunakan media lain (misalnya telepon, fax, handphone, SMS) untuk mengirimkan kunci rahasia mereka. Pendekatan ini disebut dengan out of band communication. Tapi masalahnya tidak semua orang memiliki cara komunikasi lain, atau kemungkinannya cara lain menjadi mahal dan tidak nyaman. Bayangkan jika anda harus mengkomunikasikan password ini, “s%Xy7&*!ih198907@1”, kepada lawan bicara anda melalui telepon. Sangat tidak nyaman dan sulit. Kesulitan akan semakin bertambah jika kedua belah pihak belum pernah kenal satu sama lainnya. Misalnya kita membuat sebuah situs web untuk melakukan transaksi online. Kita belum kenal dengan (calon) pembeli yang mengunjungi situs web kita. Bagaimana memilih kunci rahasia antara kita dengan sang pembeli tersebut? (Ini permasalahan key exchange.)
Permasalahan kedua adalah peningkatan jumlah kunci yang eksponensial terhadap jumlah pengguna. Pada contoh sebelumnya, jika Anwar ingin berkomunikasi dengan Broto, mereka harus punya satu kunci rahasia. Bagaimana jika Anwar ingin berkomunikasi dengan Dodi? Tentunya mereka tidak bisa menggunakan kunci yang sama dengan kunci Anwar-Broto. Anwar dan Dodi harus sepakat untuk menggunakan satu kunci yang lain, kunci Anwar-Dodi. Bagaimana jika Broto ingin berkomunikasi dengan Dodi? Maka akan ada kunci Broto-Dodi yang berbeda dengan kunci yang sudah-sudah. Jika skenario ini kita teruskan dengan menambahkan pengguna lain, maka dapat kita lihat peningkatan jumlah kunci secara eksponensial. Jika n merupakan jumlah pengguna yang akan saling berkomunikasi, maka jumlah kunci yang ada adalah: jumlah kunci = (n) (n-1) / 2
Mari kita coba tabel jumlah kunci yang digunakan dengan jumlah pengguna.

Dapat kita lihat pada tabel di atas bahwa peningkatan jumlah kunci meledak
secara eksponensial. (Dari rumus pun dapat dilihat bahwa jumlah kunci
merupakan hasil kuadrat dari n.) Dengan hanya seratus ribu pengguna saja,
sudah ada lima (5) milyar kunci. Padahal jumlah pengguna Internet sangat

TABLE 5. Jumlah Kunci dan Pengguna
Jumlah Pengguna (n)                    Jumlah Kunci
10                                                           45
100                                                        4950
1000                                                     499.500
10.000                                                49.995.00
100.000                                             5 milyar

Dapat kita lihat pada tabel di atas bahwa peningkatan jumlah kunci meledak secara eksponensial. (Dari rumus pun dapat dilihat bahwa jumlah kunci merupakan hasil kuadrat dari n.) Dengan hanya seratus ribu pengguna saja, sudah ada lima (5) milyar kunci. Padahal jumlah pengguna Internet sangat jauh  lebih besar dari seratus ribu orang. Jika satu kunci membutuhkan penyimpanan sebesar 1 kByte, maka dibutuhkan 5 TerraBytes untuk menyimpan kunci 100.000 orang. Jika kita berbicara tentang transaksi di Internet, e-commerce, maka bisa kita lihat dua kesulitan di atas sudah membuat kriptografi kunci privat menjadi tidak cocok. Jumlah pengguna e-commerce lebih dari 100.000 orang. Sementara itu key distribution juga sulit. Harus dicari sistem lain yang lebih baik.

Kriptografi Kunci Publik
Kesulitan dalam penggunaan kriptografi kunci privat membuat banyak orang berpikir keras untuk mencari solusinya. Salah satu ide yang muncul adalah bagaimana jika kita membuat sebuah sistem penyadian dengan dua kunci, dimana satu kunci digunakan untuk proses enkripsi dan satu kunci lain digunakan untuk proses dekripsi. Ide ini muncul dari Ralph Merkle ketika dia menjadi mahasiswa di sebuah perguruan tinggi. Ide tersebut dikemukakannya kepada dosennya. Namun ditolak mentah-mentah. Ide dua kunci tersebut tidak akan dapat dilaksanakan. Itu ide gila. Ralph Merkle kemudian menulis sebuah artikel yang dikirimkan ke journal, tapi artikel ini juga ditolak. Bagaimana ide itu bermula? Saya ambil sebuah cerita. (Cerita ini bukan contoh yang digunakan oleh Ralph Merkle.) Ceritanya adalah sebagai berikut.
Anwar dan Broto ingin bertukar pesan atau benda melalui pos. Mereka tidak ingin orang lain, termasuk pak Pos, mengetahui isi kirimannya. Anwar punya ide yang brilian. Anwar bertemu dengan Broto dan memberikan sebuah gembok yang terbuka, belum terkunci. Sementara itu Anwar tetap memegang kunci gemboknya tersebut. Kita sebut gembok ini adalah gembok-A. Ketika Broto ingin mengirimkan pesan (atau benda) kepada Anwar, dia letakkan pesan tersebut di dalam sebuah peti. Beserta pesan tersebut Broto juga memasukkan gembok dia (kita sebut gembok-B) yang terbuka juga. Kemudian pesan dan gembok-B ini dimasukkan di peti dan
peti dikunci dengan gembok-A. Dalam kondisi seperti ini, tidak ada seorang pun yang dapat membuka peti itu kecuali Anwar, karena hanya Anwar yang memiliki kunci gembok-A. Broto pun setelah mengunci peti tersebut tidak bisa membukanya kembali. Di sisi penerima, Anwar, dia menerima peti yang sudah terkunci dengan gembok-A. Tentu saja dia dengan mudah dapat membuka peti tersebut karena dia memiliki kunci gembok-A. Setelah dia buka, maka dia dapat melihat pesan yang dikirimkan oleh Broto beserta gembok-B milik Broto yang terbuka. Jika kemudian Anwar ingin mengirimkan jawaban atau pesan kepada Broto, maka dia dapat memasukkan jawabannya ke dalam peti dan tidak lupa mengikutsertakan gembok-A lagi yang terbuka ke dalamnya. Peti tersebut kemudian dikunci dengan gembok-B lagi, yang hanya dapat dibuka oleh Broto. Proses ini dapat berlangsung terus menerus. Contoh cerita di atas tentu saja masih belum sempurna. Inti yang ingin disampaikan adalah bahwa ada kemungkinan untuk melakukan pengamanan dengan tidak menggunakan enkripsi kunci privat. Penerima dan pengirim pesan dapat menggunakan kunci yang berbeda untuk pengamanan datanya. Di tempat lain, ada seorang yang bernama Whitfield Diffie, juga memiliki ide yang mirip. Setelah mengembara kesana kemari, akhirnya Diffie bertemu dengan Martin Hellman yang menjadi profesor di Stanford University. Keduanya kemudian merumuskan ide public-key cryptography dalam sebuah makalah yang berjudul “New Directions in Cryptography” [10] di tahun 1976. Lucunya Diffie dan Hellman tidak kenal Ralph Merkle dan tidak tahu bahwa ada ide yang mirip. Pasalnya, artikel Merkle ditolak oleh berbagai publikasi. Ide utama pada public-key cryptography adalah kunci yang digunakan untuk melakukan proses enkripsi berbeda dengan proses dekripsi. Hal ini dimungkinkan dengan penggunaan rumus matematik yang indah. Namun pencarian rumus matematik yang mana merupakan persoalan tersendiri.Setelah keluarnya makalah tersebut, banyak orang yang mulai menaruh perhatian pada kriptografi kunci publik. Ternyata ide Ralph Merkle benar
juga. Bahkan akhirnya Ralph Merkle mendapat penghargaan Kanellakis
Award dari ACM dan Kobayashi Award dari IEEE. Salah satu kelompok yang tertarik kepada ide kriptografi kunci publik tersebut adalah kelompok di MIT yang terdiri atas Ron Rivest, Adi Shamir, dan Len Adleman. Mereka mencoba mencari rumus matematik yang dapat mengimplementasikan ide kunci publik tersebut. Akhirnya setelah sekian lama berusaha, mereka menemukan algoritmanya yang kemudian dikenal dengan nama RSA (yang merupakan singkatan dari nama keluarga ketigaorang tersebut)1. Algoritma ini kemudian mereka patenkan. Saat ini banyak aplikasi di Internet yang menggunakan algoritma RSA ini.
Pada kriptografi kunci publik, seorang pengguna memiliki dua buah kunci yang saling berhubungan (secara matematik yang akan dijelaskan kemudian). Kunci pertama disebut kunci publik. Kunci ini boleh diketahui oleh umum. Bahkan kunci ini harus diketahui oleh pihak yang ingin mengirimkan informasi rahasia ke pengguna. Umumnya kunci publik ini disimpan di sebuah database. Kunci kedua disebut kunci privat. Kunci ini tidak boleh diketahui oleh siapa pun kecuali oleh pengguna itu sendiri. Itulah sebabnya dia disebut privat. Mari kita ambil contoh pengamanan data dengan menggunakan kriptografi kunci publik ini. Sebelum dimulai, Anwar dan Broto masing-masing sudah memiliki sepasang kunci. Anwar memiliki Kpublik-A dan Kprivat-A sebagai pasangan kunci publik dan privatnya. Sementara itu Broto memiliki Kpublik-B dan Kprivat-B sebagai pasangan kunci publik dan privatnya.Kunci publik milik Anwar dan Broto keduanya disimpan di database (website) umum sehingga dapat diakses oleh siapa saja.
Misalkan Anwar ingin mengirimkan sebuah pesan kepada Broto. Anwar mencari kunci publik Broto. Setelah dicek di database Anwar menemukannya, Kpublik-B. Maka Anwar kemudian mengenkripsi pesannya dengan sebuah algoritma kunci publik (yang akan dijelaskan kemudian) dengan kunci Kpublik-B. Algoritma kunci publik (seperti misalnya RSA, ECC) memiliki sifat bahwa jika dia dikunci oleh sebuah kunci publik, maka dia hanya dapat dibuka dengan menggunakan kunci privat pasangannya. Dalam contoh di atas, pesan dikunci dengan menggunakan Kpublik-B. Maka pesan di atas hanya dapat dibuka dengan Kprivat-B. Satu-satunya orang yang memiliki akses terhadap Kprivat-B adalah Broto. Dengan kata lain, pesan di atas hanya dapat dibuka oleh Broto. Anwar pun sebagai pengirim, setelah mengunci pesan tersebut dengan Kpublik-B, tidak dapat membuka pesan itu kembali. Demikianlah proses enkripsi yang terjadi pada kriptografi kunci publik. Karena kunci yang digunakan untuk melakukan enkripsi berbeda dengan kunci yang digunakan untuk proses dekripsi, maka sistem ini sering juga disebut dengan asymetric cryptosystem, kriptografi kunci asimetrik.

Kriptografi Gabungan
Sejak dikembangkannya kriptografi kunci publik, selalu timbul pertanyaan mana yang lebih baik antara kripto kunci publik dengan kripto kunci privat. Para pakar kriptografi mengatakan bahwa keduanya tidak dapat dibandingkan karena mereka memecahkan masalah dalam domain yangberbeda. Kriptografi kunci privat (simetrik) merupakan hal yang   terbaik untuk mengenkripsi data. Kecepatannya dan keamanan akan choosenciphertext attack merupakan kelebihannya. Sementara itu kriptografi dengan menggunakan kunci publik dapat melakukan hal-hal lain lebih baik, misalnya dalam hal key management. ( Budi Rahardjo )

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: