PERANCANGAN DAN IMPLEMENTASI ALGORITMA
ENKRIPSI ONE TIME PAD UNTUK SISTEM
KEAMANAN PEMBELIAN DAN
PENJUALAN PRODUK PADA
PT. NUGA AGARA
INTERNASIONAL
SKRIPSI
ALEX CHANDRA HUTAURUK
081421019
PROGRAM STUDI EKSTENSI ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
ENKRIPSI ONE TIME PAD UNTUK SISTEM KEAMANAN PEMBELIAN DAN
PENJUALAN PRODUK PADA PT. NUGA AGARA
INTERNASIONAL
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
ALEX CHANDRA HUTAURUK 081421019
PROGRAM STUDI EKSTENSI ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
Judul PERANCANGAN DAN IMPLEMENTASI ALGORITMA ENKRIPSI ONE TIME PAD UNTUK SISTEM KEAMANAN PEMBELIAN DAN PENJUALAN PRODUK PADA PT. NUGA AGARA INTERNASIONAL
Kategori SKRIPSI
Nama ALEX CHANDRA HUTAURUK
Nomor Induk Mahasiswa 081421019
Program Studi SARJANA (S1) ILMU KOMPUTER
Departemen ILMU KOMPUTER
Fakultas MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Juli 2010
Komisi Pembimbing
Pembimbing 2 Pembimbing 1
Maya Silvi Lydia, B.Sc., M.Sc Syahril Efendi, S.Si, M.IT
NIP. 132 229 349 NIP. 132 148 612
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
PERANCANGAN DAN IMPLEMENTASI ALGORITMA ENKRIPSI ONE TIME PAD UNTUK SISTEM
KEAMANAN PEMBELIAN DAN PENJUALAN PRODUK PADA
PT. NUGA AGARA INTERNASIONAL
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2010
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa dengan limpah dan karunia-Nya, kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Ucapan terima kasih saya sampaikan kepada bapak Syahril Efendi, S.Si, M.IT sebagai Dosen Pembimbing I dan ibu Maya Silvi Lydia, B.Sc., M.Sc sebagai Dosen Pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas, padat dan profesional telah diberikan kepada saya sehingga saya dapat menyelesaikan tugas ini. Selanjutnya kepada Dosen Penguji Bapak Prof. Dr. Muhammad Zarlis dan Bapak Drs. Agus Salim Harahap, M.Si atas saran dan kritikan yang sangat berguna bagi saya. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syariol Sitorus, S.Si,MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer FMIPA USU.
Skripsi ini terutama saya persembahkan untuk kedua orang tua dan keluarga saya yang telah memberikan dukungan dan motivasi, ayahanda Jimmer Hutauruk dan ibunda Marlin Panjaitan yang selalu sabar dalam mendidik saya. Untuk kedua adik saya, Nova Andriani Hutauruk dan Sry Yanthi Hutauruk. Untuk Neli Kristina Sipayung yang selalu memberikan motivasi dan dorongan dalam menyelesaikan skripsi ini. Kepada Bapak Elo Hansen Panjaitan dan Bapak Choko Parulian Situmeang yang telah membantu saya dalam menyelesaikan penelitian dalam menganalisis selama menyelesaikan skripsi ini. Kepada teman-teman terbaik yang selalu memberikan dukungan, Andika, Truman, Mangatur, Jernita, Novita dan lain-lain yang tidak dapat saya sebutkan namanya satu per satu. Untuk teman-teman sekelas dan satu angkatan yang sedang berjuang tanpa patah semangat dan tiada putus harapan. Terima kasih kepada semua pihak-pihak yang tidak dapat saya sebutkan satu persatu, terima kasih atas ide, saran, dan kerja sama yang baik.
ABSTRAK
DESIGN AND IMPLEMENTATION OF ONE TIME PAD ENCRYPTION ALGORITHM SECURITY SYSTEM FOR THE BUYING AND
SELLING PRODUCTS IN PT. NUGA AGARA INTERNATIONAL
ABSTRACT
DAFTAR ISI
1.8 Sistematika Penulisan 5
Bab 2 Landasan Teori
2.1 Data dan Informasi 7
2.1.1 Siklus Informasi 7
2.2 Keamanan Data 9
2.3 Kriptografi 10
2.3.1 Jenis-Jenis Kriptografi 11
2.3.1.1 Algoritma Simetri 12
2.3.1.2 Algoritma Asimetri 14
2.3.1.3 Hash Function 16
2.3.2 Kriptanalisis 16
2.3.3 Jenis-Jenis Serangan Terhadap Kriptografi 17
2.4 Prinsip Penyandian Shannon 19
2.5 One Time Pad 20
Bab 3 Analisis dan Pemodelan Perangkat Lunak
3.1 Analisis masalah 24
3.1.1 Pengenalan masalah 25
3.2 Analisis Kerahasiaan 25
3.3 Desain Sistem 26
3.3.1 Analisis Kebutuhan Sistem 26
3.3.2 Diagram Aliran Data 27
3.3.2.1 Data Flow Diagram (DFD) 27
3.4 Rancangan Database 30
3.4.1 Struktur Tabel 30
3.4.2 Struktur Relasi Antar Tabel 35
Bab 4 Perancangan dan Implementasi
4.1 Perancangan Antarmuka 39
4.2 Implementasi 49
4.3 Pengujian 49
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 55
5.2 Saran 55
Daftar Pustaka 57
Lampiran 58
DAFTAR TABEL
Halaman
Tabel 3.1 Supplier 30
Tabel 3.2 Customer 30
Tabel 3.3 Login 31
Tabel 3.4 Satuan 31
Tabel 3.5 Kriteria 31
Tabel 3.6 Setup 32
Tabel 3.7 Barang 32
Tabel 3.8 Pembelian 33
Tabel 3.9 Pembeliandt 33
Tabel 3.10 Penjualan 33
Tabel 3.11 Penjualandt 34
DAFTAR GAMBAR
Halaman
Gambar 2.1 Siklus Informasi 8
Gambar 2.2 Proses Enkripsi/ Dekripsi Sederhana 15
Gambar 3.1 Data Flow Diagram (DFD) Level Top (Contex) 27
Gambar 3.2 Data Flow Diagram (DFD) Level 1 28
Gambar 3.3 Data Flow Diagram (DFD) Level 2 Untuk Enkripsi 29
Gambar 3.4 Data Flow Diagram (DFD) Level 2 Untuk Dekripsi 29
Gambar 3.5 Data Flow Diagram (DFD) Level 2 Untuk Proses Transaksi 29
Gambar 3.6 Struktur Relasi Antar Tabel 35
Gambar 3.7 View Supplier 36
Gambar 3.8 View Customer 36
Gambar 3.9 View Satuan 36
Gambar 3.10 View Kriteria 37
Gambar 3.11 View Barang 37
Gambar 3.12 View Pembelian 38
Gambar 3.13 View Penjualan 38
Gambar 4.1 Perancangan Tampilan Daftar Menu Sistem Informasi 40
Gambar 4.2 Form Supplier 41
Gambar 4.3 Form Customer 42
Gambar 4.4 Form User 42
Gambar 4.5 Form Satuan 43
Gambar 4.6 Form Kriteria 43
Gambar 4.7 Form Setup Parameter 44
Gambar 4.8 Form Enkripsi dan Dekripsi 44
Gambar 4.9 Form Barang 45
Gambar 4.10 Form Pembelian 45
Gambar 4.11 Form Rincian Pembelian 46
Gambar 4.12 Form Penjualan 46
Gambar 4.13 Form Rincian Penjualan 47
Gambar 4.14 Form Laporan Data Master 47
Gambar 4.15 Form Laporan Data Transaksi 48
Gambar 4.16 Form Transfer 48
Gambar 4.17 Form About 48
Gambar 4.18 Flowchart Proses Enkripsi 53
ABSTRAK
DESIGN AND IMPLEMENTATION OF ONE TIME PAD ENCRYPTION ALGORITHM SECURITY SYSTEM FOR THE BUYING AND
SELLING PRODUCTS IN PT. NUGA AGARA INTERNATIONAL
ABSTRACT
BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Suatu instansi atau organisasi sangat membutuhkan keamanan infrastruktur teknologi
informasi yang baik untuk melindungi aset-asetnya terutama informasi-informasi dan
data-data yang penting dan sensitif. Sehingga saat ini dibutuhkan sistem keamanan
yang lebih kompleks dengan kesanggupan untuk mengikuti perkembangan yang ada
agar dapat melindungi sistem dari berbagai ancaman yang mungkin timbul.
PT. Nuga Agara Internasional merupakan Perseroan Terbatas yang bergerak
dibidang Telematika (Jasa Konsultansi Non Konstruksi) yaitu Perangkat Keras
Komputer, Aplikasi/Perangkat Lunak dan sub bidang telematika lainnya. Untuk
bidang Aplikasi/Perangkat Lunak (Teknologi Informasi) PT. Nuga Agara
Internasional memfokuskan diri pada Sistem Informasi Keuangan Pemerintahan
Daerah berorientasi pada pengembangan sumber daya bidang aplikasi komputer yang
bertujuan untuk memudahkan segala pekerjaan bidang keuangan pemerintahan dalam
rangka peningkatan kinerja pemerintahan daerah dalam percepatan hasil laporan,
efisiensi waktu dan hasil kerja yang baik. PT. Nuga Agara Internasional berdiri pada
tanggal 24 Februari 2007 berdasarkan Akta Notaris No. 47 Tahun 2007 yang dibuat
Oleh Notaris dan Pejabat Pembuat Akta Tanah Fatma Devi, SH.
Dari awal pendirian, perusahaan ini mulai merintis Pembangunan Sistem
Informasi Pengelolaan Keuangan Bendahara penerimaan Kota Bukittinggi,
Pembangunan Sistem Informasi Pengelolaan Keuangan PPK SKPD Bukittinggi dan
Pembangunan Sistem Informasi Keuangan SKPD di Kota Binjai. Hasil yang dicapai
dari pembangunan beberapa Sistem Informasi Keuangan ini direspon sangat baik oleh
pengguna jasa, ditambah dengan keinginan mereka untuk melanjutkan penggunaan
kepercayaan dari Pemerintah Kota Bukittinggi untuk melakukan pembangunan Sistem
Informasi Pelayanan Terpadu Satu Pintu Pemerintah Kota Bukittinggi, kemudian di
awal tahun 2009 perusahaan ini mendapat kepercayaan kembali untuk melakukan
pemeliharaan aplikasi Sistem Informasi bendahara penerimaan, Sistem Informasi
Bendahara Pengeluaran dan Sistem Informasi Pejabat Penatausahaan Keungan (PPK)
SKPD di Kota Binjai sesuai peraturan Menteri Dalam Negeri No. 13 Tahun 2006.
Salah satu cara yang digunakan untuk menjamin keamanan dari infrastruktur
teknologi adalah dengan menjamin keamanan komunikasi. Komunikasi yang aman
dimaksudkan untuk melindungi data ataupun informasi ketika dikirimkan atau
ditransmisikan kepada pihak lain, sehingga data atau informasi yang ditransmisikan
itu tidak dapat disadap, dimanipulasi ataupun dirusak oleh pihak-pihak yang tidak
bertanggung jawab. Salah satu cara untuk mengamankan komunikasi adalah dengan
menerapkan teknik penyandian/ kriptografi.
Kriptografi adalah ilmu sekaligus seni untuk menjaga kerahasiaan pesan (data
atau informasi) dengan cara menyamarkannya menjadi bentuk tersandi yang tidak
mempunyai makna. Pesan yang dirahasiakan dalam kriptografi disebut plaintext
(plaintext) dan hasil penyamaran disebut chipertext (ciphertext ). Proses penyamaran
dari plaintext ke chipertext disebut enkripsi (dari kata encryption) dan proses
pembalikan dari chipertext menjadi plaintext kembali disebut dekripsi (decryption).
Baik proses enkripsi maupun proses dekripsi melibatkan satu atau beberapa kunci
kriptografi. Dalam suatu sistem di mana terdapat algoritma kriptografi, ditambah
seluruh kemungkinan plaintext, chipertext dan kunci-kuncinya disebut kriptosistem
(cryptosistem atau cryptographic sistem).
Kriptografi sesungguhnya merupakan studi terhadap teknik matematis yang
terkait dengan aspek keamanan suatu sistem informasi, antara lain seperti kerahasiaan
(confidentiality), integritas data (data integrity), otentikasi (authentication), dan
pembuktian yang tak tersangkal (non-repudiation). Keempat aspek tersebut
merupakan tujuan fundamental dari suatu sistem kriptografi.
Salah satu aspek keamanan yang perlu dijamin dalam suatu dokumen, baik
adalah layanan yang digunakan untuk menjaga informasi dari setiap pihak yang tidak
berwenang untuk mengaksesnya. Dengan demikian informasi hanya akan dapat
diakses oleh pihak-pihak yang berhak saja.
Kebutuhan untuk menjaga aspek keamanan dari dokumen elektronis semakin
penting terutama karena semakin mudahnya distribusi dokumen elektronis. Teknik
kriptografi dapat dimanfaatkan untuk menjamin aspek keamanan dokumen elektronis.
Salah satu teknik kriptografi yang dapat dimanfaatkan adalah enkripsi dan dekripsi
data atau dengan kata lain menyandikan data sehingga hanya orang yang
bersangkutan saja yang dapat mengetahui isi data tersebut.
Algoritma One Time Pad merupakan algoritma sederhana dan unbreakable
yang sampai saat ini dinyatakan aman karena masih belum ada serangan kriptanalisis
yang benar – benar dapat mematahkan algoritma ini. Oleh sebab itu, maka penulis
berusaha memanfaatkan algoritma ini untuk dapa digunakan pada suatu sistem
informasi terutama pada Sistem Informasi Pembelian dan Penjualan Produk Pada PT.
Nuga Agara Internasional.
1.2 Rumusan Masalah
Bagaimana implementasi Algoritma One Time Pad pada sistem keamanan pada
Sistem Informasi Pembelian dan Penjualan Produk Pada PT. Nuga Agara
Internasional berdasarkan: karakteristik kunci, karakteristik penyandian plaintext
terhadap chipertext dan karakteristik pembalikan dari ciphertext menjadi plaintext.
1.3 Batasan Masalah
Supaya pembahasan masalah lebih mendalam dan terperinci, maka pembahasan
masalah dibatasi menjadi:
1. Analisis pada algoritma One Time Pad dilakukan berfokus pada aspek
2. Penggunaan metode Padding sehingga panjang kunci dan panjang pesan yang
akan dienkripsi sama;
3. Cara pengoperasian (Operation Mode) yang digunakan adalah Electronic Code
Book (ECB).
1.4 Tujuan Penelitian
Membangun suatu program aplikasi yang dapat memberikan layanan kerahasiaan/
keamanan data menggunanakan algoritma One Time Pad.
1.5 Manfaat Penelitian
Manfaat penelitian yang hendak dicapai adalah program aplikasi yang dibuat dapat
digunakan sebagai salah satu alternatif metode pengamanan informasi sehingga
informasi yang ada pada Sistem Informasi Pembelian dan Penjualan Produk Pada PT.
Nuga Agara Internasional dapat terjaga kerahasiaannya.
1.6 Metodologi Penelitian
Penelitian dilakukan dengan tahapan metode sebagai berikut :
1. Studi literatur dan pemahaman sistem
Studi literatur dilakukan dengan pengumpulan bahan yang berkenaan dengan
teknik enkripsi maupun dekripsi data dan perancangan program aplikasi One
Time Pad yang realisasinya dalam bentuk sebuah interface form-form aplikasi.
2. Analisis dan perancangan.
Analisis dilakukan dengan pengamatan pada teknik dan proses enkripsi plaintext
menjadi ciphertext maupun pada proses dekripsi ciphertext menjadi plaintext.
Pengkodean dilakukan dengan pembuatan program aplikasi untuk melakukan
proses enkripsi maupun dekripsi. Dalam hal ini analis menggunakan aplikasi
program Microsoft Visual Basic 6.0 dengan database server berupa SQL Server
2000.
4. Implementasi.
Implementasi dilakukan dengan menampilkan program aplikasi enkripsi dan
dekripsi pesan/ data pada perangkat lunak yang dibangun.
5. Pengujian.
Pengujian dilakukan dengan menampilkan progam aplikasi enkripsi dan dekripsi
pesan/ data yang akan dihubungkan dengan database program aplikasi sistem
informasi.
6. Penyusunan Laporan.
Penyusunan laporan dilakukan setelah aplikasi program enkripsi dan dekripsi
pesan/ data terhubung ke database program aplikasi sistem informasi.
1.7 Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai
berikut:
BAB 1 : PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi
“Perancangan dan Implementasi Algoritma Enkripsi One Time Pad Untuk Sistem
Keamanan Pembelian dan Penjualan Produk Pada PT. Nuga Agara Internasional”,
perumusan masalah, pembatasan masalah, tujuan penelitian, manfaat penelitian,
metodologi, dan sistematika penulisan.
Bab ini akan membahas teori-teori yang berkaitan dengan kriptografi, karakteristik
kunci, metode proses enkripsi maupun proses dekripsi, serta informasi tambahan yang
berhubungan dengan aplikasi kriptografi.
.
BAB 3 : ANALISIS DAN PEMODELAN PERANGKAT LUNAK
Berisikan hasil analisis perancangan interface aplikasi program, analisis kerahasiaan
pesan/ data berdasarkan karakteristik penyandian plaintext terhadap chipertext dan
karakteristik pembalikan dari ciphertext menjadi plaintext.
BAB 4 : PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK Berisikan gambaran rancangan struktur program dan disain interface, serta
memberikan gambaran dari rancang bangun yang lengkap kepada user dan pemakai
komputer yang lain, serta implementasinya, yaitu: menguji untuk menemukan
kesalahan.
BAB 5 : KESIMPULAN DAN SARAN
Bab terakhir ini akan memuat kesimpulan isi dari keseluruhan uraian bab-bab
sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat
BAB 2
LANDASAN TEORI
2.1 Data dan Informasi
Data dapat didefenisikan sebagai kenyataan yang digambarkan oleh nilai-nilai
bilangan-bilangan, untaian karakter atau simbol-simbol yang membawa arti tertentu.
Dalam perusahaan, data tersebut identik dengan perubahan nilai atau sering disebut
dengan istilah “Transaksi”. Informasi sendiri dapat didefenisikan sebagai hasil dari
pengolahan data dalam bentuk yang lebih berguna bagi penerimanya, yang digunakan
sebagai alat bantu dalam pengambilan keputusan.
2.1.1 Siklus Informasi
Pengolahan data sehingga menjadi suatu informasi dapat digambarkan sebagai sebuah
siklus yang saling berhubungan dan berkesinambungan seperti terlihat pada Gambar
2.1.
Data diproses sehingga menghasilkan informasi, pada perkembangan
selanjutnya, informasi sebagai hasil dari pengolahan data tersebut akan digunakan
manusia untuk membantu pengambilan keputusan. Dari keputusan tersebut akan
diteruskan dengan suatu tindakan sebagai follow up-nya. Dengan tindakan tersebut,
diperoleh suatu hasil yang nantinya akan dianggap sebagai sebuah data input untuk
tahap pengolahan berikutnya.
Gambar 2.1 Siklus Informasi
Pengolahan data menjadi informasi itu merupakan suatu siklus yang terdiri
dari tahap-tahap sebagai berikut:
1. Pengumpulan data, pada tahap ini dilakukan suatu proses pengumpulan data yang
asli dengan cara tertentu, seperti sampling, data transaksi, data warehouse, dan lain
sebagainya yang bisaanya merupakan proses pencatatan data ke dalam suatu file.
2. Input, tahap ini merupakan proses pemasukan data dan prosedur pengolahan data
ke dalam komputer melalui alat input seperti keyboard. Prosedur pengolahan data
itu merupakan urutan langkah untuk mengolah data yang ditulis dalam suatu
bahasa pemograman yang disebut program.
3. Pengolahan data, tahap ini merupakan tahap dimana data diperoleh sesuai dengan
prosedur yang telah dimasukkan. Kegiatan pengolahan data ini meliputi
pengumpulan data, klasifikasi (pengelompokan), kalkulasi, pengurutan,
penggabungan, peringkasan baik dalam bentuk tabel maupun grafik, penyimpanan
dan pembacaan data dari tempat penyimpanan data.
4. Output, hasil pengolahan data akan ditampilkan pada alat output seperti monitor
dan printer sebagai informasi.
Proses
Informasi
Keputusan
Tindakan
5. Distribusi, setelah proses pengolahan data dilakukan, maka informasi yang
dihasilkan harus segera didistribusikan. Proses pendistribusian ini tidak boleh
terlambat dan harus diberikan kepada yang berkepentingan, sebab hasil
pengolahan tersebut akan menjadi bahan pertimbangan dalam pengambilan
keputusan atau menjadi data dalam pengolahan selanjutnya.
2.2 Keamanan Data
Keamanan merupakan salah satu aspek terpenting dari sebuah sistem informasi.
Masalah keamanan sering kurang mendapat perhatian dari para perancang dan
pengelola sistem informasi. Masalah kemanan sering berada diurutan setelah
tampilan, atau bahkan diurutan terakhir dalam daftar hal-hal yang dianggap penting.
Keamanan adalah keadaan bebas dari bahaya. Istilah ini dapat digunakan
dengan hubungan kepada kejahatan, dan segala bentuk kecelakaan. Keamanan
merupakan topik yang luas termasuk keamananan nasional terhadap serangan teroris,
keamanan komputer terhadap hacker, keamanan rumah terhadap maling dan
penyelusup lainnya, keamanan finansial terhadap kehancuran ekonomi dan banyak
situasi berhubungan lainnya (Kristianto, 2003). Host/ komputer yang terhubung ke
network, mempunyai ancaman keamanan lebih besar dari pada host yang tidak
terhubung kemana-mana. Dengan mengendalikan network security, risiko tersebut
dapat dikurangi.
Kebutuhan keamanan untuk sebuah sistem komputer berbeda – beda
bergantung kepada aplikasi – aplikasi yang dikandungnya, antara lain sistem transfer
keuangan elektronik, akan berbeda kebutuhannya dengan sistem reservasi atau
sistem–sistem kontrol lainnya. Pada saat ini data storage merupakan suatu komponen
utama yang sangat vital, dimana data storage sangat penting nilainya jika didalamnya
disimpan file atau data yang sifatnya sangat penting dan rahasia.
Oleh karena jaringan komputer yang bersifat multiuser, maka dibutuhkan suatu
penyerangan terhadap jaringan komputer itu sendiri, termasuk salah satunya adalah
ancaman dan penyerangan terhadap data yang terdapat pada alat penyimpanan data itu
sendiri.
2.3 Kriptografi
Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret
(rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya kriptografi
adalah ilmu dan seni untuk menjaga keamanan pesan ketika dikirim dari suatu tempat
ke tempat yang lain (Ariyus, 2008).
Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk menjaga
keamanan pesan. Ketika suatu pesan dikirim dari suatu tempat ke tempat lain, isi
pesan tersebut mungkin dapat disadap oleh pihak lain yang tidak berhak untuk
mengetahui isi pesan tersebut. Untuk menjaga pesan, maka pesan tersebut dapat
diubah menjadi suatu kode yang tidak dapat dimengerti oleh pihak lain.
Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu:
1. Enkripsi.
Merupakan hal yang sangat penting dalam kriptografi, merupakan pengamanan
data yang dikirimkan agar terjaga kerahasiaannya. Pesan asli disebut plaintext,
yang diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa diartikan
dengan cipher atau kode. Sama halnya dengan kita tidak mengerti akan sebuah
kata maka kita akan melihatnya di dalam kamus atau daftar istilah. Beda halnya
dengan enkripsi, untuk mengubah teks-asli ke bentuk teks-kode kita menggunakan
algoritma yang dapat mengkodekan data yang kita ingini.
2. Dekripsi.
Merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke
bentuk asalnya (teks-asli), disebut dengan dekripsi pesan. Algoritma yang
digunakan untuk dekripsi tentu berbeda dengan algoritma yang digunakan untuk
3. Kunci.
Yang dimaksud di sini adalah kunci yang dipakai untuk melakukan enkripsi dan
dekripsi. Kunci terbagi menjadi dua bagian, kunci rahasia (private key) dan kunci
umum (public key).
2.3.1. Jenis-Jenis Kriptografi
Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang dipakainya:
1. Algoritma Simetri (menggunakan satu kunci untuk enkripsi dan dekripsinya),
2. Algoritma Asimetri (menggunakan kunci yang berbeda untuk enkripsi dan
dekripsi),
3. Hash Function.
2.3.1.1. Algoritma Simetri.
Ini adalah jenis kriptografi yang paling umum dipergunakan. Kunci untuk membuat
pesan yang disandikan sama dengan kunci untuk membuka pesan yang disandikan itu.
Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis.
Siapapun yang memiliki kunci tersebut, termasuk pihak-pihak yang tidak diinginkan,
dapat membuat dan membongkar rahasia ciphertext. Problem yang paling jelas disini
terkadang bukanlah masalah pengiriman ciphertext-nya, melainkan masalah
bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan.
Contoh algoritma kunci simetris yang terkenal adalah DES (Data Encryption
Standard) dan RC-4.
Dua kategori yang termasuk pada algoritma simetris ini adalah algoritma block
cipher dan stream cipher.
a. Block Cipher
Algoritma block cipher adalah algoritma yang masukan dan keluarannya berupa
satu block, dan setiap blocknya terdiri dari banyak bit. Beberapa mode operasi
1. Data Enkripsi Standard ( DES )
Algoritma enkripsi yang paling banyak digunakan di dunia adalah DES yang
telah diadopsi oleh NIST (Nasional Institude of Standard and Tecnology)
sebagai standart pengolahan informasi Federal AS. Data dienkrip dalam
block-block 64 bit menggunakan kunci 56 bit. Algoritma DES berasal dari algoritma
Lucifer buatan IBM. Algoritma ini ditawarkan kepada NIST dan menjadi DES
tahun 1977. Akan tetapi terdapat dua masalah besar pada algoritma ini.
Pertama, kunci yang hanya 56 bit, sehingga sangat rawan terhadap serangan
brute force. Kedua, desain struktur internal DES dimana bagian subsitusinya
(S-box) masih dirahasiakan.
2. AES ( Advanced Encrytion Standard )
Sekitar tahun1990-an ketika semakin banyak komputer yang dapat menembus
kunci DES yang disebabkan terlalu pendeknya panjang kunci. Dalam
kriptografi modern, panjang kunci dalam ukuran jumlah bit yang digunakan,
merupakan salah satu faktor yang sangat penting. Hal ini dikarenakan
penggunaan komputer yang sangat intensif dalam dunia kriptografi. Untuk itu
NIST mengadakan sebuah kontes untuk mencari sebuah algoritma standart
baru untuk menggantikan DES. Pada bulan oktober 2000, Rijndael dipilih
menjadi pemenang kontes AES. Algoritma Rijndael dipilih bukan karena yang
paling aman, melainkan karena keseimbangan antara keamanan dan
fleksibilitas dalam berbagai platform software dan hardware. Algoritma
menyingkirkan saingan terdekatnya yaitu algoritma RC6 buatan RSA.
3. Blowfish
Blowfish merupakan block cipher 64-bit dengan panjang kunci variabel.
Algoritma ini terdiri dari dua bagian: key expansion dan enkripsi data. Key
expansion merubah kunci yang dapat mencapai 448 bit menjadi beberapa array
subkunci (subkey) dengan total 4168 byte. Enkripsi data terdiri dari iterasi
fungsi sederhana sebanyak 16 kali. Setiap putaran terdiri dari permutasi
kunci-dependent dan substitusi kunci dan data kunci-dependent. Semua operasi adalah
penambahan XOR pada variable 32-bit. Tambahan operasi lainnya hanyalah
empat penelusuran tabel (table lookup) array berindeks untuk setiap putaran.
Blowfish menggunakan subkunci yang besar. Kunci ini harus dihitung
b. Stream Chipher
Stream cipher ( Cipher aliran ) adalah cipher yang berasal dari hasil XOR antara
bit plaintext dengan setiap bit kuncinya. Stream cipher sangat rawan terhadap
attack pembalikan bit. Beberapa model algoritma stream cipher antara lain :
1. One Time Pad ( OTP )
Dalam OTP terdapat teknik enkripsi yang sempurna. Ditemukan oleh Mayor J
Maugborne dan G Verman tahun 1917. Setiap kunci hanya digunakan untuk
sekali pesan. Teknik ini dikatakan sempurna karena kunci yang acak dan
hanya digunakan sekali. One Time Pad (pad = kertas bloknot) adalah kertas
yang berisi deretan karakter-karakter kunci yang berisi huruf-huruf yang
tersusun acak. Satu pad hanya digunakan sekali (one time) saja untuk
mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan supaya
tidak dipakai kembali untuk mengenkripsi pesan yang lain.
2. Rivest Code 4 (RC 4)
RC4 merupakan salah satu algoritma kunci simetris yang berbentuk stream
cipher, yaitu memproses unit atau input data pada satu saat. Unit atau data
pada umumnya sebuah byte atau kadang-kadang bit. Dengan cara ini enkripsi
atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini
tidak harus menunggu sejumlah input data tertentu sebelum diproses, atau
menambahkan byte tambahan untuk mengenkripsi. Algoritma ini ditemukan
pada tahun 1987 oleh Ronald Rivest dan menjadi simbol keamanan RSA. RC4
merupakan enkripsi stream simetrik proprietary yang dibuat oleh RSA Data
Security Inc (RSADSI). Penyebarannya diawali dari sebuah source code yang
diyakini sebagai RC4 dan dipublikasikan secara 'anonymously' pada tahun
1994. Algoritma yang dipublikasikan ini sangat identik dengan implementasi
RC4 pada produk resmi. RC4 digunakan secara luas pada beberapa aplikasi
dan umumnya dinyatakan sangat aman. Sampai saat ini diketahui tidak ada
yang dapat memecahkan/membongkarnya. RC4 tidak dipatenkan oleh
RSADSI, hanya saja tidak diperdagangkan secara bebas (trade secret).
Algoritma RC4 bekerja pada dua tahap, menyetem susunan (key setup) dan
pengkodean (ciphering). Kunci susunan merupakan hal yang lebih awal dan
merupakan tahap yang paling sulit dari algoritma ini. Selama menyetem
untuk menghasilkan suatu variabel enkripsi yang menggunakan dua arrays,
state dan kunci, dan jumlah N dari operasi pencampuran. Operasi
pencampuran terdiri dari menukar bytes, modulo operasi, dan rumusan lain.
Suatu modulo operasi adalah proses sisa dari suatu hasil divisi. Sebagai
contoh, 11/4 adalah 2 sisa 3; oleh karena itu 11 mod 4 sama dengan 3. Sekali
variabel enkripsi dihasilkan dari key setup, langkah selanjutnya adalah masuk
ke fase ciphering di mana dalam proses ini hasilnya akan diXORkan dengan
plaintext. Sekali penerima mendapat pesan yang dienkripsi, langkah
selanjutnya adalah mendekripsinya dengan XOR pesan yang dienkripsi dengan
menggunakan variabel yang sama. (Ariyus, 2008)
2.3.1.2. Algoritma Asimetri.
Algoritma asimetri sering juga disebut dengan algoritma kunci publik, dengan arti
kata kunci yang digunakan untuk melakukan enkripsi dan dekripsi berbeda. Pada
algoritma asimetri kunci terbagi menjadi dua bagian, yaitu:
1. Kunci umum (public key): kunci yang boleh diketahui semua orang
(dipublikasikan).
2. Kunci rahasia (private key): kunci yang dirahasiakan (hanya boleh diketahui oleh
satu orang saja).
Kunci –kunci tersebut berhubungan satu sama lain. Dengan kunci public orang
dapat mengenkripsi pesan tetapi tidak bisa mendekripsinya. Hanya orang yang
memiliki kunci rahasia yang dapat mendekripsi pesan tersebut. Algoritma asimetri
bisa mengirimkan pesan dengan lebih aman daripada algoritma simetri. Contoh, Bob
mengirim pesan ke Alice menggunakan algoritma asimetri. Hal yang harus dilakukan
adalah:
1. Bob memberitahukan kunci publiknya ke Alice.
2. Alice mengenkripsi pesan dengan menggunakan kunci public Bob.
3. Bob mendekripsi pesan dari Alice dengan kunci rahasianya.
Gambar 2.2 Proses Enkripsi/ Dekripsi sederhana
Algoritma yang memakai kunci publik diantaranya adalah:
1. Digital Signature Algorithm (DSA).
DSA mempunyai perhitungan yang sulit karena pemisahan algoritma dan
berorientasi pada algoritma ElGamal dan Schnorr. Kunci publik berisi tiga
parameter p, q dan g, untuk semua grup dari user. Memilih q sebagai bilangan
prima 160 bit dan menyeleksi bilangan prima p dengan 512 < p < 1024 bit seperti
q adalah factor dari bilangan prima p-1. Kemudian memilih q > 1 menjadi bentuk
h_(p-1)/q (mod p), seperti h_ adalah integer antara 1 dan p-1.
Dengan tiga bilangan tersebut, pengguna memilih kunci rhasia x antara 1 < x < q-1
dan kunci umum y adalah perhitungan dari x sama dengan y ≡ gx (mod p).
Memanggil kembali penanda x adalah suatu hal yang tidak mungkin karena
algoritma yang terpisah dari y untuk basis g (mod p) sulit untuk dihitung.
2. RSA
RSA tidak pernah dibuktikan aman tidaknya, hanya karena sulitnya pemfaktoran
bilangan yang sangat besar, maka RSA dianggap aman. Dalam pembangkitan
kedua kunci, digunakan dua bilangan prima acak yang sangat besar
3. Diffie-Hellman ( DH )
Diffie Helman dianggap merupakan algoritma asimetrik yang pertama kali
ditemukan pada tahun 1976, meskipun NSA telah mengaku menemukan algoritma
asimetrik jauh-jauh hari sebelumnya. Algoritma ini memperoleh keamanannya
dari sulitnya menghitung logaritma diskrit pada bilangan yang amat besar. Akan
tetapi algoritma ini hanya dapat digunakan untuk pertukaran kunci (simetris) dan
2.3.1.3. Hash Function
Fungsi HASH adalah fungsi yang menerima masukan string yang panjangnya
sembarang dan mengonversinya menjadi string keluaran yang panjangnya tetap
(fixed), yang umumnya berukuran jauh lebih kecil dari pada ukuran semula. Fungsi
Hash satu arah (one-way hash function) berfungsi sebagai:
1. Sidik jari (fingerprint): membuat sidik jari dari suatu dokumen atau pesan M yang
mana sidik jari merupakan suatu identitas dari si pengirim pesan.
2. Funsi kompresi: dokumen D (yang besarnya dapat bervariasi) yang akan di-hash
disebut pre-image, sedangkan keluarannya yang memiliki ukuran tetap dalam
bentuk aslinya dan pada dasarnya masukan lebih besar dari pada keluaran,
seolah-olah mengalami kompresi, namun hasil dari kompresi tidak bisa dikembalikan ke
bentuk awalnya, yang oleh karenanya dinamakan satu arah.
3. Message digest: dianggap intisari dari suatu dokumen, padahal tidak demikian
karena intisari dokumen merupakan ringkasan dokumen yang dapat dipahami
maknanya. Message digest tidak demikian, karena dengan sidik jari orang lain
tidak mengerti asli dari dokumen tersebut.
Fungsi HASH satu arah dirancang dengan kompleksitas yang tinggi, sehingga
apabila terjadi perubahan satu bit saja, maka dapat mengubah nilai dari HASH yang
dihasilkan. Untuk HASH yang modern menghasilkan panjang 128 bit atau lebih.
Fungsi HASH ini banyak digunakan pada proses digital signitureuntuk data integrity.
Salah satu kegunaan Fungsi HASH yaitu untuk MAC (Message Authentication Code)
dan HMAC yaitu kode yang dihasilkan oleh fungsi HASH untuk sebuah pesan atau
data pada jaringan komputer. (Ariyus, 2008)
2.3.2. Kriptanalisis
Kriptanalisis bertujuan untuk memecahkan chipertext menjadi plaintext semula tanpa
memiliki akses ke kunci yang digunakan. Kriptanalis berusaha menemukan
kelemahan dari sistem kriptografi yang pada akhirnya mengarah untuk menemukan
Dalam membahas serangan terhadap kriptografi, diasumsikan bahwa
kriptanalis mengetahui algoritma kriptografi yang digunakan, sehingga satu-satunya
keamanan sistem kriptografi terletak sepenuhnya pada kunci.
Dengan kata lain, kriptanalis mengetahui algoritma enkripsi dan dekripsi
secara detil. Merahasiakan algoritma kriptografi bukanlah solusi yang praktis, sebab
setiap kali algoritma berhasil diketahui lawan, maka kriptografer harus membuat
algoritma baru. Dengan membuat algoritma menjadi public, maka cukup kunci saja
yang dirahasiakan. Jika kunci berhasil dicuri, maka kunci baru dibangkitkan tanpa
harus mengganti algoritmanya. Jadi tidak mengherankan kalau semua algoritma
kriptografi telah dipublikasikan di berbagai jurnal dan buku-buku sehingga siapapun
bisa mempelajarinya. Menurut Schneier, algoritma yang terbaik adalah algoritma yang
telah dipublikasikan dan telah “diserang” oleh para kriptografer dan kriptanalis terbaik
dunia dan hingga kini belum berhasil dipecahkan. Dengan mempublikasikan algoritma
kriptografi, kriptografer memperoleh konsultasi gratis dari sejumlah kriptologis
akademisi yang ingin sekali memecahkan algoritma sehingga mereka dapat
mempublikasikan paper yang memperlihatkan kecerdasan mereka. Jika banyak pakar
telah mencoba memecahkan algoritma selama 5 tahun setelah dipublikasikan dan
tidak seorangpun berhasil, maka mungkin algoritma tersebut tangguh.
2.3.3. Jenis-Jenis Serangan Terhadap Kriptografi.
Serangan terhadap sistem kriptografi dapat dikelompokkan dengan beberapa cara:
a. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas
dua macam, yaitu serangan aktif dan serangan pasif.
1. Serangan aktif.
Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut
mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang
mengubah aliran pesan seperti menghapus sebagian chipertext, mengubah
chipertext, menyisipkan potongan chipertext palsu, me-replay pesan lama,
2. Serangan pasif.
Pada jenis serangan ini, penyerang tidak terlibat dalam komunikasi antara
pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan
antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak
mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode
penyadapan data antara lain:
a) Wiretapping; penyadap mencegat data yang ditransmisikan pada saluran
komunikasi dengan menggunakan sambungan perangkat keras.
b) Electromagnetic eavesdropping: penyadap mencegat data yang
ditransmisikan melalui saluran wireless, misalnya radio dan microwave.
c) Acoustic eavesdropping: menangkap gelombang suara yang dihasilkan
oleh suara manusia.
b. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, dikelompokkan
menjadi 5 jenis:
1. Chipertext-only attack.
Ini adalah jenis serangan yang paling umum namun paling sulit karena
informasi yang tersedia hanyalah chipertext saja. Kriptanalis memiliki
beberapa chipertext dari pesan, semuanya dienkripsi dengan algoritma yang
sama. Tugas kriptanalis adalah menemukan plaintext sebanyak mungkin dari
chipertext tersebut atau menemukan kunci yang digunakan untuk mendekripsi.
2. Known-plaintext attack.
Ini adalah jenis serangan di mana kriptanalis memiliki pasangan plaintext dan
chipertext yang berkoresponden. Plaintext mungkin diperoleh dengan
mempelajari karakteristik pesan. Beberapa pesan yang formatnya terstruktur
membuka peluang kepada kriptanalis untuk menerka plaintext dari chipertext
yang bersesuaian.
3. Chosen-plaintext attack.
Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena
kriptanalis dapat memilih plaintext yang dimilikinya untuk dienkripsikan,
4. Chosen-ciphertext attack.
Ini adalah jenis serangan dimana kriptanalis memilih chipertext untuk
didekripsikan dan memiliki akses ke plaintext hasil dekripsi (misalnya
terhadap mesin elektronik yang melakukan dekripsi secara otomatis). Jenis
serangan ini bisaanya dipakai pada sistem kriptografi.
5. Chosen-text attack.
Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext dan
chosen-ciphertext attack.
c. Berdasarkan teknik yang digunakan dalam menemukan kunci, dibagi atas:
1. Exhaustive attack atau brute force attack.
Ini adalah serangan untuk mengungkap plaintext atau kunci dengan mencoba
semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma
kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis
memiliki sejumlah chipertext dan/ atau plaintext yang bersesuaian.
2. Analytical attack.
Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua kemungkinan
kunci tetapi menganalisis kelemahan algoritma kriptografi untuk mengurangi
kemungkinan kunci yang tidak mungkin ada. Diasumsikan kriptanalis
mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan.
Analisis dapat menggunakan pendekatan matematik dan statistik dalam rangka
menemukan kunci. Secara statistik misalnya dengan menggunakan analisis
frekuensi, sedangkan secara matematik dengan memecahkan
persamaan-persamaan matematika (yang diperoleh dari defenisi suatu algoritma
kriptografi) yang mengandung peubah-peubah yang merepresentasikan
plaintext atau kunci.
2.4 Prinsip Penyandian Shannon.
Pada tahun 1949, Shannon mengemukakan dua prinsip (properties) penyandian
(encoding) data. Kedua prinsip ini dipakai dalam perancangan cipher blok yang kuat.
1. Confusion
Prinsip ini menyembunyikan hubungan apapun yang ada antara plaintext,
chipertext, dan kunci. Sebagai contoh, pada cipher substitusi seperti caesar
cipher, hubungan antara chipertext dan plaintext mudah diketahui, karena satu
huruf yang sama pada plaintext diganti dengan satu huruf yang sama pada
chipertext-nya. Prinsip confusion akan membuat kriptanalis frustasi untuk mencari
pola-pola statistik yang muncul pada chipertext. Confusion yang bagus membuat
hubungan statistik antara plaintext, chipertext, dan kunci menjadi sangat rumit.
2. Diffusion
Prinsip ini menyebarkan pengaruh satu bit plaintext atau kunci ke sebanyak
mungkin chipertext. Sebagai contoh, pengubahan kecil pada plaintext sebanyak
satu atau dua bit menghasilkan perubahan pada chipertext yang tidak dapat
diprediksi. Prinsip diffusion juga menyembunyikan hubungan statistik antara
plaintext, chipertext, dan kunci dan membuat kriptanalisis menjadi sulit. Untuk
mendapatkan keamanan yang bagus, prinsip confusion dan diffusion diulang
berkali-kali pada sebuah blok tunggal dengan kombinasi yang berbeda-beda.
2.5 One Time Pad
Suatu algoritma dikatakan aman, apabila belum ada tidak ada cara untuk menemukan
plaintext-nya. Sampai saat ini, hanya algoritma One Time Pad (OTP) yang dinyatakan
tidak dapat dipecahkan meskipun diberikan sumber daya yang tidak terbatas.
Prinsip enkripsi pada algoritma ini adalah dengan mengkombinasikan
masing-masing karakter pada plaintext dengan satu karakter pada kunci. Oleh karena itu,
panjang kunci setidaknya harus sama dengan panjang plaintext. Secara teori, adalah
hal yang tak mungkin untuk mendekripsi chipertext tanpa mengetahui kuncinya.
Sebab jika kunci yang digunakan salah, akan diperoleh hasil yang salah juga, atau
bukan plaintext yang seharusnya. Kemudian setiap kuncinya hanya boleh digunakan
untuk sekali pesan. Pengambilan kunci harus dilakukan secara acak supaya tidak dapat
Sebagai contoh: Sebuah pesan ”MEDAN” akan dienkripsi dengan
kunci”XYZAC” dengan perhitungan sebagai berikut, maka akan diperoleh hasil
enkripsi”KDDBI”
Pesan (plaintext) : 13(M) 5(E) 4(D) 1(A) 14(N)
Kunci : 24(X) 25(Y) 26(Z) 1(A) 3(C)
Pesan + kunci : 37 30 30 2 17
Pesan + kunci mod 26 : 11(K) 4(D) 4(D) 2(B) 17(I)
Untuk mendekripsinya, maka dilakukan proses kebalikannya, yaitu.
Ciphertext : 11(K) 4(D) 4(D) 2(B) 17(I)
Kunci : 24(X) 25(Y) 26(Z) 1(A) 3(C)
Ciphertext - kunci : -13 -21 -22 1 14
Ciphertext - kunci mod 26 : 13(M) 5(E) 4(D) 1(A) 14(N)
Ketika ada pihak lain yang ingin mencoba mendekripsi ciphertext tersebut, tanpa
mengetahui kuncinya, maka dapat diperoleh plaintext yang berbeda dari yang
seharusnya, contohnya;
Ciphertext : 11(K) 4(D) 4(D) 2(B) 17(I)
Kunci yang mungkin : 17(T) 25(Q) 7(U) 10(R) 8(I)
Ciphertext - kunci : -6 -21 -11 -8 9
Ciphertext - kunci mod 26 : 20(T) 5(E) 15(O) 18(R) 9(I)
Pada deskripsi ini, diperoleh plaintext ”TEORI”. Sistem pada contoh di atas.
Penerima pesan menggunakan One Time Pad yang sama untuk
mendekripsikan karakter-karakter ciphertext menjadi karakter-karakter plaintext
dengan persamaan:
yang mana diperoleh sebagai berikut:
(M + X) mod 26 = K
(E + Y) mod 26 = D
(D + Z) mod 26 = D, dst
Perhatikan bahwa panjang kunci sama dengan panjang plaintext, sehingga
tidak ada kebutuhan mengulang penggunaan kunci selama proses enkripsi. Setelah
pengirim mengenkripsikan pesan dengan One Time Pad, ia menghancurkan One Time
Pad tersebut (makanya disebut satu kali pakai atau one time).
Sistem cipher One Time Pad ini tidak dapat dipecahkan karena barisan kunci
acak yang ditambahkan ke pesan plaintext yang tidak acak menghasilkan ciphertext
yang seluruhnya acak. Beberapa barisan kunci yang digunakan untuk mendekripsi
chipertext mungkin menghasilkan pesan-pesan plaintext yang mempunyai makna,
sehingga kriptanalis tidak punya cara untuk menentukan plaintext mana yang benar.
Meskipun One Time Pad merupakan cipher yang sempurna aman, namun faktanya ia
tidak digunakan secara universal dalam aplikasi kriptografi sebagai satu-satunya
sistem cipher yang tidak dapat dipecahkan (hanya sedikit sistem komunikasi yang
menggunakan One Time Pad). Malahan orang masih tetap menggunakan sistem
cipher yang dapat dipecahkan. Alasannya adalah dari segi kepraktisan, yaitu karena
panjang kunci harus sama dengan panjang pesan, maka One Time Pad hanya cocok
untuk pesan berukuran kecil.
Semakin besar ukuran pesan, semakin besar pula ukuran kunci. Pada aplikasi
kriptografi untuk mengenkripsikan data tersimpan, timbul masalah lain dalam
penyimpanan kunci. Karena kunci dibangkitkan secara acak, maka ‘tidak mungkin’
pengirim dan penerima membangkitkan kunci yang sama secara simultan. Jadi, salah
seorang dari mereka harus membangkitkan kunci lalu mengirimkannya ke pihak lain.
Karena kerahasiaan kunci harus dijamin, maka perlu ada perlindungan selama
pengiriman kunci. Jika hanya ada satu saluran komunikasi, maka pengirim dan
penerima pesan perlu barisan kunci One Time Pad lain untuk melindungi kunci One
dan seterusnya. Hal ini menghasilkan kumpulan barisan kunci One Time Pad yang
tidak berhingga banyaknya.
Mengirimkan barisan kunci melalui saluran komunikasi yang digunakan untuk
pengiriman pesan juga tidak praktis karena pertimbangan lalu lintas (traffic) pesan
yang padat. Oleh karena itu, One Time Pad hanya dapat digunakan jika tersedia
saluran komunikasi kedua yang cukup aman untuk mengirim kunci. Saluran kedua ini
umumnya lambat dan mahal. Misalnya pada perang dingin antara AS dan Uni Soviet
(dahulu), One Time Pad dibangkitkan, disimpan, lalu dikirim dengan menggunakan
jasa kurir yang aman. Penting diingat bahwa saluran kedua yang aman tersebut
BAB 3
ANALISIS DAN PEMODELAN PERANGKAT LUNAK
3.1 Analisis Masalah
Analisis adalah sebuah tugas rekayasa perangkat lunak yang menjembatani jurang
diantara pengalokasian perangkat lunak tingkat sistem dan perancangan perangkat
lunak, dalam hal ini perancangan interface program aplikasi untuk proses enkripsi
maupun dekripsi pesan/ data, memungkinkan perekayasa sistem menentukan fungsi
dan kinerja perangkat lunak, menunjukkan interface perangkat lunak dengan
elemen-elemen sistem yang lain, dan membangun batasan yang harus dipenuhi oleh perangkat
lunak. Analisis persyaratan perangkat lunak mengijinkan perekayasa perangkat lunak
(dalam peran ini sering disebut analis) untuk memperhalus alokasi perangkat lunak
dan membangun model-model data yang akan diproses oleh perangkat lunak. Analisis
persyaratan memberikan model-model yang akan diterjemahkan ke dalam data,
arsitektur, interface, dan disain prosedural kepada perancang perangkat lunak.
Ketika user akan memulai penggunaan program aplikasi, selalu diawali
dengan proses identifikasi yaitu proses login. Pada saat proses login inilah hal yang
sangat penting dari keamanan sebuah sistem informasi termasuk data yang ada di
dalamnya. Untuk mencegah terjadinya pencurian data, maka user harus diverifikasi
terlebih dahulu untuk dapat menentukan hak aksesnya.
Pada awalnya, analis mempelajari spesifikasi sistem (bila ada) dan rencana
proyek perangkat lunak. Penting untuk memahami perangkat lunak dalam suatu
konteks sistem dan mengkaji ruang lingkup perangkat lunak yang telah digunakan
komunikasi untuk analisis untuk menjamin pengenalan masalah. Tujuan analis adalah
mengenali elemen masalah dasar seperti dirasakan oleh pemakai/user.
3.1.1 Pengenalan Masalah
Adapun pengenalan masalah dalam penelitian ini adalah “bagaimana menjaga
keamanan data/ informasi yang terdapat/ tersimpan pada sebuah sistem informasi dan
bagaimana memanfaatkan kriptografi sebagai alternatif pengamanan data khususnya
menggunakan algoritma One Time Pad” yang nantinya ditampilkan dalam bentuk
interface dalam bentuk form-form program aplikasi, yang akan memudahkan user
(client) dalam menjaga kerahasiaan data/ informasinya yang kebutuhannya
disesuaikan dengan kenyamanan, kemudahan, dan kecepatan dalam memproses data.
Data/ informasi yang tersimpan pada sebuah sistem informasi merupakan aset
dari sebuah perusahaan, dimana data/ informasi ini diharapkan tidak jatuh ke tangan
orang yang tidak berhak. Untuk menjamin terjaganya data/ informasi ini, maka setiap
user yang akan menggunakan sistem informasi ini harus melalui tahap awal yaitu
proses login. Pada proses login ini, nantinya user akan memasukkan data berupa nama
dan password. User yang tidak terdaftar akan ditolak hak aksesnya dan proses akan
terminate.
Penggunaan algoritma kriptografi One Time Pad ini akan digunakan pada
database yaitu pada tabel Login, dimana field password akan mengalami proses
enkripsi maupun dekripsi.
3.2 Analisis Kerahasiaan
Pada algoritma One Time Pad ini, setiap karakter plaintext yang akan dienkripsi
dengan masing-masing key yang berbeda, sehingga satu karakter plaintext yang sama
akan menghasilkan karakter chipertext yang berbeda, demikian juga pada saat
Jika kriptanalis mendapatkan key untuk satu karakter plaintext maupun
chipertext, maka key tersebut belum tentu dapat digunakan untuk plaintext maupun
chipertext yang lain, sehingga kriptanalis dapat menemukan plaintext yang akan
mempunyai makna yang berbeda dari plaintext yang sebenarnya.
Hal ini dapat dibuktikan dari pembahasan pada Bab 2, dimana plaintext
“MEDAN” yang dienkripsi dengan key “XYZAC” akan menghasilkan karakter
chipertext “KDDBI”. Bila kriptanalis menggunakan chipertext tersebut di atas, maka
kriptanalis akan menggunakan key yaitu ”TQURI” maka akan menghasilkan plaintext
berupa ”TEORI”, demikian juga bila kriptanlis mencoba untuk menggunakan key
yang lain, maka akan menghasilkan plaintext yang berbeda pula, sehingga kriptanalis
akan bingung untuk menentukan mana plaintext yang sebenarnya.
3.3 Desain Sistem
Proses perancangan yang akan digunakan merupakan proses perancangan yang yang
berorientasi pada proses dan prosedural, untuk itu perlu dibuatkan diagram aliran data
(Data Flow Diagram) yang dapat memodelkan proses yang terjadi pada sistem.
3.3.1 Analisis Kebutuhan Sistem
Sistem yang akan dibangun ini diharapkan dapat memenuhi kebutuhan-kebutuhan
antara lain sebagai berikut:
1. User dapat diverifikasi hak aksesnya pada saat proses login.
2. Data user dapat dienkripsi pada saat penutupan transaksi dan didekripsi kembali
pada saat proses transaksi.
3. Sistem membutuhkan waktu yang relatif singkat untuk memproses data (enkripsi
3.3.2 Diagram Aliran Data
Diagram ini menjelaskan secara global bahwa sistem berinteraksi dengan sebuah
entitas luar yang bernama user. Input user diawali dengan login yang nantinya
dianggap sebagai plaintext oleh sistem dan password yang merupakan authentifikasi
untuk user masuk ke sistem.
3.3.2.1Data Flow Diagram (DFD)
DFD merupakan diagram yang menggunakan notasi-notasi (simbol-simbol) untuk
menggambarkan arus dari data sistem. DFD sering digunakan untuk menggambarkan
suatu sistem yang telah ada atau sistem baru yang dikembangkan secara logika tanpa
mempertimbangkan lingkungan fisik dimana data tersebut mengalir (file kartu,
harddisk, tape, disket, dan lain sebagainya). DFD merupakan alat yang digunakan
pada metodologi pengembangan sistem yang terstruktur (Structure Analysis and
Design). Disini Penulis akan merancang Data Flow Diagram yang digunakan dalam
merancang penggunaan algoritma One Time Pad untuk sistem keamanan sistem
informasi pembelian dan penjualan produk, yaitu:
Gambar 3.1 Data Flow Diagram (DFD) Level Top (Contex)
Gambar 3.2 Data Flow Diagram (DFD) Level 1
P. 0
SISTEM INFORMASI PEMBELIAN DAN
PENJUALAN PRODUK
Key
Key
P. 1
ENKRIPSI
P. 2
DEKRIPSI
Plaintext
P. 3
Transaksi
Chipertext
Text Encrypt
Text Encrypt Kunci OTP
Kunci OTP
Text Plain
Gambar 3.3 Data Flow Diagram (DFD) Level 2 Untuk Enkripsi
Gambar 3.4 Data Flow Diagram (DFD) Level 2 Untuk Dekripsi
Gambar 3.5 Data Flow Diagram (DFD) Level 2 Untuk Proses Transaksi
3.4 Rancangan Database
Untuk mendesain atau merancang suatu sistem yang baik dan terstruktur dibutuhkan
basis data (database). Dalam hal ini harus dideskripsikan struktur atau susunan dari
basis data yang digunakan dalam merancang sistem antara lain sebagai berikut:
3.4.1Struktur Tabel
Tabel 3.1 Supplier
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Ω KdSupplier Varchar 5
Supplier Varchar 100
Alamat Varchar 250
Direktur Varchar 100
NoTelp Varchar 20
Setiap record data pada tabel Supplier berisi identitas Supplier dan diisikan sesuai
dengan nama field-nya masing-masing.
Tabel 3.2 Customer
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Ω KdCustomer Varchar 5
Customer Varchar 250
Alamat Varchar 250
NoTelp Varchar 20
Setiap record data pada tabel Customer berisi identitas Customer dan diisikan sesuai
Tabel 3.3 Login
Column Name Data Type Length Allow Nulls
Ω Kode Varchar 5
Setiap record data pada tabel Login diisikan sesuai dengan nama field-nya
masing-masing. Field Prog digunakan sebagai penanda untuk record yang telah dienkrip.
Nilai field “Prog” = 1 bermakna field tersebut telah mengalami proses enkripsi,
sedangkan nilai field “Prog” = 0 bermakna field tersebut belum mengalami proses
enkripsi (telah mengalami proses dekripsi). Field “MyKey” berisi data kunci yang
akan digunakan pada proses enkripsi maupun dekripsi.
Tabel 3.4 Satuan
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Ω KdSatuan Varchar 2
Satuan Varchar 50
Setiap record data pada tabel Satuan berisi identitas data satuan seperti buah, lusin,
paket, dan sebagainya.
Tabel 3.5 Kriteria
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Ω KdKriteria Varchar 1
Kriteria Varchar 20
Setiap record data pada tabel Kriteria berisi identitas data kriteria barang seperti
Tabel 3.6 Setup
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Aktif Bit 1
Perusahaan Varchar 50
Status Varchar 50
NoTelp Varchar 30
Alamat Varchar 250
NoSIUP Varchar 50
MasaBerlakuSiup DateTime 8
Izin Varchar 250
NoTelpDirektur Varchar 30
AlamatDirektur Varchar 250
Setiap record data pada tabel Setup berisi identitas data perusahaan berupa nama
perusahaan, direktur, alamat, dan lain-lain. Fungsi field “Tahun” digunakan sebagai
tahun transaksi, dan field “Aktif” digunakan sebagai penanda tahun pengisian
transaksi.
Tabel 3.7 Barang
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
KdBarang Varchar 5
Barang Varchar 250
KdKriteria Varchar 1
Setiap record data pada tabel Barang berisi identitas data barang maupun jasa yang
dijual atau dibeli oleh perusahaan.
Tabel 3.8 Pembelian
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Ω Bulan Varchar 2
Ω KdPembelian Varchar 5
TglBeli DateTime 8
KdSupplier Varchar 5
Keterangan Varchar 250
Setiap record data pada tabel Pembelian berisi data transaksi pembelian yang
dilakukan oleh perusahaan.
Tabel 3.9 Pembeliandt
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Setiap record data pada tabel Pembeliandt berisi data rincian transaksi pembelian
yang dilakukan oleh perusahaan.
Tabel 3.10 Penjualan
Column Name Data Type Length Allow Nulls
Ω Bulan Varchar 2
Ω KdPenjualan Varchar 5
TglJual DateTime 8
KdCustomer Varchar 5
Keterangan Varchar 250
Setiap record data pada tabel Penjualan berisi data transaksi penjualan yang dilakukan
oleh perusahaan.
Tabel 3.11 Penjualandt
Column Name Data Type Length Allow Nulls
Ω Tahun Varchar 4
Ω Bulan Varchar 2
Ω KdPenjualan Varchar 5
Urut Int 4
KdBarang Varchar 5
Jumlah Decimal 9
Harga Decimal 9
Total Decimal 17 √
Setiap record data pada tabel Penjualandt berisi data rincian transaksi penjualan yang
dilakukan oleh perusahaan.
Tabel 3.12 Status
Column Name Data Type Length Allow Nulls
Status Varchar 50
Data pada tabel ini berisi Status dari para user apakah sebagai Supervisor atau
3.4.2Struktur Relasi Antar Tabel
Untuk menjaga hubungan antar tabel diperlukan suatu rancangan diagram database,
dimana harus dibuatkan relasi antar tabel. Berikut adalah rancangan diagram antar
tabel:
Gambar 3.6 Struktur Relasi Antar Tabel
3.4.3Struktur View
Untuk melakukan manipulasi data, dalam hal pembuatan laporan diperlukan suatu
hubungan tersendiri antar tabel, dimana data dari tabel yang satu dapat digunakan
a. Supplier
Gambar 3.7 View Supplier
Struktur View Supplier ini digunakan untuk membuat laporan data Supplier.
b. Customer
Gambar 3.8 View Customer
Struktur View Customer ini digunakan untuk membuat laporan data Customer.
c. Satuan
Gambar 3.9 View Satuan
Struktur View Satuan ini digunakan untuk membuat laporan data Satuan barang/
d. Kriteria
Gambar 3.10 View Kriteria
Struktur View Kriteria ini digunakan untuk membuat laporan data Kriteria barang/
jasa.
e. Barang
Gambar 3.11 View Barang
f. Pembelian
Gambar 3.12 View Pembelian
Struktur View Pembelian ini digunakan untuk membuat laporan data Pembelian
barang/ jasa.
g. Penjualan
Gambar 3.13 View Penjualan
Struktur View Penjualan ini digunakan untuk membuat laporan data Penjualan
BAB 4
PERANCANGAN DAN IMPLEMENTASI
4.1 Perancangan Antar Muka
Aplikasi akan dirancang dalam bentuk aplikasi sistem informasi yang bisa
diimplementasikan pada sistem intranet. Interface disediakan untuk memudahkan
pengguna dalam memberikan input berupa beberapa parameter yang diperlukan, serta
menampilkan hasilnya, termasuk di dalamnya proses enkripsi maupun dekripsi data,
yang dalam hal ini menggunakan algoritma One Time Pad.
Disamping itu, penggunaan perancangan interface ini nantinya akan dapat
memudahkan analis dalam mendeskripsikan hasil rancangan ke dalam bentuk suatu
kode program, yang dimana perancangan ini menggunakan bahasa pemrograman
Visual Basic 6.0.
Visual Basic merupakan bahasa pemrograman yang digunakan dalam
mengembangkan aplikasi interface. Dalam Visual Basic semua objek sudah
disediakan, programer tinggal mengambil sesuai dengan kebutuhan. Selain itu sarana
pengembang yang bersifat Visual memudahkan programer dalam mengembangkan
program aplikasi berbasis Windows.
Adapun kelebihan dari bahasa pemrograman Visual Basic 6.0 ini, antara lain :
1. Bahasa yang sederhana. Banyak hal yang mungkin sulit dilakukan jika
menggunakan bahasa pemrograman lainnya, akan dapat dilakukan dengan mudah
2. Karena Visual basic sangat populer, maka sangat banyak sumber-sumber yang
dapat digunakan untuk belajar dan mengembangkan kemampuan, baik berupa
buku, web site, dan lain sebagainya. Dengan banyaknya sumber-sumber tersebut,
maka tentu saja akan sangat mudah menemukan jawaban atas persoalan yang
dihadapi.
3. Bisa memperoleh banyak tools baik gratis maupun tidak di Internet yang akan
sangat membantu menghemat waktu dalam pemrograman.
SISTEM INFORMASI
Menu Master Menu Transaksi Menu Report Menu Windows
Supplier Barang Data Master Transfer
Customer Pembelian Data Transaksi About
User Login Penjualan Help
Satuan Exit
Kriteria
Setup Parameter
Enkripsi & Dekripsi
Gambar 4.1 Perancangan Tampilan Daftar Menu Sistem Informasi
Dalam perancangan ini, terdapat 4 menu yaitu menu Master, menu Transaksi,
menu Report dan menu Windows.
1. Menu Master
Menu ini berfungsi sebagai tempat mengisi, mengubah maupun menghapus data
master, yang nantinya akan digunakan pada saat proses pengentrian data transaksi
maupun pada saat pencetakan laporan.
Pada menu ini dibagi menjadi 7 sub bagian, yang masing-masing sub menu
untuk sub menu “Enkripsi & Dekripsi” merupakan tempat/ form proses enkripsi
maupun dekripsi data yang nantinya akan dibangun dengan menggunakan
algoritma Kriptografi One Time Pad.
2. Menu Transaksi
Menu ini berfungsi sebagai tempat mengisi, mengubah maupun menghapus data
transaksi perusahaan, baik itu berupa pembelian maupun penjualan produk.
3. Menu Report
Menu ini berfungsi sebagai tempat akhir kegiatan, dimana data yang telah dientri
akan diproses dan dilakukan proses filter data sesuai dengan instruksi dari user dan
akan ditampilkan pada kertas/ hard copy.
4. Menu Windows
Menu ini berfungsi sebagai menu tambahan pada sistem informasi yang akan
dibangun. Adapun sub menu pada menu ini antara lain, menu transfer yang akan
melakukan duplikasi data master untuk tahun selanjutnya (user tidak perlu lagi
melakukan pengentrian data yang sama untuk tahun yang berbeda).
Adapun tampilan/ interface untuk form pada sistem informasi yang akan
dibangun adalah sebagai berikut:
1. Menu Master
Pada menu master ini terdapat 7 sub menu, diantaranya:
a. Supplier
Pada form ini, user dapat melakukan penambahan, pengeditan, maupun
penghapusan data Supplier. Untuk kode supplier diberi batas maksimal 5
(lima) karakter.
b. Customer
Gambar 4.3 Form Customer
Pada form ini, user dapat melakukan penambahan, pengeditan maupun penghapusan data Customer. Untuk kode customer diberi batas maksimal 5 (lima) karakter.
c. User Login
Gambar 4. 4 Form User
enkripsi maupun dekripsi data user. Proses penambahan user ini hanya boleh dilakukan oleh user dengan level supervisor.
d. Satuan
Gambar 4.5 Form Satuan
Pada form ini, user dapat melakukan penambahan, pengeditan maupun penghapusan data satuan, yang nantinya data pada form ini akan digunakan pada saat pengisian data barang.
e. Kriteria
Gambar 4.6 Form Kriteria
f. Setup Parameter
Gambar 4.7 Form Setup Parameter
Pada form ini, user dapat melakukan penambahan, pengeditan maupun penghapusan data master yang berhubungan dengan data perusahaan, diantaranya tahun transaksi, nama perusahaan, direktur, dan lain sebagainya. Fungsi check box “Aktif” adalah sebagai penanda tahun transaksi yang akan dilakukan.
g. Enkripsi & Dekripsi Data Perusahaan
Gambar 4.8 Form Enkripsi dan Dekripsi
Pada form ini, user dapat melakukan proses enkripsi maupun dekripsi pada
data user yaitu pada field password. Proses enkripsi maupun dekripsi ini akan
melakukan proses ini adalah user yang mempunyai kedudukan sebagai
supervisor.
2. Menu Transaksi
Pada menu Transaksi ini terdapat 3 sub menu, diantaranya:
a. Barang
Gambar 4.9 Form Barang
Pada form ini, user dapat melakukan proses penambahan, pengeditan maupun
penghapusan data barang. Untuk data kriteria dan satuan, datanya diambil dari
tabel master, sehingga user tidak perlu lagi mengetikkan data tersebut, cukup
hanya dengan memilih data yang sesuai.
b. Pembelian
Pada form ini, user dapat melakukan proses pengentrian, pengeditan maupun penghapusan data pembelian. Untuk data supplier, cukup dengan menekan spasi pada keyboard, maka akan muncul list box data supplier yang datanya berasal dari tabel master.
Gambar 4.11 Form Rincian Pembelian
Pada form ini, user dapat melakukan proses penambahan, pengeditan maupun penambahan data pembelian yang datanya disesuaikan dengan nomor kode pembelian
c. Penjualan
Gambar 4.12 Form Penjualan
muncul yang datanya berasal dari tabel master, sehingga user dapat dengan mudah memilih customer yang akan dientri.
Gambar 4.13 Form Rincian Penjualan
Pada form ini, user dapat melakukan proses penambahan, pengeditan maupun
penambahan data penjualan yang datanya disesuaikan dengan nomor kode
penjualan.
3. Menu Report
Pada menu Report ini terdapat 2 sub menu, diantaranya:
a. Data Master
Gambar 4.14 Form Laporan Data Master
Pada form ini, user dapat melakukan proses pencetakan data yang berasal dari
pengentrian data master. Masing-masing tombol mempunyai fungsi yang
b. Data Transaksi
Gambar 4.15 Form Laporan Data Transaksi
Pada form ini, user dapat melakukan proses pencetakan data yang berasal dari pengentrian data transaksi. Masing-masing tombol mempunyai fungsi yang disesuaikan dengan judul dari masing-masing tombol.
4. Menu Windows
Pada menu Windows ini terdapat 4 sub menu, diantaranya:
a. Transfer
Gambar 4.16 Form Transfer
Form ini berfungsi untuk mentransfer data dari tahun asal ke tahun tujuan,
sehingga user tidak perlu lagi melakukan pengentrian data yang sama untuk
tahun yang berbeda.
b. About