BAB I - USU Institutional Repository - Universitas Sumatera Utara

65 downloads 236 Views 752KB Size Report
Program Studi S-1 Ilmu Komputer serta pembimbing 2 pada penyelesaian skripsi ini ... Sistem ini dibangun menggunakan perangkat lunak Borland Delphi 7.0. ...... Enkripsikan antrian dengan kunci K. Delapan bit paling kiri dari hasil enkripsi.
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

2 3 4 5 6 7 9 10

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

11 11 12 12 13 13 13 14

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

16 16 17 19 20 20 20 21 22 23 27 31 31 99 41 46 46 47 48 51 53

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

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

61 61 61 69

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

72 72 72 73 75 79 84

BAB 5 PENUTUP 5.1. Kesimpulan 5.2. Saran

90 90 91

DAFTAR PUSTAKA LAMPIRAN A TABEL LAPORAN PENGUJIAN PROGRAM LAMPIRAN B LISTING PROGRAM LAMPIRAN C TABEL KODE ASCII

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

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

18 20 21 22 23 24 55 32 34 36 37 38 38 42 62 63 65 67 74 76

Gambar 4.3

Rancangan Layar Encryption

77

Gambar 4.4

Rancangan Layar Descryption

78

Gambar 4.5

Rancangan Form About

79

Gambar 4.6

Flowchart Prosedur Enkripsi

81

Gambar 4.7

Flowchart Prosedur Deskripsi

83

Gambar 4.8

Tampilan Layar Utama KripTEA

84

Gambar 4.9

Tampilan Layar Encryption

85

Gambar 4.10 Tampilan Layar Encryption Pada Saat Menampilkan Output

86

Enkripsi File Gambar 4.11 Tampilan Layar Descryption

87

Gambar 4.12 Tampilan Layar Descryption Pada Saat Menampilkan Output

88

Deskripsi File Gambar 4.13 Tampilan Layar About

89

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, “krypós” yang berarti tersembunyi dan “gráphein” 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, “kryptós” yang berarti “tersembunyi” dan “lógos” 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

dienkripsi secara individual dan independen

. Secara matematis, enkripsi dengan mode ECB dinyatakan

sebagai

=

( )

=

( )

dan dekripsi sebagai

yang dalam hal ini, K adalah kunci, sedangkan

dan

masing-masing adalah blok

plainteks dan cipherteks ke-i.

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

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

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

**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

meminimalisir resiko yang timbul akibat interaksi antar/dengan manusia.

untuk

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

: bacabuku

Kunci

: 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)

: 00100110 00010110 00110110 00010110

Zsr ( R shift right)

: 01001100 00101100 01101100 00101100

Zsl ditambahkan dengan kunci k[0] : Zsl

: 00100110 00010110 00110110 00010110

K[0]

: 01010011 00110001 00100000 01001001 01110111 00110111 00110110 01011111

Sedangkan Zsr ditambahkan dengan k[1] : Rsr

: 01001100 00101100 01101100 00101100

K[1]

: 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

: 00100110 01010111 01001001 01010111

K[2]

: 01001011 01001111 01001101 01010000 01101111 01011111 01001101 01010111

Ysr ditambahkan dengan k[3] : Ysr

: 01001100 10101110 01101101 10101110

K[3]

: 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

P.0 Sistem keamanan data Menggunakan algoritma TEA

File_output (ciphertext/pesan rahasia, plaintext/pesan asli)

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

Output

Proses P.0/ Sistem

Order Perintah,

Sistem yang bertujuan

File Output

Keamanan data

plaintext,

mengamankan data

(ciphertext/pesan

menggunakan

ciphertext,

(file) menggunakan

rahasia,

Algoritma TEA

kunci_enkripsi,

algoritma kriptografi

plaintext/pesan

kunci_deskripsi

simetri Tiny Encryption

asli)

Algorithm (TEA)

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

P.2 Proses enkripsi algoritma TEA

Order_enkripsi

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

Output

Proses P.1/ pilih proses

Order_Perintah

Konfirmasi order

Order Enkripsi atau

yang akan

perintah untuk

Order Dekripsi

dijalankan

melakukan proses Enkripsi atau proses Dekripsi

P.2/ proses enkripsi

Order_perintah

algoritma TEA

Enkripsi, plaintext,

(ciphertext/pesan

kunci_enkripsi

rahasia)

P.3/ Proses

Order_perintah

deskripsi Algoritma Dekripsi, TEA

Enkripsi data

Dekripsi data

File Output

File Output (plaintext/pesan asli)

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_data

P.3.9 Proses gabung plaintext

File_data Order_deskripsi

user Krk_plain

P.3.1 Browsing file

ciphertext

D2

Kunci deskripsi 128 bit

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

P.3.2 Proses potong ciphertext

P.3.8 Konversi dari ASCII

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

Kode_ASCII

ASCII_plain

P.3.7 Konversi biner Ke ASCII

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

subblok_cipher

P.3.4 Proses deskripsi I

Kode ASCII

Biner_plain

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

Output

Proses P.2.1/ Browsing File

P.2.2/ Potong File

File Data,

Melakukan browsing file yang akan File data

order_enkripsi

dienkripsi

(Plaintext)

Plaintext

Memotong isi file menjadi blok-

krk_plain

blok karakter P.2.3/ Konversi ke

krk_plain,

Mengkonversikan karakter

ASCII

kode_ASCII

plainteks ke dalam kode ASCII

P.2.4/ Konversi ke

ASCII_plain

Mengkonversikan kode ASCII

biner P.2.5/ proses partisi

Biner_plain

plainteks ke biner Biner_plain

jadi 64 bit P.2.6/ Proses partisi 64

ASCII_plain

Mempartisi keseluruhan bit

Blok_plain

plaintext menjadi blok-blok 64-bit Blok_plain

Mempartisi setiap blok-blok

Subblok_pla

bit jadi 2 subblok bit

plainteks 64-bit menjadi 2 subblok

in

32 bit

32-bit

P.2.7/ Partisi kunci Kunci enkripsi 128 bit menjadi k[0], 128 bit k[1], k[2], k[3] masing – masing 32 bit

Mempartisi masukan kunci 128 bit

K[0], k[1],

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

k[2], k[3]

P.2.8/ Proses Enkripsi

Subblok_plain

Melakukan proses enkripsi tahap I

Cipher1

Cipher1

Melakukan proses enkripsi tahap I I

Cipher2

Cipher2

Menggabungkan seluruh karakter

File_Output

cipherteks

(Ciphertext)

masing – masing 32 bit

I P.2.9/ Proses Enkripsi II P.2.10/ Proses gabung ciphertext

67

Untuk mengembalikan cipherteks menjadi plaintext kembali agar dapat dipahami, maka dilakukan proses dekripsi pada file tersebut. Untuk melakukan proses dekripsi digunakan kunci yang sama pada saat melakukan proses enkripsi. Proses dekripsi dapat dilihat pada gambar DFD level 2 proses dekripsi berikut :

D3

Plaintext

File_output D1

File_data

P.3.9 Proses gabung plaintext

File_data Order_deskripsi

user Krk_plain

P.3.1 Browsing file

ciphertext

D2

Kunci deskripsi 128 bit

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

P.3.2 Proses potong ciphertext

P.3.8 Konversi dari ASCII

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

Kode_ASCII

ASCII_plain

P.3.7 Konversi biner Ke ASCII

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

subblok_cipher

P.3.4 Proses deskripsi I

Kode ASCII

Biner_plain

cipher2

P.3.5 Proses deskripsi II

cipher1

P.3.6 Proses gabung keseluruhan blok 64 bit

Gambar 3.4 Diagram level 2 (Proses Deskripsi)

68

Berikut adalah tabel spesifikasi proses deskripsi :

Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses 3 (Proses Deskripsi)

Spesifikasi proses dekripsi dapat dilihat pada tabelKeterangan berikut : Proses No/Nama Input P.3.1/Browsing file

P.3.2/ Proses potong

Output

File Data,

Melakukan browsing file yang

File data

order_enkripsi

akan dideskripsi

(ciphertext)

Ciphertext

Memotong pesan yang akan

Subblok_Ci

didekripsi menjadi blok-blok

pher

ciphertext

cipher 64-bit, lalu mempartisi ke dalam 2 subblok 32-bit untuk didekripsi pada tahap I P.3.3/ Partisi kunci

Kunci deskripsi

Mempartisi masukan kunci 128 bit K[0], k[1],

128 bit menjadi k[0],

128 bit

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

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

k[2], k[3]

masing – masing 32 bit

masing – masing 32 bit P.3.4/ Proses

Subblok_Cipher

Melakukan proses dekripsi tahap I

Cipher1

Cipher1

Melakukan proses dekripsi tahap I

Cipher2

deskripsi I P.3.5/proses deskripsi II P.3.6/ Proses gabung

I Cipher2

Menggabungkan setiap 32-bit

keseluruhan blok 64

subblok ciphertext menjadi blok-

bit

blok 64 bit

P.3.7/ Konversi biner

Biner_Plain

ke ASCII

Mengkonversi setiap blok-blok

Biner_Plain

ASCII_Plain

plainteks menjadi kode ASCII nya

P.3.8/ Konversi dari

ASCII_plain,

Mengkonversi setiap kode ASCII

ASCII

kode_ASCII

menjadi karakter-karkter nya

P.3.9/ Proses gabung

Krk_plain

Menggabungkan seluruh karakter-

File_Output

karakter plainteks

(Plaintext)

plaintext

Krk_plain

69

3.5.2 Kamus Data

Kamus data merupakan suatu data yang disusun untuk memudahkan proses analisis dan desain. Selain suatu dokumen, kamus data mengumpulkan dan mengkoordinasi istilah-istilah data yang terdapat pada diagram alir. Penganalisis sistem harus hati-hati dalam mengkatalogkan istilah-istilah yang berbeda-beda yang menunjuk pada item yang sama. Kehati-hatian ini membantu dalam menghindari duplikasi, memungkinkan adanya komunikasi yang baik antara bagian-bagian yang saling berbagi basis data, dan membuat upaya pemeliharaan lebih bermanfaat. Kamus data juga bertindak sebagai standar tetap untuk elemen-elemen data.( Kendall & Kendall, 2003)

Masukan-masukan kamus data bisa dibuat setelah diagram aliran data dilengkapi atau bisa juga disusun saat diagram aliran data sedang dikembangkan. Penganalisis sistem bisa saja membuat suatu diagram aliran data level 0 dan sekaligus membuat masukan-masukan data awal. Selanjutnya, sewaktu penganalisis sistem mengembangkan diagram level data menjadi diagram anak, penganalisis juga bisa memodifikasi masukan-masukan kamus data yang baru sesuai dengan aliran data pada diagram alir anak.

Berikut ini merupakan kamus data yang berisikan data yang digunakan pada diagram alir data pada proses enkripsi dan dekripsi.

70

3.5.2.1 Kamus Data Proses Enkripsi

Tabel 3.5 Kamus Data Proses Enkripsi

Nama ASCII_plain

Tipe data Integer

Deskripsi Karakter plainteks yang telah diubah ke dalam kode ASCII

Biner_plain

Integer

Bentuk biner plainteks dari setiap kode ASCII karakter pesan

Blok_plain

Integer

Blok-blok 64-bit plainteks hasil partisi plainteks

Blok_cipher

Integer

Hasil penggabungan seluruh cipher yang diperoleh

Cipher1

Integer

Hasil proses enkripsi tahap I

Cipher2

Integer

Hasil proses enkripsi tahap II

File_data

Boolean

Semua jenis file yang tersimpan di komputer

File_Output

Boolean

File hasil enkripsi

Krk_plain

Char

Karakter plainteks yang telah dipotong

Kode_ASCII

Integer

Bentuk desimal kode ASCII

Kunci_enkripsi

string

Kunci enkripsi yang diinput oleh user maksimal 16 karakter

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

string

128 bit kunci yang dipartisi menjadi 4 blok yang masing – masing 32 bit untuk proses enkripsi

Order_enkripsi

String

Perintah untuk melakukan browsing file.

Plaintext

boolean

File yang akan dienkripsi

71

3.5.2.2 Kamus Data Proses Deskripsi

Tabel 3.6 Kamus Data Proses Deskripsi

Nama ASCII_plain

Tipe data Integer

Deskripsi kode ASCII hasil konversi dari biner plainteks

Blok_cipher

Integer

blok ciphertext hasil deskripsi

Cipherteks

boolean

File yang akan didekripsi

Cipher2

Integer

Karakter cipher yang telah dipotong

Cipher1

Integer

Hasil proses dekripsi tahap I

File_data

Boolean

Semua jenis file yang tersimpan di komputer

File_output

Boolean

File hasil dekripsi (gabungan seluruh karakter plainteks)

Krk_plain

Char

Karakter plainteks yang telah dikonversi dari kode ASCII

Kunci_deskripsi

String

Kunci dekripsi

yang

diinput

user

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

string

128 bit kunci yang dipartisi menjadi 4 blok yang masing – masing 32 bit untuk proses deskripsi

Order_deskripsi

String

Perintah untuk melakukan browsing file.

Subblok_cipher

Integer

Hasil proses dekripsi tahap II

72

BAB 4

PERANCANGAN DAN IMPLEMENTASI

4.1 Perancangan

Perancangan merupakan tahap kedua dari siklus hidup pengembangan sistem perangkat lunak. Perancangan memiliki tujuan untuk menentukan kondisi akhir yang diharapkan dari perangkat lunak yang akan dibangun dan merumuskan cara yang harus dilakukan untuk memperoleh hasil tersebut.

Pada perangkat lunak dengan algoritma TEA, tahap perancangan yang dilakukan mencakup perancangan struktur program, perancangan antar muka pemakai dan perancangan algoritma dan flowchart perangkat lunak KripTEA

4.1.1 Perancangan Struktur Data

Perancangan data merupakan aktivitas pertama (dan beberapa sering mengatakan yang terpenting) dari empat aktivitas desain yang dilakukan selama rekayasa perangkat lunak. Pengaruh struktur data pada struktur program dan kompleksitas prosedural menyebabkan perancangan data berpengaruh penting terhadap kualitas perangkat lunak. Tanpa melihat perancangan yang digunakan, data yang dirancang dengan baik dapat membawa kepada struktur program dan modularitas yang lebih baik, serta mengurangi kompleksitas prosedural (Pressman, 2002).

73

Perancangan data yang digunakan pada perangkat lunak KripTEA adalah sebagai berikut :

file_data, plainteks : boolean

order_perintah, cipher, kunci_enkripsi : string;

kode_ASCII, ASCII_Plain, Biner_plain: integer

cipherteks, cipher, blok_plain : Boolean

kunci_deskripsi, k[0], k[1], k[2], k[3] : string

blok_cipher, krk_plain : integer

4.1.2 Perancangan Struktur Program

Struktur program, disebut juga hirarki kontrol, merepresentasikan organisasi komponen program (modul) serta mengimplikasikan suatu hirarki kontrol. Suatu hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian/urutan dari keputusan, atau pengulangan operasi. Banyak notasi yang berbeda yang digunakan untuk merepresentasikan hirarki kontrol, yang paling umum adalah diagram pohon (Pressman, 2002). Adapun struktur program dari perangkat lunak KripTEA dapat dilihat pada gambar berikut :

74

Main Menu

Enkripsi

Deskripsi

Baca Plaintext

Baca Kunci Enkripsi

Baca Ciphertext

Baca Kunci Deskripsi

Potong Plaintext

Potong Kunci Enkripsi

Potong Ciphertext

Potong Kunci Deskripsi

Konversi kunci Ke kode ASCII

Konversi Dari Biner ke kode ASCII

Konversi kunci Ke kode ASCII

Konversi pesan Ke kode ASCII

Konversi kode ASCII Kedalam biner

Gabung Ciphertext

Konversi dari Kode ASCII

Gabung Plaintetxt

Gambar 4.1. Struktur Program KripTEA

75

4.1.3 Perancangan Antar Muka Pemakai

Antar muka pemakai (user interface) adalah aspek sistem komputer atau program yang dapat dilihat, didengar, atau dipersepsikan oleh pengguna manusia, dan perintahperintah atau mekanisme yang digunakan pemakai untuk mengendalikan operasi dan memasukkan data. Berikut ini merupakan perancangan antar muka pemakai perangkat lunak KripTEA.

4.1.3.1 Tampilan Form Utama

Tampilan ini merupakan tampilan utama dari perangkat lunak KripTEA yang dibuat sesederhana mungkin untuk memudahkan para pengguna perangkat lunak. Pada tampilan Utama yang merupakan tampilan awal ini terdapat Judul Program, dan fasilitas yang ada pada KripTEA, yaitu Encryption, Descryption, About (penjelasan tentang sistem) serta tombol exit.

Jika dipilih menu Encryption maka selanjutnya akan tampil form Enkripsi Pesan dan jika yang dipilih adalah Descryption maka yang muncul adalah tampilan form Dekripsi pesan. Sedangkan jika yang dipilih adalah menu About maka yang tampil adalah penjelasan tentang sistem. Untuk keluar dari menu utama maka dipilih tombol Exit yang merupakan pilihan untuk keluar secara keseluruhan dari software.

Tampilan layar utama pada KripTEA adalah seperti pada gambar 4.2 berikut :

76

KripTEA V.1.0 SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA TEA MENU UTAMA

ENCRYPTION DESCRYPTION ABOUT EXIT

Gambar 4.2 Rancangan Layar Utama KripTEA

4.1.3.2 Tampilan Form Encryption Pada KripTEA, plainteks yang akan dienkripsi di browse dari komputer melalui file browser, kemudian pilih format file yang akan digunakan pada proses enkripsi melalui filter data, selanjutnya pilih file yang akan dienkripsi yang terdapat pada file list. Untuk melakukan proses enkripsi kilik tombol encryption. Setelah melakukan pemilihan file, input password untuk melakukan proses enkripsi. Untuk membatalkan proses atau kembali ke menu utama dapat menglik tombol back. Tampilan layar menu encryption adalah sebagai berikut :

77

Enryption/Descryption Encryption

Descryption

Data Encryption

Password (key) Filter Data :

File Browser :

File List :

Encryption

Gambar 4.3 Rancangan Layar Enkripsi

Back

78

4.1.3.3 Tampilan Form Descryption

Tampilan ini akan ditampilkan ketika pengguna sistem hendak melakukan proses dekripsi terhadap suatu file yang telah terenkrip. Proses dekripsi hanya dapat dilakukan dengan benar jika kunci rahasia yang diinput user bernilai benar. Tampilan form dekripsi dapat dilihat pada gambar berikut :

Encryption/Descryption Encryption

Descryption

Data Descryption

Password (key) Filter Data :

File Browser :

File List :

Descryption

Gambar 4.4 Rancangan Layar Deskripsi

Back

79

File yang akan didekripsi di-browse dari komputer, dimana file haruslah dalam format *.tea . Jika user ingin mengganti file yang ingin didekripsi atau membatalkan proses maka user dapat mengklik tombol Back. Untuk melakukan proses deskripsi haruslah menginputkan password yang sama seperti pada proses enkripsi.

4.1.3.4 Tampilan Form About Tampilan ini digunakan untuk memberikan penjelasan tentang perangkat lunak. ABOUT

ICON TEA

Berisikan Penjelasan Tentang Perangkat Lunak

OK Gambar 4.5 Rancangan Form About

4.1.4 Perancangan Prosedural Perancangan prosedural terjadi setelah perancangan data, perancangan struktur program dan antar muka dibangun. Dalam dunia nyata, spesifikasi prosedural diperlukan untuk menetapkan detail algoritma yang akan digunakan dalam suatu bahasa ibu seperti bahasa Indonesia. Sayangnya, ada satu masalah kecil. Perancangan prosedural harus menentukan detail desain, prosedural tanpa ada ambiguitas. Oleh karena itu, untuk menghindari adanya ambiguitas pada perancangan prosedural, perancangan prosedural perangkat lunak KripTEA menggunakan algoritma dan flowchart.

Pada perangkat lunak KripTEA, terdapat dua prosedur utama, yaitu prosedur Encryption dan prosedur Descryption. Selain ketiga prosedur tersebut, masih terdapat beberapa prosedur yang mendukung proses kerja kedua prosedur utama tersebut.

80

Adapun nama prosedur-prosedur pendukung yang terdapat pada perangkat lunak KripTEA ini antara lain: Password.

Adapun algoritma dan flowchart untuk KripTEA adalah sebagai berikut :

4.1.4.1 Algoritma dan Flowchart untuk proses Enkripsi

Prosedur ini digunakan untuk melakukan proses encryption. Rincian prosesnya dipaparkan oleh algoritma berikut:

1. start. 2. input blok plaintext 64 bit. 3. partisi blok plaintext menjadi 2 sub blok 32 bit, L0 (Y) = 32 bit dan R0 (Z) = 32 bit. 4. input blok kunci enkripsi 128 bit. 5. partisi blok kunci enkripsi menjadi 4 sub blok kunci k0 = 32 bit, k1=32 bit, k2 = 32 bit dan k3 = 32 bit. 6. i = 1. 7. Tahap I enkripsi L0 = L0 + f (R0, k[0], k[1], sum) 8. Tahap II enkripsi R0 = R0 + f (L0, k[2], k[3], sum) 9. i = i - 1. 10. Periksa apakah i