• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2016

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

Copied!
76
0
0

Teks penuh

(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,

(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

(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.

(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

(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

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

(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.

(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

(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

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

(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

(22)

s

Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet (lanjutan)

Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext

v

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

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

)

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

(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

(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/ 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

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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

Gambar

Tabel Tabel
Gambar 2.1 Mekanisme kriptografi
Tabel 2.1 Frekuensi huruf-huruf dalam text Bahasa Inggris
Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet
+7

Referensi

Dokumen terkait

Pada makalah ini dibahas kondisi optimum yang dapat diperoleh ketika dilakukan secara bersamaan penambahan tinggi cerobong dan penambahan jumlah pelat penukar panas

Berdasarkan hal diatas, pada Tugas Akhir ini telah dirancang dan direalisasikan antena slot waveguide , terdiri dari delapan buah slot yang memiliki orientasi vertikal

Simulasi efek gerakan karakter manusia 3D apabila terkena sesuatu yang menimpa karakter tersebut misalnya pukulan atau tembakan akan membuat gerakan pantulan dari

(2) Jumlah kekurangan Pajak yang terutang dalam Surat Ketetapan Pajak Daerah Kurang Bayar sebagaimana dimaksud pada ayat (1) huruf a angka 1) dan angka 2) pada pasal

Beberapa penelitan yang telah dilakukan untuk meningkatkan literasi fisika melalui pengembangan bahan ajar berupa bahan pengayaan kontekstual seperti oleh Rofiah,

Usaha calon nasabah yang memang sejak awal yang akan menjadikan pertimbangan pihak bank dalam memberikan pinjaman modal usaha tersebut, selain menggunakan prinsip

Penelitian ini dilakukan untuk mengetahui perbedaan jarak I-P antara ras Mongoloid dan Kaukasoid serta jenis kelamin pria dan wanita pada mahasiswa Fakultas Kedokteran Gigi

Keseluruhan daerah dengan konsentrasi fosfat tertinggi baik saat pasang maupun surut terletak di bagian muara sungai dan sekitar muara sungai, daerah tersebut merupakan