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
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,
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
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.
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
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
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
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
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
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
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)
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{}[]:;<>,.?/!@#$%^&*()-+= ~.
.
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
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
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.
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
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
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
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 :
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 :
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
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
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
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
0Y
1Y
qY
L-1512 bits 512 bits 512 bits 512 bits
512 512 512 512
160
160 160 160
160-bits digest
CV1 CVq CVL-1
IV
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
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
)
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
+
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
+
+
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
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
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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.
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
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;
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
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
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
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
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 ~
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
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
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.
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