Jumat, 14 Oktober 2016

KRIPTOGRAFI

Kriptografi
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.

Dasar Kriptografi
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. 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).
  • 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).
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.

Algoritma Simetris dan Asimetris
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.
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
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).

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

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.
Mode Operasi dalam Block Cipher
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.

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 :


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

Tidak ada komentar:

Posting Komentar