Minggu, 24 Februari 2019

Symmetric Cryptography


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.
 


New Blog


بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ


Beberapa minggu ini saya menerima banyak masukan tentang karir yang akan saya jalani kedepannya. Salah satu masukan tersebut adalah tentang berlatih menulis. Saya akui pekerjaan menulis ini salah satu pekerjaan paling berat dan paling membuat malas. Jangankan untuk menulis beberapa paragraf, untuk menulis caption pada instagram saja terkadang malas. Beberapa tahun kebelakang sebenarnya saya sempat menulis beberapa tulisan di blog ini tapi berhubung lupa email akhirnya saya tinggalkan begitu saja. Alhasil tulisan yang saya hasilkan hanya buku tugas akhir dan buku thesis saja yang tidak terlalu baik.

Ada hal-hal yang mendesak dari pelajaran menulis ini. Pada beberapa tahun kedepannya saya akan dituntut untuk melaksanakan tri dharma perguruan tinggi yaitu pengajaran, penelitian dan pengabdian masyarakat dimana ketiga hal tersebut berkaitan erat dengan menulis. Pada saat diskusi dengan beberapa teman-teman dosen, mereka menekankan betapa pentingnya belajar menulis ini. Seperi saat melakukan pengajaran, kita dituntut untuk dapat menghasilkan output buku ajar yang nantinya dapat digunakan sebagai bahan materi mata kuliah. Atau pada penelitian, Kemampuan menulis yang baik juga dapat berpengaruh contohnya pada pencarian hibah penelitian, publikasi bahkan pembuatan laporan pertanggung jawaban.

Seperti perkataan Darren Hardy 'amateurs call it genius, master call it practice', tidak ada hal lain yang dapat dilakukan untuk memperbaiki tulisan kita dengan membaca dan terus berlatih. Untuk itu saya menargetkan dua tulisan setiap minggu yang akan di-upload di blog ini entah itu tulisan apapun, bisa materi kuliah, opini pribadi ataupun tulisan random lainnya. Semoga blog ini dapat memberikan manfaat kepada pembaca, entah itu ilmu inspirasi maupun manfaat lainnya.