BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI

IMPLEMENTASI HASH FUNCTION DALAM MESSAGE DIGEST 5 (MD5)

BAB 2 LANDASAN TEORI

Kata Kunci: Kriptografi, algoritma,security, pemrograman, pseucode.

Kriptoanalisis Pada Fungsi Hash Kriptografi MD5

MESSAGE DIGEST 5 YANG MENGGUNAKAN APLIKASI KRIPTOGRAFI DAN FUNGSI HASH

Kriptografi Modern Part -1

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

+ Basic Cryptography

ALGORITMA MESSAGE DIGEST 5 (MD5) DALAM APLIKASI KRIPTOGRAFI

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB II LANDASAN TEORI

Kriptografi Modern Part -1

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

Kriptografi. A. Kriptografi. B. Enkripsi

BAB 2 LANDASAN TEORI

TINJAUAN PUSTAKA. Protokol

BAB 2 TINJAUAN PUSTAKA

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

Modifikasi Cipher Block Chaining (CBC) MAC dengan Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan Pembangkitan Kunci Berbeda untuk tiap Blok

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

BAB 2 TINJAUAN TEORETIS

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

BAB II LANDASAN TEORI

Kriptografi Kunci Rahasia & Kunci Publik

BAB Kriptografi

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

ALGORITMA RIPEMD. Roland L. Bu'ulölö

KRIPTOGRAFI MATERI KE-2

APLIKASI FUNGSI HASH KRIPTOGRAFI PADA MESSAGE DIGEST 5

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB I PENDAHULUAN. 1.1 Latar Belakang

Kriptografi, Enkripsi dan Dekripsi. Ana Kurniawati Kemal Ade Sekarwati

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

KRIPTOGRAFI SISTEM KEAMANAN KOMPUTER

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB 1 PENDAHULUAN Latar Belakang

Blox: Algoritma Block Cipher

BAB II. Dasar-Dasar Kemanan Sistem Informasi

PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL

BAB II TINJAUAN PUSTAKA

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

Cryptanalysis. adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut cryptanalyst.

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

Pengenalan Kriptografi

BAB I PENDAHULUAN. dengan cepat mengirim informasi kepada pihak lain. Akan tetapi, seiring

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

ALGORITMA MAC BERBASIS FUNGSI HASH SATU ARAH

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

Algoritma Kriptografi Modern (Bagian 2)

FUNGSI HASH PADA KRIPTOGRAFI

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

Algoritma Kriptografi Modern (Bagian 2)

ANALISA KRIPTOGRAFI KUNCI PUBLIK RSA DAN SIMULASI PENCEGAHAN MAN-IN-THE-MIDDLE ATTACK DENGAN MENGGUNAKAN INTERLOCK PROTOCOL

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

STUDI ALGORITMA ADLER, CRC, FLETCHER DAN IMPLEMENTASI PADA MAC

BAB II LANDASAN TEORI

OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5

BAB II LANDASAN TEORI

MODIFIKASI VIGÈNERE CIPHER DENGAN MENGGUNAKAN MEKANISME CBC PADA PEMBANGKITAN KUNCI

BAB 1 PENDAHULUAN 1.1. Latar belakang

SISTEM KRIPTOGRAFI. Mata kuliah Jaringan Komputer Iskandar Ikbal, S.T., M.Kom

BAB II LANDASAN TEORI. 2.1 Sejarah Kriptografi

BAB 2 LANDASAN TEORI

Vol. 3, No. 2, Juli 2007 ISSN PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER

Bab 2 Tinjauan Pustaka

Algoritma Cipher Block EZPZ

BAB III ANALISA DAN PERANCANGAN

Studi Mengenai Algoritma Skipjack dan Penerapannya

STUDI & IMPLEMENTASI ALGORITMA TRIPLE DES

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

Dasar-Dasar Keamanan Sistem Informasi

Studi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5

PERANCANGAN PEMBANGKIT TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE STANDARD (DSS) Sudimanto

Algoritma Message Authentication Code (MAC) dan Perbandingan Metode Penyerangannya

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

Penerapan Matriks dalam Kriptografi Hill Cipher

Tipe dan Mode Algoritma Simetri (Bagian 2)

Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

Berusaha melindungi data dan informasi dari orang yang tidak berada dalam ruang lingkupnya. b. Ketersediaan

Pengantar Kriptografi

IMPLEMENTASI ALGORITMA HILL CIPHER DALAM PENYANDIAN DATA

BAB I PENDAHULUAN. Universitas Sumatera Utara

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

Pengembangan dan Implementasi Algoritma Tiger

Transkripsi:

BAB 2 LANDASAN TEORI 2.1. Pengenalan Kriptografi Pengamanan komunikasi untuk mencegah pihak-pihak yang tidak berwenang dalam melakukan tindakan penyadapan terhadap data dan informasi yang dirasa sensitif, saat ini tidak hanya merupakan kebutuhan dari institusi militer ataupun pemerintah. Sektor bisnis dan bidang lainnya juga merasakan kebutuhan dalam bidang ini. Data yang sifatnya rahasia, otentifikasi informasi, dan keamanan file adalah beberapa elemen yang membutuhkan pengamanan pada komputer dan sistem komunikasi, dari modifikasi dan penyadapan oleh pihak-pihak yang tidak berwenang. Jika pengamanan untuk pengiriman dan penyimpanan data dapat disediakan, maka seluruh pesan dan data yang terlibat dalam komunikasi serta yang terdapat pada media penyimpanan akan seutuhnya aman. Salah satu sistem yang dapat melakukan ini adalah kriptografi. Sistem ini dapat menyembunyikan informasi dengan cara mengubahnya sebelum data tersebut disimpan pada unit penyimpanan yang tersedia. Menezes (1996) dalam bukunya yang berjudul Handbook of Applied Cryptography, menyatakan bahwa kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, otentikasi entitas data, otentifikasi terhadap keaslian data. Sedangkan Rhee (1994) dalam bukunya berjudul Cryptography And Secure Communication, mendefenisikan kriptografi sebagai suatu ilmu mengenai kriptosistem dimana privasi dan otentikasi dari data dapat dijamin. Kurniawan (2004) dalam bukunya yang berjudul Kriptografi Keamanan Internet dan Jaringan Komunikasi, menjelaskan bahwa kriptografi merupakan seni dan ilmu untuk menjaga keamanan pesan.

Pesan atau informasi yang dapat dibaca disebut sebagai plaintext. Plaintext dinyatakan dengan M (message) atau P (plaintext). Pesan dapat berupa aliran bit, file teks, bitmap, aliran suara yang digitasi, gambar video digital dan sebagainya. Teknik untuk membuat pesan menjadi tidak dapat dibaca disebut sebagai enkripsi. Pesan yang tidak dapat dibaca tersebut disebut sebagai ciphertext. Proses yang merupakan kebalikan dari enkripsi disebut sebagai dekripsi. Jadi, enkripsi merupakan proses untuk mengubah pesan yang dapat dibaca (plaintext) menjadi suatu pesan yang tidak dapat dibaca (ciphertext). Sedangkan deskripsi merupakan suatu proses untuk mengembalikan pesan yang tidak dapat dibaca tadi (ciphertext), menjadi dapat dibaca kembali (plaintext). Secara matematis, proses umum enkripsi dijelaskan sebagai berikut: E (P) = C Jadi, proses enkripsi (E) plaintext (P) akan menghasilkan ciphertext C. Sedangkan proses umum deskripsi adalah sebagai berikut: D (C) = P Proses dekripsi (D) ciphertext (C), akan menghasilkan plaintext (P). Bagan dibawah ini akan menggambarkan lebih jelas lagi mengenai proses umum yang terjadi didalam kriptografi: Plaintext Enkripsi Ciphertext Dekripsi Plaintext Gambar 2.1 Proses umum dalam kriptografi 2.1.1. Sejarah dan Perkembangan Kriptografi Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan.

Gambar 2.2 Jenis jenis Hieroglyph Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale. Gambar 2.3 Bentuk Scytale Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf apfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3 huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan C3 (untuk Caesar menggeser 3 tempat).

2.1.2 Tujuan Kriptografi Mengenai pengertian kriptografi, pada awal pembahasan telah dijelaskan bahwa kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, dan otentifikasi terhadap keaslian data. Untuk mencapai ini, perlu ditetapkan suatu tujuan sebagai titik tolak dalam pengembangan ilmu kriptografi itu sendiri. Menurut Rhee (1994) tujuan dari kriptografi dapat memenuhi satu atau lebih dari hal-hal berikut ini: 1. Melakukan proteksi terhadap sistem komputer yang khusus ditujukan untuk pemrosesan dan penyimpanan data. 2. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk mengambil ataupun menghapus suatu informasi dari pesan-pesan yang dikirim melalui saluran terbuka. 3. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk memodifikasi data ataupun informasi pada saluran terbuka. Sejalan dengan penjabaran dari Man Young Rhee, Menezes (1996) menjelaskan tujuan dari kriptografi dalam beberapa butir keterangan berikut ini: 1. Confidentiality. Menjaga muatan informasi dari campur tangan pihak-pihak lain, selain yang memiliki otoritas. 2. Data Integrity. Meyakinkan tidak terjadinya pengubahan data oleh pihak yang tidak memiliki otoritas. Untuk meyakinkan integritas dari suatu data, harus dapat dilakukan pendeteksian apakah data tersebut telah mengalami manipulasi. Manipulasi data meliputi penyisipan, penghapusan, dan pensubstitusian. 3. Authentification. Fungsi untuk pemberian identifikasi. Fungsi ini diberikan baik kepada pengirim maupun kepada penerima informasi itu sendiri. Ke dua belah pihak yang ingin melakukan komunikasi sebaiknya dapat saling melakukan identifikasi. Informasi yang

dikirimkan sebaiknya dapat dipastikan sumbernya, keasliannya, muatannya, waktu pembuatannya, dan lain-lain. 4. Non-Repudiation. Mencegah suatu pihak yang menyangkal telah melakukan pengiriman pesan ataupun informasi. 2.2. Jenis-Jenis Algoritma Kriptografi Terdapat 2 (dua) jenis algoritma kriptografi berdasarkan jenis kuncinya yaitu algoritma simetri (konvensional) dan algoritma asimetri (kunci publik) (Munir, 2007). 2.2.1. Algoritma Simetri Algoritma simetri disebut juga sebagai algoritma konvensional adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Disebut konvensional karena algoritma yang biasa digunakan orang sejak berabad-abad yang lalu adalah algoritma jenis ini. Algoritma simetri sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Kriptografi yang termasuk algoritma kunci simetri adalah OTP, DES, RC2, RC4, RC5, RC6, Message Digest (MD), IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rinjael (AES), Blowfish, GOST, AS, Kasumi, dan lain-lain.

Gambar 2.4 Kriptografi Simetris Gambar 2.4 memperlihatkan kriptografi simetri yang biasa disebut juga sebagai kriptografi kunci konvensional. Pesan plaintext P, misalnya SAYA dikodekan (dienkrip) menjadi ciphertext 60oe menggunakan passord (kunci K) TES. Untuk mengembalikan cipher 60oe menjadi SAYA dilakukan proses dekripsi dengan kunci yang sama yaitu TES. Karena kunci yang digunakan sama, disebut kriptografi kunci simetri. Jenis ini telah digunakan berabad-abad lalu, dinamakan pula sebagai kriptografi konvensional. Algoritma simetri dapat dibagi dalam 2 (dua) kategori. Jenis pertama beroperasi pada plaintext yang berupa satu bit tunggal pada satu waktu, yang disebut Stream Algorithms (algoritma aliran atau Stream Cipher). Jenis ke dua beroperasi pada plaintext dalam grup bit-bit. Grup bit-bit ini disebut blok. Algoritmanya disebut sebagai algoritma blok atau kode rahasia blok (Kurniawan, 2004). 2.2.2 Algoritma Asimetri Algoritma asimetri (juga disebut algoritma kunci publik) didesain sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Kunci dekripsi tidak dapat dihitung dari kunci enkripsi. Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya. Sebarang orang dapat menggunakan kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya tertentu (calon penerima pesan dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi pada pesan tersebut.

Dalam sistem ini, kunci enkripsi sering disebut kunci publik, sementara kunci dekripsi sering disebut kunci privat. Kunci privat disebut kunci rahasia. Kriptografi yang termasuk dalam algoritma asimetri adalah ECC, LUC, RSA, EI Gamal dan DH. Gambar 2.5 Kriptografi ASimetris 2.3. Pola Penyaringan Transmisi Data Proteksi data/informasi dalam komunikasi komputer menjadi penting, karena nilai informasi itu sendiri dan meningkatnya penggunaan komputer di berbagai sektor. Melihat pada kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik sehingga ancaman terhadap pengamanan data akan semakin meningkat. Beberapa pola ancaman terhadap komunikasi data dalam komputer dapat diterangkan sebagai berikut: 1. Interruption Interruption terjadi ketika data yang dikirimkan dari A tidak sampai pada orang yang berhak (B). Interruption merupakan pola penyerangan terhadap sifat availability (ketersediaan data). A B Gambar 2.6 Interruption

2. Interception Serangan ini terjadi pihak ke tiga C berhasil membaca data yang dikirimkan. Interception merupakan pola penyerangan terhadap sifat confidentially (kerahasiaan data). A B C Gambar 2.7 Interception 3. Modification Pada serangan ini pihak ke tiga C berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat integrity (keaslian data). A B C Gambar 2.8 Modification 4. Fabrication Pada serangan ini, penyerang berhasil mengirimkan data ke tujuan dengan memanfaatkan identitas orang lain. Fabrication merupakan pola penyerangan terhadap sifat authenticity. A B C Gambar 2.9 Fabrication Ancaman-ancaman seperti pada pembicaraan sebelumnya menjadi masalah terutama dengan semakin meningkatnya komunikasi data yang bersifat rahasia seperti pemindahan dana secara elektronik kepada dunia perbankan/pengiriman dokumen rahasia pada instansi pemerintah. Untuk mengantisipasi ancaman-ancaman tersebut perlu

dilakukan usaha untuk melindungi data yang dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi. Untuk masalah pengamanannya tergantung pada algoritma metode enkripsi tersebut dan juga kunci yang digunakan di dalamnya. 2.4. Teknik Teknik Enkripsi dan Dekripsi Enkripsi dan dekripsi diibaratkan seperti dua sisi mata uang. Pesan-pesan dibuat seolaholah tidak bermakna dengan merubahnya menurut prosedur tertentu (enkripsi), dan dibuat bermakna kembali dengan menggunakan prosedur yang biasanya bersifat kebalikannya (dekripsi). Dalam dunia kriptografi, pesan yang akan dirahasiakan disebut plaintext, sedangkan bentuk pesan hasil proses enkripsi disebut ciphertext. Berikut ini akan dicontohkan prosedur enkripsi dari masing-masing teknik dasar untuk melakukan pengacakan data terhadap plaintext yang sama, yaitu POLA PENYARINGAN TRANSMISI DATA. 2.4.1 Substitusi Langkah pertama teknik ini adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuai dengan yang dikehendaki, dengan catatan penerima pesan memiliki tabel yang sama untuk keperluan dekripsi. Tabel substitusi dibuat secara acak, sehingga semakin sulit pemecahan ciphertext oleh orang yang tidak berhak. Tabel 2.1 Tabel Substitusi A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0. # B 1 F K Q G A T P J 6 H Y D 2 X 5 M V 7 C 8 4 1 9 N R E U 3 L S W. # O Z 0 Tabel substitusi di atas dibuat secara acak. Tanda spasi akan diganti dengan tanda #. Dengan menggunakan tabel tersebut, dari plaintext di atas akan dihasilkan ciphertext X2HB0XQD9AMPNAD07MBDVYPVP0KB7B. Dengan menggunakan tabel

substitusi yang sama secara dengan arah terbalik, plaintext dapat diperoleh kembali ciphertext-nya. 2.4.2 Blocking Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independent. Plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah: Tabel 2.2 Enkripsi dengan blocking P Y S Blok 1 O A T I Blok 2 L R R Blok 3 A I A D Blok 4 N N A Blok 5 P G S T Blok 6 E A M A Blok 7 N N I Blok 8 Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini. Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan bloknya. Jadi ciphertext yang dihasilkan dengan teknik adalah: PY SOATILRR AIAD NNAPPGSTEAMANNI. Plaintext dapat pula ditulis secara horizontal dan ciphertext-nya adalah hasil pembacaan secara vertikal.

2.5 Mode Operasi Mode-mode operasi yang biasa digunakan dalam kriptografi ada 4 (macam). Mode-mode operasi ini bertujuan sama yaitu untuk mengatasi keamanan cara penyandian dan juga untuk mempermudah penyandian. Adapun mode tersebut: 1. Mode Electronic Code Book (ECB) 2. Mode Cipher Blok Chaining (CBC) 3. Mode Cipher Feed Back (CFB) 4. Mode Output Feed Back (OFB) 2.5.1 Electronic Code Book (ECB) Pada mode Electronic Code Book (ECB) ini, suatu blok cipher yang panjangnya dibagi dalam bentuk urutan binari menjadi satu blok tanpa mempengaruhi blok-blok lain. Satu blok terdiri dari 64 bit atau 128 bit. Setiap blok merupakan bagian dari pesan yang dienkripsi. Mode ini merupakan suatu enkripsi yang sederhana, kerusakan satu blok data tidak mempengaruhi blok-blok lainnya. Pada dasarnya sifat yang paling mendasar dari mode ECB adalah blok plaintext yang sama akan dikodekan menjadi cipher yang sama. Secara matematis, enkripsi dengan mode ECB dinyatakan sebagai berikut: C i = E k (P i ) dan dekripsi sebagai: P i = D K (C i ) 2.5.2 Cipher Block Chaining (CBC) Sistem mode Cipher Blok Chaining (CBC) adalah plaintext yang sama akan dienkripsi kedalam bentuk cipher yang berbeda, karena blok yang satu tidak berhubungan dengan blok yang lainnya. Pada mode CBC, input untuk enkripsi merupakan hasil dari XOR antara plaintext dengan ciphertext sebelumnya. Kunci digunakan pada setiap blok yang ada. Begitu juga halnya dengan mendekripsi pesan, setiap blok cipher dari algoritma

dekripsi merupakan hasil dari XOR dengan blok sebelumnya untuk mendapatkan blok dari plaintext. Bentuk formal dari hal di atas seperti: C 1= E k (IV P 1 ) P 1= D k (C 1 ) IV 2.5.3 Cipher Feed Back (CFB) Mode Cipher FeedBack (CFB) ini digunakan untuk melakukan enkripsi pada stream cipher, mode ini tidak memerlukan padding bit (bit tambahan) karena jumlah panjang blok sama dengan jumlah panjang plaintext yang ada. Mode CFB memiliki input 8 bit yang diproses setiap enkripsi dan ciphertext sebelumnya digunakan sebagai input dari algoritma enkripsi untuk menghasilkan algoritma yang diacak. Output diambil dari 8 bit paling kiri untuk dilakukan operasi XOR dengan plaintext dengan panjang 8 bit untuk dapat menghasilkan ciphertext yang berikutnya. Input dari enkripsi terdiri dari 8 bit yang digeser ke kiri sebanyak 8 bit. Karena terjadi penggeseran, kekosongan yang ada akan diisi oleh cipher sebelumnya. Input dari enkripsi pada awalnya adalah IV (initial value). 2.5.4 Output Feed Back (OFB) Mode Output Feed Back (OFB) tidak mempengaruhi blok yang lain walaupun terjadi error, satu bit yang error pada ciphertext hanya akan mempengaruhi satu bit plaintext pada terjadinya proses dekripsi. 2.6. Keamanan Algoritma Suatu algoritma dikatakan aman apabila algoritma itu memiliki keadaan seperti berikut: 1. Jika harga untuk menjebol algoritma lebih besar daripada nilai informasi yang dibuka, maka algoritma aman. Misalkan diperlukan komputer senilai 1 juta dollar untuk menjebol algoritma senilai 100 ribu dollar, algoritma itu aman.

2. Jika waktu yang diperlukan untuk menjebol algoritma tersebut lebih lama daripada lamanya waktu yang diperlukan oleh informasi tersebut harus tetap aman, maka algoritma aman. Misalnya waktu untuk membobol sebuah kartu kredit 1 tahun, sedangkan sebelum setahun kartu tersebut sudah tidak berlaku lagi, algoritma itu aman. 3. Jika jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut, maka algoritma itu aman. Misalkan diperlukan 100 ciphertext untuk menebak kunci yang digunakan untuk satu pesan, algoritma itu aman. 2.7. Fungsi Hash satu arah Fungsi hash satu arah merupakan fungsi satu arah (one way function) yang dapat menghasilkan ciri (signature) dari data (berkas, stream). Perubahan satu bit saja akan mengubah keluaran hash secara drastis. Fungsi hash biasanya digunakan untuk menjamin integritas dan digital signature. Fungsi hash satu arah memiliki banyak nama diantaranya fungsi pembanding, fungsi penyusutan, intisari pesan, sidik jari, message integrity check (MIC) atau pemeriksa keutuhan pesan dan manipulation detection code (MDC) atau pendeteksi penyelewengan kode. Fungsi hash satu arah dibuat berdasarkan ide tentang fungsi pemampatan. Fungsi hash adalah sebuah fungsi atau persamaan matematika yang mengambil input dengan panjang variabel (pre image) dan mengubahnya menjadi panjang yang tetap (biasanya lebih pendek), keluarannya biasa disebut nilai hash. Metode fungsi hash satu arah adalah berfungsi melindungi data dari modifikasi (Munir, 2006). Apabila ingin melindungi data dari modifikasi yang tidak terdeteksi, dapat dihitung hasil fungsi hash dari data tersebut, selanjutnya dapat menghitung hasil fungsi hash lagi dan membandingkannya dengan hasil pertama apabila berbeda maka terjadi perubahan selama pengiriman. Masukan dari fungsi hash satu arah adalah blok pesan dan keluaran dari blok teks atau nilai hash sebelumnya ini dapat dilihat pada Gambar 2.10 sehingga secara garis besar, hash dari blok Mi adalah: hi = f(mi,hi - 1)

Nilai hash ini bersama blok pesan berikutnya menjadi masukan berikutnya bagi fungsi pemampatan. Nilai hash keseluruhan adalah nilai hash dari blok paling akhir. Preimage sedapatnya mengandung beberapa binary yang menggambarkan panjang dari masukan pesan. Teknik ini digunakan untuk mengatasi masalah yang dapat terjadi bila pesan yang tidak sama mempunyai nilai hash yang sama. Metode ini disebut MDstrengthening atau penguatan MD. Fungsi Hash satu arah dapat dilihat pada Gambar 2.10. M hn Fungsi Hash satu Arah h1 Gambar 2.10 Fungsi Hash Satu Arah 2.8. Message Digest 5 Message Digest 5 (MD5) adalah salah satu dari serangkaian algoritma Message Digest yang didesain oleh Professor Ronald Rivest dari MIT. Saat kerja analitik menunjukkan bahwa pendahulu MD5 yaitu MD4 mulai tidak aman, MD5 kemudian di desain pada tahun 1991 sebagai pengganti dari MD4 dimana kelemahan MD4 telah ditemukan oleh Hans Dobbertin. MD5 banyak digunakan pada bermacam-macam aplikasi termasuk SSL/TLS, IPSec dan protocol-protokol kriptografi lainnya. MD5 juga biasa digunakan pada implementasi Timestamping Mechanism, Commitment Schemes, dan aplikasi pengecekan integritas pada online software. MD5 tidak memiliki sistim pengamanan seperti persamaan matematika, namun untuk setiap fungsi hash h, domain D dan range R membutuhkan tiga hal berikut: 1. Pre Image Resistance : jika diberi suatu nilai y ε R, maka kita tidak akan dapat mencari suatu nilai x ε D dimana h(x)=y. 2. Second Pre Image Resistance : jika diberi suatu nilai x ε D, maka kita tidak akan dapat mencari nilai x ε D dimana h(x)=h(x ). 3. Collision Resistance : kita tidak akan dapat mencari nilai x,x ε D dimana h(x)=h(x ).

2.8.1 Prinsip Dasar MD5 Dalam menghasilkan suatu chiper text dari plain text terdapat beberapa cara, seperti fungsi hash satu arah. Fungsi hash satu arah adalah suatu fungsi dimana kita dengan mudah melakukan enkripsi untuk mendapatkan chipertext-nya tetapi sangat sulit untuk mendapatkan plaintext-nya (melakukan dekripsi). Salah satu fungsi hash yang paling banyak digunakan adalah Message Digest 5 (MD5). Message Digest 5 (MD5) adalah salah satu penggunaan fungsi hash satu arah yang paling banyak digunakan. MD5 merupakan fungsi hash kelima yang dirancang oleh Ron Rivest dan didefinisikan pada RFC 1321. MD5 merupakan pengembangan dari MD4 dimana terjadi penambahan satu ronde. MD5 memproses teks masukan ke dalam blok-blok bit sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluaran dari MD5 berupa 4 buah blok yang masing-masing 32 bit yang mana akan menjadi 128 bit yang biasa disebut nilai hash. Gambar 2.11 Satu Operasi MD5 Gambar 2.11 adalah satu operasi MD5 yang terdiri atas 64 operasi, dikelompokkan dalam empat putaran dari 16 operasi. F adalah fungsi nonlinear; satu fungsi digunakan pada tiap-tiap putaran. Mi menujukkan blok 32-bit dari masukan pesan, dan Ki menunjukkan konstanta 32-bit, berbeda untuk tiap-tiap operasi. Notasi <<< s menunjukkan perputaran bit kiri oleh s, s bervariasi untuk tiap-tiap operasi. menunjukkan tambahan modulo 2 32. MD5 memproses variasi panjang pesan ke dalam keluaran 128-bit dengan panjang yang tetap. Pesan masukan dipecah menjadi dua

gumpalan blok 512-bit. Pesan ditata sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai berikut: bit tunggal pertama,1, diletakkan pada akhir pesan. Proses ini diikuti dengan serangkaian nol (0) yang diperlukan agar panjang pesan lebih dari 64-bit dan kurang dari kelipatan 512. Bit-bit sisa diisi dengan 64-bit integer untuk menunjukkan panjang pesan yang asli. Sebuah pesan selalu ditata setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah kelipatan 512 dikurangi 64-bit untuk informasi panjang (panjang mod(512) = 448), sebuah blok baru dari 512-bit ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol (0) diikuti dengan panjang 64-bit. Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat word 32-bit, menunjukkan A,B,C, dan D. Operasi tersebut diinisialisasi dijaga untuk tetap konstan. Register A,B,C dan D diinisialisasi dengan bilangan hexadecimal. word A: 01 23 45 67 word B: 89 AB CD EF word C: FE DC BA 98 word D: 76 54 32 10 Register-register ini biasa disebut dengan nama chain variable atau variabel rantai. Algoritma utama kemudian beroperasi pada masing-masing blok pesan 512-bit, masing-masing blok melakukan pengubahan terhadap kondisi. Pemrosesan blok pesan terdiri atas empat tahap, batasan putaran, tiap putaran membuat 16 operasi serupa berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke kiri. Gambar 2.11 di atas mengilustrasikan satu operasi dalam putaran. Ada empat macam kemungkinan fungsi F, berbeda dari yang digunakan pada tiap-tiap putaran. F (X, Y, Z) = (X G (X, Y, Z) = (X H (X, Y, Z) = X I (X, Y, Z) = Y X Y menunjukkan operasi logika XOR, AND, OR dan NOT. Berikut dapat dilihat satu buah operasi dari MD5 dengan operasi yang dipakai sebagai contoh adalah FF

(a,b,c,d,mj,s,ti) menunjukkan a = b + ((a + F(b,c,d) + Mj + ti) <<< s). Bila Mj menggambarkan pesan ke-j dari sub blok (dari 0 sampai 15) dan <<< s menggambarkan bit akan digeser ke kiri sebanyak s bit, maka keempat operasi dari masing-masing ronde adalah: FF(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a + F(b,c,d) + Mj + ti) <<< s) GG(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a +G(b,c,d) + Mj + ti) <<< s) HH(a,b,c,d,Mj,s,ti) menunjukan a = b + ((a +H(b,c,d) + Mj + ti) <<< s) I(b,c,d) + Mj + ti) <<< s) Konstanta ti didapat dari integer 2 32 x abs(sin(i)), dimana i dalam radian. Keluaran dari MD5 adalah 128-bit dari word terendah A dan tertinggi word D masing-masing 32-bit. 2.8.2 Pengujian Integritas MD5 digunakan secara luas dalam dunia perangkat lunak untuk menyediakan semacam jaminan bahwa file yang diambil (download) belum terdapat perubahan. Seorang user dapat membandingkan MD5 sum yang dipublikasikan dengan checksum dari file yang diambil. Dengan asumsi bahwa checksum yang dipublikasikan dapat dipercaya akan keasliannya, seorang user dapat secara yakin bahwa file tersebut adalah file yang sama dengan file yang dirilis oleh para developer, jaminan perlindungan dari Trojan Horse dan virus komputer yang ditambahkan pada perangkat lunak. Bagaimanapun juga, seringkali kasus yang terjadi bahwa checksum yang dipublikasikan tidak dapat dipercaya (sebagai contoh, checksum didapat dari channel atau lokasi yang sama dengan tempat mengambil file), dalam hal ini MD5 hanya mampu melakukan error-checking. MD5 akan mengenali file yang di-download tidak sempurna, cacat atau tidak lengkap. 2.8.3 Kerusakan pada MD5 Pada tahun 1993, den Boer dan Bosselaers memberikan awal, bahkan terbatas, hasil dari penemuan pseudo-collision dari fungsi kompresi MD5. Dua vector inisialisasi berbeda I dan J dengan beda 4-bit diantara keduanya. MD5compress(I,X) = MD5compress(J,X)

Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan pada fungsi kompresi MD5. Dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5 sepenuhnya, hal ini menyebabkan para pengguna kriptografi menganjurkan pengganti seperti Whirlpool, SHA-1 atau RIPEMD-160. Ukuran dari hash (128-bit) cukup kecil untuk terjadinya serangan brute force birthday attack. MD5CRK adalah proyek distribusi mulai Maret 2004 dengan tujuan untuk menunjukkan kelemahan dari MD5 dengan menemukan kerusakan kompresi menggunakan brute force attack. Bagaimanapun juga, MD5CRK berhenti pada tanggal 17 Agustus 2004, saat kerusakan hash pada MD5 diumumkan oleh Xiaoyun Wang, Dengguo Feng, Xuejia Lai, dan Hongbo Yu. Serangan analitik mereka dikabarkan hanya memerlukan satu jam dengan menggunakan IBM P690 cluster. Serangan yang dilakukan Wang dan teman-temannya menjelaskan cara yang efektif untuk menemukan 1024-bit string M yang menyebabkan MD5(M) = MD5(M ). Mereka melakukan ini dengan cara menelusuri perbedaan pada nilai-nilai tiap langkah saat melakukan perhitungan MD5(M) dan MD5(M ). Misalkan Qi melambangkan output ronde yang ke-i dari fungsi kompresi MD5 (MD5c) dengan masukan M dan Qi melambangkan output ronde yang ke-i dari fungsi kompresi MD5 (MD5c) dengan masukan M. Dengan menyediakan 128 nilai ai (64 untuk blok pertama dan 64 untuk blok kedua), 0 i 128, jika metode ini menemukan suatu string M yang menyebabkan MD5(M) = MD5(M ), kemudian Qi - Qi = ai untuk semua Qi dihitung pada saat penghitungan MD5c(M0) dan MD5c(M0 ) dan Qi - Qi = ai+64 untuk semua Qi dihitung pada saat penghitungan MD5c(M1) dan MD5c(M1 ). Kita menyebut nilai Qi - Qi sebagai pembeda (differentials). Sebagai tambahan, 4 (empat) nilai ekstra/tambahan diberikan yang menetapkan pembeda-pembeda untuk nilai pertengahan rantai (intermediate chaining values) atau keluaran (output) dari MD5c(M0) dan MD5c(M0 ). Metode yang digunakan Wang untuk mencari string M yang tepat dapat dijelaskan melalui pseudocode berikut : Algorithm Find Collision while collision_found is false do: 1. Use random seeds and deterministic methods to find M which satisfies most conditions on Qi 2. Compute all Qi and Q0 i to check to see if differentials are correct

4. if (rest_of_differentials_hold) then collision_found true else collision_found false end do 5. return M Pseudocode diatas dilakukan satu kali untuk setiap blok M. Ketika blok M0 yang memenuhi semua pembeda blok pertama ditemukan pertama kali, kemudian blok M1 dapat ditemukan. Dikarenakan MD5 hanya menggunakan satu langkah pada data, jika dua buah awalan dengan hash yang sama dapat dibangun, sebuah akhiran yang umum dapat ditambahkan pada keduanya untuk membuat kerusakan lebih masuk akal. Dan dikarenakan teknik penemuan kerusakan mengizinkan pendahuluan kondisi hash menjadi arbitrari tertentu, sebuah kerusakan dapat ditemukan dengan awalan apapun. Proses tersebut memerlukan pembangkitan dua buah file perusak sebagai file template, dengan menggunakan blok 128-byte dari tatanan data pada 64-byte batasan, file-file tersebut dapat mengubah dengan bebas dengan menggunakan algoritma penemuan kerusakan. Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses pembangkitan kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang sama. Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5 (2128), tetapi terdapat bilangan yang tak terbatas sebagai masukannya, hal ini harus dipahami sebelum kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar bahwa menemukannya adalah hal yang sulit. Sebagai hasilnya bahwa hash MD5 dari informasi tertentu tidak dapat lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari sebuah public key, hash MD5 tidak mengenalinya secara berbeda jika terdapat public key selanjutnya yang mempunyai hash MD5 yang sama. Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan untuk memilih kedua pesan kerusakan. Kedua pesan tersebut tidak dengan mudah untuk memberikan serangan Pre-image, menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun serangan Pre-image kedua, menemukan pesan dengan hash MD5 yang sama sebagai pesan yang diinginkan. Hash MD5 lama, yang dibuat sebelum serangan-serangan tersebut diungkap, masih dinilai aman untuk saat ini. Khususnya pada digital signature lama masih dianggap layak pakai. Seorang user boleh saja tidak ingin membangkitkan atau mempercayai signature baru menggunakan MD5 jika masih ada kemungkinan kecil pada teks

(kerusakan dilakukan dengan melibatkan pelompatan beberapa bit pada bagian 128-byte pada masukan hash) akan memberikan perubahan yang berarti. Penjaminan ini berdasar pada posisi saat ini dari kriptoanalisis. Situasi bisa saja berubah secara tiba-tiba, tetapi menemukan kerusakan dengan beberapa data yang belum ada adalah permasalahan yang lebih susah lagi, dan akan selalu butuh waktu untuk terjadinya sebuah transisi.