KRIPTOGRAFI


KRIPTOGRAFI
1. 1 Latar belakang
Berkat perkembangan teknologi yang begitu pesat memungkinkan manusia dapat berkomunikasi dan saling bertukar informasi/data secara jarak jauh. Antar kota antar wilayah antar negara bahkan antar benua bukan merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring dengan itu tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi yang saling dipertukarkan tersebut semakin meningkat. Begitu banyak pengguna seperti departemen pertahanan, suatu perusahaan atau bahkan individu-individu tidak ingin informasi yang disampaikannya diketahui oleh orang lain atau kompetitornya atau negara lain. Oleh karena itu dikembangkanlah cabang ilmu yang mempelajari tentang cara-cara pengamanan data atau dikenal dengan istilah Kriptografi.

Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi adalah proses dimana informasi/data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal.

Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan menjadi dua jenis yaitu :
• Algoritma simetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi adalah kunci yang sama
• Algoritma asimetris
Dimana kunci yang digunakan untuk proses enkripsi dan dekripsi menggunakan kunci yang berbeda.

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :
• Algoritma block cipher
Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan dengan fungsi enkripsi yang sama dan akan menghasilkan informasi rahasia dalam blok-blok yang berukuran sama.

• Algoritma stream cipher
Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter persatuan persatuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu.

Camellia merupakan algoritma kriptografi simetris blok cipher. Dalam Camellia proses enkripsi dan dekripsi dilakukan pada blok data berukuran 128-bit dengan kunci yang dapat berukuran 128-bit, 192-bit, 256-bit. Algoritma Camellia dikembangkan oleh :
• Kazumaro Aoki (NTT – Nippon Telegraph and Telephone Corp.)
• Tetsuya Ichikawa (Mitsubishi electric Corp.)
• Masayuki Kanda (NTT – Nippon Telegraph and Telephone Corp.)
• Mitsuru Matsui (Mitsubishi electric Corp.)
• Shiho Moriai (NTT – Nippon Telegraph and Telephone Corp.)
• Junko Nakajima (Mitsubishi electric Corp.)
• Toshio Tokita (Mitsubishi electric Corp.)
Dimana versi 1.0 pada bulan Juli 2000, versi 2.0 pada September 2001 dan versi 2.1 pada Febuari 2002.

II Kriptografi

2. 1 Dasar Kriptografi
2. 1. 1 Teori Kriptografi
Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Menurut Bruce Scheiner dalam bukunya “Applied Cryptography”, kriptografi adalah ilmu pengetahuan dan seni menjaga message-message agar tetap aman (secure).
Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:
• Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.
• Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).
• Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.
• Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).

Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas “bocor” dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut), kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :
• Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).
• Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
• Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext.
• Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.
• Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.

Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti.

plaintext ciphertext plaintext

kunci enkripsi kunci dekripsi

Gambar 2.1 Diagram proses enkripsi dan dekripsi
Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi (disamping pula algoritma yang digunakan) sehingga kerahasiaannya sangatlah penting, apabila kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui.
Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi) menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C (ciphertext), notasinya :

Ee(M) – C
Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi) menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M (plaintext), notasinya :

Dd(C) = M
Sehingga dari dua hubungan diatas berlaku :
Dd(Ee(M)) = M
2. 1. 2 Algoritma Simetris dan Asimetris
2. 1. 2. 1 Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm.
Plaintext ciphertext plaintext

kunci enkripsi (K) kunci dekripsi (K)
Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma simetris

Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia (secret-key algorithm).
Kelebihan :
• Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik.
• Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time

Kelemahan :
• Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
• Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”
Contoh algoritma : TwoFish, Rijndael, Camellia
2. 1. 2. 2 Algoritma Asimetris
Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key). Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.

Plaintext ciphertext plaintext

kunci enkripsi (K1) kunci dekripsi (K2)
Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma asimetris
Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi sementara kunci privat (private key) digunakan sebagai kunci dekripsi.
Kelebihan :
• Masalah keamanan pada distribusi kunci dapat lebih baik
• Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit

Kelemahan :
• Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris
• Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.
Contoh algoritma : RSA, DSA, ElGamal
2. 1. 3 Block Cipher dan Stream Cipher
Jika kita melihat berdasarkan ukuran serta format data yang akan diproses, maka algoritma kriptografi dapat dibagi menjadi dua bagian yang utama yaitu:
• Block Cipher, algoritma kriptografi ini bekerja pada suatu data yang berbentuk blok/kelompok data dengan panjang data tertentu (dalam beberapa byte), jadi dalam sekali proses enkripsi atau dekripsi data yang masuk mempunyai ukuran yang sama.
• Stream cipher, algoritma yang dalam operasinya bekerja dalam suatu pesan berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.

Pada algoritma penyandian blok (block cipher), plainteks yang masuk akan diproses dengan panjang blok yang tetap yaitu n, namun terkadang jika ukuran data ini terlalu panjang maka dilakukan pemecahan dalam bentuk blok yang lebih kecil. Jika dalam pemecahan dihasilkan blok data yang kurang dari jumlah data dalam blok maka akan dilakukan proses pading (penambahan beberapa bit).

2. 2 Mode Operasi dalam Block Cipher
\2. 2. 1 Electronic Codebook (ECB)
Pada mode operasi ECB sebuah blok input plaintext dipetakan secara statis ke sebuah blok output ciphertext. Sehingga tiap plaintext yang sama akan menghasilkan ciphertext yang selalu sama pula. Sifat- sifat dari mode operasi ECB :
• Sederhana dan efisien
• Memungkinkan implementasi parallel
• Tidak menyembunyikan pola plaintext
• Dimungkinkan terjadi adanya active attack.

Skema dari mode operasi ECB dapat digambarkan sebagai berikut :

Sender Receiver

Gambar 2.4 Skema Mode Operasi ECB

Cipher Block Chaining (CBC)
Pada mode oparasi ini hasil enkripsi dari blok sebelumnya mempengaruhi hasil enkripsi selanjutnya, atau enkripsi sebeluimnya menjadi feedback pada enkripsi blok saat itu., jadi tiap blok ciphertext bergantung bukan hanya pada blok plaintext-nya tapi bergantung pula pada blok-blok plaintext sebelumnya. Sehingga untuk plaintext yang sama, belum tentu menghasilkan ciphertext yang sama pula.

Skema dari mode operasi CBC dapat digambarkan sebagai berikut :

Sender Receiver

Gambar 2.5 Skema Mode Operasi CBC.

Mula-mula sebelum si pengirim hendak mengirimkan pesannya kepada si penerima, dia terlebih dahulu harus meng-XOR plaintext dengan IV (initialization vector) baru kemudian dienkripsi, setelah itu baru dikirimkan ciphertext pertamanya kepada si penerima. Plaintext ke-2 pun demikian, harus di-XOR terlebih dahulu dengan ciphertext sebelumnya sebelum mengalami proses enkripsi baru kemudian dikirimkan ke si penerima sebagai ciphertext 2 dan seterusnya.
Sifat-sifat dari mode operasi CBC :
• Lebih aman dari active attacks dibandingkan mode operasi ECB
• Error pada satu ciphertext dapat berakibat parah
• Menutupi pola plaintext
• Implementasi parallel belum diketahui

Public Key Crypography

I. Pendahuluan

Kriptografi merupakan kumpulan teknik untuk mengenkode data dan pesan sedemikian sehingga data dan pesan tersebut dapat disimpan dan ditransmisikan dengan aman. Berikut ini beberapa terminologi dasar dari kriptografi serta hal-hal yang berkaitan dengan terminologi tersebut,

• Kriptografi dapat digunakan untuk meningkatkan keamanan komunikasi meskipun komunikasi tersebut dilakukan dengan media komunikasi yang sangat tidak aman (misalnya Internet). Kita juga dapat menggunakan kriptografi untuk melakukan enkripsi file-file sensitif kita, sehingga orang lain tidak dapat mengartikan data-data yang ada
• Kriptografi dapat digunakan untuk memberikan jaminan integritas data serta menjaga kerahasiaan
• Dengan menggunakan kriptografi, maka sangat mungkin untuk meverifikasi asal data dan pesan yang ada menggunakan digital signature
• Pada saat menggunakan metoda kriptografi, hanya kunci sesi yang harus tetap dijaga kerahasiannya. Algoritma, ukuran kunci dan format file dapat dibaca oleh siapapun tanpa mempengaruhi keamanan.

Kriptografi memungkinkan beberapa operasi atau proses terhadap data. Dua buah operasi dasar adalah enkripsi (dengan dekripsi sebagai proses balikannya) dan signing (dengan verifikasi dari signature sebagai proses balikannya). Enkripsi analog dengan memasukkan surat kedalam sebuah amplop sedangkan dekripsi analog dengan membuang amplop dan mengambil data. Signature analog dengan pemberian tanda-tangan terhadap sebuah dokumen dan penanda bahwa dokumen tersebut tidak berubah dari aslinya.

II. Public Key Cryptography dan Fungsi Satu Arah

Public key cryptography (lawan dari symmetric key cryptography) bekerja berdasarkan fungsi satu arah. Fungsi yang dapat dengan mudah dikalkulasi akan tetapi sangat sulit untuk dibalik/invers atau reverse tanpa informasi yang mendetail. Salah satu contoh adalah faktorisasi; biasanya akan sulit untuk memfaktorkan bilangan yang besar, akan tetapi mudah untuk melakukan faktorisasi. Contohnya, akan sangat sulit untuk memfaktorkan 4399 daripada memverifikasi bahwa 53 x 83 = 4399. Public key cryptography menggunakan sifat-sifat asimetrik ini untuk membuat fungsi satu arah, sebuah fungsi dimana semua orang dapat melakukan satu operasi (enkripsi atau verifikasi sign) akan tetapi sangat sulit untuk menginvers operasi (dekripsi atau membuat sign) tanpa informasi yang selengkap-lengkapnya.
Public key cryptography dilakukan dengan menggabungkan secara kriptografi dua buah kunci yang berhubungan yang kita sebut sebagai pasangan kunci publik dan kunci privat. Kedua kunci tersebut dibuat pada waktu yang bersamaan dan berhubungan secara matematis. Secara matematis, kunci privat dibutuhkan untuk melakukan operasi invers terhadap kunci public dan kunci publik dibutuhkan untuk melakukan operasi invers terhadap operasi yang dilakukan oleh kunci privat.
Jika kunci publik didistribusikan secara luas, dan kunci privat disimpan di tempat yang tersembunyi maka akan diperoleh fungsi dari banyak ke satu. Semua orang dapat menggunakan kunci publik untuk melakukan operasi kriptografi akan tetapi hanya orang yang memegang kunci privat yang dapat melakukan invers terhadap data yang telah terenkripsi tersebut. Selain itu dapat juga diperoleh fungsi dari satu ke banyak, yaitu pada saat orang yang memegang kunci privat melakukan operasi enkripsi maka semua orang yang memiliki kunci publik dapat melakukan invers terhadap data hasil enkripsi tersebut.

III. Symmetric Cryptography

Algoritma simetrik merupakan jenis algorima enkripsi yang paling umum dan paling tua. Algoritma ini disebut sebagai simetrik sebab kunci yang sama digunakan untuk enkripsi dan dekripsi. Berbeda halnya dengan kunci yang digunakan pada algoritma kunci publik, kunci yang digunakan pada simetrik key biasanya sering diubah-ubah. Oleh karena itu biasanya kunci pada simetrik key disebut sebagai session key, artinya kunci yang dipakai hanya pada satu sesi proses enkripsi.
Jika dibandingkan dengan algoritma kunci publik, algoritma simetrik key sangat cepat dan oleh karena itu lebih cocok jika digunakan untuk melakukan enkripsi data yang sangat besar. Salah satu algoritma simetrik yang dikenal adalah RC4 dan DES (Data Encryption Standar).
Protokol kriptografi modern pada saat ini banyak yang menggabungkan algoritma kunci publik dengan algoritma simetrik untuk memperoleh keunggulan-keunggulan pada masing-masing algoritma. Algoritma kunci publik digunakan untuk proses pertukaran session key yang berukuran kecil sekitar 16 bytes , sedangkang algoritma simetrik digunakan untuk melakukan enkripsi data yang sesungguhnya.

IV. Enkripsi dan Dekripsi

Dengan menggunakan teknik enkripsi data, sebuah pesan text dapat dienkode sedemikian sehingga sangat tidak beraturan dan sulit untuk dikembalikan ke pesan asal tanpa kunci rahasia. Pesan tersebut dapt berupa ASCII, file database atau data apapun yang akan kita kirimkan atau kita simpan melalui media yang tidak aman. Dalam kontek kriptografi, plaintext adalah data yang belum di enktripsi sedangkan ciphertext adalah data yang telah dienkripsi.
Jika sebuah pesan telah dienkripsi maka pesan tersebut dapat disimpan atau ditransmisikan dalam media yang tidak aman namun tetap terjaga kerahasiannya. Kemudian, pesan tersebut dapat didekripsi kedalam bentuk aslinya. Ilustrasi proses tersebut dapat dilihat pada gambar dibawah.

Pada saat pesan dienkripsi maka kunci enkripsi digunakan untuk proses tersebut. Hal ini analog dengan kunci yang biasa kita gunakan untuk mengunci gembok pintu. Untuk mendekripsikan pesan, maka kunci dekripsi yang cocok harus digunakan. Dalam hal ini, sangatlah penting untuk membatasi akses kepada kunci dekripsi, sebab semua orang yang dapat melihat kunci dekripsi berarti dapat pula mendekripsikan semua pesan yang telah dienkripsi dengan menggunakan kunci enkripsi yang bersesuaian.

V. Hash dan Digital Signature

Digital signature digunakan ketika kita ingin memberikan plaintext dan kita ingin bahwa penerima pesan mengetahui bahwa pesan tersebut datangnnya dari kita dan tidak ada perubahan apapund didalam pesan selama proses penyimpanan atau transmisi. Melakukan signing terhadap pesan tidak akan mengubah isi serta bentuk pesan tersebut, dan hasil sign dapat kita sisipkan atau kita simpan dalam bentuk lain untuk menyertai pesan asli.
Digital signature dapat dihasilkan dengan menggunakan algoritma kunci publik. Sebuah kunci privat digunakan untuk menghasilkan signature dan kunci publik yang bersesuaian digunakan untuk mevalidasi sign.
Digital signature memberikan keuntungan tambahan selain enkripsi. Dengan cara ini, pengguna dapat memperoleh jaminan bahwa pesan yang diterima berasal dari pemberi sign dan isinya tidak berubah sama seperti pada saat dilakukan sign. Dokumen dapat saja hanya diberi sign tanpa dienkripsi, akan tetapi satu hal yang harus kita ingat bahwa proses enkripsi yang baik selalu diawali dengan proses signing.
Sign digital dibuat dengan mengenkripsi hash dari dokumen dengan kunci privat. Hash dari dokumen biasanya merupakan sidik jari miniatur dari dokumen yang bersangkutan. Fungsi hash yang digunakan disini sama dengan fungsi hash yang digunakan sehari-hari dimana input berapapun akan menghasilkan output 16 byte (128 bit). Karena hash merupakan fungsi satu arah, maka sangat sulit untuk membuat dokumen lain yang memiliki hash string yang sama. Ilustrasi berikut ini menggambarkan proses signing.

VI. Kesimpulan

Teknik kriptografi dengan menggunakan kunci publik akan tetap berkembang berdasarkan meningkatnya kebutuhan akan sistem keamanan data yang lebih tinggi. Dengan menggabungkan kekuatan enkripsi algoritma kunci publik dan kecepatan enkripsi algoritma simetrik maka akan diperoleh sistem enkripsi yang kuat dan memiliki proses yang cepat.

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s