Tampilkan postingan dengan label kriptografi. Tampilkan semua postingan
Tampilkan postingan dengan label kriptografi. Tampilkan semua postingan

Jumat, 13 Juni 2014

Vigenere cipher, Contoh Sederhana Sandi Substitusi

Metode penyandian Vigenere cipher pertama kali dijelaskan oleh Giovan Batista Belaso dan disempurnakan oleh Blaise de Vigenere pada abad keenam belas. Pada abad ke-19, banyak orang yang mengira Vigenère adalah penemu metode sandi ini, sehingga sandi ini dikenal luas sebagai "sandi Vigenère". Dengan menggunakan korespondensi A↔0, B↔1, ..., Z ↔ 25, kita dapat mengaitkan setiap kunci K dengan string alfabet dengan panjang m, disebut kata kunci (keyword). Vigenere cipher mengenkripsi m karakter abjad sekaligus (setiap elemen plainteks ekuivalen dengan m karakter abjad.

Contoh:
Misalkan m=6 dan kata kuncinya CIPHER. Ini berkorespondensi dengan K= (2, 8, 15, 7, 4, 17). Misalkan plainteksnya adalah

Thiscryptosystemisnotsecure

Kita konversi elemen plainteks dalam modulo 26, tulis dalam kelompok enam, dan kemudian "tambahkan" kata kunci dengan penambahan modulo 26, seperti berikut ini:


Deret cipherteks tersebut ekuivalen dengan VPXZGIAXIVWPUBTTMJPWIZITWZT. Untuk mendekripsi, kita dapat menggunakan kata kunci yang sama, tapi kita operasikan dengan pengurangan modulo 26.

Jumlah kemungkinan kata kunci sepanjang m dalam Cipher Vigenere adalah 26^m, sehingga untuk nilai m yang relatif kecil, pencarian kunci lengkap akan membutuhkan waktu yang lama. Sebagai contoh, jika kita mengambil m = 5, maka keyspace-nya memiliki ukuran melebihi 1,1 x 107.

Sejarah Perkembangan Metode Penyandian Kriptografi


Setelah banyak orang yang melek huruf, tulisan-tulisan lokal sudah tidak dapat digunakan untuk mengirim pesan rahasia karena mudah dipelajari musuh sehingga diciptakanlah kriptografi yang sebenarnya. Pada sekitar 40 abad yang lalu orang-orang Mesir telah menggunakan kriptografi untuk mengirim pesan kepada prajurit yang berada di medan perang sehingga pesan tidak dapat diketahui musuh meskipun pembawa pesan tertangkap. Pada sekitar 400 SM, bangsa Spartan menggunakan kriptografi dalam bentuk sepotong papyrus atau perkamen yang dibungkus dengan batang kayu.

Sandi klasik yang paling terkenal yaitu Caesar cipher yang diciptakan oleh kaisar Romawi Julius Caesar. Sandi ini termasuk sandi substitusi dimana setiap huruf pada teks terang plaintext digantikan oleh huruf lain yang memiliki selisih posisi tertentu dalam alfabet. Misalnya apabila digunakan geseran 3, huruf a terenkripsi menjadi c, b terenkripsi menjadi d dan seterusnya. Julius Caesar menggunakannya untuk berkomunikasi dengan para panglimanya yang tentunya telah diberitahu kuncinya terlebih dahulu.

Cipherteks yang dihasilkan oleh cipher klasik dan beberapa cipher modern selalu memperlihatkan informasi statistik tentang plainteks, yang seringkali dapat digunakan untuk memecahkannya. Setelah penemuan analisis frekuensi oleh matematikawan Arab, Al-Kindi (Alkindus), pada abad ke-9, hampir semua cipher tersebut menjadi lebih mudah dipecahkan oleh penyerang informasi. Al-Kindi menulis sebuah buku tentang kriptografi berjudul Risalah fi al-Istikhraj Mu'amma (Naskah untuk Mengartikan Pesan Cryptographic), yang merupakan penjelasan tentang teknik kriptanalisis pertama. Ia mengungkapkan bahwa teks dalam Al Qur'an memiliki variasi frekuensi huruf yang dapat dianalisis. Hal ini dimanfaatkan untuk memecahkan cipher yang disebut metode kriptanalisis dengan analisis frekuensi.

Pada perang dunia kedua, Jerman menggunakan mesin enigma atau disebut dengan mesin rotor yang digunakan Hitler untuk mengirim pesan kepada para tentaranya di medan perang. Jerman sangat yakin bahwa pesan yang dienkripsi menggunakan enigma tidak dapat dipecahkan. Tetapi anggapan itu keliru, karena setelah bertahun-tahun mempelajarinya, sekutu berhasil memecahkan kode-kode tersebut. Enigma yang digunakan Jerman dapat mengenkripsi pesan sehingga memiliki 15x10^{18} kemungkinan untuk mendekripsi pesan.

Perkembangan komputer memungkinkan enkripsi pesan menjadi lebih mudah dan kompleks dan dapat disajikan dalam format biner, tidak seperti sandi klasik yang hanya dienkripsi ke dalam teks bahasa tertulis. Namun, komputer juga membuat kriptanalisis menjadi lebih mudah karena dapat melakukan perhitungan dengan cepat. Untuk itu, diperlukan suatu algoritma kriptografi yang sulit untuk dipecahkan. Pada tahun 70-an IBM mendesain algoritma DES (Data Encryption Standard) yang digunakan oleh pemerintah federal amerika untuk mengenkripsi informasi. DES merupakan mekanisme kriptografi yang paling terkenal.

Pada tahun 1976 Diffie dan Hellman memperkenalkan konsep baru dalam tulisannya yang berjudul New Directions in Cryptography. Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan juga memberikan metode baru pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskrit. Meskipun mereka tidak memiliki realisasi praktisnya, namun idenya menumbuhkan ketertarikan pada komunitas kriptografi. Pada tahun 1978 Rivest, Shamir dan Adleman mengusulkan rancangan enkripsi kunci publik yang dinamakan RSA. RSA berdasarkan pada masalah faktorisasi bilangan yang sulit sehingga sampai sekarang sistem RSA masih digunakan karena masih dianggap aman. Sistem lain yang merupakan kunci publik diusulkan oleh Taher ElGamal pada 1985 yang berdasarkan pada masalah logaritma diskret.

Salah satu kontribusi penting dari kriptografi kunci publik adalah tanda tangan digital. Pada tahun 1991 standar internasional pertama untuk tanda tangan digital diadopsi. Standar ini berdasar pada rancangan kunci publik RSA. Pada 1994 pemerintah Amerika Serikat mengadopsi Digital Signature Standard, sebuah mekanisme kriptografi yang berdasar pada algoitma ElGamal. Perkembangan kriptografi sampai sekarang masih menunjukkan kemajuan yang signifikan. Berbagai konsep matematika digunakan dalam merancang sistem kriptografi baru yang lebih aman.

Selasa, 09 Juli 2013

Merahasiakan Data dengan Kriptografi



Secara bahasa, kata kriptografi (cryptography) berasal dari gabungan dua kata dalam bahasa Yunani yaitu kripto dan graphia. Kata kripto berarti disembunyikan, rahasia atau misterius. Sedangkan kata graphia berarti tulisan. Kriptografi adalah ilmu yang mempelajari tentang teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, integritas data, otentikasi entitas, dan otentikasi data asal (Menezes,dkk. 1994). Kriptografi dapat pula diartikan sebagai ilmu dan seni untuk menjaga kerahasiaan berita. Ketika seseorang ingin mengirimkan suatu pesan kepada pihak lain, ada kemungkinan pesan tersebut disadap atau dicuri dengar oleh pihak lain yang tidak berhak mengetahui isi pesan tersebut. Untuk itu, diperlukan suatu metode untuk merahasiakan isi pesan. Salah satunya dengan metode kriptografi, yaitu dengan mengubah pesan menjadi kode yang tidak dapat dimengerti pihak lain.

Secara umum proses pengkodean dibagi menjadi dua, yaitu proses enkripsi dan deskripsi. Enkripsi adalah proses mengubah pesan yang dapat dimengerti (plainteks) menjadi sebuah pesan atau kode yang tidak dapat dimengerti (cipherteks). Cipherteks inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai ke penerima, cipherteks tersebut ditranformasikan kembali ke dalam bentuk plainteks agar dapat dikenali atau dinamakan proses dekripsi. Kedua proses ini memerlukan suatu mekanisme atau algoritma tertentu.

Kebalikan dari kriptografi adalah kriptoanalisis (cryptanalysis) yaitu ilmu mengenai metode membaca pesan yang terenkripsi (tersandi), tanpa mengetahui informasi rahasia atau kunci yang seharusnya digunakan untuk membaca pesan tersebut. Kriptoanalisis seringkali dikatakan sebagai ilmu untuk memecahkan sandi. Kedua ilmu tersebut (kriptografi dan kriptoanalisis)  tercakup dalam disiplin ilmu kriptologi.

Ada empat tujuan mendasar dari ilmu kriptografi yang juga merupakan aspek keamanan informasi yaitu:

  1. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi informasi dari siapapun kecuali yang memiliki wewenang untuk memilikinya. Ada banyak pendekatan untuk menyediakan kerahasiaan, mulai dari perlindungan fisik sampai algoritma matematika yang membuat isi informasi menjadi tidak dimengerti.
  2. Integritas data, adalah layanan yang berhubungan dengan penjagaan data dari perubahan secara tidak sah. Untuk menjamin integritas data, seseorang harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
  3. Autentikasi, adalah layanan yang berhubungan dengan identifikasi/pengenalan, baik entitas maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui suatu saluran harus diautentikasi keasliannya, isi datanya, waktu pengiriman, dan lain-lain.
  4. Non-repudiasi, atau anti penyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman suatu informasi oleh pengirim, atau harus dapat dibuktikan bahwa suatu pesan berasal dari seseorang sehingga ia tidak dapat menyangkal telah mengirim informasi tersebut.

Algoritma Kriptografi

Algoritma kriptografi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografis. Secara umum berdasarkan kesamaan kuncinya, algoritma kriptografi dibedakan menjadi algoritma kunci simetris (symmetric key) dan algoritma kunci asimetris(asymmetric key).

Algoritma kunci simetris seringkali disebut algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik. Algoritma kriptografi termasuk dalam kelompok kunci-simetris apabila untuk setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan kunci yang sama. Pengirim dan penerima pesan sebelumnya melakukan persetujuan terhadap kunci tertentu yang akan digunakan sebelum mereka saling berkomunikasi.

Pada gambar di atas, si A mengirimkan pesan rahasia kepada si B. Sebelumnya, si A dan si B saling menyepakati kunci yang digunakan. Keduanya tidak boleh membocorkan kunci tersebut. Untuk mengirim pesan rahasia, A mengenkripsi plainteks dengan kunci tersebut, kemudian cipherteks yang dihasilkan dikirimkan kepada si B. Setelah menerima bagian cipherteks dari A, si B mendekripsikannya dengan kunci yang telah disepakati sebelumnya, sehingga pesan rahasia dari si A dapat dimengerti.

Keamanan algoritma kunci simetris tergantung pada kerahasiaan kunci, apabila kunci bocor maka pesan dapat dicuri dengar oleh orang lain yang tidak berhak. Untuk itu, diperlukan jalur yang aman untuk melakukan pertukaran kunci. Karena keharusan merahasiakan kunci tersebut, algoritma kunci simetri juga sering disebut algoritma kunci rahasia (secret key). Beberapa contoh dari algoritma kriptografi simetris yaitu Cipher klasik, Vigenere Cipher, Hill Cipher, DES dan IDEA.

Algoritma asimetris pertama kali dicetuskan oleh Diffie dan Hellman pada tahun 1976 dalam papernya yang berjudul New Direction in Cryptography. Algoritma asimetris menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Kunci untuk enkripsi disebut dengan kunci publik (public key) karena diketahui oleh umum, sedangkan kunci untuk dekripsi pesan disebut kunci rahasia (private key) yang hanya diketahui oleh penerima pesan. Algoritma kunci asimetris atau sering disebut algoritma kunci publik dapat dianalogikan seperti kotak pos yang hanya dapat dibuka oleh tukang pos yang memiliki kunci tapi setiap orang dapat memasukkan surat ke dalam kotak tersebut. Keuntungan algoritma model ini, untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para korensponden untuk mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan skema kunci-simetris, jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak berkorespondensi.



Pada gambar di atas, si A mengirimkan pesan rahasia kepada si B. Sebelumnya, si B membuat dua buah kunci, yaitu kunci publik dan kunci rahasia. Kunci publik diberikan kepada si A untuk mengenkripsi plainteks dan tidak perlu dirahasiakan, sedangkan kunci rahasia digunakan untuk mendekripsikan cipherteks dan hanya si B yang mengetahuinya. Setelah plainteks terenkripsi, si A mengirimkan pesan rahasia kepada si B tanpa harus khawatir pesan bocor kepada pihak ketiga, karena untuk mendekripsikan cipherteks diperlukan kunci rahasia yang hanya si B yang tahu.

Kriptografi kunci publik juga dapat digunakan untuk menerapkan skema tanda tangan digital. Tanda tangan digital mirip dengan tanda tangan biasa, mudah dibuat oleh pengguna namun sulit bagi orang lain untuk meniru. Tanda tangan digital juga dapat terikat dengan isi pesan yang ditandatangani, tidak dapat dipindah dari satu dokumen ke dokumen lain dan setiap usaha pengubahan akan terdeteksi. Dalam skema tanda tangan digital ada dua algoritma, satu untuk penandatanganan, di mana kunci rahasia yang diguna\-kan untuk memproses pesan (atau hash dari pesan, atau keduanya), dan satu untuk verifikasi, di mana kunci publik yang cocok digunakan dengan pesan untuk memeriksa keabsahan tanda tangan. Beberapa contoh algoritma kunci asimetris adalah RSA, ElGamal, McEliece, LUC dan DSA.