PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA KNAPSACK

dokumen-dokumen yang mirip
Departemen Teknik Informatika Institut Teknologi Bandung 2004

BAB III ANALISIS DAN DESAIN SISTEM

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

PENERAPAN ALGORITMA CAESAR CIPHER DAN ALGORITMA VIGENERE CIPHER DALAM PENGAMANAN PESAN TEKS

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB 2 LANDASAN TEORI

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

BAB II LANDASAN TEORI

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

STUDI & IMPLEMENTASI ALGORITMA TRIPLE DES

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

BAB II TINJAUAN PUSTAKA

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB II LANDASAN TEORI

(S.2) KRIPTOGRAFI METODA MODULAR MULTIPLICATON-BASED BLOCK CIPHER PADA FILE TEXT

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

Kriptografi Modern Part -1

Implementasi Algoritma Rot Dan Subtitusional Block Cipher Dalam Mengamankan Data

BAB 2 TINJAUAN PUSTAKA

Tipe dan Mode Algoritma Simetri (Bagian 2)

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

BAB 2 LANDASAN TEORI

2. Tipe dan Mode Algoritma Simetri

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

ENKRIPSI-DEKRIPSI DENGAN ALGORITMA GENETIKA

Blox: Algoritma Block Cipher

BAB II TINJAUAN PUSTAKA

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

APLIKASI ENKRIPSI DAN DEKRIPSI MENGGUNAKAN VISUAL BASIC 2012 DENGAN ALGORITMA TRIPLE DES

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

PERANCANGAN APLIKASI PENYANDIAN PESAN TEKS MENGGUNAKAN VIGENERE CIPHER DAN ALGORITMA ELGAMAL

MODIFIKASI VIGÈNERE CIPHER DENGAN MENGGUNAKAN MEKANISME CBC PADA PEMBANGKITAN KUNCI

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. Universitas Sumatera Utara

PERANCANGAN PERANGKAT LUNAK PENGAMANAN FILE MENGGUNAKAN ALGORITMA ELECTRONIC CODE BOOK (ECB)

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

Algoritma Kriptografi Modern (Bagian 2)

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

PERANGKAT APLIKASI KEAMANAN DATA TEXT MENGGUNAKAN ELECTRONIC CODEBOOK DENGAN ALGORITMA DES

BAB I PENDAHULUAN. 1.1 Latar Belakang

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

Aplikasi Merkle-Hellman Knapsack Untuk Kriptografi File Teks

Analisis Penerapan Algoritma MD5 Untuk Pengamanan Password

BAB 1 PENDAHULUAN Latar belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang

Bab 2 Tinjauan Pustaka

Disusun oleh: Ir. Rinaldi Munir, M.T.

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

Bab 1 PENDAHULUAN Latar Belakang

IMPLEMENTASI ALGORITMA VERTICAL BIT ROTATION PADA KEAMANAN DATA NASABAH ( STUDI KASUS : PT. ASURANSI ALLIANZ LIFE INDONESIA )

BAB 2 LANDASAN TEORI

SISTEM PENGAMANAN PESAN SMS MENGGUNAKAN INTERNASIONAL DATA ENCRYPTION ALGORITHM

STUDI MENGENAI JARINGAN FEISTEL TAK SEIMBANG DAN CONTOH IMPLEMENTASINYA PADA SKIPJACK CIPHER

Sistem Kriptografi Kunci-Publik

APLIKASI ENKRIPSI SMS (SHORT MESSAGE SERVICE) MENGGUNAKAN ALGORITMA DATA ENCRYPTION STANDARD (DES) BERBASIS ANDROID

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

PENERAPAN ALGORITMA RSA DAN DES PADA PENGAMANAN FILE TEKS

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

Kriptosistem Knapsack

Pengenalan Kriptografi

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

BAB II TINJAUAN PUSTAKA

Proses enkripsi disetiap putarannya menggunakan fungsi linear yang memiliki bentuk umum seperti berikut : ( ) ( ) (3) ( ) ( ) ( )

Add your company slogan TEKNIK BLOCK CIPHER. Kriptografi - Week 9 LOGO. Aisyatul Karima, 2012

PERANCANGAN PEMBANGKIT TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE STANDARD (DSS) Sudimanto

Modifikasi Affine Cipher Dan Vigènere Cipher Dengan Menggunakan N Bit

BAB II LANDASAN TEORI

IMPLEMENTASI ALGORITMA VIGENERE CIPHER DAN RIVEST SHAMMER ADLEMAN (RSA) DALAM KEAMANAN DATA TEKS

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

Latar Belakang Masalah Landasan Teori

BAB Kriptografi

BAB 2 LANDASAN TEORI

SUATU ALGORITMA KRIPTOGRAFI STREAM CIPHER BERDASARKAN FUNGSI CHAOS

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Kriptografi Modern Part -1

PERANCANGAN APLIKASI ENKRIPSI DEKRIPSI MENGGUNAKAN METODE CAESAR CHIPER DAN OPERASI XOR

KRIPTOGRAFI HILL CIPHER DENGAN MENGGUNAKAN OPERASI MATRIKS

BAB 1 PENDAHULUAN. 1.1.Latar Belakang

Pengantar Kriptografi

ANALISA KRIPTOGRAFI KUNCI PUBLIK RSA DAN SIMULASI PENCEGAHAN MAN-IN-THE-MIDDLE ATTACK DENGAN MENGGUNAKAN INTERLOCK PROTOCOL

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Analisa Pengamanan Data Teks Menggunakan Algoritma ADFGVX

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Perangkat Lunak Pembelajaran Protokol Secret Sharing Dengan Algoritma Asmuth Bloom

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

STUDI MENGENAI KRIPTANALISIS UNTUK BLOCK CIPHER DES DENGAN TEKNIK DIFFERENTIAL DAN LINEAR CRYPTANALYSIS

BAB II LANDASAN TEORI

Transkripsi:

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA KNAPSACK Ranto Parluhutan Sitorus (0811312) Mahasiswa STMIK Budidarma Medan Jln. Sisingamangaraja No.338 Simpang Limun Medan Website : http//stmik-budidarma.ac.id, Medan, email:rantops@yahoo.com ABSTRAK Penyadapan data yang disampaikan saat komunikasi tentunya menjadi masalah apabila data yang disampaikan tersebut bersifat rahasia. Untuk itu dibutuhkan system pengamanan data, ketika data tersebut disampaikan ke pihak yang bersangkutan. Knapsack adalah algoritma kriptografi kunci public yang keamanannya terletak pada sulitnya memecahkan persoalan knapsack. Knapsack artinya karung/kantung, Karung mempunyai kapasitas muat terbatas. Barangbarang dimasukkan ke dalam karung hanya sampai batas kapasitas maksimum karung saja. Dalam algoritma Knapsack proses enkripsi dilakukan dengan cara plainteks dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Dengan mengalikan setiap bit di dalam blok dengan elemen yang berkoresponden didalam kunci public dan deskripsi dilakukan dengan menggunakan kunci private. kriptografi kunci publik kekuatannya terletak pada sulitnya memecahkan masalah matematis seperti pemfaktoran dan logaritma diskrit. Tujuan perancangan aplikasi pengamanan data dengan algoritma knapsack adalah untuk menjaga kerahasiaan data. Algoritma knapsack kunci public adalah algoritma yang dimodifikasi oleh Martin Hellman dan Ralph Merkle, dari superincreasing knapsack menjadi non-superincreasing knapsack dengan menggunakan kunci public untuk proses enkripsi dan kunci private untuk deskripsi. Kata kunci : algoritma knapsack, kunci publik 1. PENDAHULUAN 1.1 Latar Belakang Masalah Manusia berinteraksi dengan sesama manusia menggunakan komunikasi, baik lisan maupun tulisan. Tidak semua hal yang dikomunikasikan tersebut bersifat umum sehingga bisa diketahui oleh banyak orang. Ada kalanya hal yang dikomunikasikan tersebut bersifat private atau rahasia sehingga hanya orang-orang tertentu yang bisa mengetahuinya. Seiring dengan perkembangan teknologi informasi yang semakin pesat memungkinkan semua orang dapat mengakses informasi dengan mudah dan melalui berbagai media, diantaranya lewat media transmisi telekomunikasi seperti handphone dan jaringan computer. Terjadinya penyadapan data yang disampaikan saat komunikasi itu tentunya menjadi masalah apabila data yang disampaikan tersebut bersifat rahasia. Untuk itu dibutuhkan system pengamanan data, ketika data tersebut disampaikan ke pihak yang bersangkutan. Data yang dikirim melalui media tersebut belum tentu terjamin keamanannya. karena media yang menghubungkan antara pengirim dan penerima informasi/data tersebut terlebih dahulu mengubah informasi/data menjadi kode/isyarat. Kode inilah yang akan dimanipulasi dengan berbagai macam cara untuk diubah kembali menjadi data kepada sipenerima. Maka dimungkinkan bisa terjadi pencurian dan pengubahan data yang dilakukan oleh penyadap atau cracker untuk kemungkinan tertentu. Hal ini tentunya menjadi masalah besar jika data yang disadap merupakan data penting dan data rahasia yang tidak seharusnya dapat diketahui secara umum. Dengan demikian salah satu solusinya adalah dengan mengimplementasikan kriptografi untuk pengamanan kebocoran data serta menjaga kerahasiaan data. Kriptografi merupakan ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu media ke media lain. Dalam kriptografi banyak ditemukan algoritma-algoritma kriptografi, salah satunya adalah algoritma knapsack, algoritma Knapsack adalah algoritma kriptografi kunci public yang keamanannya terletak pada sulitnya memecahkan persoalan knapsack. Knapsack artinya karung/kantung, Karung mempunyai kapasitas muat terbatas. Barang-barang dimasukkan ke dalam karung hanya sampai batas kapasitas maksimum karung saja. Dalam algoritma Knapsack proses enkripsi dilakukan dengan cara plainteks dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Dengan mengalikan setiap bit di dalam blok dengan elemen yang berkoresponden didalam kunci public dan deskripsi dilakukan dengan menggunakan kunci private. Enkripsi adalah sebuah proses menjadikan pesan yang dapat dibaca menjadi pesan acak yang tidak dapat dibaca. Dan deskripsi adalah proses kebalikan dari enkripsi dimana proses ini akan mengubah cipher text menjadi plaintext 1.2 Perumusan Masalah Berdasarkan dari latar belakang diatas, maka yang menjadi rumusan masalah adalah: 71

1. Bagaimana proses mengamankan data dengan menggunakan algoritma Knapsack. 2. Bagaimana menerapkan algoritma Knapsack dalam pengamanan data pada suatu aplikasi perangkat lunak. 3. Bagaimana merancang aplikasi pengamanan data dengan algoritma Kriptografi Knapsack untuk Enkripsi dan Deskripsi pada suatu data atau suatu informasi. 1.3 Batasan Masalah Permasalahan yang dibahas pada skripsi ini terlalu luas jika diteliti secara menyeluruh. Maka dari itu agar masalah tidak melebar kemana-mana penulis membatasi masalah ini pada: 1. Perancangan aplikasi pengamanan data dengan algoritma knapsack dilakukan untuk Enkripsi dan Deskripsi data berformat text (*.txt) 2. Perangkat lunak yang digunakan adalah bahasa pemograman Visual Basic 6.0. 3. Tidak membahas transmisi data. 4. Jumlah Maksimal karakter text yang diinput untuk proses enkripsi adalah 20 karakter. 5. Algoritma yang digunakan adalah algoritma knapsack public key 6. Panjang kunci terdiri dari 8 (satuan/pasangan) angka. 7. Setiap huruf dalam Penerapan algoritmanya dirubah ke biner 8 bit Selain definisi tersebut diatas, terdapat pula definisi yang dikemukakan didalam [MEN96]: Kriptografi adalah ilmu yang mempelajari teknikteknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Sumber: Rinaldi Munir, 2006. Halaman: 2. Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu : 1. Kerahasiaan, adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. 2. Integritas data, adalah layanan yang menjamin pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. 3. Otentikasi, adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) manapun mengidentifikasi kebenaran sumber pesan (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. Sumber: Rinaldi Munir, 2006. Halaman: 9 1.4 Tujuan dan Manfaat Penelitian Tujuan dari perancangan aplikasi ini adalah sebagai berikut: 1. Merancang suatu aplikasi pengamanan data dengan algoritma kriptografi knapsack dalam bentuk enkripsi dan deskripsi pada suatu data atau informasi. 2. Menerapkan algoritma Knapsack dalam pengamanan data pada suatu aplikasi perangkat lunak. 3. Merancang suatu aplikasi proses pengamanan data dalam bentuk kriptografi. Manfaat yang diharapkan dalam penyusunan skripsi ini adalah: Sebagai salah satu aplikasi yang dapat melakukan proses pengamanan suatu data. 2. LANDASAN TEORI 2.1 Kriptografi Kriptografi (cryptography) berasal dari bahasa Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data (Menezes, Oorschot and Vanstone, 1996). secara umum kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan berita (bruce Schneier - Applied Cryptography). 2.2. Algoritma kunci simetri Algoritma kunci simetri mengacu pada metode enkripsi yang dalam hal ini baik pengirim maupun penerima memiliki kunci yang sama. Algoritma kunci simetri modern beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua kategori: 1. Cipher aliran (stream cipher) Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan/dideskripsikan bit per bit. Cipher aliran mengenkripsi satu bit setiap kali. 2. Cipher blok (block cipher) Algoritma kritografi beroperasi pada plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blokblok bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8 karakter setiap kali enkripsi (1 karakter = 8 bit dalam pengkodean ASCII). Cipher blok mengenkripsi satu blok bit setiap kali. Sumber: Rinaldi Munir, 2006. Halaman:102. 2.3. Jenis-Jenis Cipher Aliran Cipher aliran dapat diklasifikasikan kedalam dua jenis berdasarkan status internal yang dijadikan sebagai dasar untuk pembangkit aliran-kunci: 72

1. Synchronous stream cipher Ini adalah jenis cipher aliran dimana aliran kunci independen dari plainteks dan cipherteks, dan aliran bit-bit kunci di-xor kan dengan plainteks (untuk enkripsi) atau cipherteks (untuk deskripsi). Jadi, perubahan status cipher tidak dipengaruhi oleh pesan plainteks maupun cipherteks. Karena dikombinasikan dengan operator XOR, maka cipher jenis ini dinamakan juga cipher aliran aditif. 2. Self-synchronizing stream cipher Ini adalah jenis cipher aliran dimana bit-bit aliran kunci adalah fungsi dari kunci dan beberapa bitcipherteks sebelumnya. Sumber: Rinaldi Munir, 2006. Halaman:107-108 2.3.1. Jenis-jenis cipher blok Pada cipher blok, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama, biasanya 64 bit tapi adakalanya lebih. Enkripsi dilakukan terhahadap blok bit plainteks menggunakan bit-bit kunci yang ukurannya sama dengan ukuran blok plainteks. Algoritma enkripsi menghasilkan blok cipherteks yang berukuran sama dengan blok plainteks. Deskripsi dilakukan dengan cara yang serupa seperti enkripsi. Empat mode operasi yang lazim diterapkan pada sistem blok cipher adalah: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB) Sumber: Rinaldi Munir, 2006. Halaman:116-119. 2.4. Kriptografi Kunci Publik Sampai akhir tahun 1975, hanya ada kriptografi kunci simetri. Karena kriptografi simetri menggunakan kunci yang sama untuk enkripsi dan deskripsi, maka hal ini mengimplikasikan dua pihak yang berkomunikasi saling mempercayai. Kedua pihak harus menjaga kerahasiaan kunci. Satu masalah kritis didalam sistem kriptografi kunci-simetri adalah cara mendistribusikan kunci. Baik pengirim maupun penerima harus berbagi kunci yang sama. Bagaimana mereka mengirimkan kunci satu sama lain? Mengirim kunci dari pengirim ke penerima melalui saluran publik seperti melalui pos, telepon, internet, dan sebagainya jelas tidak aman, karena pihak lawan dapat menyadap kunci selama transmisi. Oleh karena itu kunci harus dikirim melalui saluran kedua yang benar-benar aman misalnya melalui kurir atau bertemu pada tempat yang ditentukan untuk membagi kunci. Masalah ini dipecahkan oleh Diffie dan Hellman dengan mengusulkan kriptografi nirsimetri (asymmetric cryptosystem) yang memungkinkan pengguna berkomunikasi secara aman tanpa perlu berbagi kunci rahasia. Nama lainnya adalah kriptografi kunci publik (public-key cryptography), sebab kunci untuk enkripsi diumumkan kepada publik sehingga dapat diketahui oleh siapapun, sementara kunci untuk deskripsi hanya diketahui oleh penerima pesan. Kriptografi kunci publik dapat dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukkan surat. Keuntungan kriptografi kunci publik tidak ada kebutuhan untuk mendistribusikan kunci private sebagaimana pada kriptografi simetri. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan. Kriptografi kunci publik berkembang menjadi besar dan menjadi revolusi baru dalam sejarah kriptografi. Tidak seperti kriptografi kunci simetri yang didasarkan pada substitusi dan permutasi, kriptografi kunci publik didasarkan pada fungsi matematika. Jika kekuatan kriptografi kunci simetri terletak pada panjang kuncinya yang membutuhkan usaha sangat besar untuk menemukan kunci, maka kriptografi kunci publik kekuatannya terletak pada sulitnya memecahkan masalah matematis seperti pemfaktoran dan logaritma diskrit. Kriptografi kunci publik mempunyai aplikasi yang lebih luas daripada kriptografi kunci simetri, yaitu menjaga kerahasiaan, otentikasi, dan pertukaran kunci. Sumber: Rinaldi Munir, 2006. Halaman: 171-172 2.5. Algoritma Knapsack Algoritma knapsack adalah algoritma kriptografi kunci publik yang keamanannya terletak pada sulitnya memecahkan persoalan knapsack (knapsack problem). Knapsack artinya karung/kantung. Karung mempunyai kapasitas muat terbatas. Barang-barang dimasukkan kedalam karung hanya sampai batas kapasitas makimum karung saja. Sumber: Rinaldi Munir, 2006. Halaman: 188 a. Knapsack Problem Didalam teori algoritma, persoalan knapsack termasuk kedalam kelompok NP-complete. Persolan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polinonimial. Misalkan diberikan bobot knapsack M. diketahui n buah objek yang masing-masing bobotnya adalah w1,w2,,wn. Tentukan bi sedemikian sehingga M = b1w1 +.. b n w n Yang dalam hal ini, b1 bernilai 0 atau 1, jika b1=1, berarti objek i dimasukkan kedalam knapsack, sebaliknya jika bi=0, objek i tidak dimasukkan. Sumber: Rinaldi Munir, 2006. Halaman: 188 b. Algoritma Knapsack Sederhana Ide dasar dari algoritma kriptografi knapsack adalah mengkodekan pesan sebagai rangkaian solusi dari persoalan knapsack. Setiap bobot wi didalam persoalan knapsack merupakan kunci private, sedangkan bit-bitplainteks menyatakan bi. Misalkan n= 6 dab w1 = 1, w2 = 5, w3 = 6, w4 = 11, w5 = 14, dan w6 = 20. Plainteks: 111001010110000000011000 73

Plainteks dibagi menjadi blok yang panjangnya n, kemudian setiap bit didalam blok dikalikan dengan wi yang berkoresponden. Sayangnya, algoritma knapsack sederhana diatas hanya dapat digunakan untuk enkripsi, tetapi tidak dirancang untuk deskripsi. Sumber: Rinaldi Munir, 2006. Halaman: 189 2.6. Superincreasing Knapsack Superincreasing Knapsack adalah persoalan knapsack yang dapat dipecahkan dalam orde 0(n). ini adalah persoalan knapsack yang mudah sehingga tidak disukai untuk dijadikan sebagai algoritma kriptografi yang kuat. Jika senarai bobot disebut barisan superincreasing, maka kita dapat membentuk superincreasing knapsack. Barisan superincreasing knapsack adalah suatu barisan dimana setiap nilai didalam barisan lebih besar daripada jumlah semua nilai sebelumnya. Solusi dari superincresing knapsack yaitu (b1,b2,..bn) mudah dicari sebagai berikut (berarti sama dengan mendeskripsikan cipherteks menjadi plainteks semula): 1. Jumlahkan semua bobot didalam barisan. 2. Bandingkan bobot total dengan bobot terbesar didalam barisan, jika bobot terbesar lebih kecil atau sama dengan bobot total, maka ia dimasukkan kedalam knapsack, jika tidak, maka ia tidak dimasukkan. 3. Kurangi bobot total dengan bobot yang telah dimasukkan, kemudian bandingkan bobot total sekarang dengan bobot terbesar selanjutnya. Demikian seterusnya sampai seluruh bobot didalam barisan selesai dibandingkan. 4. Jika bobot total menjadi nol, maka terdapat solusi persoalan superincreasing knapsack, tetapi jika tidak nol, maka tidak ada solusinya. Sumber: Sumber: Rinaldi Munir, 2006. Halaman: 189-190 2.7. Algoritma Knapsack Kunci Publik Algoritma superincreasing knapsack adalah algoritma yang lemah, karena cipherteksnya dapat dideskripsi menjadi plainteksnya secara mudah dalam waktu lanjar (0(n)). Algoritma non-superincreasing knapsack atau normal knapsack adalah kelompok algoritma knapsack yang sulit dari segi komputasi karena membutuhkan waktu dalam orde eksponensial untuk memecahkannnya. Namun, superincreasing knapsack dapat dimodifikasin menjadi nonsuperincreasing knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci privat (untuk deskripsi). Kunci publik merupakan barisan nonsuperincreasing sedangkan kunci private tetap merupakan barisan superincreasing. Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle. a. Algoritma untuk membangkitkan kunci publik dan kunci privat: 1. Tentukan barisan superincreasing. 2. Kalikan setiap elemen didalam barisan tersebut dengan n modulo m. modulus m seharusnya angka yang lebih besar daripada jumlah semua elemen didalam barisan, sedangka pengali n seharusnya tidak mempunyai factor persekutuan dengan m. 3. Hasil perkalian akan menjadi kunci publik sedangkan barisan superincreasing semula menjadi kunci private. b. Enkripsi: Enkripsi dilakukan dengan cara yang sama seperti algoritma knapsack sebelumnya. Mulamula plainteksnya dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Kalikan setiap bit didalam blok dengan elemen yang berkoresponden didalam kunci publik. Sumber: Rinaldi Munir, 2006. Halaman: 191-193 Enkripsi knapsack Merkle-Hellman mencoba untuk menyembunyikan suatu kejadian yang mudah dipecahkan tentang problem subset sum. Istilah knapsack sesungguhnya merupakan istilah yang tidak cocok karena sistem ini bersandar pada problem subset sum yang ditunjukkan dibawah ini: Problem subset sum: Jika I = (s 1, s n, T), dimana s 1, s n dan T adalah bilangan bulat positif. S 1 disebut sizes dan T disebut dengan target sum. Algoritma untuk memecahkan problem subset sum dapat dituliskan sebagai berikut: Input: Suatu barisan superincreasing (sangat naik) (s 1,. s n ) dan integer T yang merupakan jumlah dari subset s 1 Output: (x 1,. x n ) dimana x 1 {0.1} sehingga demikian 1. For I = downto 1do 2. If T s i then 3. T-T= s i 4. x i =1 5. else 6. x i = 0 untuk K = (s, p, a, t) didefenisikan e k (x 1,..x n ) = untuk 0 y n (p -1). Didefenisikan z = a -1 y mod p dan penyelesaian problem subset sum (s I, s n, z) akan diperoleh d k = (x i, x n ). Secara singkat dapat dituliskan sebagai berikut: 1. pilih barisan angka yang sangat naik (s i, s n ) dan modulus p sedemikian sehingga p>s1 + s2 +. + bn 2. pilih secara acak bilangan bulat a, 1 a p 1 sedemikian sehingga gcd(a.p) = 1. 74

3. Hitung t i = as i mod p untuk I = 1,2, n. sebagai kunci umum. Kunci umum ini yang akan digunakan untuk mengenkripsi suatu pesan. Sumber: Dony Ariyus, 2008. Halaman: 263-264 Sumber website: books.google.co.id/books?isbn=9792904778 c. Deskripsi Deskripsi dilakukan dengan menggunakan kunci private. Mula-mula penerima pesan mengitung n -1, yaitu invers n modulo m, sedemikian sehingga n. n -1 1 (mod m). kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut: n.n -1 1 (mod m) n.n -1 = 1 + km n n -1 = (1+ km)/ n, ksembarang bilangan bulat. Kalikan setiap kriptogram dengan n -1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen penjumlahan kunci private untuk memperoleh plainteks dengan menggunakan algoritma pencarian solusi superincreasing knapsack. Sumber: Rinaldi Munir, 2006. Halaman: 191-193 3. ANALISA 3.1. Analisis Masalah Tahap Analisa sistem merupakan kegiatan penguraian dari suatu sistem informasi yang utuh ke dalam bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan permasalahan, kesempatan kesempatan, hambatan hambatan yang terjadi dan kebutuhan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikannya a. Mengidentifikasi Masalah Identifikasi masalah merupakan langkah awal dari analisa sistem. Dalam tahap ini didefinisikan masalah yang harus dipecahkan dengan munculnya pertanyaan yang ingin dipecahkan. b. Memahami Kerja Sistem yang Ada Langkah ini dilakukan dengan mempelajari secara rinci bagaimana sistem yang sudah ada berjalan.untuk mempelajari operasi dari sistem ini diperlukan data yang dapat diperoleh dengan melakukan penelitian terhadap sitem. c. Menganalisis Sistem Berdasarkan data yang sudah diperoleh maka dilakukan analisa hasil penelitian yang sudah dilakukan untuk mendapatkan pemecahan masalah yang akan dipecahkan d. Membuat Laporan Laporan perlu dibuat sebagai dokumentasi dari penelitian.tujuan utamanya adalah sebagai bukti secara tertulis tentang hasil analisa yang sudah dilakukan. 3.2 Analisa Algoritma Dalam matematika dan komputasi, algoritma atau algoritme merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan ( logika Boolean dan perbandingan) sampai tugasnya selesai. Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama. Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. a. Pembahasan Algoritma a. Proses Enkripsi Pesan yang akan dikirim atau plaintext adalah RANTO. Barisan superincreasing: 1, 6, 13, 27, 60, 135, 280, 567 n = 89 m = 1093 k (sembarang bilangan bulat) = 32 n -1 = (1 + k.m)/m = (1 + 32.1093)/ 89 = 393 n -1 = 393 kunci umum = barisan superincreasing * n mod m 1 x 89 mod 1093 = 89 6 x 89 mod 1093 = 534 13 x 89 mod 1093 = 64 27 x 89 mod 1093 = 217 60 x 89 mod 1093 = 968 135 x 89 mod 1093 = 1085 280 x 89 mod 1093 = 874 567 x 89 mod 1093 = 185 Konversi plaintext kedalam biner berdasarkan kode ASCII 8 bit R = 01010010 A = 01000001 N = 01001110 T = 01010100 O = 01001111 75

C otal penjumlahan dari k u *p i mod m = 638625 mod 1093 = 313 Gambar 1 : Tabel Permutasi Ciphertext dari RANTO = 1625 719 3461 1836 3646 b. Proses Deskripsi 1. p i = n -1 * y mod m 2. bandingkan bobot total dengan bobot terbesar didalam superincreasing 3. jika bobot terbesar lebih kecil atau sama dengan bobot total, maka ia dimasukkan kedalam knapsack jika tidak, maka ia tidak dimasukkan. 4. Kurangi bobot total dengan bobot yang telah dimasukkan, kemudian bandingkan bobot total berikutnya, demikian seterusnya. P 1 = 393 * 1625 mod 1093 313 < 567 567 = t 313 > 280 280 = y 313 280 = 33 33 < 135 135 = t 33 < 60 60 = t 33 > 27 27 = y 33 27 = 6 6 6 1, 0, 0, 1, 0 0, 1, 0, 1, 0, 0, 1, 0 = R P 2 = 393 * 719 mod 1093 = 282567 mod 1093 = 573 573 < 567 567 = y 573 567 = 6 6 < 280 280 = t 5 135 = t 6 < 60 60 = t 6 < 27 27 = t 6 6 0, 0, 0, 0, 1 0, 1, 0, 0, 0, 0, 0, 1 = A P 3 = 393 * 3461 mod 1093 = 1360173 mod 1093 = 481 76

481 < 567 567 = t 481 > 280 280 = y 481 280 = 201 201 > 135 135 = y 201 135 = 66 66 > 60 60 = y 66 60 = 6 6 < 27 27 = t 6 6 0, 1, 1, 1, 0 0, 1, 0, 0, 1, 1, 1, 0 = N P 4 = 393 * 1836 mod 1093 = 721548 mod 1093 = 168 168 < 567 567 = t 168 < 280 280 = t 168 > 135 135 = y 168 135 = 33 33 < 60 60 = t 33 > 27 27 = y 33 27 = 6 6 6 1, 0, 1, 0, 0 0, 1, 0, 1, 0, 1, 0, 0 = T 1048 567 = 481 481 > 280 280 = y 481 280 = 201 201 > 135 135 = y 201 135 = 66 66 > 60 60 = y 66 60 = 6 6 < 27 27 = t 6 6 0, 1, 1, 1, 1 0, 1, 0, 0, 1, 1, 1, 1 = O Keterangan: t = 0 y = 1 b. Perancangan Flowchart 1. Flowchart Enkripsi Gambar 2 2. Flowchart Dekripsi Flowchart Enkripsi P 5 = 393 * 3646 mod 1093 = 1432878 mod 1093 = 1048 1048 > 567 567 = y 77

Gambar 3 : Flowchart Deskripsi 4. Implementasi Sistem Implementasi sistem adalah suatu proses untuk menempatkan informasi baru kedalam operasi. Dalam hal ini, menurut Whitten, Bentley & Barlow, 1993, Implementasi Sistem mempunyai empat tahap, yaitu : a. Membuat dan menguji basis data dan jaringan. Penerapan sistem yang baru atau perbaikan sistem dibuat pada basis data dan jaringan yang telahada. Jika penerapan sistem yang baru memerlukan basis data dan jaringan yang baru atau dimodifikasi, maka sistem yang baru ini biasanya harus diimplementasikan sebelum pemasangan program komputer. b. Membuat dan menguji program. Merupakan tahap pertama untuk siklus pengembangan sistem yang spesifik bagi programer. Bertujuan untuk mengembangkan rencana yang lebih rinci dalam pengembangan dan pengujian program komputer yang baru. c. Memasang dan menguji sistem baru. Tahap ini dilakukan untuk menyakinkan bahwa kebutuhan integrasi sistem baru terpenuhi. d. Mengirim sistem baru kedalam sistem operasi. Tujuan tahap ini adalah untuk mengubah secara perlahan lahan sistem lama menjadi sistem baru sehingga perlu dilakukan pemasangan basis data yang akan digunakan pada sistem baru. 4. Algoritma Enkripsi Dan Dekripsi Kriptografi Nirsimeti Kriptografi nirsimetri adalah kriptografi yang memiliki dua buah kunci yang masing-masing, kunci publik yaitu kunci untuk melakukan proses enkripsi dan kunci private yaitu kunci untuk melakukan proses dekripsi. Untuk algoritma enkripsinya dapat dilihat sebagai berikut C = E ( P, K publik ) Input : P, K publik Proses : E = P, K publik Output : C Untuk algoritma dekripsinya sebagai berikut: P = D (C, K private ) Input : C, K private Proses : D = C,K private Output : P Keterangan: P = Plainteks K publik = kunci umum (untuk enkripsi) K private = kunci rahasia (untuk dekripsi) C = ciphertext E = enkripsi D = dekripsi a. Proses Enkripsi Input : Text = RANTO Key publik = 89 534 64 217 968 1085 874 185 Proses : K publik * P i Mod m (rumus enkripsi algoritma knapsack) Output : Cipher text = 1625719346118363646 Gambar 4 : Tampilan Enkripsi b. Proses Dekripsi Input : Text = 1625719346118363646 Key private = 1 6 13 27 60 135 280 567 Proses : K private = n -1 = (1 + km) / n (algoritma dekripsi superincreasing knapsack) Output : Cipher text = RANTO 78

Gambar 5: Tampilan Dekripsi 5. KESIMPULAN DAN SARAN 5.1. Kesimpulan Proses pengaman data dengan menggunakan algoritma Knapsack pada suatu aplikasi perangkat lunak dapat dirancang dan diimplementasikan. Tetapi pada dasarnya aplikasi ini adalah sebuah aplikasi encryption of data at-rest yaitu aplikasi enkripsi dokumen yang disimpan didalam storage, karena proses enkripsi pada aplikasi ini hanya dapat dilakukan dengan huruf, angka, atau simbol yang terdapat pada tombol keyboard computer aplikasi ini diinstal. 5.2. Saran Setelah mempelajari, menganalisa dan merancang aplikasi perangkat lunak kriptografi algoritma knapsack kunci publik, penulis menyarankan demi kemajuan pengembangan algoritma knapsack, jenis teks yang bisa dienkripsi dalam sebuah program aplikasi tidak hanya jenis teks yang berformat *.txt. dan jenis kunci yang dibutuhkan baik untuk enkripsi maupun dekripsi bisa berbentuk huruf. DAFTAR PUSTAKA 1. Rinaldi Munir. (2006). Kriptografi, Bandung: Informatika bandung. 2. Drs. Suarga, M.Sc., M.Math., Ph. D. (2006). Algorima Pemograman, Yogyakarta: Andi 3. Hellriegel, Slocum (1996). Pengantar Pengurusan, Juli, 15, 2013. sumber: www.google.co.id/search?q=pengantar+pengur usan&btng=telusuri+buku+tbm=bks+tbo=1&h l=id). 4. Mihael J.Moran dan Horward N.Shapiro. (2004). Termodinamika Teknik, jilid 1 edisi 4. sumber: www.books.google.co.id/books?isbn=9797414 159 5. http://id.wikipedia.org/wiki/aplikasi 6. Hendrayudi. (2009) VB 2008 untuk berbagai keperluan Pemograman, Jakarta: PT Elex Media Komputindo. sumber: www.books.google.co.id/books?isbn=9792745 769 7. David khan. The Code-breakers, sumber: books.google.co.id/books?isbn=1439103550 8. Sunarto, S.kom. Teknologi Informasi dan Komunikasi IX, sumber: books.google.co.id/books?isbn 9. Http://Www.Braingle.Com/Brainteasers/Codes /Scytale.Php. Juli 15 2013 10. http://www.theexposernewspaper.com/uncateg orized/2012/06/13/codes-and-ciphers- 3618ywqbhsjxbhcdsvudstgjhbehwdschkxjksd_ 73q91esss433_21/. Juli 15 201 11. Skema enkripsi dan dekripsi dengan menggunakan kunci. Sumber: http://norriantoarif.blogspot.com/2012/05/kriptografi.html. Juli 15 2013 12. kriptografi dan kriptanalisis. Sumber: http://ilmi28.blogspot.com/2011/03/kriptologisimetris-kriptologi.html 13. Wiryanto Dewobroto, 2005. Aplikasi Rekayasa Konstruksi dengan Visual Basic 6.0, Jakarta: PT.Elex Media Komputindo. Sumber: books.google.com/books?isbn=9792078762 14. Yahya Kurniawan, S.T, 2005, Kiat Praktis Menguasai Action Script 2.0 Flash MX 2004, Jakarta: PT Elex Media Komputindo. Sumber: books.google.com/books?isbn=9792076468 15. Ema Utami, S.Si., M.Kom. Suswanto Raharjo, S.Si, M.Kom, 2004, Logika algoritma dan implementasinya dalam bahasa phyton di GNU/Linux, Yogyakarta: Andi Offset. Sumber website: books.google.co.id/books?isbn=979731443x 16. Drs. Suarga, M.Sc., M.Math., Ph. D, 2006, Algorima Pemograman, Yogyakarta: Andi 17. Dony Ariyus, 2008, Pengantar Ilmu Kriptografi: teori analisis dan implementasi, Yogyakarta: Andi Sumber: books.google.co.id/books?isbn=9792904778 18. books.google.co.id/books?isbn=979763004 19. books.google.co.id/books?isbn=97976300 20. http://id.wikipedia.org/wiki/ascii. 29 juli 2013 21. http://www.ascii-code.com/29 juli 2013 22. Madcoms, 2010. Mahir dalam 7 hari: Microsoft Visual Basic 6.0 + Crystal Report 2008, Yoqyakarta: Andi Sumber website: books.google.co.id/books?isbn=9792914153 23. Toolbar Standar. Sumber: http://www.rbittec.com/vblect1.htm. 29 juli 2013 24. Toolbox. Sumber:http://www.computingstudents.com/pr ogramming/vb/tutorial/controls_toolbar.php. 29 juli 2013 25. Muzammil Sanusi, 2010. The Genius Hacking sang pembobol data, Jakarta: elex media komputindo Sumber website: books.google.co.id/books?isbn=9792774475 79