Salah satu komponen utama dari kirim-mengirim pesan adalah adanya kriptografi. Pesan apapun itu baik itu pesan fisik maupun pesan elektronik. Bahkan teknik kriptografi sudah dilakukan oleh Julius Caesar dalam pengiriman pesan pada taktik militer. Julius Caesar melakukan teknik kriptografi subtitusi dengan pergeseran tiga langkah pada setiap huruf yang ia tulis.
Pada keamanan jaringan terdapat dua jenis kriptografi yang umum yaitu
symmetric cryptography dan
asymmetric cryptography. Pada postingan kali ini akan dilakukan pembahasan tentang kriptografi simetrik. Dalam suatu teknik kriptografi terdapat tiga komponen penting yaitu Pesan yang akan dikirim(
plain text), Kunci(
key), dan pesan yang akan dienkripsi(
chipher text)
. Konsep dasar dari suatu kriptografi adalah merubah pesan yang akan kita kirim berupa
plain text dengan menggunakan
key dengan cara enkripsi menjadi
cipher text dan merubahnya kembali menjadi
plain text dengan cara dekripsi menggunakan
key. Konsep ini dapat dilihat pada Gambar 1.
|
Gambar 1. Konsep dasar kriptografi |
Yang membedakan antara symmetric cryptography dan asymmetric cryptography adalah penggunaan kunci pada saat enkripsi dan dekripsi. Pada symmetric cryptography kunci yang digunakan saat enkripsi dan dekripsi adalah kunci yang sama yaitu secret key, berbeda dengan asymmetric cryptography yang menggunakan kunci yang berbeda yaitu public key untuk proses enkripsi dan private key pada proses dekripsi. Proses enkripsi dan dekripsi pada symmetric cryptography dan asymmetric cryptography dapat dilihat pada Gambar 2.
|
Gambar 2. Symmetric vs Asymmetric Cryptography |
Pada proses
symmetric cryptography ini terdapat dua teknik dasar yang nantinya akan menjadi jenis-jenis teknik
symmetric cryptography lainnya. Kedua teknik tersebut adalah teknik subtitusi dan teknik transposisi.
Teknik Subtitusi
Teknik ini mengganti setiap isi karakter atau bit dalam suatu pesan dengan karakter atau bit lainnya. Pola penggantian pesan ini yang akan menjadi secret key pada teknik ini. Contoh paling sederhana pada teknik ini yaitu menggunakan Caesar cipher yang menggeser 3 langkah pada setiap huruf yang ditulis. Berikut contoh program dalam python beserta hasil dari teknik Caesar cipher yang dapat dilihat pada Gambar 3.
|
Gambar 3. Teknik subtitusi Caesar cipher |
Karena perubahan pada karakter dirasa masih kurang dan mudah untuk dicari
secret key-nya oleh
crypto analyst maka pada penggunaan teknik ini biasanya berada pada level bit. Setiap karakter akan dibuat ascii-nya terlebih dahulu serta dikonversi kedalam bilangan biner. Setelah dibuat bilangan biner maka setiap potongan bit akan dienkripsi menggunakan
secret key dan menghasilkan
cipher text. Salah satu teknik yang dapat digunakan pada subtitusi tiap potongan bit ini adalah Vernam cipher. Vernam cipher menggunakan operasi XOR pada saat melakukan proses enkripsi dan dekripsi. Operasi XOR digunakan karena operasi ini dapat kembali merubah bit kembali ke semula dengan pengali yang sama seperti pada contoh berikut:
Teknik Transposisi
Berbeda dengan teknik subitusi yang mengganti setiap isi pesan pada plain text, pada teknik transposisi pesan yang berada plain text tetap hanya saja letak karakter atau bit pada pesan yang nantinya akan diubah-ubah. Salah satu teknik transposisi yang sederhana adalah teknik rail fence cipher atau biasa disebut juga dengan zigzag cipher. Pada teknik ini setiap plain text akan ditulis diagonal kebawah sebanyak jumlah key yang diminta. Cipher text yang ditulis nanti berupa ejaan secara horizontal per baris. Berikut adalah contoh dari teknik transposisi dari text "TEKNIK_ELEKTRO_UNIVERSITAS_SULTAN_AGENG_TIRTAYASA" sebanyak 3 key
T N _ E R U V S A S T _ E _ R Y A
E I E K O N E I S U A A N T T A
K K L T _ I R T _ L N G G I A S
Dengan begitu cipher key yang dihasilkan adalah: TN_ERUVSAST_E_RYAEIEKONEISUAANTTAKKLT_IRT_LNGGIAS
Berikut adalah program pyhton pada teknik
rail fence cipher dan hasil yang didapatkan saat menulikan
plain text "TEKNIK_ELEKTRO_UNIVERSITAS_SULTAN_AGENG_TIRTAYASA". Hasil program dapat dilihat pada Gambar 4.
|
Gambar 4. Rail Fence Cipher |
Sebagai dasar dari symmetric cryptography, kedua teknik ini nantinya akan menjadi dasar dari teknik-teknik symmtric cryptography lainnya. Pada kriptografi modern semua pesan akan dijadikan biner dari setiap konversi ASCII dari masing-masing karakter. Setelah dibuat binernya akan dibuat blok-blok biner yang terpisah-pisah dan dapat dijadikan beberapa jenis teknik symmetric cryptography lainnya. Teknik-teknik ini akan dibahas pada postingan selanjutnya.