172
PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN METODE ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR ADLEMAN Studi Kasus CV Maharta Mandiri Promo ZAENAL MUTTAQIN 2040.9100.2553 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010 M / 1431 H

PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Embed Size (px)

Citation preview

Page 1: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN

METODE ADVANCE ENCRYPTION STANDARD

DAN RIVEST SHAMIR ADLEMAN

Studi Kasus CV Maharta Mandiri Promo

ZAENAL MUTTAQIN

2040.9100.2553

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

2010 M / 1431 H

Page 2: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN METODE

ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR ADLEMAN

Studi Kasus CV Maharta Mandiri Promo

Skripsi

Diajukan kepada Fakultas Sains dan Teknologi

Untuk memenuhi persyaratan memperoleh

gelar Sarjana Komputer (S.Kom)

Oleh :

ZAENAL MUTTAQIN

2040.9100.2553

Menyetujui,

Pembimbing I

Herlino Nanang, MT NIP. 19731209 200501 1 002

Pembimbing II Zulfiandri, MMSI NIP. 150 368 821

Mengetahui,

Ketua Program Studi Teknik Informatika

Yusuf Durrachman, MIT

NIP. 19710522 200604 1 002

iii

Page 3: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

PENGESAHAN UJIAN

Skripsi berjudul “PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN

METODE ADVANCE ENCRYPTION STANDARD DAN RIVEST SHAMIR

ADLEMAN STUDI KASUS CV MAHARTA MANDIRI PROMO” yang ditulis

oleh Zaenal Muttaqin, NIM 204091002553 telah diuji dan dinyatakan lulus dalam

sidang Munaqosyah Fakultas Sains dan Teknologi, Universitas Islam Negeri

Syarif Hidayatullah Jakarta pada tanggal 11 Januari 2010. Skripsi ini telah

diterima sebagai salah satu syarat untuk memperoleh gelar sarjana Strata Satu (S1)

Program Studi Teknik Informatika.

Penguji I

Viva Arifin, MMSI NIP. 19730810 200604 2 001

Menyetujui :

Penguji II

Victor Amrizal, M.Kom NIP. 150 411 288

Pembimbing I

Herlino Nanang, MT NIP. 19731209 200501 1 002

Pembimbing II

Zulfiandri, MMSI

NIP. 150 368 821

Dekan

Fakultas Sains dan Teknologi

Mengetahui:

Ketua Program Studi

Teknik Informatika

DR. Syopiansyah Jaya Putra, M.Sis NIP. 19680117 200112 1 001

Yusuf Durrachman, MIT NIP. 19710522 200604 1 002

iv

Page 4: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-

BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN

SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI

ATAU LEMBAGA MANAPUN.

Jakarta, Januari 2010

Zaenal Muttaqin

2040 9100 2553

v

Page 5: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

ABSTRAK

ZAENAL MUTTAQIN, Pembuatan Aplikasi Enkripsi Menggunakan Metode

Advance Encryption Standard Dan Rivest Shamir Adleman Studi Kasus CV

Maharta Mandiri Promo. (di bawah bimbingan Herlino Nanang dan Zulfiandri).

Perkembangan dunia teknologi informasi saat ini telah menjadikan

informasi sebagai kebutuhan yang pokok bagi setiap orang terutama bagi sebuah

instansi. Salah satu solusi pengamanan informasi yang digunakan adalah teknik

pengamanan data menggunakan kriptografi. Kriptografi adalah ilmu untuk

menyandikan pesan, sedangkan untuk menjaga agar pesan atau dokumen kita

aman dan tidak dapat dibaca oleh pihak yang tidak berhak, digunakan enkripsi.

CV Maharta Mandiri Promo sebagai sebuah perusahaan desain grafis dan

percetakan memiliki keinginan untuk melindungi data-data penting mereka dari

pihak yang tidak berhak. Aplikasi acrypt cs merupakan aplikasi enkripsi yang

menggabungkan metode enkripsi simetris dan metode enkripsi asimetris. Pada

aplikasi ini metode yang digunakan adalah metode enkripsi simetris Advance

Encryption Standard dan asimetris Rivest Shamir Adleman. Aplikasi ini dapat

dijadikan sebagai salah satu cara untuk mengamankan data. Pembuatan aplikasi

ini menggunakan bahasa pemrograman PHP dan MySQL. Untuk pengembangan

aplikasi penulis menggunakan metode Rapid Application Development (RAD).

Hasil akhir berupa aplikasi multifile berbasis client server, tanpa ada proses

instalasi, dan dapat dilakukan pada mutifile secara bersamaan (multifile dibatasi

sebanyak 10 file).

Kata kunci : kriptografi, enkripsi, Advance Encryption Standard, Rivest Shamir

Adleman, Enkripsi simetri/asimetri.

xvii halaman + 113 halaman + 4 tabel + 51 gambar + 3 lampiran

Daftar Pustaka : 15 (1999-2008)

vi

Page 6: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

KATA PENGANTAR

Assalaamu’alaikum Wr. Wb.

Alhamdulillah, rasa syukur tiada terkira penulis panjatkan kepada Allah

Subhanahu Wata’ala. Rahmat dan salam semoga tercurahkan selalu kepada

Rasulullah Muhammad SAW beserta keluarga, sahabat, dan pengikut-pengikut

beliau (amin). Hanya berkat petunjuk dan pertolongan Allah-lah penulis dapat

menyelesaikan skripsi yang berjudul : Pembuatan Aplikasi Enkripsi

Menggunakan Metode Advance Encryption Standard dan Rivest Shamir Adleman

Studi Kasus CV Maharta Mandiri Promo.

Terwujudnya tulisan dalam bentuk skripsi ini, tentunya tidak terlepas dari

bantuan dan bimbingan dari berbagai pihak. Rasa terima kasih penulis ucapkan

kepada :

1. Bapak DR. Syopiansyah Jaya Putra, M.SIS, selaku Dekan Fakultas Sains

dan Teknologi.

2. Bapak Yusuf Durrachman, selaku Ketua Program Studi Teknik Informatika.

3. Bapak Herlino Nanang, MT, selaku dosen pembimbing I, dan

4. Bapak Zulfriandri, MMSI, selaku dosen pembimbing II, yang telah

memberikan bimbingan, waktu, dan perhatiannya dalam penyusunan skripsi

ini.

vii

Page 7: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

5. Seluruh Dosen dan staf karyawan Program Studi Teknik Informatika,

Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah

Jakarta yang telah mengajar atau membantu penulis selama kuliah.

Dalam penyusunan skripsi ini, penulis juga tidak luput dari berbagai

masalah dan menyadari sepenuhnya bahwa penulisan ini masih jauh dari

sempurna dan tidak lepas dari kesalahan dan kekurangan, oleh karena itu dengan

senang hati penulis akan menerima semua saran dan kritik maupun ide-ide yang

membangun dari rekan-rekan pembaca. Akhir kata semoga Allah membalas

kebaikan mereka yang telah membimbing penulis dalam membuat skripsi ini.

Semoga skripsi ini berguna bagi penulis dan pada pembaca umumnya.

Wassalaamu’alaikum Wr. Wb.

Jakarta, Januari 2010

Penulis

Zaenal Muttaqin

NIM. 2040 9100 2553

viii

Page 8: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Sebuah tulisan sederhana ini kupersembahkan

untuk:

“Emak dan Babe… kesabaran dan kerja keras telah kalian

lakukan demi membesarkan ananda.. ananda tahu.. seberapa besarpun

hal yang dapat ananda berikan untuk emak dan babe, belumlah cukup

untuk membalas semua perjuangan emak dan babe..

Setiap peluh yang menetes di dahimu.. setiap langkah kakimu.. setiap

perjuanganmu untuk membuat ananda berdiri tegak sampai sekarang..

akan ananda ingat semua itu sampai akhir hayat ananda..

Ya Allah.. berikanlah hamba kesempatan untuk membahagiakan emak

dan babe..”

ix

Page 9: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Terimakasih yang Spesial untuk :

Kakak-kakakku tercinta : k juki, k ita, k mun, k, maskur, k

rahman, te nunung, k sugi, k yanto, k adi,

Dan sangat spesial untuk kak may..

(mari kita berjuang untuk hidup yang lebih baik..)

Juga untuk adik-adikku tersayang : herma, edi, doel, n dilah

(maaf membuat kalian menunggu lama..)

Dan untuk semua keponakanku : bunga, lulu, firly, lika, qori, rijal,

ridwan, zaskia, moja, n haikal..

(jangan lupa belajar ya sayang..)

Untuk teman-temanku ariyadi, dimas, maxus, sigit, ade,

dawim, nana, nita, yanti, razka, mimah, n danang

(terimakasih untuk berbagi setiap bulan..)

Untuk fajar (makasih bro), farizki (makasih netbooknya), deva,

sundus, rofi, maladi, dadang (makasih ya CV-nya), adin & eko

(makasih untuk switch & kabel LAN-nya),

makasih buat semua anak TI Bhe angkatan 2004..

tanpa kalian aku tak bisa berdiri tegak.. (tetap silah ya..)

makasih juga untuk pak basuni dan pak zam (perpus)

terimakasih untuk keluarga besar TI/SI angkatan 2004 yang telah

berteman dan berbagi semuanya kepada penulis..

dan banyak lagi yang tidak dapat saya tuliskan di sini..

terimakasih semuanya..

dan juga terimakasih untuk :

uin syarif hidayatullah jakarta & cv maharta mandiri promo

x

Page 10: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

DAFTAR ISI

PENGESAHAN UJIAN ........................................................................................ iv

PERNYATAAN...................................................................................................... v

ABSTRAK ............................................................................................................. vi

KATA PENGANTAR .......................................................................................... vii

DAFTAR ISI .......................................................................................................... xi

DAFTAR GAMBAR ............................................................................................ xv

DAFTAR TABEL .............................................................................................. xviii

BAB I PENDAHULUAN .................................................................................. 1

1.1. Latar Belakang ..................................................................................... 1

1.2. Rumusan Masalah ................................................................................ 2

1.3. Batasan Masalah................................................................................... 3

1.4. Tujuan Penelitian ................................................................................. 4

1.5. Manfaat Penelitian ............................................................................... 4

1.6. Metodologi Penelitian .......................................................................... 5

1.6.1. Metodologi Pengumpulan Data ............................................. 5

1.6.2. Metodologi Pengembangan Sistem........................................ 6

1.7. Sistematika Penulisan........................................................................... 6

BAB II LANDASAN TEORI ............................................................................. 8

2.1. Keamanan Data .................................................................................... 8

2.2. Aplikasi ................................................................................................ 8

2.3. Enkripsi dan Dekripsi........................................................................... 9

2.4. Kriptografi .......................................................................................... 11

2.4.1. Definisi dan Terminologi ..................................................... 11

2.4.2. Tujuan Kriptografi ............................................................... 14

2.4.3. Sejarah Kriptografi............................................................... 15

2.5. Algoritma Kriptografi Klasik ............................................................. 17

2.5.1. Cipher Substitusi .................................................................. 17

2.5.2. Cipher Transposisi ............................................................... 20

xi

Page 11: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.6. Algoritma Kriptografi Modern........................................................... 20

2.6.1. Algoritma Simetris ............................................................... 20

2.6.2. Algoritma Asimetris............................................................. 21

2.6.3. Algoritma Hibrida ................................................................ 21

2.7. Advance Encryption Standard............................................................ 22

2.7.1. Panjang Kunci dan Ukuran Blok Rijndael ........................... 23

2.7.2. Algoritma Rijndael............................................................... 25

2.7.3. Transformasi SubBytes() ...................................................... 28

2.7.4. Transformasi ShiftRows()..................................................... 30

2.7.5. Transformasi MixColumns() ................................................ 30

2.7.6. Transformasi AddRoundKey().............................................. 32

2.7.7. Ekspansi Kunci .................................................................... 32

2.8. Kriptografi Kunci Publik.................................................................... 32

2.8.1. Sejarah Kriptografi Kunci Publik ........................................ 32

2.8.2. Konsep Kriptografi Kunci Publik ........................................ 33

2.8.3. Aplikasi Kriptografi Kunci Publik ....................................... 37

2.9. RSA (Rivest Shamir Adleman) .......................................................... 38

2.9.1. Perumusan Algoritma Rivest Shamir Adleman ................... 39

2.9.2. Algoritma Membangkitkan Pasangan Kunci ....................... 41

2.9.3. Algoritma Enkripsi/Dekripsi................................................ 42

2.9.4. Keamanan Rivest Shamir Adleman ..................................... 42

2.9.5. Kecepatan ............................................................................. 44

2.10. PHP .................................................................................................... 45

2.10.1. Pengertian PHP .................................................................... 45

2.10.2. Kelebihan-kelebihan PHP .................................................... 45

2.10.3. Sintaks PHP.......................................................................... 46

2.11. MySQL............................................................................................... 46

BAB III METODOLOGI PENELITIAN ........................................................... 48

3.1. Metode Pengumpulan Data ................................................................ 48

3.1.1. Metode Observasi ................................................................ 48

3.1.2. Metode Wawancara.............................................................. 49

xii

Page 12: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

3.1.3. Metode Studi Pustaka........................................................... 49

3.1.4. Metode Studi Literatur ......................................................... 49

3.2. Metode Pengembangan Sistem .......................................................... 50

3.2.1. Fase Perencanaan Syarat-Syarat .......................................... 50

3.2.2. Fase Perancangan ................................................................. 53

3.2.3. Fase Konstruksi.................................................................... 55

3.2.4. Fase Pelaksanaan.................................................................. 55

BAB IV PEMBAHASAN DAN IMPLEMENTASI .......................................... 57

4.1. Gambaran Umum CV Maharta Mandiri Promo................................. 57

4.1.1. Sekilas CV Maharta Mandiri Promo.................................... 57

4.1.2. Visi dan Misi CV Maharta Mandiri Promo ......................... 58

4.1.3. Struktur Organisasi CV Maharta Mandiri Promo ................ 58

4.2. Hasil Observasi .................................................................................. 59

4.3. Aplikasi Acrypt cs .............................................................................. 59

4.4. Fase Perencanaan Syarat-syarat ......................................................... 60

4.4.1. Analisis Kebutuhan Masalah ............................................... 60

4.4.2. Tujuan .................................................................................. 60

4.4.3. Syarat-syarat......................................................................... 61

4.5. Fase Perancangan (Workshop Design) ............................................... 61

4.5.1. Perancangan Proses.............................................................. 62

4.5.2. Perancangan Flowchart........................................................ 64

4.5.3. Perancangan Basis Data ....................................................... 76

4.5.4. Perancangan Antarmuka ...................................................... 80

4.5.5. State Transition Diagram ................................................... 100

4.6. Fase Konstruksi ................................................................................ 106

4.7. Fase Pelaksanaan (Implementasi) .................................................... 107

4.7.1. Konfigurasi Client Server .................................................. 108

4.7.2. Proses Enkripsi dan Dekripsi Multifile .............................. 108

4.7.3. Pengujian Aplikasi Acrypt cs............................................. 109

xiii

Page 13: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

BAB V PENUTUP .......................................................................................... 112

5.1. Kesimpulan ...................................................................................... 112

5.2. Saran................................................................................................. 113

DAFTAR PUSTAKA ......................................................................................... 114

LAMPIRAN A HASIL WAWANCARA ........................................................... 116

LAMPIRAN B TAMPILAN APLIKASI ACRYPT CS..................................... 118

LAMPIRAN C KODE SUMBER APLIKASI ACRYPT CS............................. 131

xiv

Page 14: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

DAFTAR GAMBAR

Gambar 2.1. Enkripsi Secara Umum......................................................................11

Gambar 2.2. Sebuah scytale, pesan yang ditulis secara horizontal,

baris perbaris .....................................................................................16

Gambar 2.3. Mesin enkripsi Enigma yang digunakan oleh tentara Jerman

pada masa Perang Dunia ke II ..........................................................17

Gambar 2.4. Caesar Wheel.....................................................................................19

Gambar 2.5. Diagram Proses Enkripsi ...................................................................27

Gambar 2.6. Transformasi SubBytes .....................................................................31

Gambar 2.7. Transformasi ShiftRows....................................................................31

Gambar 2.8. Transformasi MixColumns ...............................................................32

Gambar 2.9. Transformasi AddRoundKey ............................................................33

Gambar 2.10. Skema kriptografi nirsimetri ...........................................................35

Gambar 3.1. Proses enkripsi dan dekripsi ..............................................................54

Gambar 3.2. Ilustrasi metodologi penelitian pengembangan aplikasi

kriptografi berbasis client server (acrypt cs).....................................56

Gambar 4.1. Organisasi CV Maharta Mandiri Promo ...........................................59

Gambar 4.2. Diagram konteks sistem yang diusulkan ...........................................62

Gambar 4.3. Diagram zero sistem yang diusulkan ................................................62

Gambar 4.4. Diagram level satu proses 1.0 (login)................................................63

Gambar 4.5. Diagram level satu proses 2.0 (enkripsi) ...........................................63

Gambar 4.6. Diagram level satu proses 3.0 (dekripsi) ...........................................63

Gambar 4.7. Flowchart proses enkripsi .................................................................65

Gambar 4.8. Flowchart proses enkripsi dengan metode RSA ...............................67

xv

Page 15: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Gambar 4.9. Flowchart proses enkripsi dengan metode RSA ...............................69

Gambar 4.10. Flowchart proses dekripsi ...............................................................71

Gambar 4.11. Flowchart proses dekripsi dengan metode RSA .............................73

Gambar 4.12. Flowchart proses dekripsi dengan metode RSA .............................75

Gambar 4.13. Struktur Entity Relationship Diagram.............................................76

Gambar 4.14. Logical Record Structure (LRS) .....................................................78

Gambar 4.15. Rancangan halaman login ...............................................................81

Gambar 4.16. Rancangan halaman sign up ............................................................82

Gambar 4.17. Rancangan halaman utama ..............................................................83

Gambar 4.18. Rancangan halaman input file enkripsi ...........................................84

Gambar 4.19. Rancangan halaman input file enkripsi ...........................................85

Gambar 4.20. Rancangan halaman cek file............................................................86

Gambar 4.21. Rancangan halaman input password ...............................................87

Gambar 4.22. Rancangan halaman pilih tujuan .....................................................88

Gambar 4.23. Rancangan halaman encryption complete .......................................89

Gambar 4.24. Rancangan halaman pilih file ..........................................................90

Gambar 4.25. Rancangan halaman cek file............................................................91

Gambar 4.26. Rancangan halaman input private key ............................................92

Gambar 4.27. Rancangan halaman decryption complete .......................................93

Gambar 4.28. Rancangan halaman inbox ..............................................................94

Gambar 4.29. Rancangan halaman outbox ............................................................95

Gambar 4.30. Rancangan halaman my key (security question) .............................96

Gambar 4.31. Rancangan halaman my key (private key) ......................................96

Gambar 4.32. Rancangan halaman generate key ...................................................97

xvi

Page 16: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Gambar 4.33. Rancangan halaman change password ............................................98

Gambar 4.34. Rancangan halaman help.................................................................99

Gambar 4.35. Rancangan halaman about.............................................................100

Gambar 4.36. State Transition Diagram Aplikasi Acrypt CS .............................101

Gambar 4.37. Informasi file sebelum dienkripsi..................................................109

Gambar 4.38. Informasi file sesudah dienkripsi ..................................................110

Gambar 4.39. Informasi file sesudah didekripsi ..................................................111

xvii

Page 17: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

DAFTAR TABEL

Tabel 2.1. Tiga buah Versi AES ............................................................................24

Tabel 2.2. S-Box ....................................................................................................29

Tabel 4.1. Tabel ukuran dan waktu enkripsi ........................................................110

Tabel 4.2. Tabel ukuran dan waktu dekripsi ........................................................111

xviii

Page 18: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

BAB I

PENDAHULUAN

1.1. Latar Belakang

Pesatnya perkembangan teknologi informasi telah menjadikan

informasi sebagai kebutuhan pokok bagi setiap orang. Informasi juga

merupakan hal yang vital bagi sebuah perusahaan, karena informasi

dapat membantu suatu perusahaan untuk terus berkembang dalam

persaingan global.

Masalah yang terjadi pada proses pengiriman ataupun mendapatkan

informasi adalah apabila informasi itu bersifat rahasia. Bila informasi

tersebut tersebar luas karena adanya penyadapan, pencurian, dan

pemalsuan informasi, akan menyebabkan kerugian bagi pemilik

informasi. Salah satu cara untuk mengamankan data atau informasi dari

tindak kejahatan tersebut adalah menggunakan konsep kriptografi.

CV Maharta Mandiri Promo sebagai sebuah perusahaan desain

grafis dan percetakan, memiliki jaringan komputer untuk memperlancar

arus informasi di dalam perusahaan. Jaringan komputer tersebut memiliki

sebuah server dengan kurang lebih dua puluh client. Semua informasi di

perusahaan ini di-share lewat jaringan komputer tersebut. Namun

ternyata kemudahan tersebut tidak memiliki pengamanan yang baik. Di

perusahaan ini pernah terjadi pencurian informasi yang menyebabkan

kerugian bagi perusahaan tersebut. Sehingga perusahaan membutuhkan

1

Page 19: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

sistem keamanan yang kuat untuk mengamankan data penting mereka,

seperti data proyek, desain grafis, dan data internal perusahaan lainnya.

Pada penelitian yang telah dilakukan (Muliati, 2009), dibuat

aplikasi enkripsi menggunakan metode Blowfish dan Rivest Shamir

Adleman yang dapat mengenkripsi maksimum lima file sekaligus. Oleh

karena itu, beberapa kelebihan akan ditambahkan pada aplikasi yang

akan dibuat diantaranya dapat mengenkripsi sepuluh file sekaligus.

Untuk itu peneliti berupaya mewujudkan implementasi keamanan

data dengan menggunakan metode enkripsi Advance Encryption

Standard dan Rivest Shamir Adleman ke dalam suatu aplikasi yang

mudah digunakan, dalam skripsi yang berjudul PEMBUATAN

APLIKASI ENKRIPSI MENGGUNAKAN METODE ADVANCE

ENCRYPTION STANDARD DAN RIVEST SHAMIR ADLEMAN

STUDI KASUS CV MAHARTA MANDIRI PROMO.

1.2. Rumusan Masalah

Berdasarkan latar belakang, masalah pokok yang akan dibahas

penulis adalah membuat aplikasi enkripsi yang mudah digunakan dan

menjamin kerahasiaan data dengan menggunakan metode Advance

Encryption Standard dan Rivest Shamir Adleman.

2

Page 20: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1.3. Batasan Masalah

Untuk menghindari meluasnya materi pembahasan tugas akhir ini,

maka permasalahan dibatasi hanya mencakup hal-hal berikut :

1. Penelitian dibatasi dengan menggunakan metode enkripsi Advance

Encryption Standard dan Rivest Shamir Adleman.

2. Pada aplikasi ini proses enkripsi/dekripsi dan pengiriman data

dapat dilakukan pada multifile. Jumlah file dibatasi sebanyak 10

file dengan maksimum ukuran file 1 GB pada sekali proses enkripsi

atau dekripsi untuk kunci yang sama, untuk menghindari proses

enkripsi yang terlalu lama.

3. Aplikasi hanya mengenkripsi file tunggal (bukan folder) karena

enkripsi folder akan menyebabkan satu serangan terhadapnya akan

berakibat pada semua file yang ada di folder tersebut.

4. Aplikasi dititikberatkan pada proses pengamanan data dengan

pencegahan pembacaan file oleh pihak-pihak yang tidak berhak.

5. Hasil akhir file enkripsi akan menghasilkan file terenkripsi (*.znc),

dan password terenkripsi akan disimpan di database.

6. Aplikasi dibuat menggunakan bahasa pemrograman PHP dan

menggunakan database MySQL, serta dijalankan dengan

menggunakan Web Server Apache.

7. Aplikasi dibuat untuk diimplementasikan pada CV Maharta

Mandiri Promo.

3

Page 21: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1.4. Tujuan Penelitian

1. Dapat mengimplementasikan dua buah metode enkripsi pada

aplikasi pengamanan data berbasis client server yang mudah

digunakan.

2. Dapat mengamankan data-data penting pada CV Maharta Mandiri

Promo.

1.5. Manfaat Penelitian

Manfaat yang didapat dalam menulis skripsi ini adalah :

1. Bagi Penulis

a. Menerapkan ilmu kriptografi khususnya enkripsi dengan

menggabungkan metode enkripsi simetris (Advance

Encryption Standard) dan metode enkripsi asimetris (Rivest

Shamir Adleman).

b. Membangun aplikasi enkripsi berbasis client server yang

dapat membantu menjaga data-data penting.

2. Bagi Pengguna

a. Memiliki sarana untuk lebih meningkatkan keamanan data

yang dianggap rahasia.

b. Memudahkan pengamanan data karena menggunakan kunci

publik. Sehingga tidak memerlukan pertukaran kunci privat.

3. Bagi Universitas

Memberikan sumbangan ilmiah bagi perkembangan teknologi

keamanan data.

4

Page 22: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1.6. Metodologi Penelitian

Pada penulisan tugas akhir ini, diperlukan data-data yang lengkap

sebagai bahan pendukung kebenaran materi uraian dan pembahasan.

Oleh karena itu diperlukan metodologi pengumpulan data dan metode

membangun sistem.

1.6.1. Metodologi Pengumpulan Data

1. Observasi

Pengamatan dilakukan secara langsung pada

komputer dan jaringannya di CV Maharta Mandiri Promo.

2. Wawancara

Wawancara adalah proses memperoleh keterangan

untuk tujuan penelitian dengan cara tanya-jawab sambil

bertatap muka antara pewawancara dengan narasumber.

3. Studi Pustaka

Membaca dan mempelajari referensi yang ada

sebagai pelengkap serta mencari referensi tambahan dari

internet.

4. Studi Literatur

Metode studi literatur digunakan dengan melihat

penelitian yang sudah ada. Melalui studi literatur, peneliti

dapat terhindar dari melakukan penelitian yang sudah

pernah dilakukan, dan pengulangan kesalahan-kesalahan

masa lalu.

5

Page 23: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1.6.2. Metodologi Pengembangan Sistem

Metodologi pengembangan sistem yang digunakan dalam

penelitian ini adalah metode pengembangan model RAD (Rapid

Application Development), model ini dibuat oleh James Martin

untuk membuat sistem yang cepat tanpa harus mengorbankan

kualitas. Dan melingkupi fase-fase sebagai berikut (Kendall &

Kendall, 2003 : 237) :

1) Fase Perencanaan Syarat-Syarat

Pada tahap ini dilakukan penentuan tujuan dan syarat-

syarat informasi.

2) Fase Perancangan

Pada tahap ini dilakukan perancangan proses yaitu proses-

proses yang akan terjadi di dalam sistem, yang terdiri dari

perancangan proses dan perancangan antarmuka pemakai

(user interface).

3) Fase Konstruksi

Pada fase ini dilakukan tahap pengkodean terhadap

rancangan-rancangan yang telah didefinisikan.

4) Fase Pelaksanaan

Pada fase ini dilakukan pengujian terhadap sistem dan

melakukan pengenalan sistem kepada pengguna.

1.7. Sistematika Penulisan

Dalam penulisan skripsi ini dibagi menjadi beberapa bab, yaitu :

6

Page 24: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

BAB I PENDAHULUAN

Bab ini terdiri dari latar belakang, rumusan masalah, batasan

masalah, tujuan, manfaat, metodologi penelitian, dan

sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini berisi uraian tentang landasan teori yang diperlukan

dalam pembuatan aplikasi enkripsi.

BAB III METODOLOGI PENELITIAN

Bab ini menguraikan secara rinci metodologi yang digunakan

dalam pembuatan sistem aplikasi.

BAB IV PEMBAHASAN DAN IMPLEMENTASI

Bab ini menguraikan tentang gambaran umum objek penelitian

yaitu CV Maharta Mandiri Promo serta pengembangan sistem

aplikasi enkripsi yang dibuat.

BAB V PENUTUP

Bab ini berisi kesimpulan akhir dan saran-saran untuk

membangun sistem enkripsi lebih lanjut.

DAFTAR PUSTAKA

LAMPIRAN

7

Page 25: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

BAB II

LANDASAN TEORI

2.1. Keamanan Data

Keamanan dan kerahasiaan data merupakan sesuatu yang sangat

penting dalam era informasi ini dan telah menjadi kebutuhan dasar

karena perkomputeran secara global telah menjadi tidak aman. Informasi

akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau

dibajak oleh orang yang tidak berhak. Bahkan mungkin beberapa

pengguna dari sistem itu sendiri, mengubah data yang dimiliki menjadi

sesuatu yang tidak kita inginkan.

Keamanan data pada komputer tidak hanya tergantung pada

teknologi saja, tetapi dari aspek prosedur dan kebijakan keamanan yang

diterapkan serta kedisiplinan sumber daya manusia. Jika firewall dan

perangkat keamanan lainnya bisa dibobol oleh orang yang tidak berhak,

maka peran utama kriptografi untuk mengamankan data atau dokumen

dengan menggunakan teknik enkripsi sehingga data atau dokumen tidak

bisa dibaca (Ariyus, 2006 : 3).

2.2. Aplikasi

Perangkat lunak (aplikasi) adalah program yang ditulis oleh

pemrogram komputer untuk memecahkan suatu masalah tertentu dengan

menggunakan bahasa pemrograman (Hartono, 1999 : 360).

8

Page 26: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.3. Enkripsi dan Dekripsi

Enkripsi adalah sebuah proses yang melakukan perubahan sebuah

kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa

dimengerti (Wahana Komputer, 2003 : 17). Enkripsi dapat diartikan

sebagai kode atau cipher. Sebuah sistem pengkodean menggunakan suatu

table atau kamus yang telah didefinisikan untuk mengganti kata dari

informasi yang dikirim. Sebuah cipher menggunakan suatu algoritma

yang dapat mengkodekan semua aliran data (stream) bit dari sebuah

pesan menjadi cryptogram yang tidak dimengerti (unnitelligible). Karena

teknik cipher merupakan suatu sistem yang telah siap untuk diautomasi,

maka teknik ini digunakan dalam sistem keamanan komputer dan

jaringan.

Enkripsi dimaksudkan untuk melindungi informasi agar tidak

terlihat oleh orang atau pihak yang tidak berhak. Informasi ini dapat

berupa nomor kartu kredit, catatan penting dalam komputer, maupun

password untuk mengakses sesuatu.

Sepanjang sejarah pembentukan kode dan pemecahannya selalu

mendapat perhatian khusus dalam operasi militer. Penggunaan komputer

untuk pertama kalinya dalam kriptografi merupakan usaha untuk

memecahkan kode enigma Nazi sewaktu Perang Dunia II. Kini, pada

zaman modern, adanya komputer memungkinkan kita menghasilkan

kode yang kompleks, dan sebaliknya pula dapat digunakan untuk

memecahkannya.

9

Page 27: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

E-commerce adalah industri lain yang sangat intensif

memanfaatkan kriptografi. Dengan meng-enkrip paket data yang lalu

lalang di internet, walaupun seseorang dapat menangkap paket-paket data

tersebut, tetap saja ia tidak dapat memahami artinya.

Enkripsi juga digunakan untuk verifikasi. Bila anda men-download

software, bagaimana anda tahu bahwa software yang anda download

adalah yang asli, bukan yang telah dipasangkan trojan di dalamnya.

Dalam hal ini terdapat tiga kategori enkripsi, yaitu (Wahana

Komputer, 2003 : 18) :

1. Kunci enkripsi rahasia. Dalam hal ini, terdapat sebuah kunci yang

digunakan untuk mengenkripsi dan juga sekaligus mendekripsi

informasi.

2. Kunci enkripsi publik. Dalam hal ini, dua kunci digunakan. Satu

untuk proses enkripsi dan yang lain untuk proses dekripsi.

3. Fungsi one-way, atau fungsi satu arah adalah sustu fungsi dimana

informasi dienkripsi untuk menciptakan “signature” dari informasi

asli yang bisa digunakan untuk keperluan autentikasi.

Enkripsi dibentuk berdasarkan suatu algoritma yang akan

mengacak suatu informasi menjadi bentuk yang tidak bisa dibaca atau tak

bisa dilihat. Dekripsi adalah proses dengan algoritma yang sama untuk

mengembalikan informasi teracak menjadi bentuk aslinya. Algoritma

yang digunakan harus terdiri dari susunan prosedur yang direncanakan

secara hati-hati yang harus secara efektif menghasilkan sebuah bentuk

ter-enkripsi yang tidak bisa dikembalikan oleh seseorang, bahkan

10

Page 28: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

sekalipun mereka memiliki algoritma yang sama. Gambar 2.1

menunjukkan proses enkripsi secara umum.

kunci

Teks terang Enkripsi

Teks tersandi

Gambar 2.1. Enkripsi secara umum

(sumber : http://id.wikipedia.org/wiki/enkripsi)

2.4. Kriptografi

2.4.1. Definisi dan Terminologi

Kriptografi (cryptography) berasal dari bahasa Yunani :

“cryptos” artinya “secret”(rahasia), sedangkan “graphein”

artinya “writing” (tulisan). Jadi, kriptografi berarti “secret

writing” (tulisan rahasia). Dalam buku-buku lama (sebelum

tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu dan

seni untuk menjaga kerahasiaan pesan dengan cara

menyandikannya ke dalam bentuk yang tidak dapat dimengerti

lagi maknanya. Namun saat ini kriptografi lebih dari sekedar

privacy, tetapi juga untuk tujuan data integrity, authentication,

dan non-repudiation (Munir, 2006 : 2).

Beberapa istilah yang penting dalam kriptografi yang

perlu diketahui adalah sebagai berikut (Munir, 2006 : 3):

11

Page 29: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1. Pesan, Plainteks, dan Cipherteks

Pesan (message) adalah data atau informasi yang dapat

dibaca dan dimengerti maknanya. Nama lain untuk pesan

adalah plainteks (plaintext) atau teks-jelas (cleartext).

Pesan yang disandikan ke bentuk lain disebut cipherteks

(ciphertext) atau kriptogram (cryptogram).

2. Pengirim dan Penerima

Komunikasi data melibatkan pertukaran pesan antara dua

entitas. Pengirim (sender) adalah entitas yang mengirim

pesan kepada entitas lainnya. Penerima (receiver) adalah

entitas yang menerima pesan.

3. Enkripsi dan Dekripsi

Proses menyandikan plainteks menjadi cipherteks disebut

enkripsi (encryption) atau enciphering (standard nama

menurut ISO 7498-2). Sedangkan proses mengembalikan

cipherteks menjadi plainteks semula dinamakan dekripsi

(decryption) atau deciphering (standard nama menurut

ISO 7498-2).

4. Cipher dan Kunci

Algoritma kriptografi disebut juga cipher yaitu aturan

untuk enciphering dan deciphering, atau fungsi

matematika yang digunakan untuk enkripsi dan dekripsi.

12

Page 30: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Beberapa cipher memerlukan algoritma yang berbeda

untuk enciphering dan deciphering. Kunci (key) adalah

parameter yang digunakan untuk transformasi enchipering

dan dechipering. Kunci biasanya berupa string atau

deretan bilangan.

5. Sistem Kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan

sistem kriptografi. Sistem kriptografi (cryptosystem)

adalah kumpulan yang terdiri dari algoritma kriptografi,

semua plainteks dan cipherteks yang mungkin, dan kunci.

Di dalam sistem kriptografi, cipher hanyalah salah satu

komponen saja.

6. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba

menangkap pesan selama ditransmisikan.

7. Kriptanalisis dan Kriptologi

Kriptografi berkembang sedemikian rupa sehingga

melahirkan bidang yang berlawanan yaitu kriptanalisis.

Kriptanalisis (cryptanalisys) adalah ilmu dan seni untuk

memecahkan cipherteks menjadi plainteks tanpa

mengetahui kunci yang digunakan. Pelakunya disebut

kriptanalis. Kriptologi (cryptology) adalah studi

mengenai kriptografi dan kriptanalisis.

13

Page 31: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.4.2. Tujuan Kriptografi

Kriptografi bertujuan untuk memberi layanan keamanan

sebagai berikut (Munir, 2006 : 9):

1. Kerahasiaan (confidentiality)

Adalah layanan yang ditujukan untuk menjaga agar pesan

tidak dapat dibaca oleh pihak-pihak yang tidak berhak.

2. Integritas data (data integrity)

Adalah layanan yang menjamin bahwa pesan masih

asli/utuh atau belum pernah dimanipulasi selama

pengiriman.

3. Otentikasi (authentication)

Adalah layanan yang berhubungan dengan identifikasi,

baik mengidentifikasi kebenaran pihak-pihak yang

berkomunikasi (user authentication atau entity

authentication) maupun mengidentifikasi kebenaran

sumber pesan (data origin authentication).

4. Nirpenyangkalan (non-repudiation)

Adalah layanan untuk mencegah entitas yang

berkomunikasi melakukan penyangkalan, yaitu pengirim

pesan menyangkal melakukan pengiriman atau penerima

pesan menyangkal telah menerima pesan.

14

Page 32: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.4.3. Sejarah Kriptografi

Sejarah kriptografi sebagian besar merupakan sejarah

kriptografi klasik, yaitu metode enkripsi yang menggunakan

kertas dan pensil atau mungkin dengan bantuan alat mekanik

sederhana.

Sejarah kriptografi klasik mencatat penggunaan cipher

transposisi oleh tentara Sparta di Yunani pada permulaan tahun

400 SM. Mereka menggunakan alat yang namanya scytale

(Gambar 2.1). Sedangkan algoritma substitusi paling awal dan

paling sederhana adalah caesar cipher, yang digunakan oleh raja

Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti

setiap karakter di dalam alfabet dengan karakter yang terletak

pada tiga posisi berikutnya di dalam susunan alphabet (Munir,

2006 : 10).

Gambar 2.2. Sebuah scytale, pesan yang ditulis secara

horizontal, baris perbaris.

(Sumber : http://global.mitsubishielectric.com).

Kriptografi juga digunakan untuk tujuan keamanan.

Kalangan gereja pada masa awal agama kristen menggunakan

15

Page 33: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

kriptografi untuk menjaga tulisan relijius dari gangguan otoritas

politik atau budaya yang dominan saat itu.

Pada abad ke-17, sejarah kriptografi mencatat korban

ketika ratu Scotlandia, Queen Mary, dipancung setelah surat

rahasianya dari balik penjara (surat terenkripsi yang isinya

rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh

seorang pemecah kode.

Seperti yang telah disebutkan di atas bahwa kriptografi

umum digunakan di kalangan militer. Pada Perang Dunia ke II,

Pemerintah Nazi Jerman membuat mesin enkripsi yang

dinamakan enigma (Gambar 2.2). Mesin yang menggunakan

beberapa buah rotor (roda berputar) ini melakukan enkripsi

dengan cara yang sangat rumit (Munir, 2006 : 11).

Gambar 2.3. Mesin enkripsi Enigma yang digunakan oleh

tentara Jerman pada masa Perang Dunia ke II.

(Sumber : http://www.technology.niagarac.on.ca).

Kriptografi modern dipicu oleh perkembangan peralatan

komputer digital. Dengan komputer digital, cipher yang

16

Page 34: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

kompleks menjadi sangat mungkin untuk dapat dihasilkan.

Tidak seperti kriptografi klasik yang mengenkripsi karakter per

karakter, kriptografi modern beroperasi pada string biner.

Cipher yang kompleks seperti DES (Data Encryption Standard)

dan penemuan algoritma RSA adalah algoritma kriptografi

modern yang paling dikenal di dalam sejarah kriptografi

modern. Kriptografi modern tidak hanya berkaitan dengan

teknik menjaga kerahasiaan pesan, tetapi juga melahirkan

konsep seperti tandatangan digital dan sertifikat digital. Dengan

kata lain, kriptografi modern tidak hanya memberikan aspek

keamanan confidentiality, tetapi juga aspek keamanan lain

seperti otentikasi, integritas data, dan nirpenyangkalan (Munir,

2006 : 12).

2.5. Algoritma Kriptografi Klasik

Rinaldi Munir. Pada dasarnya, algoritma kriptografi klasik dapat

dikelompokkan ke dalam dua macam cipher (Munir, 2006 : 55):

2.5.1. Cipher Substitusi

Di dalam cipher substitusi setiap unit plainteks diganti

dengan satu unit cipherteks. Satu “unit” di sini bisa berarti satu

huruf, pasangan huruf, atau kelompok lebih dari dua huruf.

Chiper substitusi dapat dikelompokkan ke dalam empat jenis

(Munir, 2006 : 61):

17

Page 35: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1. Cipher Alfabet Tunggal (Monoalphabetic cipher), satu

huruf di plainteks diganti dengan tepat satu huruf

cipherteks.

2. Cipher Alphabetic Majemuk (Polyalphabetic chiper),

merupakan cipher substitusi ganda.

3. Cipher Substitusi Homofonik (homophonic substitution

cipher), seperti cipher alfabet tunggal tetapi setiap huruf

dalam plainteks dapat dipetakan ke dalam salah satu dari

unit cipherteks yang mungkin.

4. Cipher Substitusi Poligram (Polygram substitution

cipher), setiap kelompok huruf disubstitusi dengan

kelompok huruf cipherteks.

Algoritma substitusi tertua yang diketahui adalah caesar

cipher yang digunakan oleh kaisar Romawi, Julius Caesar, untuk

menyandikan pesan yang ia kirim kepada para gubernurnya.

Gambar 2.3 memperlihatkan caesar wheel terdiri dari dua

buah lempeng lingkaran besi. Lingkaran besi paling luar

menyatakan huruf-huruf plainteks sedangkan lingkaran besi

terdalam menyatakan huruf-huruf cipherteks.

Gambar 2.4. Caesar Wheel (Sumber : http://mail.colonial.net)

18

Page 36: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.5.2. Cipher Transposisi

Pada cipher transposisi, huruf-huruf di dalam plainteks

tetap sama, hanya saja urutannya diubah. Dengan kata lain

algoritma ini melakukan transpose terhadap rangkaian karakter

di dalam teks. Nama lain untuk metode ini adalah permutasi

atau pengacakan (scrambling) karena transpose setiap karakter

di dalam teks sama dengan mempermutasikan karakter-karakter

tersebut. Kriptografi dengan alat scytale yang digunakan oleh

tentara Sparta pada zaman Yunani termasuk ke dalam cipher

transposisi.

Misalkan sebuah plainteks :

DEPARTEMEN TEKNIK INFORMATIKA ITB

Untuk meng-enkripsi pesan, plainteks ditulis secara

horizontal dengan lebar kolom tetap, misal selebar 6 karakter

(kunci k = 6) :

DEPART

EMENTE

KNIKIN

FORMAT

IKAITB

Maka cipherteksnya dibaca secara vertikal menjadi

DEKFIEMNOKPEIRAANKMIRTIATTENTB

Atau dapat juga ditulis dalam kelompok-kelompok yang

terdiri dari 4 huruf :

DEKF IEMN OKPE IRAA NKMI RTIA TTEN TB

Untuk mendekripsi pesan, kita membagi panjang

cipherteks dengan kunci. Pada contoh ini, kita membagi 30

19

Page 37: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

dengan 6 untuk mendapatkan 5 (jika cipherteks ditulis dalam

kelompok-kelompok huruf, buang semua spasi yang ada

sehingga menjadi string yang panjang). Algoritma dekripsi

identik dengan algoritma enkripsi. Jadi, kita tulis cipherteks

dalam baris-baris selebar 5 karakter menjadi :

DEKFI

EMNOK

PEIRA

ANKMI

RTIAT

TENTB

Dengan membaca setiap kolom kita memperoleh pesan

semula :

DEPARTEMEN TEKNIK INFORMATIKA ITB

2.6. Algoritma Kriptografi Modern

Kriptografi modern mempunyai kerumitan yang sangat kompleks

karena dioperasikan menggunakan komputer (Ariyus, 2008: 46).

Kriptografi modern merupakan suatu perbaikan yang mengacu pada

kriptografi klasik. Algoritma kriptografi modern terdiri dari dua bagian

(Ariyus, 2008: 108) :

2.6.1. Algoritma Simetris

Algoritma simetris adalah algoritma yang menggunakan

kunci yang sama untuk enkripsi dan dekripsinya. Keamanan

algoritma simetris tergantung pada kuncinya. Algoritma simetris

sering juga disebut algoritma kunci rahasia, algoritma kunci

tunggal atau algoritma satu kunci. Dua kategori yang termasuk

20

Page 38: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

pada algoritma simetris ini adalah algoritma block cipher dan

stream cipher.

Aplikasi dari algoritma simetris diantaranya adalah:

1. Data Encryption Standard (DES).

2. Advanced Encryption Standard (AES).

3. International Data Encryption Algorithm (IDEA).

4. A5.

5. RC4.

2.6.2. Algoritma Asimetris

Algoritma asimetris adalah pasangan kunci kriptografi

yang salah satunya digunakan untuk proses enkripsi dan yang

satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci

publik dapat menggunakannya untuk mengenkripsi suatu pesan,

sedangkan hanya satu orang saja yang memiliki kunci rahasia

itu, yang dapat melakukan pembongkaran terhadap kode yang

dikirim untuknya.

Beberapa algoritma asimetris antara lain:

1. RSA (Rivest Shamir Adleman).

2. Diffie Hellman.

2.6.3. Algoritma Hibrida

Algoritma hibrida adalah algoritma yang memafaatkan

dua tingkatan kunci, yaitu kunci rahasia (simetri) – yang disebut

juga session key (kunci sesi) – untuk enkripsi data dan pasangan

21

Page 39: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

kunci rahasia – kunci publik untuk pemberian tandatangan

digital serta melindungi kunci simetri.

2.7. Advance Encryption Standard

DES (Data Encryption Standard) dianggap sudah tidak aman lagi

karena dengan perangkat keras khusus kuncinya bisa ditemukan dalam

beberapa hari. National Institute of Standards and Technology (NIST),

sebagai agensi Departemen Perdagangan AS mengusulkan kepada

Pemerintah Federal AS untuk sebuah standard kriptografi yang baru.

Untuk menghindari kontroversi mengenai standard yang baru

tersebut, NIST mengadakan sayembara terbuka untuk membuat standard

algoritma kriptografi yang akan diberi nama Advanced Encryption

Standard (AES) (Munir, 2006 : 157).

Persyaratan yang diajukan oleh NIST adalah :

1. Algoritma yang ditawarkan termasuk ke dalam kelompok algoritma

kriptografi simetri berbasis cipher blok.

2. Seluruh rancangan algoritma harus publik (tidak dirahasiakan).

3. Panjang kunci fleksibel : 128, 192, dan 256 bit.

4. Ukuran blok yang dienkripsi adalah 128 bit.

5. Algoritma dapat diimplementasikan baik sebagai software maupun

hardware.

Pada bulan Agustus 1998, NIST memilih 5 finalis yang didasarkan

pada aspek keamanan algoritma, kemangkusan (efficiency), fleksibilitas,

dan kebutuhan memori. Finalis tersebut adalah (Munir, 2006 : 157):

22

Page 40: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1. Rijndael (dari Vincent Rijmen and Joan Daemen – Belgia, 86

suara).

2. Serpent (dari Ross Anderson, Eli Biham, dan Lars Knudsen –

Inggris, Israel, dan Norwegia, 59 suara).

3. Twofish (dari tim yang diketuai oleh Bruce Schneier – USA, 31

suara).

4. RC6 (dari laboratorium RIVEST SHAMIR ADLEMAN – USA, 23

suara).

5. MARS (dari IBM, 13 suara).

Pada bulan Oktober 2000, NIST mengumumkan untuk memilih

Rijndael (dibaca : Rhinedoll), dan pada bulan November 2001, Rijndael

ditetapkan sebagai Advance Encryption Standard, dan diharapkan

Rijndael menjadi standard kriptografi yang dominan paling sedikit

selama sepuluh tahun (Munir, 2006 : 158).

2.7.1. Panjang Kunci dan Ukuran Blok Rijndael

Rijndael mendukung panjang kunci 128 bit sampai 256 bit

dengan step 32 bit. Panjang kunci dan ukuran blok dapat dipilih

secara independen. Setiap blok dienkripsi dalam sejumlah

putaran tertentu, sebagaimana halnya pada DES.

Karena Advance Encryption Standard menetapkan

panjang kunci adalah 128, 192, dan 256, maka dikenal Advance

Encryption Standard-128, Advance Encryption Standard-192,

dan Advance Encryption Standard-256. Table 2.1. meresumekan

perbedaan ketiga versi Advance Encryption Standard tersebut.

23

Page 41: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Tabel 2.1. Tiga buah Versi Advance Encryption Standard

(Sumber : Munir, 2006 : 158)

Panjang Kunci

(Nk words) Ukuran Blok

(Nb words) Jumlah Putaran

(Nr)

AES-128 4 4 10

AES-192 6 4 12

AES-256 8 4 14 Catatan : 1 word = 32 bit

Secara defacto, hanya ada dua varian AES, yaitu AES-128

dan AES 256, karena akan sangat jarang pengguna

menggunakan kunci yang panjangnya 192 bit. Karena Advance

Encryption Standard mempunyai panjang kunci paling sedikit

128 bit, maka Advance Encryption Standard tahan terhadap

serangan exhaustive key search dengan teknologi saat ini.

Dengan panjang kunci 128-bit, maka terdapat sebanyak

2128 = 3,4 x 1038

kemungkinan kunci. Jika digunakan komputer tercepat

yang dapat mencoba 1 juta kunci setiap detik, maka akan

dibutuhkan waktu 5,4 x 1024 tahun untuk mencoba seluruh

kemungkinan kunci. Jika digunakan komputer tercepat yang

dapat mencoba 1 juta kunci setiap milidetik, maka akan

dibutuhkan waktu 5,4 x 1018 tahun untuk mencoba seluruh

kemungkinan kunci.

24

Page 42: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.7.2. Algoritma Rijndael

Rijndael menggunakan substitusi dan permutasi, dan

sejumlah putaran (cipher berulang), setiap putaran

menggunakan kunci internal yang berbeda (kunci setiap putaran

disebut round key). Tetapi tidak seperti DES yang berorientasi

bit, Rijndael beroperasi dalam orientasi byte. Selain itu, Rijndael

tidak menggunakan jaringan Feistel seperti DES dan GOST.

Garis besar Algoritma Rijndael yang beroperasi pada blok

128-bit dengan kunci 128-bit adalah sebagai berikut (Munir,

2006 : 159):

1. AddRoundKey : melakukan XOR antara state awal

(plainteks) dengan cipher key. Tahap ini disebut juga

initial round.

2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada

setiap putaran adalah :

a. SubBytes : substitusi byte dengan menggunakan

table substitusi (S-box).

b. ShiftRows : pergeseran baris-baris array state

secara wrapping.

c. MixColumns : mengacak data di masing-masing

kolom array state.

d. AddRoundKey : melakukan XOR antara state

sekarang dengan round key.

3. Final round : proses untuk putaran terakhir :

25

Page 43: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

a. SubBytes

b. ShiftRows

c. AddRoundKey

Garis besar algoritma enkripsi Rijndael diperlihatkan pada

gambar 2.5.

state

AddRoundKey

Chiper Key

initial round

1-SubBytes

2-ShiftRows

3-MixColumns

4-AddRoundKey

Round Key 0

9 rounds

SubBytes

ShiftRows

Round Key 10

AddRoundKey

final round

Gambar 2.5. Diagram Proses Enkripsi (Sumber : Munir, 2006 : 159)

Algoritma Rijndael mempunyai tiga parameter (Munir,

2006 : 161) :

1. plaintext : array yang berukuran 16-byte, yang berisi data

masukan.

26

Page 44: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

S0,0 S0,1 S0,1 S0,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

out0 out4 out8 out12

out1 out5 out9 out13

out2 out6 out10 out14

out3 out7 out11 out15

2. ciphertext : array yang berukuran 16-byte, yang berisi

hasil enkripsi.

3. key : array yang berukuran 16-byte, yang berisi kunci

ciphering (disebut juga cipher key).

Dengan 16 byte, maka baik blok data dan kunci yang

berukuran 128-bit dapat disimpan di dalam ketiga array tersebut

(128 = 16 x 8). Selama kalkulasi plainteks menjadi cipherteks,

status sekarang dari data disimpan di dalam array of bytes dua

dimensi, state, yang berukuran NROWS x NCOLS. Untuk blok

data 128-bit, ukuran state adalah 4 x 4. Elemen array state diacu

sebagai S[r,c], dengan 0 ≤ r < 4 dan 0 ≤ c < Nb (Nb adalah

panjang blok dibagi 32. Pada AES-128, Nb = 128/32 = 4).

Pada awal enkripsi, 16-byte data masukan, in0,in1,…,in15

disalin ke dalam array state (direalisasikan oleh fungsi

CopyPlaintextToState(state, plaintext)) seperti diilustrasikan

sebagai berikut :

input bytes state array output bytes

in0 in4 in8 in12

in1 in5 in9 in13

in2 in6 in10 in14

in3 in7 in11 in15

Operasi Enkripsi/dekripsi dilakukan terhadap array S, dan

keluarannya ditampung di dalam array out. Skema penyalinan

array masukan in ke array S adalah sebagai berikut :

27

Page 45: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2b

28

ab

09

7e

ae

f7

cf

15

d2

15

4f

16

a6

88

3c

S[r, c] ← in[r + 4c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb

Skema penyalinan array S ke array keluaran out :

out[r + 4c] ← S[r, c] untuk 0 ≤ r < 4 dan 0 ≤ c < Nb

Contoh elemen state dan kunci dalam notasi HEX :

input

state Cipher key

32

88

31

e0

43

5a

31

37

f6

30

98

07

a8

8d

a2

34

hexadecimal notation: Ex: 32 = 0011 0010 (1 byte)

3hex 2hex

2.7.3. Transformasi SubBytes()

Transformasi SubBytes memetakan setiap byte dari

array state dengan menggunakan tabel substitusi S-box.

Tidak seperti DES yang mempunyai S-box berbeda pada

setiap putaran, Advance Encryption Standard hanya

mempunyai satu buah S-box. Tabel S-box yang digunakan

ditunjukkan pada table 2.2 :

28

Page 46: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Tabel 2.2. S-box (Sumber : Munir, 2006 : 163)

y

hex 0 1 2 3 4 5 6 7 8 9 a b c d e f

0

63

7c

77

7b

f2

6b

6f

c5

30

01

67

2b

fe

d7

ab

76

1

ca

82

c9

7d

fa

59

47

f0

ad

d4

a2

af

9c

a4

72

c0

2

b7

fd

93

26

36

3f

f7

cc

34

a5

e5

f1

71

d8

31

15

3

04

c7

23

c3

18

96

05

9a

07

12

80

e2

eb

27

b2

75

4

09

83

2c

1a

1b

6e

5a

a0

52

3b

d6

b3

29

e3

2f

84

5

53

d1

00

ed

20

fc

b1

5b

6a

cb

be

39

4a

4c

58

cf

6

d0

ef

aa

fb

43

4d

33

85

45

f9

02

7f

50

3c

9f

a8

7

51

a3

40

8f

92

9d

38

f5

bc

b6

da

21

10

ff

f3

d2

8

cd

0c

13

ec

5f

97

44

17

c4

a7

7e

3d

64

5d

19

73

9

60

81

4f

dc

22

2a

90

88

46

ee

b8

14

de

5e

0b

db

a

e0

32

3a

0a

49

06

24

5c

c2

d3

ac

62

91

95

e4

79

b

e7

c8

37

6d

8d

d5

4e

a9

6c

56

f4

ea

65

7a

ae

08

c

ba

78

25

2e

1c

a6

b4

c6

e8

dd

74

1f

4b

bd

8b

8a

d

70

3e

b5

66

48

03

f6

0e

61

35

57

b9

86

c1

1d

9e

e

e1

f8

98

11

69

d9

8e

94

9b

1e

87

e9

ce

55

28

df

x

f

8c

a1

89

0d

bf

e6

42

68

41

99

2d

0f

b0

54

bb

16

Cara pensubstitusian adalah sebagai berikut : untuk setiap

byte pada array state, misalkan S[r,c]=xy, yang dalam hal ini xy

adalah digit hexadesimal dari nilai S[r,c], maka nilai

substitusinya, yang dinyatakan dengan S’[r,c], adalah elemen di

dalam S-box yang merupakan perpotongan baris x dengan kolom

y. Gambar 2.5 memperlihatkan transformasi SubBytes().

29

Page 47: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

a2,2 a

b2,1

a0,0 a0,1 a0,2 a0,3

a1,0 a1,1 a1,2 a1,3

SubBytes

b0,0 b0,1 b0,2 b0,3

b1,0 b1,1 b1,2 b1,3

a2,0 a2,1

a2,2 2,3

b2,0

b2,2

b2,2 b2,3

a3,0 a3,1 a3,2 a3,3

b3,0 b3,1 b3,2 b3,3

S

Gambar 2.6. Transformasi SubBytes

(Sumber : Munir, 2006 : 163)

2.7.4. Transformasi ShiftRows()

Transformasi ShiftRows() melakukan pergeseran secara

wrapping (siklik) pada 3 baris terakhir dari array state. Jumlah

pergeseran bergantung pada nilai baris (r). baris r = 1 digeser

sejauh 1 byte, baris r = 0 tidak digeser. Gambar 2.6

memperlihatkan transformasi ShiftRows.

Gambar 2.7. Transformasi ShiftRows

(Sumber : Munir, 2006 : 165)

2.7.5. Transformasi MixColumns()

Transformasi MixColumns() mengalikan setiap kolom dari

array state dengan polinom a(x) mod (x4 + 1). MixColumns

30

Page 48: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

memberikan difusi pada cipher. Setiap kolom diperlakukan

sebagai polinom 4-suku pada GF(28). Polinom a(x) yang

ditetapkan adalah

a(x) = {03}x3 + {01}x2 + {01}x + {02} (6.5)

Transformasi ini dinyatakan sebagai perkalian matriks :

S’(x) = a(x) s(x) (6.6)

S’0,c

S’1,c

= S’2,c

S’3,c

02 03 01 01

01 02 03 01

01 01 02 03

03 01 01 02

S0,c

S1,c

S2,c

S3,c

S’0,c = ({02}• S0,c) ⊕ ({03}• S1,c) ⊕ S2,c ⊕ S3,c

S’1,c = S0,c ⊕ ({02}• S1,c) ⊕ ({03}• S2,c) ⊕ S3,c

S’1,c = S0,c ⊕ S1,c ⊕ ({02}• S2,c) ⊕ ({03}• S2,c)

S’1,c = ({03}• S0,c) ⊕S1,c ⊕ S2,c ⊕ ({02}• S3,c)

Gambar 2.7 memperlihatkan transformasi MixColumns().

Gambar 2.8. Transformasi MixColumns

(Sumber : Munir, 2006 : 166)

31

Page 49: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.7.6. Transformasi AddRoundKey()

Transformasi ini melakukan operasi XOR terhadap sebuah

round key dengan array state, dan hasilnya disimpan di array

state. Gambar 2.8 memperlihatkan transformasi AddRoundKey.

Gambar 2.9. Transformasi AddRoundKey

(Sumber : Munir, 2006 : 167)

2.7.7. Ekspansi Kunci

Algoritma Rijndael mengambil cipher key, K, yang

diberikan oleh pengguna, dan memanggil fungsi

KeyExpansion() untuk membangkitkan sejumlah round key

(banyaknya round key bergantung pada jumlah putaran).

2.8. Kriptografi Kunci Publik

2.8.1. Sejarah Kriptografi Kunci Publik

Sistem kriptografi nirsimetri dipublikasikan pertama kali

pada tahun 1976 oleh Whitfield Diffie dan Martin Hellman, dua

32

Page 50: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

orang ilmuwan dari Stanford University melalui makalah

berjudul “New Directions in Cryptography”. Makalah mereka

membahas distribusi kunci rahasia pada saluran komunikasi

publik (yang tidak aman) dengan metode pertukaran kunci yang

belakangan dikenal dengan nama algoritma pertukaran kunci

Diffie-Hellman.

Pada tahun 1977, generalisasi dari ide Cocks ditemukan

kembali oleh tiga orang ilmuwan dari MIT, yaitu Rivest, Shamir,

dan Adleman. Algoritma enkripsi yang mereka buat dikenal

dengan nama Rivest Shamir Adleman.

Akhirnya sejak tahun 1976 berbagai algoritma enkripsi,

tanda tangan digital, pertukaran kunci, dan teknik lain

dikembangkan dalam bidang kriptografi kunci publik, misalnya

algoritma ElGamal untuk enkripsi dan tanda tangan digital dan

algoritma DSA untuk tanda tangan digital. Pada tahun 1980

Neal Koblitz memperkenalkan elliptic-curve-cryptography

sebagai keluarga baru yang analog dengan algoritma kriptografi

kunci publik (Munir, 2006 : 177).

2.8.2. Konsep Kriptografi Kunci Publik

Pada kriptografi kunci publik, setiap pengguna memiliki

sepasang kunci, satu kunci untuk enkripsi, dan satu kunci untuk

dekripsi (Gambar 2.9). Kunci untuk enkripsi diumumkan kepada

publik (oleh karena itu tidak rahasia) sehingga dinamakan kunci

publik (public key), disimbolkan dengan e. Kunci untuk

33

Page 51: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

dekripsi bersifat rahasia sehingga dinamakan kunci pribadi

(private key), disimbolkan dengan d. Karena kunci enkripsi ≠

kunci dekripsi itulah kriptografi kunci publik disebut juga

kriptografi nirsimetri (Munir, 2006 : 172).

Kunci Publik, e Kunci Privat, d

Plainteks, m

Enkripsi Ee (m) = c

Cipherteks, c Dekripsi Dd (c) = m

Plainteks, m

Gambar 2.10. Skema kriptografi nirsimetri

(Sumber : Munir, 2006 : 172)

Misalkan E adalah fungsi enkripsi dan D adalah fungsi

dekripsi. Misalkan (e, d) adalah pasangan kunci untuk enkripsi

dan dekripsi sedemikian, sehingga

Ee (m) = c dan Dd (c) = m

untuk suatu plainteks m dan cipherteks c. kedua persamaaan ini

menyiratkan bahwa dengan mengetahui e dan c, maka secara

komputasi hampir tidak mungkin menemukan m. asumsi

lainnya, dengan mengetahui e, secara komputasi hampir tidak

mungkin menurunkan d. Ee digambarkan sebagai fungsi pintu

kolong (trapdoor) satu arah dengan d adalah informasi trapdoor

yang diperlukan untuk menghitung fungsi inversinya, D, yang

dalam hal ini membuat proses dekripsi dapat dilakukan.

34

Page 52: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Dengan sistem kriptografi kunci publik ini dua orang yang

berkomunikasi tidak perlu berbagi kunci yang sama. Keduanya

memiliki sepasang kunci, kunci publik dan kunci privat. Sistem

kriptografi kunci publik yang aman memiliki dua karakteristik

sebagai berikut (Munir, 2006 : 174):

1. Komputasi untuk enkripsi/dekripsi mudah dilakukan.

2. Secara komputasi hampir tidak mungkin (infeasible)

menurunkan kunci privat, d, bila diketahui kunci publik, e,

pasangannya.

Kedua karakteristik di atas dapat dianalogikan dengan dua

masalah matematika berikut :

a. Perkalian vs pemfaktoran. Mengalikan dua buah bilangan

prima, a x b = n, mudah, tetapi memfaktorkan n menjadi

faktor-faktor primanya lebih sulit.

Contoh : 31 x 47 = 1457 (perkalian, mudah)

1457 = ? x ?

(pemfaktoran, sulit)

b. Pemangkatan vs logaritma diskrit. Melakukan

perpangkatan modulo, b = ax mod n, mudah, tetapi

menemukan x dari ax ≡ b (mod n) lebih sulit.

Contoh :

126 mod 1125 = 234 (perpangkatan modulo, mudah)

x dari 12x ≡ 234 (mod 1125) (logaritmik diskrit, sulit)

35

Page 53: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Dua masalah matematika di atas sering dijadikan dasar

pembangkitan sepasang kunci pada kriptografi kunci publik,

yaitu (Munir, 2006 : 175):

1. Pemfaktoran

Diberikan bilangan bulat n. Faktorkan n menjadi faktor

primanya. Contoh :

60 = 2 x 2 x 3 x 5

252601 = 41 x 61 x 101

213 – 1 = 3391 x 23279 x 65993 x 1868569 x

1066818132868207

Semakin besar n, semakin sulit memfaktorkan (butuh

waktu sangat lama). Algoritma yang menggunakan prinsip

ini : Rivest Shamir Adleman.

2. Logaritma Diskrit

Temukan x sedemikian ax ≡ b (mod n) sulit dihitung.

Contoh : jika 3x ≡ 15 (mod 17) maka x = 6.

Semakin besar a, b, dan n semakin sulit memfaktorkan

(butuh waktu yang lama).

Algoritma yang menggunakan prinsip ini : ElGamal dan

DSA.

Catatan : Persoalan logaritma diskrit adalah kebalikan dari

persoalan perpangkatan modular : ax mod n

Sistem kriptografi kunci publik cocok digunakan di dalam

kelompok pengguna di lingkungan jaringan komputer

36

Page 54: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

(LAN/WAN) yang memungkinkan mereka saling

berkomunikasi. Setiap pengguna jaringan memiliki pasangan

kunci publik dan kunci privat yang bersesuaian. Kunci publik,

karena tidak rahasia, biasanya disimpan di dalam basisdata

kunci yang dapat diakses oleh pengguna lain. Jika ada pengguna

yang hendak berkirim pesan ke pengguna lainnya, maka ia perlu

mengetahui kunci publik penerima pesan melalui basisdata

kunci ini lalu menggunakannya untuk mengenkripsi pesan.

Hanya penerima pesan yang dapat mendekripsi pesan karena ia

yang mengetahui kunci privatnya sendiri.

Dengan sistem kriptografi kunci publik, tidak diperlukan

pengiriman kunci privat melalui saluran komunikasi khusus

sebagaimana pada sistem kriptografi simetri (Munir, 2006 :

176).

2.8.3. Aplikasi Kriptografi Kunci Publik

Aplikasi kriptografi kunci publik dapat dibagi menjadi tiga

kategori (Munir, 2006 : 178):

1. Kerahasiaan data

Seperti pada kriptografi kunci simetri, kriptografi kunci

publik dapat digunakan untuk menjaga kerahasiaan data

(provide confidentiality/secrecy) melalui mekanisme

enkripsi dan dekripsi. Contoh algoritma untuk aplikasi ini

adalah Rivest Shamir Adleman, Knapsack, Rabin,

ElGamal, Elliptic Curve Cryptography (ECC).

37

Page 55: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2. Tanda tangan digital

Tanda tangan digital (digital signature) dengan

menggunakan algoritma kriptografi kunci publik dapat

digunakan untuk membuktikan otentikasi pesan maupun

otentikasi pengirim (provide authentication). Contoh

algoritmanya untuk aplikasi ini adalah Rivest Shamir

Adleman, DSA, dan ElGamal.

3. Pertukaran kunci (key exchange)

Algoritma kriptografi kunci publik dapat digunakan untuk

pengiriman kunci simetri (session key). Contoh

algoritmanya adalah Rivest Shamir Adleman dan Diffie-

Hellman.

2.9. RSA (Rivest Shamir Adleman)

Algoritma Rivest Shamir Adleman dibuat oleh 3 orang peneliti dari

MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu Ron

(R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma

Rivest Shamir Adleman terletak pada sulitnya memfaktorkan bilangan

yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk

memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi

faktor-faktor prima belum ditemukan algoritma yang mangkus, maka

selama itu pula keamanan algoritma Rivest Shamir Adleman tetap

terjamin (Munir, 2006 : 179).

38

Page 56: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Algoritma Rivest Shamir Adleman memiliki besaran-besaran

sebagai berikut :

1. p dan q bilangan prima (rahasia)

2.

n = p . q

(tidak rahasia)

3.

ф(n) = (p - 1)(q - 1)

(rahasia)

4.

e (kunci enkripsi)

(tidak rahasia)

5.

d (kunci dekripsi)

(rahasia)

6.

m (plainteks)

(rahasia)

7.

c (cipherteks)

(tidak rahasia)

2.9.1. Perumusan Algoritma Rivest Shamir Adleman

Algoritma Rivest Shamir Adleman didasarkan pada

teorema Euler yang menyatakan bahwa

aф(n) ≡ 1 (mod n) (2.1)

dengan syarat (Munir, 2006 : 179) :

1. a harus relatif prima terhadap n

2. ф(n) = n(1 - 1/p1)(1 - 1/p2)…(1 – 1/pr), yang dalam hal ini

p1, p2, …, pr adalah faktor prima dari n. ф(n) adalah fungsi

yang menentukan berapa banyak dari bilangan-bilangan 1,

2, 3,…, n yang relatif prima terhadap n.

Berdasarkan sifat ak ≡ b

k (mod n) untuk k bilangan bulat ≥

1 maka persamaan (2.1) dapat ditulis menjadi

akф(n)

≡ 1k (mod n) atau

akф(n)

≡ 1 (mod n) (2.2)

39

Page 57: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

bila a diganti dengan m, maka persamaan (2.2) dapat

ditulis menjadi

mkф(n)

≡ 1 (mod n) (2.3)

Berdasarkan sifat ac ≡ bc (mod n), maka bila persamaan

(2.3) dikali dengan m menjadi :

mkф(n)+1

≡ m (mod n) (2.4)

yang dalam hal ini m relatif prima terhadap n.

Misalkan e dan d dipilih sedemikian sehingga

e · d ≡ 1 (mod ф(n)) (2.5)

atau

e · d ≡ kф(n) + 1 (2.6)

Sulihkan (2.6) ke dalam persamaan (2.4) menjadi :

me · d ≡ m (mod n) (2.7)

persamaan (2.7) dapat ditulis kembali menjadi :

(me) d ≡ m (mod n) (2.8)

Yang artinya, perpangkatan m dengan e diikuti dengan

perpangkatan dengan d menghasilkan kembali m semula.

Berdasarkan persamaan (2.8), maka enkripsi dan dekripsi

dirumuskan sebagai berikut :

Ee(m) = c ≡ me mod n (2.9)

Dd(c) = m ≡ cd mod n (2.10)

Karena e · d = d · e, maka enkripsi diikuti dengan dekripsi

ekivalen dengan dekripsi diikuti enkripsi :

Dd(Ee(m)) = Ee(Dd(c)) ≡ md mod n (2.11)

40

Page 58: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Oleh karena md mod n ≡ (m + jn)d mod n untuk

sembarang bilangan bulat j, maka tiap plainteks m, m + n, m +

2n, …, menghasilkan cipherteks yang sama. Dengan kata lain,

transformasinya dari banyak ke satu. Agar transformasinya dari

satu ke satu, maka m harus dibatasi dalam himpunan {0, 1, 2,

…, n-1} sehingga enkripsi dan dekripsi tetap benar seperti pada

persamaan (2.9) dan (2.10).

2.9.2. Algoritma Membangkitkan Pasangan Kunci

1. Pilih dua buah bilangan prima sembarang, p dan q.

2. Hitung n = p · q (sebaiknya p ≠ q, sebab jika p = q maka n

= p2 sehingga p dapat diperoleh dengan menarik akar

pangkat dua dari n).

3. Hitung ф(n) = (p - 1)(q - 1).

4. Pilih kunci publik, e, yang relatif prima terhadap ф(n).

5. Bangkitkan kunci privat dengan mengguakan persamaan

(2.5), yaitu e · d ≡ 1 (mod ф(n)). Perhatikan bahwa e · d ≡

1 (mod n) ekivalen dengan e · d ≡ 1 + kф(n), sehingga

secara sederhana d dapat dihitung dengan

� � � ���

(2.12)

Hasil dari algoritma di atas :

- Kunci publik adalah pasangan (e, n)

- Kunci privat adalah pasangan (d, n)

Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada

perhitungan enkripsi/dekripsi (Munir, 2006 : 181).

41

Page 59: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.9.3. Algoritma Enkripsi/Dekripsi

Enkripsi

1. Ambil kunci publik penerima pesan, e, dan modulus n.

2. Nyatakan plainteks m menjadi blok-blok m1, m2,…,

sedemikian sehingga setiap blok merepresentasikan nilai

di dalam selang [0, n-1].

3. Setiap blok m, dienkripsi menjadi blok ci dengan rumus ci

= mi e mod n.

Dekripsi

Setiap blok cipherteks ci didekripsi kembali menjadi blok mi

dengan rumus mi = ci d mod n.

2.9.4. Keamanan Rivest Shamir Adleman

Keamanan algoritma Rivest Shamir Adleman didasarkan

pada sulitnya memfaktorkan bilangan besar menjadi faktor-

faktor primanya (Munir, 2006 : 183).

Masalah pemfaktoran : Faktorkan n, yang dalam hal ini n

adalah hasil kali dari dua atau lebih bilangan prima.

Pada Rivest Shamir Adleman, masalah pemfaktoran

berbunyi : Faktorkan n menjadi dua faktor primanya, p dan q,

sedemikian sehingga n = p · q. Sekali n berhasil difaktorkan

menjadi p dan q, maka ф(n) = (p - 1)(q - 1) dapat dihitung.

Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia),

42

Page 60: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

maka kunci dekripsi d dapat dihitung dari persamaan e · d ≡ 1

(mod ф(n)).

Selama 300 tahun para matematikawan mencoba mencari

faktor bilangan yang besar namun tidak banyak membuahkan

hasil. Semua bukti yang diketahui menunjukkan bahwa upaya

pemfaktoran itu luar biasa sulit. Belum ditemukan algoritma

pemfaktoran bilangan besar dalam waktu polinomial, tetapi juga

tidak dapat dibuktikan algoritma tersebut ada. Fakta inilah yang

membuat algoritma Rivest Shamir Adleman dianggap aman.

Penemu algoritma Rivest Shamir Adleman bahkan menyarankan

nilai p dan q panjangnya lebih dari 100 angka. Dengan demikian

hasil kali n = p x q akan berukuran lebih dari 200 angka.

Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor

prima dari bilangan 200 angka membutuhkan waktu komputasi

selama 4 milyar tahun, sedangkan untuk bilangan 500 angka

membutuhkan waktu 1025 tahun. (dengan asumsi bahwa

algoritma pemfaktoran yang digunakan adalah algoritma yang

tercepat saat ini dan komputer yang digunakan mempunyai

kecepatan 1 milidetik).

Secara umum dapat disimpulkan bahwa Rivest Shamir

Adleman hanya aman jika n cukup besar. Jika panjang n hanya

256 bit atau kurang, ia dapat difaktorkan dalam beberapa jam

saja dengan sebuah komputer PC dan program yang tersedia

43

Page 61: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

secara bebas. Jika panjang n 512 bit atau kurang, ia dapat

difaktorkan dengan beberapa ratus komputer.

Tahun 1977, tiga orang penemu Rivest Shamir Adleman

membuat sayembara untuk memecahkan cipherteks dengan

menggunakan Rivest Shamir Adleman di majalah scientific

American. Hadiahnya adalah $100. Tahun 1994, kelompok yang

bekerja dengan kolaborasi internet berhasil memecahkan

cipherteks hanya dalam waktu 8 bulan.

2.9.5. Kecepatan

Rivest Shamir Adleman lebih lambat daripada algoritma

kriptografi kunci simetri seperti DES dan AES. Oleh karena itu,

di dalam praktek penggunaannya, pesan tetap dienkripsi dengan

menggunakan salah satu algoritma kunci simetri atau kunci

rahasia, sedangkan Rivest Shamir Adleman digunakan untuk

mengenkripsi kunci rahasia. Pesan dan kunci rahasia yang sudah

dienkripsi dapat dikirim bersama-sama. Penerima pesan mula-

mula mendekripsi kunci rahasia dengan kunci privatnya, lalu

menggunakan kunci rahasia tersebut untuk mendekripsi pesan

(Munir, 2006 : 184).

44

Page 62: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2.10. PHP

2.10.1. Pengertian PHP

PHP adalah singkatan dari PHP Hypertext Preprocessor

yang digunakan sebagai bahasa script server-side dalam

pengembangan web yang disisipkan pada dokumen HTML.

Penggunaan PHP memungkinkan web dapat dibuat dinamis

sehingga maintenance situs web tersebut menjadi lebih mudah

dan efisien (Peranginangin, 2006 : 1).

PHP merupakan software open source yang disebarkan

dan dilisensikan secara gratis serta dapat di-download bebas dari

situs resminya (http://www.php.net).

2.10.2. Kelebihan-kelebihan PHP

Diantara maraknya pemrograman server web saat ini,

adalah ASP yang berkembang menjadi ASP.NET, JSP, CFML,

dan PHP. Jika dibandingkan di antara tiga terbesar

pemrograman server web di atas, terdapat kelebihan dari PHP

itu sendiri, yaitu :

1. PHP merupakan sebuah bahasa script yang tidak

melakukan sebuah kompilasi dalam penggunaanya. Tidak

seperti hanya bahasa pemrograman aplikasi seperti Visual

Basic dan sebagainya.

2. PHP dapat berjalan pada web server yang dirilis oleh

Microsoft, seperti IIS atau PWS juga pada apache yang

bersifat open source.

45

Page 63: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

3. Karena sifatnya yang open source, maka perubahan dan

perkembangan interpreter pada PHP lebih cepat dan

mudah, karena banyak milis dan developer membantu

pengembangannya.

4. Jika dilihat dari segi pemahaman, PHP memiliki referensi

yang begitu banyak sehingga sangat mudah untuk

dipahami.

5. PHP dapat berjalan pada tiga sistem operasi, yaitu : Linux,

Unix, dan Windows, dan juga dapat dijalankan secara

runtime pada suatu console.

2.10.3. Sintaks PHP

Sintaks program/script PHP ditulis dalam apitan tanda

khusus PHP. Ada empat macam pasangan tag PHP yang dapat

digunakan untuk menandai blok script PHP :

<?php ... ?> , < ? ... ?>, <% … %>, atau

<script language = ”PHP”> ... </script>

2.11. MySQL

MySQL adalah multi user database yang menggunakan bahasa

Structured Query Language (SQL). MySQL dalam operasi client server

melibatkan server daemon MySQL di sisi server dan berbagai macam

program serta library yang berjalan di sisi client. MySQL mampu

menangani data yang cukup besar. Perusahaan yang menangani MySQL

yaitu TcX, mengaku mampu menyimpan data lebih dari 40 database,

10.000 tabel, dan sekitar 7 juta baris, totalnya kurang lebih 100

Gigabytes data (Nanang, 2004, Ch4).

46

Page 64: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

SQL adalah bahasa standar yang digunakan untuk mengakses

server database. Bahasa ini pada awalnya dikembangkan oleh IBM,

namun telah diadopsi dan digunakan sebagai standar industri. Dengan

menggunakan SQL, proses akan database menjadi lebih user-friendly

dibandingkan dengan menggunakan dBASE atau clipper yang masih

menggunakan perintah-perintah pemrograman.

47

Page 65: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

BAB III

METODOLOGI PENELITIAN

Pada penulisan tugas akhir ini, diperlukan data-data yang lengkap sebagai

bahan pendukung kebenaran materi uraian dan pembahasan. Oleh karena itu

diperlukan metodologi pengumpulan data dan metode pengembangan sistem.

3.1. Metode Pengumpulan Data

Penyusunan skripsi ini dilakukan dengan menggunakan beberapa

metode yang dapat mendukung penulisan, baik dalam pengumpulan data

maupun informasi yang diperlukan, untuk mendapatkan kebenaran

materi uraian pembahasan.

Adapun metode pengumpulan data yang digunakan dalam

pembahasan skripsi ini adalah dengan menggunakan :

3.1.1. Metode Observasi

Observasi adalah pengamatan langsung yang dilakukan di

lapangan untuk mengetahui secara langsung keadaan objek

penelitian yang sebenarnya. Hal ini bertujuan untuk memperoleh

penjelasan mengenai data-data dan informasi yang dibutuhkan

dalam penelitian dengan divisi operasional CV Maharta Mandiri

Promo. Observasi ini dilaksanakan selama bulan Juli 2009,

bertempat di Kantor CV Maharta Mandiri Promo Jl. Raya

Pondok Kacang Timur No. 11 Pondok Aren, Tangerang.

48

Page 66: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

3.1.2. Metode Wawancara

Wawancara memperoleh keterangan untuk tujuan

penelitian dengan cara tanya-jawab sambil bertatap muka antara

pewawancara dengan narasumber telah dilakukan pada tanggal 9

Juli 2009 dengan narasumber Bapak Andi Muhammad AR

(Direktur utama CV Maharta Mandiri Promo). Hasil wawancara

dapat dilihat pada lampiran A.

3.1.3. Metode Studi Pustaka

Metode studi pustaka digunakan dengan membaca dan

mempelajari referensi yang ada, e-book, serta mencari referensi

tambahan dari internet. Buku utama yang digunakan peneliti

yaitu : Kriptografi (Munir, 2006), Memahami Model Enkripsi &

Security Data (Wahana Komputer, 2003), Pengantar Ilmu

Kriptografi (Ariyus, 2008). Dan buku-buku selengkapnya yang

digunakan dapat dilihat pada daftar pustaka.

3.1.4. Metode Studi Literatur

Metode studi literatur digunakan dengan melihat

penelitian yang sudah ada. Merujuk pada penelitian yang telah

dilakukan (Muliati, 2009), beberapa kelebihan akan

ditambahkan pada aplikasi yang akan dibuat yaitu : dapat

mengenkripsi sepuluh file sekaligus, adanya pemberitahuan file

masuk baru, perbedaan warna antara file yang pernah didekripsi

dengan yang belum pernah didekripsi, pembangkitan pasangan

49

Page 67: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

kunci yang baru, pengubahan password login, verifikasi gambar

saat pendaftaran, dan pertanyaan pengaman.

3.2. Metode Pengembangan Sistem

Penelitian dilakukan dengan menggunakan metode pengembangan

sistem model pendekatan RAD (Rapid Application Development).

Penulis menggunakan model RAD karena melihat dari aplikasi yang

dikembangkan adalah aplikasi yang sederhana dan tidak membutuhkan

waktu yang lama, metode RAD adalah metode yang diperuntukkan untuk

jangka pendek sesuai dengan aplikasi yang dikembangkan. Berikut

adalah penjelasan masing-masing fase RAD dalam penelitian ini.

3.2.1. Fase Perencanaan Syarat-Syarat

1. Analisis Kebutuhan Masalah

Dari hasil observasi dan wawancara yang dilakukan pada

tahap sebelumnya, maka peneliti dapat menganalisis

bahwa kurangnya pengamanan data di CV Maharta

Mandiri Promo ini telah menyebabkan hilangnya data

penting. Oleh karena itu, diperlukan sebuah aplikasi

keamanan data yang mudah digunakan dan dapat

menjamin kerahasiaan data mereka. Untuk selengkapnya

dapat dilihat pada subbab 4.4.1.

50

Page 68: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2. Tujuan

Berdasarkan pada analisis kebutuhan di atas, maka tujuan

penelitian ini adalah untuk membuat suatu aplikasi

enkripsi yang mengimplementasikan metode Advance

Encryption Standard dan Rivest Shamir Adleman sehingga

dapat menjaga kerahasiaan data di CV Maharta Mandiri

Promo. Untuk selengkapnya dapat dilihat pada subbab

4.4.2.

3. Syarat-syarat

Untuk mewujudkan tujuan tersebut dibutuhkan beberapa

syarat minimum dalam pembuatan aplikasi keamanan data

ini yaitu meliputi hal-hal sebagai berikut :

a. Web server

Web server merupakan syarat mutlak suatu aplikasi

berbasis web. Web server merupakan platform untuk

menjalankan suatu aplikasi berbasis web. Untuk

pengembangan aplikasi ini dibutuhkan minimum

Web Server Apache 2.0.

b. Bahasa Pemrograman

Bahasa pemrograman dibutuhkan untuk dapat

membangun sebuah aplikasi, agar komputer dapat

melakukan berbagai operasi dan fungsi sesuai

dengan keinginan user. Untuk itu dibutuhkan suatu

bahasa pemrograman yang dapat digunakan untuk

51

Page 69: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

membuat aplikasi client server. Bahasa

pemrograman minimum yang dibutuhkan dalam

pengembangan aplikasi ini adalah PHP 4.0.

c. Database

Perancangan tabel-tabel akan digunakan untuk

pelengkap program seperti proses login serta proses

penamaan dan penyimpanan file enkripsi. Database

yang dibutuhkan adalah database MySQL 5.0.

Spesifikasi perangkat lunak dan perangkat keras minimum

yang diperlukan dalam pembuatan aplikasi ini adalah

sebagai berikut :

a. Perangkat Lunak :

1. Paket web server

(Apache 2.0, PHP 4.0, MySQL 5.0)

2. Adobe Photoshop 7.

3. EditPlus 2.12.

4. Mozilla Firefox 3.0.

5. Microsoft Windows 2000.

b. Perangkat Keras :

1. Processor Pentium III.

2. Harddisk 80 GB.

3. Memory SDR 512 MB.

4. Monitor dengan resolusi 800 x 600 pixel.

52

Page 70: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

3.2.2. Fase Perancangan

Pada tahap ini dilakukan perancangan proses yaitu

perancangan proses-proses yang akan terjadi di dalam sistem.

1. Perancangan Proses

Aplikasi ini menggabungkan dua metode enkripsi. Pada

proses enkripsi, file dienkripsi menggunakan metode

enkripsi Advance Encryption Standard (rijndael). Setelah

selesai, kunci yang digunakan untuk enkripsi dengan

Advance Encryption Standard tadi dienkripsi dengan

menggunakan kunci publik metode enkripsi Rivest Shamir

Adleman, dan string hasil enkripsi password tersebut

disimpan di basis data.

Pada proses dekripsi, file terenkripsi yang dihasilkan pada

proses enkripsi akan diubah menjadi file semula dengan

cara membalik proses enkripsi. Pada proses ini pertama-

tama, password didekripsi menggunakan kunci private

metode dekripsi Rivest Shamir Adleman. Setelah selesai

maka file terenkripsi didekripsi dengan kunci tadi

menggunakan metode dekripsi Advance Encryption

Standard. Setelah proses dekripsi selesai file terenkripsi

akan kembali ke tipe semula. Untuk selengkapnya dapat

dilihat di subbab 4.5.1.

Agar memperjelas gambaran proses enkripsi dan dekripsi,

dapat dilihat pada gambar 3.1.

53

Page 71: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Proses enkripsi Proses dekripsi

plainteks cipherpassword

AES RSA

cipherteks password

password cipherteks

RSA AES

cipherpassword plainteks

Gambar 3.1. Proses enkripsi dan dekripsi

2. Perancangan Basis Data

Pada aplikasi acrypt cs ini digunakan database sebagai

pelengkap program seperti proses login dan proses

penyimpanan data file enkripsi. Database yang digunakan

adalah database MySQL. Untuk selengkapnya dapat

dilihat di subbab 4.5.3.

3. Perancangan Antarmuka Pemakai (User Interface)

Perancangan antarmuka pemakai memberikan fasilitas

komunikasi antar pemakai dan sistem, memberikan

berbagai fasilitas informasi dan berbagai keterangan yang

bertujuan untuk membantu mengarahkan alur penelusuran

masalah sampai ditemukan solusi. Perancangan antarmuka

54

Page 72: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

pemakai (user interface) pada aplikasi ini digambarkan

oleh State Transition Diagram. Untuk selengkapnya dapat

dilihat di subbab 4.5.4.

3.2.3. Fase Konstruksi

Pada tahap ini dilakukan pembuatan program terhadap

rancangan-rancangan yang telah didefinisikan. Pembuatan

program yang dilakukan menggunakan bahasa pemrograman

PHP yang dibuat dengan menggunakan text editor editplus.

Untuk selengkapnya dapat dilihat di subbab 4.6.

3.2.4. Fase Pelaksanaan

Pada tahapan ini dilakukan pengujian terhadap aplikasi

acrypt cs yang telah dibuat, pada pengujian terhadap aplikasi

ini, penulis menggunakan pengujian black-box yaitu suatu

pengujian yang berfokus pada persyaratan fungsional perangkat

lunak (Pressman, 2002: 551). Sebagai akhir dari fase

pelaksanaan, diminta tanggapan user tentang aplikasi ini untuk

bahan evaluasi. Untuk selengkapnya dapat dilihat di subbab 4.7.

Ilustrasi metodologi penelitian yang dilakukan dalam

membangun aplikasi acrypt cs ini dapat dilihat pada gambar

3.2.

55

Page 73: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Metode

Pengumpulan Data

Analisis

Kebutuhan

Tujuan : Menciptakan sebuah aplikasi kriptografi menggunakan

metode AES dan RSA berbasis client server untuk memberikan salah satu solusi dalam mengatasi masalah

keamanan data serta menjaga kerahasiaan data di CV Maharta Mandiri Promo

Syarat-syarat :

Web Server Apache,

PHP, dan MySQL

Fase Perencanaan Syarat-syarat

Perancangan

algoritma kriptografi

Fase Perancangan Perancangan

Proses

Flowchart

Perancangan Antarmuka

STD (State Transition Diagram)

Fase Konstruksi Tahap Pembuatan Program

Konfigurasi client server

Fase Pelaksanaan Proses Enkripsi dan Dekripsi Multifile

Pengujian Aplikasi acrypt cs

perubahan Tanggapan User

Aplikasi Kriptografi berbasis client server

Gambar 3. 2 Ilustrasi metodologi penelitian pengembangan

aplikasi kriptografi berbasis client server (acrypt cs)

56

Page 74: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

BAB IV

PEMBAHASAN DAN IMPLEMENTASI

4.1. Gambaran Umum CV Maharta Mandiri Promo

4.1.1. Sekilas CV Maharta Mandiri Promo

CV Maharta Mandiri Promo adalah perusahaan yang

bergerak dalam bidang desain grafis dan percetakan. Perusahaan

ini berdiri pada tanggal 18 Oktober 1999 berdasarkan akta

notaris Srilestari Roespinoedji, No.87. Tanggal 18 Oktober

1999. Bertempat di Jalan Raya Pondok Kacang Timur No.11.

Sejak berdiri hingga saat ini, perusahaan ini telah banyak

mengantongi ijin. Diantaranya : Surat Izin Tempat Usaha,

No.503/KEC.Pd.Aren/2007. Tanggal 02 Mei 2007, Tanda

Daftar Perusahaan Persekutuan Komanditer,

No.30.03.3.52.01854. Tanggal 05 Agustus 2005, dan Izin Usaha

Perdagangan (IUP)—Kecil,No.503.1/0083/30-03/PK/III/2006.

Tanggal 07 Maret 2006.

Sejak awal berdiri sampai sekarang, perusahaaan telah

mendapat banyak mitra bisnis. Diantaranya adalah mitra

langsung yaitu McDonald, CommonWealth Bank, Alfa Grosir,

Bank Lippo, dan Badan Pertanahan Nasional. Sedangkan mitra

tidak langsung diantaranya Coca cola, Bank Mandiri, Kimia

57

Page 75: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Farma, Telkomsel, Nestle, dan BNI 46. Sumber : Company

Profile CV Maharta Mandiri Promo.

4.1.2. Visi dan Misi CV Maharta Mandiri Promo

CV Maharta Mandiri Promo sebagai sebuah perusahaan

desain grafis dan percetakan memiliki visi dan misi dalam

menjalankan perusahaan. Visi dan misi tersebut bertujuan untuk

membangun perusahaan agar terus maju di bidangnya.

4.1.2.1. Visi CV Maharta Mandiri Promo

Menjadi perusahaan periklanan yang unggul,

profesional, bertaraf internasional, dan mandiri.

4.1.2.2. Misi CV Maharta Mandiri Promo

1. Memberikan layanan terbaik kepada konsumen.

2. Menggunakan teknologi terbaru dalam produksi.

3. Menjunjung tinggi nilai moral dalam bisnis.

4. Menyejahterakan kehidupan karyawan.

5. Memiliki tanggung jawab sosial yang baik.

4.1.3. Struktur Organisasi CV Maharta Mandiri Promo

Gambar 4.1 menunjukkan struktur organisasi CV Maharta

Mandiri Promo.

58

Page 76: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Direktur Utama Andi Muhammad AR

Direktur Operasional H. Ahmad AR

Direktur Keuangan Inah Roinah

Direktur Pemasaran Alfian

Kabag Produksi Ichram Masrul

Kabag Kreatif Anwar Rosandi

Kabag Keuangan Nani Rustini

Manajer Pemasaran Iwan

Pegawai Pegawai Pegawai Pegawai

Gambar 4.1. Struktur Organisasi CV Maharta Mandiri Promo

(Sumber : Company Profile CV Maharta Mandiri Promo)

4.2. Hasil Observasi

Observasi yang dilaksanakan selama bulan Juli 2009 di Kantor CV

Maharta Mandiri Promo memberikan kesimpulan bahwa data yang

tersimpan di komputer yang terhubung dalam jaringan LAN (Local Area

Network) CV Maharta Mandiri Promo tidak aman dari pencurian data.

Karena data yang dicuri dapat langsung dimanfaatkan oleh pihak yang

tidak berhak seperti yang pernah terjadi sebelumnya. Oleh karena itu

diperlukan suatu aplikasi enkripsi yang dapat melindungi data-data

penting perusahaan dari pihak yang tidak bertanggung jawab.

4.3. Aplikasi Acrypt cs

Aplikasi acrypt cs (Aplikasi Enkripsi berbasis Client Server)

adalah sebuah aplikasi keamanan data berbasis client server yang

59

Page 77: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

menggunakan metode Advance Encryption Standard dan Rivest Shamir

Adleman. Aplikasi ini diharapkan dapat membantu anda dalam menjaga

data-data penting dari pengaksesan orang-orang yang tidak berhak.

4.4. Fase Perencanaan Syarat-syarat

4.4.1. Analisis Kebutuhan Masalah

Aplikasi keamanan data yang akan dibuat seperti yang

telah dianalisis pada subbab 3.2.1 adalah aplikasi enkripsi dan

dekripsi berbasis web yang mudah digunakan menggunakan

metode kriptografi Advance Encryption Standard dan Rivest

Shamir Adleman.

4.4.2. Tujuan

Seperti yang telah dijelaskan pada subbab 3.2.2 peneliti

bertujuan untuk membuat suatu aplikasi enkripsi yang

mengimplementasikan metode enkripsi dan dekripsi Advance

Encryption Standard dan Rivest Shamir Adleman, dan juga

pembangkitan pasangan kunci publik dan kunci privat Rivest

Shamir Adleman sehingga dapat menjaga kerahasiaan data di

CV Maharta Mandiri Promo.

60

Page 78: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

4.4.3. Syarat-syarat

Untuk mewujudkan tujuan tersebut digunakan beberapa

syarat dalam pembuatan aplikasi keamanan data ini yaitu

meliputi hal-hal sebagai berikut :

a. Web server

Dalam pengembangan aplikasi ini digunakan Web Server

Apache 2.2.8. yang tergabung dalam paket xampp 1.6.6a.

b. Bahasa Pemrograman

Bahasa pemrograman yang digunakan untuk membangun

aplikasi ini adalah PHP 5.2.5. Interpreter PHP telah ada

dalam paket xampp 1.6.6a. Dalam penulisan kode, peneliti

memakai editor teks editplus 2.12.

c. Database

Database yang digunakan dalam aplikasi ini adalah

database MySQL 5.0.51a yang ada dalam paket xampp

1.6.6a. Untuk pembuatan database, digunakan editor

phpMyAdmin.

4.5. Fase Perancangan (Workshop Design)

Pada tahap ini dilakukan perancangan, evaluasi dan memperbaiki

sistem sesuai dengan kebutuhan agar sistem yang sedang dibuat dapat

dimanfaatkan secara optimal.

61

Page 79: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

4.5.1. Perancangan Proses

1. Diagram konteks sistem yang diusulkan

user username, password, public key, private key

public key, private key user

file filename1, filename2,

sender_id, receiver_id

aplikasi acryptcs file

filename1, filename2, sender_id, receiver_id

Gambar 4.2. Diagram konteks sistem yang diusulkan

Dalam konteks diagram pada gambar 4.2 terdapat dua

entity yang menunjang proses aplikasi acrypt cs yaitu user

dan file.

2. Diagram zero sistem yang diusulkan

user

username, password 1.0 login

private key

file

password, public key

filename1, sender,

receiver

2.0

enkripsi

filename2, sender,

receiver filename2, sender,

receiver

file

3.0

dekripsi

filename1, sender, receiver

Gambar 4.3. Diagram zero sistem yang diusulkan

62

Page 80: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

3. Diagram level satu sistem yang diusulkan

user username, password

1.1* cek

database

username, password 1.2*

buat session

Gambar 4.4. Diagram level satu proses 1.0 (login)

user

password, public key, jumlah file 2.2*

2.1* cek file

password enkripsi

AES

file filename1, sender,

receiver

2.3*

enkripsi RSA

public key

filename2, sender,

receiver

file

Gambar 4.5. Diagram level satu proses 2.0 (enkripsi)

user

private key, jumlah file

3.1*

cek file

private key

3.2*

dekripsi

RSA

file

filename2

3.3*

dekripsi AES

password

filename1

file

Gambar 4.6. Diagram level satu proses 3.0 (dekripsi)

63

Page 81: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

4.5.2. Perancangan Flowchart

Pada tahap ini dilakukan perancangan flowchart algoritma

aplikasi enkripsi. Pada tahapan ini akan digambarkan alur proses

enkripsi dan dekripsi pada program yang dikembangkan dengan

menggunakan flowchart.

64

Page 82: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1. Flowchart proses enkripsi

start

Input jumlah file

Input file

Cek file

File salah/kosong ? true

false

Input kunci AES

Pilih penerima

i=0, jml file = file tdk kosong

Panggil modul enkripsi AES 1 2

Panggil modul enkripsi RSA 3 4

Update database

i++

true i< jml file?

false

Tampilkan hasil enkripsi

stop

Gambar 4.7. Flowchart proses enkripsi

65

Page 83: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Berdasarkan gambar 4.7, proses enkripsi dimulai dengan

memasukkan jumlah file yang akan dienkripsi. Setelah itu, user

memasukkan file yang akan dienkripsi. Kemudian data file akan

ditampilkan sementara. Jika file salah, maka user harus

memasukkan kembali file yang akan dienkripsi. Jika semua file

yang dipilih sudah pernah dienkripsi sebelumnya (dengan nama

file yang masih sama), maka user harus memasukkan kembali

file yang akan dienkripsi.

Selanjutnya user harus memasukkan string yang akan digunakan

sebagai kunci untuk enkripsi file. String dapat berupa karakter

apapun dengan panjang maksimal 20 karakter. Kemudian user

memilih penerima pesan (secara tidak langsung memasukkan

kunci publik penerima).

Setelah itu proses enkripsi dimulai. Proses memanggil fungsi

enkripsi Advance Encryption Standard untuk enkripsi file,

kemudian memanggil fungsi enkripsi Rivest Shamir Adleman

untuk enkripsi password. Sesudah selesai, proses memasukkan

data file ke dalam database. Proses enkripsi dilakukan sebanyak

jumlah file yang terisi (tidak kosong). Setelah proses enkripsi

selesai, data file terenkripsi ditampilkan.

66

Page 84: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

2. Flowchart enkripsi Advance Encryption Standard

1

Baca file

r = 10

AddRoundKey()

SubBytes()

ShiftRows()

true

r = 1 ?

false

MixColumns()

Panggil modul ekspansi kunci 5 6

AddRoundKey()

r - 1

r = 0 ? false

true

2

Gambar 4.8. Flowchart proses enkripsi dengan metode Advance Encryption Standard

(Sumber : Munir, 2006)

67

Page 85: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Proses enkripsi dengan metode Advance Encryption Standard

seperti ditunjukkan pada gambar 4.8, dimulai dengan membaca

file. Didefinisikan bahwa jumlah round adalah sepuluh. Proses

melakukan fungsi AddRoundKey() terhadap data dengan round

key awal. Selanjutnya proses berlanjut dengan round-1 putaran

dengan memanggil fungsi SubBytes(), ShiftRows(),

MixColumns(), KeyExpansion(), dan AddRoundKey(). Setelah

selesai, putaran terakhir dilakukan dengan memanggil fungsi

SubBytes(), ShiftRows(), KeyExpansion(), dan AddRoundKey().

Setelah itu proses enkripsi Advance Encryption Standard

Selesai.

68

Page 86: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

3. Flowchart enkripsi Rivest Shamir Adleman

3

plainteks (M), n, e

Transformasi M → m

m ≤ n - 1 false m dibagi menjadi blok-blok

true

c = m

e (mod n)

cipherteks (c)

c ≤ n - 1 false c disatukan menjadi kesatuan

bilangan integer

true

cipherteks (c)

Transformasi c → C

cipherteks (C)

4

Gambar 4.9. Flowchart proses enkripsi dengan metode Rivest Shamir Adleman

(Sumber : Munir : 2006)

Berdasarkan gambar 4.9, enkripsi dengan metode Rivest Shamir

Adleman dimulai dengan inisialisasi plainteks(M), n(p x q), dan

kunci publik(e). Plainteks (dalam hal ini password),

ditransformasi ke dalam angka (m). Selanjutnya, jika m lebih

69

Page 87: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

besar dari n dikurang 1, m dibagi menjadi blok-blok.

Selanjutnya dilakukan penghitungan cipherteks (c) dengan

rumus c = me (mod n). Jika c lebih besar dari n dikurang1, c

disatukan menjadi kesatuan bilangan integer. Selanjutnya

dilakukan transformasi cipherteks c menjadi C.

70

Page 88: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

4. Flowchart proses dekripsi

start

Pilih file

Cek file sementara

File benar? false

true

Input kunci private

Kunci valid?

false

true

i=0, n = jml file, (jml file>10, n=10)

Panggil modul dekripsi RSA 7 8

Panggil modul dekripsi AES 9 10

i++

true i < n ?

false

Tampilkan hasil dekripsi

stop

Gambar 4.10. Flowchart proses dekripsi

71

Page 89: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Untuk proses dekripsi, sesuai dengan gambar 4.10, dekripsi

dimulai dengan memilih file yang akan didekripsi. Lalu

menampilkan sementara file-file yang akan didekripsi. Jika file

benar, masukkan kunci privat. Setelah itu periksa apakah kunci

privat valid atau tidak. Jika kunci privat tidak valid, masukkan

lagi kunci privat. Jika valid, proses dekripsi berjalan.

Dimulai dengan menginisialisasi i(=0), n(jumlah file), jika

jumlah file lebih dari 10, maka n=10. Selanjutnya selama i

kurang dari n, proses memanggil modul dekripsi Rivest Shamir

Adleman, setelah itu memanggil modul dekripsi Advance

Encryption Standard. Setelah proses dekripsi selesai, file-file

hasil dekripsi ditampilkan.

72

Page 90: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

5. Flowchart dekripsi Advance Encryption Standard

9

Baca file

r = 10

AddRoundKey()

r = 10? true

false

Inv MixColumns()

Inv SubBytes()

Inv ShiftRows()

Panggil modul ekspansi kunci 5 6

AddRoundKey()

r -1

false

r = 0 ?

true

10

Gambar 4.11. Flowchart proses dekripsi dengan metode Advance Encryption Standard

(Sumber : Munir, 2006)

Proses dekripsi dengan metode Advance Encryption Standard

seperti ditunjukkan pada gambar 4.11, dimulai dengan membaca

file. Didefinisikan bahwa jumlah round adalah sepuluh. Proses

73

Page 91: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

melakukan fungsi AddRoundKey() terhadap data dengan round

key awal. Selanjutnya proses berlanjut selama round-1 putaran

dengan memanggil fungsi InvMixColumns(), InvSubBytes(),

InvShiftRows(), KeyExpansion(), dan AddRoundKey(). Setelah

selesai, putaran terakhir dilakukan dengan memanggil fungsi

InvSubBytes(), InvShiftRows(), KeyExpansion(), dan

AddRoundKey(). Setelah itu proses dekripsi Advance Encryption

Standard Selesai.

74

Page 92: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

c

6. Flowchart dekripsi Rivest Shamir Adleman

7

cipherteks (C), n, d

Transformasi C → c

c ≤ n - 1

false c dibagi menjadi blok-blok

true

m =

d (mod n)

plainteks (m)

m ≤ n - 1 false m disatukan menjadi kesatuan

bilangan integer

true

plainteks (m)

Transformasi m → M

plainteks (M)

8

Gambar 4.12. Flowchart proses dekripsi dengan metode Rivest Shamir Adleman

(Sumber : Munir, 2006)

Berdasarkan gambar 4.12, dekripsi dengan metode Rivest

Shamir Adleman dimulai dengan inisialisasi cipherteks(C), n(p

x q), dan kunci privat (d). Cipherteks ditransformasi ke dalam

angka (c). Selanjutnya, jika c lebih besar dari n dikurang 1, c

75

Page 93: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

dibagi menjadi blok-blok. Selanjutnya dilakukan penghitungan

plainteks (m) dengan rumus m = cd (mod n). Jika m lebih dari n

dikurang1, m disatukan menjadi kesatuan bilangan integer.

Selanjutnya dilakukan transformasi plainteks m menjadi M.

4.5.3. Perancangan Basis Data

Pada pengembangan aplikasi acrypt cs ini digunakan

database sebagai pelengkap program seperti proses login dan

proses penamaan dan penyimpanan file enkripsi. Database yang

digunakan adalah database MySQL.

1. Struktur Entity Relationship Diagram (ERD)

user

mengenkripsi mendekripsi

plainteks menjadi cipherteks

Gambar 4.13. Struktur Entity Relationship Diagram

2. Normalisasi

a. Relasi User_Plainteks

UnNormalized Form (Bentuk Tidak Normal)

id_user username fullname password public_key private_key

sec_question sec_answer id_plainteks plain_name plain_size

1st

Normal Form (Bentuk Normal Pertama)

76

Page 94: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

id_user username fullname password public_key private_key

sec_question sec_answer id_plainteks plain_name plain_size

2nd

Normal Form (Bentuk Normal Kedua)

id_user username fullname password public_key private_key sec_question sec_answer

id_plainteks plain_name plain_size

id_outbox id_plainteks id_user

b. Relasi User_Cipherteks

UnNormalized Form (Bentuk Tidak Normal)

id_user username fullname password public_key private_key sec_question sec_answer

id_cipherteks cipher_name cipher_size aes_key iv

1st

Normal Form (Bentuk Normal Pertama)

id_user username fullname password public_key private_key sec_question sec_answer

id_cipherteks cipher_name cipher_size aes_key iv

2nd

Normal Form (Bentuk Normal Kedua)

id_user username fullname password public_key private_key sec_question sec_answer

id_cipherteks cipher_name cipher_size aes_key iv

id_inbox id_cipherteks id_user

c. Relasi Plainteks_Cipherteks

UnNormalized Form (Bentuk Tidak Normal)

id_plainteks plain_name plain_size id_cipherteks cipher_name cipher_size

aes_key iv

77

Page 95: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

1st Normal Form (Bentuk Normal Pertama)

id_plainteks plain_name plain_size id_cipherteks cipher_name cipher_size

aes_key iv

2nd Normal Form (Bentuk Normal Kedua)

Karena satu plainteks pasti menjadi satu cipherteks,

maka tabel dapat digabungkan menjadi satu tabel.

Maka semua field id_cipherteks dan id_plainteks

akan digabungkan menjadi id_file.

id_file plain_name plain_size cipher_name cipher_size aes_key iv

3. Logical Record Structure

Gambar 4.14. Logical Record Structure (LRS)

4. Spesifikasi Tabel

Nama Database : acryptcs

1. Nama Tabel : user

Primary Key

: id_user

Foreign Key

: -

78

Page 96: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Tipe File : File Master

field type attributes extra

id_user int(11) unsigned auto_increment

username varchar(30)

fullname varchar(50)

password varchar(50)

public_key varchar(20)

private_key varchar(20)

sec_question varchar(50)

sec_answer varchar(20)

2. Nama Tabel : file

Primary Key

: id_file

Foreign Key

: -

Tipe File

: File Master

field type attributes extra

id_file int(11) unsigned auto_increment

plain_name varchar(100)

plain_size varchar(20)

cipher_name varchar(100)

cipher_size varchar(20)

aes_key varchar(50)

iv varchar(20)

date varchar(27)

3. Nama Tabel : inbox

Primary Key

: id_inbox

Foreign Key

: id_file, id_user

Tipe File : File Master

field type attributes extra

79

Page 97: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

id_inbox int(11) unsigned auto_increment

id_file int(11)

id_user int(11)

4. Nama Tabel : outbox

Primary Key

: id_outbox

Foreign Key

: id_file, id_user

Tipe File

: File Master

field type attributes extra

id_outbox int(11) unsigned auto_increment

id_file int(11)

id_user int(11)

4.5.4. Perancangan Antarmuka

Dalam perancangan antarmuka aplikasi keamanan data

yang berbasis client server ini, dibuat beberapa form yang akan

ditampilkan.

1. Perancangan Halaman Login

Halaman login merupakan tampilan untuk login.

Pengguna telah terdaftar diharuskan untuk mengisikan

username dan password.

80

Page 98: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

Please login

image

username :

password :

enter

sign up

image

footer

Gambar 4.15. Rancangan halaman login

Apabila pengguna belum terdaftar, dapat mendaftar

terlebih dahulu dengan mengklik tombol “sign up”. Hal

ini mencegah aplikasi agar tidak diakses oleh sembarang

orang.

81

Page 99: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

sign up clear

Logo acrypt cs

Sign up

image

Fullname :

username :

password :

confirm password :

security question

question :

answer :

image

enter word above :

login

footer

Gambar 4.16. Rancangan halaman sign up

2. Perancangan Halaman Utama (Home)

Halaman Home merupakan tampilan utama yang di

dalamnya terdapat sembilan link utama yang masing-

masing mempunyai fungsi sebagai berikut :

1. Encrypt : menampilkan halaman enkripsi.

2. Decrypt : menampilkan halaman dekripsi.

3. Inbox : menampilkan halaman kotak masuk.

4. Outbox : menampilkan halaman kotak keluar.

82

Page 100: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

5. My key : menampilkan halaman untuk melihat kunci

privat dan mengubah pasangan kunci. Halaman ini

dilindungi dengan pertanyaan pengaman yang dibuat

saat sign up.

6. Change password : menampilkan halaman untuk

mengubah password login.

7. About : menampilkan halaman profil pembuat

aplikasi.

8. Help : menampilkan halaman bantuan aplikasi.

9. Logout : keluar dari account.

Logo acrypt cs

Keterangan inbox baru

Keterangan menu (saat

mouseover)

Keterangan menu (saat

mouseover)

Menu utama

footer

Gambar 4.17. Rancangan halaman utama

83

Page 101: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

3. Perancangan Halaman Encrypt

Halaman enkripsi akan muncul jika user memilih menu

“encrypt” pada halaman utama. Terdapat enam halaman

dalam rancangan halaman encrypt, yaitu:

a. Rancangan halaman input jumlah file

Halaman input jumlah file merupakan halaman awal

dari proses enkripsi. User memilih jumlah file yang

akan dienkripsi pada halaman ini.

Logo acrypt cs

encryption

Number of file : Combo box enter cancel

footer

Gambar 4.18. Rancangan halaman input file enkripsi

b. Rancangan halaman input file

Halaman input file merupakan halaman kedua dari

proses enkripsi. Terdapat input file yang akan

dienkripsi. Halaman menyediakan input file

sebanyak 5 file. User dapat memilih file dengan

mengklik tombol browse. Untuk menghindari

84

Page 102: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

kesalahan, user tidak dapat mengetikkan sendiri file

yang akan dienkripsi.

Logo acrypt cs

encryption

File 1 : enter

: :

Browse..

File n : enter

Browse..

next clear all cancel

footer

Gambar 4.19. Rancangan halaman input file enkripsi

c. Halaman cek file

Halaman ini menampilkan sementara file-file yang

akan dienkripsi.

85

Page 103: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

encryption

File 1

File name :

File type :

File size :

Status :

: : :

File n File name :

File type :

File size :

Status :

next cancel

footer

Gambar 4.20. Rancangan halaman cek file

d. Halaman input password.

Halaman ini meminta user untuk memasukkan

password berupa string yang akan digunakan untuk

enkripsi file pada halaman sebelumnya.

86

Page 104: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

encryption

input string for AES password encryption :

next cancel

footer

Gambar 4.21. Rancangan halaman input password

e. Halaman pilih tujuan (penerima).

Sebenarnya halaman ini meminta user untuk

memasukkan kunci publik penerima pesan. Tetapi

untuk mencegah kesalahan input, aplikasi

menyediakan form yang memudahkan user untuk

memilih tujuan (penerima pesan). Setelah button

encrypt diklik, proses enkripsi akan dimulai.

87

Page 105: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

encryption

Select receiver

o Username 1

o Username 2

:

:

o Username n

next cancel

footer

Gambar 4.22. Rancangan halaman pilih tujuan

f. Halaman encryption complete

Halaman ini muncul setelah proses enkripsi selesai.

Halaman ini menginformasikan file hasil enkripsi,

ukuran file, waktu enkripsi, dan user penerima.

88

Page 106: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

encryption

Encryption complete for these file

File 1

File name :

File size :

Process time :

: : :

File n

File name :

File size :

Process time :

finish

footer

Gambar 4.23. Rancangan halaman encryption complete

4. Perancangan Halaman Decrypt

Halaman dekripsi akan muncul jika user memilih menu

“decrypt” pada halaman utama. Terdapat lima halaman

dalam rancangan halaman decrypt, yaitu:

a. Rancangan halaman pilih file

Halaman pilih file merupakan halaman awal dari

proses dekripsi. Terdapat checkbox untuk memilih

file yang akan didekripsi. User diizinkan memilih

paling banyak 10 file. Jika user memilih lebih dari

89

Page 107: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

10 file, maka file ke 11 dan seterusnya akan

diabaikan.

Logo acrypt cs

decryption

Record 1

Record 2

: : : :

Record n

decrypt cancel

footer

Gambar 4.24. Rancangan halaman pilih file

b. Halaman cek file

Halaman ini menampilkan sementara file-file yang

akan didekripsi.

90

Page 108: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

decryption

File 1

File name :

File size :

Sender :

Date :

: : :

File n File name :

File size :

Sender :

Date :

next cancel

footer

Gambar 4.25. Rancangan halaman cek file

c. Halaman input private key

Halaman ini meminta user untuk memasukkan kunci

private miliknya. Kunci private ini akan digunakan

untuk dekripsi password pada file yang terenkripsi.

Setelah button decrypt diklik, proses dekripsi akan

dimulai.

91

Page 109: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

decryption

Your private key:

next clear cancel

footer

Gambar 4.26. Rancangan halaman input private key

d. Halaman decryption complete.

Halaman ini menginformasikan file hasil dekripsi,

ukuran file, dan waktu dekripsi.

92

Page 110: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

decryption

Decryption complete for these file

File 1

File name :

File size :

Process time :

: : :

File n

File name :

File size :

Process time :

finish

footer

Gambar 4.27. Rancangan halaman decryption complete

5. Perancangan Halaman Inbox

Halaman inbox akan muncul jika user memilih menu

“inbox” pada halaman utama. Halaman ini menampilkan

semua file terenkripsi yang telah dikirimkan oleh user lain

kepadanya. User dapat langsung mendekripsi file dari

halaman ini. Tetapi user hanya dapat mendekripsi satu file

pada satu waktu. User juga dapat menghapus file tersebut.

93

Page 111: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

No Filename Filesize Sender Date Action

Record 1 decrypt

Logo acrypt cs

inbox

delete

Record 2 decrypt delete

: : : :

Record n decrypt delete

footer

Gambar 4.28. Rancangan halaman inbox

6. Perancangan Halaman Outbox

Halaman outbox akan muncul jika user memilih menu

“outbox” pada halaman utama. Halaman ini menampilkan

semua file terenkripsi yang telah dikirimkan oleh user ini

kepada user lain. User dapat menghapus file tersebut.

94

Page 112: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

outbox

No Filename Filesize Receiver Date Action

Record 1 delete

Record 2 delete

: : : :

Record n delete

footer

Gambar 4.29. Rancangan halaman outbox

7. Perancangan Halaman My Key

Halaman my key akan muncul jika user memilih menu

“my key” pada halaman utama. Halaman ini memberi

kesempatan user untuk melihat kunci privat (jika user

lupa) dan merubah pasangan kuncinya. Halaman ini

dilindungi pertanyaan pengaman yang dibuat saat sign up.

Jika pertanyaan dijawab dengan benar, maka private key

akan muncul dan memberikan link untuk mengubah

pasangan kuncinya. Jika user memilih link tersebut, maka

aplikasi akan langsung membangkitkan pasangan kunci

publik dan kunci private jika inbox user dalam keadaan

kosong. Jika inbox tidak kosong, maka user harus

95

Page 113: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

menghapus dulu seluruh file yang ada di inbox-nya. User

juga dapat merubah lagi pasangan kuncinya dengan me-

refresh halaman ini. User harus langsung menyimpan

kunci private yang telah ada.

Logo acrypt cs

My key

image

For security reason, you have to answer your security question to get your private key or change your key pair..

sequrity question

your answer : answer

enter clear cancel

footer

Gambar 4.30. Rancangan halaman my key (security question)

Logo acrypt cs

My key

image

your private key : new key

Please safely keep your private key..

change my key

footer

Gambar 4.31. Rancangan halaman my key (private key)

96

Page 114: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

Change key

image

your key has been change ! refresh page for new key..

you have to save your private key : new key

footer

Gambar 4.32. Rancangan halaman generate key

8. Perancangan Halaman Change Password

Halaman change password akan muncul jika user memilih

menu “change password” di halaman utama. Halaman ini

memberi kesempatan user untuk merubah password

loginnya.

97

Page 115: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

Change password

image

current password :

new password :

confirm password :

save clear

footer

Gambar 4.33. Rancangan halaman change password

9. Perancangan Halaman Help

Halaman help akan muncul jika user memilih menu “help”

pada halaman utama. Halaman ini menampilkan semua

bantuan yang mungkin diperlukan oleh user. Termasuk

sedikit materi tentang metode yang digunakan dalam

aplikasi ini.

98

Page 116: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

help

Singkat tentang acrypt cs

Algoritma AES Algoritma RSA

Link bantuan

Gambar marquee

footer

Gambar 4.34. Rancangan halaman help

10. Perancangan Halaman About

Halaman about akan muncul jika user memilih menu

“about” pada halaman utama. Halaman ini menampilkan

beberapa informasi tentang pembuat aplikasi.

99

Page 117: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Logo acrypt cs

about

foto

Nama : zaenal muttaqin

Nim : 2040 9100 2553

Jurusan : teknik informatika

Fakultas : sains dan tekologi

e-mail : [email protected]

Ucapan terima kasih

footer

Gambar 4.35. Rancangan halaman about

4.5.5. State Transition Diagram

Berikut adalah gambaran State Transition Diagram-nya :

100

Page 118: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

101

Page 119: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Gambar 4.36. State Transition Diagram Aplikasi Acrypt CS

102

Page 120: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Berdasarkan State Transition Diagram pada gambar 4.34,

aplikasi acrypt cs dimulai dengan halaman login. User

memasukkan username dan password yang telah terdaftar

sebelumnya. Jika user belum terdaftar, user mengklik link

signup dan menuliskan data pribadi user di form yang

disediakan. Setelah signup selesai, user diberikan kunci privat

yang harus disimpan oleh user untuk mendekripsi pesan yang

dikirimkan kepadanya.

Setelah user berhasil login, aplikasi menampilkan halaman

utama yang berisi sembilan menu utama yaitu encryption,

decryption, inbox, outbox, generate new key pair, change key,

help about, dan logout.

Jika user mengklik encryption, maka muncul halaman

encryption yang meminta User memasukkan jumlah file yang

akan dienkripsi. Jika user menekan next, tampil halaman input

file yang akan dienkripsi. Jika user menekan back aplikasi akan

kembali ke halaman input jumlah file. Jika user menekan next

akan tampil halaman cek file yang menginformasikan tentang

file yang akan dienkripsi. Jika user menekan next akan tampil

halaman input password. Setelah memasukkan password, Jika

user menekan next aplikasi akan melakukan enkripsi dan setelah

selesai, menampilkan informasi file hasil enkripsi. Pada semua

halaman enkripsi tersebut, Jika user menekan cancel aplikasi

akan kembali ke halaman utama.

103

Page 121: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Jika user mengklik decryption, maka muncul halaman

decryption yang meminta user memilih file yang akan

didekripsi. User dapat memilih maksimal 10 file. Jika user

memilih lebih dari 10 file, maka file setelah 10 terbawah akan

diabaikan. Jika user menekan next akan tampil halaman cek file

yang menginformasikan tentang file yang akan didekripsi. Jika

user menekan next akan tampil halaman input private key.

Setelah memasukkan private key, Jika user menekan next

aplikasi akan melakukan dekripsi dan setelah selesai,

menampilkan informasi file hasil dekripsi. Pada semua halaman

dekripsi tersebut, Jika user menekan cancel aplikasi akan

kembali ke halaman utama. Pada halaman hasil dekripsi, user

harus menyimpan file yang telah didekripsi. Karena setelah user

menekan tombol finish, file akan segera dihapus.

Jika user menekan inbox, maka muncul halaman inbox

yang menampilkan file terenkripsi yang dikirimkan kepadanya.

User dapat langsung mendekripsi atau menghapus file yang ada

dalam inbox-nya. Jika user menekan tombol decrypt, akan

tampil halaman cek file yang menginformasikan sementara file

yang akan didekrip. Jika user menekan next, muncul halaman

input private key. Setelah itu, jika user menekan decrypt,

dekripsi akan diproses. Setelah selesai, informasi file hasil

dekripsi akan ditampilkan. Pada semua halaman inbox tersebut,

Jika user menekan cancel aplikasi akan kembali ke halaman

104

Page 122: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

inbox. Pada halaman hasil dekripsi, user harus menyimpan file

yang telah didekripsi. Karena setelah user menekan tombol

finish, file akan segera dihapus. Jika user menekan delete, maka

tampil halaman konfirmasi file yang akan dihapus. User dapat

menekan yes untuk menghapus, atau no untuk membatalkan.

Jika user mengklik outbox, akan tampil halaman outbox

yang menampilkan semua file yang telah dikirimkan olehnya.

User dapat menghapus file tersebut. Jika user menekan delete,

maka tampil halaman konfirmasi file yang akan dihapus. User

dapat menekan yes untuk menghapus, atau no untuk

membatalkan.

Jika user mengklik generate new key, akan tampil

halaman yang membangkitkan pasangan kunci publik dan kunci

privat yang baru. User harus menyimpan kunci privat yang baru

tersebut. Tetapi jika user masih memiliki file di inbox, aplikasi

tidak akan membangkitkan pasangan kunci yang baru, tetapi

menampilkan link untuk menghapus semua file yang ada di

inbox. Jika menekan delete all files, tampil halaman konfirmasi

untuk menghapus semua file inbox. Jika menekan yes, akan

tampil halaman yang membangkitkan pasangan kunci publik

dan kunci privat yang baru. Jika menekan no, aplikasi akan

kembali ke menu utama.

Jika user mengklik change password, akan tampil

halaman yang menampilkan form untuk mengubah password

105

Page 123: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

login. Setelah form diisi dan ditekan next, akan diberitahukan

bahwa perubahan berhasil. User harus login kembali setelah

mengubah passwordnya.

Jika user mengklik help, akan tampil halaman help yang

berisi deskripsi singkat aplikasi, teori singkat metode Advance

Encryption Standard dan Rivest Shamir Adleman, dan link help

yang detil yaitu encryption, decryption, inbox, outbox, generate

new key pair, dan change password. Jika user mengklik salah

satu link tersebut, maka tampil halaman penjelasan sesuai link

yang diklik. Pada semua halaman help tersebut, jika user

mengklik home, akan kembali ke menu utama.

Jika user mengklik about, maka tampil halaman deskripsi

singkat tentang pembuat aplikasi. Jika user mengklik home,

akan kembali ke menu utama.

Jika user mengklik logout, maka aplikasi akan menghapus

session dan menampilkan halaman login kembali.

4.6. Fase Konstruksi

Pada fase ini, dilakukan pengkodean terhadap rancangan-rancangan

yang telah didefinisikan sebelumnya menggunakan bahasa pemrograman

PHP. Pengkodean aplikasi ini menggunakan software EditPlus untuk

mengedit source code program, dan adobe photoshop untuk mendesain

user interface. Aplikasi ini dibuat dengan memanfaatkan library dan

class yang sudah tersedia. Library yang digunakan adalah library

106

Page 124: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

enkripsi Advance Encryption Standard (rijndael) yang terdapat pada

interpreter PHP yang digunakan. Pemanfaatan library tersebut

ditunjukkan pada potongan kode sumber berikut :

$td = mcrypt_module_open('rijndael-128', '', 'cbc', '');

$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),

MCRYPT_RAND);

$ks = mcrypt_enc_get_key_size($td);

$key = $_SESSION[AESpass];

mcrypt_generic_init($td, $key, $iv);

$encrypted_data = mcrypt_generic($td, $initial_contents);

Sedangkan class yang digunakan untuk membangun aplikasi

adalah class enkripsi Rivest Shamir Adleman. Penggunaan kelas tersebut

ditunjukkan dengan potongan kode sumber berikut :

require_once("rsa.class");

$rsa = New SecurityRSA;

$encoded = $rsa->rsa_encrypt($key, $e, $n);

Class Rivest Shamir Adleman dan kode sumber selengkapnya

dapat dilihat pada lampiran C.

4.7. Fase Pelaksanaan (Implementasi)

Pengujian yang dilakukan terhadap aplikasi acrypt cs ini adalah

pengujian dengan metode blackbox. Pengujian dilakukan dengan

menjalankan semua fungsi dan fitur yang ada dari aplikasi ini dan

kemudian dilihat apakah hasil dari fungsi-fungsi tersebut sesuai dengan

107

Page 125: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

yang diharapkan. Aplikasi dijalankan melalui suatu web browser di

komputer client dan user mencoba melakukan proses enkripsi dan dekripsi.

4.7.1. Konfigurasi Client Server

Pada implementasi ini, penulis melakukan konfigurasi

server dan client di CV Maharta Mandiri Promo divisi

operasional dengan menggunakan jaringan LAN. Pada server

menggunakan software Xampp 1.6.6a sebagai web servernya.

Sedangkan client langsung menjalankan aplikasi di browser

masing-masing komputer. User dapat langsung menggunakan

aplikasi acrypt cs tanpa perlu menginstal aplikasi terlebih dahulu

asalkan memiliki browser pada komputernya.

Untuk memulai program dilakukan pada PC client, dengan

mengetikkan alamat URL berikut pada address bar browser :

http://192.168.10.2/acrypt cs/

Disarankan untuk menggunakan browser mozilla firefox

karena interface dan fungsi aplikasi akan menjadi lebih baik.

4.7.2. Proses Enkripsi dan Dekripsi Multifile

Proses enkripsi dan dekripsi multifile pada program

acrypt cs ini dapat berjalan dengan baik. Dan memberikan

keamanan dalam pencegahan pembacaan file oleh pihak-pihak

yang tidak berhak. Untuk tampilan program selengkapnya dapat

dilihat pada lampiran B.

108

Page 126: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

4.7.3. Pengujian Aplikasi Acrypt cs

Setelah melakukan proses setting server kemudian

dilakukan pengujian terhadap aplikasi acrypt cs, pengujian yang

penulis lakukan bertempat di divisi operasional CV Maharta

Mandiri Promo, pada tahap pengujian enkripsi dan dekripsi ini

dilakukan pada semua tipe file dengan ukuran file maksimal

1GB dan proses enkripsi/dekripsi maksimal 60 menit.

Apabila telah terenkripsi akan menjadi file yang

berekstensi (*.znc), dan jika didekripsi akan kembali menjadi

file asli yang berekstensi seperti file awal. Pengujian ini dapat

dilihat pada tampilan program di lampiran B.

1. Pengujian enkripsi terhadap tipe file yang berbeda.

Pada tahap ini, penulis akan melihat apakah aplikasi dapat

melakukan enkripsi pada tipe file yang berbeda dan

apakah ukuran file akan berubah atau tidak. Tipe file yang

akan diuji adalah file yang berekstensi (*.mp3), (*.mp4),

(*.zip), (*.pdf), dan (*.avi).

Gambar 4.37. Informasi file sebelum dienkripsi

109

Page 127: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

N

z

c

i

4

0

3

k

Gambar 4.38. Informasi file sesudah dienkripsi

Proses enkripsi berjalan lancar, semua tipe file bisa

dienkripsi tanpa ada kesalahan aplikasi. Semua file sudah

berubah ke dalam data yang tersandikan. Untuk lama

waktu yang digunakan tergantung pada besar kecilnya

ukuran file yang dienkripsi, semakin besar ukuran file

yang dienkripsi maka semakin lama prosesnya. Namun,

jika ukuran file yang dienkripsi kecil (<=100 MB), maka

prosesnya tidak memakan waktu lama. Waktu ditampilkan

dalam hitungan detik. Tabel 4.1 menunjukkan ukuran file

dan waktu enkripsi.

Tabel 4.1. Tabel ukuran dan waktu enkripsi

No. Nama F le Ukuran File Awal Ukuran File A hir Waktu Enkripsi 1. ORDI ARY PEOPLE.mp3 ,381 KB 4,381 KB 0.24933 seconds

2. Newspaper 9.flv 20,905 KB 20,905 KB 3.11202 seconds

3. Video. ip 5 ,133 KB 50,133 KB 3.82763 seconds

4. CHIP 07 2005.pdf 63,525 KB 63,525 KB 5.65621 seconds

5. The se ret.avi 14 ,179 KB 143,179 KB 9.39863 seconds

2. Pengujian dekripsi terhadap tipe file yang berbeda

Pada tahap ini akan dilihat apakah aplikasi dapat

melakukan dekripsi, y itu merubah file ke bentuk asli

110

Page 128: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

R

h

m k

e

pada masing-masing tipe file di atas. Dan melihat berapa

banyak ukuran file itu akan berubah dan berapa lama

waktu yang digunakan. Berikut hasil dekripsi yang

meunjukkan semua file kembali ke ukuran awal dan dapat

berjalan seperti file asli.

Gambar 4.39. Informasi file sesudah didekripsi

Proses dekripsi berjalan lancar, semua tipe file bisa

didekripsi ke bentuk semula. Untuk lama waktu yang

digunakan tergantung pada besar kecilnya ukuran file

yang didekripsi. Tabel 4.2 menunjukkan ukuran file dan

waktu dekripsi.

Tabel 4.2. Tabel ukuran dan waktu dekripsi

No. Na a File U uran File Waktu Dekripsi 1. O DINARY PEOPLE.mp3 4,381 KB 0.25167 seconds

2. Newspaper 9.flv 20,905 KB 2.93739 seconds

3. Video.zip 50,133 KB 6.36124 seconds

4. CHIP 07 2005.pdf 63,525 KB 7.62527 seconds

5. T e secret.avi 143,179 KB 13.62425 s conds

111

Page 129: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

BAB V

PENUTUP

5.1. Kesimpulan

Berdasarkan uraian bab-bab sebelumnya, maka dapat diambil

kesimpulan dari penulisan skripsi ini sebagai berikut :

1. Aplikasi Acrypt cs tidak memerlukan proses instalasi aplikasi terlebih

dahulu, dan juga dapat dijalankan dari sistem operasi apapun karena

aplikasi Acrypt cs ini berbasis client server (web based).

2. Aplikasi acrypt cs berhasil mengimplementasikan metode Advance

Encryption Standard dan Rivest Shamir Adleman dalam

mengamankan pesan. Hal ini dibuktikan melalui hasil pengujian pada

tabel 4.1 dan tabel 4.2, yang memperlihatkan bahwa semua pesan yg

dienkrip dapat berubah menjadi file berekstensi (*.znc) serta dapat

dikembalikan ke file aslinya dalam proses dekripsi dan tidak

mengalami perubahan, dengan tingkat keberhasilan 100%.

3. Berdasarkan hasil pengujian, ukuran file yang semakin besar akan

mempengaruhi lama proses enkripsi dan dekripsi. Semakin besar

ukuran file akan semakin lama proses enkripsi dan dekripsinya. Hal

tersebut ditunjukkan pada tabel 4.1 dan tabel 4.2 di atas.

4. Aplikasi acrypt cs dapat digunakan pada jaringan LAN.

112

Page 130: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

5.2. Saran

Berdasarkan penelitian yang diperoleh, ada beberapa saran untuk

pengembangan sistem lebih lanjut, saran-saran tersebut yaitu:

1. Aplikasi acrypt cs berbasis client server dapat bervariasi

menggunakan bahasa pemprograman dan metode yang lain agar dapat

memberikan keamanan yang lebih baik sehingga dapat dikembangkan

untuk pengiriman file dari server ke client atau dari client ke client

lain.

2. Aplikasi acrypt cs hanya dapat mengupload 10 file dan ukuran

maksimal 1GB, untuk proses enkripsi, diharapkan dapat

dikembangkan sehingga dapat mengupload file lebih banyak dengan

ukuran lebih besar tanpa harus memperlambat proses enkripsi dan

dekripsi secara signifikan.

113

Page 131: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

DAFTAR PUSTAKA

Ariyus, Dony. 2006. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta :

Graha Ilmu.

Ariyus, Dony. 2008. PENGANTAR ILMU KRIPTOGRAFI Teori Analisis dan

Implementasi. Yogyakarta : Andi.

Burnett, Steve and Stephen Paine. 2004. RSA Security’s Official Guide to

CRYPTOGRAPHY. California : McGraw-Hill/Osborne.

Hartono, Jogiyanto. 1999. Pengenalan Komputer. Yogyakarta : Andi.

Kahate, Atul. 2003. CRYPTOGRAPHY AND NETWORK SECURITY. California :

McGraw-Hill.

Muliati, Sarlika.2008. Implementasi Digital Envelope Dengan Menggunakan

Metode Blowfish Dan Rivest Shamir Adleman Di Ppptmgb “Lemigas”.

Jakarta : UIN Syarif Hidayatullah.

Peranginangin, Kasiman. 2006. Aplikasi WEB dengan PHP dan MySQL.

Yogyakarta : Andi.

114

Page 132: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Kenneth E. Kendall., Jullie E. Kendall. 2003. Systems Analysis and Design. fifth

Edition. Dialihbahasakan oleh Thamir Abdul Hafed Al-Hamdany, B.Sc, M.Sc

dalam buku Analisa dan Perancangan Sistem Jilid 1. Jakarta : Prenhallindo.

Kristanto, Andri. 2003. Keamanan Data Pada Jaringan Komputer. Bandung :

Gaya Media.

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

Nanang, Herlino. 2004. Web Programming. Jakarta : UIN Syarif Hidayatullah.

Pressman, Roger S. 2002. Rekayasa Perangkat Lunak Pendekatan Praktisi (Buku

Satu). Yogyakarta : Andi.

Stalling, William. 2003. Cryptography and Network Security Principles and

Practices Third Edition. New Jersey : Prentice Hall.

Wahana Komputer. 2003. Memahami Model Enkripsi & Security Data.

Yogyakarta : Andi

Wicaksono, Prasetyo Andy. 2006. Studi Pemakaian Algoritma RSA Dalam Proses

Enkripsi dan Aplikasinya. Bandung : Institut Teknologi Bandung

http://www.informatika.org/~rinaldi/Matdis/2006-

2007/Makalah/Makalah0607-80.pdf (diakses 01 jan 2009 pkl 20:08 WIB).

115

Page 133: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

LAMPIRAN A

HASIL WAWANCARA

Narasumber : Andi Muhammad AR

(Dirut CV Maharta Mandiri Promo)

Pewawancara : Zaenal Muttaqin

Waktu : 9 Juli 2009

1. T : Bagaimana pemahaman anda mengenai keamanan data atau kriptografi ?

J : Keamanan data merupakan hal yang sangat penting bagi setiap

perusahaan, karena apabila data-data penting perusahaan tidak memiliki

keamanan data yang baik, maka informasi yang dimiliki perusahaan akan

mudah dicuri oleh pihak yang tidak bertanggung jawab atau yang tidak

mempunyai hakuntuk informasi tersebut.

2. T : Menurut anda perlukah data perusahaan anda untuk diamankan?

J : Ya, karena data perusahaan adalah identitas perusahaan, yang harus kita

jaga dengan benar jangan sampai data perusahaan tersebut dicuri oleh

pihak yang tidak bertanggung jawab.

3. T : Pernahkah anda mendengar tentang aplikasi keamanan data berbasis

client server?

J : Pernah.

4. T : Pedulikah Bapak terhadap keamanan data di CV ini ?

J : Ya. Apapun data yang dimiliki perusahaan harus diamankan dengan

sebaik mungkin, untuk mencegah hal-hal yang tidak diinginkan oleh

perusahaan dan dapat merugikan perusahaan.

116

Page 134: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

5. T : Pentingkah data di perusahaan ini untuk diamankan ?

J : Ya, penting.

6. T : Jenis data apa yang biasanya dikirim via jaringan di CV ini ?

J : Biasanya semacam surat penawaran kepada perusahaan lain atau mitra

dari CV Maharta Mandiri Promo, order pemesanan barang, desain

produk, digital printing, tagihan pembayaran, laporan keuangan, proposal

tender, dan lain-lain.

7. T : Jika anda diperkenalkan dengan sebuah aplikasi keamanan data, apakah

anda akan menggunakannya ?

J : Tergantung sesuai dengan kebutuhan perusahaan dan menganalisa

terlebih dahulu. Jika setelah melakukan analisa aplikasi tersebut

memang sesuai dengan yang dibutuhkan oleh perusahaan maka kami

akan mengunakan aplikasi keamanan data tersebut.

8. T : Apakah di CV ini pernah terjadi pencurian data oleh pihak yang tidak

berhak?

J : Pernah.

9. T : Jika ada, apakah CV ini dirugikan dengan pencurian data tersebut?

J : Ya, tentu saja merugikan. Saat itu desain yang kami buat dicuri oleh orang

lain dan menyebabkan tender jatuh ke perusahaan lain yang mematok

harga lebih murah dengan desain yang sama.

117

Page 135: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

LAMPIRAN B

TAMPILAN APLIKASI ACRYPT CS

B.1. Tampilan Aplikasi Acrypt cs

B.1.1. Halaman Login

118

Page 136: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.1.2. Halaman Signup

B.1.3. Halaman Utama

119

Page 137: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.1.4. Halaman Enkripsi

120

Page 138: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

121

Page 139: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

122

Page 140: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.1.5. Halaman Dekripsi

B.1.6. Halaman Inbox

123

Page 141: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.1.7. Halaman Outbox

B.1.8. Halaman My Key

124

Page 142: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.1.9. Halaman Change Password

125

Page 143: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.1.10. Halaman Help 126

Page 144: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

127

Page 145: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.1.11. Halaman About

128

Page 146: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.2. Tampilan Pesan

B.2.1. Pesan Sign Up Complete

B.2.2. Pesan Kesalahan Input Data

B.2.2.1. Kesalahan Login :

B.2.2.2. Kesalahan Sign up :

B.2.2.3. Kesalahan Input file enkripsi :

129

Page 147: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

B.2.2.3. Kesalahan Input password enkripsi :

B.2.3. Konfirmasi Penghapusan File

B.2.4. Konfirmasi Penghapusan Seluruh isi inbox

130

Page 148: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

LAMPIRAN C

KODE SUMBER APLIKASI ACRYPT CS

decrypt.php

<?php function decryptFile($id, $i) { $hasil = mysql_query("select cipher_name, aes_key, iv from file where id_file = '$id'"); $row = mysql_fetch_row($hasil); //decryption process $private_key = $_SESSION[privateKey]; //RSA string decryption //pecah private key jadi d,n $bagi = explode(",",$private_key);$d = $bagi[0];$n = $bagi[1]; require_once("rsa.class"); $rsa = New SecurityRSA; //$encoded = $rsa->rsa_encrypt($key, $e, $n); $decoded = $rsa->rsa_decrypt($row[1], $d, $n); //AES file decryption $file = 'data/'.$row[0]; $initial_contents = file_get_contents($file); if($initial_contents) {//This function opens the module of the algorithm and the mode to be used

$td = mcrypt_module_open('rijndael-128', '', 'cbc', ''); //Create an initialization vector (IV) from a random source //$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),

MCRYPT_RAND); $iv = $row[2]; $ks = mcrypt_enc_get_key_size($td); $key = $decoded; //password yg telah didekripsi //This function initializes all buffers needed for

decryption mcrypt_generic_init($td, $key, $iv);

//This function decrypts data $decrypted_data = mdecrypt_generic($td, $initial_contents); $nama = substr($row[0],0,-4); $out = strtr($nama,"_","."); $output = 'temp/'.$out; $newfile = @fopen($output,'w'); $ok_decrypt = @fwrite($newfile,$decrypted_data); if($ok_decrypt) { $_SESSION[dec] = "decrypted successfully"; } else { $_SESSION[dec] = "decryption failed";} @fclose($newfile); //This function deinitializes an encryption module mcrypt_generic_deinit($td); //Close the mcrypt module

mcrypt_module_close($td);

if ($i != "") {$_SESSION[filed.$i] = $output;}

if($i == "")

$_SESSION[filed] = $output;}}?>

131

Page 149: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

decryption.php

<?php

session_start(); include "otentik.php"; if(!otentikasi($_SESSION[username], $_SESSION[password])) { $alamat = "logout.php";header("Location: $alamat");exit(0);} if (!login_check()) { header("Location: logout.php"); exit(0);} $title = "acrypt cs | decryption "; include "header.php"; $page = "secure";

?> <script language="JavaScript"> function cek_file() {

var a = document.getElementById('check[]').value; if (a==false) { alert('please check your input..'); return false; } else return true;}

function input_private() { var a = document.getElementById('pass').value; if (a=="") { alert('please check your private key..');return false;} else return true; }

</script> <?php

include "header2.php"; // DECRYPTION FROM INBOX $code = $_POST['code']; if(isset($code)) { include "koneksi.php"; //kode 1 adl tampilan sementara file yg akan didekripsi //kode 2 input private key //kode 3 decrypt kunci + file //session_register : //file privateKey filed if(!isset($_SESSION[file])) {session_register("file");$_SESSION[file] = $_POST['file'];} $kode = $_POST['kode']; if(!isset($kode)) $kode = "1"; if($kode=="1") {print"<center><table class=warna1 $frame><tr><td

rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td

colspan=3>";print"<table width=500 class=warna2 $frame><tr><td

rowspan=50>&nbsp;</td></tr>"; //tampilan file sementara print"<tr><td colspan=3><b>this file will be decrypt

:</b></td></tr><tr><td>&nbsp;</td></tr>";$hasil =

mysql_query("select cipher_name, cipher_size, date from file where

id_file = '$_SESSION[file]'");$row = mysql_fetch_row($hasil);

print"<form name='formulir' action='decryption.php'

method='POST'>"; print"<input type='hidden' name='code'

value='unit'>"; print"<input type='hidden' name='kode'

value='2'>";print"<tr><td align=left>filename </td><td>: </td><td

align=left>$row[0]</td></tr>"; $filesize = $row[1];

132

Page 150: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

if($filesize > 1000000)

{ $filesize = $filesize/1048576;$satuan = "MB";} else if($filesize > 1000) { $filesize = $filesize/1024; $satuan = "KB";} else{ $satuan = "B"; } printf("<tr><td align=left>file size </td><td>: </td><td

align=left>%.3f %s &nbsp;</td></tr>",$filesize, $satuan);

$id_user = mysql_fetch_row(mysql_query("select id_user from

user where username = '$_SESSION[username]'")); //ambil data dari tabel outbox(sender).. $out = mysql_fetch_row(mysql_query("select id_user from

outbox where id_file = '$_SESSION[file]'")); if ($out[0]==$id_user[0]) $sender = "you"; else { $has = mysql_fetch_row(mysql_query("select fullname from

user where id_user = '$out[0]'")); $sender = $has[0];}

print"<tr><td align=left>sender </td><td>: </td><td

align=left>$sender</td></tr>"; print"<tr><td align=left>date

</td><td>:</td><td align=left>$row[2]</td></tr>"; print"<tr> <td>&nbsp;</td></tr>"; print"</td></tr></table></td></tr>"; print"<tr align=right><td><input name='submit' type='submit' value='next'></td>"; print"</form>";

//cancel button back to inbox print"<form name='formulir2' action='inbox.php'

method='POST'>"; print"<input type='hidden' name='clear' value='y'>"; print"<td width=50><input name='submit' type='submit'

value='cancel'></td></tr>";print"</form>";print"</table></center>< br><br><br><br><br><br>";}

if($kode=="2") { print"<center><table class=warna1 $frame><tr><td

rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td colspan=3>"; print"<table width=500 class=warna2 $frame><tr><td

rowspan=50>&nbsp;</td></tr>"; //input private key if (!isset($_SESSION[privateKey]))

session_register("privateKey"); $_SESSION[privateKey] = ""; print"<tr><td>&nbsp;</td></tr>";print"<form name='formulir'

action='decryption.php' method='POST'>";print"<input type='hidden'

name='kode' value='3'>";print"<input type='hidden' name='code'

value='unit'>";print"<tr><td>Your private key : </td><td><input

name='pass' type='password' id='pass' size='50'></td></tr>";

print"<tr><td>&nbsp;</td></tr></td></tr></table></td></tr>";

print"<tr align=right><td><input name='submit' type='submit'

value='decrypt' onClick='return input_private()'>";

print"<input name='reset' type='reset' value='clear'></td>"; print"</form>"; //cancel button back to inbox print"<form name='formulir2' action='inbox.php' method='POST'>"; print"<input type='hidden' name='clear' value='y'>"; print"<td width=50><input name='submit' type='submit'

value='cancel'></td></tr>";print"</form>";

print"</table></center><br><br><br><br><br><br><br><br><br><br>";}

if($kode=="3") {//put private key to session

133

Page 151: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

$_SESSION[privateKey] = $_POST['pass'];

//private key kosong if($_SESSION[privateKey]=="") {

print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png'

width=300></td></tr><tr><td colspan=3>";

print"<table width=500 class=warna2

$frame><tr><td>&nbsp;</td></tr>"; print"<tr><td align=center><b>please check your private

key..</b></td></tr><tr><td>&nbsp;</td></tr>"; print"</td></tr></table>"; print"</td></tr><form name='formulir' action='decryption.php'

method='POST'>"; print"<input type='hidden' name='title' value='decryption'>"; print"<input type='hidden' name='code' value='unit'>";

print"<input type='hidden' name='kode' value='2'>";

print"<tr><td width=50 align=center><input name='submit'

type='submit' value='back'></td></form>"; print"</tr></table><br><br><br><br><br><br><br><br><br><br><b

r><br>"; include "footer.php";exit(0);} //private key invalid $private_key = mysql_fetch_row(mysql_query("select private_key from user where username = '$_SESSION[username]'")); if($private_key[0] != $_SESSION[privateKey]) {

print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td colspan=3>";print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";print"<tr><td align=center><b>your private key is invalid..</b></td></tr> <tr><td>&nbsp;</td></tr>";print"</td></tr></table>";print"</td></t r><form name='formulir' action='decryption.php' method='POST'>"; print"<input type='hidden' name='title' value='decryption'>"; print"<input type='hidden' name='code' value='unit'>"; print"<input type='hidden' name='kode' value='2'>";

print"<tr><td width=50 align=center><input name='submit'

type='submit' value='back'></td></form>"; print"</tr></table><br><br><br><br><br><br><br><br><br><br><br><br >"; include "footer.php"; exit(0); } print"<center><table class=warna1 $frame><tr><td

rowspan=3>&nbsp;</td><td align=center colspan=3><img src=

'img/decryption.png' width=300></td></tr><tr><td colspan=3>";

print"<table width=500 class=warna2 $frame><tr><td

rowspan=50>&nbsp;</td></tr>"; //decryption process print"<tr><td colspan=3 align=center><font size='4px' color='#0066ff'>decryption complete..</td></tr>"; print"<tr><td colspan=3 align=center>to download the file click on

the filename. we have to delete the file after you click

<b>finish</b>..</font></td></tr>";print"<tr><td>&nbsp;</td></tr>";

include "decrypt.php";include "microtime.php";

session_register("filed");$i = "";$_SESSION[dec]="";

$time_a = getmicrotime();//print"<br>SESSION[file] : $_SESSION[file]<br>";decryptFile($_SESSION[file], $i); //update table that the file was decrypted $sql = "update inbox set decrypted='y' where id_file='$_SESSION[file]'"; $hasil = mysql_query($sql,$connect);

134

Page 152: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

$time_b = getmicrotime();

$time = $time_b - $time_a; $filesize = filesize($_SESSION[filed]); $nama = substr($_SESSION[filed],5); if($filesize > 1048576) { $filesize = $filesize/1048576; $satuan = "MBytes";} else if($filesize > 1024) { $filesize = $filesize/1024; $satuan = "KBytes"; } else { $satuan = "Bytes"; } //print hasil dekripsi $link = "<a href='".$_SESSION[filed]."' target='_blank'>"; print"<tr><td width=100 align=left>file name </td><td>: </td><td align=left> ".$link.$nama."</a></td></tr>";

printf("<tr><td align=left>file size </td><td>: </td><td

align=left>%.3f %s</td></tr>",$filesize, $satuan);

print"<tr><td align=left>status </td><td>: </td><td

align=left>".$_SESSION[dec]."</td></tr>";

printf("<tr><td align=left>process time </td><td>: </td><td

align=left>%.5f seconds</td></tr>",$time);

print"<tr><td>&nbsp;</td></tr>";

print"<tr><td>&nbsp;</td></tr></td></tr></table></td></tr>";

//cancel button back to inbox print"<form name='formulir2' action='inbox.php' method='POST'>"; print"<input type='hidden' name='hapus' value='y'>";

print"<td align=right><input name='submit' type='submit'

value='finish'></td></tr>";print"</form>"; print"</table></center><br><br>";} //close if($kode=3) } //close if(isset($code)) /**ordinary decryption**/ else { $level = $_POST[level]; if(!isset($level)) $level = "1"; //level 1 select file to dekrip with checkbox //level 2 temporary show file to decrypt //level 3 input private key //level 4 decrypt if($level == "1") { //select file to decrypt max 10!!!!! //prepare session variable // jml file file1 - file10 // privateKey filed1 - filed10 session_register("jmlfile"); session_register("privateKey");

session_register("file1"); session_register("file2");

session_register("file3"); session_register("file4");

session_register("file5"); session_register("file6");

session_register("file7"); session_register("file8");

session_register("file9"); session_register("file10"); //set to null $_SESSION[jmlfile] = ""; $_SESSION[privateKey] = ""; $_SESSION[file1] = ""; $_SESSION[file2] = ""; $_SESSION[file3] = ""; $_SESSION[file4] = ""; $_SESSION[file5] = ""; $_SESSION[file6] = ""; $_SESSION[file7] = ""; $_SESSION[file8] = ""; $_SESSION[file9] = ""; $_SESSION[file10] = ""; //show file in inbox n select file to decrypt.. include"koneksi.php"; // take from database....

135

Page 153: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

$id_user = mysql_fetch_row(mysql_query("select id_user from user

where username = '$_SESSION[username]'"));

//ambil data dari tabel inbox $inbox = mysql_query("select id_inbox, id_file, decrypted from inbox where id_user = '$id_user[0]' order by id_inbox desc ");?> <center><table class=warna6 <?php print $frame; ?> ><tr><td

colspan=2 align=center><img src= 'img/decryption.png'

width=300></td></tr><tr><td colspan=2 align=center>select file you

want to decrypt (10 files maximum, if the limit exceeded, the file

will ignored..) :</td></tr><tr><td colspan=2><table width=900

class=warna1 <?php print $frame; ?> ><th>no.</th> <th>file

name</th> <th>file size (bytes)</th> <th>sender</th> <th>date</th> <th>select</th><tr><td>&nbsp;</td></tr><?php $jumlah = mysql_num_rows($inbox); if(!empty($jumlah)) {print"<form name='formulir' action='decryption.php' method='POST'>"; print"<input type='hidden' name='level' value='2'>";$i = 1; while($in = mysql_fetch_row($inbox)) {//ambil data dari tabel file.. $hasil = mysql_query("select id_file, cipher_name, cipher_size, date from file where id_file = '$in[1]'"); $row = mysql_fetch_row($hasil); if($i%2==0) $w = "warna4"; else $w = "warna3"; print"<tr class=$w><td align=center>$i</td>"; if($in[2] == "n") $nama_file = "<font color='#0033FF'>$row[1]</font>"; else if($in[2] == "y")$nama_file = $row[1]; print"<td align=left>&nbsp; $nama_file</td>";$filesize = $row[2]; if($filesize > 1000000) {$filesize = $filesize/1048576;$satuan = "MB";} else if($filesize > 1000) {$filesize = $filesize/1024;$satuan = "KB";} else {$satuan = "B";} printf("<td width=100 align=right>%.3f %s &nbsp;</td>",$filesize, $satuan); //ambil data dari tabel outbox(sender).. $out = mysql_fetch_row(mysql_query("select id_user from outbox where id_file = '$in[1]'")); if ($out[0]==$id_user[0]) $sender = "you"; else {$has = mysql_fetch_row(mysql_query("select fullname from user

where id_user = '$out[0]'")); $sender = $has[0];}

print"<td width=110>&nbsp; $sender</td>";print"<td

width=200>&nbsp; $row[3]</td>";print"<td width=50

align=center><input type='checkbox' name='check[]' id='check[]'

value='$row[0]' $cek></td></tr>"; $sql = "update inbox set new='n' where id_file='$in[1]'"; $hasil = mysql_query($sql,$connect);print"</td></tr>";$i++; }} else {print"<tr class=$w><td align=center colspan=6>there is no file in your inbox..</td></tr>";}print"</table></td></tr>"; print"<tr><td align=right><input type='submit' name='submit' value='next'></td>";print"</form>"; //cancel button back to home print"<form name='formulir2' action='index.php' method='POST'>"; print"<td width=50><input name='submit' type='submit' value='cancel'></td></tr>";print"</form>";print"</table>";

136

Page 154: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

print"</center>";if ($jumlah <= 0)$jbr = 10;else if($jumlah == 1)

$jbr = 9;else if($jumlah == 2)$jbr = 8;else if($jumlah == 3) $jbr = 6;else if($jumlah == 4)$jbr = 5;else if($jumlah == 5) $jbr = 4;else if($jumlah == 6)$jbr = 2;else if($jumlah == 7) $jbr = 1;else if($jumlah >= 8)$jbr = 0;for ($br=0 ; $br<=$jbr ; $br++)print"<br>";} if($level == "2") {//$check is an array content selected checkbox, and will sequence

from index 0, not depending on where checkbox selected.. $check = $_POST[check]; //input var to session, count from selected checkbox $jumlah = count($check); if($jumlah <= 0) {print"<center><table class=warna1 $frame><tr><td align=center

colspan=3><img src= 'img/decryption.png' width=300></td> </tr><tr><td colspan=3>";print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";print"<tr><td align=center> <b>please check one file or more to decrypt..</b></td></tr> <tr><td>&nbsp;</td></tr>";print"</td></tr></table>"; print"</td></tr><form name='formulir' action='decryption.php'>";

print"<input type='hidden' name='title' value='decryption'>";

print"<tr><td align=center><input name='submit' type='submit'

value='back'></td></form>";print"</tr></table><br><br><br><br><br> <br><br><br><br><br><br><br>";include "footer.php";exit(0); } else if($jumlah > 10) //make sure that only 10 first file will be decrypt.. $_SESSION[jmlfile] = 10; Else $_SESSION[jmlfile] = $jumlah; $j = 1; for($i=0 ; $i<$_SESSION[jmlfile] ; $i++) //looping as many checkbox selected in previous form.. {//input to $_SESSION[file.$j]; $_SESSION[file.$j] = $check[$i]; $j++; } //temp show the file print"<center><table class=warna1 $frame><tr><td rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td colspan=3>"; print"<table width=500 class=warna2 $frame><tr><td rowspan=100>&nbsp;</td></tr>";print"<tr><td colspan=3><b>these file(s) will be decrypt :</b></td></tr><tr><td>&nbsp;</td></tr>"; for($i=1 ; $i<=$_SESSION[jmlfile] ; $i++) {$id_file = $_SESSION[file.$i]; //make query to get filename n filesize of the file with id ($_SESSION[file.$i]) $hasil = mysql_query("select cipher_name, cipher_size, date from file where id_file = '$id_file'"); $row = mysql_fetch_row($hasil); print"<tr class=$w><td align=left><b>file ".$i."</b></td></tr>"; print"<tr><td align=left>file name </td><td>: </td><td

align=left>$row[0]</td></tr>"; $filesize = $row[1]; if($filesize > 1048576) {$filesize = $filesize/1048576; $satuan = "MBytes";} else if($filesize > 1024) {$filesize = $filesize/1024;$satuan = "KBytes"; } else {$satuan = "Bytes";} printf("<tr><td align=left>file size </td><td>: </td><td align=left> %.3f %s</td></tr>",$filesize, $satuan); //ambil data dari tabel outbox(sender)..

137

Page 155: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

$out = mysql_fetch_row(mysql_query("select id_user from outbox

where id_file = '$id_file'"));

if ($out[0]==$id_user[0]) $sender = "you"; else {$has = mysql_fetch_row(mysql_query("select fullname from user where id_user = '$out[0]'")); $sender = $has[0];}

print"<tr><td align=left>sender </td><td>: </td><td

align=left>$sender</td></tr>";print"<tr><td align=left>date

</td><td>: </td><td align=left>$row[2]</td></tr>"; print"<tr><td>&nbsp;</td></tr>";} //close for print"</td></tr></table></td></tr>";print"<form name='formulir2'

action='decryption.php' method='POST'>";print"<input type='hidden'

name='level' id='level' value='3'>";print"<tr align=right>

<td><input name='submit' type='submit' value='next'></td>";

print"</form>";//cancel button back to decrypt level=1

print"<form name='formulir2' action='index.php' method='POST'>";

print"<td width=50><input name='submit' type='submit'

value='cancel' ></td></tr>";print"</form>";print"</table>";

if ($jumlah == 1) $jbr = 3;else if($jumlah >= 2)$jbr = 0; for ($br=0 ; $br<=$jbr ; $br++) print"<br>";} if($level == "3") {//input private key if (!isset($_SESSION[privateKey])) session_register("privateKey"); $_SESSION[privateKey] = ""; print"<center><table class=warna1 $frame><tr><td rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr><td colspan=3>"; print"<table width=500 class=warna2 $frame><tr><td rowspan=50>&nbsp;</td></tr>";print"<tr><td>&nbsp;</td></tr>"; print"<form name='formulir' action='decryption.php'

method='POST'>";print"<input type='hidden' name='level'

value='4'>";print"<tr><td>Your private key : </td><td><input

name='pass' type='password' id='pass' size='50'></td></tr>";

print"<tr><td>&nbsp;</td></tr></td></tr></table></td></tr>";

print"<tr align=right><td><input name='submit' type='submit'

value='decrypt' onClick='return input_private()'>";

print"<input name='reset' type='reset' value='clear'></td>";

print"</form>";//cancel button back to decrypt level=1

print"<form name='formulir2' action='index.php' method='POST'>";

print"<td width=50><input name='submit' type='submit'

value='cancel'></td></tr>";print"</form>";

print"</table></center>";

print"<br><br><br><br><br><br><br><br><br><br>";}

if($level == "4") {//put private key to session $_SESSION[privateKey] = $_POST[pass]; if($_SESSION[privateKey]=="") {print"<center><table class=warna1 $frame><tr><td align=center

colspan=3><img src= 'img/decryption.png'

width=300></td></tr><tr><td colspan=3>";

print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";print"<tr><td align=center><b>please check your private key..</b></td></tr><tr><td>&nbsp;</td></tr>";print"</td></tr></tab

le>";print"</td></tr><form name='formulir' action='decryption.php'

method='POST'>";print"<input type='hidden' name='title'

value='decryption'>"; print"<input type='hidden' name='level' value='3'>";

138

Page 156: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

print"<tr><td align=center><input name='submit' type='submit'

value='back'></td></form>";

print"</tr></table><br><br><br><br><br><br><br><br><br><br><br><br

>"; include "footer.php";exit(0);}

//private key invalid $private_key = mysql_fetch_row(mysql_query("select private_key

from user where username = '$_SESSION[username]'"));

if($private_key[0] != $_SESSION[privateKey]) { print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr> <tr><td colspan=3>";print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";print"<tr><td align=center> <b>your private key is invalid..</b></td></tr><tr><td>&nbsp;</td> </tr>";print"</td></tr></table>";print"</td></tr><form

name='formulir' action='decryption.php' method='POST'>";

print"<input type='hidden' name='title' value='decryption'>";

print"<input type='hidden' name='level' value='3'>";

print"<tr><td align=center><input name='submit' type='submit' value='back'></td></form>";print"</tr></table><br><br><br><br><br> <br><br><br><br><br><br><br>";include "footer.php";exit(0); }

print"<center><table class=warna1 $frame><tr><td

rowspan=3>&nbsp;</td><td align=center colspan=3><img src=

'img/decryption.png' width=300></td></tr><tr><td colspan=3>";

print"<table width=500 class=warna2 $frame><tr><td

rowspan=50>&nbsp;</td></tr>";

//decryption process include "decrypt.php"; include "microtime.php"; session_register("dec"); print"<tr><td colspan=3 align=center><font size='4px' color='#0066ff'>decryption complete..</td></tr>"; print"<tr><td colspan=3 align=center>to download the file click on

the filename. we have to delete the file after you click

<b>finish</b>..</font></td></tr>"; print"<tr><td>&nbsp;</td></tr>"; for($i=1 ; $i<=$_SESSION[jmlfile] ; $i++) {session_register("filed$i"); $_SESSION[dec]=""; $time_a = getmicrotime();decryptFile($_SESSION[file.$i], $i); //update table that the file was decrypted $sql = "update inbox set decrypted='y' where id_file='".$_SESSION[file.$i]."'"; $hasil = mysql_query($sql,$connect); $time_b = getmicrotime();$time = $time_b - $time_a; $filesize = filesize($_SESSION[filed.$i]); $nama = substr($_SESSION[filed.$i],5); if($filesize > 1048576) {$filesize = $filesize/1048576;$satuan = "MBytes";} else if($filesize > 1024) {$filesize = $filesize/1024;$satuan = "KBytes";} else {$satuan = "Bytes";} //print hasil dekripsi $link = "<a href='".$_SESSION[filed.$i]."' target='_blank'>";

print"<tr><td width=100 align=left>file ".$i."</td></tr>";

print"<tr><td align=left>file name </td><td>: </td><td align=left> ".$link.$nama."</a></td></tr>";printf("<tr><td align=left>file size </td><td>: </td><td align=left>%.3f %s</td></tr>",$filesize, $satuan);print"<tr><td align=left>status </td><td>: </td><td align=left>".$_SESSION[dec]."</td></tr>"; printf("<tr><td align=left>process time </td><td>: </td><td align=left>%.5f seconds</td></tr>",$time);print"<tr><td>&nbsp;</td></tr>";}

139

Page 157: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

print"<tr><td>&nbsp;</td></tr></td></tr></table></td></tr>";

//finish button back to decryption print"<form name='formulir2' action='index.php' method='POST'>"; print"<input type='hidden' name='hapus1' value='y'>"; print"<td colspan=3 align=right><input name='submit' type='submit' value='finish'></td></tr>";print"</form>";print"</table></center>" ;print"<br>";}} include "footer.php";?>

encrypt.php

<?php

function encryptFile($kiriman)

{ include"koneksi.php"; $file = 'temp/'.$kiriman; //buat filename baru $nama = strtr($kiriman,".","_"); $out = $nama.".znc"; $output = 'data/'.$out; $_SESSION[filed] = $output; $initial_contents = file_get_contents($file); if($initial_contents) {//RIJNDAEL ENCRYPTION.. //This function opens the module of the algorithm and the mode to be used $td = mcrypt_module_open('rijndael-128', '', 'cbc', ''); //Create an initialization vector (IV) from a random source $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); $ks = mcrypt_enc_get_key_size($td); $key = $_SESSION[AESpass]; //This function initializes all buffers needed for encryption mcrypt_generic_init($td, $key, $iv); //This function encrypts data $encrypted_data = mcrypt_generic($td, $initial_contents); $encrypted_file = @fopen($output,'w'); $ok_encrypt = @fwrite($encrypted_file,$encrypted_data); if($ok_encrypt) {$_SESSION[enc] = "encrypted successfully";} else {$_SESSION[enc] = "encryption failed";} @fclose($encrypted_file); //This function deinitializes an encryption module mcrypt_generic_deinit($td); //Close the mcrypt module

mcrypt_module_close($td);

//RSA ENCRYPTION //ambil public key receiver $hasil = mysql_query("select public_key from user where id_user = '$_SESSION[receiver]'"); $public_key = mysql_fetch_row($hasil); $bagi = explode(",",$public_key[0]); $e = $bagi[0];$n = $bagi[1];require_once("rsa.class"); $rsa = New SecurityRSA;$encoded = $rsa->RSA_encrypt($key, $e, $n); $receiver = $_SESSION[receiver]; $sender_id = mysql_fetch_row(mysql_query("select id_user from user where username = '$_SESSION[username]'")); $sender = $sender_id[0];

140

Page 158: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

//get filesize (plain n cipher)

$plain_size = filesize($file); $cipher_size = filesize($output); $date = date("d F Y H:i:s"); //INSERT TO DATABASE //insert to file $id_max = mysql_fetch_row(mysql_query("select max(id_file) from file")); $id_file = $id_max[0] + 1; $sql = "insert into file (id_file, plain_name, plain_size, cipher_name, cipher_size, aes_key, iv, date) values ('$id_file', '$kiriman', '$plain_size', '$out', '$cipher_size', '$encoded', '$iv', '$date')"; $hasil = mysql_query($sql,$connect); //insert to inbox $id_max = mysql_fetch_row(mysql_query("select max(id_inbox) from

inbox")); $id_inbox = $id_max[0] + 1; $sql = "insert into inbox (id_inbox, id_file, id_user) values ('$id_inbox', '$id_file', '$receiver')"; $hasil2 = mysql_query($sql,$connect); //insert to outbox $id_max = mysql_fetch_row(mysql_query("select max(id_outbox) from outbox")); $id_outbox = $id_max[0] + 1; $sql = "insert into outbox (id_outbox, id_file, id_user) values ('$id_outbox', '$id_file', '$sender')"; $hasil3 = mysql_query($sql,$connect); mysql_close($connect); if($hasil) {$_SESSION[saved] = "saved";} else {$_SESSION[saved] = "unsaved";} } //close initial contents }?>

encryption.php

<?php session_start(); include "otentik.php"; if(!otentikasi($_SESSION[username], $_SESSION[password])) {$alamat = "logout.php"; header("Location: $alamat"); exit(0);} if (!login_check()) {header("Location: logout.php");exit(0);} $title = "acrypt cs | encryption ";include "header.php"; $page = "secure";?> <script language="JavaScript"> function input_file() { var a = document.getElementById('userfile[]').value; if (a=="") {alert('please check your file input..'); return false;} else return true; } function cek_pass() { var a = document.getElementById('pass').value; if (a==""){alert('please check your password..'); return false;} else return true;} function cek_receiver() { var a = document.getElementById('receiver').value; if (a==""){alert('please select one receiver..');return false;} else return true;} </script>

<?php

include "header2.php"; //kode 1 how many file to enkrip? //kode 2 input file

141

Page 159: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

//kode 3 tampilan sementara file yg akan dienkripsi

//kode 4 input password AES //kode 5 pilih receiver //kode 6 encrypt $kode = $_POST['kode']; if(!isset($kode)) $kode = "1"; if($kode=="1") {//siapkan variabel2 yg diperlukan utk menyimpan data di session.. // jml file file1 - file10// AESpass receiver session_register("jmlfile"); session_register("AESpass"); session_register("receiver"); session_register("file1");

session_register("file2"); session_register("file3");

session_register("file4"); session_register("file5");

session_register("file6"); session_register("file7");

session_register("file8"); session_register("file9");

session_register("file10"); session_register("status1"); session_register("status2"); session_register("status3"); session_register("status4"); session_register("status5"); session_register("status6"); session_register("status7"); session_register("status8"); session_register("status9"); session_register("status10"); $_SESSION[jmlfile] = ""; $_SESSION[AESpass] = ""; $_SESSION[receiver] = ""; $_SESSION[file1] = ""; $_SESSION[file2] = ""; $_SESSION[file3] = ""; $_SESSION[file4] = ""; $_SESSION[file5] = ""; $_SESSION[file6] = ""; $_SESSION[file7] = ""; $_SESSION[file8] = ""; $_SESSION[file9] = ""; $_SESSION[file10] = ""; $_SESSION[status1] = ""; $_SESSION[status2] = ""; $_SESSION[status3] = ""; $_SESSION[status4] = ""; $_SESSION[status5] = ""; $_SESSION[status6] = ""; $_SESSION[status7] = ""; $_SESSION[status8] = ""; $_SESSION[status9] = ""; $_SESSION[status10] = ""; //input jumlah file?> <center><table class=warna1 <?php print $frame; ?> > <tr><td align=center><img src= 'img/encryption.png' width=300></td></tr><tr><td> <table width=400 class=warna2 <?php print $frame; ?> > <tr><td>&nbsp;</td></tr><tr class=$w><!-- content --> <form name='formulir' action='encryption.php' method='POST'> <input type='hidden' name='kode' value='2'> <input type='hidden' name='title' value='encryption'> <td align=right width=200>number of file : <select name='jml'><?php for($i=1;$i<=10;$i++) print"<option value=$i>$i</option>";?> </select></td><td align=center width=50> <?php if(preg_match("/MSIE/i","$agent")) print"<br>"; ?> <input name='submit' type='submit' value='next''></form></td> <form name='formulir2' action='index.php' method='POST'> <td align=left><input name='submit' type='submit' value='cancel' onClick='return cek_form()'></td></form></tr><tr><td>&nbsp;</td> </tr></table></td></tr></table><br><br><br><br><br><br><br><br><br ><br><br><br><?php}//close kode=1 if($kode=="2") {//delete file back button from kode=2 $hapus = $_POST[hapus]; if($hapus=='y') { for($i=1 ; $i <= $_SESSION[jmlfile] ; $i++)

{ if($_SESSION[file.$i] != "")

142

Page 160: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

unlink("temp/".$_SESSION[file.$i]);}}

//masukkan jml file ke session if($_SESSION[jmlfile]=="") $_SESSION[jmlfile] = $_POST['jml']; //input file print"<center><table class=warna1 $frame><tr><td colspan=3 align=center><img src= 'img/encryption.png' width=300></td></tr>";

print"<tr><td colspan=3>";print"<table class=warna2 $frame>";

print"<tr><td rowspan=20>&nbsp;</td><td></td><td></td><td>

</td></tr>";print"<form name='formulir1' action='encryption.php' method='POST' enctype='multipart/form-data'>"; print"<input type='hidden' name='max_file_size'

value='8589934592'>"; //1 GB = 1024 MB * 1024 KB * 1024 B * 8 b

print"<input type='hidden' name='kode' value='3'>"; print"<input type='hidden' name='title' value='encryption'>"; for($i=0 ; $i<$_SESSION[jmlfile] ; $i++) { $j = $i+1;

print"<tr><td>File $j </td><td> : </td><td colspan=2><input name='userfile[]' id='userfile[]' type='file' size=80/></td></tr>"; } print"<tr><td>&nbsp;</td></tr>";print"<tr><td></td></tr></table>"; print"<tr><td></td></tr>";print"<tr><td align=right><input name='submit' type='submit' value='next' onClick='return input_file()'>";print"<input name='reset' type='reset' value='clear'></td>";print"</form>";print"<form name='formulir2'

action='encryption.php'>";print"<td width=50 align=right><input

name='submit' type='submit' value='back'></td></form>";print"<form

name='formulir2' action='index.php' method='POST'>";print"<td

width=50 align=left><input name='submit' type='submit'

value='cancel'></td></tr></form>";print"<tr><td></td></tr>";

print"</td></tr></table>";$jumlah = $_SESSION[jmlfile]; if ($jumlah == 1) $jbr = 9; else if($jumlah == 2)$jbr = 8; else if($jumlah == 3) $jbr = 7; else if($jumlah == 4) $jbr = 5; else if($jumlah == 5) $jbr = 3; else if($jumlah == 6) $jbr = 2; else if($jumlah >= 7) $jbr = 0; for ($br=0 ; $br<=$jbr ; $br++)print"<br>";}

if($kode=="3") {//mencegah semua file kosong dan menghitung berapa file yg terisi.. $jum_isi = 0; $jum_kosong = 0; for($i=0 ; $i<$_SESSION[jmlfile] ; $i++) { if(empty($_FILES['userfile']['name'][$i])) $jum_kosong += 1; else $jum_isi += 1;} if($jum_kosong == $_SESSION[jmlfile]) {print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr> <td colspan=3>";print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>"; print"<tr><td align=center><b>please check your file input..</b></td></tr> <tr><td>&nbsp;</td></tr>";print"</td></tr></table>"; print"</td></tr><form name='formulir' action='encryption.php'

method='POST'>"; print"<input type='hidden' name='title'

value='encryption'>";print"<input type='hidden' name='kode'

value='2'>";print"<tr><td width=50 align=center><input

name='submit' type='submit' value='back'></td></form>";print" </tr></table><br><br><br><br><br><br><br><br><br><br><br><br>"; include "footer.php";exit(0);}else $_SESSION[jmlfile] = $jum_isi;

143

Page 161: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

print"<center><table class=warna1 $frame><tr><td rowspan=3>

&nbsp;</td><td align=center colspan=3><img src= 'img/encryption.png' width=300></td></tr><tr><td colspan=3>"; print"<table width=600 class=warna2 $frame><tr><td rowspan=50>&nbsp;</td></tr>"; //copy file ke directory sementara (temp/) for($i=0 ; $i<$_SESSION[jmlfile] ; $i++) {if($_FILES['userfile']['size'][$i] > 0) {$save_dir = "temp"; //move file ke dir tujuan if(!@move_uploaded_file($_FILES['userfile']['tmp_name'][$i],"$save _dir/".$_FILES['userfile']['name'][$i])) print"<h4><font color='#0055FF'>upload failed ".$_FILES['userfile']['name'][$i] ." ke $save_dir</font></h4>"; else //upload success {//save in dir temp/ @chmod("$save_dir/".$_FILES['userfile']['name'][$i],0755); //put in session $j = $i + 1; $_SESSION[file.$j] = $_FILES['userfile']['name'][$i]; //show temporary $file = $_SESSION[file.$j]; $link_file = "<a href = 'temp/$file' target='_blank'>"; $filesize = $_FILES['userfile']['size'][$i]; if($filesize > 1048576) {$filesize = $filesize/1048576;$satuan = "MBytes";} else if($filesize > 1024) {$filesize = $filesize/1024; $satuan = "KBytes";} else { $satuan = "Bytes";} //mencegah file sudah terenkripsi sebelumnya.. $cari = mysql_query("select id_file from file where plain_name = '".$_SESSION[file.$j]."'"); $ada = mysql_num_rows($cari); if($ada > 0) $_SESSION[status.$j] = "<font color=#FF0000>already encrypted (this file will ignored)</font>"; else $_SESSION[status.$j] = "ok"; print"<tr class=$w><td align=left><b>file ".$j."</b></td></tr>"; print"<tr><td align=left>file name </td><td>: </td><td align=left>".$link_file.$_SESSION[file.$j]."</a></td></tr>";

print"<tr><td align=left>file type </td><td>: </td><td

align=left>".$_FILES['userfile']['type'][$i]."</td></tr>";

printf("<tr><td align=left>file size </td><td>: </td><td

align=left>%.3f %s</td></tr>",$filesize, $satuan);

print"<tr><td align=left>status </td><td>: </td><td

align=left>".$_SESSION[status.$j]."</td></tr>";

print"<tr><td>&nbsp;</td></tr>"; } //close if(!@move.. } //close $_FILES } //close for

print"</td></tr></table></td></tr>";

print"<form name='formulir2' action='encryption.php'

method='POST'>";print"<input type='hidden' name='kode' id='kode'

value='4'>";print"<input type='hidden' name='title'

value='encryption'>";print"<tr align=right><td><input

name='submit' type='submit' value='next'></td>";print"</form>";

//back n cancel button delete file temporary in temp/

144

Page 162: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

print"<form name='formulir2' action='encryption.php'

method='POST'>";print"<input type='hidden' name='hapus' id='hapus'

value='y'>";print"<input type='hidden' name='kode' id='kode'

value='2'>";print"<td width=50><input name='submit' type='submit'

value='back' ></td></form>";print"<form name='formulir2'

action='index.php' method='POST'>";print"<input type='hidden'

name='hapus' id='hapus' value='y'>";print"<td width=50><input

name='submit' type='submit' value='cancel' ></td></tr></form>";

print"</form>";print"</table>";$jumlah = $_SESSION[jmlfile];

if ($jumlah == 1)$jbr = 7;else if($jumlah >= 2)$jbr = 0;

for ($br=0 ; $br<=$jbr ; $br++)print"<br>";}

if($kode=="4") {//mencegah semua file telah terenkripsi $sudah = 0; for($i=0 ; $i<$_SESSION[jmlfile] ; $i++) {$j = $i + 1; if($_SESSION[status.$j] != "ok") $sudah += 1;} if($sudah == $_SESSION[jmlfile]) {print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png' width=300></td> </tr><tr><td colspan=3>";print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";print"<tr><td align=center><b>sorry, all files is already encrypted..</b></td> </tr><tr><td>&nbsp;</td></tr>"; print"</td></tr></table>"; print"</td></tr><form name='formulir' action='encryption.php' method='POST'>";print"<input type='hidden' name='title'

value='encryption'>";print"<input type='hidden' name='kode'

value='2'>";print"<tr><td width=50 align=center><input

name='submit' type='submit' value='back'></td></form>";print" </tr></table><br><br><br><br><br><br><br><br><br><br><br><br>"; include "footer.php";exit(0);} print"<center><table class=warna1 $frame><tr><td

rowspan=3>&nbsp;</td><td align=center colspan=3><img src=

'img/encryption.png' width=300></td><td>&nbsp;</td></tr><tr><td

colspan=3>";print"<table class=warna2 $frame><tr><td

rowspan=50>&nbsp;</td></tr>"; //input password for AES encryption.. print"<form name='formulir3' action='encryption.php' method='POST'>";print"<input type='hidden' name='kode' value='5'>";print"<input type='hidden' name='title' value='encryption'>";print"<tr><td>&nbsp;</td></tr>"; print"<tr><td>input string for AES encryption password: </td><td><input name='pass' type='password' id='pass' maxlength=25 size=50 /></td><td></td></tr>";print"<tr><td></td><td

align=center>(you can using character a..z - 0..9 -

A..Z)</td></tr>";print"<tr><td>&nbsp;</td></tr>";print"</table></t

d></tr>";print"<form name='formulir2' action='encryption.php'

method='POST'>";print"<tr align=right><td><input name='submit'

type='submit' value='next' onClick='return cek_pass()'></td>";

print"</form>";//cancel button delete file temporary in temp/

print"<form name='formulir2' action='index.php' method='POST'>";

print"<input type='hidden' name='hapus' id='hapus' value='y'>";

print"<td width=50><input name='submit' type='submit' value='cancel' ></td></tr>";print"</form>";print"<tr><td> </td></tr>";print"</table>";print"<br><br><br><br><br><br><br><br> <br>";} if($kode=="5") {//simpan AESpass di session.. if($_SESSION[AESpass]=="")$_SESSION[AESpass] = $_POST['pass']; if($_SESSION[AESpass]=="")

145

Page 163: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

{print"<center><table class=warna1 $frame><tr><td align=center

colspan=3><img src= 'img/decryption.png' width=300></td></tr><tr>

<td colspan=3>";print"<table width=500 class=warna2 $frame><tr> <td>&nbsp;</td></tr>";print"<tr><td align=center><b>please check your password..</b></td></tr><tr><td>&nbsp;</td></tr>"; print"</td></tr></table>";print"</td></tr><form name='formulir'

action='encryption.php' method='POST'>";print"<input type='hidden'

name='title' value='encryption'>";print"<input type='hidden'

name='kode' value='4'>";print"<tr><td width=50 align=center><input

name='submit' type='submit' value='back'></td></form>";print" </tr></table><br><br><br><br><br><br><br><br><br><br><br><br>"; include "footer.php"; exit(0); } print"<center><table class=warna1 $frame><tr><td rowspan=3>&nbsp;</td><td align=center colspan=3><img src= 'img/encryption.png' width=300></td></tr><tr><td colspan=3>"; print"<table width=400 class=warna2 $frame><tr><td

rowspan=100>&nbsp;</td></tr>"; //select receiver (ambil dr database) include "koneksi.php"; $hasil = mysql_query("select id_user, fullname, username from user

order by fullname asc"); print"<form name='formulir4' action='encryption.php' method='POST'>"; print"<input type='hidden' name='kode' value='6'>"; print"<input type='hidden' name='title' value='encryption'>";

print"<tr><td colspan=2 align=left>select receiver you want to

send the encrypted file : </td></tr>";

print"<tr><td></td></tr>"; while($row = mysql_fetch_row($hasil)) {print"<tr><td width=10><input type='radio' name='receiver' id='receiver' value='$row[0]'></td>"; print"<td align=left>&nbsp; $row[1] -> $row[2]</td></tr>";} print"</td></tr><tr><td></td></tr></table></td></tr>"; print"<form name='formulir2' action='encryption.php' method='POST'>";print"<tr align=right><td><input name='submit' type='submit' value='encrypt' onClick='return

cek_receiver()'></td>";print"</form>"; //cancel button delete file temporary in temp/ print"<form name='formulir2' action='index.php' method='POST'>"; print"<input type='hidden' name='hapus' id='hapus' value='y'>"; print"<td width=50><input name='submit' type='submit'

value='cancel' ></td></tr>";print"</form>";print"</table>";

print"<br>";}

if($kode=="6") {$_SESSION[receiver] = $_POST['receiver']; if($_SESSION[receiver]=="") {print"<center><table class=warna1 $frame><tr><td align=center colspan=3><img src= 'img/decryption.png' width=300></td></tr> <tr><td colspan=3>";print"<table width=500 class=warna2 $frame><tr><td>&nbsp;</td></tr>";print"<tr><td align=center> <b>please select one user..</b></td></tr><tr><td>&nbsp;</td> </tr>";print"</td></tr></table>";print"</td></tr><form name='formulir' action='encryption.php' method='POST'>"; print"<input type='hidden' name='title' value='encryption'>"; print"<input type='hidden' name='kode' value='5'>";

print"<tr><td width=50 align=center><input name='submit'

type='submit' value='back'></td></form>";print"</tr></table> <br><br><br><br><br><br><br><br><br><br><br><br>"; include "footer.php"; exit(0);}

146

Page 164: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

print"<center><table class=warna1 $frame><tr><td

rowspan=25>&nbsp;</td><td align=center colspan=3><img src=

'img/encryption.png' width=300></td></tr><tr><td colspan=3>";

print"<table width=600 class=warna2 $frame><tr><td

rowspan=100>&nbsp;</td></tr>"; //encryption process include "encrypt.php";include "microtime.php"; session_register("enc");session_register("saved"); $receiver = mysql_fetch_row(mysql_query("select username, fullname from user where id_user = '$_SESSION[receiver]'")); if($receiver[0]==$_SESSION[username]) $receiver = "you"; else $receiver = $receiver[1]; print"<tr><td colspan=3><font size='4px' color='#0066ff'>encryption complete and these file already sent to </font><font size='4px' color='#0000ff'>".$receiver."</font></td></tr>";

print"<tr><td colspan=3>&nbsp;</td></tr>";

for($i=1 ; $i <= $_SESSION[jmlfile] ; $i++)

{if($_SESSION[status.$i] == "ok") //statusnya belum

terenkripsi {session_register("filed"); $_SESSION[enc] = ""; if($_SESSION[file.$i] != null) {$time_a = getmicrotime(); encryptFile($_SESSION[file.$i]); unlink("temp/".$_SESSION[file.$i]); $time_b = getmicrotime(); $time = $time_b - $time_a; $nama = substr($_SESSION[filed],5); $filesize = filesize($_SESSION[filed]); if($filesize > 1048576) {$filesize = $filesize/1048576;$satuan = "MBytes";} else if($filesize > 1024) {$filesize = $filesize/1024; $satuan = "KBytes";} else { $satuan = "Bytes";}} //print hasil enkripsi print"<tr><td width=100 align=left>file ".$i."</td></tr>"; print"<tr><td align=left>file name </td><td>: </td><td align=left> <b>".$nama."</b></td></tr>";printf("<tr><td align=left>file size </td><td>: </td><td align=left>%.3f %s</td></tr>",$filesize, $satuan);print"<tr><td align=left>status </td><td>: </td><td align=left>".$_SESSION[enc]."</td></tr>";print"<tr><td align=left>data </td><td>: </td><td align=left>".$_SESSION[saved] ."</td></tr>";printf("<tr><td align=left>process time </td><td>: </td><td align=left>%.5f seconds</td></tr>",$time);print"<tr> <td>&nbsp;</td></tr>";} else unlink("temp/".$_SESSION[file.$i]);} print"<tr><td></td></tr></table></td></tr>"; //finish button back to home print"<form name='formulir2' action='index.php' method='POST'>"; print"<td align=right><input name='submit' type='submit' value='finish' ></td></tr>";print"</form>";print"</table>"; $jumlah = $_SESSION[jmlfile]; if ($jumlah == 1)$jbr = 3;else if($jumlah >= 2) $jbr = 0; for ($br=0 ; $br<=$jbr ; $br++)print"<br>";} include "footer.php";?>

147

Page 165: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

index.php

<?php

session_start(); include "otentik.php"; if (!isset($_SESSION[username]) && !isset($_SESSION[password])) {$_SESSION[username] = $_POST[username]; $_SESSION[password] = md5($_POST[password]);login_validate();} if(empty($_SESSION[username]) || empty($_SESSION[password])) {$alamat = "logout.php";header("Location: $alamat");exit(); } if(!otentikasi($_SESSION[username], $_SESSION[password])) {$msg = "your username and password is incorrect..!"; $alamat = "logout.php?msg=$msg";header("Location: $alamat");exit();} if (!login_check()) {header("Location: logout.php"); exit(0);} $title = "acrypt cs | home ";include "header.php"; include "header2.php"; //delete file temp after encryption.. $hapus = $_POST[hapus]; if($hapus=='y') {for($i=1 ; $i <= $_SESSION[jmlfile] ; $i++) {if($_SESSION[file.$i] != "")unlink("temp/".$_SESSION[file.$i]);}} //delete file temp after decryption.. $hapus1 = $_POST[hapus1]; if($hapus1=='y') {for($i=1 ; $i<=$_SESSION[jmlfile] ; $i++) {unlink($_SESSION[filed.$i]); unset($_SESSION[file.$i]); unset($_SESSION[filed.$i]);}}?> <?php //notification new file in the user inbox

include "koneksi.php"; // take from database.... $id_user = mysql_fetch_row(mysql_query("select id_user from user where username = '$_SESSION[username]'")); //ambil data dari tabel inbox $inbox = mysql_num_rows(mysql_query("select id_inbox from inbox where id_user = '$id_user[0]' and new = 'y'")); if($inbox > 0) print"<font color=#ff0000>you have <b>".$inbox."</b> new file in your <a href='inbox.php'>inbox</a></font>";?>

<ul> <li><a id="link1" href="encryption.php"><em></em>

<span><object><p class="bold">encryption</p></object> <p>encrypt your file and secure the password.<p><p>click for encryption..</span></a></li> <li> <a id="link2" href="decryption.php"><em></em><span><object><p class="bold">decryption</p></object><p>decrypt one or more files<br>from your inbox.<br /><p><p>click for decryption.. </span></a></li> <li><a id="link3" href="inbox.php"><em></em><span><object><p

class="bold">inbox</p></object><p>check message or file sent<br>to

you. it can be decrypt or delete.<br/><p><p>click to open your

inbox..</span></a></li> <li><a id="link4" href="change_pass.php"><em></em> <span><object><p class="bold">change password</p></object> <p>change your login <br>password.<br /> <p><p>click to change..</span></a></li> <li><a id="link5" href="mykey.php"><em></em><span><object><p

class="bold">my key</p></object><p>if you forget your

private<br>key or you want to generate new key pair..<br />

148

Page 166: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

<p><p>click it..</span></a></li>

<li><a id="link6" href="outbox.php"><em></em><span><object><p class="bold">outbox</p></object><p>check message or file you <br> have sent from your outbox <br> and you can to delete it.<br /> <p><p>click to open your outbox..</span></a></li> <li><a id="link7" href="help.php"><em></em><span><object><p

class="bold">help</p></object><p>get some help about this

application.<br /><p><p>click for help..</span></a></li>

<li><a id="link8" href="about.php"><em></em><span><object><p class="bold">about</p></object><p>get some information about the author.<br /><p><p>click to view..</span></a></li> <li><a id="link9" href="logout.php"><em></em><span><object><p class="bold">Logout</p></object><p>end your session<p><p>click to logout.</span></a></li></ul><br><br><br><br><br><br><br><br><br><b

r><br><br><br><? include "footer.php"; ?>

koneksi.php

<?$connect = mysql_connect("localhost","root","")or die("Koneksi

Gagal");mysql_select_db("acryptcs", $connect) or die("Database tak

bisa dibuka");?>

login.php

<?php $title = "acrypt cs | login ";include "header.php";?>

<script language="JavaScript"> function cek_form() { var a = document.getElementById('username').value; var b = document.getElementById('password').value; if (a==""||b=="") { alert('bad username and password..'); return false; } else return true;} </script> <?php include "header2.php";?> <center><table width="300" class=warna1 <?php print $frame; ?> > <tr><td></td><td colspan=2 align=center><img src = 'img/login.png'></td><td rowspan=5><img src = 'img/hacker.gif' width=200></td></tr> <tr><td><img src="img/security.png"></td><td> <form name="formulir" action="index.php" method=POST> <table width="250" class=warna2 <?php print $frame; ?> > <tr><td></td></tr><tr><td></td><td>username</td><td> : </td> <td><input name="username" type="text" id="username" size=23 /></td></tr><tr><td></td><td>password</td><td> : </td> <td><input name="password" type="password" id="password" size=23 /></td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> <tr><td></td><td></td><td></td><td align='left'><input name="submit" type="submit" value="enter" onClick="return

cek_form()" /></td><td></td></tr><tr><td></td></tr></table></form> </td><td></td></tr><tr><td></td><td align=right><a href='sign_up.php'>sign up</a></td></tr><tr><td></td></tr>

149

Page 167: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

</table><br><?php $msg = $_GET[msg];print"<font

color='#FF0000'>".$msg."</font>";?></center><br><br><br><br><br><b

r><br><?php include "footer.php";?>

logout.php

<?php $msg = $_GET[msg];session_start();unset($_SESSION[username]); unset($_SESSION[password]);session_destroy(); if($msg == "") $alamat = "login.php"; else $alamat = "login.php?msg=$msg"; header("Location: $alamat");?>

otentik.php

<?php

include"koneksi.php";

function otentikasi($username, $password) {if($username=="" || $password=="") return false; else{ $hasil = mysql_query("select password from user where username = '$username'"); $row = mysql_fetch_row($hasil); if($row[0]==$password) return true; else return false;}} function login_validate() {$timeout = 180; //3 menit tak ada aktifitas, logout!hitungan dalam detik $_SESSION["expires_by"] = time() + $timeout;} function login_check() {$exp_time = $_SESSION["expires_by"]; if (time() < $exp_time) {login_validate();return true;} else { unset($_SESSION["expires_by"]);return false;}}?>

rsa.class

class SecurityRSA {

var $primes; var $maxprimes; function SecurityRSA($show_debug=0) {

/*random generator seed */ mt_srand((double)microtime()*1000000);

/* Prime numbers table (570 prime numbers) * 4507,4513 is the smallest and 9521,9533 is the largest pair*/

$this->primes = array (4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937,

150

Page 168: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

4943, 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009,

5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791, 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, 5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, 6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, 6607, 6619, 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621, 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161, 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, 8317, 8329, 8353, 8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461, 8467, 8501, 8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, 8837, 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011, 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, 9187, 9199, 9203, 9209, 9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, 9343, 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511, 9521, 9533);

$this->maxprimes = count($this->primes) - 1;

if ($show_debug == 1) print "<p>instiantator: <br>Primes: " . $this->primes .

"<br>Maxprimes: " . $this->maxprimes . "</p>"; } /*Function for generating keys. Return array where $array[0] -> modulo N $array[1] -> public key E $array[2] -> private key D Public key pair is N and E

151

Page 169: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

Private key pair is N and D

*/ function generate_keys($show_debug=0){

//class-ify: global $primes, $maxprimes; if ($show_debug) print "<p>generate_keys()<br>Primes:

$this->primes<br>Maxprimes: $this->maxprimes</p>";

while (empty($e) || empty($d)) {

/* finding 2 small prime numbers $p and $q $p and $q must be different*/ $p = $this->primes[mt_rand(0, $this->maxprimes)]; while (empty($q) || ($p==$q)) {

$q = $this->primes[mt_rand(0, $this->maxprimes)]; } //second part of public and private pairs - N $n = $p*$q;

//$pi (we need it to calculate D and E)

$pi = ($p - 1) * ($q - 1);

// Public key E $e = $this->tofindE($pi, $p, $q);

// Private key D

$d = $this->extend($e,$pi);

$keys = array ($n, $e, $d);

if ($show_debug) { echo "P = $p<br>Q = $q<br><b>N = $n</b> - modulo<br>PI

= $pi<br><b>E = $e</b> - public key<br><b>D = $d</b> - private

key<p>";

} } return $keys;

}

/* modulus function */ function mo($g, $l) {

return $g - ($l * floor ($g/$l)); }

// Standard method of calculating D (D = E-1 (mod N))

// It's presumed D will be found in less then 16 iterations

function extend($Ee,$Epi) {

$u1 = 1; $u2 = 0; $u3 = $Epi; $v1 = 0; $v2 = 1; $v3 = $Ee; while ($v3 != 0) { $qq = floor($u3/$v3); $t1 = $u1 - $qq * $v1; $t2 = $u2 - $qq * $v2; $t3 = $u3 - $qq * $v3; $u1 = $v1; $u2 = $v2; $u3 = $v3; $v1 = $t1; $v2 = $t2; $v3 = $t3; $z = 1;}

$uu = $u1; $vv = $u2; if ($vv < 0) { $inverse = $vv + $Epi;

} else { $inverse = $vv; } return $inverse;

152

Page 170: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

}

/* This function return Greatest Common Divisor for $e and $pi

numbers */

function GCD($e,$pi) {

$y = $e; $x = $pi; while ($y != 0) { $w = $this->mo($x , $y); $x = $y; $y = $w;} return $x;}

/*function for calculating E under conditions:

GCD(N,E) = 1 and 1<E<N

If each test E is prime, there will be much less loops in that

fuction

and smaller E means less JS calculations on client side */ /* * Calculating E under conditions: * GCD(N,E) = 1 and 1<E<N * If E is prime, there will be fewer loops in the function. * Smaller E also means reduced JS calculations on client side. */ function tofindE($pi) {

//class-ify: global $primes, $maxprimes; $great = 0; $cc = mt_rand (0,$this->maxprimes); $startcc = $cc; while ($cc >= 0) { $se = $this->primes[$cc]; $great = $this->GCD($se,$pi); $cc--; if ($great == 1) break;

} if ($great == 0) { $cc = $startcc + 1; while ($cc <= $this->maxprimes) {

$se = $this->primes[$cc]; $great = $this->GCD($se,$pi); $cc++; if ($great == 1) break;

} } return $se;

}

/* ENCRYPT function returns *, X = M^E (mod N) * * Each letter in the message is represented as its ASCII code

number - 30 * 3 letters in each block with 1 in the beginning and end.*/

function rsa_encrypt($m, $e, $n) {

$asci = array (); for ($i=0; $i<strlen($m); $i+=3) { $tmpasci="1"; for ($h=0; $h<3; $h++) {

if ($i+$h <strlen($m)) { $tmpstr = ord (substr ($m, $i+$h, 1)) - 30;

153

Page 171: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

if (strlen($tmpstr) < 2) {

$tmpstr ="0".$tmpstr; }

} else break; $tmpasci .=$tmpstr;

} array_push($asci, $tmpasci."1");

} //Each number is then encrypted using the RSA formula: block

^E mod N for ($k=0; $k< count ($asci); $k++) { $resultmod = $this->powmod($asci[$k], $e, $n); $coded .= $resultmod." ";

} return trim($coded);

}

/*Russian Peasant method for exponentiation */ function powmod($base, $exp, $modulus) {

$accum = 1; $i = 0; $basepow2 = $base; while (($exp >> $i)>0) { if ((($exp >> $i) & 1) == 1) {

$accum = $this->mo(($accum * $basepow2) , $modulus); } $basepow2 = $this->mo(($basepow2 * $basepow2) , $modulus); $i++;

} return $accum;

}

/*ENCRYPT function returns M = X^D (mod N)*/ function rsa_decrypt($c, $d, $n) {

//Strip the blank spaces from the ecrypted text and store it in an array

$decryptarray = split(" ", $c); for ($u=0; $u<count ($decryptarray); $u++) { if ($decryptarray[$u] == "") {

array_splice($decryptarray, $u, 1); }} //Each number is then decrypted using the RSA formula: block

^D mod N for ($u=0; $u< count($decryptarray); $u++) { $resultmod = $this->powmod($decryptarray[$u], $d, $n); //remove leading and trailing '1' digits $deencrypt.= substr ($resultmod,1,strlen($resultmod)-2);

} //Each ASCII code number + 30 in the message is represented

as its letter for ($u=0; $u<strlen($deencrypt); $u+=2) { $resultd .= chr(substr ($deencrypt, $u, 2) + 30);

} return $resultd; }

} //end class

?>

154

Page 172: PEMBUATAN APLIKASI ENKRIPSI MENGGUNAKAN … · pengamanan data menggunakan kriptografi. ... Definisi dan Terminologi ... Advance Encryption Standard

155

BUKTI PENYERAHAN SKRIPSI

(Sebagai Syarat Pendaftaran Wisuda)

NAMA : Zaenal Muttaqin

NIM : 2040 9100 2553

PROGRAM STUDI : Teknik Informatika

JUDUL : Pembuatan Aplikasi Enkripsi Menggunakan Metode

Advance Encryption Standard dan Rivest Shamir Adleman

Studi Kasus CV Maharta Mandiri Promo

TANGGAL : Senin, 11 Januari 2010

Jabatan Nama Tanggal Tanda Tangan

Pembimbing I Herlino Nanang, MT

Pembimbing II Zulfiandri, MMSI

Penguji I Viva Arifin, MMSI

Penguji II Victor Amrizal, M.Kom

Ketua Prodi Yusuf Durrachman, MIT

Perpustakaan Pusat UIN

Perpustakaan Fakultas

Jakarta,

a.n. Dekan,

Kasubag Akademik Fakultas

Sains dan Teknologi,

Ket :

* Dibuat Rangkap 2 (dua) untuk :

1. Akademik FST

2. Mahasiswa (Syarat Pengambilan Ijazah)

Dra. Sukmayeti

NIP. 19620114 198803 2 001