Kryptography Classik dan Vigenere Chyper

A. KRYPTOGRAPHY CLASSIK

Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain.
Dalam perkembangannya, kriptografi juga digunakan untuk mengidentifikasi pengiriman pesan dan tanda tangan digital dan keaslian pesan dengan sidik jari digital. (Dony Ariyus, 2005)
Di dalam kriptografi kita akan sering menemukan berbagai istilah atau terminology. Beberapa istilah yang harus diketahui yaitu :

1. Pesan, plaintext, dan cipherteks

Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah (plaintext) atau teks jelas (cleartext). Agar pesan tidak dapat dimengerti maknanya oleh pihak lain yang tidak berkepentingan, maka pesan perlu disandikan kebentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus dapat ditransformasikan kembali menjadi plaintext semula agar dapat diterima dan bisa dibaca.


2. Pengirim dan penerima
Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Pengirim tentu menginginkan pesan dapat dikirm secara aman, yaitu pengirim yakin bahwa pihak lain tidak dapat membaca isi pesan yang dikirim. Solusinya adalah dengan cara menyandikan pesan menjadi cipherteks.

3. Enkripsi dan dekripsi

Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks disebut dekripsi (decryption) atau deciphering.

4. Cipher dan kunci

Algoritma kriptogarfi disebut juga cipher, yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering.Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen – elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemen- elemen antara dua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan cipherteks, maka fungsi enkripsi E memetakan P ke C.

E(P) = C
Dan fungsi dekripsi D memetakan C ke P
D(C) = P
Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan semula, maka kesamaan berikut harus benar,
D(E(P)) = P

Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai :
dan CPEK=)(PCDK=)(
Dan kedua fungsi ini memenuhi
PPEDKK=))((
Keterangan :
P = plainteks
C = cipherteks
K = kunci
EK = proses enkripsi menggunakan kunci K
DK = proses dekripsi menggunakan kunci K

5. Sistem kriptografi
          Kriptografi membentuk sebuah sistem yang dinamakan sistem Kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam kriptografi, cipher hanyalah salah satu komponen saja.

6. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak - banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain penyadap : enemy, adversary, intruder, interceptor, bad guy.

7. Kriptanalisis dan kriptologi

Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis ( cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Jika seorang kriptografer (cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi maupun kriptanalisis keduanya saling berkaitan.

2.1.2 Tujuan kriptografi
Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk memberi layanan keamanan. Yang dinamakan aspek – aspek keamanan sebagai berikut :

1. Kerahasiaan (confidentiality)

Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak – pihak yang tidak berhak. Di dalam kriptografi layanan ini direalisasikan dengan menyandikan plainteks menjadi cipherteks. Misalnya pesan “harap datang pukul 8” disandikan menjadi “trxC#45motyptre!%”. istilah lain yang senada dengan confidentiality adalah secrecy dan privacy.

2. Integritas data (data integrity)

Adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: “ apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”.

3. Otentikasi (authentication)

Adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak – pihak yang berkomunikasi ( user autehentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sember pesan.
  
4. Nirpenyangkalan (non-repudiation)
Adalah layanan untuk menjaga entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.

2.2 Serangan terhadap kriptografi

2.2.1 Jenis – jenis serangan

Serangan ( “serangan kriptanalisis”) terhadap kriptografi dapat dikelompokkan dengan beberapa cara :

1. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas dua macam, yaitu :

a. Serangan pasif (passive attack)

Pada serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannaya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan antara lain :

1. wiretapping : penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan menggunakan sambunganperangkat keras.

2. electromagnetic eavesdropping : penyadap mencegat data yang ditrasnmisikan melalui saluran wireless, misalnya radio dan microwave.

3. acoustic eavesdropping : menangkap gelombang suara yang dihasilkan oleh suara manusia.


b. Serangan aktif (active attack)
Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian cipherteks , mengubah cipherteks, menyisipkan potongan cipherteks palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya.

2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, maka serangan dapat dikelompokkan menjadi lima jenis, yaitu:

1. Ciphertext-only attack

Ini adalah jenis serangan yang paling umum namun paling sulit, karena informasi yang tersedia hanyalah cipherteks saja. Kriptanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Untuk itu kriptanalis menggunakan beberapa cara, seperti mencoba semua kemungkinan kunci secara exhaustive search. Menggunkan analis frekuensi, membuat terkaan berdasarkan informasi yang diketahui,dan sebagainya.

2. Known-plaintext attack

Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden.

3. Chosen-plaintext attack

Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteks-plainteks yang lebih mengarahkan penemuan kunci.

4. Chosen-ciphertext attack
Ini adalah jenis serangan dimana kriptanalis memilihcipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi.

5. Chosen-text attack

Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext attack dan chosen-chiphertext attack.

3. Berdasarkan teknik yang digunakan dalam menemukan kunci, maka serangan dapat dibagi menjadi dua, yaitu :

1. Exhaustive attack atau brute force attack

Ini adalah serangan untuk mengungkap plainteks atau kunci dengan menggunakan semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis memiliki sejumlah cipherteks dan plainteks yang bersesuaian.

2. Analytical attack

Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua kemungkinan kunci tetapi menganalisis kelemahan algoirtma kriptografi untuk mengurangi kemungkinan kunci yang tidak ada. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis dapat menggunakan pendekatan matematik dan statistik dalam rangka menemukan kunci.

3. Related-key attack

Kriptanalis memiliki cipherteks yang dienkripsi dengan dua kunci berbeda. Kriptanalis tidak mengetahui kedua kunci tersebut namun ia mengetahui hubungan antara kedua kunci, misalnya mengetahui kedua kunci hanya berbeda 1 bit.
  
4. Rubber-hose cryptanalysis
Ini mungkin jenis serangan yang paling ekstrim dan paling efektif. Penyerang mengancam, mengirim surat gelap, atau melakukan penyiksaan sampai orang yang memegang kunci memberinya kunci untuk mendekripsi pesan.

B. VIGENERE CHYPER

Vigenere cipher adalah salah satu jenis kriptografi klasik yang pada dasarnya adalah melakukan substitusi cipher abjad majemuk (polyalphabetic substitution), yaitu mengubah plaintext dengan kunci tertentu  biasanya berupa sebuah kata atau kalimat yang berulang sepanjang plaintext sehingga didapatkan ciphertext. Tetapi salah satu kelemahan dari cipher ini adalah ia mudah diserang dengan metode Kasiski untuk mengetahui panjang huruf yang digunakan sebagai kunci. Untuk lebih memperkuat cipher ini, banyak modifikasi dilakukan oleh para peneliti. Salah satu cara yang saya ajukan sebagai tugas makalah ini adalah Vigenere cipher dengan metode pembangkitan kunci dengan menggunakan bilangan euler. Pada dasarnya, metode ini adalah sebuah cara untuk mendapatkan suatu kunci berbentuk acak yang digenerate dari perkalian matematis antara kunci yang dimasukkan dengan bilangan Euler. Diharapkan dengan metode ini, kunci yang dihasilkan untuk Vigenere cipher menjadi lebih panjang dan acak sehingga akan menyulitkan kriptanalisis untuk menyerang dengan metode Kasiski maupun dengan analisis frekuensi.
Kata kunci: Vigenere cipher, bilangan euler, polyalphabetic substitution, perkalian matematis
Pembangkitan kunci ini menggunakan perkalian secara matematis dengan bilangan Euler kemudian setiap angka hasil perkalian akan dikelompokkan sesuai dengan panjang digit dari kunci. Untuk lebih jelasnya, sebuah kunci yang dibentuk dari sebuah kata kemudian diterjemahkan ke dalam bentuk angka. Angka tersebut dikalikan dengan bilangan Euler sesuai dengan panjang yang diinginkan kemudian didapatkan angka hasil perkalian yang selanjutnya digunakan sebagai kunci.
Sebagai contoh:
            Plaintext                          : KILL KING TONIGHT OR DIE  (20 karakter panjangnya)
Kunci (dalam huruf)        : BUDI
Diubah menjadi
Kunci (dalam angka)       : 1 20 3 8 (panjang angka menjadi 5 digit)

Kemudian ambil bilangan euler dengan panjang sesuai dengan plaintext (yaitu 20 digit): 2.7182818284590452353 (didapatkan darihttp://www.mu.org/~doug/exp/100000.html )
Berikutnya, kunci dalam bentuk angka dikalikan bilangan euler adalah: 12038 x 27182818284590452353 yaitu 327226766509899865425414
Dari sini kita pisahkan lagi sesuai dengan panjang angka kunci (5 digit) menjadi:
3 27 2 26 76 6 50 98 9 98 65 4 25 41 4

Kemudian kita ubah menjadi bentuk huruf lagi (mod 26) sehingga menjadi
D B C CG Y G FA U J JI N E CF P E

Sehingga kunci yang akan digunakan dalam melakukan encrypt adalah:DBCCGYGFAUJJINECFPEMaka didapatkan hasil sebagai berikut:
Plaintext              : KILL KING TONIGHT OR DIE
Kunci                   : DBCC GYGF AUJJINE CF PED
Ciphertext           : NJNN QGTL TIWROUX QW SMH
Kekuatan dari metode ini adalah pengelompokan hasil perkalian antara kunci dengan bilangan euler yang sangat sulit untuk diterka serta bentuk acak dari kunci yang sangat panjang, sehingga akan menyulitkan kriptanalisis untuk menyerang dengan menggunakan metode Kasiski maupun analisis frekuensi.


1 komentar:

Arfian Hidayat mengatakan...

sangat menarik artikelnya, saya juga merangkum tulisan tentang vigenere, dapat dilihat disini http://arfianhidayat.com/algoritma-kriptografi-vigenere-cipher
Ada DEMO PROGRAM-nya juga, semoga membantu

Posting Komentar