Senin, 13 Oktober 2014

Kriptografi



Pada pertemuan kali ini, kami membahas mengenai Kriptografi.
Apa sih Kriptografi itu?  Ilmu sekaligus seni untuk
menjaga keamanan pesan

Pesan Plaintext atau Cleartext
Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran komunikasi data, dsb)
Pesan dapat disimpan di dalam media perekaman (kertas, storage, dsb).



Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan disandikan ke bentuk lain.
Bentuk pesan yang tersandi disebut ciphertext atau cryptogram. Tidak bergantung dengan suatu program.



Ciphertext harus dapat ditransformasi kembali menjadi plaintext.

Ilustrasi

Komponen utama kriptografi
 
Pada prinsipnya, Kriptografi memiliki 4 komponen utama yaitu:
Plaintext, yaitu pesan yang dapat dibaca
Ciphertext, yaitu pesan acak yang tidka dapat dibaca
Key, yaitu kunci untuk melakukan teknik kriptografi
Algorithm, yaitu metode untuk melakukan enkrispi dan dekripsi

Tujuan kriptografi

Menjaga kerahasiaan (confidentiality) pesan.
Keabsahan pengirim (user authentication).
Keaslian pesan (message authentication).
Anti-penyangkalan (non-repudiation).
 
Kriptografi

Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption) atau enciphering
Proses mengembalikan ciphertext menjadi plaintextnya disebut dekripsi (decryption) atau deciphering



Deskripsi enkripsi

Enkripsi (Encryption) adalah sebuah proses menjadikan pesan yang dapat dibaca (plaintext) menjadi pesan acak yang tidak dapat dibaca (ciphertext). Berikut adalah contoh enkripsi yang digunakan oleh Julius Caesar, yaitu dengan mengganti masing-masing huruf dengan 3 huruf selanjutnya (disebut juga Additive/Substitution Cipher)

Contoh Enkripsi
 
Plain Text: TEST ONLY


Cipher Text: &^*#^@%&*
 
Dekripsi merupakan proses kebalikan dari enkripsi dimana proses ini akan mengubah ciphertext menjadi plaintext dengan menggunakan algortima „pembalik‟ dan key yang sama.
Sehingga Kata yang telah di Enkripsi akan dapat dimengerti oleh pembaca.

Definisi

Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan
Praktisi (pengguna kriptografi) disebut kriptografer (cryptographer).
Algoritma kriptografi adalah:
◦aturan/metode untuk enkripsi dan dekripsi
◦fungsi matematika yang digunakan untuk enkripsi dan dekripsi.
Kunci adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi.
Sistem kriptografi (atau cryptosystem) adalah algoritma kriptografi, plainteks, cipherteks, dan kunci.
Penyadap adalah orang yang mencoba menangkap pesan selama ditransmisikan. Nama lain: enemy, adversary, intruder, interceptor, bad guy
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang diberikan. Pelakunya disebut kriptanalis.
Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis.


Kriptografi

Persamaan kriptografer dan kriptanalis:
Keduanya sama-sama menerjemahkan cipherteks menjadi plainteks

 Perbedaan kriptografer dan kriptanalis:
Kriptografer bekerja atas legitimasi pengirim atau penerima pesan
Kriptanalis bekerja atas nama penyadap yang tidak berhak.

Aplikasi kriptografi:
Pengiriman data melalui saluran komunikasi
Penyimpanan data di dalam disk storage.

Contoh-contoh pada pengiriman data melalui saluran komunikasi


ATM tempat mengambil uang
Internet
Militer
Wi-Fi
Pay TV
GSM

Contoh-contoh pada data tersimpan:
1.Dokumen Teks

Plainteks (plain.txt): Ketika saya berjalan-jalan di pantai, saya menemukan banyak sekali kepiting yang merangkak menuju laut. Mereka adalah anak-anak kepiting yang baru menetas dari dalam pasir. Naluri mereka mengatakan bahwa laut adalah tempat kehidupan mereka
Cipherteks (cipher.txt):
Ztâxzp/épêp/qtüyp{p}<yp{p}/sx/•p}âpx;_épêp/|t}t|äzp}/qp}êpz/étzp{x/zt•xâx}v_êp}v/|tüp}vzpz/|t}äyä/{päâ=/\tützp_psp{pw/p}pz<p}pz/zt•xâx}v/êp}v/qpüä_|t}tâpé/spüx/sp{p|/•péxü=/]p{äüx_|ttüzp/|t}vpâpzp}/qpwåp/{päâ/psp{pw_ât|•pâ/ztwxsä•p}/|tützp=

2.Kriptografi dokumen gambar

3.Kriptografi Dokumen Basis Data



Algoritma Enkripsi dan Dekripsi
Kekuatan algoritma kriptografi TIDAK ditentukan dengan menjaga kerahasiaan algoritmanya.
Pada sistem kriptografi modern, kekuatan kriptografinya terletak pada kunci, yang berupa deretan karakter atau bilangan bulat, dijaga kerahasiaannya

Algoritma Enkripsi dan Dekripsi
Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi menjadi
E(P,K) = C
D(C,K) = P
dan kedua fungsi ini memenuhi
D(E(P,K),K) = P



Teknik dasar kriptografi
 -Substitusi
 -Blocking
 -Permutasi
 -Ekspansi
 -Pemampatan

Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi.
Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak.
Contoh
1.Tabel subsitusi
2.Caesar Chipher
3.ROT 13

Table subsitusi 



Caesar Chipher

Algoritma enkripsi sederhana pada masa raja Julius Caesar. Tiap huruf alfabet digeser 3 huruf



Model perhitungan

Misalkan setiap huruf dikodekan dengan angka:
A = 0, B = 1, C = 2, …, Z = 25
Maka secara matematis enkripsi dan dekripsi pada Caesar cipher dirumuskan sebagai berikut:
Enkripsi: ci = E(pi) = (pi + 3) mod 26
Dekripsi: pi = D(ci) = (ci – 3) mod 26
Jika pergeseran huruf sejauh k, maka :
Enkripsi: ci = E(pi) = (pi + k) mod 26
Dekripsi: pi = D(ci) = (ci – k) mod 26
k = kunci rahasia
Pada Caesar Cipher, k = 3
Untuk alfabet ASCII 256 karakter :
Enkripsi: ci = E(pi) = (pi + k) mod 256
Dekripsi: pi = D(ci) = (ci – k) mod 256

Contoh soal

Plainteks : MATH
Cipherteks: RFYM
k = 5
p1 = „M‟ = 12 c1 = E(12) = (12 + 5) mod 26 = 17 = „R‟
p2 = „A‟ = 0 c2 = E(0) = (0 + 5) mod 26 = 5 = „F‟
p3 = „T‟ = 19 c3 = E(19) = (19 + 5) mod 26 = 24 = „Y‟
p4 = „H‟ = 7 c4 = E(7) = (7 + 5) mod 26 = 12 = „M‟

ROT13

Pada sistem ini sebuah huruf digantikan dengan huruf yang letaknya 13 posisi darinya.
Sebagai contoh, huruf “A” digantikan dengan huruf “N”, huruf “B” digantikan dengan huruf “O”, dan seterusnya.
·        Secara matematis, hal ini dapat dituliskan sebagai:

C ROT13 = (M)
C ROT13 = (M)

Untuk mengembalikan kembali ke bentuk semulanya dilakukan proses enkripsi 

ROT13 dua kali.

M = ROT13(ROT13(M))


Blocking
Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen.
Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini.
Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya.


Jika plaintext adalah 5 TEKNIK DASAR KRIPTOGRAFI maka hasil chipertext ) . Jika menggunakan teknik blocking dengan 1blok berisi 4 karakter.
Gambar

 
Jadi ciphertext yang dihasilkan dengan teknik ini adalah
"5K G KRTDRAEAIFKSPINAT IRO".
Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal.

Permutasi

-Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi. Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi.
-Dalam teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.
-Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama.
-Untuk contoh diatas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan aturan permutasi sebagai berikut :
 Gambar


Dengan menggunakan aturan diatas, maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut :



Ciphertext yang dihasilkan dengan teknik permutasi ini adalah "N ETK5 SKD AIIRK RAATGORPIF".

Ekspansi
Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran "an". Bila suatu kata dimulai dengan huruf vokal atau bilangan genap, ditambahkan akhiran "i". Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut : 

 
Ciphertextnya adalah "5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN". Aturan ekspansi dapat dibuat lebih kompleks. Terkadang teknik ekspansi digabungkan dengan teknik lainnya, karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan.

Pemampatan
Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan. Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ketiga secara berurutan. Karakterkarakter yang dihilangkan disatukan kembali dan disusulkan sebagai "lampiran" dari pesan utama, dengan diawali oleh suatu karakter khusus, dalam contoh ini digunakan "&". Proses yang terjadi untuk plaintext kita adalah :


Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali.
Dengan menggunakan kelima teknik dasar kriptografi diatas, dapat diciptakan kombinasi teknik kriptografi yang amat banyak, dengan faktor yang membatasi sematamata hanyalah kreativitas dan imajinasi kita. Walaupun sekilas terlihat sederhana, kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks, dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern.


Algoritma Kriptografi :
Berdasarkan jenis kunci yang digunakan :
o Algoritma Simetris
o Algoritma Asimetris

Berdasarkan besar data yang diolah :
o Algoritma Block Cipher
o Algoritma Stream Cipher

Berdasarkan jenis kunci yang digunakan:

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.
 Berdasarkan jenis kunci yang digunakan:


Kelebihan algoritma simetris :

-Kecepatan operasi lebih tinggi bila dibandingkan
dengan algoritma asimetrik.
-Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time

Kelemahan Algoritma Simetris
-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”

Berdasarkan besar data yang diolah:

-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 juga. Contoh: RC4, Seal, A5, Oryx.

-Stream Cipher
Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter per-satuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu. Contohnya: Blowfish, DES, Gost, Idea, RC5, Safer, Square, Twofish, RC6, Loki97.

Kriptografi Dengan Kunci Simetris/Private

-Bentuk kriptografi tradisional
-Kunci Simetris digunakan untuk mengenkrip dan mendekrip pesan
-Kunci Simetris juga berkaitan dengan otentikasi

Masalah utama: 


-Pengirim dan penerima menyetujui kunci simetris tanpa ada orang lain yang mengetahui.
-Butuh metode dimana kedua pihak dapat berkomunikasi tanpa takut disadap


Contoh Metode Kriptografi Dengan Kunci Simetris/Private
Metode Caesar Cipher
- Huruf A-Z diberi nilai 0-25
- Karakter pesan dijumlah dengan kunci lalu di modulo 26
Metode Vigenere Cipher
- Huruf A-Z diberi nilai 0-25
- Kunci terdiri dari sekumpulan random karakter
- Karakter pesan dijumlah dengan kunci lalu di modulo 26
Metode Book Key Cipher
- Menggunakan teks dari sebuah sumber (misalnya buku) untuk
mengenkrip plainteks
- Karakter pesan dijumlah dengan kunci lalu di modulo 26

Contoh Metode Kriptografi Dengan Kunci Simetris/Private - Metode DES (Data Encryption Standard) - Metode Triple DES Melakukan 3 kali pengenkripan - Metode AES (Advanced Encryption Standard) Menggantikan DES (karena dapat dibobol) - Metode Rijndael Block Cipher - Metode IDEA (Internatinal Data Encryption Algorithm) - Metode RC5 dan RC6

Kunci Nirsimetris/Publik
-Setiap orang memiliki sepasang kunci, kunci publik dan kunci private.
-Kunci publik dipublikasikan
-Kunci private disimpan rahasia dan tidak boleh ditransmisikan atau dipakai bersama



Contoh Metode Kriptografi Dengan Kunci NirSimetris/Publik - Metode RSA (Ronald Rivest, Adi Shamir, Leonard Adleman) - Metode Diffie Hellman Key Exchange - Metode El Gamal

One-Way Function / Fungsi Hash
-Merupakan fungsi satu arah yang dapat menghasilkan ciri (signature) dari data (berkas)
-Fungsi yang memproduksi output dengan panjang tetap dari input yang berukuran variabel
-Perubahan satu bit saja akan mengubah keluaran hash secara drastis
-Digunakan untuk menjamin integritas dan digital signature
-Plaintext yang di hash, tidak dapat dikembalikan ke bentuk asalnya.
-Oleh karena itu Hash sering disebut sebagai one-way Hash, proses mengubah plaintext menjadi bentuk unik dari plaintext.
-Hasil dari hash algorithm disebut hash atau digest
Contoh:
-MD5 (Message Diggest)
-Hasilnya 128-bit
-SHA (Secure Hash Function)
-Hasilnya 160-bit

HASH ALGORITHM
-Contoh penggunaan Hash Function adalah pada mesin ATM.
-Pengguna memiliki nomer PIN
-Nomer PIN tersebut di hash dan tersimpan dalam pita magnet yang ada dalam ATM.


Steganography
-Membuat seolah-olah pesan tidak ada
-Film: “Mercury rising”, “Beautiful mind”
-Cryptography
-Transposition (letters arranged)
-Substitution (letters substituted with other letters)