Selamat Datang di bloger ini

Selasa, 12 Oktober 2010

Kriptografi

1. PENDAHULUAN
Sebelum era modern bergulir, kriptografi dianggap semata mata sebagai mengubah pesan dari bentuk yang dapat dipahami menjadi bentuk yang tidak dapat dipahami dan sebaliknya, membuat pesan tersebut menjadi tidak dapat dipahami oleh pengganggu yang tidak mengetahui rahasianya (kunci yang diperlukan untuk mendekripsi pesan tersebut). Dewasa ini, bidang ini telah berkembang dari sekedar masalah kerahasiaan menjadi sebuah teknik yang bertujuan untuk :
1) Authentication
Memberikan dua layanan, yakni mengidentifikasikan keaslian suatu pesan dan memberikan jaminan keotentikannya, serta untuk menguji identitas seseorang apabila ia akan memasuki sebuah sistem.
2) Convidentiality
memberikan kerahasiaan pesan dan menyimpan data denganmenyembunyikan informasi lewat teknikteknik
enripsi.
3) Message Integrity
Yaitu memberikan jaminan untuk tiap bagian bahwa esan tidak akan mengalami perubahan dari saat data dibuat/dikirim sampai dengan saat data tersebut dibuka.
4) Nonrepudiation
Yaitu memberikan cara untuk membuktikan bahwa suatu dokumen datang dari seseorang apbila ia mencoba menyangkal memiliki dokumen tersebut.

1.1 Sejarah Singkat Kriptografi

Bentuk paling awal kriptografi ada 2 jenis,yakni transposition ciphers dan substitution ciphers . Bentuk
transposition ciphers digunakan oleh tentara Sparta pada Zaman Yunani Kuno pada 400 SM. Mereka
menggunakan alat yang disebut Scytale. Alat ini terdiri dari sebuah pita panjang yang dililitkan pada
sebatang slinder. Pesan yang akan dikirimkan ditulis horizontal . Bila pita dilepaskan, maka hurufhuruf
di dalamnya telah tersusun membentuk pesan rahasia. 
 Bentuk substitution ciphers (yang mengganti grup huruf dengan grup huruf lain) digunakan oleh Julius Caesar, dikenal dengan nama Caesar cipher dimana tiap huruf didistribusikan dengan huruf ketiga berikutnya. Contoh : ‘Fly at once’ menjadi ‘Gmz bupodf’ Seiring berjalannya waktu, kriptografi telah banyak digunakan dalam berbagai bidang, misalnya di bidang religious, digunakan dalam “The Number of The Beast”, dalam bidang matamata,kerahasiaan komunikasi, bahkan kriptografi juga dianjurkan dalam buku “Kama Sutra” . Kriptografi juga berperan besar ketika Sekutu memenangkan Perang Dunia II. Ketika itu, Enigma Machine, sebuah mesin enkripsi/dekripsi,digunakan oleh Jerman dalam PD II pada tahun 1920an sampai akhir perang. Alat itu digunakan untuk menjaga komunikasi sensitif. Memecahkan cipher Enigma ketika itu adalah sebuah faktor yang sangat penting yang berkontribusi dalam kemenangan Sekutu.

Perkembangan komputer digital dan elektronika yang begitu pesat memungkinkan pembuatan cipher yang jauh lebih kompleks daripada sebelumnya. Lebih jauh lagi, komputer memungkinkan enkripsi data apa pun yang direpresentasikan oleh komputer sebagai format biner, tidak seperti cipher kuno yang terbatas pada mengenkripsi teksteks tertulis. Banyak komputer cipher yang bisa dikarakterisasi oleh operasi bit biner, tidak seperti cipher kuno yang secara umum memanipulasi karakter tradisional secara langsung. 

1.2 Klasifikasi Kriptografi

Tingkat keamanan algoritma yang diperoleh dengan menyembunyikan secara rahasia bagaimana algoritma itu bekerja disebut dengan algoritma rahasia(restricted algorithm). Pada awalnya, algoritma jenis ini yang berkembang, namun ternyata algoritma ini memiliki banyak kelemahan, sebagai contohnya adalah seseorang harus menggunakan algoritmanya sendiri, dan jika algoritma ini diketahui orang lain, maka algoritma ini harus diganti dengan yang baru. Kelemahan lainnya adalah tidak memungkinkannya standardisasi sebagai kendala mutu, karena setiap kelompok pengguna harus mempunyai algoritmanya sendirisendiri. Sebagai pemecah masalah tersebut, maka ditemukanlah algoritma kunci, berbeda dengan algoritma rahasia, algoritma ini menggunakan sebuah kunci yang dapat berupa sebarang nilai dari sejumlah angka. Oleh karena itu, algoritma ini dapat dipublikasikan dan dapat diproduksi masal karena tingkat keamanan algoritma ini adalah berdasarkan kerahasiaan kuncinya, bukan algoritmanya. Algoritma ini dibagi menjadi 2 bagian utama, yakni Algoritma Simetris/Privat Key Criptography dan Algoritma Asimaetris/Public Key Criptography.

 1.2.1 Privat Key Criptography
Privat Key Criptography ini prinpsip utamanya adalah kunci yang digunakan untuk proses enkripsi sama dengan kunci untuk proses dekripsi K = K1 = K2. Kunci ini harus dirahasiakan. Hanya jenis inilah yang diketahui di depan umum sampai dengan tahun 1976.Contoh dari kriptografi ini adalah A5, KPD, DES,IDEA, LOKI Prinsip kerja privat key criptography ini adalah pengirim dan penerima sepakat menggunakan sistem kriptografi tertentu dan kunci tertentu. Tingkat keamanan jenis kriptografi ini sangat ditentukan oleh kerahasiaan kunci yang digunakan. 

1.2.2 Public Key Criptography

Public Key Criptography ini menggunakan 2 buah kunci, yaitu kunci publik dan kunci rahasia. Untuk mengirim pesan, pengirim mengenkripsi data dengan menggunakan kunci publik sedangkan penerima menggunakan kunci privat untuk mendekripsi ciphertext tersebut agar menjadi plaintext yang dapat dipahami isinya.Contoh dari kriptografi ini adalah RSA, ACC, dan LUC.

2. KRIPTOGRAFI IDEA

2.1 Deskripsi Algoritma IDEA

Kriptografi IDEA (International Data Encryption Algorithm) diperkenalkan pertama kali tahun 1991 oleh Xuejia Lai dan James L Massey. Algoritma ini dimaksudkan sebagai pengganti DES(Data Encryption Standard). IDEA adalah revisi minor cipher yang lebih awal, yakni PES, dan pada awalnya disebut IPES (Improved PES).
IDEA didesain di bawah kontrak Hasler Foundation.Sandi rahasia ini dipatenkan di banyak negara tapi dapat digunakan secara gratis untuk penggunaan yang tidak komersial. Nama “IDEA” juga dipatenkan dan hak patennya berakhir tahun 2011. Lisensi dari IDEA dipegang oleh MediaCrypt. IDEA digunakan di Pretty Good Privacy (PGP) v2.0 dan sebagai algoritma opsional dalam OpenPGP, Netscape’s Secure Socket Layer (SSL), dan Secure Hypertext transfer Protocol (SHTTP). Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut :
1. Proses Enkripsi : ek (M) = C (1)
2. Proses Dekripsi : dk (C) = M (2)
E : fungsi enkripsi
D : fungsi dekripsi
M : pesan terbuka
C : pesan rahasia
K : kunci enkripsi atau dekripsi
IDEA merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka 64bit, menggunakan kunci yang sama 128bit untuk proses enkripsi dan dekripsi. Keluaran dari algoritma ini adalah blok pesan terenkripsi 64bit. Proses dekripsi menggunakan blok penyandi (algoritma) yang sama dengan proses enkripsi dimana kunci dekripsinya diturunkan dari kunci enkripsi. IDEA menggunakan proses iterasi yang terdiri dari 8
putaran dan 1 transformasi keluaran pada putaran ke8,5 Algoritma IDEA ini menggunakan 3 operasi aljabar utama, yakni : Xor, operasi penjmlahan modulo 2 16 dan operasi perkalian modulo (2 16 + 1). Operasi ini semuanya dilakukan pada subblok 16bit. IDEA mendapatkan keamanannya dari operasi dari grup yang berbeda – penambahan dan penjumlahan modular serta exclusive or dari bit—yang secara aljabar tidak cocok dalam beberapa pengertian. 

2.2 Proses Enkripsi IDEA 

Pada proses enkripsi algoritma ini, terdapat 3 operasi berbeda yang digunakan :
· Xor dari 2 sub blok 16bit ;bit per bit 
· Penjumlahan modulo 2 16 2 sub blok 16 bit
· Perkalian modulo (2 16 + 1) 2 sub blok 16 bit
Blok masukan pesan 64bit mulamula dibagi menjadi 4 subsub blok 16bit : X1, X2, X3, X4. Keempat subblok 16 bit tadi kemudian ditransformasikan menjadi subblok 16 bit, Y1, Y2, Y3, Y4. Semua proses ini
berada di bawah kendali 52 subblok kunci 16bit yang dibentuk dari blok kunci 128bit. Keempat subblok 16bit X1, X2, X3, X4 digunkan sebagai masukan putaran pertama dari algoritma IDEA. Dapat dilihat dari gambar bahwa dalam setiap putaran dilakukan operasi Xor, penjumlahan modulo dan perkalian modulo. Dari gambar juga terlihat bahwa keluaran dari putaran sebelumnya merupakan masukan dari putaran berikutnya. Hal ini terus berlangsung sampai 8 putaran. Pada putaran terakhir (putaran 8,5) dilakukan transformasi keluaran yang dikendalikan oleh 4 subblok kunci 16bit. Sub kunci diberi simbol Z. Operasi yang dilakukan pada setiap putaran dapat dirangkum sebagai berikut :
1) Perkalian X1 dengan Z11
2) Penjumlahan X2 dengan Z21
3) Pejumlahan X3 dengan Z 31
4) Perkalian X4 dengan Z41
5) Operasi XOR hasil langkah 1) dan 3)
6) Operasi XOR hasil angkah 2) dan 4)
7) Perkalian hasil langkah 5) dengan Z51
8) Penjumlahan hasil langkah 6) dengan
langkah 7)
9) Perkalian hasil langkah 8) dengan Z61
10) Penjumlahan hasil langah 7) dengan 9)
11) Operasi XOR hasil langkah 1) dan 9)
12) Operasi XOR hasil langkah 3) dan 9)
13) Operasi XOR hasil langkah 2) dan 10)
14) Operasi XOR hasil langkah 4) dan 10)
Keluaran dari setiap putaran (11), 12) ,13), 14) ) menjadi masukan bagi operasi selanjutnya. Pada putaran ke 8,5 dilakukan transformasi keluaran :
1) Perkalian X1 dengan Z1 8,5
2) Penjumlahan X2 dengan Z3 8,5
3) Penjumlahan X3 dengan Z2 8,5
4) Perkalian X4 dengan Z4 8,5
Setelah semua selesai, keempat subblok 16bit yang merupakan keluaran dari 8,5 putaran operasi tadi digabung kembali menjadi blok pesan rahasia 64bit. 2.3 Proses Dekripsi IDEA Pada proses dekripsi, IDEA menggunakan algoritma yang sama dengan proses enkripsi namun 52 buah subblok kunci yang digunakan merupakan turunan dari 52 buah subblok kunci untuk enkripsi. Penurunan kunci dekripsi sebagai berikut.Subblok Kunci Enkripsi 

Putaran ke1
Z11 Z21 Z31 Z41 Z51 Z61
Putaran ke2
Z12 Z22 Z32 Z42 Z52 Z62
Putaran ke3
Z13 Z23 Z33 Z43 Z53 Z63
Putaran ke4
Z14 Z24 Z34 Z44 Z54 Z64
Putaran ke5
Z15 Z25 Z35 Z45 Z55 Z65
Putaran ke6
Z16 Z26 Z36 Z46 Z56 Z66
Putaran ke7
Z17 Z27 Z37 Z47 Z57 Z67
Putaran ke8
Z18 Z28 Z38 Z48 Z58 Z68
Transformasi output Z1 8,5 Z2 8,5 Z3 8,5 Z4 8,5
Subblok
Kunci Dekripsi
Putaran ke1
(Z19) 1
–Z39 –Z29 (Z49) 1
Z 58 Z68
Putaran ke2
(Z18) 1
–Z38 –Z28 (Z48) 1
Z 57 Z67
Putaran ke3
(Z17) 1
–Z37 –Z27 (Z47) 1
Z 56 Z66
Putaran ke4
(Z16) 1
–Z36 –Z26 (Z46) 1
Z 55 Z65
Putaran ke5
(Z15) 1
–Z35 –Z25 (Z45) 1
Z54 Z64
Putaran ke6
(Z14) 1
–Z34 –Z24 (Z44) 1
Z53 Z63
Putaran ke7
(Z13) 1
–Z33 –Z23 (Z43) 1
Z52 Z62
Putaran ke8
(Z12) 1
–Z32 –Z22 (Z42) 1
Z 51 Z61
Transformasi output (Z11) 1
–Z21 –Z31 (Z41) 1
Pada subblok kunci dekripsi, Z 1 adalah invers perkalian modulo (2 16 + 1) dari Z dimana Z Z 1 = 1. Pada subblok kunci dekripsi, Z adalah invers penjumlahan modulo 2 16 dari Z dimana Z Z 1 = 0. 2.4 Proses Pembentukan SubKunci Pada proses enkripsi, 52 subblok kunci 16bit  diperoleh dari sebuah kunci 128bit pilihan pengguna. Blok kunci 128bit tadi kemudian dipartisi menjadi 8 subblok kunci 16bit yang langsung digunakan sebagai 8 subblok kunci pertama. Dari situ kemudian blok kunci 128bit dirotasi 25 posisi dari kiri untuk kemudian dipartisi lagi menjadi 8 subblok kunci 16bit berikutnya. Proses tersebut terus diulangi sampai
diperoleh 52 subblok kunci 16bit. Urutan pembentukan subkunci sebagai berikut :
Z11 Z21 Z31 Z41 Z51 Z61
Z12 Z22 Z32 Z42 Z52 Z62
Z13 Z23 Z33 Z43 Z53 Z63
Z14 Z24 Z34 Z44 Z54 Z64
Z15 Z25 Z35 Z45 Z55 Z65
Z16 Z26 Z36 Z46 Z56 Z66
Z17 Z27 Z37 Z47 Z57 Z67
Z18 Z28 Z38 Z48 Z58 Z68
Z1 8,5 Z2 8,5 Z3 8,5 Z 4 8,5

2.5 Contoh Komputasi Algoritma IDEA

Pada tabel berikut dapat dilihat data hasil enkripsi tiap putaran yang diproses dengan sebuah program yang mengimplementasikan algoritma IDEA utuk sebuah pesan terbuka dalam bentuk bilangan integer 11121314 yng telah dibagibagi menjadi empat yaitu X1= 11, X2= 12, X3 = 13,dan X4 = 14 , dan kunci telah 
di bagi bagi menjadi Z 11 = 2, Z21 = 4, Z 31 = 6, Z41 = 8, Z51 = 10, Z 61 = 12, Z12 = 14, Z 22 = 16 : 

3. HASIL DAN PEMBAHASAN 

Cryptanalys bertujuan menemukan kelemahan atau ketidakamanan dalam sebuah skema kriptografi, jadi dapat diperbaiki atau menghindari kelemahan tersebut. Cryptanalys mungkin dilakukan oleh penyerang yang berusaha untuk menumbangkan sebuah sistem atau dilakukan oleh desainer sistem untuk mengevalusi apakah sistem yang digunakan tersebut mudah diserang atau tidak. Para desainer telah melakukan riset dan menganalisis IDEA untuk mengukur kekuatannya terhadap differential crypanalysis. Setelah melakukan penelitian panjang, mereka menyimpulkan bahwa algoritma IDEA ini kebal dalam asumsi tertentu. Tidak ada kelemahan aljabar atau kelemahan linier yang terjadi yang dilaporkan. Beberapa kelas kunci yang lemah memang telah ditemukan, tapi hal ini dalam praktiknya merupakan hal kecil untuk diperhatikan karena sangat jarang sehingga tidak perlu dihindari secara eksplisit. Sampai 2004, serangan terbaik yang menggunakan semua kunci dapat memecahkan IDEA dan menguranginya sampai 5 putaran (yang dalam IDEA aslinya sampai 8,5 putaran). Bruce Schneier, Seorang kriptografer Amerika, spesialis keamanan komputer, dan penulis , mempunyai gagasan terhadap IDEA dan menulis "In my opinion, it is the best and most secure block
algorithm available to the public at this time." (Applied Cryptography, 2nd ed.)—“Menurut pendapat saya, IDEA merupakan blok algoritma yang paling baik dan paling aman yang ada saat ini”. Sayangnya, pada tahun 1996, beliau tidak lagi merekomendasikan algoritma ini karena ketersediaan algoritma yang lebih cepat, kemajuan dalam cryptanalysnya, dan masalah paten IDEA. 
4. KESIMPULAN
 
Kesimpulan yang dapat diambil dari studi dan implementasi International Data Encryption Algorithm antara lain:
1. Banyak fakor yang harus diperhatikan ketikaingin mengimplementasikan sutu metode enkripsi pada produk software berbasis keamanan. Kecepatan enkripsi , kesederhanaan, kekompakan, keamanan, dan kekuatan kode, kemudahan dalam pengimplementasian, dan lain sebagainya. Salah satu metode atau algoritma yang dapat diandalkan untuk memenuhi segala persyaratan tersebut antara lain adalah IDEA.
2. Round(putaran) enkripsi memegang peranan penting dalam keamanan algoritma IDEA. Jumlah putaran dalam algoritma ini tidak sedikit (8,5 putaran). Sampai saat ini algoritma IDEA ini baru dapat dipecahkan dan dikurangi putarannya sampai dengan 5 putaran.
3. Algoritma ini menyediakan keamanan yang cukup tinggi yang tidak didasarkan atas kerahasiaan algoritmanya akan tetapi lebih ditekankan pada keamanan/kerahasian kunci yang digunakan.
4. Algoritma ini dapat digunakan dan dimengerti oleh semua orang karena operasinya yang sederhana yang hanya menggunakan 3 operasi dasar, yakni Xor, penjumlahan modulo, dan perkalian modulo. 

DAFTAR PUSTAKA
 
[1]. Munir, Rinaldi. Diktat Kuliah Matematika Diskrit. Bandung : Departemen Teknik Informatika, Institut Teknologi Bandung, 2004.
[2]. Schneier, Bruce. Applied Cryptography 2nd Edition. John Wiley & Sons, Inc. 1999.
[3]. http://cypherspace.org/adam/rsa/idea.html. Tanggal akses : 2 Januari 2008.
[4]. http://dret.net/glossary/idea. Tanggal akses : 27 Desember 2007.
[4]. http://en.wikipedia.org/wiki/IDEA. Tanggal akses : 27 Desembar 2007 .
[5]. http://www.answers.com/topic/cryptography1? cat=bizfin. Tanggal akses : 27 Desember 2007.
[6]. http://www.cert.or.id/~budi/courses/ec7010/ dikmenjur/taufikreport. pdf. Tanggal akses 23 Desember 2007.
[7]. http://www.efymagonline.com/pdf/software.pdf.Tanggal akses : 27 Desember 2007. 

LAMPIRAN
 
Pada bagian lampiran ini, penulis menyertakan sebuah software untuk melakukan enkripsi dan deskripsi dari IDEA ini.Program IDEA ini dibuat oleh Fauzan Mirza dari University of London. Program ini didownload dari situs http://cypherspace.org/adam/rsa/idea.htm Folder program ini terlampir bersama makalah ini dengan nama folder idea3a.zip. Untuk menjalankan program ini mulamula unzip dulu folder idea3a.zip kemudian ikuti langkahlangkah yang ditulis pembuatnya di file “readme.txt”.

Enkripsi

Pengertian Ekripsi

Menyandikan, mengkodekan, enkripsi. Encryption atau enkripsi merupakan proses untuk mengubah sebuah pesan (informasi) sehingga tidak dapat dilihat tanpa menggunakan kunci pembuka. Enkripsi adalah cara yang paling efektif untuk memperoleh pengamanan data. Untuk membaca file yang di-enkrip, kita harus mempunyai akses terhadap kata sandi yang memungkinkan kita men-dekrip pesan tersebut. Data yang tidak di-enkrip disebut plaintext, sedangkan yang di-enkrip disebut ciphertext. Sebuah pesan dalam bentuk plaintext diubah dengan encryption menjadi ciphertext. Proses sebaliknya, untuk mengembalikan ciphertext ke plaintext disebut decryption. Menurut ISO 7498-2 istilah yang lebih tepat untuk encryption adalah enchipher sedangkan istilah yang lebih tepat untuk decryption adalah decipher. Encryption menggunakan algoritma tertentu untuk mengacak pesan. Umumnya algoritma enkripsi dapat dibagi menjadi dua kelompok: algoritma untuk private key system dan algoritma untuk public key system. Contoh untuk algoritma yang digunakan di private key system adalah DES dan IDEA, sedangkan contoh algoritma yang digunakan di public key system adalah RSA dan ECC.