• Tidak ada hasil yang ditemukan

207257567 Eko Hari Rachmawanto Lengkap sekali

N/A
N/A
Protected

Academic year: 2018

Membagikan "207257567 Eko Hari Rachmawanto Lengkap sekali"

Copied!
97
0
0

Teks penuh

(1)

LAPORAN TUGAS AKHIR

TEKNIK KEAMANAN DATA MENGGUNAKAN

KRIPTOGRAFI DENGAN ALGORITMA VERNAM CHIPER

DAN STEGANOGRAFI DENGAN METODE END OF FILE

(EOF)

Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Teknik Informatika S-1 pada Fakultas Ilmu Komputer

Universitas Dian Nuswantoro Disusun oleh:

Nama : Eko Hari Rachmawanto

NIM : A11.2006.02767

Program Studi : Teknik Informatika ( S-1 )

FAKULTAS ILMU KOMPUTER

UNIVERSITAS DIAN NUSWANTORO

SEMARANG

(2)

PERSETUJUAN LAPORAN TUGAS AKHIR

Nama Pelaksana : Eko Hari Rachmawanto NIM : A11.2006.02767

Program Studi : Teknik Informatika Fakultas : Ilmu Komputer

Judul Tugas Akhir : Teknik Keamanan Data Menggunakan Kriptografi dengan Algoritma Vernam Chiper dan Steganografi

dengan Metode End of File (EoF)

Tugas Akhir ini telah diperiksa dan disetujui,

Semarang, 14 April 2010

Menyetujui : Pembimbing

M. Arief Soelaeman, M. Kom

Mengtahui :

Dekan Fakultas Ilmu Komputer

(3)

PENGESAHAN DEWAN PENGUJI

Nama : Eko Hari Rachmawanto

NIM : A11.2006.02767

Program Studi : Teknik Informatika Fakultas : Ilmu Komputer

Judul Tugas Akhir : Teknik Keamanan Data Menggunakan Kriptografi dengan Algoritma Vernam Chiper dan Steganografi dengan Metode End of File (EoF)

Tugas akhir ini telah diujikan dan dipertahankan dihadapan Dewan Penguji pada Sidang Tugas Akhir bulan 14 April 2010. Menurut pandangan kami, tugas akhir ini memadai dari segi kualitas maupun kuantitas untuk tujuan penganugrahan gelar Sarjana Komputer (S. Kom)

Semarang, 14 April 2010 Dewan Penguji

Slamet Sudaryanto, M.Kom Edi Faisal, M.Kom

Anggota Anggota

(4)

PERNYATAAN KEASLIAN TUGAS AKHIR

Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan dibawah ini, saya :

Nama : Eko Hari Rachmawanto NIM : A11.2006.02767

Menyatakan bahwa karya ilmiah saya yang berjudul :

TEKNIK KEAMANAN DATA MENGGUNAKAN KRIPTOGRAFI

DENGAN ALGORITMA VERNAM CHIPER DAN STEGANOGRAFI DENGAN METODE END OF FILE (EOF)

Merupakan karya asli saya (kecuali cuplikan dan ringkasan yang masing-masing telah saya jelaskan sumbernya). Apabila di kemudian hari, karya disinyalir bukan merupakan karya asli saya, yang disertai dengan bukti-bukti yang cukup, maka saya bersedia untuk dibatalkan gelar saya beserta hak dan kewajiban yang melekat pada gelar tersebut. Demikian surat pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Semarang

Pada tanggal : 13 April 2010 Yang menyatakan

(5)

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH

UNTUK KEPENTINGAN AKADEMIS

Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan dibawah ini, saya :

Nama : Eko Hari Rachmawanto NIM : A11.2006.02767

Demi mengembangkan Ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Dian Nuswantoro Hak Bebas Royalti Non-Ekskusif (non-exclusif Royalti-Free Right) atas karya ilmiah saya yang berjudul :

TEKNIK KEAMANAN DATA MENGGUNAKAN KRIPTOGRAFI

DENGAN ALGORITMA VERNAM CHIPER DAN STEGANOGRAFI DENGAN METODE END OF FILE (EOF)

beserta perangkat yang diperlukan (bila ada). Dengan Hak Bebas Royalti Non-Ekseklusif ini Universitas Dian Nuswantoro berhak untuk menyimpan, mengcopy ulang (memperbanyak), menggunakan, mengelolanya dalam bentuk pangkalan data (database), mendistribusikannya dan menampilkan/mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya selama tetap mencantumkan nama saya sebagai penulis/pencipta.

Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak Universitas Dian Nuswantoro, segala bentuk tuntutan hukum yang timbul atas pelanggaran Hak Cipta dalam karya ilmiah saya ini.

Demikian surat pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Semarang Pada tanggal : 13 April 2010 Yang menyatakan

(6)

UCAPAN TERIMA KASIH

Dengan memanjatkan puji syukur kehadirat Allah, Tuhan yang Maha Pengasih dan Maha Penyayang yang telah melimpahkan segala rahmat-Nya kepada penulis sehingga laporan Tugas Akhir dengan judul “Teknik Keamanan Data Menggunakan Kriptografi dengan Algoritma Vernam Chiper dan Steganografi dengan Metode End of File (EoF)” dapat penulis selesaikan sesuai dengan rencana karena dukungan dari berbagai pihak yang tidak ternilai besarnya. Oleh karena itu penulis menyampaikan terima kasih kepada :

1. Dr. Ir. Edi Noersasongko, M.Kom, selaku Rektor Universitas Dian Nuswantoro Semarang.

2. Dr.Eng.Yuliman Purwanto,M.Eng, selaku Dekan Fakultas Ilmu Komputer Universitas Dian Nuswantoro Semarang.

3. Ayu Pertiwi, S. Kom.,M.T, selaku Ka.Progdi Teknik Informatika

4. M. Arief Soelaeman, M.Kom, selaku pembimbing tugas akhir yang memberikan semangat, dukungan, membantu pemunculan ide penelitian, memberikan informasi referensi yang penulis butuhkan dan bimbingan yang berkaitan dengan penelitian penulis.

5. Dosen-dosen pengampu pada Fakultas Ilmu Komputer Teknik Informatika Universitas Dian Nuswantoro Semarang yang telah memberikan ilmu dan pengalamannya masing-masing, sehingga penulis dapat mengimplementasikan ilmu yang telah disampaikan.

6. Teman-teman seperjuangan angkatan 2006, yang telah memberikan semangat dan dukungan dalam penyelesaian Tugas Akhir ini.

Semoga Tuhan Yang Maha Esa memberikan balasan yang lebih besar kepada beliau-beliau, dan pada akhirnya penulis berharap bahwa penulisan laporan tugas akhir ini dapat bermanfaat dan berguna sebagaimana fungsinya.

(7)

ABSTRAK

Seiring dengan perkembangan zaman, kebutuhan manusia meningkat, terutama kebutuhan akan informasi. Oleh sebab itu, pengiriman dan penyimpanan data memerlukan suatu proses yang mampu menjamin keamanan dan keutuhan dari data tersebut.

Untuk menjamin keamanan dan keutuhan dari suatu data, dibutuhkan suatu proses penyandian. Enkripsi dilakukan ketika data akan dikirim. Proses ini

akan mengubah suatu data asal menjadi data rahasia yang tidak dapat dibaca. Sementara itu, proses dekripsi dilakukan oleh penerima data yang dikirim tersebut. Data rahasia yang diterima akan diubah kembali menjadi data asal.

Dengan cara penyandian tadi, data asli tidak akan terbaca oleh pihak yang tidak berkepentingan, melainkan hanya oleh penerima yang memiliki kunci

dekripsi. Didorong oleh kegunaan yang penting tadi, teknik (algoritma)

penyandian telah berkembang sejak zaman dahulu kala. Mulai dari era sebelum masehi, hingga sekarang algoritma penyandian ini selalu berkembang.

File merupakan salah satu media yang digunakan sebagai penympanan data pada era komputer sekarang ini. Banyak orang mengirim atau menerima file sebagai komunikasi jarak jauh.

Salah satu usaha untuk mengamankan file yaitu dengan mengimplementasikan kriptografi untuk penyandian data, contohnya adalah

algoritma Vernam Cipher. Sebagai contoh sistem kriptografi simetri, algoritma ini

cukup mampu untuk mengamankan informasi termasuk file. Sehingga algoritma ini dapat digunakan untuk mengamankan file.

Dalam hal ketajaman dalam keamanan, diperlukan teknik penyembunyian file ke dalam file lain yang sering kita sebut dengan steganografi. Hal ini untuk

mengurangi kecurigaan pihak yang tidak berkepentingan untuk mengolah file. Pada hal ini digunakan teknik penyembunyian file dengan metode End of File

supaya tidak terlihat secara jelas.

Dengan berdasar pada algoritma Vernam Cipher dan End of File, maka

dibuatlah program aplikasi kriptosistem yang digunakan untuk melakukan

pengamanan file sehingga hanya orang-orang tertentu saja yang dapat mengolah file.

Kata kunci: file, penyandian, kriptosistem, steganografi, algoritma, Vernam Cipher, End of File.

(8)

DAFTAR ISI

HALAMAN SAMPUL DALAM ... i

HALAMAN PERSETUJUAN ... ii

HALAMAN PENGESAHAN ... iii

HALAMAN PERNYATAAN KEASLIAN TUGAS AKHIR ... iv

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI ... v

HALAMAN UCAPAN TERIMA KASIH ... vi

HALAMAN ABSTRAK ... vii

HALAMAN DAFTAR ISI... viii

HALAMAN DAFTAR TABEL ... xii

HALAMAN DAFTAR GAMBAR ... xiii

BAB I PENDAHULUAN 1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 3

1.3 Batasan Masalah ... 3

1.4 Tujuan Penelitian ... 3

(9)

BAB II TINJAUAN PUSTAKA

2.1. Data dan Informasi ... 5

2.2. Pengertian File ... 5

2.3 Kode ASCII ... 6

2.4 Operator Logika ... 10

2.4.1 Operator XOR (Exclusive OR) ... 11

2.5 Kriptografi ... 11

2.5.1 Gambaran Umum Kriptografi ... 11

2.5.2 Tujuan Kriptografi ... 14

2.6 Pola-pola Penyerangan Data ... 15

2.7 Enkripsi dan Dekripsi ... 16

2.8 Algoritma Kriptografi ... 17

2.9 Algoritma Kriptografi Modern ... 21

2.9.1 Algoritma Subtitusi ... 22

2.9.2 Algoritma Transposisi ... 23

2.9.3 Book Key Chiper ... 23

2.9.4 Vernam Chiper ... 24

2.10 Jenis Serangan terhadap Chiper Aliran ... 27

2.11 Steganografi ... 28

2.12 Metode Steganografi ... 30

(10)

2.12.2 Metode Steganografi pada Gambar ... 33

2.12.3 Metode Steganografi pada Suara ... 34

2.12.4 Metode End of File (EoF) ... 36

2.13 Microsoft Visual Basic 6.0 ... 36

2.14 Unified Modelling Language (UML) ... 40

BAB III METODOLOGI PENELITIAN 3.1 Metode Pengumpulan Data ... 45

3.2 Metode Pengembangan Sistem ... 45

3.3 Fase-fase Pengembangan Sistem ... 46

3.4 Kekurangan dan Kelebihan Pengembangan Sistem ... 48

3.4.1 Kekurangan RAD ... 48

3.4.2 Kelebihan RAD ... 49

3.5 Kondisi Pengembangan Sistem ... 49

3.5.1 Kondisi yang Sesuai dengan RAD ... 49

3.5.2 Kondisi yang Tidak Sesuai dengan RAD ... 50

BAB IV PERANCANGAN DAN HASIL IMPLEMENTASI 4.1 Analisa Kebutuhan Aplikasi ... 51

4.2 Prosedur Persiapan Pembuatan Aplikasi ... 52

(11)

4.4 Desain Input Output (I/O) ... 60

4.4.1 Desain I/O Submenu Stego... 62

4.4.2 Desain I/O Submenu Unstego ... 62

4.4.3 Desain I/O Submenu About Us ... 63

4.5 Implementasi ... 63

4.6 Analisa Percobaan ... 65

4.7 Pengujian Program (Testing) ... 68

4.7.1 Pengujian GUI / Black Box Testing ... 69

4.7.2 Pengujian White Box Testing ... 69

4.8 Kuesioner ... 72

BAB V PENUTUP 5.1 Kesimpulan ... 75

5.2 Saran ... 75

DAFTAR PUSTAKA ... 76

(12)

DAFTAR TABEL

Tabel 2.1 Kode ASCII ... 7

Tabel 2.2 Tabel Operator Logika ... 10

Tabel 2.3 Tabel Nilai Kebenaran Operator XOR ... 11

Tabel 4.1 Skenario Use Case Proses Kripto dan Stego ... 53

Tabel 4.2 Skenario Use Case Proses Unkripto dan Unstego... 55

Tabel 4.3 Daftar Aspek Pengujian ... 67

Tabel 4.4 Ringkasan Hasil Pengujian ... 67

Tabel 4.5 Tabel Kuesioner ... 73

(13)

DAFTAR GAMBAR

Gambar 2.1 Struktur File ... 6

Gambar 2.2 Skenario Komunikasi Dasar Kriptografi ... 17

Gambar 2.3 Ilustrasi Kinerja Proses Enkripsi Konvensional ... 19

Gambar 2.4 Klasifikasi Kriptografi ... 21

Gambar 2.5 Tampilan Tool Box ... 37

Gambar 2.6 Tool Textbox ... 37

Gambar 2.7 Tool Combobox ... 38

Gambar 2.8 Tool Command ... 38

Gambar 2.9 Tampilan Properties ... 39

Gambar 2.10 Tampilan Window Code Editor ... 39

Gambar 2.11 Notasi Actor ... 40

Gambar 2.12 Notasi Class ... 41

Gambar 2.13 Notasi Use Case ... 41

Gambar 2.14 Notasi Package ... 43

Gambar 2.15 Notasi Note ... 43

Gambar 2.16 Notasi Dependency ... 43

Gambar 2.17 Notasi Association ... 44

Gambar 2.18 Notasi Generalization ... 44

Gambar 2.19 Notasi Realization ... 44

(14)

Gambar 4.1 Use Case Kripto dan Stego ... 55

Gambar 4.2 Class Diagram Kripto dan Stego ... 55

Gambar 4.3 Activity Diagram Kripto dan Stego ... 56

Gambar 4.4 Activity Diagram Unkripto dan Unstego ... 57

Gambar 4.5 Activity Diagram Enkripsi dan Dekripsi ... 57

Gambar 4.6 Activity Diagram Stego pada File ... 58

Gambar 4.7 Activity Diagram Unstego pada File ... 58

Gambar 4.8 Sequence Diagram Kripto dan Stego ... 59

Gambar 4.9 Sequence Diagram Unkripto dan Unstego ... 60

Gambar 4.10 Storyboard Menu Utama ... 61

Gambar 4.11 Storyboard Submenu Stego ... 62

Gambar 4.12 Storyboard Submenu Unstego ... 62

Gambar 4.13 Storyboard Submenu About Us ... 63

Gambar 4.14 Tampilan Awal Program ... 64

Gambar 4.15 Tampilan Menu Stego ... 64

Gambar 4.16 Tampilan Menu Unstego ... 65

Gambar 4.17 Tampilan Message Box About Us ... 65

Gambar 4.18 Menu Stego File ... 66

Gambar 4.19 Tampilan MessageBox Setelah Selesai Stego ... 67

Gambar 4.20 Menu Unstego File ... 67

Gambar 4.21 Tampilan MessageBox Setelah Selesai Unstego ... 68

(15)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Teknologi komunikasi dan informasi berkembang dengan pesat dan memberikan pengaruh besar bagi kehidupan manusia. Seiring dengan perkembangan teknologi sekarang ini yang semakin pesat maka proses pengiriman data dapat dilakukan dengan mudah dan melalui berbagai macam media yang telah ada antara lain, melalui media internet dengan menggunakan fasilitas e-mail, melalui transfer data antar perangkat mobile

(handphone, PDA dan flashdisk) maupun dengan teknologi radio

frequency (bluethooth, IrDA, GPRS) hingga dengan menggunakan

jaringan komputer. [1]

Perkembangan yang pesat dalam proses pengiriman data membawa dampak yang besar, yaitu masalah keamanan data yang di kirim. Untuk itu, tidak mungkin mengirim data melalui media-media tersebut secara polos (plain), melainkan harus dilakukan proses

pengamanan untuk data yang akan di kirim, salah satunya dilakukan dengan cara melakukan enkripsi pada sebuah file.

Kriptografi dapat menjadi jawaban dari masalah tersebut. Sebagai

ilmu yang telah diaplikasikan untuk pengamanan data, kriptografi dapat

digunakan untuk mengamankan data-data penting pada sebuah file. Data yang terkandung dalam file disandikan atau dienkripsi untuk diubah menjadi simbol tertentu sehingga hanya orang tertentu saja yang dapat mengetahui isi dari data tersebut.

Dalam perkembangan ilmu kritografi masa sekarang ini, telah

banyak tercipta algoritma-algoritma yang dapat digunakan untuk mengubah data asli (plain text) menjadi simbol tertentu (chiper text). Salah

(16)

dalam algoritma kriptografi modern dan merupakan algoritma stream chiper.

Namun pada era sekarang ini masih di rasa kurang dalam pengamanan data menggunakan kriptografi. Setelah file tersebut di enkripsi, kita perlu melakukan penyembunyian file ke dalam file lain

supaya pihak yang bukan berkepentingan tidak begitu curiga dalam melihat file tersebut. Langkah seperti ini sering disebut dengan

Steganografi.

Steganografi merupakan salah satu cara yang sangat efektif untuk

mengurangi rasa curiga dari pihak-pihak lain (selain pengirim dan penerima yang sah). Kebanyakan algoritma steganografi menggunakan

sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung file.

Dalam perkembangan ilmu steganografi sekarang ini, terdapat

berbagai macam metode yang dapat digunakan untuk menyembunyikan file tersebut. Salah satu contohnya adalah metode End of File (EoF).

Ada sedikit perbedaan antara steganografi dengan kriptografi.

Pada steganografi, penyembunyian atau penyamaran pesan ini dibuat

sedemikian rupa sehingga pihak lain tidak mengetahui bahwa ada pesan lain di dalam pesan yang dikirim. Pesan inti tersebut tetap dipertahankan, hanya dalam penyampaiannya dikaburkan atau disembunyikan dengan berbagai cara. Hanya pihak penerima yang sah saja yang dapat mengetahui pesan lain tersebut.

Sedang pada kriptografi, karakter pesan diubah atau diacak

menjadi bentuk lain yang tidak bermakna. Pesan yang disampaikan dalam

kriptografi menjadi mencurigakan karena ketidakbermaknaannya tersebut.

Sedang pesan dalam steganografi, terlihat seperti pesan biasa sehingga

kecil kemungkinan untuk dicurigai. Namun demikian, bukan berarti tidak ada kekurangan pada steganografi ini. Kelemahan pada steganografi ini

(17)

Ada persamaan diantara steganografi dan kriptografi ini yaitu

keduanya digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.

Berdasar pada analisa dari masalah tersebut, maka penulis mengusulkan judul penelitian “Teknik Keamanan Data Menggunakan

Kriptografi dengan Algoritma Vernam Chiper dan Steganografi dengan

Metode End of File (EoF)” sebagai bahan pertimbangan dalam proses pengamanan data sehingga diharapkan tidak terjadi pencurian atau penyadapan data.

1.2 Rumusan Masalah

Rumusan masalah yang muncul dari latar belakang yang telah di sajikan di atas adalah sebagai berikut :

1. Bagaimana efek perubahan file antara sebelum dan sesudah proses ? 2. Bagaimana pengaruh ukuran data terhadap ukuran media file ?

1.3 Batasan Masalah

Dalam penelitian ini, agar tidak menyimpang dari maksud dan tujuan dari penyusunan tugas akhir ini, maka penulis menitikberatkan pada cara implementasi dari algoritma Vernam Chiper pada Kriptografi

ditambahkan metode End of File pada Steganografi. Aplikasi yang

dihasilkan hanya digunakan untuk membantu menggambarkan proses enkripsi kemudian di sisipkan pada file lain dan dekripsi untuk pengamanan file. Adapun aplikasi tersebut dibangun dengan menggunakan software Microsoft Visual Basic 6.0.

1.4 Tujuan Penelitian

(18)

mengimplementasikan algoritma Vernam Chiper pada Kriptografi

ditambahkan metode End of File pada Steganografi untuk penyandian

berupa enkripsi dan dekripsi data dalam pengamanan file.

1.5 Manfaat Penelitian

Manfaat yang diperoleh dalam penelitian ini adalah : 1. Manfaat bagi Universitas

Sebagai usaha untuk mengamankan sebuah file yang merupakan data penting dimana hanya orang tertentu saja yang berhak mengetahui.

2. Manfaat bagi Akademik

Sebagai bahan acuan bagi akademik untuk dijadikan tolak ukur pemahaman dan penguasaan tentang teori yang telah diberikan di bangku kuliah.

3. Manfaat bagi Penulis

a. Penulis dapat menerapkan ilmu yang telah diperoleh selama kuliah. b. Memberi bekal pengetahuan yang dapat dipergunakan untuk

(19)

BAB II

TINJAUAN PUSTAKA

2.1 Data dan Informasi

Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu pengolahan. Data bisa berwujud suatu keadaan, gambar, suara, huruf, angka, matematika, bahasa ataupun simbol-simbol lainnya yang bisa kita gunakan sebagai bahan untuk melihat lingkungan, objek, kejadian ataupun suatu konsep. [2]

Data merupakan besaran yang menyampaikan suatu arti. Data komputer disimpan sebagai barisan muatan (listrik) yang diatur dalam satu pola sehingga merepresentasikan sebuah informasi. Dengan kata lain data menunjuk pada bentuk informasi (pola elektris). Data bukan merupakan informasi itu sendiri.

Sedang informasi merupakan hasil pengolahan dari sebuah model, formasi, organisasi ataupun suatu perubahan bentuk dari data yang memiliki nilai tertentu dan bisa digunakan untuk menambah pengetahuan bagi yang menerimanya. Informasi juga bisa disebut sebagai hasil pengolahan atau pemrosesan data.

2.2 Pengertian File

File atau Berkas adalah sekumpulan data (informasi) yang berhubungan yang diberi nama dan tersimpan di dalam media penyimpanan sekunder (secondary storage). File memiliki ekstensi.

(20)

java. Pada UNIX bahkan dikenal ada file yang memiliki lebih dari satu ekstensi, contohnya : tar.Z, tar.gz. [1]

Struktur pada file terdiri dari 2 bagian yaitu header file dan isi

file. Pada header file terdapat kode biner maupun kode ASCII yang

berisikan tentang fungsi utama pada file. Pada isi file terdapat isi dari file yang telah terbentuk baik berupa text, lagu, video, dll. Di bawah ini

merupakan gambar struktur file yang ada pada semua file.[3]

Gambar 2.1 : Struktur File

2.3 Kode ASCII

Beberapa aplikasi menggunakan data yang bukan hanya bilangan tetapi juga huruf dari alfabet dan karakter khusus lainnya. Data semacam ini disebut dengan data alfanumerik dan mungkin dapat ditunjukkan dengan kode numerik. Jika bilangan-bilangan dimasukkan dalam data, maka bilangan-bilangan tersebut juga dapat ditunjukkan dengan kode khusus.

(21)

Sistem American Standard Code for Information Interchange (ASCII): ASCII dan EBCDIC merupakan cikal bakal dari set karakter lainnya. ASCII merupakan set karakter yang paling umum digunakan hingga sekarang. Set karakter ASCII terdiri dari 128 – (27) buah karakter yang masing-masing memiliki lebar 7-bit atau gabungan tujuh angka 0 dan 1, dari 0000000 sampai dengan 1111111. Mengapa 7-bit? Karena komputer pada awalnya memiliki ukuran memori yang sangat terbatas, dan 128 karakter dianggap memadai untuk menampung semua huruf Latin dengan tanda bacanya, dan beberapa karakter kontrol. ASCII telah dibakukan oleh ANSI (American National Standards Institute) menjadi standar ANSI X3.4-1986. Adapun kode-kode pada sistem-sistem tersebut di atas dapat dilihat pada tabel di bawah ini:

(22)
(23)
(24)

97 61 01100001 a 225 E1 11100001 Β

(25)

dan FALSE atau 1 dan 0. Simbol-simbol operator logika tersebut dapat dilihat pada tabel yang ada di bawah ini :

Tabel 2.2 : Tabel Operator Logika

Operator Keterangan

Not Tidak

And Dan

Or Atau

Xor Exclusive Or

2.4.1 Operator XOR (Exclusive Or)

Operator biner XOR banyak digunakan dalam perhitungan biner untuk algoritma kriptografi tertentu. Notasi matematis untuk operator XOR adalah . Operator XOR merupakan operator yang digunakan untuk dua buah ekspresi. Operator XOR akan menghasilkan nilai true atau 1 jika kedua ekpresi memiliki nilai yang berbeda. Operator xor akan menghasilkan nilai 0 atau 0 jika kedua espresi bernilai sama.

Tabel 2.3 : Tabel Nilai Kebenaran Operator XOR

Ekspresi1 Ekspresi2 Ekspresi 1 XOr Ekspresi2

0 0 0

0 1 1

1 0 1

1 1 0

2.5 Kriptografi

2.5.1 Gambaran Umum Kriptografi

(26)

Ilmu Kriptografi sebenarnya sudah mulai dipelajari manusia sejak tahun 400 SM, yaitu pada zaman Yunani kuno. Dari catatan bahwa “Penyandian Transposisi” merupakan sistem kriptografi pertama yang digunakan atau dimanfaatkan. Bidang ilmu ini terus berkembang seiring dengan kemajuan peradaban manusia, dan memegang peranan penting dalam strategi peperangan yang terjadi dalam sejarah manusia, mulai dari sistem kriptografi “Caesar Chiper” ang terkenal pada zaman Romawi kuno, “Playfair Cipher” yang digunakan Inggris dan “ADFVGX Cipher” yang digunakan Jerman pada Perang Dunia I hingga algoritma-algoritma kriptografi rotor yang populer pada Perang Dunia II , seperti Sigaba / M-134 (Amerika Serikat), Typex ( Inggris ), Purple (Jepang), dan mesin kriptografi legendaris Enigma (Jerman). Sejarah telah dipenuhi oleh contoh-contoh orang yang berusaha merahasiakan informasi rahasia mereka dari orang lain.

Seiring dengan perkembangan zaman, kebutuhan akan metode yang lebih canggih tidak dapat dihindari. Sekarang, dengan adanya era informasi, kebutuhan itu menjadi lebih penting lagi. Dengan adanya fasilitas internet, maka permintaan akan pelayanan informasi semakin meningkat dengan seiringnya perkembangan teknologi. Pertukaran data yang sensitif seperti nomor account kartu kredit, sudah sering dilakukan dan menjadi hal yang biasa di dalam dunia internet. Karena itu, melindungi data sudah menjadi hal penting yang sangat kruisal di dalam hidup.

Ada tiga istilah yang berkaitan dengan proteksi data yaitu kriptografi, kriptologi, dan kriptanalisis. Arti ketiganya kurang lebih sama. Secara teknis, kriptologi adalah ilmu yang mempelajari tentang komunikasi pada jalur yang tidak aman beserta masalah-masalah yang berhubungan dengan itu.

(27)

ini, orang-orang tidak mengetahui bagaimana tulisan tersebut disembunyikan dan tidak mengetahui bagaimana cara membaca maupun menerjemahkan tulisan tersebut. William Stallings mendefinisikan kriptografi sebagai “the art and science of keeping messages secure” [4].

Kriptografi berbasis pada algoritma pengkodean data informasi yang mendukung kebutuhan dari dua aspek keamanan informasi, yaitu

secrecy (perlindungan terhadap kerahasiaan data informasi) dan authenticity (perlindungan terhadap pemalsuan dan pengubahan informasi

yang tidak diinginkan.

Kriptografi menjadi dasar bagi keamanan komputer dan jaringan karena merupakan sarana bagi distribusi data dan informasi. Sehingga data dan informasi tersebut harus diamankan agar hanya orang-orang yang berhak mengaksesnya yang dapat mengetahui maupun menggunakan data tersebut. Salah satu cara yang paling banyak digunakan dalam mengamankan data adalah dengan kriptografi. Data-data tersebut diamankan dengan sedemikian rupa oleh pengirim sehingga orang lain tidak dapat mengenali data tersebut.

Pembakuan penulisan pada kriptografi dapat ditulis dalam bahasa matematika. Fungsi-fungsi yang mendasar dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam bahasa sandi (ciphertext).

C = E (M), dimana : M = pesan asli E = proses enkripsi

C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi)

Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan asli kembali.

M = D (C)

(28)

Umumnya, selain menggunakan fungsi tertentu dalam melakukan enkripsi dan dekripsi, seringkali fungsi itu diberi parameter tambahan yang disebut dengan istilah kunci.

2.5.2 Tujuan Kriptografi

Dalam teknologi informasi, telah dan sedang dikembangkan cara untuk menangkal berbagai bentuk serangan semacam penyadapan dan pengubahan data yang dikirimkan. Salah satu cara yang ditempuh mengatasi masalah ini ialah dengan menggunakan kriptografi yang menggunakan transformasi data sehingga data yang dihasilkan tidak dapat dimengerti oleh pihak yang tidak berhak mengakses.

Transformasi ini memberikan solusi pada dua macam masalah keamanan data, yaitu masalah privasi (privacy) dan keotentikan

(authenticatioan). Privaci mengandung arti bahwa data yang dikirimkan

hanya dapat dimengerti informasinya oleh penerima yang sah atau berhak. Sedangkan keotentikan mencegah pihak ketiga untuk mengirimkan data yang salah atau mengubah data yang dikirimkan.

Kriptografi yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang akan disampaikan. Ada 4 syarat yang perlu dipenuhi, yaitu:

a. Kerahasiaan. Pesan (plaintext) hanya dapat dibaca oleh pihak yang memliki kewenangan.

b. Autentikasi. Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain. c. Integritas. Penerima pesan harus dapat memastikan bahwa pesan yang

dia terima tidak dimodifikasi saat dalam proses transmisi data.

(29)

2.6 Pola-pola Penyerangan Data

Proteksi data dan informasi dalam komunikasi komputer menjadi penting karena nilai informasi itu sendiri dan meningkatnya penggunaan komputer di berbagai sektor. Melihat kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik maka ancaman terhadap pengamanan data akan semakin meningkat. Beberapa pola ancaman terhadap komunikasi data dalam komputer dapat diterangkan sebagai berikut [5]:

a. Interruption

Interception terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang berhak B. Interruption merupakan pola

penyerangan terhadap sifat availability (ketersediaan data).

b. Interception

Serangan ini terjadi bila pihak ketiga C berhasil membaca data yang dikirimkan. Interception merupakan pola penyerangan terhadap sifat confidentiality(kerahasiaan data).

c. Modification

Pada serangan ini pihak ketiga C berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat

integrity (keaslian) data.

d. Fabrication

Pada serangan ini, penyerang berhasil mengirimkan data ke tujuan dengan memanfaatkan identitas orang lain. Fabrication

merupakan pola penyerangan terhadap sifat authenticity.

(30)

melindungi data yang dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi. Untuk masalah kekuatan pengamanannya tergantung pada algoritma metode enkripsi tersebut dan juga kunci yang digunakan di dalamnya.

2.7 Enkripsi dan Dekripsi

Proses menyandikan plainteks menjadi chiperteks disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498-2)

sedangkan proses mengembalikan chiperteks mejadi plainteks disebut dekripsi (decryption) atau dechiphering (standard ISO 7498-2).[6]

Enkripsi adalah transformasi data dalam bentuk yang tidak dapat terbaca dengan sebuah kunci tertentu. Tujuannya adalah untuk meyakinkan privasi dengan menyembunyikan informasi dari orang-orang yang tidak ditujukan, bahkan mereka yang memiliki akses ke data terenkripsi. Sedangkan dekripsi merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula.

Enkripsi dilakukan pada saat pengiriman dengan cara mengubah data asli menjadi data rahasia, sedangkan dekripsi dilakukan pada saat penerimaan dengan cara mengubah data rahasia menjadi data asli. Jadi data yang dikirimkan selama proses pengiriman adalah data rahasia, sehingga data asli tidak dapat diketahui oleh pihak yang tidak berkepentingan. Data asli hanya dapat diketahui oleh penerima dengan menggunakan kunci rahasia.

(31)

A Encrypt Decrypt B

C

Plaintext Ciphertext Plaintext Encryption

Key

Decryption Key

Gambar 2.2 : Skenario Komunikasi Dasar Kriptografi

Di dalam skenario komunikasi dasar, seperti yang diperlihatkan pada Gambar 2.1, terdapat dua belah pihak, sebut saja A dan B, yang ingin berkomunikasi satu sama lain.

Kemudian pihak ketiga, C, adalah seorang eavesdropper (orang

yang mengakses informasi rahasia tanpa izin). Ketika A ingin mengirimkan informasi, yang disebut plaintext, kepada B, dia

mengenkripsi plaintext tersebut dengan menggunakan metode yang telah

dirancang oleh B. Biasanya, metode enkripsi diketahui oleh si

eavesdropper, dalam hal ini adalah C. Yang membuat pesan tersebut tetap

bersifat rahasia adalah key-nya. Ketika B menerima pesan yang telah

dienkripsi, yang disebut dengan ciphertext, dia mengubahnya kembali

menjadi plaintext dengan menggunakan key dekripsi.

2.8 Algoritma Kriptografi

Cryptographic system atau cryptosystem adalah suatu fasilitas

(32)

diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan [7]. Kriptosistem terdiri dari sebuah algoritma, plaintext, chipertext dan

kunci-kunci. Secara umum, kriptosistem digolongkan menjadi 2 buah, yaitu: 1. Kriptosistem simetri

2. Kriptosistem asimetri

Dalam kriptosystem simetri, algoritma yang digunakan hanya membutuhkan satu kunci untuk proses enkripsi dan dekripsi. Sedang dalam kriptografi asimetri, algoritma yang digunakan membutuhkan dua kunci yang berbeda dalam proses enkripsi dan dekripsi pesan. Kriptosistem dengan menggunakan symmetric cryptography kadang

disebut sebagai Secret-key cryptography merupakan bentuk kryptografi

yang lebih tradisional, dimana sebuah kunci tunggal dapat digunakan untuk mengenkrip dan mendekrip pesan. Secret-key cryptography tidak

hanya berkaitan dengan enkripsi tetapi juga berkaitan dengan otentikasi, disebut juga message authentication codes.

Masalah utama yang dihadapi secret-key cryptography adalah

membuat pengirim dan penerima menyetujui kunci rahasia tanpa ada

orang lain yang mengetahuinya. Ini membutuhkan metode dimana dua pihak dapat berkomunikasi tanpa takut akan disadap. Kelebihan secret-key cryptography dari public-key cryptography adalah lebih cepat. Teknik

yang paling umum dalam secret-key cryptography adalah block ciphers, stream ciphers, dan message authentication codes. Berdasarkan jenis

kunci yang digunakannya, algoritma kriptografi dikelompokan menjadi dua bagian, yaitu :

a. Symmetric Algorithm

Symmetric algorithm atau disebut juga secret key algorithm adalah

(33)

Pada sebagian besar symmetric algorithm kunci enkripsi dan kunci

dekripsi adalah sama. Symmetric algorithm memerlukan kesepakatan

antara pengirim dan penerima pesan pada suatu kunci sebelum dapat berkomunikasi secara aman. Keamanan symmetric algorithm tergantung

pada rahasia kunci. Pemecahan kunci berarti memungkinkan setiap orang dapat mengenkripsi dan mendekripsi pesan dengan mudah. Symmetric algorithm dapat dikelompokkan menjadi dua jenis, yaitu stream cipher

dan block cipher. Stream cipher beroperasi bit per bit (atau byte per byte)

pada satu waktu. Sedangkan block cipher beroperasi per

kelompokkelompok bit yang disebut blok (block) pada satu waktu.

b. Asymmetric Algorithm

Asymmetric algorithm atau disebut juga public key algorithm

didesain agar memudahkan dalam distribusi kunci yang digunakan untuk enkripsi dan dekripsi. Kunci dekripsi pada public key algorithm secara

praktis tidak dapat dihitung dari kunci enkripsi. Algoritma ini disebut “public key” karena kunci dapat dibuat menjadi publik. Setiap orang dapat

menggunakan kunci enkripsi untuk mengenkripsi pesan, tetapi hanya orang yang memiliki kunci dekripsi yang dapat mendekripsi pesan tersebut. Pada sistem ini kunci enkripsi sering disebut kunci publik (public key), dan kunci dekripsi disebut kunci rahasia (private key).

Metode kriptosystem simetri disebut juga dengan enkripsi simetri atau enkripsi konvensional. Gambar di bawah ini mengilustrasikan kinerja dari proses enkripsi konvensional.

(34)

Proses enkripsi terdiri dari sebuah algoritma dan sebuah kunci. Kunci adalah sebuah nilai yang terlepas dari pesan asli (plaintext) dan mengontrol algoritma yang dipakai. Penerapan algoritma akan menghasilkan output yang berbeda sesuai dengan kunci yang digunakan. Mengubah kunci berarti mengubah output dari algoritma yang dipakai.

Setelah chipertext dihasilkan, chipertext tersebut dapat diubah kembali menjad pesan asli dengan algoritma dekripsi dan dengan kunci yang sama seperti yang digunakan pada saat enkripsi.

Keamanan dari enkripsi konvensional ini terdiri dari beberapa faktor. Pertama, algoritma enkripsi harus benar-benar teruji, sehingga tidak dimungkinkan untuk mendekripsi sebuah pesan hanya dalam bentuk

ciphertext. Kedua, keamanan enkripsi konvensional juga ditentukan oleh

kerahasiaan kunci yang digunakan, bukan kerahasiaan algoritma yang digunakan. Jadi, kita juga harus yakin bahwa dekripsi tidak dimungkinkan hanya dengan mengetaui ciphertext dan algoritma yang digunakan tanpa

mengetahui kunci yang digunakan.

Bentuk umum enkripsi konvensional dapat dilihat dari contoh berikut. User A akan mengenkripsi plaintext X=[x1,X2,…,Xm] (m elemen dari X merupakan huruf dari alphabet pesan) dengan kunci K=[K1,K2,…,Kj]. Dengan pesan X dan kunci K tersebut, akan dihasilkan chipertext Y=[Y1,Y2,…,Yn]. Maka kita dapat menuliskan rumus :

Y=Ek(X)

Selanjutnya, chipertext tersebut dikirimkan ke user B. User B akan mendekripsi chipertext tersebut agar menjadi pesan asli dengan algoritma dekripsi dan kunci yang sama seperti yang digunakan pada saat enkripsi. Hal ini dapat dirumuskan sebagai berikut:

X=Dk(Y)

(35)

Gambar 2.4 : Klasifikasi Kriptografi

Kriptografi dibagi dalam dua bagian, yaitu cipher modern dan klasikal. Mode klasikal biasanya menggunakan mode karakter, sehingga kemampuan dari mode ini terbatas karena keterbatasan jumlah karakter.

Sedang pada kriptografi modern, pada proses enkripsi dan dekripsi menggunakan rangkaian bit dalam bentuk biner, 0 dan 1. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi ciphertext dalam bentuk rangkaian bit, begitu pula sebaliknya.

Perkembangan algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner. Algoritma kriptografi yang beroperasi dalam mode bit dapat dikelompokkan menjadi dua kategori :

a. Cipher Aliran (Stream Cipher)

Merupakan algoritma kriptografi yang beroperasi pada plaintext atau cipher text dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan atau didekripsikan bit per bit.Yang termasuk dalam kelompoh cipher aliran adalah algoritma vernam cipher.

b. Cipher Block(Block Cipher)

(36)

sebelumnya. misalnya panjang blok adalah 64 bit, maka algoritma enkripsi memperlakukan 8 karakter setiap kali penyandian.

(1 karakter= 8 bit dalam pengkodean ASCII)

2.9.1 Algoritma Subtitusi

Caesar cipher adalah cipher substitusi sederhana yang mencakup

pergeseran alfabet 3 posisi ke kanan. Caesar cipher merupakan subset dari cipher polialfabetik Vigenere. Pada Caesar cipher karakter-karakter pesan dan pengulangan kunci dijumlahkan bersama, modulo 26. Dalam penjumlahan modulo 26, huruf-huruf A-Z dari alfabet masing-masing memberikan nilai 0 sampai 25.

Caesar Cipher diperkenalkan oleh Julius Caesar yang mengubah huruf-huruf dalam plaintext dengan huruf-huruf lain yang dilakukan secara konsisten.

Contoh:

Plain : a b c d e f g h i j k l m n o p q r s t u v w x y z Chipper : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Sehingga, ketika pesan yang akan dikirim (plaintext) berbunyi “universitas” maka ditulis (ciphertext) dengan ”XQLYHUVLWDV JXQDGDUPD”. Si Penerima pesan tentu harus mengetahui kode pembacaannya (yang diberikan oleh si Pengirim) atau ia mengotak-atik sendiri kode-kode itu.

Algoritma di atas adalah setiap huruf plaintext p, akan disubstitusi menjadi huruf ciphertext c dengan formula: C=E(3, p) = (p + 3) mod 26, atau secara umum algoritma Caesar adalah :

C = E(k, p) = (p + k) mod 26 di mana k, diambil dari rentang 0 (huruf A) sampai 25 (huruf Z). Algoritma dekripsi menjadi:

(37)

Tipe cipher ini dapat diserang menggunakan analisis frekuensi. Dalam frekuensi analisis, digunakan karakteristik frekuensi yang tampak dalam penggunaan huruf-huruf alfabet pada bahasa tertentu. Tipe cryptanalysis ini dimungkinkan karena Caesar cipher adalah

monoalfabetik cipher atau cipher substitusi sederhana, dimana karakter ciphertext disubstitusi untuk setiap karakter plaintext. Serangan ini dapat

diatasi dengan menggunakan substitusi polialfabetik. Substitusi polialfabetik dicapai melalui penggunaan beberapa cipher substitusi. Namun substitusi ini dapat diserang dengan penemuan periode, saat substitusi berulang kembali.

2.9.2 Algoritma Transposisi

Pada cipher ini, huruf-huruf plaintext dipermutasi. Sebagai contoh,

huruf-huruf plaintext A T T A C K A T D A W N dapat dipermutasi menjadi D C K A A W N A T A T T. Cipher transposisi kolumnar adalah cipher dimana plaintext ditulis secara horisontal pada kertas dan dibaca

secara vertikal. Cipher transposisi dapat diserang melalui analisis

frekuensi, namun cipher menyembunyikan properti statistik dari pasangan

huruf-huruf, seperti IS dan TOO.

2.9.3 Book Key Cipher

Cipher ini menggunakan teks dari sebuah sumber (misalnya buku) untuk mengenkripsi plaintext. Kunci, diketahui oleh pengirim dan penerima yang dimaksud, dapat berupa halaman dan jumlah baris dari teks pada buku. Teks ini adalah karakter yang sesuai untuk karakter dengan

plaintext, dan penjumlahan modulo 26 dijalankan untuk memperngaruhi

enkripsi. Running key cipher mengeliminasi periodisitas, namun masih

dapat diserang dengan memanfaatkan redundansi pada kunci.

(38)

a. Gambaran Umum

Vernam cipher merupakan algoritma kriptografi yang ditemukan oleh Mayor J. Maugborne dan G. Vernam. Algoritma ini merupakan algoritma berjenis symmetric key yang artinya bahwa kunci yang

digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream cipher dimana cipher berasal dari hasil XOR antara bit plaintext dan bit key. Algoritma Vernam cipher diadopsi dari one-time pad cipher, dimana dalam hal ini karakter diganti dengan bit (0 atau 1). Dengan kata lain, Vernam Cipher merupakan versi lain dari one-time pad cipher.

Dalam proses enkripsi,cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci, seperti terlihat pada rumus di bawah ini :

c1 = (p1 + k1) mod 2 … 2.1

Dimana :

c1 = cipher teks p1 = plainteks k1 = kunci

Sedangkan dalam proses dekripsi, untuk mendapatkan kembali plainteks, diperoleh dengan melakukan penjumlahan modulo 2 satu bit cipherteks dengan satu bit kunci :

p1 =( c1 - k1 )mod 2 …… 2.2

(39)

operasi penjumlahan modulp 2 identik dengan operasi bit dengan operator XOR, maka persamaan 2.1 dapat ditulis secara sederhana sebagai berikut:

c1 = p1 XOR k1 …… 2.3

Sedangkan pada proses pendekripsian dituliskan: p1 = c1 XOR k1 …… 2.4

Dalam operator logika XOR, hasil akan T (benar) apabila salah satu dari kedua operand (tetapi tidak keduanya) bernilai T atau 1. Atau dengan kata lain, apabila diaplikasikan dalam bit maka operator XOR akan menghasilkan 1 jika dan hanya jika salah satu operand bernilai 1.

Contoh :

X: 00111010 10101011 Y: 10100100 01010101 Hasil : 10011110 11111110

Sedangkan suatu bilangan dalam biner apabila di- XOR-kan dengan dirinya sendiri akan menghasilkan 0. Contoh :

X : 01010101 10101010 Y : 01010101 10101010 Hasil :00000000 00000000

b. Proses Enkripsi dan Dekripsi

Perhitungan di atas merupakan salah satu dasar dalam penerapan algoritma Vernam dalam kriptografi, yaitu suatu string yang diterjemahkan ke dalam biner dapat dienkripsikan dengan suatu kunci tertentu dan dapat pula diperoleh kembali dari pesan sandi dengan menggunakan operator XOR pada kunci yang sama.

(40)

1. Karakter-karakter yang terdapat pada plainteks dan kunci merupakan karakter ASCII. Maka, ubah plainteks dan kunci menjadi bilangan biner :

ASCII Biner

Vernam 01010110 01100101 01110010 01101110 01100001 01101101

Cipher 01000011 01101000 01101001 01110000 01100101 01110010

2. Lalu, kedua bilangan biner itu kita XOR-kan menurut persamaan 2.3 :

Hasil dari XOR tersebut adalah : “00010101 00001100 00000010 00000110 00000100 00011111”. Rangkaian bilangan bit ini merupakan bit cipherteks dalam bentuk biner. Untuk mengetahui nilai SCII dari cipherteks tersebut, maka kita perlu konversikan rangkaian biner tersebut ke bilangan ASCII sesuai dengan tabel 2.1. Dengan berdasar pada tabel tersebut, maka dapat kita lihat bahwa rangkaian bit dari cipherteks tersebut mempunyai nilai ASCII :

Proses dekripsi dalam algoritma Vernam Cipher merupakan kebalikan dari proses enkripsi. Cipherteks dari hasil enkripsi di-XOR-kan dengan kunci yang sama. Misalnya dengan mengambil contoh sebelumnya, dimana cipherteks : “§ ☽ ☻ ☿ ♂ ╹” dan kunci : “Cipher”. Maka langkah pendekripsiannya adalah sebagai berikut :

1. Ubah karakter ASCII dari cipherteks dan kunci ke dalam rangkaian biner :

§ ☽ ☻ ☿ ♂

(41)

2. Lalu, kedua rangkaian biner itu kita XOR-kan dengan berdasar pada persamaan 2.4 :

Maka didapat rangkaian bit plainteks “01010110 01100101 01110010 01101110 01100001 01101101”. Dengan berdasar pada tabel 2.1, maka kita dapat mengubah rangkaian bit menjadi bilangan ASCII, yaitu menjadi : “Vernam”. Terbukti plain teks pada hasil dekripsi adalah sama dengan plainteks pada proses enkripsi.

2.10 Jenis Serangan terhadap Cipher Aliran

Serangan yang dapat dilakukan oleh kriptanalis terhadap cipher aliran

adalah:

1. Known-plaintext attack

Misalkan kriptanalis memiliki potongan plainteks (P) dan cipherteks

(C) yang berkoresponden, maka ia dapat menemukan bagian

bit-aliran-kunci (K) yang berkoresponden dengan meng-XOR-kan bit-bit

plainteks dan cipherteks:

PC = P  (PK) = (PP)  K = 0  K = K

2. Ciphertext-only attack

Misalkan kriptanalis memiliki dua potongan cipherteks berbeda (C1

dan C2) yang dienkripsi dengan bit-aliran-kunci yang sama. Ia

meng-XOR-kan kedua cipherteks tersebut dan memperoleh dua buah plainteks yang ter-XOR satu sama lain:

ASCII Biner

§ ☽ ☻ ☿ ♂ ╹ 00010101 00001100 00000010 00000110 00000100 00011111

Cipher 01000011 01101000 01101001 01110000 01100101 01110010

(42)

C1C2= (P1K )  (P2K) = (P1  P2 )  (K K)

= (P1P2 )  0

= (P1P2 )

P1 dan P2 dapat diperoleh dengan mudah. Selanjutnya, XOR-kan salah

satu plainteks dengan cipherteksnya untuk memperoleh bit-aliran-kunci K yang berkoresponden:

P1  C1= P1  (P1  K) = K

Pesan dari dua serangan di atas adalah: pengguna cipher aliran

harus mempunyai bit-aliran-kunci yang tidak dapat diprediksi sehingga mengetahui sebagian dari bit-aliran-kunci tidak memungkinkan kriptanalis dapat mendeduksi bagian sisanya.

2.11 Steganografi

Steganografi berasal dari bahasa Yunani yaitu Steganós yang berarti menyembunyikan dan Graptos yang artinya tulisan sehingga secara keseluruhan artinya adalah tulisan yang disebunyikan. Secara umum steganografi merupakan seni atau ilmu yang digunakan untuk menyembunyikan pesan rahasia dengan segala cara sehingga selain orang yang dituju, orang lain tidak akan menyadari keberadaan dari pesan rahasia tersebut.

Kini, istilah steganografi termasuk penyembunyian data digital dalam file-file komputer. Contohnya, si pengirim mulai dengan file gambar biasa, lalu mengatur warna setiap pixel ke-100 untuk menyesuaikan suatu huruf dalam alphabet (perubahannya begitu halus sehingga tidak ada seorangpun yang menyadarinya jika ia tidak benar-benar memperhatikannya).

(43)

yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi. Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak terlihat diantara garis-garis yang kelihatan.

Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam file-file lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula. Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar.

Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.

Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena banyak format file digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan diantaranya:

Format image : bitmap (bmp), gif, pcx, jpeg, dll. Format audio : wav, voc, mp3, dll.

Format lain : teks file, html, pdf, dll.

(44)

Sebuah pesan steganografi (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima (yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan mendekripsikannya.

2.12 Metode Steganografi

Kebanyakan algoritma steganografi menggunakan sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung file. Sebuah program steganografi dibutuhkan untuk melakukan hal-hal berikut (baik implisit melalui suatu perkiraan maupun eksplisit melalui sebuah perhitungan), menemukan kelebihan bits dalam selubung file yang dapat digunakan untuk menyelubungi pesan rahasia didalamnya, memilih beberapa diantaranya untuk digunakan dalam menyelubungi data dan penyelubungan data dalam bits dipilih sebelumnya.

Terdapat banyak metode yang digunakan dalam melakukan penyembunyian data kedalam data lainnya. Berikut adalah penjelasan mengenai beberapa metode yang banyak digunakan dalam steganografi.

2.12.1 Metode Steganografi pada teks a. Metode Spasi Terbuka

(45)

digunakan dengan memakai ASCII (AmericanStandard Character Interchange) format. Bender et al memberikan tiga metode untuk

mengungkap white space dalam proses penyembunyian. Spasi terbuka antar kalimat akan menghasilkan nilai "0" apabila hanya terdapat sebuah spasi yang ditambahkan diantara kalimat tersebut. Dengan menambahkan dua spasi akan menghasilkan nilai "1". Metode ini dapat berhasil, tetapi membutuhkan data dalam jumlah besar untuk menyembunyikan sebuah informasi kecil. Dan juga terdapat banyak software word-processing yang akan secara otomatis membetulkan spasi antara kalimat, sehingga metode ini seringkali gagal. Metode spasi end-of-line (EOL) mengutarakan white space pada akhir dari masing-masing baris. Data disembunyikan menggunakan jumlah spasi yang telah ditentukan sebelumnya dari akhir untuk masing- masing kalimat. Sebagai contoh dua spasi akan menyembunyikan satu bit, empat spasi akan menyembunyikan dua bit dan delapan spasi akan menghasilkan tiga bit dan seterusnya. Tehnik ini lebih baik dibandingkan metode spasi terbuka antar kalimat, karena dengan meningkatkan jumlah spasi akan dapat menyembunyikan lebih banyak data. Salah satu kekurangan dari tehnik ini adalah dapat hilangnya informasi tersembunyi jika hard copy data yang diberikan

(46)

Sehingga "01" diinterpretasikan sebagai "1" dan "10" diinterpretasikan sebagai "0". Dimana "00" dan "11" akan dianggap sebagai null bit string.[6]

b. Metode Syntactic

Metode Syntactic sebagaimana yang telah di sarankan oleh Bender et al, mengutarakan penggunaan punktuasi dan struktur text untuk menyembunyikan informasi tanpa secara signifikan mengubah arti dari pesan pembawa. Sebagai contoh terdapat dua frase "bread, butter, and milk" dan "bread, butter and milk" secara gramatikal benar tetapi berbeda dalam penggunaan koma.

Salah satu dapat digunakan secara alternatif dalam pesan text guna mengintepretasikan nilai "1" apabila salah satu metode dipakai dan nilai "0" untuk metode lain yang dipakai.

c. Metode Semantic

(47)

2.12.2 Metode Steganografi pada Gambar

Sudah banyak metode yang digunakan untuk menyembunyikan pesan di dalam sebuah image tanpa mengubah tampilan image, sehingga pesan yang disembunyikan tidak akan terlihat. Berikut akan dibahas beberapa metode umum yang digunakan pada image steganography.

a. Least Significant Bit Insertion (LSB)

(48)

b. Algorithms and Transformation

Algoritma compression adalah metode steganografi dengan menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain).

c. Redundant Pattern Encoding

Redundant Pattern Encoding adalah menggambar pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan), kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar.

d. Spread Spectrum method

Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak (encrypt) melalui gambar (tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image (gambar).

2.12.3 Metode Steganografi pada suara

(49)

a. Low Bit coding

Cara ini lazim digunakan dalam teknik digital steganografi yaitu mengganti LSB input setiap samplingnya dengan data yang dikodekan. Dengan metode ini keuntungan yang didapatkan adalah ukuran pesan yang disispkan relative besar, namun berdampak pada hasil audio yang berkualitas kurang dengan banyaknya noise.

b. Phase coding

Metode kedua yang digunakan ini adalah merekayasa fasa dari sinyal masukan. Teori yang digunakan adalah dengan mensubstitusi awal fasa dari tiap awal segment dengan fasa yang telah dibuat sedemikian rupa dan merepresentasikan pesan yang disembunyikan. Fasa dari tiap awal segment ini dibuat sedemikian rupa sehingga setiap segmen masih memiliki hubungan yang berujung pada kualitas suara yang tetap terjaga. Teknik ini menghasilkan keluaran yang jauh lebih baik daripada metode pertama namun dikompensasikan dengan kerumitan dalam realisasinya.

c. Spread Spectrum

Metode yang ketiga adalah penyebaran spektrum. Dengan metode ini pesan dikodekan dan disebar ke setiap spectrum frekuensi yang memungkinkan. Maka dari itu akan sangat sulit bagi yang akan mencoba memecahkannya kecuali ia memiliki akses terhadap data tersebut atau dapat merekonstruksi sinyal random yang digunakan untuk menyebarkan pesan pada range frekuensi.

d. Echo Hiding

(50)

yaitu besar amplitude awal, tingkat penurunan atenuasi, dan offset. Dengan adanya offset dari echo dan sinyal asli maka echo akan tercampur dengan sinyal aslinya, karena sistem pendengaran manusia yang tidak memisahkan antara echo dan sinyal asli. Keempat metode di atas memiliki kesamaan yaitu menggunakan kelemahan dari sistem pendengaran manusia. Maka dari itu teknik steganografi dalam MP3 juga akan menggunakan kelemahan ini untuk menyembunyikan pesan.

2.12.4 Metode End of File (EoF)

Teknik yang digunakan pada digital watermarking beragam

tetapi secara umum teknik ini menggunakan redundant bits sebagai tempat

menyembunyikan pesan pada saat dilakukan kompresi data, dan kemudian menggunakan kelemahan indera manusia yang tidak sensitive sehingga pesan tersebut tidak ada perbedaan yang terlihat atau yang terdengar. Teknik EOF atau End Of File merupakan salah satu teknik yang digunakan dalam steganografi. Teknik ini menggunakan cara dengan menyisipkan data pada akhir file. Teknik ini dapat digunakan untuk menyisipkan data yang ukurannya sesuai dengan kebutuhan. Ukuran file yang telah disisipkan data sama dengan ukuran file sebelum disisipkan data ditambah dengan ukuran data yang disisipkan ke dalam file tersebut. Teknik inilah yang akan digunakan penulis dalam penelitian ini. Dalam teknik ini, data disisipkan pada akhir file dengan diberi tanda khusus sebagai pengenal start dari data tersebut dan pengenal akhir dari data tersebut.

2.13Microsoft Visual Basic 6.0

(51)

dengan bahasa pemrograman Basic (Quick Basic), dikarenakan Visual Basic 6.0 adalah pengembangan dari Basic.

Visual Basic 6.0 terdapat dalam 3 versi perangkat lunak yang diproduksi oleh Microsoft yaitu Microsoft Visual Basic 6.0 Professional, Microsoft Visual Basic 6.0 Enterprise Edition, dan Microsoft Visual Studio 6.0. Di dalam perancangan kali ini yang digunakan adalah Microsoft Visual Basic 6.0 Enterprise Edition.[8]

a. Tool Box

Dalam penggunaan software Microsoft Visual Basic, terdapat beberapa tool yang akan digunakan untuk perancangan program.Window yang berisi tombol-tombol kontrol yang akan dipergunakan dalam membuat sebuah form, komponen-komponen yang terdapat pada kontrol dapat ditambah dan dikurangi sesuai dengan kebutuhan program, penambahan dan pengurangan komponen yang dilakukan seiring dengan pemambahan atau pengurangan pada project components dan project references.

Gambar 2.5 : Tampilan Tool Box

1) Textbox

(52)

Tool textbox digunakan untuk menginputkan teks dari kunciboard. Dalam perancangan ini, tool textbox akan digunakan untuk memasukkan plaintext yang nantinya akan dienkripsi.

2) Combo Box

Tool combobox digunakan untuk pemilihan terhadap beberapa option yang telah ditentukan dalam perancangan ini, tool combo box digunakan untuk memilih data tertentu yang berkaitan dengan naskah ujian.

Gambar 2.7 : Tool Combobox

3) Button

Tool button digunakan sebagai trigger untuk melaksanakan suatu

aksi tertentu, biasanya berbentuk perintah. Dalam perancangan ini, tool button digunakan sebagai trigger dalam melakukan proses enkripsi atau

enkripsi pesan.

Gambar 2.8 : Tool Command

(53)

Gambar 2.9 : Tampilan Properties

b. Code Editor

Window yang dipergunakan untuk menuliskan program, setiap kontrol dalam form dapat memiliki fungsi tertentu. Fungsi tersebut diwujudkan dalam deret perintah, perintah perintah ini yang di tuliskan kedalam window code editor. VB menyediakan auto list untuk memberikan nilai yang terdapat pada suatu kontol, sehingga mengurangi kesalahan penulisan program. Cara menggunakannya adalah dengan mengklik ganda kontrol yang ada.

(54)

2.14 Unified Modelling Language (UML)

Unified Modelling Language adalah bahasa standar yang digunakan untuk menjelaskan dan memvisualisasikan artifak dari proses analisis dan dasain berorientasi objek. UML menyediakan standar pada notasi dan diagram yang bisa digunakan untuk memodelkan suatu sistem. UML dikembangkan oleh 3 orang pendekar „berorientasi objek‟, yaitu Grady Booch, Jim Rumbaugh dan Ivar Jacobson.[9]

Namun karena UML hanya merupakan bahasa untuk pemodelan maka UML bukanlah rujukan bagaimana melakukan analisis dan desain berorientasi objek. Untuk mengetahui bagaiamana melakukan analisis dan desain berorientasi secara baik, sudah terdapat beberapa metodologi yang bisa diikuti, seperti Metode Booch, Metode Coad and Yourdan, Metode Jacobson, Metode Rumbaugh, Metode Wirfs-Brock, atau mengikuti metode pengembangan sistem Rational Unified Process.

a. Actor

Gambar 2.11 : Notasi Actor

(55)

b. Class

Gambar 2.12 : Notasi Class

Class merupakan pembentuk utama dari sistem berorientasi objek karena class menunjukkan kumpulan objek yang mempunyai atribut dan operasi yang sama. Class digunakan untuk mengimplementasikan interface.

Class digunakan untuk mengabstraksikan elemen-elemen dari sistem yang sedang dibangun. Class dapat untuk merepresentasikan baik perangkat lunak maupun perangkat keras, baik konsep maupun benda nyata.

Notasi class benbentuk persegi panjang berisikan 3 bagian yaitu persegi paling atas untuk nama class, persegi di tengah untuk atribut dan persegi paling bawah untuk operasi.

Operasi menunjukkan sesuatu yang bisa dilakukan oleh objek dan menggunakan kata kerja. Atribut digunakan untuk menyimpan informasi. Nama atribut menggunakan kata benda yang bisa dengan jelas merepresentasikan informasi yang terkandung di dalamnya.

c. Use Case

(56)

Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan namun use case hanya menjelaskan apa yang dilakukan oleh actor dan sistem, bukan bagaimana actor dan sistem melakukan kegiatan tersebut.

Di dalam use case terdapat teks untuk menjelaskan urutan kegiatan yang disebut use case specification yang terdiri dari :

- Nama Use case : mencantumkan nama dari use case yang bersangkutan. Sebaiknya diawali dengan kata kerja untuk menunjukkan suatu aktivitas.

- Deskripsi singkat (Brief Description) : menjelaskan secara singkat

dalam 1 atau 2 kalimat tentang tujuan dari use case.

- Aliran normal (Basic Flow) : adalah jantung dari use case yang

menjelaskan tentang interaksi antara actor dan sistem dalam kondisi normal, yaitu segala sesuatu berjalan dengan lancar tanpa ada halangan atau hambatan dalam mencapai tujuan dari use case. - Aliran alternatif (Alternate Flow) : merupakan pelengkap dari

basic flow karena tidak ada yang sempurna dalam setiap kali use

case berlangsung. Dalam hal ini dijelaskan bahwa apa yang akan terjadi bila suatu halangan atau hambatan terjadi sewaktu use case berlangsung.

- Special Requirement : berisi kebutuhan lain yang belum tercakup dalam aliran normal dan alternatif. Secara tegas dibedakan bahwa

basic flow dan alternate flow menangani kebutuhan fungsional,

misalnya kecepatan transaksi maksimum berapa cepat dan berapa lama, kapasitas akses yaitu jumlah user yang akan mengakses dalam waktu bersamaan.

- Pre-Condition : menjelaskan persyaratan yang harus dipenuhi sebelum use case bisa dimulai.

(57)

d. Package

Gambar 2.14 : Notasi Package

Package adalah kontainer atau wadah konseptual yang digunakan untuk mengelompokkan elemen-elemen dari sistem yang sedang dibangun sehingga bisa dibuwat model yang lebih sederhana. Tujuannya adalah untuk mempermudah penglihatan dari model yang sedang dibangun.

e. Note

Gambar 2.15 : Notasi Note

Note digunakan untuk memberikan keterangan dan komentar tambahan dari suatu elemen sehingga bisa langsung terlampir dalam model. Note ini bisa ditempelkan ke semua elemen notasi yang lain.

f. Dependency

Gambar 2.16 : Notasi Dependency

Dependency merupakan relasi yang menunjukkan bahwa perubahan pada salah satu elemen memberi pengaruh pada elemen lain. Elemen yang ada di bagian tanda panah adalah elemen yang tergantung pada elemen yang ada di bagian tanpa tanda panah.

Terdapat 2 stereotype dari dependency, yaitu Include dan

(58)

garis tanpa panah) memicu eksekusi bagian dari elemen lain (yang ada di garis dengan panah). Extend menunjukkan bahwa suatu bagian dari elemen di garis tanpa panah bisa di sisipkan ke dalam elemen yang ada di garis dengan panah.

g. Association

Gambar 2.17 : Notasi Associaton

Assocition menggambarkan navigasi antar kelas, berapa banyak objek lain yang bisa berhubungan dengan satu objek dan apakah suatu kelas menjadi bagian dari kelas lainnya.

h. Generalization

Gambar 2.18 : Notasi Generalization

Generalization menunjukkan hubungan antara elemen yang lebih umum ke elemen yang lebih spesifik. Dengan menggunakan notasi generalization ini konsep inheritance dari prinsip hierarki

dimodelkan.

i. Realization

Gambar 2.19 : Notasi Realization

(59)

BAB III

METODE PENELITIAN

3.1 Metode Pengumpulan Data

Data yang dikumpulkan dalam penelitian ini merupakan data sekunder. Data diperoleh dari telaah pustaka dan dokumen yang didapat penulis dari pustaka yang mendukung, informasi dari internet, buku-buku dan artikel dari jurnal.

3.2 Metode Pengembangan Sistem

Agar mempermudah dalam pengembangan sistem, maka penulis membangun sebuah sistem yang akan membantu dalam menggambarkan proses penyelesaian masalah. Metode yang sesuai dalam pengembangan sistem ini adalah metode Rapid Aplication Development (RAD).

RAD adalah sebuah model proses perkembangan software sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen.

Ada beberapa alasan di dalam memilih metode RAD ini antara lain adalah sebagai berikut :

a. Alasan yang Buruk

- Apabila menggunakan RAD, hanya untuk menghemat biaya pengembangan suatu sistem. Hal ini disebabkan karena dengan menggunakan metode RAD membutuhkan suatu tim yang mengerti betul mengenai manajemen biaya. Apabila tidak, maka biaya yang dikeluarkan akan semakin besar.

Gambar

Tabel 2.3 : Tabel Nilai Kebenaran Operator XOR
Gambar 2.2 : Skenario Komunikasi Dasar  Kriptografi
Gambar 2.3 : Ilutrasi Kinerja Proses Enkripsi Konvensional
Gambar 2.5 : Tampilan Tool Box
+7

Referensi

Dokumen terkait

limit switch b1 .Gerakan tersebut akan berulang sampai tombol Start dalam posisi OFF.

terbentur oleh jam perkuliahan reguler yang berakhir pada jam seharusnya kelas P2KKM dilaksanakan, dan sudah masuknya waktu sholat. 37 Dan beberapa mahasiswa dari

KPU mencitrakankan Pilpres 2014 dalam ILM-ILM yang mereka produksi sebagai sebuah perayaan peristiwa kenegaraan (diperlihatkan oleh bentuk naratif karakter para selebriti

Dilihat dari pangsa pemasukan ternak sapi potong seperti yang tertera pada Tabel 2, tampak bahwa Kota Surakarta, dan Kabupaten Boyolali merupakan daerah tujuan perdagangan

Penelitian ini berangkat dari permasalahan siswa yang kurang kreatif dalam bertanya dan mengemukakan pendapat. Kondisi ini menimbulkan interaksi yang kurang baik

Di dalam pelaksanaan Landasan Teori dan Program Akhir Arsitektur kali ini bertujuan untuk memenuhi syarat menuju kelulusan Program Sarjana Arsitektur (S1) di Fakultas

Soejadi dalam Susilo (2012) menyatakan bahwa grafik Barber Johnson adalah suatu grafik yang dapat dengan jelas menganalisa dan sekaligus menyajikan efisiensi penggunaan

Ditambah dengan tujuan didirikannya Free Software Foundation, yaitu memberdayakan kepada para pengguna (user)... ETIKA DAN MORAL MENGGUNAKAN PERANGKAT TIK.. Lisensi Program