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 2009
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
PERSETUJUAN
Judul Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: IMPLEMENTASI SECURE HASH ALGORITHM (SHA) DAN SUBSTITUSI MONO ALPHABET DALAM SISTEM PENGAMANAN DATA : SKRIPSI : RAJA SALOMO TARIGAN : 041401055 : SARJANA (S1) ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Februari 2009
Komisi Pembimbing Pembimbing 2
:
Ir. Elviawaty MZ, MT, MM NIP. 132 306 873
Pembimbing 1
Maya Silvi Lydia,BSc,MSc NIP . 132 299 349
Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer FMIPA USU Ketua,
Prof. Dr. Muhammad Zarlis NIP 131570434 Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
PERNYATAAN
IMPLEMENTASI SECURE HASH ALGORITHM (SHA) DAN SUBSTITUSI MONO ALFABET DALAM SISTEM PENGAMANAN DATA
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebut sumbernya.
Medan, Februari 2009
RAJA SALOMO TARIGAN 041401055
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
PENGHARGAAN
Segala puji dan syukur penulis panjatkan ke hadirat Tuhan Yesus Kristus, dengan limpahan karunia-Nya tugas akhir ini berhasil diselesaikan dalam waktu yang ditetapkan. Ucapan terima kasih saya sampaikan kepada Ibu Maya Silvi Lydia ,BSc. ,MSc. dan kak Ir. Elviawaty MZ, MT, MM selaku pembimbing yang telah banyak memberikan panduan dan kepercayaan penuh kepada saya untuk menyempurnakan kajian ini. Serta, kepada Bapak Drs. Sawaluddin, MIT dan Bapak M. Umar T, ST selaku pembanding yang dengan saran dan kritiknya telah banyak membantu dalam tugas akhir ini. Panduan ringkas, padat dan professional telah diberikan kepada saya agar dapat menyelesaikan tugas ini. Ucapan terimakasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syahriol Sitorus, S.Si, M.I.T, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, Semua dosen pada Departemen Ilmu Komputer FMIPA USU, Pegawai di Ilmu Komputer FMIPA USU, Angkatan 2003 yaitu Kak Ita dan Bang Safril yang menjadi teman diskusi penulis selama menyusun skripsi,rekan-rekan kuliah Angkatan 2004 khususnya Kom B dan orang-orang yang sangat berharga didalam hidup saya : Yung Yung, Mpok Umar, Tina, Vera dan Andika. Teristimewa kepada Ayahanda Simson Tarigan, Ibunda Santa Rosa br. Sebayang, adik saya Samuel Tarigan, kakak saya Gracia H.E Tarigan yang telah memberikan doa, dorongan, perhatian dan kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya semenjak penulis dilahirkan hingga menyelesaikan tugas akhir ini. Semoga Tuhan Yesus memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian, serta kerja samanya kepada penulis dalam menyelesaikan tugas akhir ini. Akhirnya penulis berharap bahwa tugas akhir ini bermanfaat terutama kepada penulis maupun para pembaca serta semua pihak yang berhubungan dengannya. Penulis menyadari sepenuhnya bahwa kajian ini sangat jauh dari sempurna. Oleh karena itu kritik dan saran yang membangun sangat diharapkan demi perbaikan.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
ABSTRAK
Penggunaan data digital dalam dunia sekarang ini sudah meliputi hampir semua aspek. Salah satu upaya pengamanan data digital yang dapat dilakukan adalah kriptografi. Teknik kriptografi klasik seperti Substitusi Mono Alphabet tidak pernah digunakan lagi karena tidak dapat menyaingi kompleksitas teknik kriptografi yang lain oleh karena kesederhanaannya. Oleh karena itu timbul suatu gagasan untuk menggunakan kembali algoritma kriptografi klasik seperti Substitusi Mono Alphabet dengan cara menggabungkannya dengan algoritma modern tanpa menghilangkan sifat asli algoritma tersebut. Dengan digunakan algoritma gabungan antara Secure Hash Algorithm dan Substitusi Mono Alphabet diharapkan akan menghasilkan algoritma yang lebih tangguh tanpa menghilangkan sifat asli dari Substitusi Mono Alphabet. Implementasi dari penggabungan
dua algoritma tersebut adalah suatu sistem
pengamana yang dinamakan EnDeCrypt. EnDeCrypt mampu mengenkripsi file text dan mendekripsinya kembali tanpa menghilangkan sifat asli dari Substitusi Mono Alphabet.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
IMPLEMENTATION SECURE HASH ALGORITHM (SHA) AND MONO ALPHABETIC SUBSTITUTION IN DATA SECURITY SYSTEM
ABSTRACT
The use of digital data in the world right now has covered almost every aspect in life. One way to keep the data safe are by using Cryptography. Classical cryptography technique like Mono Alphabetic Substitution has never been used anymore because of its simplicity. The idea to reuse the classical cryptography technique like Mono Alphabetic Substitution was come up by combine it with modern cryptographic algorithm without removed its original nature. Using Secure Hash Algorithm and Mono Alphabetic Subsitution, better and tougher algorithm are expected without remove the original nature of Mono Alphabetic Substitution. The implementation from combination of that algorithms is a security system called EnDeCrypt. EnDeCrypt can encrypt text file and decrypt it back without losing the original nature of Mono Alphabetic Substitution.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
DAFTAR ISI Halaman Persetujuan
ii
Pernyataan
iii
Penghargaan
iv
Abstrak
v
Abstract
vi
Daftar Isi
vii
Daftar Tabel
ix
Daftar Gambar
x
BAB 1
1
PENDAHULUAN
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
22
Penyelesaian Masalah
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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
LISTING PROGRAM
54
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Daftar Tabel Tabel Tabel Tabel Tabel Tabel
2.1 2.2 2.3 3.1 3.2
Frekuensi huruf-huruf dalam text Bahasa Inggris Daftar Pertukaran Substitusi Mono Alphabet Fungsi logika ft pada setiap putaran Spesifikasi Proses Diagram Konteks Level 0 Spesifikasi Proses DFD Level 1 P.0
9 11 19 26 27
Tabel Tabel Tabel
3.3 3.4 3.5
Spesifikasi Proses DFD Level 2 Untuk Proses Enkripsi Spesifikasi Proses DFD Level 2 Untuk Proses Dekripsi Kamus Data
28 29 30
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Daftar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 3.1 3.2 3.3 3.4 3.5
Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar Gambar
3.6 3.7 3.8 3.9 3.10 3.11 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13
Mekanisme Kriptografi Kriptografi berbasis kunci Substitusi Mono Alphabetic Pembuatan message digest dengan algoritma SHA Pengolahan blok 512 bit (Proses HSHA) Operasi dasar SHA dalam satu putaran (fungsi f) Algoritma sistem SHA-SMA Interruption Interception Modification Fabrication Diagram Konteks DFD Level 1 Proses P.0 Diagram Level 2 untuk Enkripsi Diagram Level 2 untuk Dekripsi Arsitektur Program Kriptogafi Substitusi Mono Alphabet dan Secure Hash Algorithm Rancangan tampilan File Tab Program Rancangan tampilan Help Tab Flowchart Program EnDeCrypt Flowchart fungsi Hash SHA-1 Flowchart fungsi enkripsi Substitusi Mono Alphabet Flowchart fungsi dekripsi Substitusi Mono Alphabet Tampilan utama program EnDeCrypt Membuka File tes.txt Tampilan program EnDeCrypt setelah membuka file Pesan konfirmasi enkripsi Pemberitahuan nama file Kunci Pemberitahuan file terenkripsi pada user Pemberitahuan bahwa proses enkripsi berhasil Membuka File kunci key3.tmp Tampilan program EnDeCrypt setelah membuka file Peringatan apabila file kunci salah Pemberitahuan bahwa proses dekripsi tidak berhasil Pemberitahuan bahwa proses dekripsi berhasil Tampilan Help Tab
6 7 12 14 16 17 19 20 20 21 21 26 27 28 30 33 34 35 36 40 42 44 45 46 47 47 48 48 48 49 49 50 50 51 51
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Dengan semakin berkembangnya pemanfaatan teknologi informasi dalam membantu pekerjaan di berbagai organisasi maupun pekerjaan pribadi, maka keamanan telah menjadi aspek yang sangat penting dalam suatu sistem informasi.
Salah satu upaya pengamanan data pada sistem informasi yang dapat dilakukan adalah kriptografi. Kriptografi merupakan pembelajaran terhadap teknik matematis yang terkait dengan aspek keamanan suatu sistem informasi, kerahasiaan (Privacy/Confidentiality), integritas (Integrity), otentikasi (Authentication), dan pembuktian yang tak tersangkal (Non-Repudiation). Keempat aspek tersebut merupakan dasar tujuan dari suatu sistem kriptografi.
Banyak sekali teknik kriptografi yang dapat digunakan untuk mengenkripsi data. Salah satu teknik yang dipergunakan dalam kriptografi adalah teknik Substitusi Mono Alfabet dan Secure Hash Algorithm. Teknik Substitusi Mono Alfabet adalah teknik Kriptografi klasik yang dilakukan sekitar tahun 50 SM oleh Julius Caesar, kaisar Roma yang menggunakannya untuk mengirim pesan-pesan rahasia. Pada zaman sekarang ini teknik Substitusi Mono Alfabet tidak dapat menyaingi kompleksitas teknik kriptografi yang lain oleh karena kesederhanaannya. Oleh karena itu, maka timbul suatu gagasan untuk membangun suatu sistem keamanan yang menggunakan teknik Substitusi Mono Alfabet yang dipadukan dengan Secure Hash Algorithm agar mendapatkan algoritma Substitusi Mono Alfabet yang lebih kuat. Pada tugas akhir ini hanya akan dibahas salah satu metode kriptografi yaitu Secure Hash Algorithm (SHA) dan Substitusi Mono Alfabet. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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{}[]:;<>,.?/!@#$%^&*()-+= ~. .
1.4
Tujuan Penulisan Tugas Akhir
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 Melakukan pengujian terhadap program yang telah dibuat.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 Berisikan rangkuman dari laporan tugas akhir.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
BAB 2
TINJAUAN TEORITIS
2.1 Definisi Kriptografi
Menurut Ariyus (2006:77), Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata “kriptografi” dibagi menjadi dua, yaitu kripto
dan graphia. Kripto
berarti secret (rahasia) dan Graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data dengan metode tertentu, dan pelakunya disebut cryptographer. Kriptografi disebut sebagai ilmu karena didalamnya terdapat metode (rumusan) yang digunakan, dan dikatakan sebagai seni karena karena dalam membuat suatu teknik kriptografi itu sendiri merupakan ciri tersendiri dari si pembuat dan memerlukan teknik khusus dalam mendisainnya. Sedangkan cryptanalysis adalah suatu ilmu dan seni memecahkan ciphertext menjadi plaintext tanpa melalui cara yang seharusnya dan orang yang melakukannya disebut cryptanalyst.
Menurut Kessler (2006:3), adapun tujuan sistem kriptografi adalah sebagai berikut : a. Authentication Proses menguji identitas seseorang. b. Privacy/Confidentiality Memastikan bahwa tidak ada yang dapat membaca pesan kecuali penerima yang dituju. c. Integrity Memastikan penerima yang menerima pesan tidak diubah dengan cara apapun. d. Non-repudiation Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Mekanisme yang membuktikan bahwa pengirim benar-benar mengirimkan pesan tersebut.
2.2 Proses Kriptografi
Urutan proses kerja kriptografi secara umum dapat digambarkan pada Gambar 2.1 sebagai berikut:
plaintext
ciphertext Enkripsi
plaintext Dekripsi
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 Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.
kunci plaintext
kunci ciphertext
Enkripsi
plaintext Dekripsi
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 Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
substitusi dilakukan dengan menukar per bit plaintext dengan per bit ciphertext. Di bawah ini ada beberapa contoh teknik substitusi. 2.3.1 Caesar Cipher
Teknik enkripsi substitusi yang pertama kali dikenal dan paling sederhana ditemukan oleh Julius Caesar. Metode yang digunakan dalam caesar cipher ini adalah dengan mempertukarkan setiap huruf dari plaintext dengan huruf lain dengan interval 3 huruf dari huruf palintext. Sebagai contoh dapat dilihat di bawah ini : Plain : meet me after the toga party Cipher : PHHW PH DIWHU WKH WRJD SDUWB
Teknik semacam ini sangat memungkinkan cryptanalyst untuk melakukan pemecahan kode ciphertext dengan mudah dengan mencoba 25 kunci yang memungkinkan. Metode yang dapat dipakai oleh cryptanalyst dengan mencoba seluruh kemungkinan yang ada ini sering disebut metode brute-force. Tiga karakteristik dari teknik caesar cipher yang memungkinkan brute-force cryptanalysis adalah :
• Algoritma enkripsi dan dekripsi telah diketahui • Hanya ada 25 kemungkinan kunci yang dapat dicoba • Bahasa dari plaintext diketahui dan mudah dikenali.
2.3.2 Monoalphabetic Cipher
Dengan hanya 25 kemungkinan kunci, Caesar cipher dapat dikatakan tidaklah aman. Dengan penambahan interval kunci dapat menambah juga keamanan dari ciphertext yang dihasilkan. Model caesar cipher adalah sebagai berikut.
Plain : a b c d e f g h i j k l m n o p q r s t u v w x y z Cipher : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Pengembangan dari caesar cipher adalah dengan memungkinkan adanya permutasi dari ke-26 huruf alphabet yang ada. Maka, akan ada 26! kemungkinan. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 Frekuensi
Huruf
Huruf
Relatif (%)
Frekuensi Relatif (%)
E
12.75
L
3.75
T
9.25
H
3.50
R
8.50
C
3.50
N
7.75
F
3.00
I
7.75
U
3.00
O
7.50
M
2.75
A
7.25
P
2.75
S
6.00
Y
2.25
D
4.25
G
2.00
Huruf
Frekuensi Relatif (%)
W
1.50
V
1.50
B
1.25
K
0.50
X
0.50
Q
0.50
J
0.25
Z
0.25
Kemudian, frekuensi relatif dapat ditetapkan dalam persentase seperti di bawah ini :
P
13.13
H
5.83
F
3.33
B
1.67
C
0.00
Z
11.67
D
5.00
W
3.33
G
1.67
K
0.00
S
8.33
E
5.00
Q
2.50
Y
1.67
L
0.00
U
8.33
V
4.17
T
2.50
I
0.83
N
0.00
O
7.50
X
4.17
A
1.67
J
0.83
R
0.00
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 :
it
was
disclosed
yesterday
that
several
informal
but
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 casesensitive artinya substitusi huruf kapital akan berbeda dengan huruf non-kapital. Tabel perubahannya adalah sebagai berikut pada Tabel 2.2 : Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet Plaintext
Ciphertext
Plaintext
Ciphertext
Plaintext
Ciphertext
Plaintext
Ciphertext
a
z
y
^
W
9
?
q
b
A
z
*
X
8
/
w
c
d
A
(
Y
7
!
x
d
t
B
Z
Z
6
@
I
e
j
C
B
0
D
#
y
f
k
D
)
1
F
$
S
g
m
E
-
2
H
%
T
h
n
F
+
3
J
^
U
i
[
G
=
4
K
&
V
j
]
H
a
5
L
*
W
k
<
I
i
6
M
(
X
l
>
J
Y
7
N
)
2
m
,
K
r
8
5
-
4
n
;
L
}
9
3
+
E
o
:
M
u
{
1
=
G
p
.
N
v
}
0
q
&
O
b
[
O
r
?
P
c
]
P
~ ~
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
s
/
Q
{
:
Q
t
!
R
e
;
R
U
@
S
f
<
H
Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet (lanjutan) Plaintext
Ciphertext
Plaintext
Ciphertext
Plaintext
Ciphertext
v
#
T
g
>
l
w
$
U
s
,
o
x
%
V
C
.
p
Plaintext
Ciphertext
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 : Raja Salomo
ez]z~fz>:,: 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 Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Fungsi satu arah (one-way function) sering disebut juga sebagai fungsi hash, message digest, fingerprint, fungsi kompresi, dan Message Authentication Code (MAC).
Fungsi ini biasanya diperlukan bila diperlukan pengambilan “sidik jari” dari suatu pesan. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari, fungsi ini diharapkan memiliki kemampuan yang serupa dengan sidik jari manusia, dimana “sidik jari” pesan diharapkan menunjuk ke satu pesan dan tidak dapat menunjuk kepada pesan lainnya. Dinamakan sebagai fungsi kompresi karena biasanya, masukan fungsi satu arah ini selalu lebih besar daripada keluarannya, sehingga seolah-olah mengalami kompresi. Namun kompresi hasil fungsi ini tidak dapat dikembalikan ke asalnya sehingga disebut sebagai fungsi satu arah. Dinamakan sebagai message digest karena seolah-olah merupakan inti sari pesan. Namun kondisi sebenarnya tidak demikian sebab inti sari pesan seharusnya merupakan ringkasan pesan yang masih dapat dipahami maknanya, sedangkan kondisi yang terjadi adalah kebalikannya, bahkan dengan mengetahui sidik jari ini, justru pihak-pihak yang tidak berkepentingan tidak mengetahui pesan aslinya.(Munir, 2007:35)
Fungsi hash satu arah H beroperasi pada pesan M dengan panjang sembarang, dan menghasilkan keluaran h yang selalu sama panjangnya. Maka dapat ditulis H(M) = h. Sebagai contoh, untuk MD5, masukan pesan bisa sembarang panjangnya, sedangkan keluarannya selalu sepanjang 128 bit. Fungsi hash harus memiliki sifat-sifat sebagai berikut:
1.
Diberikan M, untuk menghitung H(M) = h.
2.
Diberikan h, sangat sulit atau mustahil mendapatkan M sedemikian sehingga H(M) = h.
3.
Diberikan M, sangat sulit atau mustahil mendapatkan M’ sedemikian sehingga H(M) = H(M’). Bila diperoleh pesan M’ yang semacam ini, maka akan disebut tabrakan (collision).
4.
Sangat sulit atau mustahil mendapatkan dua pesan M dan M’ sedemikian sehingga H(M) = H(M’).
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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. Message length ( K mod 264)
Padding (1 to 512 bits) L x 512 bits = N x 32 bits K bits
Message 512 bits
512 bits
Y0
IV
HSHA
512 bits
...
Y1
160
CV1
HSHA
512 bits
...
Yq
512
512 160
100..0
YL-1
512
160
HSHA
CVq
512
160
HSHA
CVL-1 160-bits digest
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). Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 bitbit pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah 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
2. Penambahan nilai panjang pesan semula.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 diperlihatkan pada gambar 2.5.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Yq MDq 512
A
B
C
D
E
ABCDE ← f ( ABCDE , Yq , K 0 )
A
B
C
D
E
ABCDE ← f ( ABCDE , Yq , K 1 )
... A
C
B
D
E
ABCDE ← f ( ABCDE , Yq , K 79 )
+
+
+
+
160
MDq + 1
Gambar 2.5 Pengolahan blok 512 bit (Proses HSHA) Proses HSHA terdiri dari 80 buah putaran, dan masing-masing putaran menggunakan bilangan penambah Kt, yaitu: Putaran 0 ≤ t ≤ 19 Kt = 5A827999 Putaran 20 ≤ t ≤ 39 Kt = 6ED9EBA1 Putaran 40 ≤ t ≤ 59 Kt = 8F1BBCDC Putaran 60 ≤ t ≤ 79 Kt = CA62C1D6 Pada gambar diatas, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai message digest 160-bit dari proses HSHA ke-q. Pada awal proses, MDq berisi nilai inisialisasi penyangga MD.
Setiap putaran menggunakan operasi dasar yang sama (dinyatakan dengan fungsi f). Operasi dasar SHA dapat ditunjukkan pada gambar 2.6.
A
B
D
C ft
E
+
Raja Salomo Tarigan S5 : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
+
S30
A
B
C
D
+
Wt
+
Kt
E
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)
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 melakukan operasi logika bitwise. Operasi logika yang dilakukan dapat dilihat pada tabel 2.3 berikut: Tabel 2.3 Fungsi logika ft pada setiap putaran Putaran
ft (b, c, d)
0 .. 19
(b ∧ c) ∨ (~b ∧ d)
20 .. 39
b⊕c⊕d
Tabel 2.3 Fungsi logika ft pada setiap putaran (lanjutan) Putaran
ft (b, c, d)
40 .. 59
(b ∧ c) ∨ (b ∧ d) ∨ (c ∧ d)
60 .. 79
b⊕c⊕d
Keterangan: Operator logika AND, OR, NOT, XOR masing-masing dilambangkan dengan ∧, ∨, ~, ⊕
Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang diproses, sedangkan Wt berikutnya diperoleh dari persamaan: Wt = Wt-16 ⊕ Wt-14 ⊕ Wt-8 ⊕ Wt-3 Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan selanjutnya algoritma melakukan proses untuk blok data berikutbya (Yq+1). Keluaran akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E.
Secara umum, proses kerja sistem yang akan dirancang dalam penulisan tugas akhir ini dapat dilihat pada gambar 2.7. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Message
SMA
SHA
ciphertext
File kunci
Gambar 2.7 Algoritma sistem SHA-SMA
2.5 Ancaman 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 Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.
Sumber
Tujuan Interruption
Normal Flow
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. Tujuan
Sumber
Interception
Normal Flow
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.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Tujuan
Sumber
Modification
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. Sumber
Fabrication
Tujuan
Normal Flow
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. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.
3.2.2 Proses Dekripsi Algoritma Substitusi Mono Alphabet Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Untuk mendekripsi file langkah pertama dari teknik ini adalah dengan menggunakan dua buah variabel berupa string yang berisi bermacam-macam karakter yang telah digunakan untuk proses substitusi pada file terenkripsi. Kedua variabel string tersebut tersimpan didalam program sehingga tidak diketahui oleh user ataupun pihak lain yang tidak berkepentingan File terenkripsi tersebut kemudian akan diambil karakter per karakter. Karakter ini kemudian akan dicocokkan dengan salah satu karakter didalam variabel berupa string tersebut. Jika sama maka akan ditukar dengan karakter lain didalam variabel berupa string lain dan disimpan ke dalam file hasil dekripsi.
3.2.3 Proses Otentikasi dengan Secure Hash Algorithm
Untuk melakukan proses otentikasi maka diperlukan sesuatu yang bisa menunjukkan bahwa file yang terenkripsi adalah benar-benar file yang dikirimkan tanpa diubah oleh orang-orang yang tidak berwenang. Dalam penelitian ini sesuatu tersebut adalah nilai hash yang terdapat dalam file yang akan dienkripsi. Secure Hash Algorithm biasanya diperlukan bila kita menginginkan pengambilan “sidik jari” dari suatu file. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari, algoritma ini diharapkan memiliki kemampuan yang serupa dengan sidik jari manusia, dimana “sidik jari” file diharapkan menunjuk ke satu file dan tidak dapat menunjuk kepada file lainnya. Dinamakan sebagai message digest karena seolah-olah merupakan inti sari pesan. Namun kondisi sebenarnya tidak demikian sebab inti sari pesan seharusnya merupakan ringkasan pesan yang masih dapat dipahami maknanya, sedangkan kondisi yang terjadi adalah kebalikannya, bahkan dengan mengetahui sidik jari ini, justru pihak-pihak yang tidak berkepentingan tidak mengetahui pesan aslinya. (Munir, 2007:35) Proses otentikasi dengan Secure hash Algorithm dengan membuat sebuah file kunci yang berisi dengan nilai hash dari file yang akan dienkripsi dan memasukkan nilai hash tersebut juga ke dalam file terenkripsi sehingga terdapat dua nilai yang sama. Pada saat proses pendekripsian dimulai maka aplikasi akan mencocokkan nilai Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.
3.3.1.1 Data Flow Diagram ( DFD ) dan Spesifikasi Proses
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.
P.0 User
Plaintext/Ciphertext, Kunci, File Kunci SHA
Proses Enkripsi dan Dekripsi file dan pembuatan file kunci
Ciphertext/Plaintext, File Kunci SHA, Plaintext
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 Plaintext/Ciphertext, Pada proses ini Plainteks Ciphertext/ Enkripsi Dekripsi pembuatan kunci
dan Kunci, File Kunci ditransformasikan file dan SHA file
ke Plaintext,
dalam bentuk ciphertext File maupun
Kunci
sebaliknya SHA,
tergantung apakah proses Plaintext
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.
Kunci
User
P.1 Proses Enkripsi
File text File terenkripsi File Kunci SHA
P.2 Proses Dekripsi
Kunci File Kunci SHA
File terenkripsi File text
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 Proses Enkripsi
P.1/
Input
Proses Kunci dan File text
Keterangan Proses
Output
Proses pengubahan file File terenkripsi text
menjadi
terenkripsi
file dan file kunci dan SHA
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
menghasilkan file kunci SHA. Proses
P.2/
Proses Kunci, file kunci
Dekripsi
Pencocokan nilai hash File Text
SHA dan file
dan
pengubahan
file
terenkripsi
terenkripsi menjadi 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. Kunci
File Text
User
P 1.1 Proses enkripsi SMA Ciphertext
File Terenkripsi File kunci SHA
P 1.2 Proses Pembentukan file kunci SHA
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 Kunci dan File
Proses pengubahan file Ciphertext
Enkripsi
Substitusi text
text menjadi ciphertext
Mono
Alphabet
(SMA)
Proses P 1.2/ Proses Ciphertext
Pengambilan nilai hash File terenkripsi,
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Pembentukan
file
dan
kunci SHA.
pembentukan
file file kunci SHA.
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.
User
P 2.1 Proses otentikasi SHA
File terenkripsi File Kunci SHA
File terenkripsi
Kunci
P 2.2 Proses dekripsi SMA
File text
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 File terenkripsi,
Pencocokan nilai hash File terenkripsi
Otentikasi SHA
antara file kunci dan file
file kunci SHA
terenkripsi Proses P 2.2/ Proses Kunci, File
Pengubahan
Dekripsi SMA
terenkripsi menjadi file
terenkripsi
file File text
text
3.3.2. Kamus Data Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 masingmasing 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 terenkripsi
File
File yang berisi ciphertext.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
File text
3.4
File
File yang akan di enkripsi
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 perintahperintah atau mekanisme yang digunakan pemakai untuk mengendalikan operasi dan memasukkan data. Berikut ini merupakan perancangan antar muka pemakai perangkat lunak sistem pengamanan data dengan menggunakan algoritma Substitusi Mono Alphabet dan Secure Hash Algorithm. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.1 Open File Button Mencari File yang akan di encrypt atau di decrypt. 1.2 Open 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 Memulai proses pendekripsian file.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Open File
Open Key
(En)Crypt
(De)Crypt
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.
How Does it work?
1Open a file; Choose (En)crypt if you want to Encrypt; Choose (De)crypt if you want to Decrypt; Don't forget insert the key. 2The password for Encrypt and Decrypt 3-
Gambar 3.7 Rancangan tampilan Help Tab Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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. Secara keseluruhan flowchart program EnDeCrypt dapat dilihat pada Gambar 3.8 :
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
mulai
Input file Proses Enkripsi
No
Ekstensi file =.mo ?
Prosedur SHA-1
yes
Proses Dekripsi
Input key file
File Kunci
Hash key file = hash file terkenkripsi?
Prosedur enkripsi SMA
No
yes
Hapus key file File terenkripsi Prosedur dekripsi SMA
selesai 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
:
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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; end; Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
if ( 20 ≤ i ≤ 39 ) then begin f = b xor c xor d; k = 0x6ED9EBA1; end; if ( 40 ≤ i ≤ 59 ) then begin f = (b and c) or (b and d) or (c and d); k = 0x8F1BBCDC; end; if ( 60 ≤ i ≤ 79 ) then begin f = b xor c xor d; k = 0xCA62C1D6; end; temp = (a <<< 5) + f + e + k + W[i]; e = d; d = c; c = b <<< 30; b = a; a = temp; end; A = A + a; B = B + b; C = C + c; D = D + d; E = E + e; 7. Pengubahan nilai A, B, C, D, dan E dijumlahkan dan diubah menjadi hexa dan dimasukkan kedalam pesan dan file kunci.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Prosedur diatas dapat dilihat juga pada flowchart dibawah ini. Gambar 3.9 adalah flowchart
algoritma
dari
fungsi
hash
SHA-1
:
start
Input plaintext Membaca pesan hingga nilai EOF tercapai
Penambahan pesan dengan bit pengganjal Pembagian pesan kedalam blok-blok Proses fungsi f dan k
0 < i < 19
No
yes
f = (b and c) or ((not b) and d);
No
No
40 < i < 59
20 < i < 39 yes
No
60 < i < 79 yes
yes
f = b xor c xor d;
f = (b and c) or (b
f = b xor c xor d;
k = 0x6ED9EBA1
and d) or (c and d);
k = 0xCA62C1D6
k = 0x8F1BBCDC
k = 0x5A827999;
A+B+C+D+E
Nilai Hash
Selesai
Gambar 3.9 Flowchart fungsi Hash SHA-1
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 Kamus Data
: Ciphertext} :
Plaintext
: string;
x, y
: string;
c
: char;
Ciphertext
: string;
Key
: string;
Algoritma Substitusi Mono Alphabet: 1. Input plaintext.
2. Inisiasi tabel substutusi : Plaintext
a b c d e f g h i j k l m n o p q r s t u v w x
Ciphertext
z A d t j k m n [ ] < > , ; : . & ? / ! @ # $ %
Plaintext
y z A B C D E F G H I J K L M N O P Q R S T U V
Ciphertext
^ * ( Z B ) - + = a i Y r } u v b c { e f g s C
Plaintext
W X Y Z 0 1 2 3 4 5 6 7 8 9 { } [ ] : ; < > , .
Ciphertext
9 8 7 6 D F H J K L M N 5 3 1 0 O P Q R h l o p
Plaintext
? / ! @ # $ % ^ & * ( ) - + =
Ciphertext
q w x I y S T U V W X 2 4 E G ~
~
3. Plaintext diambil karakter per karakter dan dimasukkan ke dalam variabel c 4. c kemudian dicocokkan dengan setiap karakter pada Y Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 :
mulai
Menentukan hasil pertukaran tiap karakter sesuai tabel Untuk enkripsi Mengambil plaintext per karakter
Memeriksa tiap karakter dalam tabel
Sama?
no
yes Masukkan dalam ciphertext
no
Akhir dari plaintext? yes
selesai Gambar 3.10 Flowchart fungsi enkripsi Substitusi Mono Alphabet Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 Kamus Data
: Ciphertext} :
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 ~
~
3. ciphertext diambil karakter per karakter dan dimasukkan ke dalam variabel c Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 : mulai
Menentukan hasil pertukaran tiap karakter sesuai tabel Untuk dekripsi Mengambil ciphertext per karakter
Memeriksa tiap karakter dalam tabel
Sama?
no
yes Masukkan dalam ciphertext
no
Akhir dari ciphertext? yes
selesai Gambar 3.11 Flowchart fungsi dekripsi Substitusi Mono Alphabet Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.
(En)Crypt File Button
Open File Button Open key File Button (De)Crypt File Button
Gambar 4.1 Tampilan utama program EnDeCrypt
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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.2 Membuka File tes.txt
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
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 messagebox seperti terlihat pada Gambar 4.5 di bawah ini. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Gambar 4.5 Pemberitahuan nama file Kunci
Setelah pemberitahuan nama file kunci pada user maka selanjutnya adalah pemberitahuan nama file terenkripsi yang dihasilkan. Karena file asli sudah dihapus oleh program EnDeCrypt dan digantikan dengan file terenkripsi, maka untuk mencegah kebingungan oleh user dilakukan pemberitahuan pada user seperti terlihat pada Gambar 4.6 dibawah ini.
Gambar 4.6 Pemberitahuan file terenkripsi pada user Apabila pemberitahuan file kunci dan file terenkripsi pada user sudah dilaksanakan maka proses akan memberikan pemberitahuan bahwa proses enkripsi sudah berhasil seperti terlihat pada Gambar 4.7 dibawah ini.
Gambar 4.7 Pemberitahuan bahwa proses enkripsi berhasil
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
4.2.3 Open Key File Button
Open Key File Button akan membuka open dialog yang akan mengambil file kunci yang dipakai untuk proses dekripsi. Sebagai contoh, untuk membuka key2.tmp yang berada di folder My Document dengan menggunakan program dapat dilihat pada Gambar 4.8 dan Gambar 4.9 dibawah ini,.
Gambar 4.8 Membuka File kunci key3.tmp
Gambar 4.9 Tampilan program EnDeCrypt setelah membuka file Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
Program akan memeriksa apakah file yang dipilih oleh user tersebut memiliki ekstensi .tmp atau tidak. Jika tidak maka program akan mengeluarkan pemberitahuan bahwa input bukan file kunci seperti terlihat pada gambar 4.10 dibawah ini.
Gambar 4.10 Peringatan apabila file kunci salah
4.2.4 (De)Crypt File Button
Apabila file kunci sudah ditemukan maka program akan memeriksa apakah file kunci dan file terenkripsi tersebut cocok atau tidak. Jika tidak cocok maka program EnDeCrypt akan menghapus file kunci yang tidak cocok tersebut dan memberikan pemberitahuan bahwa operasi dekripsi tidak berhasil seperti terlihat pada Gambar 4.11 dibawah ini.
Gambar 4.11 Pemberitahuan bahwa proses dekripsi tidak berhasil
Apabila file terenkripsi dan file kunci cocok maka proses dekripsi akan dimulai dan proses dekripsi tersebut akan menghasilkan satu output yaitu file orisinil dan menghapus file kunci yang digunakan pada dekripsi. Program EnDeCrypt akan
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
memberikan pemberitahuan bahwa proses dekripsi sudah berhasil seperti terlihat pada gambar 4.12 dibawah ini.
Gambar 4.12 Pemberitahuan bahwa proses dekripsi berhasil
4.3 Tampilan Menu Help
Selain button tersebut terdapat juga Help Tab yang akan menjelaskan pada user cara mengoperasikan program EnDeCrypt Pada Help Tab akan terdapat sebuah memo yang hanya bisa dibaca tetapi tidak bisa diubah oleh user untuk mencegah pihak lain memanipulasi atau mengubah isinya. Tampilan Help Tab pada program EnDeCrypt adalah seperti Gambar 4.13 dibawah ini.
Gambar 4.13 Tampilan Help Tab
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pembahasan dan evaluasi dari bab-bab terdahulu dan teori yang ada, maka dapat ditarik kesimpulan sebagai berikut :
1. Suatu sistem pengamanan data dapat dibuat dengan menggunakan dua algoritma, seperti pada penelitian ini yang menggunakan algoritma Substitusi Monoalfabet dengan algoritma Secure Hash Algorithm (SHA) 2. Sistem otentikasi yang diperoleh dengan menggunakan algoritma Secure Hash Algorithm pada algoritma Substitusi Mono Alfabet dapat menambah tingkat keamanan pada sistem yang dibangun. 3. Teknik penerapan pada Substitusi Mono Alphabet dan Secure Hash Algorithm hanya dapat diterapkan pada file text. 4. Teknik Kriptografi klasik masih dapat digunakan pada zaman modern sekarang ini dengan penggabungan dengan algoritma lain
5.2 Saran
Berdasarkan penelitian dan implementasi sistem yang dilakukan, maka diberikan beberapa saran sebagai berikut:
1. Untuk data atau file yang akan dienkripsi sebaiknya dihindarkan file yang datanya memiliki gambar, karena program tidak dapat membaca file gambar tersebut. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
2. User diminta untuk memperhatikan besar kapasitas file yang akan diproses karena kapasistas file mempengaruhi waktu proses, kapasitas file yang besar membutuhkan waktu pross yang panjang.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
DAFTAR PUSTAKA Ariyus, Doni. 2006. ”Computer Security”. Yogyakarta : Penerbit Andi. Hidayat, Safril. 2007. ” Perancangan Sistem Keamanan Menggunakan Algoritma Substitusi Mono Alfabet Dan One Time Pad (OTP)”. Program Studi S-1 Ilmu Komputer USU : Tugas Akhir/Skripsi Tidak Diterbitkan.
Kessler, Gary C. 2006. ”An Overview of Cryptography”. http://www.garykessler.net/library/crypto.html. Diakses tanggal 17 Juni 2008.
Kurniawan, Yusuf. 2004. Keamanan Internet dan Jaringan Telekomunikasi. Bandung: Penerbit Informatika. Matusiewicz, Krystian. 2007. “Introduction to Cryptographic Hash Function”. http://www.ics.mq.edu.au/~kmatus/HashFunctions-NTU2007.pdf. Diakses tanggal 17 Juni 2008 Munir, Rinaldi. 2004. ”Fungsi Hash dan Algoritma MD5”. http://kur2003.if.itb.ac.id/file/fungsihashdoc. Diakses tanggal : 25 Juni 2008. Munir, Rinaldi. 2005. “Kriptografi Secure Hash Algorithm”. http://kur2003.if.itb.ac.id/file/SHA.doc. Diakses tanggal : 04 Mei 2008. Rakhmatsyah, Andrian. 2005. “Kajian Sistem Kriptografi Kunci Publik Berbasis Diophantine”. br.paume.itb.ac.id/courses/ec7010/2005/andrian-report.pdf Diakses tanggal : 03 Desember 2008 Rhee, Man Young. 1994. “Cryptography and Secure Communications”. Singapura : McGraw-Hill Book Co. Wahana Komputer. 2005. Pemrograman Borland Delphi 7.0. Semarang : Wahana Komputer.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
LAMPIRAN : LISTING PROGRAM unit UnitEnDecrypt; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, Buttons, ExtCtrls; type TEnDeCrypt = class(TForm) OpenDialog1: TOpenDialog; BtnOpen: TBitBtn; BtnEn: TBitBtn; GroupBox1: TGroupBox; Memo1: TMemo; GroupBox2: TGroupBox; leKey: TLabeledEdit; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; BtnDe: TButton; EdFile: TEdit; EdKey: TEdit; ButtKey: TButton; OpenDialog2: TOpenDialog; procedure BtnOpenClick(Sender: TObject); procedure BtnEnClick(Sender: TObject); // procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, // Y: Integer); procedure BtnDeClick(Sender: TObject); procedure ButtKeyClick(Sender: TObject); private { Private declarations } procedure EnDecryptFile(pathin, pathout: string; Chave: Word); public { Public declarations } end; var EnDeCrypt f,g c,d x,y j namafile,
: TEnDeCrypt; : text; : char; : string; : integer; data, namakey : string;
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
//untuk SHA namaTemp:array[0..MAX_PATH-1] of char; namaKunci, filename, password :string; fileTemp:file; rA,rB,rC,rD,rE:longword; pesan:array[1..16] of longword; jlhByteSekarang,jlhByteProses:Int64; w:array[1..80] of longword; LastPost : integer;
implementation {$R *.dfm} function Overwrite(var data:string; temp : string):string; var FromF, ToF: file; NumRead, NumWritten: integer; Buf: array[1..2048] of Char; begin Assign(FromF, temp); { Open input file } Reset(FromF,1); { Record size = 1 } Assign(ToF,data); { Open output file } Rewrite(ToF,1); { Record size = 1 } repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); Close(FromF); Close(ToF); deletefile(temp); end;
procedure timpa(var data : string; temp : string); var FromF, ToF: file; NumRead, NumWritten: integer; Buf: array[1..2048] of Char; ext,datatemp : string; begin Assign(FromF, temp); { Open input file } Reset(FromF,1); { Record size = 1 }
//pengubahan ekstensi file ext:=extractFileExt(data); if ext='.mo' then begin datatemp := data; Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
delete(data,(length(data)-2),3); data := data + '.txt'; end else begin datatemp := data; delete(data,(length(data)-3),4); data := data + '.mo'; end; Assign(ToF,data); { Open output file } Rewrite(ToF,1); { Record size = 1 } repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); namafile := data; Close(FromF); Close(ToF); deletefile(datatemp); deletefile(temp); end;
//untuk SHA function RotateL(x,y:longword):longword; begin result:= ( (x shl y) or ( (x and $ffffffff) shr (32-y) ) ); end;
function besarFile(s:string):Int64; var berkas:HFIle; ukuran:Int64; begin berkas:=createFile(PCHar(s),GENERIC_READ,0,nil,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0); //jika berkas gagal dibuka maka error if berkas=INVALID_HANDLE_VALUE then begin result:=-1; exit; end; //ambil informasi ttng ukuran file ukuran:=getFileSize(berkas,nil); closeHandle(berkas); result:=ukuran; end; Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
procedure Hashing; var t,i:byte; temp:longword; begin temp:=0; //transformasi pesan dari 16 word 32-bit //menjadi 80 word 32-bit for i:=1 to 16 do w[i]:=pesan[i];
for t:=17 to 80 do w[t]:=( w[t-3] xor w[t-8] xor w[t-14] xor w[t-16] ) shl 1; //proses utama dari hashing //iterasi sebanyak 80 kali for t:=1 to 80 do begin if t<=20 then temp:=( rotateL(ra,5) ) + ( (rb and rc) or ((not rb) and rc ) ) + re + w[t]+ $5a827999 else if (t>=21) and (t<=40) then temp:= (rotateL(ra,5)) + ( rb xor rc xor rd) + re +w[t]+ $6ed9eba1 else if (t>=41) and (t<=60) then temp:= (rotateL(ra,5)) + ((rb and rc) or (rb and rd) or (rc and rd) ) + re + w[t]+$8f1bbcdc else if (t>=61) and (t<=80) then temp:= (rotateL(ra,5)) + ( rb xor rc xor rd) + re + w[t]+$ca62c1d6;
re:=rd; rd:=rc; rc:= rotateL(rb,30); rb:=ra; ra:=temp; end; end; procedure prosesHashing(fileHashing:string); var terbaca:integer; i,posisiByte,index:byte; Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
pjngPesan:Int64; begin pjngPesan:=besarFile(fileHashing)*8; //buka file untuk proses assignFile(fileTemp,fileHashing); fileMode:=0; //arahkan pointer ke awal file reset(fileTemp,1);
rA:=$67452301; rB:=$efcdab89; rC:=$98badcfe; rD:=$10325476; rE:=$c3d2e1f0; repeat //baca pesan dari fileHashing hingga //end of file tercapai //inisialisasi pesan dengan nilai 0 for i:=1 to 16 do pesan[i]:=0; //baca fileHashing sebanyak 512 bit blockRead(fileTemp,pesan,sizeof(pesan),terbaca); jlhByteSekarang:=jlhByteSekarang+terbaca; //yang terbaca tidak sampai 512 bit (64 * 8 ) if terbaca<>64 then begin //yang terbaca <=448 bit ( 56 * 8 ) if terbaca<56 then begin //jika yang terbaca <448 bit atau //56 byte maka lakukan penambahan //bit pengganjal //posisiByte merupakan posisi byte dari index pesan //terakhir yang terbaca posisiByte:=terbaca mod 4; //index merupakan index dari pesan //yang terakhir terisi index :=(terbaca div 4) + 1; //sisipkan bit 1 dan 0 secukupnya pesan[index]:= pesan[index] + ($00000080 shl (posisiByte*8)); Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
//simpan panjang pesan ke 64 bit terakhir //yaitu pesan[15] dan pesan[16] pesan[15]:=pjngPesan shr 32; pesan[16]:=pjngPesan and $00000000FFFFFFFF; hashing; end // yang terbaca >= 56 byte atau >=448 bit //maka lakukan penambahan bit pengganjal //hingga bit terakhir yaitu pesan[16] lalu hashing //kemudian tambahkan nilai 0 dari bit 0 sampai //bit ke 448 dan panjang pesan pada 64 bit terakhir //lalu hashing else if terbaca >= 56 then begin //posisiByte merupakan posisi byte dari index pesan //terakhir yang terbaca posisiByte:=terbaca mod 4; //index merupakan index dari pesan //yang terakhir terisi index :=(terbaca div 4) + 1; //sisipkan bit 1 dan 0 secukupnya pesan[index]:= pesan[index] + ($00000080 shl (posisiByte*8)); hashing; //proses hashing tambahan for i:=1 to 15 do pesan[i]:=0; pesan[15]:=pjngPesan shr 32; pesan[16]:=pjngPesan and $00000000FFFFFFFF; hashing; end; end else hashing; until (eof(fileTemp)); closeFile(fileTemp); end;
function HashComparing(var key : string; hashfile:string):boolean; var m,n : text; i : integer; begin Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
assign(m,key); assign(n,hashfile); reset(m); reset(n); LastPost := 0; while not eof(m) do begin read(m,c); read(n,d); if c <> d then begin hashcomparing := false; break; end else hashcomparing := true; LastPost := LastPost + 1; end; close(m); close(n); deletefile(key); end; function HashInserting(var hashdata : string; hashfile1 : string):string ; var hashfile2 : string; o,n,m : text; i, tertulis : integer; keyname :array[0..MAX_PATH-1] of char; begin getTempFileName(PChar(extractFIleDir(hashfile1)),PChar('key'),0 ,keyname); assign(o,keyname); showmessage('Your Key is ' + keyname); rewrite(o); write(o,hashdata); close(o); assign(m,hashfile1); assign(n,'temp.txt'); reset(m); rewrite(n); write(n,hashdata); WHILE NOT EOF(m) DO BEGIN READ(m,c); if not(eoln(m)) then begin WRITE(n,c); end else Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
writeln(n,c); END; close(m); close(n); showmessage('Your file become ' + hashfile1); overwrite(hashfile1,'temp.txt'); end; //mengambil hash dari hashfile function ExtractHash(var hashfile:string):string; var m,n : text; i : integer; begin assign(m,hashfile); assign(n,'temp1.mo'); reset(m); rewrite(n); i:= 0; WHILE NOT EOF(m) DO BEGIN READ(m,c); if i>=LastPost then begin if not(eoln(m)) then begin WRITE(n,c); end else writeln(n,c); end; i:=i +1; END; close(m); close(n); overwrite(hashfile,'temp1.mo'); end;
Function Caesar(var data :string):string; var temp: string; Begin x:='|@{1a>zKw6g&qD`Q8+d?OX(bvI=:Fi0\G.^cT
//nama file sementara temp := 'temp'; Assign(G, temp); rewrite(G); WHILE NOT EOF(F) DO BEGIN READ(F,c); FOR j:=1 TO LENGTH(y) DO BEGIN IF (y[j]=c) THEN if not(eoln(f)) then WRITE(g,x[j]) else writeln(g,x[j]); END;
END; close(f); close(g); timpa(data, temp); end; Function Dcaesar(data:string):string; var temp: string; Begin x:='|@{1a>zKw6g&qD`Q8+d?OX(bvI=:Fi0\G.^cT
timpa(data, temp); end; procedure TEnDeCrypt.EnDecryptFile(pathin, pathout: string; Chave: Word); var InMS, OutMS: TMemoryStream; cnt: Integer; C: byte; begin InMS := TMemoryStream.Create; OutMS := TMemoryStream.Create; try InMS.LoadFromFile(pathin); InMS.Position := 0; for cnt := 0 to InMS.Size - 1 DO begin InMS.Read(C, 1); C := (C xor not (ord(chave shr cnt))); OutMS.Write(C, 1); end; OutMS.SaveToFile(pathout); finally InMS.Free; OutMS.Free; end; end; procedure TEnDeCrypt.BtnOpenClick(Sender: TObject); var ext : string; begin OpenDialog1.Execute; EdFile.Text := OpenDialog1.FileName; ext:=extractFileExt(opendialog1.filename); if ext='.mo' then begin BtnDe.enabled := false; BtnEn.Enabled := false; ButtKey.enabled := true; EdKey.enabled := true; end else begin BtnDe.enabled := false; BtnEn.Enabled := true; ButtKey.enabled := false; EdKey.enabled := false; end;
end; Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
procedure TEnDeCrypt.BtnEnClick(Sender: TObject); var pesan,hash :string; begin if not fileExists(EdFile.text) then begin MessageBox(handle,'File not found!','Warning',MB_OK); exit; end; IF MessageDlg('ATTENTION'+#13+ 'Do not miss the password, or lose the file!', mtConfirmation, [mbYes, mbNo], 0) = mrYes THEN BEGIN namafile := opendialog1.filename; Caesar(namafile); EnDecryptFile(namafile, namafile, StrToInt(leKey.Text)); //
procedure Hash; prosesHashing(namafile); pesan:=inttoHex(rA,8)+inttoHex(rB,8)+inttoHex(rC,8)+ inttoHex(rD,8)+inttoHex(rE,8); Hash := pesan; HashInserting(hash,namafile); //end of procedure hash ShowMessage('Operation completed successfully!'); END; end; procedure TEnDeCrypt.BtnDeClick(Sender: TObject); begin namafile := opendialog1.filename; namakey := opendialog2.FileName; if not fileExists(EdFile.text) then begin MessageBox(handle,'File not found!','Warning',MB_OK); exit; end; if not fileExists(EdKey.text) then begin MessageBox(handle,'Key not found!','Warning',MB_OK); exit; end; if (HashComparing(namakey,namafile)) then begin ExtractHash(namafile); EnDecryptFile(namafile, namafile, StrToInt(leKey.Text)); DCaesar(namafile); ShowMessage('Operation completed successfully!'); end else ShowMessage('File and Key does not match, Operation completed unsuccessful!'); Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009
end; procedure TEnDeCrypt.ButtKeyClick(Sender: TObject); var ext : string; begin opendialog2.Execute; EdKey.text := opendialog2.FileName; ext:=extractFileExt(opendialog2.filename); if ext <> '.tmp' then begin showmessage('input is not a file key!'); btnDe.Enabled := false; end else BtnDe.Enabled := true; end; end.
Raja Salomo Tarigan : Implementasi Secure Hash Algorithm (SHA) Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009