Tea

Embed Size (px)

Citation preview

PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA SIMETRI TEA DENGAN BAHASA PEMROGRAMAN DELPHI 7.0

SKRIPSI

YUNITA SARI 041401031

PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2009

Yunita Sari : Perancangan Dan Implementasi Sistem Keamanan Data Menggunakan Algoritma Simetri Tea Dengan Bahasa Pemrograman Delphi 7.0, 2009. USU Repository 2009

2

PERSETUJUAN

Judul

Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas

: PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA SIMETRI TEA DENGAN BAHASA PEMROGRAMAN DELPHI 7.0 : SKRIPSI : YUNITA SARI : 041401031 : SARJANA (S1) ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, 17 Maret 2009

Komisi Pembimbing Pembimbing 2

: Pembimbing 1

Syahriol Sitorus, S.Si, MIT NIP. 132 174 687

Prof. Dr. Iryanto, M.Si NIP. 130 353 140

Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,

Prof. Dr. Muhammad Zarlis NIP 131 570 434

3

PERNYATAAN

PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA SIMETRI TEA DENGAN BAHASA PEMROGRAMAN DELPHI 7.0

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 17 Maret 2009

Yunita Sari 041401031

4

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT, dengan limpahan karunia-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan. Ucapan terima kasih penulis sampaikan kepada Bapak Prof. Dr. Iryanto, M.Si selaku pembimbing 1 dan Bapak Syahriol Sitorus S.Si, MIT selaku Sekretaris Program Studi S-1 Ilmu Komputer serta pembimbing 2 pada penyelesaian skripsi ini yang telah memberikan panduan, motivasi serta kepercayaan yang penuh kepada penulis untuk menyempurnakan kajian ini, panduan ringkas dan padat serta profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan penelitian ini. Selanjutnya kepada Bapak Drs. Muhammad Firdaus, M.Si selaku pembimbing akademik yang telah memberikan banyak arahan dalam perkuliahan pada penulis sejak penulis berada di Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara hingga menyelesaikan ujian sarjana lengkap. Kepada Bapak Prof. Dr. Muhammad Zarlis selaku Ketua Program Studi S-1 Ilmu Komputer serta pembanding 1 dan Bapak Drs. Agus Salim Harahap, M.Si selaku pembanding 2 Skripsi yang telah banyak memberikan saran, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta seluruh pegawai pada Program Studi Ilmu Komputer FMIPA USU, pegawai di FMIPA USU, pegawai di Biro Rektor USU. Teristimewa ayahanda dan ibunda tercinta atas teladan, kasih sayang, doa, dukungan materil dan semangat yang telah diberikan kepada penulis selama ini, semoga segala kebaikan ini juga dibalas dengan kebaikan disisiNya. Selanjutnya kepada Ismail Arif, S.Kom, Nisa Dewi Asmar, S.Kom, Dewi Try Agustina, S.Kom, Bang Rahmat Muliadi, S.Si terima kasih atas kelapangan waktu yang diberikan kepada penulis untuk berbagi ilmu. Selanjutnya, kepada teman-teman terbaik, Saidul Akmal, Fika Dewi Atma Putri, Nencyawaty atas motivasi, kebaikan dan perhatiannya. Nurvida Sovyanna Br. Sinulingga, Dedi Setiawan, Sutisna Saputra, Leni SY, S.Kom, Dian MS, S.Kom, Dewi Yanti, S.Kom, Sri F, Farida Y dan Atika Z, S.Kom serta rekan-rekan kuliah angkatan 04 yang telah banyak memberikan motivasi serta bantuan kepada penulis.

5

ABSTRAK

Keamanan data merupakan salah satu aspek terpenting dalam teknologi informasi. Dengan tingkat keamanan yang tinggi, diharapkan informasi yang disajikan dapat terjaga keasliannya. Pada tugas akhir ini dibentuk suatu sistem yang mengamankan data dan informasi yang tersimpan pada komputer dari gangguan para kriptanalis. Sistem ini dibangun menggunakan perangkat lunak Borland Delphi 7.0. Metodologi untuk membentuk sistem menggunakan pendekatan model air terjun. Tahapan yang penulis lakukan untuk melakukan proses pembentukan sistem tersebut meliputi tahapan analisis permasalahan, perancangan aplikasi yang melibatkan diagram alir data, algoritma dan flowchart beserta pemodelan struktur program dan desain antar muka aplikasi, sehingga aplikasi yang terbentuk menjadi mudah dipergunakan dan memiliki fungsi yang optimal. Dengan menggunakan Algoritma TEA yang merupakan algoritma kriptografi kunci rahasia, permasalahan tersebut dapat diatasi. Kekuatan algoritma ini terletak pada jaringan feistel (meliputi operasi subtitusi, permutasi dan modular arithmetic) dan bilangan delta yang berasal dari golden number.

6

DESIGN AND IMPLEMENTATION OF DATA SECURITY SYSTEM BY USING TEA SYMETRI ALGORITHM BY DEPLHI 7.0 PROGRAMMING LANGUAGE ABSTRACT

Data security is one of the important aspect in the information technology. With security level is high, desire information that coursed can protected authenticity. In this writing, a system that secure data and information which stored on computer of perturbation by cryptanalysts was formed. The system is built by using Borland Delphi 7.0 application. The methodologies to form the system use the approach of waterfall model. The steps which is done to conduct the application in forming the process covered the step analysis of the problems, designing application containing data flow diagram, algorithms, and flowchart along with the program structure and user interface design, so that the application formed become easy to use and optimally functioned. By using this TEA cryptographic Algorithm which is private key cryptography algorithm, that issues can be solved. The strength of this algorithm lies on the feistel network ( that is use substitution operation, permutation, and modular arithmetic) and the delta number is derived from the golden number.

7

DAFTAR ISI

Halaman PERSETUJUAN PERNYATAAN PENGHARGAAN ABSTRAK ABSTRACT DAFTAR ISI DAFTAR TABEL DAFTAR GAMBAR BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah 1.2. Rumusan Masalah 1.3. Batasan Masalah 1.4. Tujuan Penelitian 1.5. Manfaat Penelitian 1.6. Metode Penelitian 1.7. Sistematika Penulisan BAB 2 LANDASAN TEORI 2.1. Kriptografi 2.1.1. Definisi Kriptografi 2.1.2. Sejarah Kriptografi 2.1.3. Tujuan Kriptografi 2.1.4. Konsep Dasar Kriptografi 2.1.4.1. Message, Plaintext, dan Ciphertext 2.1.4.2. Peserta Komunikasi 2.1.4.3. Kriptologi 2.1.4.4. Algoritma Kriptografi 2.1.4.5. Sistem Kriptografi 2.1.4.6. Kategori Cipher Kunci-Simetri 2.4.6.1 Kategori Cipher Kunci-Simetri 2.1.4.7. Prinsip Prinsip Perancangan Cipher Blok 2.2. Tiny Encryption Algorithm 2.3. Masalah Keamanan Informasi Di Negara Republik Indonesia 2.3.1. Hari Persandian Nasional 2.3.2. Informasi Rahasia dalam UU KIP 2.3.3. Standar Keamanan Nasional 2.4. Rekayasa Perangkat Lunak 2.5. Pemrograman dengan Delphi 7.0 BAB 3 ANALISIS DAN PEMODELAN PERANGKAT LUNAK 3.1. Analisis Permasalahan Tiny Encryption Algorithm (TEA) 3.2. Analisis Kebutuhan Tiny Encryption Algorithm (TEA) 3.3. Analisis Proses Enkripsi Algoritma TEA 2 3 4 5 6 7 9 10 11 11 12 12 13 13 13 14 16 16 17 19 20 20 20 21 22 23 27 31 31 99 41 46 46 47 48 51 53 54 54 54 56

8

3.4. Analisis Proses Deskripsi Algoritma TEA 3.5. Pemodelan Fungsional 3.5.1. DFD dan Spesifikasi Proses 3.5.2. Kamus Data BAB 4 PERANCANGAN DAN IMPLEMENTASI 4.1. Perancangan 4.1.1. Perancangan Struktur Data 4.1.2. Perancangan Struktur Program 4.1.3. Perancangan Antarmuka Pemakai 4.1.4. Perancangan Prosedural 4.2. Implementasi BAB 5 PENUTUP 5.1. Kesimpulan 5.2. Saran DAFTAR PUSTAKA LAMPIRAN A TABEL LAPORAN PENGUJIAN PROGRAM LAMPIRAN B LISTING PROGRAM LAMPIRAN C TABEL KODE ASCII

61 61 61 69 72 72 72 73 75 79 84 90 90 91 92 93 94 114

9

DAFTAR TABEL

Halaman Tabel 2.1 Tabel 3.1 Tabel 3.2 Tabel 3.4 Tabel 3.5 Tabel 3.6 Tabel 3.7 Perbandingan Estimasi Proses Algoritma TEA dengan Algoritma Simetri lainnya. Spesifikasi proses diagram konteks/DFD Level 0 Spesifikasi proses diagram level 1 Spesifikasi Proses DFD Level 2 Proses 2 (Proses Enkripsi) Spesifikasi Proses DFD Level 3 Proses 3 (Proses Deskripsi) Kamus Data Proses Enkripsi Kamus Data Proses Deskripsi 45 62 64 66 68 70 71

10

DAFTAR GAMBAR

Halaman Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 2.9 Gambar 2.10 Gambar 2.11 Gambar 2.12 Gambar 2.13 Gambar 2.14 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Mesin Enkripsi Enigma Proses Enkripsi dan Deskripsi Contoh Plainteks dan Cipherteks Skema Komunikasi dengan Proses Enkripsi Hubungan Kriptografi, Kriptanalisis dan Steganografi Proses Enkripsi Deskripsi Menggunakan Algoritma Simetri Proses Enkripsi Deskripsi Menggunakan Algoritma Asimetri Skema enkripsi dan dekripsi dengan mode ECB Skema enkripsi dan dekripsi dengan mode CBC Skema enkripsi dengan mode CFB Skema dekripsi dengan mode CFB Skema dekripsi dengan mode OFB Skema enkripsi dengan mode OFB Skema Algoritma TEA Diagram Konteks/DFD Level 0 Diagram Level 1 Diagram Level 2 (Proses Enkripsi) Diagram Level 2 (Proses Deskripsi) Struktur Program KripTEA Rancangan Layar Utama KripTEA Rancangan Layar Encryption Rancangan Layar Descryption Rancangan Form About Flowchart Prosedur Enkripsi Flowchart Prosedur Deskripsi Tampilan Layar Utama KripTEA Tampilan Layar Encryption Enkripsi File Gambar 4.11 Tampilan Layar Descryption Gambar 4.12 Tampilan Layar Descryption Pada Saat Menampilkan Output Deskripsi File Gambar 4.13 Tampilan Layar About 89 87 88 18 20 21 22 23 24 55 32 34 36 37 38 38 42 62 63 65 67 74 76 77 78 79 81 83 84 85 86

Gambar 4.10 Tampilan Layar Encryption Pada Saat Menampilkan Output

11

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Masalah keamanan dan kerahasiaan data merupakan hal yang sangat penting dalam suatu organisasi maupun pribadi. Apalagi jika data tersebut berada dalam suatu jaringan komputer yang terhubung/terkoneksi dengan jaringan lain. Hal tersebut tentu saja akan menimbulkan resiko bilamana informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang tidak berhak. Yang mana jika hal tersebut sampai terjadi, kemungkinan besar akan merugikan bahkan

membahayakan orang yang mengirim pesan atau menerima pesan, maupun organisasinya. Informasi yang terkandung di dalamnya pun bisa saja berubah sehingga menyebabkan salah penafsiran oleh penerima pesan. Selain itu data yang dibajak tersebut akan memiliki kemungkinan rusak bahkan hilang yang akan menimbulkan kerugian material yang besar.

Oleh karena itu, untuk menghindari agar hal tersebut tidak terjadi, digunakanlah sebuah program khusus proteksi/enkripsi data. Saat ini banyak beredar program khusus proteksi data, pada umumnya program tersebut tidak hanya menyediakan satu metoda saja, tetapi beberapa jenis sehingga kita dapat memilih yang menurut kita paling aman. Dewasa ini, dalam dunia dengan arus informasi yang semakin global, kriptografi telah menjadi suatu bagian yang tidak dapat dipisahkan dari sistem keamanan jaringan. Ada berbagai algoritma kriptografi yang sekarang ini telah dan sedang dikembangkan, salah satunya diantaranya algoritma kunci simetris ataupun asimetris (pembagian berdasarkan kunci). Salah satu metode enkripsi data adalah Tiny Encryption Algorithm (TEA). Tiny Encryption algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Algoritma ini

12

merupakan algoritma penyandian block cipher yang menggunakan proses feistel network dengan panjang kunci 128 bit, dengan cara memproses 64-bit input sekali waktu dan menghasilkan 64-bit output.

Dalam tugas akhir ini penulis akan membahas bagaimana kinerja dari algoritma Tiny Encrytion Algorithm (TEA) dalam proses enkripsi dan deskripsi pesan, sejauh manakah tingkat keamanannya.

1.2 Rumusan Masalah

Dalam tugas akhir ini penulis akan membahas masalah tentang : a. Bagaimana merancang sistem keamanan data menggunakan Algoritma simetri Tiny Encryption algorithm (TEA). b. Bagaimana mengimplementasikan Tiny Encryption Algorithm (TEA) dalam bentuk aplikasi sederhana menggunakan bahasa pemrograman Delphi 7.0.

1.3 Batasan Masalah

a. Dalam penelitian ini hanya membahas mengenai proses penyandian pesan yang meliputi : proses enkripsi dan deskripsi pesan menggunakan algoritma TEA serta mengimplementasikannya dalam sebuah program sederhana. b. Dalam penelitian ini hanya membahas mengenai proses penyandian yang dilakukan pada pesan dalam format teks (seperti dalam format *.doc dan *.txt). c. Tidak membahas mengenai mekanisme pemecahan kunci sandi (kriptanalisis). d. Tidak membahas tentang cara memecahkan masalah feistel network, penjumlahan bilangan delta ((5/4)1/2 - 1/2 ~ 0.618034) 232 yang merupakan konsep dasar dari algoritma TEA.

13

e. Proses enkripsi dan deskripsi dilakukan secara sederhana hanya pada data yang disimpan di dalam storage, bukan pada data yang dikirim (ditransmisikan) dalam suatu saluran komunikasi. f. Sistem yang dibangun lebih memfokuskan pada kerahasian data

(confidentiality). g. Aplikasi dibuat menggunakan bahasa pemrogaraman Delphi 7.0.

1.4 Tujuan Penelitian

Adapun tujuan dari Tugas Akhir ini adalah merancang suatu sistem keamanan data yang cukup handal yang dapat digunakan dalam hal pengamanan data agar tidak dapat diganggu ataupun diakses oleh pihak yang tidak berhak meskipun digunakan pada jaringan yang tidak aman, sehingga keamanan data tetap terjaga.

1.5 Manfaat Penelitian

Adapun manfaat dari penelitian yang dilakukan adalah untuk mengetahui sejauh manakah keamanan data dapat terjaga dengan menggunakan algoritma Tiny Encryption Algorithm (TEA) dan menilik lebih lanjut bahwa masih banyak algoritma yang lebih baik daripada DES khususnya dalam pengamanan data serta dengan adanya software yang dirancang nantinya diharapkan akan memudahkan bagi siapa saja yang ingin melindungi datanya agar tidak dapat dibaca oleh pihakpihak yang tidak berhak.

14

1.6

Metode Penelitian

Adapun langkah-langkah yang akan ditempuh dalam proses penelitian selama pengerjaan tugas akhir ini adalah sebagai berikut : a. Studi literatur. Penulisan ini dimulai dengan studi kepustakaan, yaitu dengan mengumpulkan bahan-bahan referensi baik dari buku, artikel, paper, jurnal, makalah, situs internet mengenai algoritma kriptografi Tiny Encryption Algorithm (TEA) dan konsep matematis yang mendasarinya serta

pemrograman untuk pembuatan aplikasinya, dan beberapa referensi lainnya untuk menunjang pencapaian tujuan tugas akhir yang dibuat. b. Analisis permasalahan. Pada tahap ini dilakukan analisis terhadap Tiny Encryption Algorithm (TEA) baik dari aspek matematis maupun proses penyandiannya. c. Perancangan Sistem. Perancangan sistem yang dapat menjaga keamanan data. d. Implementasi sistem yang dirancang kedalam sebuah bahasa pemrograman. e. Testing Program. Untuk mengetahui sejauh manakah tingkat kesuksesan program yang dibuat. f. Penyusunan laporan dan penarikan kesimpulan. Menyusun laporan hasil analisis dan perancangan ke dalam format penulisan tugas akhir disertai penarikan kesimpulan.

1.7 Sistematika Penulisan

BAB 1 : PENDAHULUAN Bab ini akan menjelaskan mengenai latar belakang pemilihan judul, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.

BAB 2 : LANDASAN TEORI Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan bab selanjutnya.

15

BAB 3 : ANALISIS DAN PEMODELAN PERANGKAT LUNAK Berisikan analisa permasalahan dan kebutuhan algoritma Tiny Encryption Algorithm (TEA) serta pemodelan sistem secara fungsional.

BAB 4 : PERANCANGAN DAN IMPLEMENTASI Berisikan gambaran rancangan struktur program dan desain antar muka, serta memberikan gambaran dari rancang bangun yang lengkap kepada user dan pemakai komputer yang lain serta implementasinya yaitu menguji untuk menemukan kesalahan serta implementasi enkripsi/dekripsi data menggunakan algoritma Tiny Encryption Algorithm (TEA).

BAB 5 : PENUTUP Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat dalam pengembangan selanjutnya.

16

BAB 2

LANDASAN TEORI

2.1 Kriptografi

2.1.1 Definisi Kriptografi

Untuk dapat mengenal kriptografi diperlukan pemahaman mengenai masalah yang berhubungan dengan keamanan informasi secara umum. Keamanan informasi membangun dirinya sendiri dalam berbagai cara sesuai dengan situasi dan kebutuhan (Menezes, van Oorschot dan Vanstone, 1996).

Kata kriptografi berasal dari bahasa Yunani, kryps yang berarti tersembunyi dan grphein yang berarti tulisan. Sehingga kata kriptografi dapat diartikan berupa frase tulisan tersembunyi.

Bishop (2005) menyatakan bahwa kriptografi merupakan seni dan ilmu yang ditujukan untuk menyembunyikan arti yang sesungguhnya.

Menezes, van Oorschot dan Vanstone (1996) menyatakan bahwa kriptografi adalah suatu studi teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, otentikasi entitas dan otentikasi keaslian data. Kriptografi tidak hanya berarti penyediaan keamanan informasi, melainkan sebuah himpunan teknik-teknik.

Selain definisi di atas, Scheiner (1996) mengemukakan pendapatnya tentang defenisi kriptografi yaitu : ilmu dan seni untuk menjaga keamanan pesan. Penggunaan kata seni di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap

17

pelaku kriptografi sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata graphy di dalam cryptography itu sendiri sudah menyiratkan sebuah seni) (Munir, 2006).

2.1.2 Sejarah Kriptografi

Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu dan diperkenalkan oleh bangsa mesir untuk mengirim pesan ke pasukan militer yang berada di lapangan. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari pihak yang tidak diinginkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan. Dengan demikian, pesan tersebut tidak dapat terbaca oleh pihak musuh walaupun kurir pembawa pesan tersebut tertangkap oleh musuh. Demikianlah hingga penggunaan kriptografi pada abad ke-20 (Menezes, van Oorschot dan Vanstone, 1996) ( Ariyus, 2005).

Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution cipher). Transposition cipher mengubah susunan huruf-huruf di dalam pesan, sedangkan substitution cipher mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf lain.

Sejarah kriptografi klasik mencatat penggunaan cipher transposisi oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan alat yang namanya scytale. Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu (diameter silender menyatakan kunci penyandian). Pesan ditulis secara horizontal, baris per baris. Bila pita

18

dilepaskan, maka huruf-huruf di dalamnya telah tersusun secara acak membentuk pesan rahasia. Untuk membaca pesan, penerima pesan harus melilitkan kembali kertas tersebut ke silinder yang diameternya sama dengan diameter silinder pengirim.

Sedangkan algoritma substitusi paling awal dan paling sederhana adalah Caesar cipher, yang digunakan oleh raja Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti setiap karakter di dalam alfabet dengan karakter yang terletak pada tiga posisi berikutnya di dalam susunan alfabet (Munir, 2006).

Pada perang dunia kedua, Jerman menggunakan enigma atau juga disebut dengan mesin rotor yang digunakan Hitler untuk mengirim pesan kepada tentaranya. Jerman sangat percaya bahwa pesan yang dikirim melalui enigma tidak terpecahkan kode kode enkripsinya. Akan tetapi, anggapan tersebut keliru. Ternyata setelah bertahun tahun, sekutu dapat memecahkan kode kode tersebut setelah mempelajarinya. Setelah jerman mengetahui bahwa kode kode tersebut dapat terpecahkan, enigma yang digunakan pada perang dunia kedua beberapa kali mengalami perubahan. Demikianlah, karena Enigma berhasil dipecahkan oleh pihak Sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor yang memperpendek perang dunia kedua (Ariyus, 2005).

Gambar 2.1 Mesin enkripsi Enigma

19

Kriptografi modern dipicu oleh perkembangan peralatan komputer digital. Dimulai dari usaha Feistel dari IBM di awal tahun 70-an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal Amerika Serikat untuk mengenkripsi informasi yang belum diklasifikasi. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah. Kemudian karena lama kelamaan DES dianggap tidak aman, maka untuk menjawab tantangan dalam dunia kriptografi, NIST (National Institue of Standards and Technology) sebagai standar pengolah informasi Federal AS bersiap siap mengganti DES. pada tahun 1997 dimulailah diadakan kontes yang diikuti oleh 21 pelamar. Kemuidan pada bulan agustus 1999 terpilihlah 5 kandidat sebagai finalis : Mars ( IBM Amerika), RC6 (RSA corp, Amerika), Rijndael(belgia), Serpent(Israel, Norwegia, dan Inggris), dan Twofish (Counterpane Amerika). ( Kurniawan, 2004).

2.1.3 Tujuan Kriptografi

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi, yaitu : a. Kerahasiaan (confidentiality), adalah layanan yang digunakan untuk menjaga isi informasi dari siapapun kecuali yang memiliki otoritas atau kunci sandi untuk membuka/mengupas informasi yang telah disandi. Ada beberapa pendekatan untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy. b. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem 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. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli.

20

c.

Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian isi datanya, waktu pengiriman, dan lain-lain. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital menyatakan sumber pesan.

d. Non-Repudiasi atau nirpenyangkalan, adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat. (Kurniawan, 2004).

2.1.4 Konsep Dasar Kriptografi

2.1.4.1 Message, Plaintext, dan Ciphertext

Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks atau data asli yang bisa memberikan informasi bila dibaca/dianalisa (cleartext). Ciphertext adalah data yang sudah mengalami proses kriptografi, sehingga informasi yang terkandung di dalamnya biasa disembunyikan. Ciphertext inilah yang kemudian akan dikirimkan melalui jaringan. Encrypt/enkripsi adalah proses untuk mengubah Plaintext menjadi Ciphertext. Decrypt/deskripsi adalah proses untuk mengubah Ciphertext menjadi Plaintext kembali. Secara sederhana proses tersebut digambarkan sebagai berikut :

Gambar 2.2 Proses Enkripsi Deskripsi

21

Adapun dasar matematis yang mendasari proses enkripsi dan deskripsi adalah relasi dua himpunan yaitu himpunan berisi elemen plaintext dan himpunan berisi elemen ciphertext. ( Schneier, 1996).B.

Adapun tujuan dari adanya enkripsi adalah untuk meningkatkan keamanan data tetapi juga berfungsi untuk : 1. Melindungi data agar tidak dapat dibaca oleh orang-orang yang tidak berhak. 2. Mencegah agar orang-orang yang tidak berhak, menyisipkan atau mengahapus data.

(a) Plainteks (teks)

(b) Cipherteks dari (a)

Gambar 2.3 Contoh plainteks dan cipherteks.

2.1.4.2 Peserta Komunikasi

a. Entitas atau peserta adalah orang atau sesuatu yang mengirim, menerima, atau memanipulasi informasi. Entitas bisa berupa orang, terminal komputer, kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya (contoh: Alice berkomunikasi dengan Bob) sedangkan di dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM berkomunikasi dengan komputer server di bank). b. Pengirim adalah entitas dalam komunikasi yang mengirimkan informasi kepada entitas lainnya lainnya. c. Penerima adalah entitas dalam komunikasi yang diharapkan menerima informasi.

22

d. Penyusup (adversary) adalah entitas diluar pengirim dan penerima yang mencoba untuk membobol keamanan informasi. Penyusup biasanya bertindak seolah-olah sebagai pengirim yang sah ataupun penerima yang sah. Adapun keterangan tersebut dapat dilihat pada gambar berikut :

Gambar 2.4 Skema komunikasi dengan proses enkripsi

2.1.4.3 Kriptologi Kriptologi berasal dari bahasa Yunani, krypts yang berarti tersembunyi dan lgos yang berarti kata. Jadi, kriptologi dapat diartikan sebagai frase kata yang tersembunyi (Oppliger, 2005). Kriptologi dapt juga diartikan sebagai seni dan ilmu untuk membuat dan memecahkan kode rahasia. Kriptologi dibagi menjadi kriptografi (seni dan ilmu membuat kode rahasia), kriptanalisis (ilmu dan seni untuk memecahkan chiperteks menjadi plainteks tanpa mengetahui kunci yang digunakan) dan steganografi (metoda menyembunyikan pesan atau data lainnya) (Oppliger, 2005). Pelaku kriptanalisis 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.

23

Gambar 2.5. Hubungan kriptografi, kriptanalisis dan steganografi

2.1.4.4 Algoritma Kriptografi Berdasarkan kunci yang dipakai algoritma kriptografi dapat dibedakan menjadi 2 golongan yaitu algoritma kriptografi simetris dan asimetris.

1. Algoritma Simetri Algoritma kriptografi simetris maksudnya adalah proses enkripsi dan dekripsi dilakukan dengan memakai 1 key yang sama. Istilah lain untuk kriptografi kuncisimetri adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Sistem kriptografi kunci-simetri (atau disingkat menjadi kriptografi simetri saja), mengasumsikan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan sistem kriptografi simetri terletak pada kerahasiaan kuncinya. Jadi, pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Sehingga siapapun yang memiliki kunci tersebut termasuk pihak pihak yang tidak diinginkan dapat membuat dan membongkar rahasia cipherteks. Berikut ini adalah gambaran proses enkripsi dan deskripsi menggunakan algoritma simetri :

24

Gambar 2.6 Proses Enkripsi Deskripsi Menggunakan Algoritma Simetri

Contoh algoritma kriptografi simetris yang terkenal diantaranya adalah TEA, DES, Blowfish, IDEA, RC4, dan lain sebagainya. Salah satu kelemahan algoritma ini adalah permasalahan distribusi kunci (key distribution).

Algoritma kriptografi simeteris dibagi menajdi 2 kategori yaitu algoritma aliran (Stream Ciphers) dan algoritma blok (Block Cipher). Pada algoritma aliran, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedang pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok).

Kelebihan kriptografi simetri: 1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat. 2. Ukuran kunci simetri relatif pendek. 3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak. 4. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat. 5. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

25

Kelemahan kriptografi simetri: 1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasisan kunci ini. 2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.

2. Algoritma Asimetri

Pada kriptografi asimetris masing-masing pihak yang berkepentingan memiliki 2 key, yaitu secrete / private key (SK) dan public key (PK). Nama lainnya adalah kriptografi kunci-publik (public-key cryptography). SK harus tetap disimpan dan dijaga kerahasiaannya dengan tidak pernah mengirimkannya melalui jalur pengiriman data. Sedangkan PK turut dikirimkan ke pihak penerima data. Perpaduan antara SK dan PK inilah yang nantinya dipakai pada proses enkripsi dan dekripsi.

Berikut adalah gambaran untuk proses enkripsi dan deskripsi yang mengggunakan algoritma asimetri :

Gambar 2.7 Proses Enkripsi Deskripsi Menggunakan Algoritma Asimetri

Contoh algoritma kriptografi asimetris, atau yang juga dikenal dengan kriptografi public key, misalnya adalah RSA, DSA, ECC, dan HECC, Elgamal, Hill Cipher, dan lain sebagainya.

Keuntungan dari Algoritma ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaimana pada sistem kriptografi simetri. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang

26

digunakan untuk mengirim pesan. Saluran untuk mengirim pesan umumnya tidak aman.

Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan kriptografi kunci-simetris dimana jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak berkorespondensi.

Kelebihan kriptografi kunci-publik (asimetri): 1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomuniaksi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci kunci privat sebagaimana pada sistem simetri. 2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetri. 4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan digital pada pesan.

Kelemahan kriptografi kunci-publik (asimetri): 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali ukuran plainteks). 3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim. 5. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block cipher). Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dan sebagainya) yang menjadi dasar pembangkitan kunci.

27

2.1.4.5 Sistem Kriptografi Sistem kriptografi adalah suatu 5- tuple (P, C, K, E, D) yang memenuhi kondisi sebagai berikut : 1. P adalah himpunan plainteks, 2. C adalah himpunan cipherteks, 3. K atau ruang kunci (keyspace), adalah himpunan kunci, 4. E adalah himpunan fungsi enkripsi : 5. D adalah himpunan fungsi dekripsi : , 6. Untuk setiap terdapat dan . Setiap dan

merupakan fungsi sedemikian hingga , untuk setiap plainteks . .

Suatu sistem kriptografi merupakan sebuah himpunan algoritma, seluruh kemungkinan plainteks, cipherteks, kunci, dan proses manajemen kunci yang digunakan. Sistem kriptografi merupakan suatu fasilitas untuk mengkonversikan plainteks menjadi cipherteks, dan sebaliknya. (Oppliger, 2005) .

1.

Keamanan Sistem Kriptografi

Suatu sistem kriptografi dikatakan aman jika para penyusup (adversary) dengan kemampuan yang dimilikinya tidak dapat memecahkan atau membobol sistem tersebut.

Berdasarkan kemampuan yang dimiliki penyusup, terdapat dua jenis keamanan sistem kriptografi, yaitu (Oppliger, 2005) : a. Keamanan tak kondisional : jika penyusup tidak dapat membobol sistem dengan kemampuan komputer yang tidak terbatas. Keamanan ini berhubungan dengan teori informasi dan teori probabilitas. b. Keamanan kondisional : jika secara teoritis mungkin bagi penyusup untuk membobol sistem tapi secara komputasi tidaklah mungkin (karena keterbatasan

28

sumberdaya dan kemampuan penyusup untuk mengakses informasi). Kemanan ini berhubungan dengan teori kompleksitas.

Sistem kriptografi dikatakan aman bila memiliki keadaan sebagai berikut : a. Bila harga untuk membobol sistem lebih besar daripada nilai informasi yang dibuka. b. Bila waktu yang diperlukan untuk membobol sistem tersebut lebih lama daripada lamanya waktu yang diperlukan oleh informasi itu untuk tetap aman. c. Bila jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut (Kurniawan, 2004).

Pengamanan selalu bertolak belakang dengan kenyamanan. Semakin aman, sebuah sistem akan semakin tidak nyaman karena akan memerlukan beberapa langkah tambahan yang dirasa merepotkan. Dan semakin nyaman dan bebas, sebuah sistem menjadi semakin tidak aman.

2. Jenis-jenis Serangan Berdasarkan keterlibatan penyerang dalam melakukan kegiatannya : a. Serangan pasif (passive attack) : penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, penyerang hanya melakukan penyadapan untuk memperoleh data atau informasi sebanyak-banyaknya Metode yang digunakan dalam melakukan penyadapan ini biasanya wiretapping, electromagnetic eavesdropping atau acoustic eavesdropping b. Serangan aktif (active attack) : penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya. Penyerang mengubah aliran pesan seperti menghapus sebagian ciphertext, mengubah ciphertext, menyisipkan potongan ciphertext palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dsb.

29

3. Metode Serangan Pada Kriptografi Terdapat beberapa metode melakukan serangan kriptografi yang pada dasarnya berupa metode yang berbasiskan plaintext dan metode yang berbasiskan ciphertext. a. Hanya ciphertext yang diketahui : Kriptanalis (orang yang melakukan kripanalisis) hanya memiliki ciphertext tanpa memiliki plaintext-nya. Sebelum melakukan serangan, kriptanalis selalu membuat asumsi algoritma sandi yang digunakan dalam ciphertext itu untuk menentukan tehnik memecahkannya. Teknik yang digunakan untuk menemukan plaintext/kunci : 1. Analisa frekuensi huruf : setiap bahasa memiliki kekhasan atas huruf-huruf yang digunakannya. Frekuensi kemunculan setiap huruf dalam suatu bahasa menjadi ciri penting yang dapat dipakai sebagai patokan untuk menganalisis

plaintext/kunci suatu teks sandi. Teknik ini umumnya digunakan untuk memecahkan metode penyandian sederhana seperti misalnya kriptografi model Caesar. 2. Exhaustive attack/brute-force attack : yaitu teknik untuk mengungkap

plaintext/kunci dengan mencoba secara sistematis semua kemungkinan kunci. Walaupun tehnik ini akan berhasil menemukan plaintext/kunci, namun waktu yang dibutuhkan relatif lama dan sangat bergantung kepada kecepatan mesin (komputer) yang melakukan serangan ini. 3. Analytical attack : yaitu teknik memecahkan teks sandi dengan melakukan analisis kelemahan algoritma kriptografinya untuk mengurangi kemungkinan kunci yang memang tidak ada (pasti tidak muncul). Dilakukan dengan cara memecahkan persamaan-persamaan matematik (yang diperoleh dari definisi suatu algoritma kriptografi) yang mengandung perubahperubah yang merepresentasikan plaintext atau kunci. Dengan menggabungkan metode analytical attack dan exhaustive attack akan mempercepat diketemukannya plaintext/kunci.

30

b. Ciphertext terpilih : Kriptanalis memilih ciphertext, dan kemudian melalui ciphertext itu berusaha untuk mendapatkan plaintext yang sesuai. Biasanya dilakukan untuk menyerang kriptografi sistem kunci publik. c. Plaintext dan ciphertext diketahui : Kriptanalis mempunyai baik plaintext maupun ciphertext-nya dan berusaha untuk mencari hubungan diantara keduanya. Biasanya dilakukan untuk menemukan kunci dan algoritma penyandiannya yang akan berguna untuk memecahkan pesan tersandi berikutnya. Beberapa pesan biasanya terdapat format baku (template) yang sudah terstruktur. Format baku ini merupakan celah yang membuka peluang untuk menerka ciphertext dari plaintext yang bersesuaian. Misalnya : From, To, kepada, dari, perihal, di dalam sebuah e-mail Dengan hormat, wassalam, best regards, pada surat resmi. #include, program, go, di dalam source code d. Plaintext terpilih : Kriptanalis memilih plaintext tertentu, yaitu plaintexts yang lebih mengarahkan ke penemuan kunci, untuk disandikan dan

mempelajari/membandingkan hasil sandinya (ciphertext). Biasanya cara ini digunakan untuk memecahkan sandi pada metode penyandian asimetris, yang mana kripanalis biasanya telah memiliki kunci publik-nya. e. Ciphertext atau plaintext diketahui secara adaptif : Kriptanalis memilih blok plaintext atau ciphertext yang besar, lalu disandi, kemudian memilih blok lainnya yang lebih kecil berdasarkan hasil serangan sebelumnya, begitu seterusnya. f. Kunci terpilih : Kriptanalis memiliki pengetahuan mengenai hubungan antara kunci-kunci yang berbeda, dan kemudian memilih kunci yang tepat untuk membuka pesan bersandi. Biasanya digunakan untuk mengetahui algoritma penyandian suatu pesan. g. Social engineering rubber-hose cryptanalysis : Mencari informasi algoritma/kunci sandi melalui kegiatan intelijen, mengancam, mengirim surat gelap, memeras

31

(black-mail)

atau

melakukan penculikan/penyiksaan sampai orang

yang

memegang kunci memberinya kunci untuk membuka pesan.

2.1.4.6 Kategori Cipher Kunci-Simetri Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini baik pengirim maupun penerima memiliki kunci yang sama.

Algoritma kunci-simetri modern beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua kategori:

1. Cipher Aliran (Stream Cipher) Algoritma kriptografi beroperasi pada plaintext/ciphertext dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsi/didekripsikan bit per bit. Cipher aliran mengenkripsi satu bit pada setiap kali proses enkripsi.

2. Cipher Blok (Block Cipher) Algoritma kriptografi beroperasi pada plaintext/ciphertext dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memerlukan 8 karakter setiap kali enkripsi (1 karakter = 8 bit dalam pengkodean ASCII). Cipher blok mengenkripsi satu blok bit pada setiap kali proses enkripsi. (Munir, 2006)

2.1.4.6.1 Mode Operasi Cipher Blok

Plaintext dibagi menjadi beberapa blok dengan panjang tetap. Beberapa mode operasi dapat diterapkan untuk melakukan enkripsi terhadap keseluruhan blok plaintext. Empat mode operasi yang lazim diterapkan pada sistem blok cipher adalah:

32

1. Electronik Code Book (ECB)

Pada mode ini, setiap blok plainteks menjadi blok cipherteks sebagai

dienkripsi secara individual dan independen

. Secara matematis, enkripsi dengan mode ECB dinyatakan

= dan dekripsi sebagai =

( )

( )

yang dalam hal ini, K adalah kunci, sedangkan plainteks dan cipherteks ke-i.

dan

masing-masing adalah blok

Istilah code book di dalam ECB muncul dari fakta bahwa blok plainteks yang sama selalu dienkripsi menjadi blok cipherteks yang sama, maka secara teoritis dimungkinkan membuat buku kode plaintext dan ciphertext yang berkoresponden. Namun, semakin besar ukuran blok, semakin besar pula ukuran buku kodenya. Misalkan jika blok berukuran 64 bit, maka buku kode terdiri dari -1 buah kode

(entry), yang berarti terlalu besar untuk disimpan. Lagipula semua kunci mempunyai buku kode yang berbeda (Munir, 2006).

Gambar 2.8 Skema enkripsi dan dekripsi dengan mode ECB

33

Kelebihan Mode ECB: 1. Karena tiap blok plainteks dienkripsi secara independen, maka kita tidak perlu mengenkripsi file secara linier. Kita dapat mengenkripsi 5 blok pertama, kemudian blok-blok di akhir, dan kembali ke blok-blok di tengah dan seterusnya. Mode ECB cocok untuk mengenkripsi arsip (file) yang diakses secara acak, misalnya arsiparsip basis data. Jika basis data dienkripsi dengan mode ECB, maka sembarang record dapat dienkripsi atau didekripsi secara independen dari record lainnya (dengan asumsi setiap record terdiri dari sejumlah blok diskrit yang sama banyaknya). Jika mode ECB dikerjakan dengan prosesor paralel (multiple processor), maka setiap prosesor dapat melakukan enkripsi atau dekripsi blok plainteks yang berbeda-beda. 2. Jika satu atau lebih bit pada blok cipherteks mengalami kesalahan, maka kesalahan ini hanya mempengaruhi cipherteks yang bersangkutan pada waktu dekripsi. Blokblok cipherteks lainnya bila didekripsi tidak terpengaruhi oleh kesalahan bit cipherteks tersebut.

Kekurangan Mode ECB: 1. Karena bagian plainteks sering berulang (sehingga terdapat blok-blok plainteks yang sama), maka hasil enkripsinya menghasilkan blok cipherteks yang sama. Misalnya kriptanalis mempelajari bahwa blok plainteks 5EB82F (dalam notasi HEX) dienkripsi menjadi blok AC209D, maka setiap kali ia menemukan

cipherteks AC209D, ia dapat langsung mendekripsikannya menjadi 5EB82F. 2. Pihak lawan dapat memanipulasi cipherteks untuk membodohi atau mengelabui penerima pesan. Manipulasi misalnya dengan menghapus atau menyisipkan beberapa buah blok ciphertext baru.

Kedua kekurangan di atas dapat diatasi dengan mengatur enkripsi tiap blok individual bergantung pada semua blok-blok sebelumnya. Dengan cara ini, blok plaintext yang identik akan menghasilkan blok cipherteks yang berbeda.

34

2. Cipher Block Chaining (CBC)

Mode ini menerapkan mekanisme umpan-balik (feedback) pada sebuah blok, yang dalam hal ini hasil enkripsi blok sebelumnya di-umpan-balikkan ke dalam enkripsi blok yang current (sekarang). Caranya, blok plainteks yang current di-XOR-kan terlebih dahulu dengan blok cipherteks hasil enkripsi sebelumnya, selanjutnya hasil peng-XOR-an ini masuk ke dalam fungsi enkripsi. Dengan mode CBC, setiap blok cipherteks bergantung tidak hanya pada blok plainteksnya, tetapi juga pada seluruh blok plainteks sebelumnya (Munir, 2006).

Dekripsi dilakukan dengan memasukkan blok cipherteks yang current ke fungsi dekripsi, kemudian meng-XOR-kan hasilnya dengan blok cipherteks sebelumnya. Dalam hal ini, blok cipherteks sebelumnya berfungsi sebagai umpanmaju (feedforward) pada akhir proses dekripsi.

Gambar 2.9 Skema enkripsi dan dekripsi dengan mode CBC

Secara matematis, enkripsi dan dekripsi dengan mode CBC dinyatakan sebagai = = ( ( )

Pada enkripsi blok pertama,

= IV (initialization vector). IV dapat diberikan

oleh pengguna atau dibangkitkan secara acak oleh program. Jadi, untuk menghasilkan

35

blok cipherteks pertama ( ), IV digunakan untuk menggantikan blok cipherteks sebelumnya, . Sebaliknya pada dekripsi, blok plainteks pertama diperoleh dengan

cara meng-XOR-kan IV dengan hasil dekripsi terhadap blok cipherteks pertama. IV tidak perlu rahasia. Jadi, untuk m buah blok plainteks, enkripsinya adalah:

= = =

( ( ( . . .

) ) )

=

(

)

dan dekripsi m buah blok cipherteks adalah :

= = =

( ( ( . . .

=

(

Kelebihan Mode CBC: Karena blok-blok plainteks yang sama tidak menghasilkan blok-blok cipherteks yang sama, maka kriptanalis menjadi lebih sulit dalam memecahkan pesan tersandi tersebut.

Kekurangan Mode CBC: Karena blok cipherteks yang dihasilkan selama proses enkripsi bergantung pada blokblok cipherteks sebelumnya, maka kesalahan satu bit pada sebuah blok plainteks akan merambat pada blok cipherteks yang berkoresponden dan semua blok cipherteks

36

berikutnya. Tetapi hal ini berkebalikan pada proses dekripsi, kesalahan satu bit pada blok cipherteks, hanya mempengaruhi blok plainteks yang berkoresponden dan satu bit pada blok plainteks berikutnya (pada posisi bit yang berkoresponden pula). Kesalahan bit cipherteks biasanya terjadi karena adanya gangguan (noise) saluran komunikasi data selama transmisi atau malfunction pada media penyimpanan.

3. Cipher Feedback (CFB)

Pada mode CFB, data dienkripsi dalam unit yang lebih kecil daripada ukuran blok. Unit yang dienkripsikan dapat berupa bit per bit (jadi seperti cipher aliran atau stream cipher), 2 bit, 3 bit, dan seterusnya. Bila unit yang dienkripsikan satu karakter setiap kalinya, maka mode CFB-nya disebut CFB 8-bit (Munir, 2006).

Gambar 2.10 Skema enkripsi dengan mode CFB

Secara umum, CFB p-bit mengenkripsi plainteks sebanyak p bit setiap kalinya, yang dalam hal ini p n (ukuran blok). Dengan kata lain, CFB mengenkripsi cipher blok seperti pada cipher aliran. Mode CFB membutuhkan sebuah antrian (queue) yang berukuran sama dengan ukuran blok masukan. Tinjau mode CFB 8-bit yang bekerja pada blok berukuran 64-bit (setara dengan 8-byte).

37

Gambar 2.11 Skema dekripsi dengan mode CFB

Algoritma enkripsi dengan mode CFB adalah sebagai berikut:

1. Antrian diisi dengan IV (initialization vector) seperti pada mode CBC. 2. Enkripsikan antrian dengan kunci K. Delapan bit paling kiri dari hasil enkripsi berlaku sebagai keystream ( ) yang kemudian di-XOR-kan dengan karakter 8-bit dari plainteks menjadi karakter 8-bit pertama dari cipherteks. Karakter cipherteks ini dikirim (pada aplikasi komunikasi data) atau disimpan (pada aplikasi penyimanan data). Salinan (copy) dari karakter cipherteks ini juga dimasukkan ke dalam antrian (menempati 8 posisi bit paling kanan antrian), dan semua byte lainnya di dalam antrian digeser ke kiri menggantikan 8 bit pertama yang sudah digunakan. 3. Karakter plainteks berikutnya dienkripsikan dengan cara yang sama seperti pada langkah 2. 4. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi. Baik enkripsi maupun dekripsi, algoritma E dan D yang digunakan sama.

Perambatan kesalahan: kesalahan 1-bit pada blok plainteks akan merambat pada blok-blok cipherteks yang berkoresponden dan blok-blok cipherteks selanjutnya pada proses enkripsi. Hal yang kebalikan juga terjadi pada proses dekripsi.

38

4. Output Feedback (OFB)

Mode OFB mirip dengan mode CFB, kecuali p-bit dari hasil enkripsi terhadap antrian disalin menjadi elemen posisi paling kanan di antrian. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi (Munir, 2006).

Gambar 2.12 Skema enkripsi dengan mode OFB

Gambar 2.13 Skema dekripsi dengan mode OFB

Perambatan kesalahan: kesalahan 1-bit pada blok plainteks hanya mempengaruhi blok cipherteks yang berkoresponden saja. Begitu pula pada proses dekripsi, kesalahan 1bit pada blok cipherteks hanya mempengaruhi blok plainteks yang bersangkutan saja. Karakteristik kesalahan semacam ini cocok untuk transmisi analog yang di-digitasi, seperti suara atau video, yang dalam hal ini kesalahan 1-bit dapat ditolerir, tetapi penjalaran kesalahan tidak dibolehkan.

39

2.1.4.7

Prinsip Prinsip Perancangan Cipher Blok

Perancangan algoritma kriptografi yang berbasis blok mempertimbangkan beberapa prinsip berikut:

1. Prinsip Confusion dan Diffusion dari Shannon

Pada tahun 1949, Shannon mengemukakan dua prinsip (properties) penyandian (encoding) data di dalam makalahnya yang berjudul Communication Theory of Secrecy Systems. Kedua prisnsip ini dipakai dalam perancangan cipher blok yang kuat. Kedua prinsip Shannon itu adalah :

a. Confusion Prinsip ini menyembunyikan hubungan apapun yang ada antara plainteks, cipherteks, dan kunci. Sebagai contoh, pada cipher substitusi seperti Caesar Cipher, hubungan antara cipherteks dan plainteks mudah diketahui, karena satu huruf yang sama pada plainteks diganti dengan satu huruf yang sama pada cipherteksnya. Akibatnya, huruf yang paling sering muncul di dalam plainteks akan sering muncul pula di dalam cipherteksnya sehingga cipherteks tersebut mudah dipecahkan dengan teknik analisis frekuensi. Dengan demikian kita katakan Caesar Cipher tidak menganut prinsip confusion. Karena prinsip confusion akan membuat kriptanalis frustasi untuk mencari pola-pola statistik yang muncul pada cipherteks. Confusion yang bagus membuat hubungan statistik antara plainteks, cipherteks, dan kunci menjadi sangat rumit.

b. Diffusion Prinsip ini menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin cipherteks. Sebagai contoh, pengubahan kecil pada plainteks sebanyak satu atau dua bit menghasilkan perubahan pada cipherteks yang tidak dapat diprediksi. Prinsip diffusion juga menyembunyikan hubungan statistik antara plainteks, cipherteks, dan kunci sehingga membuat kriptanalisis menjadi sangat sulit. Untuk mendapatkan keamanan yang bagus, prisnip confusion dan diffusion diulang berkali-kali pada sebuah blok tunggal dengan kombinasi yang berbeda-beda.

40

2. Cipher berulang (Iterated Cipher)

Fungsi transformasi sederhana yang mengubah plainteks menjadi cipherteks diulang sejumlah kali. Pada setiap putaran digunakan sub-kunci (subkey) atau kunci putaran (round key) yang dikombinasikan dengan plainteks.

3. Jaringan Feistel (Feistel Network)

Jaringan Feistel ditemukan oleh Horst Feistel tahun 1970. Model jaringan Feistel adalah sebagai berikut: 1. Bagi blok yang panjangnya n bit menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya n/2 (hal ini mensyaratkan n harus genap). 2. Defenisikan cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari hasil putaran sebelumnya, yaitu: = f( yang dalam hal ini, i = 1,2,,r (r adalah jumlah putaran). = sub-kunci (subkey) pada putaran ke-i f = fungsi transformasi (di dalamnya terdapat fungsi substitusi, permutasi dan/atau ekspansi, kompresi). )

Plainteks adalah gabungan L dan R awal, atau secara formal dinyatakan dengan ( ), sedangkan cipherteks didapatkan dari L dan R hasil dari putaran

terakhir setelah terlebih dahulu dipertukarkan, atau secara formal dinyatakan sebagai ( ).

41

4. Kunci lemah (Weak Key)

Kunci lemah adalah kunci yang menyebabkan tidak adanya perbedaan antara enkripsi dan dekripsi. Dekripsi terhadap cipherteks tetap mengahasilkan plainteks semula, namun enkripsi dua kali berturut-turut terhadap plainteks akan menghasilkan kembali plainteksnya.

5. Kotak-S (S-box)

Kotak-S adalah matriks yang berisi substitusi sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit yang lain. Pada kebanyakan algoritma cipher blok, kotak-S memetakan m bit masukan menjadi n bit keluaran, sehingga kotak-S tersebut dinamakan kotak m x n S-box.

2.2

Tiny Encryption Algorithm (TEA)

Tiny Encryption Algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Sistem penyandian Tiny Encryption Algorithm (TEA) menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penambahan dan

pengurangan sebagai operator pembalik selain XOR. Hal ini dimaksudkan untuk menciptakan sifat non-linearitas. Pergeseran dua arah (ke kiri dan ke kanan) menyebabkan semua bit kunci dan data bercampur secara berulang ulang.

Tiny Encryption Algorithm (TEA)memproses 64-bit input sekali waktu dan menghasilkan 64-bit output. Tiny Encryption Algorithm (TEA) menyimpan 64-bit input kedalam L0 dan R0 masing masing 32-bit. Sedangkan 128-bit kunci disimpan kedalam k[0], k[1], k[2], dan k[3] yang masing masing berisi 32-bit. Diharapkan

42

teknik ini cukup dapat mencegah penggunaan teknik exshautive search secara efektif. Hasil outputnya akan disimpan dalam L16 dan R16. (D. Wheeler and R. Needham, 1994).

Bilangan delta konstan yang digunakan adalah 9E3779B9, dimana bilangan delta berasal dari golden number ((5/4)1/2 - 1/2 ~ 0.618034) 232 . Berbeda dengan sruktur feistel yang semula hanya mengoperasikan satu sisi yaitu sisi sebelah kanan dengan sebuah fungsi F, pada algoritma Tiny Encryption Algorithm (TEA) kedua sisi dioperasikan dengan sebuah fungsi yang sama.

Berikut adalah gambaran proses pada algoritma TEA:

Gambar 2.14 Gambaran Proses Algoritma TEA

43

Untuk melakukan enkripsi, proses diawali dengan input-bit teks terang sebanyak 64-bit. Kemudian 64-bit teks terang tersebut dibagi menjadi dua bagian, yaitu sisi kiri (L0) sebanyak 32-bit dan sisi kanan (R0) sebanyak 32-bit. Setiap bagian teks terang akan dioperasikan sendiri-sendiri. R0 (z) akan digeser kekiri sebanyak empat (4) kali dan ditambahkan dengan kunci k[0]. Sementara itu z ditambah dengan sum (delta) yang merupakan konstanta. Hasil penambahan ini di-XOR-kan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara z yang digeser kekanan sebanyak lima (5) kali dengan kunci k[1]. Hasil tersebut kemudian ditambahkan dengan L0 (y) yang akan menjadi R1. Sisi sebelah kiri akan mengalami proses yang sama dengan sisi sebelah kanan. L0 (y) akan digeser kekiri sebanyak empat (4) kali lalu ditambahkan dengan kunci k[2]. Sementara itu, Y ditambah dengan sum (delta). Hasil penambahan ini di-XORkan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara Y yang digeser ke kanan sebanyak lima (5) kali dengan unci k[3]. Hasil tersebut kemudian ditambahkan dengan R0 (Z) yang akan menjadi L1. Berikut adalah langkah langkah penyandian dengan algoritma TEA dalam satu cycle (dua round) : 1. Pergeseran (shift) Blok teks terang pada kedua sisi yang masing masing sebanyak 32-bit akan digeser kekiri sebanyak empat (4) kali dan digeser ke kanan sebanyak lima (5) kali. 2. Penambahan Setelah digeser kekiri dan kekanan, maka Y dan Z yang telah digeser akan ditambahkan dengan kunci k[0]-k[3]. Sedangkan Y dan Z awal akan ditambahkan dengan sum (delta). 3. Peng-XOR-an Setelah dioperasikan dengan penambahan pada masing-masing register maka akan dilakukan peng-XOR-an dengan rumus untuk satu round adalah sebagai berikut :

44

y = y + (((z5)+k[1])) z = z + (((y5)+k[3])) dalam hal ini sum=sum+delta. Hasil penyandian dalam satu cycle satu blok teks terang 64-bit menjadi 64-bit teks sandi adalah dengan menggabungkan y dan z. Untuk penyandian pada cycle berikutnya y dan z ditukar posisinya, sehingga y1 menjadi z1 dan z1 menjadi y1 lalu dilanjutkan proses seperti langkah-langkah diatas sampai dengan 16 cycle (32 round). 4. Key Schedule Pada algoritma TEA, key schedule-nya sangat sederhana. Yaitu kunci k[0] dan k[1] konstan digunakan untuk round ganjil sedangkan kunci k[2] dan k[3] konstan digunakan untuk round genap. Dalam proses dekripsi sama halnya seperti pada proses penyandian yang berbasis feistel cipher lainnya. Yaitu pada prinsipnya adalah sama pada saat proses enkripsi. Namun hal yang berbeda adalah penggunaan teks sandi sebagai input dan kunci yang digunakan urutannya dibalik. Pada proses dekripsi semua round ganjil menggunakan k[1] terlebih dahulu kemudian k[0], demikian juga dengan semua round genap digunakan k[3] terlebih dahulu kemudian k[2].

Adapun beberapa keunggulan dari algoritma Tiny Encryption Algorithm (TEA) ini adalah : a. Pada Algoritma Tiny Encryption Algorithm (TEA) panjang kuncinya yaitu 128bit, merupakan jumlah kunci yang cukup panjang untuk algoritma kriptografi modern saat ini yang dapat menahan serangan kriptanalis. b. Teknik yang digunakan TEA cukup baik, yaitu pada setiap prosesnya menggunakan jaringan feistel yang memuat operasi permutasi, subtitusi dan modular arithmatic berupa XOR dan penambahan bilangan delta yang diharapkan dari operasi tersebut menciptakan efek difusi dan konfusi yang baik, karena semakin baik efek difusi dan konfusi yang dihasilkan suatu algoritma makin semakin baik pula tingkat keamanannya.

45

c. Ukuran blok input pada TEA yaitu 64-bit, sebuah jumlah yang cukup panjang untuk menghindari analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat. d. Tidak membutuhkan S-Box dan P-Box dalam proses enkripsi dan deskripsinya, karena S-Box dan P-Box tersebut tidak dapat dijamin keamanannya dikarenakan struktur dari S-Box dan P-Box tersebut hanya diketahui oleh NSA (National Security Agency) dan diubah menurut saran dari NSA, sehingga jika S-Box dan PBox tersebut diubah maka maka sangat mungkin sekali algoritma yang digunakan akan lebih mudah dibobol. Selain itu, juga dapat meminimalkan penggunaan memory pada saat melakukan proses enkripsi dan deskripsi sehingga dapat memaksimalkan proses. e. Algoritma TEA diketahui sangat kuat terhadap metode penyerangan berupa hanya ciphertext yang diketahui, plaintext yang diketahui dan plaintext terpilih.

Sedangkan kelemahan dari algoritma Tiny Encryption Algorithm (TEA) ini adalah karena TEA ini termasuk kedalam kelompok Algoritma Simetri, maka masih rentan untuk dibobol, karena dalam algortima simetri masalah utama memang terletak dari segi pendistribusian kuncinya, dimana harus benar-benar aman pada saat mendistribusikan kunci yang akan digunakan. Berdasarkan data yang didapat,

estimasi proses enkripsi dan deskripsi algoritma TEA yang dibandingkan dengan algoritma simetri lainnya secara umum adalah sebagai berikut :Summary Block Size Author Bits Diffie & Hellman 64 Schneier 64 IBM & NSA 64 Lai & Massey 64 Matsui 64 Daemon & Rijmen 128 Aman (stream) Wheeler & Needham 64 Wheeler & Needham 64 Key Size Bits 168 256 56 128 128 128 128 128 128 Speed** (m:s) 4:05 0:55 1:42 1:07 2:50 0:39 0:46 0:46 1:03

Type 3DES Blowfish DES IDEA Misty1 Square Summer TEA 16 TEA 32

**Speed is time to copy a 50MB file from a normal disk to a ScramDisk on a 166 Mhz Pentium.

Tabel 2.1 Perbandingan Estimasi Proses Algoritma TEA dengan Algoritma Simetri lainnya.

46

2.3

Masalah Keamanan Informasi Di Negara Republik Indonesia

2.3.1 Hari Persandian Nasional Tidak banyak masyarakat yang mengetahui kalau tanggal 4 April dicanangkan sebagai hari Persandian Nasional di Indonesia. Mungkin karena mitos persandian adalah rahasia, sehingga pencanangan hari jadinya pun dirahasiakan. Pada tanggal 4 April 1946, tepatnya Pemerintah Indonesia mulai merintis Persandian sebagai bagian resmi Pemerintah Indonesia. Saat itu Menhan RI memerintahkan dr. Roebiono Kertopati untuk merintis sebuah badan yang mengelola persandian pemerintah. Usia Institusi Pemerintah yang mengurusi persandian yang kini sudah menginjak tahun ke-62, adalah usia yang terbilang cukup matang bagi perkembangan sebuah institusi. Pengalaman jatuh bangun dalam mempertahankan eksistensi, pertarungan dalam pengamanan pemberitaan, persaingan dalam ilmu dan teknologi, suka duka membesarkan organisasi dan sebagainya menjadi kekayaan tersendiri yang jika disikapi dengan positif akan menjadi aset berharga yang patut didokumentasikan sebagai sejarah. Di era teknologi informasi yang berkembang sangat pesat, tantangan yang menghadang menjadi begitu banyaknya. Tantangan tersebut menjadi tugas tersendiri yang harus diselesaikan oleh institusi yang menangani persandian yaitu Lembaga Sandi Negara (Lemsaneg). Salah satu tantangan yang perlu mendapatkan penanganan segera adalah adanya kebutuhan pengamanan informasi dihadapkan dengan kebebasan memperoleh informasi. Baru-baru ini telah disahkan oleh DPR RI Undang-undang Informasi dan Transfer Elektronik (UU ITE) dan Undang-undang Keterbukaan Informasi Publik (UU KIP). Sedangkan RUU Kerahasiaan Negara belum disahkan dan regulasi tentang keamanan informasi belum ada. Karena pengamanan informasi merupakan kegiatan yang tidak terlihat, seseorang sering abai terhadap pengamanan jenis ini. Terlebih lagi jika data/informasi

47

tersebut dicuri atau hilangpun tidak diketahui. Kita baru akan menyadari bahwa ada data/informasi yang telah hilang atau dicuri orang atau dimanipulasi setelah akibat yang ditimbulkannya mulai terlihat. Jadi sesungguhnya semua informasi patut diberikan pengamanan, terlebih lagi informasi yang bersifat rahasia seperti data-data pribadi, akun keuangan atau kesehatan. Tingkat pengamanan yang diberikan mengikuti tingkat kerahasiaan dari informasinya. Jadi kekhawatiran bahwa regulasi keamanan informasi akan berbenturan dengan regulasi kebebasan informasi hanyalah ilusi. Kedua regulasi tersebut justru akan saling mendukung. Momen hari persandian yang baik ini selayaknya dijadikan sebagai pelecut semangat untuk berkarya menyelesaikan tugas yang diberikan oleh perkembangan teknologi informasi dan komunikasi, UU ITE, UU KIP dan karena kebutuhan gaya hidup di era masyarakat informasi. Serta tugas yang tidak kalah penting adalah mensosialisasikan dan mencatatkan hari persandian nasional di lembar negara RI..

2.3.2 Informasi Rahasia dalam UU KIP UU KIP atau Undang Undang Republik Indonesia nomor 14 tahun 2008 tentang Keterbukaan Informasi Publik, ditujukan untuk mengatur hal ihwal informasi yang berkaitan dengan kepentingan umum dan negara. Seperti disebutkan dalam penjelasannya, keberadaan Undang-undang tentang Keterbukaan Informasi Publik sangat penting sebagai landasan hukum yang berkaitan dengan : 1. Hak setiap Orang untuk memperoleh Informasi 2. Kewajiban Badan Publik menyediakan dan melayani permintaan Informasi secara cepat, tepat waktu, biaya ringan/proporsional, dan cara sederhana 3. Pengecualian bersifat ketat dan terbatas; 4. Kewajiban Badan Publik untuk membenahi sistem dokumentasi dan pelayanan Informasi.

48

Dengan membuka akses publik terhadap Informasi diharapkan Badan Publik termotivasi untuk bertanggung jawab dan berorientasi pada pelayanan rakyat yang sebaik-baiknya. Dengan demikian, hal itu dapat mempercepat perwujudan

pemerintahan yang terbuka yang merupakan upaya strategis mencegah praktik korupsi, kolusi, dan nepotisme (KKN), dan terciptanya kepemerintahan yang baik (good governance). Ditegaskan juga sebagai bahan pertimbangan pembuatan UU ini salah satunya adalah bahwa informasi merupakan kebutuhan pokok setiap orang bagi

pengembangan pribadi dan lingkungan sosialnya serta merupakan bagian penting bagi ketahanan nasional.

2.3.3 Standar Keamanan Nasional Teknologi informasi dan komunikasi telah sangat maju dan menembus pada hampir semua aspek organisasi. Pengolahan dan penyimpanan informasi telah menjadi aspek yang menentukan kehidupan organisasi. Sehingga standarisasi keamanan informasi secara nasional bagi sebuah pemerintahan negara tentunya juga menjadi sangat penting. Tujuan utama membuat Standar Keamanan Informasi Nasional (sebutan singkatnya SKIN) adalah agar kegiatan pengamanan informasi pemerintah menjadi efisien dan efektif, sehingga tidak mudah untuk dibongkar pihak asing. Standar keamanan informasi ini penekanannya lebih pada syarat, prosedur, kebijakan, pengelolaan serta pendidikan dan pelatihan. Standarisasi yang dimaksud disini bukanlah standar teknis (spesifikasi), bukan pengarahan ke suatu teknologi atau produk, bukan kumpulan tip serta bukan sebagai jaminan dan berfungsinya sebuah alat keamanan informasi. Pendekatan ini memungkinkan SKIN diaplikasikan dan diterapkan dalam berbagai tipe organisasi dan aplikasi. Selain itu, SKIN akan memudahkan dalam menciptakan regulasi yang dapat memberikan keputusan apakah sebuah kegiatan keamanan informasi sudah baik atau belum, apakah sebuah informasi perlu mendapat perlakuan pengamanan atau tidak dan

49

juga dapat menentukan sampai tingkat berapa pengamanan yang diperlukan, dan sebagainya. Sehingga regulasi tentang keamanan informasi tidak perlu menciptakan badan/institusi lagi yang khusus untuk mengambil keputusan keamanan informasi atau tingkat kerahasiaan sebuah data/informasi. Standarisasi yang akan dipakai bisa saja mengacu pada standar internasional yang sudah ada atau bisa juga sama sekali baru disesuaikan dengan kekhasan keadaan di dalam negeri sendiri. Standar keamanan informasi yang sudah terkenal adalah BS7799 yaitu Code of Practise for Information Security Management, yang dikeluarkan oleh pemerintah Inggris (UKAS the United Kingdom Accreditation Service) dan kemudian diadopsi secara internasional menjadi ISO27001 yaitu Information Security Management System (ISMS) oleh organisasi internasional urusan standarisasi (ISO International Organization for Standardization). Sedangkan SKIN mungkin belum dibuat oleh pemerintah Indonesia (saya tidak menemukannya di SNI). Seandainya memang belum dibuat, tulisan ini ditujukan untuk memicu standarisasi keamanan informasi dalam lingkup nasional Indonesia. Saat ini informasi adalah suatu aset organisasi penting dan berharga yang harus dilindungi dari ancaman yang mungkin timbul untuk menjamin kesinambungan bisnis dan meminimalisir kerugian atas ketidakamanan yang terjadi. Oleh karena itu, pengelolaan informasi yang baik sangat penting untuk meningkatkan kesuksesan dalam kompetisi disemua sektor. ISO27001 dalam pengelolaan informasinya berfokus pada melindungi : a. Kerahasiaan (confidentiality) : memastikan bahwa informasi hanya dapat diakses oleh pihak yang memang berwenang. b. Keutuhan (integrity) : menjaga kelengkapan dan keakuratan informasi serta metode pemrosesannya. c. Ketersediaan (availability) : memastikan bahwa pihak yang berwenang dapat mengakses informasi dan aset lainnya ketika memerlukannya.

50

Untuk SKIN, perlu ditambahkan satu syarat yaitu d. Tidak dapat disangkal (non repudiation) : memastikan bahwa pihak pengakses tersebut adalah memang pihak yang benar, sehingga dapat dijadikan sebagai alat bukt i sesuai UU ITE tahun 2008 bila diperlukan. Standarisasi keamanan informasi pada dasarnya adalah mengenai pengelolaan resiko yang dilakukan dengan cara mengembangkan manajemen risiko dan strategi mitigasi melalui pengidentifikasian aset, ancaman dan vulnerabilities serta pengukuran resiko. Analisa risiko keamanan informasi (security risk assessment) adalah metode untuk memaksimalkan penggunaan aset organisasi yang terbatas melalui pengukuran risiko dan pengelolaan risiko yang dapat ditoleransi. Untuk kemudian dapat menetapkan syarat-syarat keamanan informasi dan jenis pengendalian yang diperlukan untuk meminimalisir ancaman dan risiko tersebut yang disesuaikan dengan benefit organisasi yang paling optimal. Pengendalian adalah cara yang dipilih untuk menyingkirkan atau meminimalkan risiko ke level yang dapat diterima. Berikut adalah dasar-dasar pengendalian yang biasa digunakan untuk membuat security risk assessment : 1. Pengendalian kebijakan keamanan informasi : ditujukan sebagai dukungan manajemen, komitmen dan pengarah dalam pencapaian tujuan pengamanan informasi. 2. Pengendalian keamanan informasi secara organisasional : ditujukan pada kebutuhan kerangka kerja manajemen yang membuat, menyokong dan mengelola infrastruktur keamanan informasi. 3. Pengendalian dan pengklasifikasian aset : ditujukan pada kemampuan infratruktur keamanan informasi untuk melindungi aset organisasi. 4. Pengendalian keamanan personel : ditujukan pada kemampuan untuk

meminimalisir resiko yang timbul akibat interaksi antar/dengan manusia.

51

5. Pengandalian keamanan fisik dan lingkungannya : ditujukan pada perlindungan terhadap resiko yang timbul secara fisik di tempat/lingkungan sekitar sistem berada. 6. Pengendalian komunikasi dan manajemen operasional : ditujukan pada kemampuan organisasi untuk menjamin ketepatan dan keamanan operasional asetasetnya. 7. Pengendalian akses : ditujukan pada kemampuan organisasi untuk mengontrol akses kepada aset-aset organisasi berdasarkan kebutuhan bisnis dan keamanan. 8. Pengendalian pengembangan dan pemeliharaan sistem : ditujukan pada kemampuan organisasi untuk menjamin terintegrasi dan terpeliharanya

pengendalian terhadap sistem keamanan informasi yang tepat. 9. Pengendalian kelangsungan manajemen bisnis : ditujukan pada kemampuan organisasi untuk menghadapi hambatan yang timbul sehingga operasional organisasi dapat berjalan dengan baik. 10. Pengendalian kepatuhan : ditujukan pada kemampuan organisasi untuk secara disiplin mematuhi semua regulasi, peraturan, kontrak dan syarat-syarat yang telah dibuat.

2.4 Rekayasa Perangkat Lunak

Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan.( Kendall & Kendall, 2003).

Ada banyak proses dalam pembuatan perangkat lunak, namun ada kegiatan kegiatan yang mendasar yang umum bagi semua proses perangkat lunak. Kegiatan tersebut adalah :

52

1) Penspesifikasian perangkat lunak. Fungsionalitas perangkat lunak dan batasan operasinya harus didefenisikan. 2) Perancangan dan implementasi perangkat lunak. Perangkat lunak yang memenuhi syarat harus dibuat. 3) Pemvalidasian perangkat lunak. Perangkat lunak tersebut harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan. 4) Pengevaluasian perangkat lunak. Peragkat lunak harus dapat berkembang untuk menghadapi kebutuhan yang berubah-ubah.

Untuk memodelkan proses rekayasa perangkat lunak dapat dilakukan dengan beberapa pendekatan yaitu : 1) Model air terjun (waterfall). Model ini mengambil kegiatan proses dasar seperti spsifikasi, pengembangan, validasi dan evolusi dan merepresentasikannya sebagai fase-fase yang berbeda seperti spesifiksi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya. 2) Pegembangan evolusioner. Suatu sistem awal dikembangkan dengan cepat dri spesifikasi abstrak. 3) Pengembangan sistem formal. Pendekatan ini didasarkan atas pembuatan spesifikasi sistem matematis dan pentrnsformasian sistem ini dengan metode matematis untuk membangun program. 4) Pengembangan berdasarkan pemakaian ulang. Pedekatan ini didasarkan adanya komponen yang dapat dipakai ulang dalam jumlah yang signifikan.

Pada proses peracangan perangkat lunak dilakukan beberapa kegitan seperti: 1) Perancangan arsitektural. Subsistem-subsistem yang membentuk sistem dan hubungan mereka diidentifikasi dan didokumentasi. 2) Spesifikasi abstrak. Untuk setiap subsistem, spesifikasi abstrak dari layanan dan batasan operasinya harus ditentukan. 3) Perancangan antarmuka. Untuk setiap subsistem, antarmuka subsistem dirancang dan didokumentasi 4) Perancangan komponen. Layanan dialokasikan pada komponen yang berbeda dan antarmuka komponen-komponen dirancang.

53

5) Perancangan struktur data. Struktur data yang dipakai pada implementasi sistem dirancang secara rinci dan dispesifikasi. 6) Perancangan algoritma. Algoritma yang digunakan untuk memberikan layanan dirancang secra rinci dan dispesifikasi.

2.5 Pemrograman dengan Delphi 7.0

Delphi merupakan software buatan Borland yang sangat populer. Berbeda dengan software Windows umumnya, Delphi bukanlah software aplikasi seperti MS Office atau permainan game. Delphi adalah sebuah bahasa pemrograman, development language, aplikasi untuk membuat aplikasi. Delphi digunakan untuk membangun aplikasi Windows, aplikasi grafis, aplikasi visual, bahkan aplikasi jaringan (client/server) dan berbasis internet.

Adapun kelebihan dari bahasa pemrograman Delphi, adalah : a. Delphi memiliki IDE (Integrated Development Environment) atau lingkungan pengembangan yang lengkap. b. Delphi mempunyai kecepatan kompilasi yang tidak perlu diragukan kecepatannya. c. Delphi menggunakan bahasa Object Pascal yang telah mendunia. d. Delphi bersifat multi purpose, dapat digunakan untuk berbagai keperluan pengembangan aplikasi, mulai perhitungan sederhana sampai aplikasi multimedia bahkan yang terkoneksi ke Internet. (Husni, 2004).

54

BAB 3

ANALSIS DAN PEMODELAN PERANGKAT LUNAK

3.1 Analisis Permasalahan Tiny Encryption Algorithm ( TEA )

Tahapan analisis terhadap suatu sistem dilakukan sebelum tahapan perancangan dilakukan. Adapun tujuan dilakukannya analisis terhadap suatu sistem adalah untuk mengetahui alasan mengapa sistem tersebut diperlukan, yaitu dengan merumuskan kebutuhan kebutuhan dari sistem tersebut untuk meminimalisir sumber daya yang berlebih serta membantu merencanakan penjadwalan pembentukan sistem,

meminimalkan distorsi distorsi yang mungkin terdapat di dalam sistem tersebut sehingga dapat bekerja secara optimal.

Salah satu unsur terpenting yang harus dipertimbangkan dalam tahapan analisa sistem ini yaitu masalah perangkat lunak, karena nantinya perangkat lunak yang digunakan haruslah sesuai dengan masalah yang akan diselesaikan. Untuk itu, analisa yang dilakukan terhadap perangkat lunak algoritma TEA ini akan dibagi kedalam beberapa aspek, yaitu analisis kebutuhan perangkat lunak algoritma TEA, analisis proses enkripsi dan deskripsi algoritma TEA serta analisis fungsi perangkat lunak algoritma TEA.

3.2 Analisis Kebutuhan Tiny Encryption Algorithm ( TEA )

Faktor yang mendasari dibentuknya perangkat lunak dengan algortima TEA ini adalah keamanan data. Keamanan data telah menjadi aspek yang sangat penting dari suatu sistem informasi. Sebuah sistem informasi umumnya hanya ditujukan bagi segolongan tertentu. Oleh karena itu sangatlah penting untuk mencegahnya agar tidak jatuh kepada pihak pihak yang tidak berhak. Untuk keperluan tersebut, maka diperlukan sebuah teknik kriptografi dengan menggunakan metode enkripsi dan deskripsi pesan.

55

Salah satu metode enkripsi dan deskripsi data yang digunakan adalah Tiny Encryption Algorithm ( TEA ).

Setiap sistem yang akan dibangun selalu memiliki kebutuhan. Analisa yang dilakukan terhadap kebutuhan suatu sistem dapat berfungsi untuk meminimalkan sumber daya yang berlebih dari sistem tersebut serta membantu pembentukan penjadwalan pembentukan sistem. Analisa yang dilakukan untuk mencari kebutuhan dari algoritma TEA ini dapat dilakukan dengan cara mengetahui siapa yang akan menggunakan perangkat lunak tersebut, tampilan antar muka yang akan digunakan, serta apa yang akan dihasilkan oleh perangkat lunak tersebut.

Berdasarkan analisa yang dilakukan terhadap keperluan perangkat lunak maka dapat diambil kesimpulan bahwa nama dari perangkat lunak yang akan dibangun adalah KripTEA, dimana Krip menunjukkan fungsi dari perangkat lunak dan TEA merupakan nama algoritma yang digunakan. Perangkat lunak yang akan dibangun nantinya akan menghasilkan file ciphertext dari proses enkripsi dan file plaintext dari proses deskripsi, serta penjelasan tentang cara penggunaan perangkat lunak. Kemudian pengguna dari perangkat lunak ini adalah setiap individu yang membutuhkan keamanan data, untuk itu sistem yang dibangun nantinya harus dapat dipakai oleh setiap orang secara umum. Maka perangkat lunak yang dibentuk harus memiliki antarmuka yang sederhana dan mudah untuk digunakan. Adapun sumber daya dari sistem untuk membangun perangkat lunak tersebut yaitu digunakan sistem operasi Microsoft Windows XP dan menggunakan bahasa pemrograman Borland Delphi 7.0. Untuk memudahkan perancangan perangkat lunak tersebut dibutuhkan algoritma dan Flowchart dari setiap mekanisme yang ada. Alasan mengapa digunakan algoritma dan flowchart adalah karena dengan menggunakan algoritma dan flowchart dapat digambarkan secara jelas alur dari proses, struktur perulangan serta teknik pengambilan keputusan. Setelah algoritma dan flowchart terbentuk, barulah dilakukan proses pembentukan sistem.

56

3.3 Analisis Proses Enkripsi Algoritma TEA

Untuk melakukan enkripsi, proses diawali dengan input-bit teks terang sebanyak 64bit. Kemudian 64-bit teks terang tersebut dibagi menjadi dua bagian, yaitu sisi kiri (L0) sebanyak 32-bit dan sisi kanan (R0) sebanyak 32-bit. Setiap bagian teks terang akan dioperasikan sendiri-sendiri. R0 (z) akan digeser kekiri sebanyak empat (4) kali dan ditambahkan dengan kunci k[0]. Sementara itu z ditambah dengan sum (delta) yang merupakan konstanta. Hasil penambahan ini di-XOR-kan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara z yang digeser kekanan sebanyak lima (5) kali dengan kunci k[1]. Hasil tersebut kemudian ditambahkan dengan L0 (y) yang akan menjadi R1. Sisi sebelah kiri akan mengalami proses yang sama dengan sisi sebelah kanan. L0 (y) akan digeser kekiri sebanyak empat (4) kali lalu ditambahkan dengan kunci k[2]. Sementara itu, Y ditambah dengan sum (delta). Hasil penambahan ini di-XORkan dengan penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara Y yang digeser ke kanan sebanyak lima (5) kali dengan kunci k[3]. Hasil tersebut kemudian ditambahkan dengan R0 (Z) yang akan menjadi L1. Misalkan : Plaintext Kunci : bacabuku : S1 ILMU KOMPUTER

Bagi plaintext menjadi 2 blok kedalam blok R Dan Blok L: R = baca L = buku Begitu juga dengan kunci, menjadi 4 blok k[0], k[1], k[2], k[3] : k[0] = S1spasiI k[1] = LMUspasi k[2] = KOMP k[3] = UTER

57

ubah plaintext serta kunci dalam kode ASCII kemudian ke biner dengan proses sebagai berikut : b 98 01100010 a 97 01100001 c 99 01100011 a 97 01100001 b 98 01100010 u 117 01110101 k 107 01101011 u 117 01110101 S 83 01010011 1 49 00110001 Spasi 32 00100000 I 73 01001001 L 76 01001100 M 77 01001101 U 85 01010101 Spasi 32 00100000 K 75 01001011 O 79 01001111 M 77 01001101 P 80 01010000 U 85 01010101 T 84 01010100 E 69 01000101 R 82 01010010 Sehingga didapat : Cipher R (Z) : 01100010 01100001 01100011 01100001 Cipher L (Y) : 01100010 01110101 01101011 01110101

K[0] : 01010011 00110001 00100000 01001001 K[1] : 01001100 01001101 01010101 00100000

58

K[2] : 01001011 01001111 01001101 01010000 K[3] : 01010101 01010100 01000101 01010010

Cipher R (Z) akan mengalami pergeseran bit ke kiri sebanyak 4 bit dan pergeseran bit ke kanan sebanyak 5 bit. Cipher R : 01100010 01100001 01100011 01100001 Menjadi Zsl ( Z shift left) Zsr ( R shift right) : 00100110 00010110 00110110 00010110 : 01001100 00101100 01101100 00101100

Zsl ditambahkan dengan kunci k[0] : Zsl K[0] : 00100110 00010110 00110110 00010110 : 01010011 00110001 00100000 01001001 01110111 00110111 00110110 01011111

Sedangkan Zsr ditambahkan dengan k[1] : Rsr K[1] : 01001100 00101100 01101100 00101100 : 01001100 01001101 01010101 00100000 01001100 01101101 01111101 00101100

Kemudian Cipher R (Z) tidak mengalami pergeseran bit ditambahkan dengan bilangan delta, dimana bilangan delta yang digunakan secara konstan yaitu : 9E3779B9 atau dalam biner 10011110 00110111 01111001 10111001. R (Z) : 01100010 01100001 01100011 01100001 Delta : 10011110 00110111 01111001 10111001 11111110 01110111 01111011 11111001

Kemudian di XOR kan dengan cipher Zsl yang ditambah k[0] : 11111110 01110111 01111011 11111001 01110111 00110111 00110110 01011111 10001001 01000000 01001101 10101110

59

Kemudian di XOR kan dengan Zsr yang ditambah k[1] : 10001001 01000000 01001101 10101110 01001100 00101100 01101100 00101100 11000101 01101100 00101101 10000010

Untuk cipher L (Y) proses yang terjadi pada dasarnya sama seperti pada cipher R (Z), yakni cipher L (Y) juga yang mengalami pergeseran bit ke kiri sebanyak 4 bit dan ke kanan sebanyak 5 bit. Cipher L (Y) : 01100010 01110101 01101011 01110101 Menjadi Ysl : 00100110 01010111 01001001 01010111 Ysr : 01001100 10101110 01101101 10101110

Lsl ditambahkan dengan k[2] : Ysl K[2] : 00100110 01010111 01001001 01010111 : 01001011 01001111 01001101 01010000 01101111 01011111 01001101 01010111

Ysr ditambahkan dengan k[3] : Ysr K[3] : 01001100 10101110 01101101 10101110 : 01010101 01010100 01000101 01010010 01011101 11111110 01101101 11111110

Cipher L (Y) yang tidak mengalami pergeseran ditambahkan dengan delta L (Y) : 01100010 01110101 01101011 01110101 Delta : 10011110 00110111 01111001 10111001 11111110 01110111 01111011 11111101

Kemudian di XOR kan dengan Ysl yang ditambah k[2] : 11111110 01110111 01111011 11111101 01101111 01011111 01001101 01010111 10010001 00101000 00110110 10101010

60

Kemudian di XOR kan dengan Ysr yang ditambah k[3] : 10010001 00101000 00110110 10101010 01011101 11111110 01101101 11111110 11001100 11010110 01011011 01010100

Hasil akhir cipher R (Z) ditambahkan dengan cipher L (Z) yang tidak mengalami pergeseran, yang mana hasilnya akan dijadikan cipher L1 (Y1) untuk round berikutnya. Demuikian juga halnya hasil akhir pada cipher L (Y) akan ditambahkan dengan cipher R (Z) yang tidak mengalami pergeseran yang akan dijadikan cipher R1 (Z1) pada round berikutnya : R (Z) : 11000101 01101100 00101101 10000010 L (Y) : 01100010 01110101 01101011 01110101 11100111 01111101 01101111 11110111 L1 (Y1)

L (Y) : 11001100 11010110 01011011 01010100 R (Z) : 01100010 01100001 01100011 01100001 11101110 11110111 01111011 01110101 R1 (Z1)

Demikianlah penjelasan proses enkripsi yang terjadi pada 2 round ( 1 cycle), untuk round berikutnya dilakukan proses yang sama seperti round sebelumnya, hanya saja untuk proses round yang selanjutnya menggunakan cipher hasil round sebelumnya.

61

3.4 Analisis Proses Deskripsi Algoritma TEA

Untuk proses deskripsi pada algoritma TEA sama halnya dengan proses enkripsinya. Hanya saja terjadi perbedaan pada penjadwalan kuncinya yaitu pada proses enkripsi untuk cipher R yang mengalami pergeseran bit ke kiri sebanyak 4 bit digunakan kunci k[0] pada proses deskripsi digunakan kunci k[1], untuk cipher R yang mengalami pergeseran ke kanan sebanyak 5 bit menggunakan kunci [1] pada proses deskripsi menggunakan kunci k[0]. Begitu juga halnya dengan cipher L, pada proses enkripsi untuk cipher L yang mengalami pergeseran ke kiri sebanyak 4 bit menggunakan kunci k[2] pada proses deskripsi digunakan kunci k[3]. Untuk cipher L yang mengalami pergeseran ke kanan sebanyak 5 bit digunkan kunci k[3] pada proses deskripsi digunkan kunci k[2].

3.5 Pemodelan Fungsional

Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana caranya agar sistem yang dibangun memiliki fungsi yang berdayaguna maksimal. Oleh karena itu, maka fungsi fungsi yang ada pada sistem tersebut perlu dianalisis. Adapun pada perangkat lunak algoritma TEA, secara garis besar terdiri atas 2 fungsi yaitu fungsi enkripsi dan fungsi deskripsi. Untuk melengkapi mekanisme dari kedua fungsi tersebut maka terdapat fungsi-fungsi pendukung, seperti fungsi untuk input data secara browsing file ataupun secara manual, serta fungsi untuk mendapatkan informasi dari panjang file, dan fungsi-fungsi lainnya.

3.5.1 Data Flow Diagram ( DFD )

Data Flow Diagram ( DFD ) dapat digunakan untuk menggambarkan aliran informasi dan proses data yang bergerak dari pemasukan data hingga keluaran. Keuntungan penggunaan Data Flow Diagram ( DFD ) ini adalah memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti sistem yang akan dikerjakan atau

62

dikembangkan. Berikut adalah Data Flow Diagram ( DFD ) dari perangkat lunak yang akan dirancang. (Kendall & Kendall, 2003).

Order_perintah, plaintext, ciphertext, kunci_enkripsi, kunci_deskripsi user File_output (ciphertext/pesan rahasia, plaintext/pesan asli)

P.0 Sistem keamanan data Menggunakan algoritma TEA

Gambar 3.1 Diagram Konteks/DFD Level 0

DFD level 0 di atas menggambarkan sistem secara garis besar yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang. Tiny Encryption Algorithm kriptosistem akan menghasilkan keluaran berupa file output.

Proses yang terjadi pada diagram konteks atau DFD Level 0 di atas dapat dijelaskan dengan menggunakan spesifikasi proses pada tabel 3.1 berikut :

Tabel 3.1 Spesifikasi proses diagram konteks/DFD Level 0

No/Nama

Input

Keterangan Proses

Output

P.0/ Sistem Keamanan data menggunakan Algoritma TEA

Order Perintah, plaintext, ciphertext, kunci_enkripsi, kunci_deskripsi

Sistem yang bertujuan mengamankan data (file) menggunakan algoritma kriptografi simetri Tiny Encryption Algorithm (TEA)

File Output (ciphertext/pesan rahasia, plaintext/pesan asli)

Pengembangan proses yang terjadi pada DFD level 0 di atas dapat di jabarkan pada DFD level 1 berikut :

63

File_output (ciphertext/pesan rahasia)

Plaintext, kunci_enkripsi

Order_enkripsi

P.2 Proses enkripsi algoritma TEA

Order_perintah

user

P.1 Pilih proses yang akan dijalankan Order_deskripsi

+P.3 Proses deskripsi Algoritma TEA

Ciphertext, kunci_deskripsi

File_output (plaintext/pesan asli)

Gambar 3.2 Diagram Level 1

Pada gambar di atas dapat dilihat bahwa terdapat 2 pilihan proses yang dapat dilakukan pada kriptosistem ini yaitu : 1. Proses Enkripsi Proses Enkripsi adalah proses untuk mengubah Plaintext (pesan asli) menjadi Ciphertext (pesan rahasia). Untuk melakukan proses enkripsi, user harus menginput plaintext serta menginput kunci (password). 2. Proses Deskripsi Proses Deskripsi adalah proses untuk mengubah Ciphertext (pesan tersandi) menjadi Plaintext (pesan asli) kembali. Untuk melakukan proses deskripsi, user harus menginput ciphertext yang telah terenkripsi sebelumnya dan menggunakan kunci yang sama pada saat proses enkripsi.

Spesifikasi proses dari DFD level 1 pada Gambar 3.2 akan dijelaskan pada tabel berikut :

64

Tabel 3.2 Spesifikasi proses diagram level 1 No/ Nama Input Keterangan Proses P.1/ pilih proses yang akan dijalankan Order_Perintah Konfirmasi order perintah untuk melakukan proses Enkripsi atau proses Dekripsi P.2/ proses enkripsi algoritma TEA Order_perintah Enkripsi, plaintext, kunci_enkripsi P.3/ Proses Order_perintah Dekripsi data Enkripsi data File Output (ciphertext/pesan rahasia) File Output (plaintext/pesan asli) Order Enkripsi atau Order Dekripsi Output

deskripsi Algoritma Dekripsi, TEA ciphertext, kunci_deskripsi

Proses enkripsi dilakukan pada file. Setiap karakter yang ada pada file dikonversikan ke kode ASCII kemudian ke biner. Karakter-karakter tersebut dienkripsi menggunakan kunci rahasia. Berikut adalah gambar diagram alir untuk proses enkripsi :

65

D3

Plaintext

File_output D1 File_dataP.3.9 Proses gabung plaintext

File_data Order_deskripsi user Krk_plainP.3.1 Browsing file D2

Kode ASCII

Kunci deskripsi 128 bit

P.3.8 Konversi dari ASCII

Kode_ASCII

ciphertext

k[0], k[1], k[2], k[3]

P.3.3 Partisi kunci 128 bit menjadi k[0], k[1], k[2], k[3] masing masing 32 bit

ASCII_plain

P.3.2 Proses potong ciphertext

k[0], k[1], k[2], k[3]

P.3.7 Konversi biner Ke ASCII

subblok_cipher

Biner_plain

P.3.4 Proses deskripsi I

cipher2

P.3.5 Proses deskripsi II

cipher1

P.3.6 Proses gabung keseluruhan blok 64 bit

Gambar 3.3 Diagram level 2 (Proses Enkripsi)

66

Berikut adalah tabel spesifikasi proses enkripsi :

Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses 2 (proses enkripsi) No/ Nama Input Keterangan Proses P.2.1/ Browsing File File Data, order_enkripsi Melakukan browsing file yang akan File data dienkripsi (Plaintext) Output

P.2.2/ Potong File

Plaintext

Memotong isi file menjadi blokblok karakter

krk_plain

P.2.3/ Konversi ke ASCII P.2.4/ Konversi ke biner P.2.5/ proses partisi jadi 64 bit P.2.6/ Proses partisi 64 bit jadi 2 subblok bit 32 bit

krk_plain, kode_ASCII ASCII_plain

Mengkonversikan karakter plainteks ke dalam kode ASCII Mengkonversikan kode ASCII plainteks ke biner

ASCII_plain

Biner