Rabu, 01 Januari 2014

Kriptografi

kriptografi
Kemajuan teknologi di bidang komputer memungkinkan ribuan orang dan komputer di seluruh duniaterhubung dalam satu dunia maya yang dikenal sebagai cyberspace atau Internet. Begitu juga ratusan organisasi seperti perusahaan, lembaga negara, lembaga keuangan, militer dan sebagainya.Tetapi sayangnya, kemajuan teknologi selalu diikuti dengan sisi buruk dari teknologi itu sendiri. Salah satunyaadalah rawannya keamanan data sehingga menimbulkan tantangan dan tuntutan akan tersedianya suatusistem pengamanan data yang sama canggihnya dengan kemajuan teknologi komputer itu sendiri. Ini adalah latar belakang berkembangnya sistem keamanan data untuk melindungi data yang ditransmisikan melalui suatu jaringan komunikasi.

Ada beberapa cara melakukan pengamanan data yang melalui suatu saluran, salah satu diantaranya adalah kriptografi. Dalam kriptografi, data yang dikirimkan melalui jaringan akan disamarkan sedemikian rupa sehingga kalaupun data itu bisa dibaca maka tidak bisa dimengerti oleh pihak yang tidak berhak. Data yang akan dikirimkan dan belum mengalami penyandian dikenal dengan isitilah plaintext, dan setelah disamarkan dengan suatu cara penyandian, maka plaintext ini akan berubah menjadi ciphertext.

Kriptografi mempunyai sejarah yang panjang, mulai dari kriptografi Caesar yang berkembang pada zaman sebelum Masehi sampai kriptografi modern yang digunakan dalam komunikasi antar komputer di abad 20. Kata kriptografi sendiri berasal dari bahasa Yunani, yaitu kryptós yang berarti tersembunyi, dan gráphein yang berarti menulis. Jadi Kriptografi berarti penulisan rahasia. Ada dua cara yang paling dasar pada kriptografi klasik. Yang pertama adalah transposisi.
Transposisi adalah mengubah susunan huruf pada plaintext sehingga urutannya berubah. Contoh yang paling sederhana adalah mengubah suatu kalimat dengan menuliskan setiap kata secara terbalik.
Cara kedua adalah cara substitusi yaitu setiap huruf pada plaintext akan digantikan dengan huruf lain berdasarkan suatu cara atau rumus tertentu.

Ada dua macam substitusi yaitu polyalphabetic substitution cipher dan monoalphabetic substitution cipher. Pada polyalphabetic substitution cipher, enkripsi terhadap satu huruf yang sama bisa menghasilkan huruf yang berbeda sehingga lebih sulit untuk menemukan pola enkripsinya.
Pada monoalphabetic substitution cipher maka satu huruf tertentu pasti akan berubah menjadi huruf tertentu yang lain, sehingga pola enkripsinya lebih mudah diketahui, karena satu huruf pada ciphertext pasti merepresentasikan satu huruf pada plaintext.

Salah satu contoh cara substitusi adalah dengan dengan pergeseran huruf. Kita lihat pada gambar 4, urutan abjad ABCD…….Z bisa digeser sebanyak 1 huruf sehingga huruf A akan menjadi B, B akan menjadi C dan seterusnya. Pergeserannya bisa dibuat lebih banyak yaitu 2 huruf sehingga huruf A akan menjadi C, B akan menjadi D dan seterusnya. Pergeseran bisa lebih banyak lagi tergantung bagaimana kita merumuskannya. Cara pergeseran ini termasuk monoalphabetic substitution cipher di mana satu huruf pasti akan berubah menjadi huruf tertentu yang lain. Karena relasi antara huruf plaintext dan huruf ciphertext satu-satu, yang artinya suatu huruf plaintext pasti menjadi suatu huruf ciphertext tertentu, maka cara monoalphabetic substitution cipher sangat mudah dipecahkan.
Pada masa itu, sekitar tahun 1500-an atau 1600-an, kriptografi klasik seperti ini dianggap sudah cukup aman, karena belum banyak orang yang bisa menulis atau membaca. Kriptografi dilakukan terhadap huruf-huruf yang membentuk plaintext, mengubahnya dalam huruf lain kemudian dikirimkan ke pada penerimanya. Penerima harus mengetahui cara menyamarkan berita agar bisa mendapatkan berita aslinya kembali.

Artikel tentang kriptografi klasik ini dibuat sebagai pengenalan terhadap kriptografi yang akan dipublikasikan pada artikel berikutnya yaitu kriptografi modern. Kriptografi modern banyak digunakan dalam pengiriman informasi melalui Internet. Kriptografi modern berkembang bersamaan dengan berkembangnya teknologi komputer dan teknologi jaringan.
Seperti sudah dikatakan sebelumnya, pada kriptografi klasik, dua cara digunakan yaitu transposisi dan substitusi. Pada kriptografi modern, digunakan algoritma matematika yang juga pada akhirnya akan menyebabkan terjadinya transposisi dan substitusi pada plaintext sama seperti pada kriptografi klasik.. Hanya bedanya, transposisi dan substitusi huruf pada kriptografi modern dilakukan dengan bantuan komputer menggunakan algoritma matematika yang cukup rumit. Prinsip dasar dari kedua kriptografi sama yaitu melakukan transposisi dan substitusi pada huruf-huruf plaintextnya untuk menghasilkan suatu ciphertext.

Kriptografi Caesar
Salah satu kriptografi yang paling tua dan paling sederhana adalah kriptogtafi Caesar [KAHN96].
Menurut sejarah, ini adalah cara Julius Caesar mengirimkan surat cinta kepada kekasihnya Cleopatra.
Dalam kriptografi Caesar, maka setiap huruf akan dituliskan dalam huruf lain hasil pergeseran 3 buah huruf. Kriptografi Caesar ini adalah kriptografi substitusi karena setiap huruf akan digantikan huruf lain.
Sebagai contoh, huruf A akan digeser 3 huruf menjadi huruf D, B akan digeser 3 huruf menjadi E, J akan digeser menjadi M, O akan menjadi R dan seterusnya. Pergeseran ini juga berputar kembali ke awal abjad sehingga sesudah huruf Z diikuti kembali oleh huruf A. Kriptografi Caesar ini dikenal sebagai monoalphabetic substitution cipher karena satu huruf tertentu pasti akan berubah menjadi huruf tertentu yang lain.
Perubahan pada kriptografi Caesar bisa dituliskan sebagai berikut:
Jika Caesar akan menuliskan kalimat ‘I LOVE YOU’ maka akan dituliskan dalam kalimat ‘L ORYH
BRX‘.
Jika kita memberi nomor ke pada huruf-huruf abjad dan kita mulai dengan huruf A=0, B=1, C=2 dstnya
sampai dengan Z=25, maka kriptografi Caesar memenuhi rumus
C = (P + 3)
mod 26,
di mana C adalah nomor abjad ciphertext, P adalah nomor abjad plaintext .
Dan dekripsinya adalah
P = (C – 3)
mod 26.
Kripotogtafi Caesar ini kemudian berkembang di mana pergeseran tidak hanya 3 huruf tetapi ditentukan oleh suatu kunci yang adalah suatu huruf. Huruf ini yang menentukan pergeseran dari huruf pada plaintext. Jika kunci adalah A maka pergeseran adalah 0, B pergeseran adalah 1, C 2 dan seterusnya.
Rumus di atas tetap berlaku tetapi pergeseran huruf ditentukan oleh nilai pergeseran k dan bisa berubah-ubah sesuai kunci yang digunakan.
Ada dua macam substitusi pada kriptografi klasik yaitu polyalphabetic substitution cipher dan monoalphabetic substitution cipher. Pada polyalphabetic substitution cipher, enkripsi terhadap satu huruf yang sama bisa menghasilkan huruf yang berbeda sehingga lebih sulit untuk menemukan pola enkripsinya, contohnya pada kriptografi Vigenere yang akan diterangkan kemudian.
Pada monoalphabetic substitution cipher maka satu huruf tertentu pasti akan berubah menjadi huruf tertentu yang lain, sehingga pola enkripsinya lebih mudah diketahui, karena satu huruf pada ciphertext pasti merepresentasikan satu huruf pada plaintext. Contoh monoalphabetic subsitution cipher adalah kriptografi Caesar.

Salah satu cara untuk bisa memecahkan penyandian dengan cara monoalphabetic subsitution cipher adalah dengan melakukan analisa frekwensi munculnya huruf dalam suatu bahasa. Berapa sering suatu huruf muncul dalam suatu bahasa tertentu bisa memberi petunjuk huruf-huruf yang muncul pada ciphertext asal diketahui plaintext yang digunakan berbahasa apa. Agar diperoleh pendekatan yang maksimal, maka sebaiknya dilakukan terhadap ciphertext yang cukup panjang, karena jika plaintextnya terlalu pendek, maka tingkat ketelitiannya akan menjadi rendah.
Di bawah ini dilakukan analisa terhadap kemungkinan munculnya huruf dalam bahasa Indonesia. Dari 1000000 (satu juta) karakter, maka huruf ‘A’ menduduki peringkat tertinggi yaitu di atas 19%, huruf ‘N’ menduduki peringkat kedua yaitu sekitar 10% dan huruf ‘I’ menduduki peringkat selanjutnya yaitu 8%.

Jika kita melakukan kriptografi sustitusi dengan cara monoalphabetic substitution cipher, maka satu karakter dari ciphertext merepresentasikan satu huruf dari plaintext. Jika diketahui bahwa plaintextnya bahasa Indonesia dan dilakukan analisa frekwensi munculnya huruf terhadap ciphertext tersebut, maka prosentasi munculnya suatu huruf pada ciphertext akan mendekati prosentasi muculnya huruf yang diwakilinya dalam plaintext. Sehingga jika, pada ciphertext, huruf ‘D’ mendekati 19%, maka akan sangat mungkin bahwa huruf ‘D’ adalah huruf ‘A’, begitu juga dengan huruf-huruf lainnya.
Kriptografi Vigenere

Pada kriptografi Caesar pergeseran akan sama pada seluruh pesan. Jika kunci yang digunakan adalah huruf E, maka setiap huruf pada pesan akan bergeser 4 huruf. Begitu juga bila digunakan kunci-kunci lainnya. Pada kriptografi Vigenere, plaintext akan dienkripsi dengan pergeseran huruf seperti pada kriptografi Caesar tetapi setiap huruf di dalam plaintext akan mengalami pergeseran yang berbeda [Sta03].

Kunci pada kriptografi Vigenere adalah sebuah kata bukan sebuah huruf. Kata kunci ini akan dibuat berulang sepanjang plaintext, sehingga jumlah huruf pada kunci akan sama dengan jumlah huruf pada plaintext. Pergeseran setiap huruf pada plaintext akan ditentukan oleh huruf pada kunci yang mempunyai posisi yang sama dengan huruf pada plaintext.
Kriptografi Vigenere ini dikenal sebagai polyalphabetic substitution cipher, karena enkripsi terhadap satu huruf yang sama bisa menghasilkan huruf yang berbeda.
Pergeseran setiap huruf pada plaintext ditentukan oleh huruf pada posisi yang sama dan
pergeseran ini ditentukan oleh tabel yang sama dengan tabel pada kriptografi Caesar.
Rumus kriptografi Caesar tetap berlaku pada kriptografi Vigenere, baik pada enkripsi maupun dekripsi:
C=E(P)=(P+k)
mod26
P=D(C)=(C−k)
mod26
di mana P adalah plaintext, C adalah ciphertext, k adalah pergeseran huruf sesuai dengan huruf pada posisi huruf pada plaintext.
Sebagai contoh, jika plaintext adalah INI PESAN RAHASIA, maka jika kita gunakan kunci kata BESOK, maka kunci ini akan diulang sama panjang dengan plaintext. Setiap huruf pada kata BESOK mempunyai pergeseran yang berbeda, sehingga setiap huruf akan mengalami pergeseran yang berbeda. Huruf yang sama bisa menghasilkan cipher yang berbeda.
Ada cara lain untuk melakukan kriptografi Vigenere yaitu dengan menuliskan abjad berurutan dari A sampai dengan Z, kemudian kata kuncinya dituliskan secara vertikal di bawah huruf A. Setiap huruf dari kata kunci ini kemudian dilengkapi dengan abjad selanjutnya dalam urutan alfabet dan setelah huruf Z kembali lagi ke huruf A,B dan seterusnya. Untuk melakukan enkripsi terhadap suatu pesan, maka cari posisi setiap huruf pada plaintext pada baris paling atas, kemudian cari huruf pada lokasi yang sama di baris bawahnya.
Huruf pertama diubah dengan huruf yang ada pada posisi yang sama pada baris ke dua atau baris dari huruf pertama pada kata kunci.
Huruf ke dua pada plaintext dikonversi dengan huruf pada posisi yang sama pada baris selanjutnya.
Huruf ketiga dikonversi dengan baris ke tiga dan seterusnya. Jika semua baris sudah terpakai maka kembali ke baris paling atas dari kata kunci, sampai semua huruf pada plaintext dienkripsi.
Cara lain untuk melakukan kriptografi Vigenere adalah dengan menggunakan tabula recta sebagai berikut : Baris paling atas adalah alfabet dari A sampai dengan Z. Di baris ke dua, tuliskan alfabet mulai dengan B sampai dengan Z kemudian kembali ke A. Di baris bawahnya C diikuti alfabet selanjutnya sampai dengan Z dan kembali lagi ke A. Sampai huruf Z. Cara penulisan ini dikenal sebagai tabula recta. Kemudian enkripsi dilakukan sama dengan enkripsi menggunakan Table 4. Huruf-huruf pada kata kunci sebagai huruf pertama pada baris-baris pada tabula recta dan huruf-huruf pada plaintext dicari di baris pertama tabula recta.
Penggunaan lebih dari satu huruf dalam suatu enkripsi ini yang membuat kriptografi Vigenere disebut polyalphabetic cipher. Keuntungan dari kriptografi polyalphabetic cipher adalah sulitnya melakukan analisa frekwensi (frequency analysis) terhadap munculnya suatu huruf dalam ciphertext. Analisa frekwensi adalah suatu cara untuk melakukan cryptanalysis terhadap suatu ciphertext dengan menghitung berapa sering suatu huruf muncul pada ciphertext tersebut dengan memperbandingkan dengan berapa sering suatu huruf muncul dalam pesan atau tulisan normal. Contohnya jika huruf P sering muncul pada suatu ciphertext dalam bahasa Inggeris, huruf P ini sangat mungkin adalah huruf E, karena huruf E adalah huruf yang paling sering digunakan dalam tulisan-tulisan bahasa Inggeris.
Analisa frekwensi ini sulit dilakukan dalam kriptografi Vigenere karena satu huruf tertentu pada plaintext bisa berubah menjadi beberapa huruf-huruf lain pada ciphertext tergantung pada kata kuncinya, sehingga frekwensi suatu huruf yang muncul pada ciphertext tidak merepresentasikan suatu huruf pada plaintext. Kriptografi Vigenere ini bukan yang terbaik yang dihasilkan oleh Vigenere. Dia mengembangkan kriptografi lain yang dikenal sebagai kriptografi Autokey yang konon lebih handal dari pada kriptografi Vigenere, tetapi nama Vigenere sudah terlanjur melekat pada kriptografi sebelumnya. Sampai dengan kurun waktu 300 tahun, kedua kriptografi ini dianggap ‘unbreakable’, tetapi pada pertengahan abad 19, Charles Babbage dan Friedrich Kasiski secara terpisah mampu memecahkan cara penyandian ini.

Kriptografi Autokey
Kriptografi Autokey adalah pengembangan dari kriprografi Caesar dan Vigenere. Cara melakukan enkripsi sama dengan kedua kriptografi sebelumnya. Pada kriptografi Autokey juga digunakan sebuah kata sebagai kunci. Kunci ini kemudian diikuti dengan plaintext sehingga membentuk huruf-huruf yang sama panjang dengan plaintext. Urutan huruf-huruf ini yang akan digunakan sebagai kunci pada saat enkripsi.
Rumus yang berlaku untuk kriptografi Autokey sama dengan untuk Caesar dan Vigenere.
C=E(P)=(P+k)
mod26
P=D(C)=(C−k)
mod26
Contoh, jika plaintext adalah INI PESAN RAHASIA, maka jika kita gunakan kunci kata BESOK, maka kata BESOK akan disisipkan di depan plaintext INI PESAN RAHASIA. Kemudian enkripsi dilakukan sama dengan enkripsi Caesar dan Vigenere.

Kriptografi Reverse
Ini adalah contoh kriptografi klasik yang menggunakan transposisi yaitu mengganti satu huruf dengan huruf lain. Ini contoh yang paling sederhana dari transposisi yaitu mengubah suatu kalimat dengan menuliskan setiap kata secara terbalik.

Kriptografi Kolom
Pada kriptografi kolom (column cipher), plaintext disusun dalam kelompok huruf yang terdiri dari beberapa huruf. Kemudian huruf-huruf dalam kelompok ini dituliskan kembali kolom per kolom, dengan urutan kolom yang bisa berubah-ubah.

Kriptografi One-Time Pad
One-Time Pad adalah kriptografi yang merupakan perbaikan terhadap kriptografi Caesar. One-Time Pad menggunakan kunci yang mempunyai panjang sama dengan plaintext dan kunci ini hanya digunakan 1 kali. Karena itu, cara enkripsi ini dikenal sebagai One-Time Pad dan kriptografi ini tidak bisa dipecahkan karena kunci hanya digunakan satu kali sehingga tidak ada suatu pola tertentu.
Satu-satunya cara melakukan dekripsi adalah dengan mengetahui kunci yang digunakan.
Enkripsi dilakukan dengan cara sama dengan enkripsi Caesar, tetapi karena panjang kunci sama dengan plaintext, maka setiap huruf pada plaintext akan mengalami pergeseran yang berbeda.
Memang One-Time Pad adalah kriptografi yang tidak pernah bisa dipecahkan. Kunci hanya bisa digunakan sekali dan harus mempunyai panjang yang sama dengan plaintextnya. One-Time Pad ini biasanya digunakan dalam situasi yang kritis. Biasanya keputusan-keputusan militer seperti peluncuran peluru kendali nuklir di era perang dingin. Sampai sekarang One-Time Pad ini masih digunakan oleh kedutaan-kedutaan besar untuk pengiriman berita diplomatik.
Pada awalnya mengenkripsi digunakan oleh para raja-raja untuk mengirim pesan kepada para bawahan agar pesan tersebu tidak dapat dibaca oleh sang pengantar maka itu pesan itu harus diatur sedemikian rupa sehingga menjadi bentuk pesan yang berbeda. Contoh yang paling sederhana yang dapat kita ambil dari kesimpulan di atas adalah
AW D* AL AX P<>
Coba perhatikan pesan di atas, apakah anda dapat membaca pesan yang saya buat? Tentu pesan tersebut tidak dapat terbaca kalaupun terbaca tidak akan terbentuk kata-kata yang jelas.
Sekarang kita akan mencoba membacanya coba hilangkan karakter W, *, L, X.<, ?, Z, G, F, maka cob abaca ulang pesan tersebut yang terbaca adalah ADA APA SIH!
Itu adalah contoh yang paling sederhana, enkripsi yang dilakukan pada waktu masa romawi kuno. Tapi sekarang enkripsi dilakukan pada computer yang paling mudah di temukan enkripsi yang terjadi pada file virus, agar file tersebut tidak dapat terdeteksi oleh anti-virus file virus tersebut harus diubah format filenya yaitu dengan menggunakan enkripsi sehingga file virus bukan sebagai virus tetapi hanya dianggap file saja.

Tidak ada komentar:

Posting Komentar