• Tidak ada hasil yang ditemukan

Implementasi Algoritma Cipher Transposisi Dan Secure Hash Algorithm (SHA) Dalam Sistem Pengamanan Data

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Algoritma Cipher Transposisi Dan Secure Hash Algorithm (SHA) Dalam Sistem Pengamanan Data"

Copied!
69
0
0

Teks penuh

(1)

IMPLEMENTASI ALGORITMA CIPHER TRANSPOSISI DAN

SECURE HASH ALGORITHM (SHA) DALAM SISTEM

PENGAMANAN DATA

SKRIPSI

FERRY ANTONIUS SIMAMORA

061401087

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

IMPLEMENTASI ALGORITMA CIPHER TRANSPOSISI DAN

SECURE HASH ALGORITHM (SHA) DALAM SISTEM

PENGAMANAN DATA

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

FERRY ANTONIUS SIMAMORA

061401087

PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA CIPHER

TRANSPOSISI DAN SECURE HASH ALGORITHM (SHA) DALAM SISTEM PENGAMANAN DATA

Kategori : SKRIPSI

Nama : FERRY ANTONIUS SIMAMORA

Nomor Induk Mahasiswa : 061401087

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 21 Desember 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Syahriol Sitorus, S.Si, MIT Drs. Partano Siagian M.Sc

NIP. 197 103101997031004 NIP. 130 877 994

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA CIPHER TRANSPOSISI

DAN SECURE HASH ALGORITHM (SHA)

DALAM SISTEM PENGAMANAN DATA

SKRIPSI

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

Medan, Desember 2010

FERRY ANTONIUS S.

(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus, dengan limpahan karunia-Nya, sehingga saya dapat menyelesaikan penyusunan tugas akhir ini.

Ucapan terima kasih saya sampaikan kepada Bapak Drs. Partano Siagian M.Sc sebagai Dosen Pembimbing I dan Bapak Syahriol Sitorus, S.Si, MIT sebagai Dosen Pembimbing II pada penyelesain tugas akhir ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas, padat dan profesional telah diberikan kepada saya agar dapat menyelesaikan tugas ini. Selanjutnya kepada para Dosen Penguji Bapak Ir. T Ahri Bahriun, M.Sc dan Bapak Ir. Arman Sani, MT atas saran dan kritikan yang sangat berguna bagi saya. Ucapan terima kasih juga ditujukan kepada Ketua Program Studi S1 Ilmu Komputer Bapak Prof. Dr. Muhammad Zarlis, Dekan dan pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Unversitas Sumatera Utara, semua dosen Program Studi S1 Ilmu Komputer FMIPA USU, dan pegawai di FMIPA USU, angkatan 2004 dan 2005 yaitu Bang Raja Salomo dan Bang Andre Pratama yang menjadi teman diskusi penulis selama menyusun tugas akhir ini, rekan-rekan kuliah angkatan 2006 yaitu Friendly, Kadar, Pangeran, Evin, Rain, dan Handy. Teristimewa Kepada Ayah Daripen Simamora dan Ibu Rukiah Situmorang, abang saya Dantes Simamora yang telah memberikan doa, dorongan dan perhatian kepada saya.

(6)

ABSTRAK

(7)

IMPLEMENTATION OF TRANSPOSITION CIPHER ALGORITHM AND SECURE HASH ALGORITHM (SHA)

IN SYSTEM SECURITY OF DATA

ABSTRACT

Data security is one of the important aspect in the information technology. With data security, is expected information can be protected authenticity. In this writing, the

system security of datais formed by Transposition Cipher algorithm and Secure Hash

(8)

DAFTAR ISI

3.2.1 Proses Enkripsi Columnar Transposition 20 3.2.2 Proses Dekripsi Columnar Transposition 21 3.2.3 Proses Pembentukan Nilai Hash dengan SHA dan otentikasi 22

(9)
(10)

DAFTAR TABEL

Halaman

Tabel 2.1 Enkripsi Columnar Transposition 8

Tabel 2.2 Fungsi logika ft pada setiap putaran 14

Tabel 3.1 Proses Enkripsi Columnar Tranposition 21

Tabel 3.2 Proses Dekripsi Columnar Transposition 22

Tabel 4.1 Evaluasi Menu Utama 51

Tabel 4.2 Evaluasi Submenu Enkripsi 52

Tabel 4.3 Evaluasi Submenu Dekripsi 52

(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Proses Kriptografi 7

Gambar 2.2 Pembuatan message digest dengan SHA 10

Gambar 2.3 Pengolahan blok 512 bit 12

Gambar 2.4 Operasi dasar SHA dalam satu putaran (fungsi f) 13

Gambar 3.1 Arsitektur Enkripsi Sistem Keamanan Data 25

Gambar 3.2 Arsitektur Dekripsi Sistem Keamanan Data 26

Gambar 3.3 Use Case Global 27

Gambar 3.4 Use Case Enkripsi Plainteks dan Pembentukan Nilai hash 1 28

Gambar 3.5 Diagram Alir Enkripsi 28

Gambar 3.6 Use Case Pembuktian Keaslian Cipherteks dan Dekripsi Cipherteks 29

Gambar 3.7 Diagram Alir Dekripsi 30

Gambar 3.8 Struktur Program Kriptografi Columnar Transposition dan SHA 31

Gambar 3.9 Rancangan Form Utama 32

Gambar 3.10 Rancangan Form Enkripsi 33

Gambar 3.11 Rancangan Form Dekripsi 34

Gambar 3.12 Rancangan Form Help 34

Gambar 3.13 Flowchart Prosedur Enkripsi 36

Gambar 3.14 Flowchart Prosedur Dekripsi 37

Gambar 3.15 Flowchart Prosedur SHA-1 40

Gambar 3.16 Flowchart Proses fungsi f dan k 41

Gambar 4.1 Tampilan Menu Utama 42

Gambar 4.2 Tampilan Submenu Enkripsi 43

Gambar 4.3 Membuka Gambar1.JPEG 44

Gambar 4.4 Tampilan Submenu Enkripsi setelah membuka file 44

Gambar 4.5 Pemberitahuan nama file kunci 44

Gambar 4.6 Pemberitahuan proses Enkripsi selesai 45

Gambar 4.7 Tampilan Submenu Dekripsi 45

Gambar 4.8 Membuka Gambar1.JPEG 46

Gambar 4.9 Tampilan Submenu Dekripsi setelah membuka file terenkripsi 46

Gambar 4.10 Membuka file kunci 47

Gambar 4.11 Pemberitahuan bahwa ekstensi kunci valid 47

Gambar 4.12 Tampilan Submenu Dekripsi setelah membuka kedua file 48

Gambar 4.13 Pemberitahuan proses dekripsi berhasil 48

Gambar 4.14 Pemberitahuan kunci tidak cocok 48

(12)

ABSTRAK

(13)

IMPLEMENTATION OF TRANSPOSITION CIPHER ALGORITHM AND SECURE HASH ALGORITHM (SHA)

IN SYSTEM SECURITY OF DATA

ABSTRACT

Data security is one of the important aspect in the information technology. With data security, is expected information can be protected authenticity. In this writing, the

system security of datais formed by Transposition Cipher algorithm and Secure Hash

(14)

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Pada era teknologi informasi saat ini, pengiriman data dan informasi menjadi hal yang

sangat penting. Dengan adanya arus informasi yang begitu pesat, keamanan (security)

menjadi hal yang sangat penting dalam melakukan pengiriman data.

Dalam pengiriman dan penerimaan data, sering kali pengguna baik pengirim

atau penerima membutuhkan sesuatu yang dapat meyakinkan mereka bahwa data yang

diperoleh adalah data yang aman dan benar. Salah satu cara yang digunakan untuk

tujuan tersebut adalah kriptografi dengan mengenskripi data yang akan dikirim.

Tujuan dari kriptografi adalah kerahasiaan (Privacy/confidentially), integritas

(Integrity), Otentikasi (Autehntication) dan pembuktian yang tak tersangkal

(non-repudiation).

Pada proses kriptografi yang pada umumnya, pesan asli (plainteks) diubah

menjadi pesan yang tidak memiliki makna (cipherteks), yang disebut dengan proses

enkripsi. Setelah itu, cipherteks dikirim kepada penerima yang seharusnya untuk

diubah kembali menjadi plainteks. Pada proses pengiriman sering terjadi penyadapan

atau pencurian cipherteks asli oleh pihak yang tidak berhak. Cipherteks yang disadap

tersebut, oleh penyadap memiliki berbagai kemungkinan, diantaranya isi cipherteks

yang asli diubah, sehingga cipherteks yang diterima oleh penerima bukan merupakan

cipherteks yang asli. Untuk meyakinkan bahwa si penerima memang menerima

cipherteks yang asli, dibutuhkan sesuatu seperti tanda tangan pada surat.

Pada perkembangannya, kriptografi memiliki banyak teknik dalam

mengenkripsi data, diantaranya adalah Algoritma Cipher Transposisi dan Secure Hash

(15)

digunakan oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka

menggunakan alat yang namanya scytale. Algoritma Cipher Transposisi akan

digunakan untuk mengubah plainteks menjadi cipherteks. Sedangkan untuk

membuktikan bahwa cipherteks yang diterima merupakan cipherteks asli, maka

cipherteks yang asli akan diubah menjadi suatu nilai hash yang akan diubah dengan

salah satu fungsi hash yakni SHA. Cipherteks hasil enkripsi akan digabung dengan

nilai hash yang dihasilkan untuk dikirim kepada si penerima. Ketika penerima telah

menerima cipherteks dan nilai hash, cipherteks yang diterima akan diubah menjadi

nilai hash kembali untuk mencocokkan dengan nilai hash yang diterima. Apabila

keduanya sama, maka cipherteks yang diterima merupakan cipherteks yang asli, dan

sebaliknya. Oleh karena itu, timbul pemikiran untuk menggabungkan algoritma cipher

transposisi dan SHA dalam suatu sistem pengamanan data.

1.2 Rumusan Masalah

Rumusan masalah yang dibahas berdasarkan latar belakang pada subbab 1.1

sebeumnya adalah bagaimana cara mengamankan suatu data dengan menggabungkan

dua algoritma kriptografi yaitu cipher transposisi dan SHA.

1.3 Batasan Masalah

Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah dirumuskan,

maka diperlukan batasan-batasan masalah. Batasan-batasan dalam penelitian ini

adalah sebagai berikut:

1. Penelitian ini hanya membahas dua algoritma yaitu algoritma cipher

transposisi dan SHA tanpa membandingkan diantara keduanya atau dengan

algoritma lainnya.

2. Algoritma cipher transposisi yang digunakan adalah columnar transposition,

sedangkan SHA yang digunakan adalah SHA1.

3. Penelitian ini tidak mengukur secara rinci kekuatan dari sistem.

4. Sistem yang dibangun ditujukan untuk file yang bertipe biner berukuran

minimum 7 byte karaker ASCII dalam proses enkripsi dan dekripsi.

5. Sistem yang akan digunakan pada file di dalam satu komputer (stand alone).

(16)

1.4 Tujuan Penelitian

Tujuan dari perancangan aplikasi ini adalah sebagai berikut:

a. Untuk membantu pengguna dalam mengamankan data.

b. Memahami teknik pengamanan data dengan gabungan dua algoritma

kriptografi yaitu cipher transposisi dan SHA.

1.5 Manfaat Penelitian

Manfaat penelitian ini adalah sebagai berikut:

a. Penerapan algoritma cipher transposisi dan secure hash algorithm (SHA)

dalam suatu aplikasi untuk menjamin keamanan suatu data sehingga mencegah

orang-orang yang tidak berwenang untuk menggunakan atau mengubah data

tersebut.

b. Aplikasi ini dapat digunakan untuk kepentingan pribadi maupun umum.

1.6 Metode Penelitian

Dalam menyusun skripsi ini penulis melakukan beberapa metode untuk memperoleh

data atau informasi dalam menyelesaikan permasalahan. Metode yang dilakukan

adalah sebagai berikut :

1. Studi Literatur

Pada tahap ini penulis memperoleh informasi dengan mengumpulkan,

mempelajari dan membaca berbagai referensi baik itu dari buku-buku, jurnal,

makalah, internet dan berbagai sumber lainnya yang menunjang dalam

penulisan skripsi ini.

2. Analisis

Pada tahap ini akan dilakukan analisis permasalahan dan kebutuhan sistem.

3. Perancangan

Pada tahap ini akan dilakukan perancangan aplikasi enkripsi dan dekripsi.

(17)

4. Pengkodean

Pada tahap ini sistem yang telah dirancang diimplementasikan menggunakan

Borland Delphi 7.0.

5. Pengujian dan Perbaikan

Pada tahap ini dilakukan penguji kinerja aplikasi yang telah dibuat dengan

mencari kelemahan yang masih ada pada aplikasi tersebut, kemudian

memperbaikinya.

6. Penyusunan Laporan

Pada tahap ini dilakukan penyusunan laporan hasil analisis dan perancangan ke

dalam format penulisan skripsi.

1.7 Sistematika Penulisan

Sistematika penulisan tugas akhir ini dibagi menjadi lima bab, yaitu;

Bab 1 Pendahuluan

Berisikan konsep dasar penyusunan laporan tugas akhir.

Bab 2 Tinjauan Teoritis

Bab ini membahas teori yang mendukung pambahasan bab

selanjutnya.

Bab 3 Analisis dan Perancangan

Berisi analisa permasalahan dan kebutuhan serta pemodelan

secara fungsional.

Bab 4 Implementasi dan Pengujian

Berisi rangkuman implementasi sistem dan menguji kelebihan

(18)

Bab 5 Kesimpulan dan Saran

(19)

BAB 2

LANDASAN TEORI

2.1 Pengertian Kriptografi

Kriptografi (cryptography) berasal dari bahasa Yunani yang terdiri atas kata “cryptos”

yang artinya rahasia, dan “graphein” yang artinya tulisan. Berdasarkan terminologi,

kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara

mengubahnya dari satu bentuk ke bentuk lainnya yang tidak dapat dimengerti lagi

artinya. Kriptografi disebut ilmu, karena didalamnya menggunakan berbagai metode

(rumusan), dan sebagai seni, karena didalamnya membutuhkan teknik khusus daalam

mendesainnya. (Rinaldi Munir, 2006).

Kriptografi merupakan cabang ilmu dari kriptologi. Pelaku kriptografi ialah

kriptografer (cryptographer), yang bertugas untuk mengubah plainteks menjadi

cipherteks dengan algoritma dan kunci tertentu. Sedangkan lawan dari kriptografi

adalah kriptanalisis (cryptanalysis), merupakan ilmu yang memecahkan cipherteks

menjadi plainteks kembali tanpa mengatahui kunci, dan pelakunya ialah kriptanalis

(criptanalys).

Tujuan mendasar dari kripotgrafi itu sendiri adalah sebagai berikut:

a. Kerahasiaan (confindentiality)

Memastikan bahwa tidak ada yang membaca pesan selain orang yang dituju

b. Integritas data (data integrity)

Suatu layanan yang menjamin bahwa pesan yang asli tidak mengalami

perubahan.

c. Otentikasi (authentication)

Mengidentifikasi pihak-pihak yang berkomunikasi maupun mengidentifikasi

(20)

d. Nirpenyangkalan (non-repudiation)

Layanan yang mencegah terjadinya penyangkalan oleh pengirim pesan atau

penyangkalan oleh penerima pesan sudah menerima pesan.

2.2 Proses Kriptografi

Urutan proses kriptografi secara umum ditunjukkan oleh Gambar 2.1:

Plainteks cipherteks Plainteks

Gambar 2.1 Proses Kriptografi

Sebuah plainteks (p) akan diproses dengan proses enkripsi untuk menghasilkan

cipherteks (c). Setelah itu untuk memperoleh kembali plainteks (p), cipherteks (c)

diproses dengan proses dekripsi. Secara matematis dinyatakan sebagai berikut:

E(p) = c (2.1)

D(c) = p (2.2)

D(E(p)) = p (2.3)

Keamanan dari cipherteks tergantung dari algoritma yang digunakan. Jika

algoritma yang digunakan semakin kompleks, maka cipherteks akan semakin aman

atau sulit dipecahkan . sebaliknya, jika algoritma yang digunakan sederhana, maka

cipherteks akan semakin mudah dipecahkan.

2.3 Algoritma Cipher Transposisi

Algoritma cipher transposisi adalah algoritma yang mempermutasikan karakter-

karakter yang ada pada plainteks, yakni dengan menyusun ulang karakter. Pada

algoritma ini. Contoh penggunaan algoritma ini sebagai berikut:

(21)

Plainteks : KRIPTOGRAFI

Cipherteks : IFARGOTPRIK

Cipher transposisi ini memiliki berbagai macam bentuk dan algoritma, diantara

adalah cipher transposisi itu adalah Rail Fence Cipher, Route Cipher dan Columnar

Cipher. Untuk membatasi masalah, penelitian ini hanya membahas Columnar

transpostion.

2.3.1 Columnar Transposition

Columnar transposition merupakan salah satu bagian dari cipher transposisi dengan

metode kriptografi dimana pesan dituliskan berderet dari suatu panjang yang

ditetapkan, lalu dibaca kembali kolom per kolom dengan urutan pembacaan

berdasarkan suatu kata kunci. Panjang deret ditentukan oleh panjang kata kunci.

Urutan pembacaan kolom berdasarkan urutan kolom. Hal ini dijelaskan pada Tabel

2.1.

Contoh:

Plainteks : PROGRAM STUDI S1 ILMU KOMPUTER USU

Tabel 2.1 Enkripsi Columnar Transposition

P R O G R A

M S T U D I

S 1 I L M U

K O M P U T

E R P Q R S

Cipherteks : PMSKE RS1OR OTIMP GULPQ RDMUR AIUTS

Untuk memperoleh plainteks kembali, penerima pesan harus mencari jumlah

kolom dengan membagi panjang pesan dengan panjang kunci. Kemudian dia akan

dapat menulis kembali pesan dalam kolom-kolom. Selanjutnya mengurutkan

kembali kolom tersebut dengan melihat kata kunci.

(22)

Secure Hash Algorithm adalah fungsi satu arah yang dirancang oleh NIST (The

National Institute of Standard and Technology) bersama NSA (National Security

Agen). SHA dibuat berdasarkan rancangan yang sama dengan MD4 yang dibuat oleh

Profesor Ronald L. Rivest dari MIT. SHA dikatakan aman karena dirancang supaya

secara matematis tidak memungkinkan untuk memperoleh pesan asli dari tanda tangan

yang diberikan.

Fungsi satu arah sering dinamakan fungsi hash atau message digest. Disebut

sebagai message digest, karena seolah-olah merupakan inti sari pesan. Selain itu,

fungsi ini juga menghasilkan nilai yang lebih kecil dari pesan aslinya, sehingga sering

disebut juga fungsi kompresi. Namun, hasil kompresi dari fungsi ini tidak dapat

digunakan untuk memperoleh pesan aslinya kembali sehingga disebut fungsi satu

arah.

Fungsi hash (H) beroperasi pada pesan (M) yang nilainya sembarang dan

selalu menghasilkan nilai hash (h) yang selalu sama panjangnya, maka H(M) = h.

Pada SHA, masukan pesan yang masuk sembarang panjangnya, tapi keluarannya

selalu 160 bit. Sifat-sifat yang harus dimiliki fungsi hash adalah:

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

2. Diberikan h, tidak mudah untuk mendapatkan M sehingga H(M) = h.

3. Diberikan M, Sulit untuk bisa mendapatkan M’ sehingga H(M) = H(M’). Jika

diperoleh pesan M’, maka hal ini disebut collision (tabrakan).

4. Sulit untuk mendapatkan dua pesan M dan M’, sehingga H(M) = H(M’).

SHA dapat menerima pesan masukan dengan ukuran maksimum 264 bit

(2.147.483.648 gigabyte) dan selalu menghasilkan message digest dengan ukuran

tetap 160 bit. Proses pembuatan message digest dengan SHA digambarkan pada

(23)

Pesan 1000...000 Panjang Pesan

Gambar 2.2 Pembuatan message digest dengan SHA

Penjelasan langkah-langkah dari Gambar 2.2 adalah:

1. Penambahan Bit-bit Pengganjal

Pesan ditambah dengan bit pengganjal sehingga panjang pesan (dalam satuan bit)

kongruen dengan 448 modulo 512. Dengan demikian, panjang pesan setelah

ditambahkan bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. SHA

memperoses pesan dalam blok-blok yang berukuran 512.

Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit pengganjal.

Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960

bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal

terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.

2. Penambahan Nilai Panjang Pesan Semula

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.

(24)

SHA membutuhkan 5 buah penyangga (buffer) yang masing-masing panjangnya 32

bit (MD5 hanya mempunyai 4 buah penyangga). Total panjang penyangga adalah 5 ×

32 = 160 bit. Kelima penyangga menampung hasil antara nilai awal dan hasil akhir.

Kelima penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga

diinisialisasi dengan nilai-nilai (dalam notasi HEX):

A = 67452301

B = EFCDAB89

C = 98BADCFE

D = 10325476

E = C3D2E1F0.

4. Pengolahan Pesan dalam Blok Berukuran 512 bit.

Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai

YL – 1). Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran

128-bit, dan ini disebut proses HSHA. Gambaran proses HSHA diperlihatkan pada

(25)

)

Gambar 2.3 Pengolahan blok 512 bit

Proses HSHA yang diperlihatkan pada Gambar 2.3 memiliki 80 buah putaran, dimana

masing-masing putaran menggunakan bilangan penambah Kt, yaitu:

Kt = 5A827999, untuk t = 0 sampai 19

Kt = 6ED9EBA1, untuk t = 20 sampai 39

Kt = 8F1BBCDC, untuk t = 40 sampai 59

(26)

Sedangkan Yq pada Gambar 2.3 menyatakan blok 512-bit ke-q dari pesan yang

telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula.

MDq merupakan 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 sebagai fungsi f).

Operasi dasar SHA diperlihatkan pada Gambar 2.4.

ai-1 bi-1 ci-1 di-1 ei-1

ft +

+

+

+

ai bi ci di ei

Wt

Kt CLS5

CLS30

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

Operasi dasar SHA yang diperlihatkan pada Gambar 2.4 dapat ditulis dengan

persamaan 2.4.

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

dimana:

(27)

t = putaran, 0 ≤ t ≤ 79

Fungsi f pada Gambar 2.4 merupakan fungsi logika yang melakukan operasi

logika bitwise yang berbeda setelah 20 putaran. Operasi logika yang dilakukan setiap

putaran dapat dilihat pada Tabel 2.2.

Tabel 2.2 Fungsi logika ft pada setiap putaran

Catatan: operator logika AND, OR, NOT, XOR masing-masing dilambangkan

dengan ∧, ∨, ~, ⊕

Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang diproses, sedangkan

nilai Wt berikutnya didapatkan persamaan:

Wt = Wt – 16 Wt – 14 Wt – 8 Wt – 3 (2.5)

Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan

selanjutnya algoritma memproses untuk blok data berikutnya (Yq+1). Keluaran akhir

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

Putaran ft(b, c, d)

0 .. 19 (b c) (~b d)

20 .. 39 b c d

40 .. 59 (b c) (b d) (c d)

(28)

2.5 Metode Serangan Terhadap Kriptografi

Serangan (attack) adalah setiap usaha (attempt) atau percobaan yang dilakukan untuk

menemukan kunci atau menemukan plainteks dari cipherteksnya. Orang yang

melakukan serangan ini disebut kriptanalis.

Berdasarkan ketersediaan data yang ada, serangan terhadap kriptografi dapat

diklasifikasikan menjadi 8 bagian (Rinaldi Munir, 2006), yaitu:

1. Chipertext-only attack

Kriptanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi

dengan algoritma yang sama. Pada serangan ini, kriptanalisis berusaha menemukan

plainteks sebanyak mungkin atau menemukan kunci yang digunakan untuk

mengenkripsi pesan.

2. Known-plaintext attack

Beberapa pesan yang formatnya terstruktur membuka peluang kepada kriptanalis untuk

menemukan plainteks dari cipherteks yang bersesuaian.

3. Chosen-plaintext attack

Serangan jenis ini lebih hebat daripada known-plaintext attack, karena kriptanalis dapat

memilih plainteks tertentu untuk dienkripsikan, yaitu plainteks-plainteks yang lebih

mengarahkan penemuan kunci.

4. Adaptive-chosen-plaintext attack

Kasus khusus dari jenis serangan nomor Chosen-plaintext attack . Misalnya, kriptanalis

memilih blok plainteks yang besar, lalu dienkripsi, kemudian memilih blok lainnya

yang lebih kecil berdasarkan hasil serangan sebelumnya.

5. Chosen-ciphertext attack

Kriptanalis memiliki akses terhadap cipherteks yang didekripsi (misalnya terhadap

(29)

6. Chosen-text attact

Jenis serangan gabungan dari Chosen-plaintext attack dan Chosen-ciphertext attack.

7. Chosen-key attack

Kriptanalis memiliki pengetahuan mengenai hubungan antara kunci-kunci yang

berbeda, dan memilih kunci yang tepat untuk mendekripsi plainteks.

8. Rubber-hose cryptanalysis

Kriptanalis mengancam, mengirim surat gelap, atau melakukan penyiksaan sampai

orang yang memegang kunci memberinya kunci untuk mendekripsi plainteks.

2.6 Keamanan Algoritma Kriptografi

Sebuah algoritma kriptografi dikatakan aman (computationally secure) bila ia

memenuhi tiga kriteria berikut (Rinaldi Munir, 2006) :

1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi

sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik.

2. Biaya untuk memecahkan cipherteks melampaui nilai informasi yang

terkandung di dalam cipherteks tersebut.

3. Waktu yang diperlukan untuk memecahkan cipherteks melampaui lamanya

waktu informasi tersebut harus dijaga kerahasiaannya

2.7 Serangan terhadap Sistem Pengamanan Data

Serangan terhadap sistem pengamanan gabungan kedua algoritma yang akan dibangun

ini memilki 2 bagian, yaitu serangan mencari collision nilai hash dengan cipherteks

yang berbeda, dan yang kedua, serangan dengan mengubah cipherteks yang asli

(30)

1. Serangan mencari collision dengan cipherteks yang berbeda

Collision adalah suatu kondisi dimana 2 pesan yang berbeda memilki nilai hash yang

sama dengan menggunakan fungsi hash yang sama juga. Pada umumnya, serangan

dengan pencarian collision dapat menggunakan serangan secara acak (brute force).

Akan tetapi, dengan teknologi yang ada saat ini serangan ini membutuhkan komputasi

waktu yang bertahun-tahun.

Pada bulan Februari 2005, tiga orang peneliti dari Cina, Xiaoyun Wang,

Yiqun Lisa Yin, dan Hongbo Yu, mempublikasikan bahwa mereka telah berhasil

menemukan cara untuk melakukan pencarian collision fungsi SHA-1 dengan

kompleksitas 269. Ketiga orang tersebut adalah sebuah tim riset yang sudah sangat

bereputasi karena sebelumnya dapat mencari collision pada SHA-0 dengan

kompleksitas 239. Walaupun demikian kompleksitas operasi yang dibutuhkan masih

sangat besar juga (dengan menggunakan komputer yang sama dengan contoh

sebelumnya, masih akan dibutuhkan waktu sekitar 170.000 tahun, waktu yang tidak

mungkin bagi manusia).

Jika collision ditemukan, maka kemungkinan pesan yang diterima oleh si

penerima bukan pesan yang asli, karena 2 pesan yang berbeda memiliki nilai hash

yang sama.

2. Serangan dengan mengubah cipherteks asli menjadi plainteks

Serangan ini merupakan serangan dengan mengembalikan cipherteks yang asli

menjadi plainteks yang berisi informasi, dengan syarat cipherteks yang asli diubah

kembali dengan SHA menghasilkan nilai hash 2 yang sama dengan nilai hash 1.

Jika syarat tersebut terpenuhi, maka cipherteks asli dapat dipecahkan dengan

melakukan analisis frekuensi, dimana penyerang dengan mudah menyadari bahwa

cipher transposisilah yang digunakan, karena frekuensi karakter pada cipherteks

(31)

melakukan penyusunan ulang tertentu atau yang sering disebut anagram, maka

penyerang dapat mengetahu plainteks.

Penyerangan kedua ini lebih sulit, dimana penyerang harus menemukan

metode yang sama untuk menghasilkan nilai hash yang sama untuk meyakinkan

cipherteks merupakan cipherteks asli. Kemudian menemukan metode kedua untuk

(32)

BAB 3

ANALISIS DAN PERANCANGAN

Bab ini menjelaskan tentang analisis terhadap masalah yang ada berdasarkan teori yang

ada pada bab sebelumnya. Analisis ini bertujuan untuk menemukan solusi dari

permasalahan dalam melakukan implementasi algoritma cipher transposisi dan Secure

Hash Algorithm (SHA). Hasil dari analisis pada bab ini akan digunakan untuk

menyelesaikan bab empat.

3.1 Analisis Masalah

Pada saat ini, pemanfaatan teknologi informasi sudah banyak digunakan oleh semua

orang, baik untuk pribadi maupun kepentingan umum atau organisasi. Oleh sebab itu,

keamanan teknologi informasi adalah suatu syarat, agar pemanfaatan teknologi

informasi itu berjalan sesuai yang dibutuhkan. Diantara berbagai keamanan teknologi

informasi itu ialah penggunaan kriptografi.

Kriptografi ini bertujuan untuk menyembunyikan data. Pada saat ini, kriptografi

memilki berbagai jenis, dari kriptografi klasik sampai kriptografi modern. Penggunaan

satu algoritama kriptografi untuk pengamanan teknologi informasi masih dianggap

kurang aman, karena semakin kompleks algoritma yang digunakan untuk pengamanan

data, maka semakin sulit untuk memecahkan kemananan yang dibentuk oleh gabungan

dua algoritma atau lebih. Columnar transpositon adalah bagian dari algoritma cipher

transposisi yang penggunaannya saat ini tidak digunakan lagi dalam pengamanan pada

(33)

3.2 Penyelesaian Masalah

Berdasarkan latar belakang masalah, timbul untuk menggabungkan columnar

transpositon dengan Secure Hash Algorithm (SHA). Penggunaan SHA ini merupakan

aspek keamanan dari teknologi informasi yaitu authentication (otentikasi) pengguna.

Otentikasi ini bertujuan untuk meyakinkan penerima pesan yang diterima bahwa pesan

yang diterima adalah pesan yang asli. Dengan demikian, algoritma utama yang

digunakan adalah algortima columnar transpositon yang menghasilkan cipherteks,

kemudian SHA mengubah kembali cipherteks tersebut untuk menghasilkan suatu nilai

hash yang akan digunakan untuk tujuan otentikasi.

Dengan demikian, dapat disimpulkan terdapat beberapa proses yang dilakukan

pada setiap bagian, dimana pada bagian pengirim yaitu proses enkripsi file dan

menghasilkan nilai hash 1. Sedangkan pada bagian penerima yaitu proses dekripsi file

terenkripsi dan menghasilkan nilai hash 2 untuk dicocokkan dengan nilai hash 1,

sebagai tujuan dari otentikasi. Proses enkripsi dan dekripsi file menggunakan columnar

transpositon, sedangkan untuk mengahasilkan nilai hash dan otentikasi menggunakan

SHA.

3.2.1 Proses Enkripsi Columnar Transpositon

Untuk mengenkripsi file dengan algoritma Columnar Transpositon, sistem mengambil

seluruh karakter secara berurutan dari file yang akan dienkripsi. Kemudian

karakter-karakter tersebut disusun ke dalam matriks dua dimensi dengan jumlah kolom yang

tetap yakni 6 sesuai dengan teori pada bab 2 dan jumlah baris yang dinamis sesuai

dengan kebutuhan dari file atau panjang file dibagi 6. Penyusunan karakter ini dimulai

dengan baris pertama sampai kolom ke enam, kemudian ke baris berikutnya. Akan

tetapi, karakter spasi dimasukkan pada proses ini. Sedangkan penambahan karakter di

akhir plainteks hanya satu jenis karakter yaitu ‘@’ dengan maksimum 5 byte, karena

panjang karakter modulo 6 adalah maksimum 5.

Apabila karakter-karakter tersebut telah tersusun, maka penyusunan ulang

(34)

Hasil penyusunan ulang karakter-karakter berdasarkan urutan baris akan menghasilkan

cipherteks.

Untuk menjelaskan langkah-langkah tersebut, penulis akan memberikan contoh

proses enkripsi yang ditunjukkan pada Tabel 3.1 .

Contoh :

Plainteks : AWAS KECURANGAN UJIAN AKHIR SEMESTER

Tabel 3.1 Proses Enkripsi Columnar Transposition

A W A S K

Cipherteks : AEGIHMWCAAIEAUNNRSSR T AUASEKNJKER

3.2.2 Proses Dekripsi Columnar Transposition

Proses ini akan bekerja, apabila telah dilakukan proses otentikasi sebelumnya. Proses

dekripsi ini juga dengan menggunakan Columnar Transposition, dimana sistem

menerima file yang terenkripsi. Proses ini hampir sama dengan proses enkripsi, dimana

setiap karakter dari file yang telah diambil akan dimasukkan pada matriks dua dimensi.

Perbedaan dengan proses enkripsi, jumlah baris tetap yakni 6 dan jumlah kolom

dinamis sesuai dengan panjang karakter cipherteks yaitu panjang karakter dibagi 6.

Karakter-karakter tersebut disusun kembali berdasarkan baris. Hasil penyusunan ini

akan mendapatkan file asli kembali. Proses dekripsi ditunjukkan pada Tabel 3.2.

Contoh :

(35)

Tabel 3.2 Proses Dekripsi Columnar Transposition

Plainteks : AWAS KECURANGAN UJIAN AKHIR SEMESTER

3.2.3 Proses Pembentukan Nilai Hash dengan SHA dan Otentikasi

Proses pembentukan nilai hash terdapat pada dua bagian yang berbeda yaitu pada pihak

pengirim dan pihak penerima, tetapi mempunyai metode yang sama yaitu SHA. Nama

lain dari nilai hash ini adalah message digest, karena nilai hash ini seolah-seolah seperti

intisari dari pesan asli. File untuk menghasilkan nilai hash ini adalah file yang telah

terenkripsi sebelumnya. Nilai hash dari pihak pengirim akan digabung dengan file yang

terenkripsi.

Setelah kedua nilai hash diperoleh oleh pihak penerima, maka penerima

mencocokkan nilai hash dari pengirim dengan nilai hash yang dihasilkannya. Apabila

sama, maka file yang terenkripsi yang diterima merupakan file yang memang berasal

dari pengirim. Jika tidak, maka tidak dapat dilanjutkan ke proses dekripsi. Hal ini

bertujuan untuk membuktikan bahwa file memang otentik. Proses ini dinamakan

otentikasi.

Proses pembentukan nilai hash dari cipherteks yang dihasilkan dari proses

enkripsi sebelumnya:

Contoh :

(36)

Biner cipherteks :

01000001 01000101 01000111 01001001 01001000 01001101 01010111 01000011 01000001 01000001 01001001 01000101 01000001 01010101 01001110 01001110 01010010 01010011 01010011 01010010 00100000 00100000 00100000 01010100 00100000 01000001 01010101 01000001 01010011 01000101 01001011 01001110 01001010 01001011 01000101 01010010

Heksadesimal cipherteks :

41 45 47 49 48 4D 57 43 41 41 49 45 41 55 4E 4E 52 53 53 52 20 20 20 54 20 41 55 41 41 45 4B 4E 4A 4B 45 52

Panjan pesan = 36 x 8 = 228 (11100100)

1. Penambahan bit pengganjal

Pesan ditambah bit pengganjal sampai 448 bit

01000001 01000101 01000111 01001001 01001000 01001101 01010111 01000011 01000001 01000001 01001001 01000101 01000001 01010101 01001110 01001110 01010010 01010011 01010011 01010010 00100000 00100000 00100000 01010100 00100000 01000001 01010101 01000001 01010011 01000101 01001011 01001110 01001010 01001011 01000101 01010010 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

2. Penambahan nilai panjang semula

Tambahan 64 bit representasi panjang pesan semula diakhir bit sehingga jumlah bit

menjadi 512 bit.

(37)

3. Inisialisasi penyangga MD

A = 67452301

B = EFCDAB89

C = 98BADCFE

D = 10325476

E = C3D2E1F0

4. Pengolahan blok 512 bit

Setelah pengolahan blok 512 bit menghasilkan nilai akhir dalam hexadecimal dan

biner:

A = CBF3FC33 (11001011 11110011 11111100 00110011)

B = B4F3E42B (10110100 11110011 11100100 00101011)

C = A2506F96 (10100010 01010000 01101111 10010110)

D = F1D15710 (11110001 11010001 01010111 00010000)

E = EA0D0CAA (11101010 00001101 00001100 10101010)

Penggabungan nilai akhir A, B, C, D, E menghasilkan nilai hash dalam bentuk

biner:

11001011 11110011 11111100 00110011 10110100 11110011 11100100 00101011 10100010 01010000 01101111 10010110 11110001 11010001 01010111 00010000 11101010 00001101 00001100 10101010

Dalam Heksadesimal :

(38)

3.2.4 Arsitektur Sistem Keamanan Data Columnar Transposition dan SHA

Arsitektur dari sistem yang dibangun terdiri dari 2 bagian yaitu arsitektur enkripsi

sistem keamanan data yang ditunjukkan Gambar 3.1 dan arsitektur dekripsi Sistem

keamanan data ditunjukkan Gambar 3.2.

Mulai

Enkripsi Columnar Transposition

SHA

Cipherteks + Nilai hash

Selesai Plainteks

(39)

Mulai

SHA

Plainteks

Selesai Cipherteks +

nilai hash1

Dekripsi Columnar Transposition nilai hash 2

nilai hash 1 = nilai hash 2

ya

tidak

Cipherteks tidak otentik

Gambar 3.2 Arsitektur Dekripsi Sistem Keamanan Data

3.3 Analisis Kebutuhan Perangkat Lunak

Analisis kebutuhan perangkat lunak merupakan langkah untuk mengenal komponen

atau bagian dari sistem yang akan dibangun. Pada tugas akhir ini menggunakan diagram

(40)

3.3.1 Diagaram Use Case

Hal-hal yang dapat dilakukan oleh pengguna terhadap sistem yang akan dibangun dapat

dilihat pada diagram use case global yang diperlihatkan pada Gambar 3.3.

Sistem Pengamanan Data

Enkripsi

Dekripsi Pengguna

«uses»

«uses»

Gambar 3.3 Use Case Global

Pada Gambar 3.3 , pengguna dapat melakukan dua hal pada sistem yaitu proses

enkripsi terhadap plainteks, dan proses dekripsi terhadap cipherteks yang diterima.

3.3.1.1Enkripsi

Pada Use Case ini pengguna memasukkan plainteks untuk dienkripsi dengan Columnar

Transposition. Kemudian hasil dari proses tersebut akan menghasilkan cipherteks untuk

diproses kembali untuk menghasilkan nilai hash 1 dengan SHA. Apabila kedua proses

tersebut telah selesai, maka sistem akan menyimpan cipherteks dan nilai hash 1 pada

tempat yang sama atau pengguna juga dapat mengirimkan keduanya kepada orang lain.

(41)

Sistem Pengamanan Data

Pengguna

Enkripsi Plainteks dengan Columnar Transposition

Membentuk Nilai Hash 1 dengan SHA

Menyimpan atau Mengirim

Gambar 3.4 Use Case Enkripsi Plainteks dan Pembentukan Nilai hash 1

Diagram alir untuk menggambarkan apa yang diharuskan dilakukan pengguna

agar sistem dapat berjalan sesuai yang diinginkan, kemudian langkah-langkah yang

dilakukan oleh sistem untuk memprosesnya. Hal ini digambarkan pada Gambar 3.5

Pengguna

dengan Nilai Hash 1

Selesai Selesai

(42)

3.3.1.2Dekripsi

Pada Use Case Dekripsi, Sistem harus menerima cipherteks dan nilai hash 1. Kemudian

sistem kembali akan membentuk nilai hash 2 dari cipherteks yang ada dengan

menggunakan SHA juga. Nilai hash 2 ini akan dicocokkan dengan nilai hash 1 untuk

membuktikan keaslian cipherteks. Jika keduanya sama maka sistem akan melanjutkan

ke proses berikutnya, jika tidak sama, maka proses akan berhenti. Proses berikutnya

adalah dekripsi cipherteks dengan Columnar Transposition untuk menghasilkan

plainteks. Kemudian plainteks akan disimpan dan ditampilkan oleh sistem kepada

pengguna. Hal ini digambarkan pada Gambar 3.6.

Pengguna

Sistem Pengamanan Data

Menerima Cipherteks dan Nilai Hash 1

Membentuk Nilai Hash

Gambar 3.6 Use Case Pembuktian Keaslian Cipherteks dan Dekripsi Cipherteks

Diagram alir untuk menggambarkan proses dekripsi digambarkan pada Gambar 3.7.

Pada diagram alir ini, pengguna harus memasukkan dua input sekaligus yaitu cipherteks

(43)

Pengguna

Pengguna

Start

Start

Input Cipherteks dan Nilai Hash 1

Input Cipherteks dan Nilai Hash 1

Gambar 3.7 Diagram Alir Dekripsi

3.4 Perancangan

Perancangan bertujuan untuk menentukan kondisi akhir dari perangkat lunak yang akan

dibangun sesuai yang diharapkan, dan merumuskan cara untuk mendapatkan hasil dari

kondisi akhir perangkat lunak tersebut.

Perancangan perangkat lunak sistem keamanan data menggunakan Columnar

Transposition dan SHA memiliki beberapa tahap perancangan yaitu perancangan

(44)

3.4.1 Perancangan Strukur Program

Perancangan struktur program adalah perancangan awal untuk mengidentifikasi

subsistem dan menentukan hubungan dan kerangka kerja antar subsistem. Tujuan dari

perancangan ini adalah membangun struktur program yang modular dan

merepresentasikan keterkaitan antar modul, serta mendefenisikan antarmuka yang

memungkinkan data mengalir pada program yang akan diiplementasikan. Strukur

program dari perangkat lunak sistem keamanan data menggunakan Columnar

Transposition dan SHA dapat dilihat pada Gambar 3.8.

Menu Utama

Enkripsi Dekripsi

Buka Plainteks Buka Cipherteks dan

Nilai Hash 1

Cipherteks dan Nilai

Hash 1

Dekripsi Columnar

Transpostion

Plainteks

Gambar 3.8 Struktur Program Kriptografi Columnar Transposition dan SHA

3.4.2 Perancangan Antar Muka Pemakai

Antar muka pemakai adalah suatu aspek pada sistem komputer untuk membantu

(45)

muka pemakai perangkat lunak sistem keamanan data menggunakan Columnar

Transposition dan SHA.

3.4.2.1 Rancangan Form Utama

Rancangan ini merupakan tampilan utama perangkat lunak sistem keamanan data

menggunakan Columnar Transposition dan SHA. Pada rancangan utama terdapat nama

perangkat lunak, tombol keluar dan menu utama yaitu enkripsi, dekripsi, dan help.

Apabila tombol enkripsi dipilih pada menu utama, maka akan menampilkan

form enkripsi. Jika tombol dekripsi dipilih, maka akan menampilkan form dekripsi.

Sedangkan jika tombol help dipilih, maka akan menampilkan form yang berisi

penjelasan tentang perangkat lunak. Rancangan form utama ditunjukkan pada Gambar

3.9.

Gambar 3.9 Rancangan Form Utama

KRIPTOGRAFI

SISTEM KEAMANAN DATA MENGGUNAKAN

COLUMNAR TRANSPOSITION DAN SHA

MENU UTAMA

ENKRIPSI

HELP DEKRIPSI

(46)

3.4.2.2 Rancangan Form Enkripsi

Pada form enkripsi, terdapat tombol buka file yang akan membuka file. Apabila file

telah didapatkan, maka pada form akan ditampilkan info dimana file berada. Selain itu

juga terdapat tombol enkripsi, yang berfungsi untuk melakukan proses enkripsi dan

tombol kembali yang berfungsi untuk mengembalikan program ke form utama.

Rancangan form enkripsi ditunjukkan pada Gambar 3.10.

Gambar 3.10 Rancangan Form Enkripsi

3.4.2.3 Rancangan Form Dekripsi

Rancangan form dekripsi yang ditunjukkan pada Gambar 3.11 memilki beberapa

tombol yaitu tombol buka file, buka kunci, dekripsi, dan kembali. Tombol buka file

untuk membuka file dan tombol buka kunci berfungsi untuk membuka kunci atau nilai

hash 1. Tombol dekripsi berfungsi memerintahkan sistem agar melakukan proses

terhadap file yang telah dibuka. Sedangkan tombol kembali memilki fungsi yang sama

pada form enkripsi, yaitu untuk kembali ke form utama.

ENKRIPSI

BUKA FILE

(47)

Gambar 3.11 Rancangan Form Dekripsi

3.4.2.4 Rancangan Form Help

Form ini hanya berisi informasi tentang perangkat lunak yang akan dibangun dan

tombol kembali untuk kembali ke form utama. Tampilan rancangan form ini

ditunjukkan Gambar 3.12.

Gambar 3.12 Rancangan Form Help

DEKRIPSI

HELP

BUKA FILE

DEKRIPSI KEMBALI

BUKA KUNCI

(48)

3.4.3 Perancangan Prosedural

Setelah percancangan struktur program dan antar muka, maka tahapan selanjutnya

adalah perancangan prosedural. Perancangan prosedural ini terdiri algoritma dan

flowchart. Tujuan dari perancangan ini adalah mempermudah dalam melakukan

pengkodean dimana perancangan ini menghasilkan detail algoritma yang akan

dibangun.

Pada perangkat lunak sistem keamanan data dengan Columnar Transposition

dan SHA ini terdapat tiga prosedur utama, yaitu prosedur enkripsi, prosedur dekripsi,

dan prosedur SHA-1. Berikut algoritma dan flowchart untuk masing-masing prosedur.

3.4.3.1 Algoritma dan Flowchart Proses Enkripsi

Prosedur ini digunakan untuk melakukan prosedur enkripsi. Rincian prosesnya

ditunjukkan oleh algoritma berikut:

1. Mulai.

2. Plainteks, urutan, pad, kolom = 6.

3. Mengambil isi plainteks per karakter.

4. Menghitung Jumlah atau panjang semua karakter .

5. Pad = Jumlah karakter mod 6.

6. Apakah Pad <> 0.

7. Jika tidak, masukkan karakter ke dalam kolom.

8. Jika ya, Tambahkan karakter ‘@’.

9. Baca karakter berdasarkan urutan kolom.

10.Cipherteks.

11.Selesai.

Gambar aliran proses dari prosedur enkripsi ditunjukkan oleh flowchart pada

(49)

Mulai

Mengambil isi plainteks per karakter

Menghitung panjang atau Jumlah semua karakter

Tambahkan karakter ‘@’

Masukkan karakter ke dalam kolom

Pad = Jumlah karakter mod 6

Baca karakter sesuai dengan urutan kolom

Gambar 3.13 Flowchart Prosedur Enkripsi

3.4.3.2 Algoritma dan Flowchart Proses Dekripsi

Rincian dari prosedur dekripsi ditunjukkan oleh algoritma berikut:

1. Mulai.

2. Cipherteks, urutan, kolom.

3. Mengambil isi cipherteks per karakter.

(50)

5. kolom = jumlah karakter : 6.

6. Memasukkan karakter ke dalam kolom.

7. Baca karakter berdasarkan urutan kolom.

8. Hapus karakter ‘@’ di akhir urutan.

9. Plainteks.

10.Selesai.

Gambaran aliran proses kerja dari prosedur dekripsi ditunjukkan pada Gambar

3.14.

Mulai

Mengambil isi plainteks per karakter

Menghitung panjang atau Jumlah semua karakter

Memasukkan karakter ke dalam kolom

Baca berdasarkan urutan kolom

Selesai Plainteks Cipherteks, urutan,

kolom

Kolom = Jumlah karakter / 6

Hapus karakter ‘@’ di akhir urutan

(51)

3.4.3.3 Algoritma dan Flowchart Prosedur SHA-1

Prosedur SHA-1 ini digunakan untuk membentuk nilai hash. Rincian Proses yang

ditunjukkan oleh Gambar 3.15 adalah:

1. Mulai.

2. Cipherteks.

3. Inisialisasi penyangga A,B,C,D,E.

A = $67452301;

B = $EFCDAB89;

C = $98BADCFE;

D = $10325476;

E = $C3D2E1F0.

4. Membaca isi Cipherteks hingga akhir.

5. Pesan ditambah dengan sejumlah bit pengganjal hingga panjang pesan

kongruen dengan 448 modulo 512.

6. Pesan dibagi menjadi blok-blok yang masing-masing panjangnya 512-bit

( Y0 sampai YL-1 ).

7. Mengolah pesan 512-bit yang ditunjukkan Gambar 3.16 dengan proses

fungsi f dan k berikut:

(52)
(53)

Prosedur dari SHA-1 diatas ditunjukkan oleh flowchart pada Gambar 3.15:

Mulai

Membaca pesan hingga akhir Cipherteks

Penambahan pesan dengan bit pengganjal

Pembagian pesan ke dalam blok-blok

Penggabungan nilai A+B+C+D+E

Nilai hash

Selesai Proses fungsi f dan k

Cipherteks

(54)

Begin

(55)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Setelah proses perancangan, maka tahap selanjutnya adalah tahap implementasi yang

dibuat ke dalam bentuk suatu perangkat lunak. Input yang dibutuhkan pada aplikasi ini

adalah file biner. Bab ini akan menjelaskan implementasi dari rancangan pada bab

sebelumnya.

4.2 Tampilan Menu Utama

Tampilan dari menu utama terdiri dari beberapa tombol yaitu tombol ENKRIPSI,

DEKRIPSI, Help, dan KELUAR. Tombol ENKRIPSI, DEKRIPSI dan Help akan

menampilkan form baru sesuai dengan fungsinya masing-masing. Sedangkan tombol

KELUAR akan menyebabkan keluar dari sistem tersebut. Tampilan menu utama

ditunjukkan oleh Gambar 4.1.

(56)

4.2.1 Tampilan Submenu Enkripsi

Pada submenu Enkripsi, terdapat tombol Buka File untuk membuka file yang akan

dienkripsi. Setelah file ditemuka n, maka proses selanjutnya adalah proses enkripsi

dengan cara pengguna menekan tombol enkripsi. Apabila proses selesai, maka proses

ini akan menghasilkan 2 file. File yang pertama, yaitu file hasil enkripsi yang

mempunyai ekstensi yang sama dengan file asli, akan tetapi file tersebut tidak dapat

dibuka dengan program untuk membuka file yang berekstensi yang sama pada

umumnya. Sedangkan file yang kedua, yaitu file kunci yang berekstensi *.tmp .

Submenu Enkripsi ditunjukkan oleh Gambar 4.2.

Gambar 4.2 Tampilan Submenu Enkripsi

Untuk menjelaskan bagaimana langkah dari proses ini, penulis akan

memberikan contoh untuk enkripsi Gambar1.JPEG yang berada pada direktori D.

(57)

Gambar 4.3 Membuka Gambar1.JPEG

Gambar 4.4 Tampilan Submenu Enkripsi setelah membuka file

Setelah file ditemukan, maka tombol Enkripsi ditekan akan memberikan

pemberitahuan nama kunci dari file tersebut seperti pada Gambar 4.5.

(58)

Kemudian pemberitahuan selanjutnya akan muncul, yang menandakan bahwa

proses enkripsi telah selesai, seperti yang ditunjukkan pada Gambar 4.6 .

Gambar 4.6 Pemberitahuan proses Enkripsi selesai

4.2.2 Tampilan Submenu Dekripsi

Apabila tombol Dekripsi pada menu utama ditekan, akan menampilkan form yang

memilki tombol Buka File untuk membuka file terenkripsi, dan tombol Kunci untuk

membuka file kunci. Setelah kedua file telah dibuka, maka tombol Dekripsi pada form

tersebut akan menghasilkan file asli dengan ekstensi yang sama dengan file terenkripsi,

dan menghapus secara otomatis file kunci. Tampilan menu Dekripsi ditunjukkan pada

Gambar 4.7.

Gambar 4.7 Tampilan Submenu Dekripsi

Sebagai contoh, penulis akan mengenkripsi file Gambar1.JPEG yang telah

dihasilkan sebelumnya. Untuk membuka file Gambar1.JPEG yang telah dienkripsi

(59)

Gambar 4.8 Membuka Gambar1.JPEG

Gambar 4.9 Tampilan Submenu Dekripsi setelah membuka file terenkripsi

Sedangkan, untuk membuka file kunci ditunjukkan Gambar 4.10. Apabila Input

valid akan muncul pemberitahun bahwa benar kunci memilki ekstensi .tmp yang

(60)

Gambar 4.10 Membuka file kunci

Gambar 4.11 Pemberitahuan bahwa ekstensi kunci valid

Gambar 4.12 merupakan tampilan submenu Dekripsi setelah kedua file dibuka

(61)

Gambar 4.12 Tampilan Submenu Dekripsi setelah membuka kedua file

Kemudian tombol dekripsi ditekan, maka akan muncul pemberitahuan bahawa proses

dekripsi berhasil pada Gambar 4.13. Jika tidak, akan muncul pemberitahuan bahwa file

kunci tidak cocok dengan file enkripsi, yang juga menyatakan proses dekripsi gagal

seperti yang ditunjukkan pada Gambar 4.14.

Gambar 4.13 Pemberitahuan proses dekripsi berhasil

(62)

4.2.3 Tampilan Submenu Help

Jika tombol Help pada menu utama ditekan, akan menampilkan form yang berisi

informasi mengenai menu utama tentan penggunaan perangkat lunak sistem keamanan

data menggunakan Columnar Transposition dan SHA, yang ditunjukkan Gambar 4.15.

Gambar 4.15 Tampilan Submenu Help

4.3 Pengujian Perangkat Lunak

Pengujian merupakan teknik yang menentukan apakah solusi menyelesaikan persoalan.

Tahap pengujian ini merupakan tahap terpenting dari keseluruhan proses pengembangan

perangkat lunak, sebab pada tahap inilah akan dievaluasi apakah perangkat lunak yang

dibangun sesuai dengan rencana dan keinginan atau tidak.

Pengujian lebih ditujukan untuk menghasilkan perangkat lunak yang bebas

kesalahan setidaknya secara teknik, sebab bebas kesalahan secara total tidaklah

mungkin, seperti dikatakan Edsgar Djikstra dalam Hariyanto yaitu pengujian hanya

dapat menunjukkan keberadaan bug, namun tidak dapat menunjukkan

ketidakberadaannya.

Pengujian adalah proses pemeriksaan atau evaluasi sistem atau komponen sistem

(63)

kebutuhan-kebutuhan yang dispesifikasikan atau mengidentifikasi perbedaan-perbedaan antara

hasil yang diharapkan dengan hasil yang terjadi. (Hariyanto, 2004).

Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak

adalah:

1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan

kesalahan

2. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk

menemukan kesalahan yang belum pernah ditemukan sebelumnya

3. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan

yang belum pernah ditemukan sebelumnya

Pengujian yang akan dilakukan pada aplikasi ini adalah pengujian integrasi,

pengujian antarmuka dan pengujian kehandalan dengan menggunakan metode black box

testing.

4.3.1 Pengujian Integrasi Perangkat Lunak

Pengujian integrasi merupakan pengujian terhadap sistem atau subsistem lengkap

dengan komponen-komponen penyusunnya yang terintegrasi. Metode yang digunakan

pada pengujian ini adalah black box. Dengan black box, pengujian hanya dilakukan

pada representasi sistem yang terlihat tanpa perlu mengetahui bagaimana cara kerja

sistem tersebut.

Black box hanya melakukan pengujian dengan membandingkan masukan dan

keluaran yang dihasilkan apakah sesuai dengan harapan atau tidak. Bila sesuai maka

aplikasi dianggap layak dan berhasil, sebaliknya apabila tidak sesuai maka perlu

(64)

4.3.1.1 Menu Utama

Hasil evaluasi menu utama dijelaskan oleh Tabel 4.1.

Tabel 4.1 Evaluasi Menu Utama

No. Sasaran Pengujian Output Status

1. Uji tampilan perangkat

lunak

Perangkat lunak ditampilkan dengan 3 menu utama.

Baik.

2. Uji inputan mouse Pergerakan mouse dapat

dideteksi.

Baik.

3. Uji inputan keyboard Menu dapat diakses melalui

keyboard.

Baik.

4. Uji tombol minimize,

maximize dan close.

Tombol dapat diklik dan berjalan

sesuai fungsinya masing-masing.

Baik.

5. Uji tombol ENKRIPSI Tombol dapat diakses dengan

keyboard atau mouse. Submenu

Enkripsi dapat ditampilkan

Baik

6. Uji tombol DEKRIPSI Tombol dapat diakses dengan

keyboard atau mouse. Submenu

Dekripsi dapat ditampilkan

Baik

7. Uji Tombol HELP Tombol dapat diakses dengan

keyboard atau mouse. Submenu

Help dapat ditampilkan

Baik

8. Uji tombol Keluar. Tombol Keluar dapat diakses

dengan keyboard ataupun mouse. Perangkat lunak berhenti, dan pengguna keluar dari aplikasi.

(65)

4.3.1.2 Submenu Enkripsi

Hasil evaluasi dari submenu Enkripsi dijelaskan pada Tabel 4.2.

Tabel 4.2 Evaluasi Submenu Enkripsi

No. Sasaran Pengujian Output Status

1. Uji membuka file dengan

tombol Buka File

Tombol Buka dapat membuka

file sesuai dengan fungsinya.

Baik.

2. Uji tombol enkripsi Tombol enkripsi dapat

memproses file yang akan

dienkripsi.

Baik.

3. Uji tombol kembali Tombol kembali dapat berjalan

sesuai dengan fungsinya dan kembali ke menu utama.

Baik.

4.3.1.3 Submenu Dekripsi

Hasil evaluasi dari submenu dekripsi dijelaskan oleh Tabel 4.3.

Tabel 4.3 Evaluasi Submenu Dekripsi

No. Sasaran Pengujian Output Status

1. Uji membuka file dengan

tombol Buka File

Tombol Buka File dapat membuka file sesuai dengan fungsinya.

Baik.

2. Uji membuka file kunci

dengan tombol Kunci

Tombol Kunci dapat membuka

file kunci sesuai dengan

fungsinya.

Baik.

3. Uji tombol Dekripsi Tombol Dekripsi dapat

memproses file yang akan

didekripsi sesuai dengan kuncinya

Baik.

4. Uji tombol kembali Tombol kembali dapat berjalan

sesuai dengan fungsinya dan kembali ke menu utama.

Baik.

4.3.1.4 Submenu Help

Tabel 4.4 menjelaskan hasil evaluasi dari submenu Help.

Tabel 4.4 Evaluasi Submenu Help

No. Sasaran Pengujian Output Status

1. Uji tombol kembali Tombol kembali dapat berjalan

sesuai dengan fungsinya dan kembali ke menu utama.

(66)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab-bab yang terdahulu, maka diperoleh

kesimpulan sebagai berikut:

1. Sistem pengamanan data dapat dibuat dengan mengabungkan dua algoritma

kriptografi, seperti pada penelitian ini yang menggabungkan algoritma Cipher

Transposisi dan Secure Hash Algorithm (SHA).

2. Teknik penerapan pada algoritma Cipher Transposisi dan Secure Hash

Algorithm (SHA) dapat diterapkan pada file biner.

3. Sistem yang dibangun menggunakan Borland Delphi 7.0 yang memiliki

keterbatasan dalam proses enkripsi dan dekripsi, karena menggunakan

pengalokasian memori array statis, sehingga sistem hanya mampu mengenkripsi

dan dekripsi file biner 600 KB.

4. Algoritma kriptografi klasik seperti algoritma Cipher Transposisi, masih dapat

digunakan pada zaman modern sekarang ini dengan menggabungkannya dengan

algoritma kriptografi modern.

5.2 Saran

Berdasarkan penelitian dan implementasi sistem yang telah dilakukan, maka diberikan

saran sebagai berikut:

1. Pengguna diminta untuk memperhatikan besar kapasitas file biner yang akan

dienkripsi karena akan mempengaruhi waktu proses enkripsi yang cukup

(67)

2. Untuk kebutuhan meluas, diperlukan penelitian untuk proses enkripsi dan

(68)

DAFTAR PUSTAKA

Adrisatria, Yogie. 2006. Studi Pencarian Kolisi Pada Sha-1 oleh xiaoyun Wang dkk.*.

Apriliawan, Egie. 2009. Fungsi Hash Pada Kriptografi.

Ariesanda, Boyke. 2008. Rancangan dan Analisis Cipher Berbasis Algoritma

Transposisi Dengan Periodisasi Kunci.

Ariyus, Dony. 2008. Pengantar Ilmu Kripotgrafi Teori, Analisis, dan Implementasi.

Yogyakarta : Penerbit Andi.

Ekwardo, Odit. 2008. Modifikasi Columnar transposition Menggunakan Sebuah Fungsi

Transposisi.

2010.

Hallim, Abd, Isbat Uzzin Nadhori, Setiawardhana. 2010. Pembuatan Perangkat Lunak

Media Pembelajaran Kriptografi Klasik.

15 April 2010.

(69)

Kurniawan, Yusuf. 2004. Keamanan Internet dan Jaringan Komunikasi. Bandung :

Penerbit Informatika.

Munir, Rinaldi. 2006. Kriptografi. Bandung : Penerbit Informatika.

Munir, Rinaldi. 2005. Secure Hash Algorithm. kur2003.if.itb.ac.id/file/SHA.doc .

Diakses tanggal : 10 April 2010.

Okike, Benjamin. 2006. The Effect of Message Splitting in Irregular Transposition

Cipher Technique: Determination of Pattern in Splitting Sequence and its

Complexity Level. University of Abuja.

Pohan, Reyhan Yuanza. 2008. Studi dan Perbandingan Berbagai Macam Algoritma

Cipher Transposisi.

2010.

Scheiner, Bruce. 1996. Applied Crypthography: Second edition . Wiley Computer

Publishing, John Wiley & Sons, Inc.

Smart, Nigel. 2004. Cryptography : An Introduction ( 3rd Edition). University of Bristol.

Stallings, William. 2005. Cryptography and Network Security Principles and Practices,

Gambar

Tabel 3.1 Proses Enkripsi Columnar Transposition
Tabel 3.2 Proses Dekripsi Columnar Transposition
Gambar 3.1 Arsitektur Enkripsi Sistem Keamanan Data
Gambar 3.2 Arsitektur Dekripsi Sistem Keamanan Data
+7

Referensi

Dokumen terkait

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

pemeriksaan di sidang pengadilan terhadap tindak pidana korupsi dilakukan hukum acara yang berlaku, kecuali ditentukan lain dalam undang- undang ini”.. 31 Tahun 1999 mulai

kegiatan ilmiah berupa diskusi atau seminar, mengenai bidang studinya; (2) selalu berusaha meningkatkan keefektifan mengajar, mencari cara- cara baru dalam menyampaikan materi

Tujuan dari paper ini adalah untuk memperlihatkan bagaimana pemimpin NU, Abdurrahman Wahid (selanjutnya ditulis Gus Dur), menggunakan wacana dialog antaragama sebagai: pertama

Berdasarkan hasil penelitian yang telah dilakukan, faktor yang paling optimal untuk mendapatkan respon time machining yang minimal baik secara real atau simulation

Dari Pembuatan Video Filler Sebagai Sarana Publikasi Fashion Jawa Di Kota Solo ini menghasilkan CD Video Filler tentang Fashion Jawa dan dapat membantu

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

Hal ini dapat disimpulkan bahwa kinerja PT Bank Mandiri lebih baik dibandingkan PT Bank Syariah Mandiri, karena semakin rendah nilai NPL maka akan menunjukkan bahwa bank