Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data

(1)

Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009.

IMPLEMENTASI SECURE HASH ALGORITHM (SHA) DAN SUBSTITUSI MONO ALFABET DALAM

SISTEM PENGAMANAN DATA

SKRIPSI

RAJA SALOMO TARIGAN 041401055

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA MEDAN


(2)

PERSETUJUAN

Judul : IMPLEMENTASI SECURE HASH ALGORITHM (SHA) DAN SUBSTITUSI MONO ALPHABET DALAM SISTEM PENGAMANAN DATA Kategori : SKRIPSI

Nama : RAJA SALOMO TARIGAN Nomor Induk Mahasiswa : 041401055

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Februari 2009

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ir. Elviawaty MZ, MT, MM Maya Silvi Lydia,BSc,MSc NIP.132 306 873 NIP . 132 299 349

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer FMIPA USU Ketua,

Prof. Dr. Muhammad Zarlis NIP 131570434


(3)

PERNYATAAN

IMPLEMENTASI SECURE HASH ALGORITHM (SHA) DAN

SUBSTITUSI MONO ALFABET DALAM

SISTEM PENGAMANAN DATA

SKRIPSI

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

Medan, Februari 2009

RAJA SALOMO TARIGAN 041401055


(4)

PENGHARGAAN

Segala puji dan syukur penulis panjatkan ke hadirat Tuhan Yesus Kristus, dengan limpahan karunia-Nya tugas akhir ini berhasil diselesaikan dalam waktu yang ditetapkan.

Ucapan terima kasih saya sampaikan kepada Ibu Maya Silvi Lydia ,BSc. ,MSc. dan kak Ir. Elviawaty MZ, MT, MM selaku pembimbing yang telah banyak memberikan panduan dan kepercayaan penuh kepada saya untuk menyempurnakan kajian ini. Serta, kepada Bapak Drs. Sawaluddin, MIT dan Bapak M. Umar T, ST selaku pembanding yang dengan saran dan kritiknya telah banyak membantu dalam tugas akhir ini. Panduan ringkas, padat dan professional telah diberikan kepada saya agar dapat menyelesaikan tugas ini. Ucapan terimakasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syahriol Sitorus, S.Si, M.I.T, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, Semua dosen pada Departemen Ilmu Komputer FMIPA USU, Pegawai di Ilmu Komputer FMIPA USU, Angkatan 2003 yaitu Kak Ita dan Bang Safril yang menjadi teman diskusi penulis selama menyusun skripsi,rekan-rekan kuliah Angkatan 2004 khususnya Kom B dan orang-orang yang sangat berharga didalam hidup saya : Yung Yung, Mpok Umar, Tina, Vera dan Andika. Teristimewa kepada Ayahanda Simson Tarigan, Ibunda Santa Rosa br. Sebayang, adik saya Samuel Tarigan, kakak saya Gracia H.E Tarigan yang telah memberikan doa, dorongan, perhatian dan kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya semenjak penulis dilahirkan hingga menyelesaikan tugas akhir ini. Semoga Tuhan Yesus memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian, serta kerja samanya kepada penulis dalam menyelesaikan tugas akhir ini.

Akhirnya penulis berharap bahwa tugas akhir ini bermanfaat terutama kepada penulis maupun para pembaca serta semua pihak yang berhubungan dengannya. Penulis menyadari sepenuhnya bahwa kajian ini sangat jauh dari sempurna. Oleh karena itu kritik dan saran yang membangun sangat diharapkan demi perbaikan.


(5)

ABSTRAK

Penggunaan data digital dalam dunia sekarang ini sudah meliputi hampir semua aspek. Salah satu upaya pengamanan data digital yang dapat dilakukan adalah kriptografi. Teknik kriptografi klasik seperti Substitusi Mono Alphabet tidak pernah digunakan lagi karena tidak dapat menyaingi kompleksitas teknik kriptografi yang lain oleh karena kesederhanaannya. Oleh karena itu timbul suatu gagasan untuk menggunakan kembali algoritma kriptografi klasik seperti Substitusi Mono Alphabet dengan cara menggabungkannya dengan algoritma modern tanpa menghilangkan sifat asli algoritma tersebut. Dengan digunakan algoritma gabungan antara Secure Hash

Algorithm dan Substitusi Mono Alphabet diharapkan akan menghasilkan algoritma

yang lebih tangguh tanpa menghilangkan sifat asli dari Substitusi Mono Alphabet. Implementasi dari penggabungan dua algoritma tersebut adalah suatu sistem pengamana yang dinamakan EnDeCrypt. EnDeCrypt mampu mengenkripsi file text dan mendekripsinya kembali tanpa menghilangkan sifat asli dari Substitusi Mono Alphabet.


(6)

IMPLEMENTATION SECURE HASH ALGORITHM (SHA) AND MONO ALPHABETIC SUBSTITUTION IN DATA SECURITY SYSTEM

ABSTRACT

The use of digital data in the world right now has covered almost every aspect in life. One way to keep the data safe are by using Cryptography. Classical cryptography technique like Mono Alphabetic Substitution has never been used anymore because of its simplicity. The idea to reuse the classical cryptography technique like Mono Alphabetic Substitution was come up by combine it with modern cryptographic algorithm without removed its original nature. Using Secure Hash Algorithm and Mono Alphabetic Subsitution, better and tougher algorithm are expected without remove the original nature of Mono Alphabetic Substitution. The implementation from combination of that algorithms is a security system called EnDeCrypt. EnDeCrypt can encrypt text file and decrypt it back without losing the original nature of Mono Alphabetic Substitution.


(7)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan 2

1.5 Manfaaat Penelitian 3

1.5 Metodologi Penelitian 3

1.6 Sistematika Penulisan 4

BAB 2 TINJAUAN TEORITIS 5

2.1. Definisi Kriptografi 5

2.2. Proses Kriptografi 6

2.3. Algoritma Substitusi 7

2.3.1. Caesar Cipher 8

2.3.2. Monoalphabetic Cipher 8

2.4. Secure Hash Algorithm (SHA) 12

2.5. Ancaman Keamanan 20

2.4.1. Interuption 20

2.4.2. Interception 20

2.4.3. Modification 21

2.4.4. Fabrication 21

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 22

3.1. Analisa Masalah 22


(8)

3.2.1 Proses Enkripsi Algoritma Substitusi Mono Alphabet 23 3.2.2 Proses Dekripsi Algoritma Substitusi Mono Alphabet 23

3.2.2 Proses Otentifikasi dengan Secure Hash Algorithm 23

3.3 Model Analisis Perangkat Lunak 24

3.3.1 Pemodelan Fungsional 25

3.3.2 Kamus Data 29

3.4 Perancangan 30

3.4.1 Perancangan Struktur Program 31

3.4.2 Perancangan Antar Muka Pemakai 31

3.4.3 Perancangan Struktur Data 34

3.4.4 Perancangan Prosedural 35

BAB 4. IMPLEMENTASI PERANGKAT LUNAK 44

4.1 Implementasi 44

4.2 Tampilan proses Enkripsi dan Dekripsi 44

4.2 Tampilan Menu Help 50

BAB 5. KESIMPULAN DAN SARAN 51

5.1. Kesimpulan 51

5.2. Saran 52

DAFTAR PUSTAKA 53


(9)

Daftar Tabel

Tabel 2.1 Frekuensi huruf-huruf dalam text Bahasa Inggris 9

Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet 11

Tabel 2.3 Fungsi logika ft pada setiap putaran 19

Tabel 3.1 Spesifikasi Proses Diagram Konteks Level 0 26

Tabel 3.2 Spesifikasi Proses DFD Level 1 P.0 27

Tabel 3.3 Spesifikasi Proses DFD Level 2 Untuk Proses Enkripsi 28

Tabel 3.4 Spesifikasi Proses DFD Level 2 Untuk Proses Dekripsi 29


(10)

Daftar Gambar

Gambar 2.1 Mekanisme Kriptografi 6

Gambar 2.2 Kriptografi berbasis kunci 7

Gambar 2.3 Substitusi Mono Alphabetic 12

Gambar 2.4 Pembuatan message digest dengan algoritma SHA 14

Gambar 2.5 Pengolahan blok 512 bit (Proses HSHA) 16

Gambar 2.6 Operasi dasar SHA dalam satu putaran (fungsi f) 17

Gambar 2.7 Algoritma sistem SHA-SMA 19

Gambar 2.8 Interruption 20

Gambar 2.9 Interception 20

Gambar 2.10 Modification 21

Gambar 2.11 Fabrication 21

Gambar 3.1 Diagram Konteks 26

Gambar 3.2 DFD Level 1 Proses P.0 27

Gambar 3.3 Diagram Level 2 untuk Enkripsi 28

Gambar 3.4 Diagram Level 2 untuk Dekripsi 30

Gambar 3.5 Arsitektur Program Kriptogafi Substitusi Mono Alphabet 33 dan Secure Hash Algorithm

Gambar 3.6 Rancangan tampilan File Tab Program 34

Gambar 3.7 Rancangan tampilan Help Tab 35

Gambar 3.8 Flowchart Program EnDeCrypt 36

Gambar 3.9 Flowchart fungsi Hash SHA-1 40

Gambar 3.10 Flowchart fungsi enkripsi Substitusi Mono Alphabet 42

Gambar 3.11 Flowchart fungsi dekripsi Substitusi Mono Alphabet 44

Gambar 4.1 Tampilan utama program EnDeCrypt 45

Gambar 4.2 Membuka File tes.txt 46

Gambar 4.3 Tampilan program EnDeCrypt setelah membuka file 47

Gambar 4.4 Pesan konfirmasi enkripsi 47

Gambar 4.5 Pemberitahuan nama file Kunci 48

Gambar 4.6 Pemberitahuan file terenkripsi pada user 48

Gambar 4.7 Pemberitahuan bahwa proses enkripsi berhasil 48

Gambar 4.8 Membuka File kunci key3.tmp 49

Gambar 4.9 Tampilan program EnDeCrypt setelah membuka file 49

Gambar 4.10 Peringatan apabila file kunci salah 50

Gambar 4.11 Pemberitahuan bahwa proses dekripsi tidak berhasil 50

Gambar 4.12 Pemberitahuan bahwa proses dekripsi berhasil 51


(11)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Dengan semakin berkembangnya pemanfaatan teknologi informasi dalam membantu pekerjaan di berbagai organisasi maupun pekerjaan pribadi, maka keamanan telah menjadi aspek yang sangat penting dalam suatu sistem informasi.

Salah satu upaya pengamanan data pada sistem informasi yang dapat dilakukan adalah kriptografi. Kriptografi merupakan pembelajaran terhadap teknik matematis yang terkait dengan aspek keamanan suatu sistem informasi, kerahasiaan (Privacy/Confidentiality), integritas (Integrity), otentikasi (Authentication), dan pembuktian yang tak tersangkal (Non-Repudiation). Keempat aspek tersebut merupakan dasar tujuan dari suatu sistem kriptografi.

Banyak sekali teknik kriptografi yang dapat digunakan untuk mengenkripsi data. Salah satu teknik yang dipergunakan dalam kriptografi adalah teknik Substitusi Mono Alfabet dan Secure Hash Algorithm. Teknik Substitusi Mono Alfabet adalah teknik Kriptografi klasik yang dilakukan sekitar tahun 50 SM oleh Julius Caesar, kaisar Roma yang menggunakannya untuk mengirim pesan-pesan rahasia. Pada zaman sekarang ini teknik Substitusi Mono Alfabet tidak dapat menyaingi kompleksitas teknik kriptografi yang lain oleh karena kesederhanaannya. Oleh karena itu, maka timbul suatu gagasan untuk membangun suatu sistem keamanan yang menggunakan teknik Substitusi Mono Alfabet yang dipadukan dengan Secure Hash Algorithm agar mendapatkan algoritma Substitusi Mono Alfabet yang lebih kuat. Pada tugas akhir ini hanya akan dibahas salah satu metode kriptografi yaitu Secure Hash Algorithm (SHA) dan Substitusi Mono Alfabet.


(12)

1.2 Perumusan Masalah

Dari latar belakang yang dijelaskan sebelumnya, rumusan masalah yang dapat diambil adalah bagaimana membangun algoritma yang kuat untuk pengamanan pesan yaitu dengan menggabungkan algoritma Secure Hash Algorithm dan Substitusi Mono Alfabet.

1.3 Batasan Masalah

Untuk mencegah adanya perluasan masalah dan pembahasan yang terlalu kompleks, maka dibutuhkan pembatasan masalah. Adapun batasan masalah dalam penyusunan tugas akhir ini adalah:

1. Fokus penelitian ini adalah menggunakan algoritma Secure Hash Algorithm

(SHA) dan algoritma Substitusi Mono Alfabet dalam penyandian data tanpa

membandingkan dengan algoritma lain yang dapat digunakan untuk tujuan yang sama.

2. Pada tahap implementasi digunakan file text (.txt) sebagai sample dalam untuk proses enkripsi dan dekripsi.

3. Sistem yang akan dibangun akan bekerja dalam proses enkripsi-dekripsi. 4. Sistem yang akan dibangun hanya bekerja pada file yang tersimpan dalam satu

komputer.

5. Proses Substitusi pada penelitian hanya dapat dilakukan pada karakter: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789{}[]:;<>,.?/!@#$%^&*()-+= ~.

.


(13)

Tujuan yang ingin dicapai dalam penulisan tugas akhir ini adalah meningkatkan kekuatan algoritma Substitusi Mono Alfabet dengan menggabungkannya dengan

Secure Hash Algorithm (SHA). 1.5 Manfaat Penelitian

Manfaat dari penulisan tugas akhir ini adalah:

1. Penggunaan Secure Hash Algorithm (SHA) dan Substitusi Mono Alfabet bermanfaat untuk mencegah pihak-pihak yang tidak berkepentingan untuk mengetahui isi atau membaca suatu data atau informasi. Hanya pihak-pihak tertentu saja yang diberi wewenang untuk mengetahui isi dan melakukan perubahan pada data dan informasi tersebut.

2. Manfaat dari aplikasi yang dibuat dapat digunakan baik untuk kepentingan pribadi maupun umum.

1.6 Metodologi Penelitian

Tugas Akhir ini akan dikerjakan dengan metodologi sebagai berikut : 1. Studi literatur

Melakukan studi kepustakaan yaitu mengumpulkan referensi yang berkaitan dengan kriptografi, Secure Hash Algorithm (SHA) dan Substitusi Mono Alfabet. 2. Perancangan

Metode ini akan dilaksanakan dengan merancang program yang akan digunakan untuk mengenkripsi dan mendekripsi file

3. Pengkodean

Menyusun kode program untuk proses enkripsi dan dekripsi 4. Pengujian


(14)

1.7 Sistematika Penulisan

Sistematika penulisan ini dibagi menjadi lima bab, yaitu:

BAB 1 Pendahuluan

Berisikan konsep dasar penyusunan laporan tugas akhir.

BAB 2 Tinjauan Teoritis

Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan bab selanjutnya, implementasi enkripsi/dekripsi data menggunakan algoritma Substitusi Mono Alphabet dan

Secure Hash Algorithm (SHA).

BAB 3 Analisis dan Perancangan Sistem

Berisikan analisa permasalahan dan kebutuhan serta penjelasan singkat tentang algoritma SMA & SHA.

BAB 4 Implementasi Sistem Keamanan

Berisikan rangkuman implementasi sistem serta menguji sistem untuk menemukan kelebihan dan kekurangan pada sistem keamanan yang telah dibangun.

BAB 5 Penutup


(15)

BAB 2

TINJAUAN TEORITIS

2.1Definisi Kriptografi

Menurut Ariyus (2006:77), Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata “kriptografi” dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan Graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain

Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data dengan metode tertentu, dan pelakunya disebut cryptographer. Kriptografi disebut sebagai ilmu karena didalamnya terdapat metode (rumusan) yang digunakan, dan dikatakan sebagai seni karena karena dalam membuat suatu teknik kriptografi itu sendiri merupakan ciri tersendiri dari si pembuat dan memerlukan teknik khusus dalam mendisainnya. Sedangkan cryptanalysis adalah suatu ilmu dan seni memecahkan

ciphertext menjadi plaintext tanpa melalui cara yang seharusnya dan orang yang

melakukannya disebut cryptanalyst.

Menurut Kessler (2006:3), adapun tujuan sistem kriptografi adalah sebagai berikut : a. Authentication

Proses menguji identitas seseorang. b. Privacy/Confidentiality

Memastikan bahwa tidak ada yang dapat membaca pesan kecuali penerima yang dituju.

c. Integrity

Memastikan penerima yang menerima pesan tidak diubah dengan cara apapun. d. Non-repudiation


(16)

Mekanisme yang membuktikan bahwa pengirim benar-benar mengirimkan pesan tersebut.

2.2Proses Kriptografi

Urutan proses kerja kriptografi secara umum dapat digambarkan pada Gambar 2.1 sebagai berikut:

Gambar 2.1 Mekanisme kriptografi

Sebuah plaintext (p) akan dilewatkan pada proses enkripsi (E) sehingga menghasilkan suatu ciphertext (c). Kemudian untuk memperoleh kembali plaintext, maka ciphertext (c) melalui proses dekripsi (D) yang akan menghasilkan kembali

plaintext (m). Secara matematis proses ini dapat dinyatakan sebagai, E(m) = c

D(c) = m D(E(m)) = m

Kriptografi sederhana seperti ini menghasilkan output yang disebut

ciphertext. Keamanannya bergantung pada kerahasiaan algoritma penyandian tersebut,

oleh karenanya, algoritma yang digunakan harus dirahasiakan. Pada kelompok dengan jumlah besar dan anggota yang senantiasa berubah, penggunaannya akan menimbulkan masalah. Setiap ada anggota yang meninggalkan kelompok, algoritma harus diganti karena anggota ini dapat saja membocorkan algoritma.

Dalam kriptografi modern, selain memanfaatkan algoritma juga menggunakan kunci (key) untuk memecahkan masalah tersebut. Proses enkripsi dan dekripsi dilakukan dengan menggunakan kunci.

Kunci adalah sebuah nilai yang terlepas dari pesan asli (plaintext) dan mengontrol algoritma yang dipakai. Penerapan algoritma akan menghasilkan output

plaintext ciphertext

plaintext


(17)

yang berbeda sesuai dengan kunci yang digunakan. Merubah kunci berarti juga merubah output dari algoritma yang dipakai. Setelah ciphertext dihasilkan, ciphertext tersebut dapat diubah kembali menjadi pesan asli dengan algoritma dekripsi dan dengan kunci yang sama seperti yang digunakan

Pada saat enkripsi setiap anggota memiliki kuncinya masing-masing yang digunakan untuk proses enkripsi dan dekripsi yang akan dilakukannya. Dengan demikian ada sedikit perubahan yang dilakukan pada mekanisme yang digambarkan pada gambar 2.1 menjadi seperti gambar 2.2 berikut ini.

Gambar 2.2 Kriptografi berbasis kunci

Mekanisme kriptografi seperti ini dinamakan kriptografi berbasis kunci. Dengan demikian kriptosistemnya akan terdiri atas algoritma dan kunci, serta

plaintext dan ciphertextnya.

Persamaan matematisnya menjadi seperti berikut,

Ee(m) = c

Dd(c) = m

Dd(Ee(m)) = m dengan,

e = kunci enkripsi d = kunci dekripsi

2.3 Algoritma Substitusi

Teknik substitusi adalah sebuah teknik enkripsi yang menggunakan metode pertukaran huruf pada plaintext dengan huruf lainnya atau dengan angka atau dengan simbol tertentu. Jika plaintext dilihat sebagai sebuah urutan angka biner, maka

kunci

plaintext ciphertext

plaintext

Enkripsi Dekripsi


(18)

substitusi dilakukan dengan menukar per bit plaintext dengan per bit ciphertext. Di bawah ini ada beberapa contoh teknik substitusi.

2.3.1 Caesar Cipher

Teknik enkripsi substitusi yang pertama kali dikenal dan paling sederhana ditemukan oleh Julius Caesar. Metode yang digunakan dalam caesar cipher ini adalah dengan mempertukarkan setiap huruf dari plaintext dengan huruf lain dengan interval 3 huruf dari huruf palintext. Sebagai contoh dapat dilihat di bawah ini :

Plain : meet me after the toga party

Cipher : PHHW PH DIWHU WKH WRJD SDUWB

Teknik semacam ini sangat memungkinkan cryptanalyst untuk melakukan pemecahan kode ciphertext dengan mudah dengan mencoba 25 kunci yang memungkinkan. Metode yang dapat dipakai oleh cryptanalyst dengan mencoba seluruh kemungkinan yang ada ini sering disebut metode brute-force. Tiga karakteristik dari teknik caesar cipher yang memungkinkan brute-force cryptanalysis adalah :

• Algoritma enkripsi dan dekripsi telah diketahui • Hanya ada 25 kemungkinan kunci yang dapat dicoba • Bahasa dari plaintext diketahui dan mudah dikenali.

2.3.2 Monoalphabetic Cipher

Dengan hanya 25 kemungkinan kunci, Caesar cipher dapat dikatakan tidaklah aman. Dengan penambahan interval kunci dapat menambah juga keamanan dari ciphertext yang dihasilkan. Model caesar cipher adalah sebagai berikut.

Plain : a b c d e f g h i j k l m n o p q r s t u v w x y z

Cipher : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Pengembangan dari caesar cipher adalah dengan memungkinkan adanya permutasi dari ke-26 huruf alphabet yang ada. Maka, akan ada 26! kemungkinan.


(19)

Bagaimanapun juga jika cryptanalyst dapat mengetahui bentuk alami dari plaintext, kemudian cryptanalyst dapat mengeksploitasi susunan bahasa yang digunakan. Sebagai contoh dari teknik ini adalah dengan melihat bagaimana seorang cryptanalyst mencoba memecahkan ciphertext berikut :

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ VUEPHZHMDAXHZOWSFPAPPDTSVPQUZWYMXUZUHSX

EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ

Pada langkah awal, frekuensi relatif dari huruf-huruf tersebut dapat ditentukan dan dibandingan dengan frekuensi distribusi standar untuk bahasa Inggris, seperti pada tabel 2.1 dibawah ini :

Tabel 2.1 Frekuensi huruf-huruf dalam text Bahasa Inggris

Huruf Frekuensi

Relatif (%) Huruf

Frekuensi

Relatif (%) Huruf

Frekuensi Relatif (%) E T R N I O A S D 12.75 9.25 8.50 7.75 7.75 7.50 7.25 6.00 4.25 L H C F U M P Y G 3.75 3.50 3.50 3.00 3.00 2.75 2.75 2.25 2.00 W V B K X Q J Z 1.50 1.50 1.25 0.50 0.50 0.50 0.25 0.25

Kemudian, frekuensi relatif dapat ditetapkan dalam persentase seperti di bawah ini :

P Z S U O 13.13 11.67 8.33 8.33 7.50 H D E V X 5.83 5.00 5.00 4.17 4.17 F W Q T A 3.33 3.33 2.50 2.50 1.67 B G Y I J 1.67 1.67 1.67 0.83 0.83 C K L N R 0.00 0.00 0.00 0.00 0.00


(20)

M 6.67

Dengan membandingkan frekuensi relatif dan tabel distribusi standar, sedikit kelihatan bahwa huruf P dan Z ekuivalen dengan huruf e dan t, tapi belum dapat ditentukan pasangan yang tepat dari keduanya. Huruf S, U, O, M dan H mempunyai frekuensi relatif yang tinggi dan mungkin ekuivalen dengan r, n, i, o, a, s. Huruf dengan frekuensi relatif terendah, yaitu A, B, G, Y, I, J kelihatannya sesuai dengan w, v, b, k, x, q, j, z. Dari point ini, ada banyak cara yang dapat dilakukan untuk melanjutkan proses cryptanalysis. Salah satu cara yang lebih efektif adalah dengan melihat frekuensi dari kombinasi dua buah huruf. Hal ini sering disebut sebagai

digraph. Secara umum, digraph yang paling sering ditemui dalam bahasa Inggris

adalah th. Di dalam ciphertext yang dimiliki, digraph yang sering ditemui adalah ZW (muncul tiga kali). Jadi, dapat memasangkan Z dengan t dan W dengan h. Kemudian, dengan hipotesis yang lebih seksama dapat juga dipasangkan P dengan e. Sekarang urutan ZWP dapat diterjemahkan dengan “the”. Maka, sejauh ini beberapa huruf telah dipasangkan, sehingga dapat tersusun sebagai berikut :

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXATZ t a e e te a that e e a a VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYNXUZUHSX e t ta t ha e ee a e th t a EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ e e e tat e the t

Dari percobaan tersebut telah diidentifikasi 4 huruf, tetapi telah menjadi pesan yang mulai sedikit jelas. Dengan analisa yang lebih lanjut dan menggunakan metode trial

and error, maka dapat dibentuk pesan yang utuh dengan tidak lupa menambahkan spasi sehingga menjadi berikut :


(21)

direct contacts have been made with political representatives of the viet cong in moscow

Teknik monoalphabetic ini cukup mudah untuk dipecahkan karena teknik ini menggambarkan frekuensi dari data asli. Langkah yang diambil untuk dapat meningkatkan keamanan adalah dengan menerapkan lebih dari satu substitusi untuk huruf tunggal. Hal ini sering disebut sebagai homophone. Sebagai contoh, huruf e dapat disubstitusikan dengan simbol cipher yang berbeda, misalnya 16, 17, 18 atau 21.

Model Substitusi Mono Alphabet pada penelitian ini dilakukan dengan menukarkan karakter pada plainteks dengan padanan yang terdapat pada tabel, artinya jika huruf plaintextnya adalah Z maka ciphertextnya adalah 6. Substitusi bersifat

case-sensitive artinya substitusi huruf kapital akan berbeda dengan huruf non-kapital. Tabel

perubahannya adalah sebagai berikut pada Tabel 2.2 :

Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet

Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext

a b c d e f g h i j k l m n o p q r z A d t j k m n [ ] < > , ; : . & ? y z A B C D E F G H I J K L M N O P ^ * ( Z B ) - + = a i Y r } u v b c W X Y Z 0 1 2 3 4 5 6 7 8 9 { } [ ] 9 8 7 6 D F H J K L M N 5 3 1 0 O P ? / ! @ # $ % ^ & * ( ) - + = ~ q w x I y S T U V W X 2 4 E G ~


(22)

s t U / ! @ Q R S { e f : ; < Q R H

Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet (lanjutan)

Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext

v w x # $ % T U V g s C > , . l o p

Proses pengubahannya dilakukan karakter per karakter. Sebagai contoh, misalnya terdapat suatu pesan awal : Raja Salomo, maka bentuk ciphernya adalah : ez]z~fz>:,:. Hal ini dapat dilihat pada gambar 2.3 dibawah ini :

Gambar 2.3 Substitusi Mono Alphabetic

Untuk mengubahnya kembali ke bentuk awal (plaintext) maka dilakukan dengan cara membalik proses perubahannya berdasarkan tabel yang sudah ada.

2.4 Secure Hash Algorithm (SHA)

Secure Hash Algorithm (SHA) adalah salah satu fungsi satu arah yang dibuat oleh NIST (National Institute of Standards and Technology) dan digunakan bersama DSS (Digital Signature Standard). Oleh NSA (National Security Agency), SHA dinyatakan sebagai standard fungsi hash satu arah. SHA didasarkan pada algoritma MD4 yang dibuat oleh Ronald L. Rivest dari MIT. SHA disebut aman (secure) karena algoritma ini dirancang sedemikian rupa sehingga secara komputasi tidak mungkin menemukan pesan yang berkoresponden dengan message digest yang diberikan.

Raja Salomo


(23)

Fungsi satu arah (one-way function) sering disebut juga sebagai fungsi hash, message

digest, fingerprint, fungsi kompresi, dan Message Authentication Code (MAC).

Fungsi ini biasanya diperlukan bila diperlukan pengambilan “sidik jari” dari suatu pesan. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari, fungsi ini diharapkan memiliki kemampuan yang serupa dengan sidik jari manusia, dimana “sidik jari” pesan diharapkan menunjuk ke satu pesan dan tidak dapat menunjuk kepada pesan lainnya. Dinamakan sebagai fungsi kompresi karena biasanya, masukan fungsi satu arah ini selalu lebih besar daripada keluarannya, sehingga seolah-olah mengalami kompresi. Namun kompresi hasil fungsi ini tidak dapat dikembalikan ke asalnya sehingga disebut sebagai fungsi satu arah. Dinamakan sebagai message digest karena seolah-olah merupakan inti sari pesan. Namun kondisi sebenarnya tidak demikian sebab inti sari pesan seharusnya merupakan ringkasan pesan yang masih dapat dipahami maknanya, sedangkan kondisi yang terjadi adalah kebalikannya, bahkan dengan mengetahui sidik jari ini, justru pihak-pihak yang tidak berkepentingan tidak mengetahui pesan aslinya.(Munir, 2007:35)

Fungsi hash satu arah H beroperasi pada pesan M dengan panjang sembarang, dan menghasilkan keluaran h yang selalu sama panjangnya. Maka dapat ditulis H(M) = h. Sebagai contoh, untuk MD5, masukan pesan bisa sembarang panjangnya, sedangkan keluarannya selalu sepanjang 128 bit. Fungsi hash harus memiliki sifat-sifat sebagai berikut:

1. Diberikan M, untuk menghitung H(M) = h.

2. Diberikan h, sangat sulit atau mustahil mendapatkan M sedemikian sehingga H(M) = h.

3. Diberikan M, sangat sulit atau mustahil mendapatkan M’ sedemikian sehingga H(M) = H(M’). Bila diperoleh pesan M’ yang semacam ini, maka akan disebut tabrakan (collision).

4. Sangat sulit atau mustahil mendapatkan dua pesan M dan M’ sedemikian sehingga H(M) = H(M’).


(24)

Point ketiga berbeda dari point keempat, di mana pada point ketiga, sudah ada pesan tertentu M, kemudian mencari pesan lain M’ sedemikian sehingga H(M) = H(M’). Sedangkan pada point keempat, dua pesan sembarang M dan M’ yang memenuhi H(M) = H(M’) dicari. Serangan terhadap point keempat lebih mudah dari pada point ketiga. Karena sangat mungkin M dan M’ yang diperoleh tidak memiliki arti pada point keempat. Sedangkan serangan pada point ketiga lebih sulit karena baik pesan M maupun pesan M’ harus memiliki arti yang diinginkan. Keberhasilan serangan terhadap point keempat tidak berarti algoritma telah dipecahkan. Namun keberhasilan serangan terhadap point ketiga berarti berakhirnya riwayat algoritma fungsi hash.

Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 264 bit (2.147.483.648 gigabyte) dan menghasilkan message digest yang panjangnya 160 bit. Proses tersebut dapat ditunjukkan pada Gambar 2.4 berikut ini.

Gambar 2.4 Pembuatan message digest dengan algoritma SHA

Langkah-langkah dalam pembuatan message digest secara garis besar adalah sebagai berikut:

1. Penambahan bit-bit pengganjal (padding bits).

100..0 Message

K bits

L x 512 bits = N x 32 bits

Padding (1 to 512 bits)

Message length ( K mod 264)

. . .

. . .

Y

0

Y

1

Y

q

Y

L-1

512 bits 512 bits 512 bits 512 bits

512 512 512 512

160

160 160 160

160-bits digest

CV1 CVq CVL-1

IV


(25)

Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satu bit) kongruen dengan 448 modulo 512. Ini berarti panjang pesan setelah ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 ini muncul karena SHA memproses pesan dalam blok-blok yang berukuran 512. Pesan dengan panjang 448 bit tetap ditambah dengan bit-bit pengganjal. Jika bit pesan 448 bit, maka pesan tersebut ditambahi dengan 512 bit menjadi 960 bit. Maka, panjang bit-bit pengganjal adalah antara 1 sampai 512. Bit-bit-bit pengganjal terdiri dari sebuah bit-bit 1 diikuti dengan sisanya bit 0.

Contoh 1:

Pesan asal adalah huruf A capital : “A” = 0100 00012 = 4116 (panjang pesan

asal 8 bit)

Tambahan : 1000 0000 00…….(dalam biner).

Dalam bentuk hexa:

8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000 0000 0000 0000 00

Jumlah bit tambahan adalah 440 bit. Bila tambahan (440 bit) ditambahkan ke pesan asal (8 bit), maka jumlah totalnya menjadi 448 bit. Ini disebut pula sebagai kongruen dengan 448 (mod 512). Dalam contoh ini n = 1, sehingga k = 512(1)-64 = 448.

Untuk memenuhi syarat bahwa masukan SHA harus kelipatan 512 bit maka terdapat kekurangan sebanyak 64 bit. 64 bit ini diisi dengan panjang asli pesan yaitu 8 bit = 816

sehingga masukannya menjadi (dalam hexa):

4180 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

0000 0008


(26)

Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi 512 bit (perhatikan contoh 1 diatas).

3. Inisialisasi penyangga (buffer) pada message digest.

SHA membutuhkan 5 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 5 x 32 = 160 bit. Kelima penyangga ini diberi nama A,B,C,D,E. Setiap penyangga diinisialisasi dengan niai-nilai (dalam notasi

Hexa) sebagai berikut:

A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0

4. Pengolahan pesan dalam blok berukuran 512 bit.

Pesan kemudian dibagi menjadi L buah blok yang masing-masing panjangnya 512-bit (Y0 sampai YL-1). Setiap blok 512 bit diproses bersama dengan penyangga menjadi

keluaran 128-bit, dan ini disebut dengan proses HSHA. Gambaran proses HSHA


(27)

) , , (ABCDE Y K0

f

ABCDEq

A B C D

...

A B C D

+ + + +

MDq

MDq + 1

160

Yq

512

E

A B C D E

) , , (ABCDE Y K1

f

ABCDEq

) , , (ABCDE Y K79

f

ABCDEq

E

Gambar 2.5 Pengolahan blok 512 bit (Proses HSHA)

Proses HSHA terdiri dari 80 buah putaran, dan masing-masing putaran menggunakan

bilangan penambah Kt, yaitu: Putaran 0 ≤ t ≤ 19 Kt = 5A827999 Putaran 20 ≤ t ≤ 39 Kt = 6ED9EBA1 Putaran 40 ≤ t ≤ 59 Kt = 8F1BBCDC Putaran 60 ≤ t ≤ 79 Kt = CA62C1D6

Pada gambar diatas, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai message digest 160-bit dari proses HSHA ke-q. Pada awal proses, MDq

berisi nilai inisialisasi penyangga MD.

Setiap putaran menggunakan operasi dasar yang sama (dinyatakan dengan fungsi f). Operasi dasar SHA dapat ditunjukkan pada gambar 2.6.

ft

+


(28)

Gambar 2.6 Operasi dasar SHA dalam satu putaran (fungsi f)

Operasi dasar SHA yang diperlihatkan pada gambar diatas dapat ditulis dengan persamaan sebagai berikut:

a, b, c, d, e (CLS5(a) + ft(b,c,d) + e + Wt + Kt), a, CLS30(b), c, d

Keterangan:

a, b, c, d, e = Lima buah peubah penyangga 32-bit (berisi nilai penyangga A, B, C, D, E)

t = Putaran, 0 ≤ t ≤ 79

ft = Fungsi logika

CLSs = Circular left shift sebanyak s bit

Wt = Word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses

Kt = Konstanta penambah

+ = Operasi penjumlahan modulo 232

Atau dapat dinyatakan dalam kode program berikut:

for t 0 to 79 do

TEMP (a<<<5) + ft(b,c,d) + e + Wt + Kt)

S30 Wt

Kt

+

+


(29)

e d d c

c b <<< 30 b a

a TEMP endfor

dalam hal ini, lambang “<<<” menyatakan operasi pergeseran circular left shift.

Fungsi ft adalah fungsi logika yang melakuk an operasi logika bitwise. Operasi logika yang dilakukan dapat dilihat pada tabel 2.3 berikut:

Tabel 2.3 Fungsi logika ft pada setiap putaran

Putaran ft (b, c, d)

0 .. 19 (b ∧ c) ∨ (~b ∧ d) 20 .. 39 b ⊕ c ⊕ d

Tabel 2.3 Fungsi logika ft pada setiap putaran (lanjutan)

Putaran ft (b, c, d)

40 .. 59 (b ∧ c) ∨ (b ∧ d) ∨ (c ∧ d) 60 .. 79 b ⊕ c ⊕ d

Keterangan: Operator logika AND, OR, NOT, XOR masing-masing dilambangkan dengan ∧, ∨, ~, ⊕

Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang diproses, sedangkan Wt berikutnya diperoleh dari persamaan:

Wt = Wt-16 Wt-14 Wt-8 Wt-3

Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan selanjutnya algoritma melakukan proses untuk blok data berikutbya (Yq+1). Keluaran

akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E.

Secara umum, proses kerja sistem yang akan dirancang dalam penulisan tugas akhir ini dapat dilihat pada gambar 2.7.


(30)

Gambar 2.7 Algoritma sistem SHA-SMA

2.5Ancaman Keamanan

Pada kenyataannya, terdapat banyak faktor yang dapat mengancam sistem keamanan data. Ancaman-ancaman tersebut menjadi masalah terutama dengan semakin meningkatnya komunikasi data yang bersifat rahasia seperti: pemindahan dana secara elektronik kepada dunia perbankan / pengiriman dokumen rahasia pada instansi pemerintah melalui internet, dll. Untuk mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk melindungi data yag dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi.

Berdasarkan tekniknya, faktor-faktor yang dapat mengancam keamanan dapat dikelompokkan ke dalam empat jenis ancaman, yaitu:

2.4.1 Interruption

Interruption terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang

berhak (B). Interruption merupakan pola penyerangan terhadap sifat availability (ketersediaan data), yaitu data dan informasi yang berada dalam sistem komputer

Message

SMA

SHA


(31)

dirusak atau dibuang, sehinggga menjadi tidak ada dan tidak berguna. Contohnya,

hard disk yang dirusak atau memotong jalur komunikasi. Seperti terlihat pada Gambar

2.8 berikut.

Gambar 2.8 Interruption

2.4.2 Interception

Serangan ini terjadi jika pihak ketiga berhasil mendapatkan akses informasi dari dalam sistem komputer. Contohnya, dengan menyadap data yang melalui jaringan

public (wiretapping) atau menyalin secara tidak sah file atau program Interception

merupakan pola penyerangan terhadap sifat confidentially/secrecy (kerahasiaan data). Seperti terlihat pada Gambar 2.9 berikut.

Gambar 2.9 Interception

2.4.3 Modification

Pada serangan ini pihak ketiga yang tidak hanya berhasil mendapatkan akses informasi dari dalam sistem komputer, tetapi juga dapat melakukan perubahan terhadap informasi. Contohnya, merubah program berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat integrity (keaslian data). Seperti terlihat pada Gambar 2.10 berikut.

Sumber Tujuan

Normal Flow

Interruption

Sumber Tujuan

Normal Flow


(32)

Gambar 2.10 Modification

2.4.4 Fabrication

Fabrication merupakan ancaman terhadap integritas, yaitu orang yang tidak berhak

yang meniru atau memalsukan suatu objek ke dalam sistem. Contohnya, dengan menambahkan suatu record ke dalam file. Seperti terlihat pada Gambar 2.11 berikut.

Gambar 2.11 Fabrication BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Masalah

Dengan semakin berkembangnya pemanfaatan teknologi informasi dalam membantu pekerjaan di berbagai organisasi maupun pekerjaan pribadi, maka keamanan telah menjadi aspek yang sangat penting dalam suatu sistem informasi. Salah satu upaya pengamanan data pada sistem informasi yang dapat dilakukan adalah kriptografi.

Teknik kriptografi yang dapat digunakan untuk mengenkripsi data memiliki jumlah yang cukup besar. Teknik Substitusi Mono Alfabet adalah teknik Kriptografi klasik yang dilakukan sekitar tahun 50 SM oleh Julius Caesar, kaisar Roma yang menggunakannya untuk mengirim pesan-pesan rahasia. Pada zaman sekarang ini teknik Substitusi Mono Alfabet tidak dapat menyaingi kompleksitas teknik kriptografi yang lain oleh karena kesederhanaannya.

Sumber Tujuan

Normal Flow

Modification

Sumber Tujuan

Normal Flow


(33)

3.2 Penyelesaian Masalah

Berdasarkan hal diatas, maka timbul suatu gagasan untuk membangun suatu sistem keamanan yang menggunakan teknik Substitusi dengan algoritma Monoalphabetic Cipher yang dipadukan dengan Secure Hash Algorithm agar mendapatkan algoritma Substitusi yang lebih kuat tetapi tanpa menghilangkan ciri khas dari algoritma Subsitusi tersebut. Penggunaan Secure Hash Algorithm pada penelitian ini sebagai

otentikasi user. Meskipun user memiliki password untuk mendekripsi ciphertext yang

dihasilkan tetapi jika tidak memiliki file kunci maka program tidak akan mendekripsikan file terenkripsi tersebut. Sehingga algoritma utama yang dipakai bukanlah Secure Hash Algorithm tetapi Substitusi Mono Alphabet dengan demikian tidak mengubah unsur utama dari program tersebut yaitu Substitusi Mono Alphabet.

Dari data diatas dapat disimpulkan terdapat 2 proses yang dilakukan yaitu proses pengenkripsian file serta pendekripsian file terenkripsi dan otentikasi data. Pengenkripsian dan pendekripsian file dengan menggunakan algoritma Subsitusi Mono Alphabet, dan otentikasi data dengan menggunakan algoritma Secure Hash

Algorithm.

3.2.1 Proses Enkripsi Algoritma Substitusi Mono Alphabet

Untuk mengenkripsi file langkah pertama dari teknik ini adalah membuat dua buah variabel berupa string yang berisi bermacam-macam karakter yang akan digunakan untuk proses substitusi pada file yang akan dienkripsi. Kedua variabel string tersebut berbeda satu dengan yang lain tetapi memiliki jumlah karakter yang sama dan memiliki karakter yang sama pada posisi yang berlainan didalam string tersebut.

File yang akan dienkripsi tersebut kemudian akan diambil per karakter.

Karakter ini kemudian akan dicocokkan dengan salah satu karakter didalam variabel berupa string tersebut. Jika sama maka akan ditukar dengan karakter lain didalam variabel berupa string lain dan disimpan ke dalam file terenkripsi.


(34)

Untuk mendekripsi file langkah pertama dari teknik ini adalah dengan menggunakan dua buah variabel berupa string yang berisi bermacam-macam karakter yang telah digunakan untuk proses substitusi pada file terenkripsi. Kedua variabel string tersebut tersimpan didalam program sehingga tidak diketahui oleh user ataupun pihak lain yang tidak berkepentingan

File terenkripsi tersebut kemudian akan diambil karakter per karakter.

Karakter ini kemudian akan dicocokkan dengan salah satu karakter didalam variabel berupa string tersebut. Jika sama maka akan ditukar dengan karakter lain didalam variabel berupa string lain dan disimpan ke dalam file hasil dekripsi.

3.2.3 Proses Otentikasi dengan Secure Hash Algorithm

Untuk melakukan proses otentikasi maka diperlukan sesuatu yang bisa menunjukkan bahwa file yang terenkripsi adalah benar-benar file yang dikirimkan tanpa diubah oleh orang-orang yang tidak berwenang. Dalam penelitian ini sesuatu tersebut adalah nilai hash yang terdapat dalam file yang akan dienkripsi.

Secure Hash Algorithm biasanya diperlukan bila kita menginginkan

pengambilan “sidik jari” dari suatu file. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari, algoritma ini diharapkan memiliki kemampuan yang serupa dengan sidik jari manusia, dimana “sidik jari” file diharapkan menunjuk ke satu file dan tidak dapat menunjuk kepada file lainnya. Dinamakan sebagai message digest karena seolah-olah merupakan inti sari pesan. Namun kondisi sebenarnya tidak demikian sebab inti sari pesan seharusnya merupakan ringkasan pesan yang masih dapat dipahami maknanya, sedangkan kondisi yang terjadi adalah kebalikannya, bahkan dengan mengetahui sidik jari ini, justru pihak-pihak yang tidak berkepentingan tidak mengetahui pesan aslinya. (Munir, 2007:35)

Proses otentikasi dengan Secure hash Algorithm dengan membuat sebuah file kunci yang berisi dengan nilai hash dari file yang akan dienkripsi dan memasukkan nilai hash tersebut juga ke dalam file terenkripsi sehingga terdapat dua nilai yang sama. Pada saat proses pendekripsian dimulai maka aplikasi akan mencocokkan nilai


(35)

hash dari kedua file tersebut. Jika nilai tersebut cocok, maka proses pendekripsian

dimulai sedangkan jika tidak maka proses pendekripsian tidak akan dimulai.

3.3. Model Analisis Perangkat Lunak

Pemodelan dalam suatu rekayasa perangkat lunak merupakan suatu hal yang dilakukan di tahap awal. Pemodelan ini akan mempengaruhi pekerjaan – pekerjaan dalam rekayasa perangkat lunak. Pada tugas akhir ini menggunakan salah satu model perangkat lunak yaitu Pemodelan Fungsional dan Kamus Data.

3.3.1 Pemodelan Fungsional

Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana caranya agar sistem yang dibangun memiliki fungsi yang berdaya guna maksimal. Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis. Pada sistem kriptografi Substitusi Mono Alphabet dan Secure Hash Algorithm, secara garis besar terdapat tiga fungsi yaitu pembentukan kunci, enkripsi pesan dan dekripsi pesan.

Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan.


(36)

DFD adalah suatu model logika data atau proses yang dibuat untuk menggambarkan darimana asal data dan kemana tujuan data yang keluar dari sistem, dimana data disimpan, proses apa yang menghasilkan data tersebut dan interaksi antara data yang tesimpan dan proses yang dikenakan pada data tersebut. DFD menunjukan hubungan antar data pada sistem dan proses pada sistem.

DFD rinci dari perancangan sistem keamanan data menggunakan algoritma gabungan Secure Hash Algorithm (SHA) dan Substitusi Mono Alphabet (SMA) yang dirancang terdiri dari tiga level, yaitu level 0 yang dapat dilihat pada Gambar 3.1, level 1 yang dapat dilihat pada Gambar 3.2, level 2 yang dapat dilihat pada Gambar 3.3 dan Gambar 3.4.

Gambar 3.1 Diagram Konteks

Diagram Konteks di atas menggambarkan sistem secara garis besar yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang. Proses yang terjadi pada diagram konteks di atas dapat dijelaskan dengan menggunakan spesifikasi proses pada tabel 3.1 berikut :

Tabel 3.1 Spesifikasi Proses Diagram Konteks Level 0

No / Nama Proses Input Keterangan Proses Output Proses 0 / Proses

Enkripsi dan Dekripsi file dan pembuatan file

kunci

Plaintext/Ciphertext, Kunci, File Kunci SHA

Pada proses ini Plainteks ditransformasikan ke dalam bentuk ciphertext maupun sebaliknya tergantung apakah proses

Ciphertext/ Plaintext,

File Kunci

SHA, Plaintext

P.0

Proses Enkripsi dan Dekripsi file

dan pembuatan

file kunci

User Plaintext/Ciphertext, Kunci, File Kunci SHA


(37)

enkripsi atau dekripsi.

Dari Diagram Konteks diatas, Proses 0 dapat dijabarkan menjadi proses yang lebih kecil. Proses 0 dibagi lagi ke dalam 2 proses. Proses tersebut dapat dilihat pada gambar 3.2 DFD Level 1 dari Proses P.0. Berikut ini adalah uraian proses yang terjadi pada program.

Gambar 3.2 DFD Level 1 Proses P.0

Dari DFD Level 1 Proses P.0 terdapat 2 proses utama. Kedua proses ini merupakan proses yang sangat penting karena merupakan inti dari proses kriptografi dengan Substitusi Mono Alphabet dan Secure Hash Algorithm. Proses tersebut dapat diuraikan pada Tabel 3.2 berikut ini:

Tabel 3.2 Spesifikasi Proses DFD Level 1 P.0

No / Nama Proses Input Keterangan Proses Output Proses P.1/ Proses

Enkripsi

Kunci dan File

text

Proses pengubahan file

text menjadi file

terenkripsi dan

File terenkripsi

dan file kunci SHA

User

Kunci

File text

File Kunci SHA File terenkripsi

P.1 Proses Enkripsi

P.2 Proses Dekripsi Kunci

File Kunci SHA

File text


(38)

menghasilkan file kunci SHA.

Proses P.2/ Proses Dekripsi

Kunci, file kunci SHA dan file terenkripsi

Pencocokan nilai hash dan pengubahan file

terenkripsi menjadi file

text.

File Text

Berikutnya, Proses 1 dapat dijabarkan menjadi proses yang lebih kecil. Proses 1 dibagi lagi ke dalam 2 proses yaitu proses 1.1 dan proses 1.2 . Proses tersebut dapat dilihat pada gambar 3.3 DFD Level 2 dari Proses P.1. Berikut ini adalah uraian proses yang terjadi pada program. Spesifikasi Proses DFD Level 2 utnuk proses Enkripsi dapat dilihat pada Tabel 3.3.

Gambar 3.3 Diagram Level 2 untuk Enkripsi

Tabel 3.3 Spesifikasi Proses DFD Level 2 Untuk Proses Enkripsi

No / Nama Proses Input Keterangan Proses Output Proses P 1.1/ Proses

Enkripsi Substitusi Mono Alphabet (SMA)

Kunci dan File

text

Proses pengubahan file

text menjadi ciphertext

Ciphertext

Proses P 1.2/ Proses Ciphertext Pengambilan nilai hash File terenkripsi, User

Kunci

File Text

File kunci SHA

Ciphertext P 1.1 Proses enkripsi SMA P 1.2 Proses Pembentukan file kunci SHA File Terenkripsi


(39)

Pembentukan file

kunci SHA.

dan pembentukan file kunci SHA.

file kunci SHA.

Berikutnya, Proses 2 dapat dijabarkan menjadi proses yang lebih kecil. Proses 2 dibagi lagi ke dalam 2 proses yaitu proses 2.1 dan proses 2.2 . Proses tersebut dapat dilihat pada gambar 3.4 DFD Level 2 dari Proses P.1. Berikut ini adalah uraian proses yang terjadi pada program. Spesifikasi proses DFD Level 2 Untuk proses Dekripsi dapat dilihat pada Tabel 3.4.

Gambar 3.4 Diagram Level 2 untuk Dekripsi

Tabel 3.4 Spesifikasi Proses DFD Level 2 Untuk Proses Dekripsi

No / Nama Proses Input Keterangan Proses Output Proses P 2.2/ Proses

Otentikasi SHA

File terenkripsi, file kunci SHA

Pencocokan nilai hash antara file kunci dan file terenkripsi

File terenkripsi

Proses P 2.2/ Proses Dekripsi SMA

Kunci, File

terenkripsi

Pengubahan file terenkripsi menjadi file

text

File text

3.3.2. Kamus Data

User Kunci File terenkripsi File text File terenkripsi P 2.1 Proses otentikasi SHA P 2.2 Proses dekripsi SMA


(40)

Kamus data merupakan suatu data yang disusun untuk memudahkan selama 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 pangkalan data, dan membuat upaya pemeliharaan lebih bermanfaat. Kamus data juga bertindak sebagai standar tetap untuk elemen-elemen data.

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.

Tabel 3.5 merupakan kamus data yang berisikan data yang digunakan pada diagram alir data mulai dari diagram konteks, DFD level 1,dan DFD level 2 dari masing-masing proses :

Tabel 3.5 Kamus Data

Nama Tipe Data Deskripsi

Plaintext string Plaintext merupakan data yang akan

ditransformasikan menjadi

Ciphertext.

Ciphertext string Pesan hasil Enkripsi yang diinput

user yang akan didekripsi.

File kunci SHA File File yang berisi nilai hash SHA

Kunci Integer Nilai yang dimasukkan user untuk proses pengamanan data


(41)

File text File File yang akan di enkripsi

3.4 Perancangan

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 pengamanan data dengan menggunakan Substitusi Mono Alphabet dan Secure Hash Algorithm, tahap perancangan yang dilakukan mencakup perancangan arsitektur, perancangan antar muka pemakai, perancangan data dan perancangan prosedural

3.4.1 Perancangan Struktur Program

Perancangan arsitektur merupakan perancangan awal untuk mengidentifikasi subsistem dan menetapkan kerangka kerja untuk kontrol dan komunikasinya. Perancangan arsitektur bertujuan untuk membangun struktur program yang modular dan merepresentasikan keterkaitan antar modul serta memadukan struktur program, struktur data, dan mendefenisikan antarmuka yang memungkinkan data dapat mengalir pada seluruh program. Arsitektur perangkat lunak kriptogarafi dengan Substitusi Mono Alphabet dan Secure Hash Algorithm digambarkan oleh diagram pohon pada gambar 3.5.:

3.4.2. 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 perintah-perintah atau mekanisme yang digunakan pemakai untuk mengendalikan operasi dan memasukkan data. Berikut ini merupakan perancangan antar muka pemakai perangkat lunak sistem pengamanan data dengan menggunakan algoritma Substitusi Mono Alphabet dan Secure Hash Algorithm.


(42)

(43)

(44)

3.4.2.1 Tampilan Program Utama

Tampilan program utama adalah tampilan yang paling awal muncul ketika program dijalankan. Untuk user interface akan dirancang ke dalam 2 halaman tampilan, yaitu :

a. File Tab b. Help Tab

Berikut akan ditampilkan rancangan dari masing-masing bagian interface.

1. File Tab

Tampilan File Tab berisikan empat buah button yaitu : 1.1Open File Button

Mencari File yang akan di encrypt atau di decrypt. 1.2Open Key Button

Mencari Key yang akan digunakan untuk men-decrypt file. 1.3(En)Crypt Button

Memulai proses pengenkripsian file. 1.4(De)Crypt Button


(45)

Gambar 3.6 Rancangan tampilan File Tab Program

2. Help Tab

Help Tab akan digunakan untuk membantu user dalam mengoperasikan program EnDeCrypt. Rancangan Help Tab dapat dilihat pada Gambar 3.7.

Gambar 3.7 Rancangan tampilan Help Tab

Open File

Open Key

(En)Crypt (De)Crypt

How Does it work?

1-

Open a file;

Choose (En)crypt if you want to Encrypt;

Choose (De)crypt if you want to Decrypt; Don't forget insert the key. 2-

The password for Encrypt and Decrypt


(46)

3.4.3. Perancangan Struktur Data

Perancangan struktur data merupakan salah satu bagian proses dari perancangan perangkat lunak. Struktur data merupakan representasi data yang sebenarnya dalam bentuk model program/ symbol. Struktur data juga merupakan kumpulan elemen – elemen atau symbol yang membantu dalam pengidentifikasian setiap field di dalam sistem. Berikut ini struktur data pada dari perangkat lunak yang akan dibangun.

Struktur Data :

Plaintext, Ciphertext, nilai_hash, Key : Char Pesan_enkripsi_lsb, Pesan_dekripsi_lsb : Char

A, B, C, D, E : longword;

W : array[0..255] of Integer;

3.4.4 Perancangan Prosedural

Tahapan selanjutnya dalam perancangan perangkat lunak adalah tahapan design

procedural atau algoritma detail. Tahapan ini disajikan dalam bentuk prosedur dan

flowchart. Hal ini dilakukan untuk mempermudah dalam pengkodean yang akan dilakukan.


(47)

Gambar 3.8 Flowchart Program EnDeCrypt

Berikut ini tahapan prosedur dan flowchart algoritma SHA-1 dan Substitusi Mono Alphabet:

Prosedur 1. Proses Hashing SHA-1 :

{ Input : Plaintext }

{ Proses : Mengambil nilai hash dari suatu plaintext. } { Output : nilai hash dari plaintext}

Kamus Data :

mulai

Input file

Ekstensi file =.mo ?

Input key file Prosedur SHA-1

Prosedur enkripsi SMA

File terenkripsi File Kunci

selesai

Hash key file = hash file terkenkripsi?

Prosedur dekripsi SMA Hapus key file

Proses Dekripsi Proses Enkripsi

No yes

yes No


(48)

Key : Char; A, B, C, D, E : longword;

W : array[0..255] of Integer; f , k : Integer;

I : integer; temp : Integer;

Algoritma SHA-1 : 1. Input plaintext

2. Inisiasi nilai penyangga A, B, C, D, E A:=$67452301;

B:=$efcdab89; C:=$98badcfe; D:=$10325476; E:=$c3d2e1f0;

3. Membaca pesan hingga nilai End Of File tercapai

4. Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satu bit) kongruen dengan 448 modulo 512.

5. Pesan kemudian dibagi menjadi blok-blok yang masing-masing panjangnya 512-bit (Y0 sampai YL-1)

6. Begin

a A; b B; c C; d D; e E;

for i:= 0 to 79 do begin

if ( 0 ≤ i ≤ 19 ) then begin

f = (b and c) or ((not b) and d); k = 0x5A827999;


(49)

if ( 20 ≤ i ≤ 39 ) then begin

f = b xor c xor d; k = 0x6ED9EBA1; end;

if ( 40 ≤ i ≤ 59 ) then begin

f = (b and c) or (b and d) or (c and d); k = 0x8F1BBCDC;

end;

if ( 60 ≤ i ≤ 79 ) then begin

f = b xor c xor d; k = 0xCA62C1D6; end;

temp = (a <<< 5) + f + e + k + W[i]; e = d;

d = c;

c = b <<< 30; b = a;

a = temp; end;

A = A + a; B = B + b; C = C + c; D = D + d; E = E + e;

7. Pengubahan nilai A, B, C, D, dan E dijumlahkan dan diubah menjadi hexa dan dimasukkan kedalam pesan dan file kunci.


(50)

Prosedur diatas dapat dilihat juga pada flowchart dibawah ini. Gambar 3.9 adalah flowchart algoritma dari fungsi hash SHA-1 :

Gambar 3.9 Flowchart fungsi Hash SHA-1

start

Input plaintext

Membaca pesan hingga nilai EOF tercapai

Penambahan pesan dengan bit pengganjal

Pembagian pesan kedalam blok-blok

0 < i < 19 20 < i < 39 40 < i < 59

f = (b and c) or ((not b) and d); k = 0x5A827999;

f = (b and c) or (b and d) or (c and d); k = 0x8F1BBCDC

f = b xor c xor d; k = 0x6ED9EBA1

f = b xor c xor d; k = 0xCA62C1D6

A+B+C+D+E

Nilai Hash

Selesai

Proses fungsi f dan k

yes yes yes

No No No

60 < i < 79

No yes


(51)

Prosedur selanjutnya adalah prosedur proses enkripsi algoritma Substitusi Mono Alphabet. Pada prosedur ini akan mempermudah langkah dalam pengkodean nantinya. Berikut ini adalah prosedur enkripsi algoritma Substitusi Mono Alphabet :

Prosedur 2. Proses Enkripsi Algoritma Substitusi Mono Alphabet

{ Input : Plaintext}

{ Proses : Proses enkripsi data menggunakan Algoritma Substitusi Mono Alphabet}

{ Output : Ciphertext}

Kamus Data :

Plaintext : string;

x, y : string;

c : char;

Ciphertext : string;

Key : string;

Algoritma Substitusi Mono Alphabet: 1. Input plaintext.

2. Inisiasi tabel substutusi :

Plaintext a b c d e f g h i j k l m n o p q r s t u v w x Ciphertext z A d t j k m n [ ] < > , ; : . & ? / ! @ # $ % Plaintext y z A B C D E F G H I J K L M N O P Q R S T U V Ciphertext ^ * ( Z B ) - + = a i Y r } u v b c { e f g s C Plaintext W X Y Z 0 1 2 3 4 5 6 7 8 9 { } [ ] : ; < > , . Ciphertext 9 8 7 6 D F H J K L M N 5 3 1 0 O P Q R h l o p Plaintext ? / ! @ # $ % ^ & * ( ) - + = ~

Ciphertext q w x I y S T U V W X 2 4 E G ~

3. Plaintext diambil karakter per karakter dan dimasukkan ke dalam variabel c 4. c kemudian dicocokkan dengan setiap karakter pada Y


(52)

5. nilai c yang cocok dengan karakter ke sekian pada Y kemudian akan ditukar dengan karakter ke sekian pada X.

6. Nilai c kemudian akan dimasukkan ke dalam ciphertext

7. Nomor 5 sampai 8 diulangi hingga karakter di dalam plaintext habis. 8. plaintext kemudian akan dihapus dan digantikan dengan ciphertext.

Dari prosedur proses enkripsi algoritma Substitusi Mono Alphabet diatas dapat dilihat juga aliran proses pada Gambar 3.10 dibawah ini :

Gambar 3.10 Flowchart fungsi enkripsi Substitusi Mono Alphabet

mulai

Mengambil plaintext per karakter

Sama?

Akhir dari plaintext? Masukkan dalam

ciphertext yes

no

selesai

Menentukan hasil pertukaran tiap karakter sesuai tabel Untuk enkripsi

yes no

Memeriksa tiap karakter dalam tabel


(53)

Hasil proses enkripsi data algoritma Substitusi Mono Alphabet adalah ciphertext. Untuk mengetahui pesan asli, terlebih dahulu ciphertext harus ditansformasikan kembali menjadi ciphertext. Pada teorinya proses dekripsi dilakukan dengan cara membalikkan proses yang terjadi pada proses enkripsi. Prosedur berikut ini adalah prosedur proses dekripsi algoritma Substitusi Mono Alphabet :

Prosedur 3. Proses Dekripsi Algoritma Substitusi Mono Alphabet

{ Input : Plaintext}

{ Proses : Proses enkripsi data menggunakan Algoritma Substitusi Mono Alphabet}

{ Output : Ciphertext}

Kamus Data :

Plaintext : string;

x, y : string;

c : char;

Ciphertext : string;

Key : string;

Algoritma :

1. Input ciphertext.

2. Inisiasi tabel substutusi :

Plaintext a b c d e f g h i j k l m n o p q r s t u v w x Ciphertext z A d t j k m n [ ] < > , ; : . & ? / ! @ # $ % Plaintext y z A B C D E F G H I J K L M N O P Q R S T U V Ciphertext ^ * ( Z B ) - + = a i Y r } u v b c { e f g s C Plaintext W X Y Z 0 1 2 3 4 5 6 7 8 9 { } [ ] : ; < > , . Ciphertext 9 8 7 6 D F H J K L M N 5 3 1 0 O P Q R h l o p Plaintext ? / ! @ # $ % ^ & * ( ) - + = ~

Ciphertext q w x I y S T U V W X 2 4 E G ~


(54)

4. c kemudian dicocokkan dengan setiap karakter pada X

5. nilai c yang cocok dengan karakter ke sekian pada kemudian akan ditukar dengan karakter ke sekian pada Y.

6. Nilai c kemudian akan dimasukkan ke dalam plaintext.

7. Nomor 5 sampai 8 diulangi hingga karakter di dalam ciphertext habis. 8. ciphertext kemudian akan dihapus dan digantikan dengan plaintext.

Dari prosedur proses dekripsi algoritma Substitusi Mono Alphabet diatas dapat dilihat juga aliran proses pada Gambar 3.11 dibawah ini :

Gambar 3.11 Flowchart fungsi dekripsi Substitusi Mono Alphabet

mulai

Mengambil ciphertext per karakter

Sama?

Akhir dari

ciphertext?

Masukkan dalam ciphertext yes

no

selesai

Menentukan hasil pertukaran tiap karakter sesuai tabel Untuk dekripsi

yes no

Memeriksa tiap karakter dalam tabel


(55)

BAB 4

IMPLEMENTASI PERANGKAT LUNAK

4.1 Implementasi

Dari hasil perancangan sistem yang dilakukan, maka proses selanjutnya adalah tahap implementasi ke dalam bentuk program komputer. Input yang dibutuhkan pada aplikasi EnDeCrypt adalah file text (.txt). Listing Program proses Enkripsi dan Dekripsi yang menggunakan metode kriptografi algoritma Substitusi Monoalfabet dan

Secure Hash Algorithm (SHA) terlampir pada LAMPIRAN.

4.2 Tampilan Proses Enkripsi dan Dekripsi

Program EnDeCrypt dibuat sekecil mungkin agar tidak membuat user bingung dan meminimkan jumlah button yang harus diklik agar lebih efisien.Tampilan pada proses enkripsi dan dekripsi memiliki dua halaman berupa tab. Pada halaman-halaman tersebut memiliki banyak empat (4) button yang menjalankan fungsi berbeda bila

button tersebut di klik. Button tersebut antara lain Open File, Open Key File, (En)Crypt dan (De)Crypt,. Selain button tersebut terdapat juga Help Tab yang akan

menjelaskan pada user cara mengoperasikan program EnDeCrypt. Tampilan utama program EnDeCrypt terlihat seperti pada Gambar 4.1 dibawah ini.

Gambar 4.1 Tampilan utama program EnDeCrypt

Open File Button Open key File Button (En)Crypt

File Button

(De)Crypt File Button


(56)

4.2.1 Open File Button

Tampilan utama program EnDeCrypt memuat hanya satu button yang berfungsi yaitu

Open File Button. Hal ini untuk memudahkan user memulai penggunaan program

tersebut tanpa kebingungan memilih tombol.

Open File Button akan membuka open dialog yang akan membuka file yang

hendak dienkripsi. Setelah file yang hendak dienkripsi ditemukan, program akan memeriksa apakah file tersebut memiliki ekstensi .txt atau .mo. Jika file tersebut memiliki ekstensi .txt maka properties enabled (En)Crypt button akan diubah menjadi

true, sedangkan jika file tersebut memiliki ekstensi .mo maka properties enabled (De)Crypt button dan properties Open Key File button akan diubah menjadi True. Hal

ini dilakukan untuk mencegah file yang sama dienkripsi dua kali.

Sebagai contoh, untuk membuka file tes.txt yang berada di folder My

Document dengan menggunakan program dapat dilihat pada Gambar 4.2 dan Gambar

4.3 dibawah ini.


(57)

Gambar 4.3 Tampilan program EnDeCrypt setelah membuka file

4.2.2 (En)Crypt File Button

Apabila file sudah ditemukan maka konfirmasi pada user akan dilakukan untuk menegaskan pada user untuk menjaga file agar tidak jatuh ke pihak yang tidak berkepentingan. Pada konfirmasi ini disediakan dua pilihan, pilihan yang pertama adalah Yes, jika pilihan ini diklik maka proses enkripsi akan dimulai. Sedangkan pilihan yang kedua adalah No, jika pilihan ini diklik maka proses enkripsi akan dibatalkan.Konfirmasi yang dilakukan terlihat seperti Gambar 4.4 dibawah ini.

Gambar 4.4 Pesan konfirmasi enkripsi

Setelah konfirmasi dilakukan dan user memilih Yes, maka proses enkripsi dilakukan, proses enkripsi tersebut akan menghasilkan dua output yaitu file kunci dan

file terenkripsi. File kunci dan file terenkripsi tersebut akan dihasilkan pada folder

yang sama dengan file asli sedangkan file asli tersebut akan dihapus. Nama file kunci akan diberitahukan pada user setelah proses enkripsi selesai dengan menggunakan


(58)

Gambar 4.5 Pemberitahuan nama file Kunci

Setelah pemberitahuan nama file kunci pada user maka selanjutnya adalah pemberitahuan nama file terenkripsi yang dihasilkan. Karena file asli sudah dihapus oleh program EnDeCrypt dan digantikan dengan file terenkripsi, maka untuk mencegah kebingungan oleh user dilakukan pemberitahuan pada user seperti terlihat pada Gambar 4.6 dibawah ini.

Gambar 4.6 Pemberitahuan file terenkripsi pada user

Apabila pemberitahuan file kunci dan file terenkripsi pada user sudah dilaksanakan maka proses akan memberikan pemberitahuan bahwa proses enkripsi sudah berhasil seperti terlihat pada Gambar 4.7 dibawah ini.


(59)

4.2.3 Open Key File Button

Open Key File Button akan membuka open dialog yang akan mengambil file kunci

yang dipakai untuk proses dekripsi. Sebagai contoh, untuk membuka key2.tmp yang berada di folder My Document dengan menggunakan program dapat dilihat pada Gambar 4.8 dan Gambar 4.9 dibawah ini,.

Gambar 4.8 Membuka File kunci key3.tmp


(60)

Program akan memeriksa apakah file yang dipilih oleh user tersebut memiliki ekstensi .tmp atau tidak. Jika tidak maka program akan mengeluarkan pemberitahuan bahwa input bukan file kunci seperti terlihat pada gambar 4.10 dibawah ini.

Gambar 4.10 Peringatan apabila file kunci salah

4.2.4 (De)Crypt File Button

Apabila file kunci sudah ditemukan maka program akan memeriksa apakah file kunci dan file terenkripsi tersebut cocok atau tidak. Jika tidak cocok maka program EnDeCrypt akan menghapus file kunci yang tidak cocok tersebut dan memberikan pemberitahuan bahwa operasi dekripsi tidak berhasil seperti terlihat pada Gambar 4.11 dibawah ini.

Gambar 4.11 Pemberitahuan bahwa proses dekripsi tidak berhasil

Apabila file terenkripsi dan file kunci cocok maka proses dekripsi akan dimulai dan proses dekripsi tersebut akan menghasilkan satu output yaitu file orisinil dan menghapus file kunci yang digunakan pada dekripsi. Program EnDeCrypt akan


(61)

memberikan pemberitahuan bahwa proses dekripsi sudah berhasil seperti terlihat pada gambar 4.12 dibawah ini.

Gambar 4.12 Pemberitahuan bahwa proses dekripsi berhasil

4.3 Tampilan Menu Help

Selain button tersebut terdapat juga Help Tab yang akan menjelaskan pada

user cara mengoperasikan program EnDeCrypt Pada Help Tab akan terdapat sebuah

memo yang hanya bisa dibaca tetapi tidak bisa diubah oleh user untuk mencegah pihak lain memanipulasi atau mengubah isinya. Tampilan Help Tab pada program EnDeCrypt adalah seperti Gambar 4.13 dibawah ini.


(62)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab-bab terdahulu dan teori yang ada, maka dapat ditarik kesimpulan sebagai berikut :

1. Suatu sistem pengamanan data dapat dibuat dengan menggunakan dua algoritma, seperti pada penelitian ini yang menggunakan algoritma Substitusi Monoalfabet dengan algoritma Secure Hash Algorithm (SHA)

2. Sistem otentikasi yang diperoleh dengan menggunakan algoritma Secure

Hash Algorithm pada algoritma Substitusi Mono Alfabet dapat menambah

tingkat keamanan pada sistem yang dibangun.

3. Teknik penerapan pada Substitusi Mono Alphabet dan Secure Hash Algorithm hanya dapat diterapkan pada file text.

4. Teknik Kriptografi klasik masih dapat digunakan pada zaman modern sekarang ini dengan penggabungan dengan algoritma lain

5.2 Saran

Berdasarkan penelitian dan implementasi sistem yang dilakukan, maka diberikan beberapa saran sebagai berikut:

1. Untuk data atau file yang akan dienkripsi sebaiknya dihindarkan file yang datanya memiliki gambar, karena program tidak dapat membaca file gambar tersebut.


(63)

2. User diminta untuk memperhatikan besar kapasitas file yang akan diproses karena kapasistas file mempengaruhi waktu proses, kapasitas file yang besar membutuhkan waktu pross yang panjang.


(64)

DAFTAR PUSTAKA

Ariyus, Doni. 2006. ”Computer Security”. Yogyakarta : Penerbit Andi.

Hidayat, Safril. 2007. ” Perancangan Sistem Keamanan Menggunakan Algoritma Substitusi Mono Alfabet Dan One Time Pad (OTP)”. Program Studi S-1 Ilmu

Komputer USU : Tugas Akhir/Skripsi Tidak Diterbitkan.

Kessler, Gary C. 2006. ”An Overview of Cryptography”.

http://www.garykessler.net/library/crypto.html.

Matusiewicz, Krystian. 2007. “Introduction to Cryptographic Hash Function”. Diakses tanggal 17 Juni 2008.

Kurniawan, Yusuf. 2004. Keamanan Internet dan Jaringan Telekomunikasi. Bandung: Penerbit Informatika.

http:/

Munir, Rinaldi. 2004. ”Fungsi Hash dan Algoritma MD5”.

17 Juni 2008

Munir, Rinaldi. 2005. “Kriptografi Secure Hash Algorithm”.

Diakses tanggal : 25 Juni 2008.

Diakses tanggal : 04 Mei 2008.

Rakhmatsyah, Andrian. 2005. “Kajian Sistem Kriptografi Kunci Publik Berbasis

Diophantine”. br.paume.itb.ac.id/courses/ec7010/2005/andrian-report.pdf

Diakses tanggal : 03 Desember 2008

Rhee, Man Young. 1994. “Cryptography and Secure Communications”. Singapura : McGraw-Hill Book Co.

Wahana Komputer. 2005. Pemrograman Borland Delphi 7.0. Semarang : Wahana Komputer.


(65)

LAMPIRAN : LISTING PROGRAM unit UnitEnDecrypt;

interface uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls; type

TEnDeCrypt = class(TForm) OpenDialog1: TOpenDialog; BtnOpen: TBitBtn; BtnEn: TBitBtn; GroupBox1: TGroupBox; Memo1: TMemo; GroupBox2: TGroupBox; leKey: TLabeledEdit; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; BtnDe: TButton; EdFile: TEdit; EdKey: TEdit; ButtKey: TButton; OpenDialog2: TOpenDialog;

procedure BtnOpenClick(Sender: TObject); procedure BtnEnClick(Sender: TObject);

// procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

// Y: Integer);

procedure BtnDeClick(Sender: TObject); procedure ButtKeyClick(Sender: TObject); private

{ Private declarations }

procedure EnDecryptFile(pathin, pathout: string; Chave: Word);

public

{ Public declarations } end;

var

EnDeCrypt : TEnDeCrypt; f,g : text;

c,d : char; x,y : string; j : integer;


(66)

//untuk SHA

namaTemp:array[0..MAX_PATH-1] of char; namaKunci, filename, password :string; fileTemp:file;

rA,rB,rC,rD,rE:longword;

pesan:array[1..16] of longword; jlhByteSekarang,jlhByteProses:Int64; w:array[1..80] of longword;

LastPost : integer;

implementation {$R *.dfm}

function Overwrite(var data:string; temp : string):string; var

FromF, ToF: file;

NumRead, NumWritten: integer; Buf: array[1..2048] of Char; begin

Assign(FromF, temp); { Open input file } Reset(FromF,1); { Record size = 1 } Assign(ToF,data); { Open output file } Rewrite(ToF,1); { Record size = 1 } repeat

BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); Close(FromF);

Close(ToF);

deletefile(temp); end;

procedure timpa(var data : string; temp : string); var

FromF, ToF: file;

NumRead, NumWritten: integer; Buf: array[1..2048] of Char; ext,datatemp : string; begin

Assign(FromF, temp); { Open input file } Reset(FromF,1); { Record size = 1 }

//pengubahan ekstensi file ext:=extractFileExt(data); if ext='.mo' then

begin


(67)

delete(data,(length(data)-2),3); data := data + '.txt';

end else begin

datatemp := data;

delete(data,(length(data)-3),4); data := data + '.mo';

end;

Assign(ToF,data); { Open output file } Rewrite(ToF,1); { Record size = 1 } repeat

BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); namafile := data;

Close(FromF); Close(ToF);

deletefile(datatemp); deletefile(temp); end;

//untuk SHA

function RotateL(x,y:longword):longword; begin

result:= ( (x shl y) or ( (x and $ffffffff) shr (32-y) ) ); end;

function besarFile(s:string):Int64; var

berkas:HFIle; ukuran:Int64; begin

berkas:=createFile(PCHar(s),GENERIC_READ,0,nil,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0);

//jika berkas gagal dibuka maka error if berkas=INVALID_HANDLE_VALUE then begin

result:=-1; exit;

end;

//ambil informasi ttng ukuran file ukuran:=getFileSize(berkas,nil); closeHandle(berkas);

result:=ukuran; end;


(68)

procedure Hashing; var

t,i:byte; temp:longword; begin

temp:=0;

//transformasi pesan dari 16 word 32-bit //menjadi 80 word 32-bit

for i:=1 to 16 do w[i]:=pesan[i];

for t:=17 to 80 do

w[t]:=( w[t-3] xor w[t-8] xor w[t-14] xor w[t-16] ) shl 1; //proses utama dari hashing

//iterasi sebanyak 80 kali for t:=1 to 80 do

begin

if t<=20 then

temp:=( rotateL(ra,5) ) + ( (rb and rc) or ((not rb) and rc ) ) + re + w[t]+

$5a827999

else if (t>=21) and (t<=40) then

temp:= (rotateL(ra,5)) + ( rb xor rc xor rd) + re +w[t]+ $6ed9eba1

else if (t>=41) and (t<=60) then

temp:= (rotateL(ra,5)) + ((rb and rc) or (rb and rd) or (rc and rd) ) + re +

w[t]+$8f1bbcdc

else if (t>=61) and (t<=80) then

temp:= (rotateL(ra,5)) + ( rb xor rc xor rd) + re + w[t]+$ca62c1d6;

re:=rd; rd:=rc;

rc:= rotateL(rb,30); rb:=ra;

ra:=temp; end;

end;

procedure prosesHashing(fileHashing:string); var

terbaca:integer;


(1)

assign(m,key); assign(n,hashfile); reset(m);

reset(n); LastPost := 0; while not eof(m) do begin

read(m,c); read(n,d); if c <> d then begin

hashcomparing := false; break;

end else

hashcomparing := true; LastPost := LastPost + 1; end;

close(m); close(n);

deletefile(key); end;

function HashInserting(var hashdata : string; hashfile1 : string):string ;

var

hashfile2 : string; o,n,m : text;

i, tertulis : integer;

keyname :array[0..MAX_PATH-1] of char;

begin

getTempFileName(PChar(extractFIleDir(hashfile1)),PChar('key'),0 ,keyname);

assign(o,keyname);

showmessage('Your Key is ' + keyname); rewrite(o);

write(o,hashdata); close(o);

assign(m,hashfile1); assign(n,'temp.txt'); reset(m);

rewrite(n);

write(n,hashdata); WHILE NOT EOF(m) DO BEGIN

READ(m,c);

if not(eoln(m)) then begin

WRITE(n,c); end


(2)

writeln(n,c); END;

close(m); close(n);

showmessage('Your file become ' + hashfile1); overwrite(hashfile1,'temp.txt');

end;

//mengambil hash dari hashfile

function ExtractHash(var hashfile:string):string; var

m,n : text; i : integer; begin

assign(m,hashfile); assign(n,'temp1.mo'); reset(m);

rewrite(n); i:= 0;

WHILE NOT EOF(m) DO BEGIN

READ(m,c);

if i>=LastPost then begin

if not(eoln(m)) then begin

WRITE(n,c); end

else

writeln(n,c); end;

i:=i +1; END; close(m); close(n);

overwrite(hashfile,'temp1.mo'); end;

Function Caesar(var data :string):string; var temp: string;

Begin

x:='|@{1a>zKw6g&qD`Q8+d?OX(bvI=:Fi0\G.^cT<nLe)j;Z~t*f]V#o 3pMh-A5$kHlm,B%rC4y_N!s2RuY7"JxS[W/U9P}E';

y:='asbc"deA~B[C?fg,hij<L*M&N/k=lm^H-I}J(Kn;$op+qrtD%E{FG |u:v#wxzOP_QR1!2@3S)T]U4y5\6V`W7.890X>YZ';

Assign(F, data); reset(F);


(3)

//nama file sementara temp := 'temp';

Assign(G, temp); rewrite(G);

WHILE NOT EOF(F) DO BEGIN

READ(F,c);

FOR j:=1 TO LENGTH(y) DO BEGIN

IF (y[j]=c) THEN if not(eoln(f)) then WRITE(g,x[j]) else

writeln(g,x[j]); END;

END; close(f); close(g);

timpa(data, temp); end;

Function Dcaesar(data:string):string; var temp: string;

Begin

x:='|@{1a>zKw6g&qD`Q8+d?OX(bvI=:Fi0\G.^cT<nLe)j;Z~t*f]V#o 3pMh-A5$kHlm,B%rC4y_N!s2RuY7"JxS[W/U9P}E';

y:='asbc"deA~B[C?fg,hij<L*M&N/k=lm^H-I}J(Kn;$op+qrtD%E{FG |u:v#wxzOP_QR1!2@3S)T]U4y5\6V`W7.890X>YZ';

ASSIGN(F,data); //nama file sementara temp := 'temp'; Assign(G, temp); RESET(F);

REWRITE(g);

WHILE NOT EOF(F) DO BEGIN

READ(F,c);

FOR j:=1 TO length(x) DO BEGIN

IF (x[j]=c) THEN

if not(eoln(f)) then WRITE(g,y[j]) else

writeln(g,y[j]); END;

END;

CLOSE(f); CLOSE(g);


(4)

timpa(data, temp); end;

procedure TEnDeCrypt.EnDecryptFile(pathin, pathout: string; Chave: Word);

var

InMS, OutMS: TMemoryStream; cnt: Integer;

C: byte; begin

InMS := TMemoryStream.Create; OutMS := TMemoryStream.Create; try

InMS.LoadFromFile(pathin); InMS.Position := 0;

for cnt := 0 to InMS.Size - 1 DO begin

InMS.Read(C, 1);

C := (C xor not (ord(chave shr cnt))); OutMS.Write(C, 1);

end;

OutMS.SaveToFile(pathout); finally

InMS.Free; OutMS.Free;

end; end;

procedure TEnDeCrypt.BtnOpenClick(Sender: TObject); var

ext : string; begin

OpenDialog1.Execute;

EdFile.Text := OpenDialog1.FileName;

ext:=extractFileExt(opendialog1.filename); if ext='.mo' then

begin

BtnDe.enabled := false; BtnEn.Enabled := false; ButtKey.enabled := true; EdKey.enabled := true; end

else begin

BtnDe.enabled := false; BtnEn.Enabled := true; ButtKey.enabled := false; EdKey.enabled := false; end;


(5)

procedure TEnDeCrypt.BtnEnClick(Sender: TObject); var pesan,hash :string;

begin

if not fileExists(EdFile.text) then begin

MessageBox(handle,'File not found!','Warning',MB_OK); exit;

end;

IF MessageDlg('ATTENTION'+#13+

'Do not miss the password, or lose the file!', mtConfirmation, [mbYes, mbNo], 0) = mrYes THEN BEGIN

namafile := opendialog1.filename; Caesar(namafile);

EnDecryptFile(namafile, namafile, StrToInt(leKey.Text));

// procedure Hash;

prosesHashing(namafile);

pesan:=inttoHex(rA,8)+inttoHex(rB,8)+inttoHex(rC,8)+ inttoHex(rD,8)+inttoHex(rE,8);

Hash := pesan;

HashInserting(hash,namafile); //end of procedure hash

ShowMessage('Operation completed successfully!'); END;

end;

procedure TEnDeCrypt.BtnDeClick(Sender: TObject); begin

namafile := opendialog1.filename; namakey := opendialog2.FileName; if not fileExists(EdFile.text) then begin

MessageBox(handle,'File not found!','Warning',MB_OK); exit;

end;

if not fileExists(EdKey.text) then begin

MessageBox(handle,'Key not found!','Warning',MB_OK); exit;

end;

if (HashComparing(namakey,namafile)) then begin

ExtractHash(namafile);

EnDecryptFile(namafile, namafile, StrToInt(leKey.Text));

DCaesar(namafile);

ShowMessage('Operation completed successfully!'); end

else

ShowMessage('File and Key does not match, Operation completed unsuccessful!');


(6)

end;

procedure TEnDeCrypt.ButtKeyClick(Sender: TObject); var

ext : string; begin

opendialog2.Execute;

EdKey.text := opendialog2.FileName;

ext:=extractFileExt(opendialog2.filename); if ext <> '.tmp' then

begin

showmessage('input is not a file key!'); btnDe.Enabled := false;

end else

BtnDe.Enabled := true; end;