• Tidak ada hasil yang ditemukan

Implementasi Algoritma Elgamal Dengan Pembangkit Bilangan Prima Lehmann Dan Algoritma Least Significant Bit (Lsb) Dengan Cover Image Bitmap Untuk Keamanan Data Text

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Algoritma Elgamal Dengan Pembangkit Bilangan Prima Lehmann Dan Algoritma Least Significant Bit (Lsb) Dengan Cover Image Bitmap Untuk Keamanan Data Text"

Copied!
130
0
0

Teks penuh

(1)

KEAMANAN DATA TEXT

SKRIPSI

HERMANDA IHUT TUA SIMAMORA

081401079

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(2)

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer

HERMANDA IHUT TUA SIMAMORA

081401079

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA ELGAMAL

DENGAN PEMBANGKIT BILANGAN LEHMAN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT

Kategori : SKRIPSI

Nama : HERMANDA IHUT TUA SIMAMORA

Nomor Induk Mahasiswa : 081401079

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

Diluluskan di

Medan, 27 Agustus 2013

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Handrizal, Ssi, M.Comp.Sc M. Andri , ST, M.Comp.Sc, MEM NIP.- NIP. 197510082008011011

Diketahui/Disetujui oleh

Departemen Ilmu Komputer FMIPA USU Ketua,

(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB)

DENGAN COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT

SKRIPSI

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

Medan, 20 Agustus 2013

(5)

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas berkat dan kasih karunia-nya sehingga penulis dapat menyelesaikan skripsi ini dengan baik.

Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini. Penulis mengucapkan terima kasih kepada:

1. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

2. Ibu Maya Silvi Lydia, BSc. MSc sebagai Sekretaris Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

4. Bapak M. Andri Budiman, ST, MCompSc, MEM dan Bapak Handrizal, Ssi, M.Comp.Sc selaku pembimbing yang telah membimbing penulis sehingga penulis dapat menyelesaikan skripsi ini.

5. Bapak Ade Candra, ST, M.Kom dan Bapak Herriyance, ST, M.Kom. sebagai dosen penguji yang telah memberikan saran dan kritikan yang sangat berguna bagi Penulis. 6. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu

Komputer Fakultas Ilmu Komputer dan Teknologi Informasi USU.

7. Ayahanda tercinta M. Simamora dan Ibunda tercinta D. Pasaribu, kakak saya Triyanti Simamora SE, Tiur Yulianta Simamora S.Kep, adik saya Betty Sonia Simamora yang selalu memberikan doa, motivasi dan dukungannya baik materi maupun spiritual serta semangat yang diberikan selama kuliah dan menyelesaikan skripsi ini.

8. Dan juga kepada teman-teman seperjuangan angkatan 2008 program studi S1 Ilmu Komputer USU, terkhusus kepada: Angga Malau, Ria Marpaung , Juwita Pasaribu , Rosalina Situmorang, Brikson Barus , Elieser Hutapea , Harry Davidson, Johannes Hutabarat dan Octavianus Sianturi yang telah berbagi kebersamaan selama berada di S1 Ilmu Komputer

Penulis menyadari bahwa skripsi ini masih jauh dari sempurna. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya.

Medan, 27 Agutus 2013

(6)

IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN

COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT

ABSTRAK

Pada saat ini, banyak data atau informasi user yang dicuri oleh orang yang tidak berkepentingan, sehingga berkembanglah beberapa teknik keamanan, dimana salah satunya kriptografi. Pada kriptografi, data akan diacak sehingga tidak dapat dibaca dan dimengerti oleh orang lain. Kriptoanalisis adalah teknik yang digunakan untuk memecahkan kriptografi, sehingga data acak dapat dikembalikan ke data asli, sehingga kriptografi tidak sepenuhnya aman. Untuk mendapatkan keamanan yang lebih kuat, maka akan digabungkan kriptografi dengan steganografi. Algoritma kriptografi yang akan digunakan adalah ElGamal dengan pembangkit bilang prima lehmann, sedangkan algoritma steganografi yang akan digunakan adalah least significant bit (LSB). Data atau informasi terlebih dahulu dienkripsi dengan algoritma ElGamal, kemudian disisipkan kedalam sebuah citra dengan algoritma LSB, sehingga hasil dari enkripsi dan steganografi tidak akan menimbulkan kecurigaan bagi pihak lain. Berdasakan pengujian, untuk mengenkripsi dan menyisipkan pesan 20 hingga 60 karakter, dibutuhkan waktu kurang dari 3 detik, sedangkan waktu untuk ekstraksi dan dekripsi kurang dari 1 detik, serta perubahan citra tidak tampak oleh mata. Oleh karena itu, dapat disimpulkan bahwa dengan menggabungkan kriptografi dan steganogrofi maka keamanan data lebih kuat dan kinerja dari program adalah baik.

(7)

IMPLEMENTATION OF ELGAMAL ELGORITHM USING LEHMANN'S PRIME GENERATOR AND LEAST SIGNIFICANT BIT ALGORITHM

WITH BITMAP COVER IMAGE TO SECURE TEXT DATA.

ABSTRACT

At this time, a lot of data or user information stolen by people who are not interested, so it develops some security techniques, one of which cryptography. Using cryptography, the data will be encrypted so it can not be read and understood by others. Cryptanalysis is the technique used to solve cryptography, so that random data can be restored to the original data, so cryptography is not completely secure. In order to obtain stronger security, it will be combined steganography with cryptography. Cryptographic algorithms that will be used is ElGamal , whereas steganography algorithms that will be used is the least significant bit (LSB). Data or information will encrypted with ElGamal algorithm, and then inserted into an image with the LSB algorithm, so that the results of encryption and steganography would not arouse suspicion for others. Based on the testing, to encrypt and insert messages 20 to 60 characters, it takes less than 3 seconds, while the time for extraction and decryption of less than 1 second, and the image changes are not visible to the eye. Therefore, it can be concluded that by combining cryptography and steganography, it will obtain the stronger security and the performance of the program is good.

(8)

DAFTAR ISI

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Tinjauan Pustaka 6

2.1 Definisi dan Tujuan Kriptografi 6

2.2 Jenis Algoritma Kriptografi 7

2.2.1 Algoritma Simetris 7

2.2.2 Algoritma Asimetris 7

2.3 Algoritma ElGamal 8

2.3.1 Pembangkit Bilangan Prima Lehmann 9

2.3.2 Contoh Perhitungan Elgamal 9

2.4 Landasan Matematika Kriptografi 12

2.4.1 Aritmatika Modulo 12

2.4.2 Bilangan Prima 12

2.4.3 Modulo Eksponensial 13

2.4.4 Primitive Root 14

2.5 Steganografi 15

2.5.1 Definisi Steganografi 15

2.5.2 Teknik Steganografi 16

2.5.3 Least Significant Bit (LSB) 17

2.7 Citra Digital 19

2.7.1 Citra Bitmap (BMP) 20

2.8 Tabel ASCII 21

2.9 Unified Modelling Language 23

2.9.1 Use Case Diagram 23

2.9.2 Activity Diagram 25

2.9.3 Class Diagram 26

(9)

Bab 3 Analisis dan Perancangan 28

3.1 Analisis Sistem 28

3.1.1 Analisis Masalah 28

3.1.2 Analisis Persyaratan (Requirement Analysis) 30 3.1.2.1 Analisis Persyaratan Fungsional 30 3.1.2.2 Analisis Persyaratan Non-Fungsional 30 3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case 31

3.1.3 Analisis Proses Sistem 40

3.2 Perancangan Sistem 45

3.2.1 Class Diagram 45

3.2.2 Perancanga Antar Muka 48

Bab 4 Implementasi dan Pengujian Aplikasi 53

4.1 Implementasi 53

4.1.1 Tampilan Halaman Utama 53

4.1.2 Tampilan Halaman Bangkitkan Kunci 54 4.1.3 Tampilan Halaman Enkripsi dan Penyisipan 56 4.1.4 Tampilan Halaman Ekstraksi dan Dekripsi 60

4.2 Pengujian Aplikasi 64

4.2.1 Langkah-langkah Bangkitkan Kunci 66 4.2.2 Langkah-langkah Pengujian Enkripsi dan Penyisipan 66 4.2.3 Langkah-langkah Pengujian Ekstraksi dan Dekripsi 68 4.2.4 Hasil Pengujian Enkripsi dan Penyisipan 70 4.2.5 Hasil Pengujian Ekstraksi dan Dekripsi 75

Bab 5 Kesimpulan dan Saran 79

5.1. Kesimpulan 79

5.2. Saran 80

(10)

DAFTAR TABEL

Daftar Karakter ASCII yang Digunakan

Dokumentasi Naratif Program Enkripsi dan Steganografi. Dokumentasi Naratif Use Case Bangkitkan kunci

Dokumentasi Naratif Use Case Enkripsi

Dokumentasi Naratif Use Case Ektraksi dan dekripsi Kelas dan Atributnya

Citra Hasil Enkripsi dan Penyisipan

Waktu Enkripsi dan Penyisipan untuk Session I Waktu Enkripsi dan Penyisipan untuk Session II Waktu Enkripsi dan Penyisipan untuk Session III Waktu Enkripsi dan Penyisipan untuk Session IV Waktu Enkripsi dan Penyisipan untuk Session V Waktu Rata-Rata Enkripsi dan Penyisipan Waktu Ekstraksi dan Dekripsi untuk Session I Waktu Ekstraksi dan Dekripsi untuk Session II Waktu Ekstraksi dan Dekripsi untuk Session III Waktu Ekstraksi dan Dekripsi untuk Session IV Waktu Ekstraksi dan Dekripsi untuk Session V Waktu rata-rata Ekstraksi dan Dekripsi

(11)

DAFTAR GAMBAR

Proses Penyisipan dan Ekstraksi dalam Steganografi Cara mengakses bit dari gambar

Cara mengakses bit text

Menyisipkan bit-bit text file ke byte gambar Cara ekstraksi pesan dari Gambar

Contoh Usecase pada Proses Penjualan Contoh Activity Diagram

Contoh Class Diagram

Contoh sequence Diagram

Diagram Ishikawa untuk Analisis Permasalahan Sistem

Use CaseDiagram Sistem yang Akan dikembangkan

Activity Diagram Program Enkripsi dan Steganografi

Activity Diagram Bangkitkan Kunci

Activity Diagram Proses Enkripsi dan Penyisipan

Activity Diagram Ekstraksi dan Dekripsi

Sequence Diagram Bangkitkan kunci Sequnce Diagram Enkripsi dan Penyisipan

Sequnce Diagram Ekstraksi dan Penyisipan

Class Diagram untuk Sistem yang Dikembangkan

Jframe Menu Utama Program

Jframe Bangkitkan Kunci

Jframe Enkripsi&Penyisipan

Jframe Ekstraksi dan Dekripsi

Jframe About Program

Jframe Cara Penggunaan Program Halaman Utama

Buka File Pesan, Kunci, dan Gambar Proses Enkripsi dan Penyisipan

Simpan File Citra Digital Hasil Enkripsi dan Penyisipan Buka File Gambar dan Kunci

Proses Ekstraksi dan Dekripsi Simpan File Citra

Grafik Waktu Enkripsi dan Penyisipan Grafik Waktu Ekstraksi dan Dekripsi

(12)

IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN

COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT

ABSTRAK

Pada saat ini, banyak data atau informasi user yang dicuri oleh orang yang tidak berkepentingan, sehingga berkembanglah beberapa teknik keamanan, dimana salah satunya kriptografi. Pada kriptografi, data akan diacak sehingga tidak dapat dibaca dan dimengerti oleh orang lain. Kriptoanalisis adalah teknik yang digunakan untuk memecahkan kriptografi, sehingga data acak dapat dikembalikan ke data asli, sehingga kriptografi tidak sepenuhnya aman. Untuk mendapatkan keamanan yang lebih kuat, maka akan digabungkan kriptografi dengan steganografi. Algoritma kriptografi yang akan digunakan adalah ElGamal dengan pembangkit bilang prima lehmann, sedangkan algoritma steganografi yang akan digunakan adalah least significant bit (LSB). Data atau informasi terlebih dahulu dienkripsi dengan algoritma ElGamal, kemudian disisipkan kedalam sebuah citra dengan algoritma LSB, sehingga hasil dari enkripsi dan steganografi tidak akan menimbulkan kecurigaan bagi pihak lain. Berdasakan pengujian, untuk mengenkripsi dan menyisipkan pesan 20 hingga 60 karakter, dibutuhkan waktu kurang dari 3 detik, sedangkan waktu untuk ekstraksi dan dekripsi kurang dari 1 detik, serta perubahan citra tidak tampak oleh mata. Oleh karena itu, dapat disimpulkan bahwa dengan menggabungkan kriptografi dan steganogrofi maka keamanan data lebih kuat dan kinerja dari program adalah baik.

(13)

IMPLEMENTATION OF ELGAMAL ELGORITHM USING LEHMANN'S PRIME GENERATOR AND LEAST SIGNIFICANT BIT ALGORITHM

WITH BITMAP COVER IMAGE TO SECURE TEXT DATA.

ABSTRACT

At this time, a lot of data or user information stolen by people who are not interested, so it develops some security techniques, one of which cryptography. Using cryptography, the data will be encrypted so it can not be read and understood by others. Cryptanalysis is the technique used to solve cryptography, so that random data can be restored to the original data, so cryptography is not completely secure. In order to obtain stronger security, it will be combined steganography with cryptography. Cryptographic algorithms that will be used is ElGamal , whereas steganography algorithms that will be used is the least significant bit (LSB). Data or information will encrypted with ElGamal algorithm, and then inserted into an image with the LSB algorithm, so that the results of encryption and steganography would not arouse suspicion for others. Based on the testing, to encrypt and insert messages 20 to 60 characters, it takes less than 3 seconds, while the time for extraction and decryption of less than 1 second, and the image changes are not visible to the eye. Therefore, it can be concluded that by combining cryptography and steganography, it will obtain the stronger security and the performance of the program is good.

(14)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Dengan perkembangan internet yang sangat pesat, maka kerahasian data atau informasi merupakan objek yang sangat penting. Banyak pengguna internet yang dirugikan karena data atau informasi penting yang mereka miliki jatuh ketangan orang yang tidak bertanggung jawab. Oleh karena itu berkembanglah beberapa teknik pengamanan data atau informasi, diantaranya enkripsi dan steganografi.

Enkripsi adalah proses mengamankan suat tersebut kedalam bentuk acak sehingga isi informasi tersebut tidak dapat dibaca atau dimengerti. Algoritma yang digunakan untuk enkripsi telah mengalami perkembangan, mulai dari algoritma klasik hingga algoritma modern. Akan tetapi enkripsi tetap memiliki kelemahan, salah satunya yaitu hasil dari enkripsi akan menghasilkan karakter acak yang akan menimbulkan kecurigaan bahwa informasi tersebut merupakan informasi yang penting.

(15)

Penelitian yang dilakukan Eike Kiltz dan Krzysztof Piertzak (2010), dalam Journal of Centrum Wiskunde and Informatica, berjudul Leakage Resilient ElGamal Encryption [6]. Dalam penelitian ini dijelaskan bahwa banyak terjadi serangan terhadap data user, meskipun data tersebut telah dienkripsi. Dengan menggunakan enkripsi, tidak ada jaminan bahwa data aman, bahkan banyak data yang telah dienkripsi dapat dipecahkan. Dengan banyaknya teknik kriptoanalis yang telah berkembang pada saat ini, maka semakin besar kemungkinan untuk memecahkan sebuah enkripsi.

Untuk meningkatkan keamanan informasi dalam berkomunikasi, maka pada skripsi ini akan dibuat program yang menggabungkan enkripsi dan steganografi. Dengan menggunakan program ini maka pesan teks akan dienkripsi, kemudian disisipkan kedalam sebuah file gambar berekstensi Bitmap, sehingga pesan tersebut tidak kelihatan. Algoritma yang digunakan untuk enkripsi adalah ElGamal dengan pembangkit bilangan prima Lehmann, Sedangkan untuk menyisipkan pesan tersebut kedalam file gambar akan menggunakan algoritma Least Significant Bit (LSB).

1.2 Perumusan Masalah

Permasalahan yang akan dibahas dalam penelitian ini adalah

1. Bagaimana mengamankan data atau informasi user dari pihak yang tidak berkepentingan

dengan menggunakan algoritma ElGamal dan algoritma Least Significant Bit (LSB) . 2. Bagaimana kinerja program.

1.3 Batasan Masalah

Batasan masalah yang menjadi acuan dalam pengerjaan skripsi ini :

1. Algoritma yang digunakan untuk enkripsi adalah ElGamal, sedangkan untuk steganografi

dengan metode Least Significant Bit (LSB).

2. Bahasa pemograman yang digunakan adalah Java.

3. File gambar yang digunakan hanya berekstensi Bitmap (BMP).

4. Ukuran file gambar harus besar sehingga dapat menampung ciphertext.

5. Informasi yang disembunyikan hanya berupa teks.

(16)

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah membuat sistem keamanan yang kuat karena pesan akan dienkripsi kemudian disisipkan ke file gambar, sehinga ketika file tersebut jatuh ketangan orang lain, maka orang tersebut tidak menyadari bahwa didalam file tersebut terdapat informasi penting.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah:

1. Dengan menggunakan program enkripsi dan steganografi, maka kerahasiaan (Confidentiality) dan integritas data user (integrity data) dapat dijaga.

2. Memberikan kenyamanan bagi user untuk mengirim pesan melalui internet, karena mereka tidak perlu khawatir mengenai keamanan pesan yang akan mereka kirim.

1.6 Metode Penelitian

Metodologi penelitian yang akan dugunakan adalah:

1. Studi Literatur

Mempelajari literatur tentang teori dasar yang mendukung penelitian ini, yaitu tentang kriptografi dan steganografi.

2. Analisis dan Perancangan Sistem

(17)

3. Implementasi Sistem

Setelah tahap analisis dan perancangan selesai, maka apa yang telah dirancang akan diimplementasikan ke dalam sebuah program dengan menggunakan salah satu bahasa pemograman.

4. Pengujian Sistem

Setelah program selesai dibuat maka akan dilakukan pengujian sistem, dimana akan dilakukan proses enkripsi kemudian steganografi, dan sebaliknya di extract kemudian di dekripsi. Pada pengujian sistem akan dianalisis apakah program bekerja sesuai dengan apa yang telah dirancang.

5. Dokumentasi Sistem

Membuat dokumentasi dari tahap awal hingga pengujian sistem, sebagai laporan tugas akhir.

1.7 Sistematika Penulisan

Sistematika penulisan yang diuraikan pada skripsi ini terdiri dari beberapa bagian utama, yaitu :

BAB 1: PENDAHULUAN

Bab ini berisi tentang penjelasan tentang latar belakang masalah mengapa judul penelitian ini diangkat, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2: TINJAUAN PUSTAKA

(18)

BAB 3: ANALISIS DAN PERANCANGAN

Bab ini berisi tentang analisis dan perancangan sistem dengan menggunakan

Unified Modeling Language (UML) yang tediri dari 4 diagram, yaitu use case diagram, activity diagram, sequence diagram dan class diagram .

BAB 4: IMPLEMENTASI DAN PENGUJIAN APLIKASI

Bab ini berisi implementasi sistem kedalam sebuah program dan pengujian kinerja program. Pada tahap pengujian akan diuji kinerja sistem berdasarkan waktu yang dibutuhkan sistem dalam melakukan proses enkripsi dan penyisipan, serta proses ekstraksi dan dekripsi.

BAB 5: KESIMPULAN DAN SARAN

(19)

BAB II

LANDASAN TEORI

2.1 Definisi dan Tujuan Kriptografi

Kriptografi adalah ilmu yang mempelajari teknik-teknik denga

sertaplaintext

atau cleartext dan ciphertext. Plaintext adalah data yang dapat dibaca dan dipahami, sedangkan chipertext adalah data acak yang tidak dapat dipahami. Proses yang ada pada kriptografi ada 2, yaitu enkripsi dan dekripsi. Enkripsi adalah proses mengacak data sehingga data tidak dapat dibaca oleh pihak lain atau dengan kata lain mengubah plaintext menjadi

ciphertext. Sedangkan dekripsi adalah proses mengubah pesan yang telah diacak menjadi pesan asli dengan kata lain mengubah ciphertext menjadi plaintext.

Terdapat 4 tujuan dasar kripografi [13], yaitu:

a) Confidentiality (kerahasiaan) yaitu isi pesan yang dikirim tidak diketahui oleh pihak

yang tidak berhak.

b) Data integrity (keutuhan data) yaitu isi pesan harus utuh, dimana tidak terjadi

manipulasi data (penghapusan, pengubahan atau penambahan) oleh pihak yang tidak berhak.

c) Authentication (keotentikan) yaitu berhubungan dengan identifikasi, baik secara kesatuan

sistem atau informasi itu sendiri.

d) Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk

(20)

2.2 Jenis Algoritma Kriptografi

Terdapat 2 jenis kriptografi jika dibagi berdasarkan kunci yang digunakan untuk proses enkripsi dan dekripsi, yaitu algoritma simetris dan algoritma simetis.

2.2.1 Algoritma Simetris

Jika kunci yang digunakan untuk proses enkripsi dan proses dekripsi sama, maka algoritma tersebut disebut algoritma simetris [1]. Keamanaan dari pesan yang dikirim tergantung pada kunci tersebut, apabila jatuh kepada tangan yang tidak berhak maka dia dapat memperoleh isi pesan tersebut. Pada algoritma ini kunci yang digunakan berdasarkan kesepakatan antara si pengirim dan si penerima. Algoritma simetri memiliki 2 kategori yaitu stream algorithms dan

block algorithms. Stream algorithms beroperasi dalam satu bit tunggal selama satu selang waktu pada plainteks. Block algorithms beroperasi dalam group bit-bit dalam satu selang waktu pada plainteks. Ukuran block yang sering digunakan adalah 64 bit ataupun 128 bit. Beberapa algoritma yang menggunakan simetris adalah Data Encryption Standard (DES), RC2, RC4, RC5, RC 6, International Data Encryption Algorithm (IDEA), Advanced Encryption Standard

(AES), On Time Pad (OTP), A5, dan lain sebagainya.

2.2.2 Algoritma Asimetris

Algoritma asimetris adalah sebuah teknik enkripsi yang menggunakan 2 kunci yang berbeda, yaitu kunci publik untuk proses enkrispi dan kunci privat untuk proses dekripsi [1].

1. Kunci umum (public key), kunci yang boleh semua orang tahu (dipublikasikan).

2. Kunci rahasia (private key), kunci yang dirahasiakan (hanya boleh diketahui oleh satu orang). Dengan kunci public, orang dapat mengenkripsi tetapi tidak dapat mendeskripsikannya, hanya orang yang memiliki kunci private yang dapat mendeskripsikannya. Beberapa algoritma yang menggunakan asimetri adalah Digital Signature Algorithm (DSA), RSA, Diffle-Hellman (DH), Elliptic Curve Cryptography (ECC), Kriptografi

(21)

2.3 Algoritma ElGamal

Algoritma ElGamal awalnya digunakan untuk tanda tangan digital, namun kemudian dimodifikasi untuk digunakan dalam proses enkripsi dan dekripsi. Algoritma ini merupakan salah satu algoritma asimetris, dimana untuk enkripsi menggunakan kunci public dan untuk dekripsi menggunakan kunci

private. Kelebihan dari enkripsi ini adalah untuk plaintext yang sama, setiap kali dienkripsi akan menghasilkan ciphertext yang berbeda, karena session key yang dihasilkan berbeda untuk setiap kali proses enkripsi [7]. Kelemahannya adalah panjang ciphertext-nya akan dua kali dari panjang

plaintext-nya.

Berikut merupakan proses enkripsi dan dekripsi algoritma ElGamal, dimana diasumsikan Alice ingin mengirim pesan m kepada Bob, dan m € {0,1, ..., p-1} [7] .

a. Proses pembangkit kunci ElGamal.

1. Bob memilih sebuah bilangan prima p secara acak dan α adalah akar primitive root modulo p.

2. Bob kemudian memilih sebuah bilangan integer a dimana 2 ≤ a ≤ p-1 dan menghitung �� (���)

3. Bob memiliki kunci public( �,�,�� ) dan kunci private-nya adalah a. b. Proses enkripsi pada algoritma ElGamal.

1. Alice memperoleh kunci public dari Bob ( �,�,�� ). 2. Dia memilih bilangan acak b < p-1 .

3. Dia menghitung �� ( ���� ) dan ���� ( ���� ). 4. Alice selanjutnya mengirim ciphertext� = (��,����). c. Proses dekripsi pada algoritma ElGamal.

1. Bob menggunakan kunci private untuk menghitung (��)−� ≡ (��)�−1−� ( ���� ). 2. Selanjutnya dia mendekripsi m dengan menghitung (��)−��� (���� ).

Keterangan :

1. m merupakan nilai desimal masing-masing karakter dari plaintext.

2. α adalah sebuah bilangan acak yang nilainya merupakan akar primitive root dari modulo p. 3. a merupakan kunci privat yang nilainya merupakan bilangan prima.

(22)

2. 3.1 Pembangkit Bilangan Prima Lehmann

Untuk membangkitkan bilangan acak prima dapat menggunakan metode Lehmann. Adapun langkah-langkah untuk mengetahui sebuah bilangan p prima atau tidak [10] adalah sebagai berikut:

1. Pilih sebuah bilangan acak a yang lebih kecil dari p.

2. Hitunga nilai �(�−1)/2 ����.

3. Jika �(�−1)/2 ≢1 (����) dan �(�−1)/2 ≢ −1 (����), maka p dipastikan bukan bilangan prima.

4. Jika �(�−1)/2 ≡ 1 �� −1(����),kemungkinan p bukan bilangan prima tidak lebih dari 50 %. Keterangan :

p merupakan bilangan yang ingin dicek apakah merupakan bilangan prima atau tidak

a adalah bilangan acak yang nilainya lebih kecil dari p

2. 3.2 Contoh Perhitungan ElGamal

Berikut adalah contoh proses perhitungan enkripsi dan dekripsi menggunakan algoritma ElGamal: Andi ingin mengirim sebuah pesan Hermanda kepada ani. ani memilih sebuah kunci privat 223, nilai bilangan primanya 21787, sedangkan nilai yang primitive root terhadapat bilangan primanya adalah 150. Berikut adalah proses yang dilakukan dalam pengiriman pesan :

1. Proses Generate Kunci Hitung: �� (����)= 7279

Hasil : Kunci publik → (p = 21787, � = 150, �� = 7279), Kunci privat → ( p =21787,

a=223). 2. Proses Enkripsi Pesan :

Pertama, ubah karakter ke decimal menggunakan tabel ascii, kemudian bangkitkan nilai b, dimana syaratnya b < p-1.

(23)

m= 109 => b = 13902 a= 97 => b = 18045 n=110 => b = 12817 d=100=> b =15641 a=97=> b =1317

Kedua, Lakukan perhitungan ciphertext dengan rumus { �� ( ���� ),���� ( ���� ).} �� ( ��� ) =>1509832 ( ��� 21787 ) = 21715

1509583 ( ��� 21787 ) = 3416

150 1939 ( ��� 21787 ) = 19092

15013902 ( ��� 21787 ) = 3372

15018045 ( ��� 21787 ) = 21337

15012817 ( ��� 21787 ) = 6487

15015641 ( ��� 21787 ) = 14118

1501317 ( ��� 21787 ) = 19426

���� ( ��� )=> 7272799832 ( ��� 21787 ) = 8248

101�72799583 ( ��� 21787 ) = 9552

114�72791939 ( ��� 21787 ) = 4812

109�727913902 ( ��� 21787 ) = 7553

97�727918045 ( ��� 21787 ) = 8394

110�727912817 ( ��� 21787 ) = 8740

100�727915641 ( ��� 21787 ) = 7234

(24)

Dari Proses diatas, dihasilkan ciphertext { 21715, 8248, 3416, 9552, 19092, 4812, 3372, 7553, 21337, 8394, 6487, 8740, 14118, 7234, 19426, 10154 }

3. Proses Dekripsi Pesan.

Langkah Pertama yaitu menghitung (��)−� ≡ (��)�−1−� ( ��� ) menggunakan kunci privat. Selanjutnya mendekripsi m dengan menghitung (��)−��� (���� ).

(��)�−1−� ( ���� )=> (21715 )21563 ( ��� 21787) = 1120

(3416)21563 ( ��� 21787 ) = 4929

(19092)21563 ( ��� 21787 ) = 6221

(3372)21563 ( ��� 21787 ) = 19064

(21337)21563 ( ��� 21787 ) = 3735

(6487)21563 ( ��� 21787 ) = 8650

(14118)21563 ( ��� 21787 ) = 7686

(19426)21563 ( ��� 21787 ) = 10503

(��)−��� (���� )= 1120�8248 ��� 2903 = 72

4929x9552 mod 2903 = 101

6221x4812 mod 2903 = 114

19064x7553 mod 2903 = 109

3735x8394 mod 2093 = 97

8650x8740 mod 2903 = 110

7686x7234 mod 2093 = 100

10503x10154 mod 2093 = 97

(25)

2.4 Landasan Matematika Kriptografi

2.4.1 Aritmetika Modulo

Bilangan modulo adalah bilangan sisa hasil pembagian sebuah bilangan dengan bilangan yang lain. Misalkan sebuah bilangan m dibagi dengan b menghasilkan sisa bilangan a,dimana nilai bilangan a terletak diantara himpunan{0,1,2,...,b-1}, maka b disebut modulus atau modulo. Notasi : m mod b = a , sedemikian sehingga m = bq + a , dengan 0 ≤ a < b .

Contoh :

23 mod 6 = 5 (23 = 6.3 + 5) 2 mod 5 =2 (2 = 2.0 +2) -21 mod 9 =6 (-21=9(-3)+6)

Penjelasan untuk -41 mod 9 = 4 : karena m negatif, bagi |m| dengan b mendapatkan sisa a’. Maka m mod b = ba’ bila a’≠ 0. Jadi |-21| mod 9 = 3, sehingga -21 mod 9 = 9 – 3 = 6

Alasan mengapa aritmatika modulo baik digunakan pada kriptografi adalah sebagai berikut:

1) karena nilai-nilai aritmatika modulo berada dalam himpunan berhingga, yaitu diantara 0 hingga modulus b-1, maka perhitungan pada proses kritografi tidak diluar himpunan, yang berarti dalam proses dekripsi tidak akan mengahasikan nilai yang berbeda dari pesan aslinya

2) Bilangan yang akan dikerjakan adalah bilangan bulat, sehingga dengan menggunakan aritmatika modulo kita tidak perlu khawatir kehilangan informasi akibat pembulatan (round off) sebagaimana pada operasi bilangan riil .

2.4.2 Bilangan Prima

(26)

yang merupakan bilangan genap. Bilangan asli yang lebih besar dari satu dan tidak termasuk dalam bilangan prima, maka bilangan tersebut disebut bilangan komposit. Contohnya bilangan 20 disebut komposit karea bilangan tersebut dapat dibagi 1,2,4,5,10 dan 20.

Teori The Fundamental Theorem of Arithmetic menyebutkan bahwa setiap bilangan positif dimana nilainya lebih besar atau sama dengan 2, maka bilangan tersebut dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima.

Sebagai contoh : 9= 3 X 3 → bilangan asli 9 dapat difaktorkan dari 2 bilangan prima. Dalama pengujian suatu bilangan, apakah merupakan bilangan prima atau bilangan komposit, maka dapat dilakukan dengan membagi bilangan tersebut dengan sejumlah bilangan prima yang dimulai 2,3,..., hingga bilangan prima lebih kecil atau sama dengan akar bilangan itu sendiri. Apabila bilangan tersebut habis dibagi dengan salah satu bilangan prima tersebut, maka bilangan tersebut adalah bilangan komposit, tetapi jika bilangan tersebut tidak habis dibagi dengan semua bilangan prima tersebut, maka bilangan tersebut merupakan bilangan prima[8].

2.4.3 Modulo Eksponensial

Untuk membagi sebuah bilangan dengan pangkat besar maka dibutuhkan fungsi modulo

eksponensial, karena dengan menggunakan modulo biasa akan membutuhkan waktu yang besar. Misalkan kita ingin mencari modulo dari 6110 mod 634, dengan menggunakan modulo konvensional maka fungsinya akan seperti berikut:

8121 mod 513 = (8 x 8 x 8 x ... x 8) mod 513

= 1.8788340662190665823115844774315e+109 mod 513 = 8

(27)

Contoh : 79 mod 27 diselesaikan dengan menggunakan modulo eksponensial :

n diinisialisasi dari bilangan 1, perulangan akan dilakukan dari bilangan 1 sampai 9 dengan rumus d = 7 x d mod 23, nilai inisialisasi d pertama = 1.

n = 1 → 7 x 1 mod 27 = 7

n = 2 → 7 x 7 mod 27 = 22 n = 3 → 7 x 22 mod 27 = 19 n = 4 → 7 x 19 mod 27 = 25 n = 5 → 7 x 25 mod 27 = 13 n = 6 → 7 x 13mod 27 = 10 n = 7 → 7 x 10 mod 27 =16 n = 8 → 7 x 16 mod 27 =4 n = 9 → 7 x 14 mod 27 =1

Berikut pseducode dari modulo eksponensial :

function modular_pow(base, exponent, modulus)

c := 1

for e_prime = 1 to exponent

c := (c * base) mod modulus

return c

2.4.4 Primitive Root

Jika m elemen bilangan natural maka 1 < m < p, p merupakan bilangan prima. Kemudian hitung nilai mt untuk t = 1, 2, ... sampai mt = 1 (mod p). Dengan kata lain, hitung pangkat hingga nilai ordp (m) ditemukan. Nilai ordp (m) dapat diperoleh dari nilai ⏀(p) = p-1. Jika t =

ordp (m) = ⏀(p) maka m merupakan sebuah primitive roots modulo p [7].

Contoh : Apakah 2 dan 4 merupakan primitive root dari 5 atau tidak.

(28)

2.5 Steganografi

2.5.1 Definisi Steganografi

Steganografi adalah seni dan ilmu menulis pada sebuah covertext, dimana yang mengetahui adanya pesan rahasia yang dikirim hanya si pengirim dan penerima [2]. Syarat utama dari steganografi adalah tidak ada algoritma yang dapat mendeteksi keberadaan hidden message pada sebuah media yang telah disisipi hidden message tersebut. Pada steganografi dibutuhkan dua properti, yaitu covertext dan hidden message. Steganografi digital menggunakan media digital sebagai covertext, contohnya citra, suara, text, video, dan untuk hidden message-nya juga dapat berupa citra, suara, text ataupun video.

Penyembunyian pesan rahasia kedalam sebuah media digital akan mengubah kualitas dari media tersebut. Untuk itu, pada steganografi ada beberapa kriteria yang harus diperhatikan [5], yaitu:

1. Fidelity. kualitas covertext yang telah disisipi pesan tidak jauh berubah. artinya setelah pesan disisipkan ke covertext, maka hasil steganografi masih terlihat dengan baik, sehingga pengamat tidak tau jika pada covertext telah disisipkan pesan rahasia.

2. Recovery. pesan yang disembunyikan dapat diambil kembali (recovery), karena tujuan utama dari steganografi adalah menyembunyikan pesan dari orang yang tidak berhak dan memberikan pesan tersebut kepada sipenerima.

(29)

Media yang telah disisipi pesan disebut stegomessage. Proses penyembunyian data ke dalam media disebut penyisipan (embedding), sedangkan proses sebaliknya disebut ekstraksi. Penambahan kunci yang bersifat opsional dimaksudkan untuk lebih meningkatkan keamanan.

Gambar 2.2 Proses Penyisipan dan Ekstraksi dalam Steganografi

2.5.2 Teknik Steganografi

Pada steganografi terdapat beberapa teknik [2], yaitu:

1. Teknik substitusi, yaitu dengan mensubtitusikan bagain yang redundant dari cover dengan pesan rahasia. contohnya: Least Significant Bit (LSB) Substitution.

2. Teknik Tranformasi, yaitu menyisipkan pesan pada perubahan ruang dari media, seperti perubahan frekuensi media. contohnya : Discrete Cosine Transform (DCT) domain.

3. Teknik spread spectrum, yaitu dengan mengadopsi teknik penyebaran spectrum

pada saat komunikasi wireless, dimana sinyal yang ditransmisikan dalam sebuah

bandwith melebihi kebutuhan minimun untuk mengirim informasi.

4. Teknik statistik, yaitu dengan memecahkan cover kedalam block-block dan setiap

block digunakan untuk untuk menyimpan sebuah bit pesan. teknik ini sulit untuk diterapkan pada banyak kasus, karena harus ada pengujian yang telah dilakukan dimana perbedaan antara block cover yang dimodifikasi dan yang tidak dimodifikasi diijinkan.

5. Teknik distorsi, yaitu dengan menyisipkan pesan pada distorsi sinyal, dengan kata lain menyisipkan pesan diantara kekosongan sinyal yang ada. contohnya dengan menyisipkan pesan diantara jarak antar kata pada sebuah text.

(30)

2.6 Least Significant Bit (LSB)

Dengan mengunakan Teknik LSB, maka pesan rahasia akan disisipkan kedalam pixel-pixel dimana nilai perubahan pixelnya sangat kecil, sehingga perubahan citra tidak tertangkap oleh indra penglihatan manusia [2]. Pada teknik ini akan dilakukan modifikasi bit-bit pada setiap byte warna pada sebuah pixel. Nilai bit pada bit-bit LSB akan diganti dengan bit-bit pesan yang akan disisipkan. Berikut adalah Gambaran cara kerja penyisipan pesan menggunakan teknik LSB :

1. Langkah pertama yaitu dengan mengakses bit-bit dari Gambar.

0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 ...

Gambar 2.3 Cara mengakses bit dari gambar. 2. Langkah berikut yaitu membaca file text, Kemudian mengakses bit-bitnya.

Pada proses

Gambar 2.4 Cara mengakses bit text. ...

R G B R G B ...

p U b ...

112 117 98 ...

0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 ... Original Image

Pixel array

3

8 bits/byte

8 bits/byte

1 byte/char

(31)

3. Menyisipkan setiap satu bit dari text file ke setiap byte dari gambar, dimana disisipkan ke bagian ujung, sehingga perubahan gambar sangat kecil.

0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 ...

0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 ...

Gambar 2.5 Menyisipkan bit-bit text file ke byte gambar

4. Ekstraksi Pesan dari gambar, dengan cara mengambil bit terakhir dari setiap byte gambar yang telah disisipi bit-bit text file.

Gambar 2.6 Cara ekstraksi pesan dari Gambar.

0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 ...

0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 ...

0 1 1 ... text

original Image bits

Modified Image bits

Modified Image

text bits Modifie

dImage

(32)

Dari proses diatas dapat dilihat bahwa setiap bit LSB akan digantikan dengan bit-bit pesan. Apabila citra covernya menggunakan bitmap 24 bit, maka setiap pixel pada gambar tersebut terdiri dari warna merah, hijau dan biru (RGB) yang masing-masing tersusun dari 8 bit, dengan demikian pada setiap pixel berkas bitmap akan disisipkan 3 bit pesan. Kelebihan dari algoritma LSB adalah cepat dan mudah untuk diaplikasikan, sedangkan kekurangannya adalah ukuran pesan yang dapat disisipkan terbatas.

2.7 Citra Digital

Citra adalah representasi dari sebuah objek. Citra sebagai keluaran suatu sistem perekaman

data dapat bersifat analog, berupa sinyal-sinyal video, seperti gambar pada monitor televisi

atau yang bersifat digital yang dapat langsung disimpan pada suatu pita magnetic. Menurut

presisi yang digunakan untuk menyatakan titik-titik kordinat pada domain spatial (bidang),

dan untuk menyatakan nilai keabuan atau warna dari suatu citra, maka secara teoritis citra

dapat dikelompokkan menjadi empat kelas, yaitu : citra kontinu-kontinu, kontinu-diskrit,

diskrit-kontinu, dan diskrit-diskrit. Dimana label pertama menyatakan presisi dari titik-titik

koordinat pada bidang citra, sedangkan label kedua menyatakan presisi nilai keabuan atau

warna. Kontinu dinyatakan dengan presisi angka tak terhingga, sedangkan diskrit dinyatakan

dengan presisi angka terhingga. Komputer digital bekerja dengan angka-angka presisi

terhingga. Dengan demikian, hanya citra dari kelas diskrit yang dapat diolah oleh komputer.

Citra dari kelas tersebut lebih dikenal dengan citra digital.

Citra digital adalah citra yang terdiri dari sinyal-sinyal frekuensi elektromagnetis yang

sudah di-sampling sehingga dapat ditentukan ukuran titik gambar tersebut yang pada

umumnya disebut pixel. Untuk menyatakan citra (image) secara matematis, dapat

didefinisikan fungsi f(x,y) di mana x dan y menyatakan suatu posisi dalam koordinat dua

dimensi dan harga f pada titik (x,y) adalah harga yang menunjukkan warna citra pada titik

tersebut. Citra digital adalah citra yang dinyatakan secara diskrit (tidak kontinu), baik untuk

posisi koordinatnya maupun warnanya. Dengan demikian, citra digital dapat digambarkan

sebagai suatu matriks, di mana indeks baris dan indeks kolom dari matriks menyatakan posisi

suatu titik di dalam citra, dan harga dari elemen matriks menyatakan warna citra pada titik

tersebut. Dalam citra digital yang dinyatakan sebagai susunan matriks seperti ini,

(33)

2.7.1 Citra Bitmap (BMP)

Format Bitmap merupakan sebuah format citra yang digunakan untuk menyimpan citra tanpa menggunakan kompresi, sehingga menghasilkan citra yang lebih baik dari format lain. Ada 3 macam citra dalam format BMP, yaitu citra biner, citra berwarna dan citra hitam-putih (grayscale). Citra biner hanya memiliki 2 nilai keabuan, yaitu 0 dan 1, sehingga 1 bit sudah cukup untuk merepresentasikan nilai pixel. Citra berwarna adalah citra umum, dimana citra tersebut merupakan kombinasi 3 warna dasar, yaitu merah, hijau dan biru. Setiap Pixel

tersusun oleh R (red), G (green) dan B (blue). Dengan kombinasi ketiga warna maka akan menghasilkan warna yang khas dari nilai pixel dari ketiga warna dasar tersebut. Pada citra hitam-putih, nilai R = G = B untuk menyatakan bahwa citra hitam-putih hanya mempunyai

satu kanal warna. Citra hitam-putih pada umumnya adalah citra 8 bit.Citra yang lebih kaya

warna adalah citra 24-bit. Setiap pixel panjangnya 24 bit, karena setiap pixel langsung

menyatakan komponen warna merah, komponen warna hijau, dan komponen warna biru.

Masing-masing komponen panjangnya 8 bit. Citra 24-bit disebut juga citra 16 juta warna,

karena ia mampu menghasilkan 224 = 16.777.216 kombinasi warna.

Pada format bitmap, citra disimpan sebagai suatu matriks di mana masing-masing

elemennya digunakan untuk menyimpan informasi warna untuk setiap pixel. Jumlah warna

yang dapat disimpan ditentukan dengan satuan bit-per-pixel. Semakin besar ukuran

bit-per-pixel dari suatu bitmap, semakin banyak pula jumlah warna yang dapat disimpan. Dalam

Windows dikenal bitmap dengan 1, 4, 8, 16, dan 24 bit per pixel. Jumlah warna maksimum

yang dapat disimpan dalam suatu bitmap adalah sebanyak 2n, dimana n adalah banyaknya bit

(34)

2.8 Tabel ASCII

Tabel American Standart Code for information (ASCII) terdiri dari 7 bit. Karakter yang ada pada tabel ini adalah karakter umum yang ada pada Sistem operasi Windows, Linux, Mac OS, dan lain sebagainya. Nilai desimalnya antara 0 hingga 127 dan untuk nilai binarinya 00000000 hingga 01111111. Untuk tabel exteded ASCII terdiri dari 8 bit, dimana terdiri dari 0 hingga 127 ASCII dasar ditambah dengan 128 hingga 255 karakter spesial dan nilai binarinya, yaitu 00000000 hingga 11111111. Pada tabel ASCII ada 32 karakter yang bersifat karakter kontrol yang disebut juga non-printable chacracters, dan karakter ini jarangan digunakan. Berikut merupkan tabel karakter yang sering digunakan :

Tabel 2.1 Daftar Karakter ASCII yang Digunakan

Decimal Binary Value Decimal Binary Value Decimal Binary Value

33 00100001 ! 53 00110101 5 73 01001001 I

34 00100010 " 54 00110110 6 74 01001010 J

35 00100011 # 55 00110111 7 75 01001011 K

36 00100100 $ 56 00111000 8 76 01001100 L

37 00100101 % 57 00111001 9 77 01001101 M

38 00100110 & 58 00111010 : 78 01001110 N

39 00100111 ' 59 00111011 ; 79 01001111 O

40 00101000 ( 60 00111100 < 80 01010000 P

41 00101001 ) 61 00111110 = 81 01010001 Q

42 00101010 * 62 00111110 > 82 01010010 R

43 00101011 + 63 00111111 ? 83 01010011 S

44 00101100 , 64 01000000 @ 84 01010100 T

45 00101101 - 65 01000001 A 85 01010101 U

46 00101110 . 66 01000010 B 86 01010110 V

47 00101111 / 67 01000011 C 87 01010111 W

48 00110000 0 68 01000100 D 88 01011000 X

49 00110001 1 69 01000101 E 89 01011001 Y

50 00110010 2 70 01000110 F 90 01011010 Z

51 00110011 3 71 01000111 G 91 01011011 [

(35)

Decimal Binary Value Decimal Binary Value

93 01011101 ] 113 01110001 q

94 01011110 ^ 114 01110010 r

95 01011111 _ 115 01110011 s

96 01100000 ` 116 01110100 t

97 01100001 a 117 01110101 u

98 01100010 b 118 01110110 v

99 01100011 c 119 01110111 w

100 01100100 d 120 01111000 x

101 01100101 e 121 01111000 y

102 01100110 f 122 01111010 z

103 01100111 g 123 01111011 {

104 01101000 h 124 01111100 |

105 01101001 i 125 01111101 }

106 01101010 j 126 01111110 ~

107 01101011 k 127 01111111 DEL

108 01101100 l

109 01101101 m

110 01101110 n

111 01101111 o

112 01110000 p

(36)

2.9 Unified Modelling Language

Unified Modeling Language (UML) adalah sebuah bahasa yang digunakan untuk menspesifikasikan, menvisualisasikan, membangun dan mendokumentasikan bagian objek dari sistem software, seperti model bisnis, model kerja software, dan lain sebagainya [13]. UML merupakan sebuah standart tunggal untuk mengembangkan sebuah sistem yang berorientasikan objek. Pada akhir tahun 1980 hingga awal tahun 1990 bahasa pemograman berorientasi objek berkembang pesat, sehingga kebutuhan akan metode dan analisis sistem berorentasi objek semakin besar. Oleh karena kebutuhan tersebut, maka pada tahun 1994 Booch dan Rumbaugh memulai menggabungkan metode relasional mereka. Pada 1995 pertama kali draft bahasa Unified direlease dan pada tahun 1996 metode tersebut diberinama UML.

Untuk menganalisis dan merancang sistem pada penelitian ini, maka digunakan beberapa diagram yaitu adalah use case diagram, activity diagram, sequence diagram dan

class diagram.

2.9.1 Use Case Diagram

Use Case adalah sebuah teknik yang menggambarkan interaksi aktor dengan sistem, korelasi antar proses, dan bagaimana sistem tersebut digunakan [9]. Dalam Use case ada beberapa komponen penting, yaitu aktor, skenario, dan use case itu sendiri. Pengertian aktor yang dimaksud disini adalah sesuatu dengan perilaku, contohnya manusia, sistem komputer, atau organisasi. Skenario yang dimaksud disini adalah urutan tindakan tertentu dan interaksi antara aktor dengan sistem. Sedangkan use case adalah kumpulan relasi dari skenario yang sukses dan yang gagal yang menggambarkan penggunaan sistem oleh aktor-aktor untuk mendukung tercapainya tujuan.

(37)

menginginkan terjadinya error pada saat menggunakan sistem. Penonton akan menginginkan proses pembayaran yang cepat dan dapat memilih bagku sendiri. Perusahaan menginginkan keakuratan transaksi dan kepuasan pelanggan. Penyedia layanan kartu credit menginginkan agar pengguna kartu kredit dapat membayar tiket dengan kartu kredit yang mereka miliki. Prasyarat dari sistem ini adalah kasir akan diautentikasi dan setiap kasih memiliki ID sendiri. Tujuan dari sistem ini adalah Agar proses penjualan tiket bioskop lebih cepat, pencatatan transaksi lebih baik dan lebih detail, dan pelanggan merasa puas karena prosesnya cepat . Berikut adalah Use case contoh kasus diatas :

(38)

2.9.2 Activity Diagram

Untuk dapat menggambarkan proses yang terjadi dan juga langkah-langkah use case yang ada atau logika behaviour dari objek, maka digunanakan sebuah diagram yang disebut Activity diagram. Dengan menggunakan diagram ini, dapat juga dimodelkan action yang akan dilakukan pada saat sebuah operasi dieksekusi atau memodelkan hasil dari action yang dilakukan [9]. Activity Diagram menyerupai flowchart karena secara grafis diagram ini menggambarkan aliran aktivitas baik proses bisnis ataupun use case. Perbedaan activity diagram dengan flowchart adalah activity diagram menyediakan sebuah mekanisme untuk menggambar kegiatan yang tampak secara paralel, sedangkan flowchart tidak. Berikut contoh

activity diagram :

(39)

2.9.3 Class Diagram

Class diagram adalah sebuah diagram yang berfungsi untuk menggambar struktur dari class, atribut-atribut dari class, dan hubungan antara class. Pada class diagram akan dijelaskan korelasi antar class dalam sebuah sistem dan bagaimana mereka saling terkait untuk mencapai sebuah tujuan [9]. Class memiliki 3 area pokok (utama) yaitu : nama ,atribut, dan operasi. Nama berfungsi untuk member identitas pada sebuah kelas, atribut fungsinya adalah untuk member karakteristik pada data yang dimiliki suatu objek di dalam kelas, sedangkan operasi fungsinya adalah memberikan sebuah fungsi ke sebuah objek.

(40)

2.9.4 Sequence Diagram

Sequence diagram adalah diagram yang digunakan untuk menggambarkan interaksi antar objek didalam skenario dan urutan proses yang terjadi berdasarkan urutan waktu [9] . Diagram ini akan menunjukkan sejumlah contoh objek dan message yang diletakkan diantara objek-objek ini dalam sebuah use case. Komponen utama sequence diagram terdiri atas objek yang dituliskan dengan kotak segiempat bernama. Message diwakili oleh garis dengan tanda panah dan waktu yang ditunjukkan dengan progress vertikal. Objek diletakkan didekat bagian atas diagram dengan urutan kiri ke kanan. Mereka diatur dalam urutan guna menyederhanakan diagram. Message bergerak dari satu participant ke participant lain dan dari satu lifeline ke lifeline yang lain.

(41)

BAB III

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Untuk dapat memahami kebutuhan sistem dan gambaran tugas-tugas yang akan dikerjakan sistem, maka dilakukan analisis dan perancangan sistem. Dalam analisis dan perancang sistem, akan dilakukan pemodelan rancang bangun sistem yang akan diimplementasikan dalam bentuk nyata.

3.1.1 Analisis Masalah

Diagram Ishikawa (fishbone diagram) biasanya digunakan untuk mengidentifikasi masalah yang ada pada sistem yang akan dirancang. Dengan diagram ishikawa kita dapat mengindentifikasi, mengeksplorasi dan menggambarkan suatau masalah serta sebab dan akibat dari masalah tersebut dalam bentuk grafis. Diagram ini disebut juga diagram sebab-akibat atapun diagram tulang ikan. Dengan mengindetifikasi masalah yang ada pada sistem, akan membantu dalam menganalisis persyaratan sistem yang akan dikembangkan sehingga tujuan dari sistem dapat dicapai.

(42)

Dalam kategori pengguna sistem atau program, yang menjadi masalah adalah data atau informasi yang dimiliki bersifat rahasia, jadi apabila data atau informasi tersebut jatuh ketangan yang tidak berkepentingan akan sangat merugikan pengguna. Pada kategori impelementasi kriptografi dan steganografi yang jadi masalah adalah hasil enkripsi pesan sangat tergantung dari panjang bilangan prima yang dibangkitkan sehingga apabila bilangan prima yang dibangkitkan sangat besar maka ketika disisipkan kecitra kemungkinan citra tidak dapat menampung panjangnya bit hasil enkripsi tersebut. Untuk kategori ukuran data atau informasi dan citra, yang jadi masalah adalah apabila ukuran data atau informasi besar sedangkan ukuran citranya kecil, maka citra tidak dapat menampung pesan yang telah dienkripsi. Sedangkan untuk kategori kunci, penyebab masalah adalah apabila kunci yang dibangkitkan tidak memenuhi syarat primitive root maka kemungkinan hasil dekripsinya berbeda dengan data sebenarnya besar. Dari semua masalah yang telah disebutkan diatas, maka berikut akan dibuat diagram ishikawanya :

Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalahan Sistem

(43)

3.1.2 Analisis Persyaratan (Requirement Analysis)

Dalam analisis persyatan sistem ada dua bagian penting yang harus dipenuhi, yaitu analisis persyaratan fungsional dan analisis persaratan non-fungsional.

3.1.2.1 Analisis Persyaratan Fungsional

Segala sesuatu yang harus dipenuhi sistem untuk mencapai tujuannya merupakan bagian dari persyaratan fungsional. Berikut adalah persyaratan fungsional sistem yang akan dirancang : 1. Sistem harus dapat mengenkripsi pesan menggunakan algoritma ElGamal, kemudian

menyisipkannya ke citra dengan algoritma LSB. Untuk dapat memperoleh data atau informasi asli, sistem harus dapat mengekstraksi data enkripsi dengan algoritma LSB, kemudian didekripsi dengan algoritma ElGamal.

2. Sistem harus dapat membangkitkan kunci, dimana user tidak harus mengerti tentang algoritma ElGamal.

3.1.2.2 Analisis Persyaratan Non-Fungsional

Persyaratan non-fungsional adalah persyaratan apa yang harus dilakukan sistem. Beberapa persyaratan non-fungsional yang harus dipenuhi oleh sistem yang dirancang adalah sebagai berikut :

1. Sistem harus dapat mengubah karakter ke desimal dengan menggunakan tabel ascii dan

juga sebaliknya dengan benar, sehingga tidak ada perbedaan hasil dekripsi dengan data atau informasi asli.

2. Perubahan citra yang ditimbulkan oleh penyisipan data enkripsi harus kecil dan tidak

tampak oleh mata manusia.

3. Waktu eksekusi untuk enkripsi dan penyisipan ciphertext ke citra harus kecil, dan juga

(44)

3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case

Untuk mendapatkan gambaran yang lebih jelas mengenai objek yang akan saling berinteraksi dengan sistem dan apa saja yang harus dilakukan oleh sistem agar sistem tersebut berfungsi dengan baik dan sesuai dengan fungsinya, maka akan dilakukan pemodelan sistem. Pemodelan yang akan dikembangkan adalah diagram use case, dimana yang menjadi aktor utamanya adalah pengguna. Pengguna dapat dikategorikan menjadu dua entitas yakni pengirim dan penerima.

Berdasarkan analisis kebutuhan sistem, beberapa hal yang harus dipenuhi oleh sistem, yaitu:

1. Sistem harus dapat membangkitkan kunci publik dan kunci privat yang akan digunakan dalam proses enkripsi dan dekripsi.

2. Sistem harus dapat melakukan enkripsi data atau informasi, kemudian sistem juga harus dapat menyisipkan chipertext ke file citra.

3. Sistem harus dapat mengekstraksi data atau informasi yang telah disisipkan kedalam citra, kemudian di dekripsi.

Berikut ini merupakan rancangan use case sistem yang akan dibuat sesuai dengan analisis kebutuhan yang telah dilakukan :

(45)

Dari use case diagram tampak bahwa penerima akan membangkitkan kunci publik dan kunci privat, kemudian kunci publik diberikan kepada siapa saja yang ingin mengirim data atau informasi kepadanya. Sedangkan kunci privat hanya diketahui oleh si penerima sehingga orang yang tidak berkepentingan tidak mengetahui data atau informasi yang dikirimkan oleh si pengirim. Setelah si pengirim mendapatkan kunci publik, kemudian pengirim akan melakukan proses enkripsi dan menyisipkan ciphertext ke dalam sebuah citra. Setelah data dienkripsi dan disisipkan, maka si pengirim dapat mengirimkan citra yang berisi data atau infromasi tersebut melalui layanan email atau sejenisnya kepada penerima. Setelah penerima menerima citra yang dikirimkan si pengirim, maka penerima akan mengekstraksi dan mendekripsikan data atau informasi yang ada pada citra tersebut. Berikut ini dokumentasi naratif untuk use case diagram :

Tabel 3.1 Dokumentasi Naratif Program Enkripsi dan Steganografi. Nama use case Program enkripsi dan steganografi

Aktor Penerima dan pengirim

Deskripsi

Use case mendeskripsikan bagaimana proses yang terjadi antara satu proses dengan proses yang lain dan antar proses dengan peringim atau penerima.

Pre-condition Data atau informasi yang dikirm berupa file txt

Typical course of event

Aksi aktor Respon sistem

(46)

mengekstraksi dan mendekripsi-kan data atau informasi yang ada pada citra.

Alternate course

Aksi aktor Respon sistem

- -

Post condition Data atau informasi yang dikirim si pengirim kepada penerima

sampai tanpa diketahui oleh orang lain.

Tabel diatas menjelaskan use case program enkripsi dan steganografi secara detail dimana terdapat actor, pre-condition, post-condition dan serta action dari pengguna dan sistem. Dengan tabel diatas dapat diketahui bagaimana cara penggunaan program dan langkah-langkah dalam menggunakan program.

Activity diagram untuk use case program enkripsi dan steganografi adalah :

(47)

Pada use case dapat dilihat terdapat beberapa aksi yang dilakukan oleh aktor, yaitu bangkitkan kunci, enkripsi dan penyisipan, ekstraksi dan dekripsi. Untuk menjelaskan ketiga proses, akan digambarkan dengan diagram activity setiap proses. Untuk menjelaskan proses bangkitkan kunci, maka berikut akan dibuatkan dokumentasi naratif untuk use case

bangkitkan kunci :

Tabel 3.2 Dokumentasi Naratif Use Case Bangkitkan kunci Nama use case Bangkitkan kunci

Aktor Penerima

Deskripsi Use case mendeskripsikan bagaimana penerima menggunakan sistem untuk membangkitkan sebuah kunci privat dan pulik.

Pre-condition Penerima belum memiliki kunci privat dan publik

Typical course of event

Aksi aktor Respon sistem

Langkah 1: Penerima

Langkah 2: sistem mengecek apakah biangan tersebut prima atau tidak. Jika prima maka bilangan tersebut akan dicetak dan jika tidak, akan digenerate sebuah bilangan prima.

Langkah 4: Sistem akan membangkitkan kunci privat dan publik

Alternate course

Aksi aktor Respon sistem

- -

Post condition Kunci telah dibangkitkan dan telah disimpan

Tabel diatas menjelaskan usecase bangkitkan kunci secara detail dimana terdapat

(48)

Gambar 3.4 Activity Diagram Bangkitkan Kunci

(49)

Tabel 3.3 Dokumentasi Naratif Use Case Enkripsi. Nama use case Enkripsi dan Penyisipan

Aktor Pengirim

Deskripsi

Use case ini berfungsi untuk melakukan enkripsi dengan algoritma ElGamal, kemudian hasil enkripsi disisipkan ke sebuah citra dengan algoritma LSB

Pre-condition Data atau informasi dalam bentuk text atau txt.

Typical course of event

Aksi aktor Respon sistem

Langkah 1: Pengirim menginput- kan data atau informasi, kunci publik dan citra.

Langkah 8: Pengirim menyimpan citra yang berisi data atau informasi yang telah dienkripsi.

Langkah 2: Sistem mengecek apakah data, kunci dan citra ada yang kosong atau tidak. Langkah 3 : Sistem melakukan proses enkripsi.

Langkah 4 : sistem mengecek apakah citra dapat menampung hasil enkripsi.

Langkah 5: Sistem menyisip-kan ciphertext ke citra.

Langkah 7: Sistem mencetak citra yang telah disisipi dengan ciphertext.

Alternate course

Aksi aktor Respon sistem

- -

Post condition Data atau informasi telah dienkripsi dan disisipkan ke citra, dimana

perubahan citra sangat kecil yang tidak tampak oleh mata manusia.

(50)

Gambar 3.5 Activity Diagram Proses Enkripsi dan Penyisipan

Pada proses ekstraksi dan dekripsi, penerima akan menginputkan citra yang diterima dari si pengirim dan kunci privatnya. Sistem akan mengecek apakah citra atau kunci privat, ada yang kosong. Apabila ada yang kosong, akan ada pemberitahuan apa yang harus dilakukan dan apabila tidak ada maka sistem akan melakukan proses ekstraksi. Hasil ektraksi akan didekripsi kemudiam hasilnya akan dicetak. Penerima menyimpan data atau informasi dalam bentuk file txt. Untuk lebih jelas, berikut akan dibuatkan dokumentasi naratif use case

(51)

Tabel 3.4 Dokumentasi Naratif Use Case Ektraksi dan Dekripsi Nama use case Ekstraksi dan dekripsi

Aktor Penerima

Deskripsi

Use case ini berfungsi untuk melakukan ekstraksi hasil enkripsi dari citra, kemudian didekripsi untuk memperoleh data atau informasi yang disimpan pada citra.

Pre-condition Data atau informasi dalam bentuk yang dienkripsi dan disisipkan

dalam citra.

Typical course of event

Aksi aktor Respon sistem

Langkah 1: Penerima menginput- kan citra (berisi data atau informasi ) dan kunci privat.

Langkah 6: Penerima akan menyimpan hasil ektraksi dan dekripsi dalam bentuk file txt.

Langkah 2: Sistem memeriksa citra dan kunci privat, apakah ada yang kosong.

Langkah 3 : Sistem melakukan proses ekstraksi.

Langkah 4 : Sistem melakukan proses dekripsi atas hasil ektraksi.

Langkah 5: Sistem akan mencetak hasil ekstraksi dan dekripsi.

Alternate course

Aksi aktor Respon sistem

- -

Post condition Diperoleh data atau informasi yang ada pada citra yang kemudian

disimpan dalam file txt.

Tabel diatas menjelaskan usecase ekstraksi dan dekripsi secara detail dimana terdapat

(52)

Activity diagram untuk use case proses ekstraksi dan dekripsi adalah sebagai berikut :

Gambar 3.6 Activity Diagram Ekstraksi dan Dekripsi

(53)

3.1.3 Analisis Proses Sistem

Pada bab sebelumnya telah dijelaskan bahwa pada progam akan ada 3 proses, yaitu bangkitkan kunci, enkripsi dan penyisipan, ekstraksi dan dekripsi. Tahap pertama yang dilakukan adalah bangkitkan kunci, untuk menjelaskan proses yang terjadi serta hubungan antar proses, maka berikut akan digambarkan dengan sequence diagram :

Gambar 3.7 Sequence Diagram Bangkitkan kunci

Pada tahap bangkitkan kunci maka penerima menginputkan sebuah bilangan untuk dicek apakah prima atau tidak. Jika prima akan dicetak nilai yang diinputkan tersebut, jika tidak prima akan dibangkitkan sebuah bilangan prima yang mendekati nilai yang diinputkan tersebut, kemudian dicetak. Setelah mendapat balasan dari sistem, penerima akan menginputkan bilangan prima tersebut sebagai kunci. Kemudian sistem akan mencari

(54)

Pada tahap kedua yang dilakukan adalah enkripsi dan penyisipan data atau informasi ke citra, untuk menjelaskan proses yang terjadi dan hubungan antar proses maka akan digambarkan dengan sequence diagram berikut ini:

Gambar 3.8 Sequnce Diagram Enkripsi dan Penyisipan

(55)

Berikut merupakan pseudocode enkripsi ElGamal :

Untuk melakukan proses penyisipaan maka pengirim akan menginputkan sebuah citra. Setelah sistem memperoleh ciphertext dan citra, sistem akan membandingkan panjang binari

ciphertext dengan panjang byte citra dikurangi 3. Jika panjang binary ciphertext lebih besar maka proses akan dihentikan, sedangkan jika tidak maka setiap bit binari data akan disisipkan ke setiap byte citra. Panjang dari binari data akan disisipkan ke 3 byte terakhir, kemudian byte

citra akan dikonversi kembali ke citra. Berikut merupakan pseudocode penyisipan pesan dengan algoritma LSB :

text <- plaintext

m <- konversi karakter plaintext ke decimal dengan tabel ascii

key <- �,�,��

bangkitkan b ,dimana nilai b < p-1

for (int i=0; i < text.length() ; i++) {

r [i] [0] = �� ( ���� ) r [i] [1] = ���� ( ���� )

result += r [i] [0] + r [i] [1] }

return result

byte citra <- citra BMP

String citrabinary <- konversi citra ke binary

binary databinary <- konversi pesan ke binary

String ciphertext

if (citra.lenth()-3 < databinary.length()) {

} else {

String m <- Konversi databinary.length() ke binary

byte n [i]<- konversi m ke 3 byte n

for (int i = citra.length()-3 ;i<=citra.length();i++{

citra [i] =n [i] }

for (int i=0; i < databinary.length(); i++) {

String newcitrabinary =

citrabinary.substring(0,6)+databinary.charAt(i)

citra [i]=byte.parsebyte (newcitrabinary, 2) }

(56)

Pada tahap ketiga yang dilakukan adalah proses ekstraksi dan dekripsi, untuk menjelaskan proses yang terjadi dan hubungan antar proses, maka akan digambarkan dengan sequence diagram berikut ini :

Gambar 3.9 Sequnce Diagram Ekstraksi dan Penyisipan

Pada tahap ekstraksi dan penyisipan, penerima akan menginputkan citra agar data

ciphertext diekstrak dari citra. Citra yang diinputkan akan dikonversi ke dalam byte dan 3

byte akhir akan dibaca untuk menentukan panjang binari data ciphertext. Setelah panjang binari data diketahui, baru sistem akan mengambil bit ke 8 dari setiap byte citra sebanyak panjang binari data. Setelah itu, bit-bit tersebut akan dikonversi ke karakter yang merupakan

(57)

Berikut merupakan pseudocode ekstraksi ciphertext dari citra :

Ciphertext hasil ekstraksi akan menjadi input untuk proses dekripsi. Untuk dapat mendeskripsi ciphertext dibutuhkan kunci privat, oleh karena itu maka penerima akan menginputkan kunci privat. Setelah sistem memperoleh ciphertext dan kunci privat maka sistem akan melakukan proses dekripsi. Hasil dekripsi akan berupa bilangan desimal, oleh karena itu sistem akan mengkonversi desimal ke karakter. Setelah proses konversi dilakukan, maka akan dihasilkan data atau informasi asli. Berikut merupakan pseudocode dekripsi

ciphertext :

byte citra <- citra BMP

String panjangcontainer

Int panjang

string ciphertext

for (int i=citra.length()-3 ;i<=citra.length() ;i++) {

panjangcontainer <- ambil nilai citra[i],lalu konversi ke binary

panjang =String.ParseInt(panjangcontainer) }

for ( int i=7; i< panjang; i+=8){

data +=container.charAt(i)

if( data.length()==8){

String cipher <-konversi data ke karakter

ciphertext +=cipher }

}

return ciphertext

String cipher <- ciphertext

String key <- p,a

String R,Result,Resultakhir

for ( int i=0; i < cipher.length; i++) {

R= (��)−�≡(��)�−1−� ( ���� )

Result = (��)−��� (���� )

Resultakhir +=Result; }

(58)

3.2 Perancangan Sistem

Setelah melakukan analisis terhadap kebutuhan sistem, maka hasil analisis tersebut akan digunakan dalam perancangan sistem. Dalam merancang sistem yang akan dibangun, akan dibuat model rancang dalam bentuk rancang class diagram dan rancang antar muka. Hasil model rancang inilah yang akan diimplementasikan kedalam bahasa pemograman java.

3.2.1 Class Diagram

Berdasarkan hasil analisis kebutuhan sistem dan pemodelan sistem, maka akan dibangun sebuah class diagram yang berisikan informasi kelas-kelas yang akan diimplementasikan. Dalam merancang sistem ini, akan dirancang 3 buah kelas yang tediri dari bangkitkan kunci, enkripsi dan steganografi. Berikut merupan dekripsi kelas dan atribut-atributnya :

Tabel 3.5 Kelas dan Atributnya

Nama Kelas Daftar Atribut Deskripsi

Bangkitkan kunci 1. Bilangan : Int 2. Bilangan Prima : Int 3. Kunci : Int

4. Kunci Privat : String 5. Kunci Publik : String 6. getText()

7. setText()

8. isPrimitive(int a, int b) 9. modulo(int a, int b,int c ) 10.checkPrima(int prima) 11.bangkitkankunci()

Referensi

Dokumen terkait

Penerapan Algoritma Kriptografi Elgamal Pada Aplikasi Enkripsi dan Dekripsi Pesan Teks Dilengkapi Dengan Tanda Tangan Digital Untuk Autentikasi Pesan:. Pembuatan

Dari pengujian stego image yang dilakukan yaitu manipulasi nilai kecerahan , ketajaman , rotasi dan ukuran, plaintext hasil proses ektrasi dekripsi berantakan dan

Pengujian ini meliputi tingkat keakurasian proses enkripsi dekripsi algoritma ElGamal terhadap data video, pengujian time delay yang dibutuhkan dalam proses

Kesimpulan kuesioner yaitu penulis telah membuat aplikasi enkripsi dan dekripsi pesan pada ponsel berbasis Android dengan menggunakan algoritma hybrid DES dan Elgamal

Saat User mengentrikan Password (plaintext) maka sistem dengan otomatis mengenkripsi plaintext tersebut menjadi sebuah chipertext yang nantinya akan disisipkan pada

Algoritma simetri juga sering disebut algoritma klasik, dimana untuk melakukan proses enkripsi dan dekripsi dapat menggunakan kunci yang sama.. Sistem algoritma

Proses mengirim dan menerima data dimungkinkan untuk dimonitor dan diproses lebih lanjut dengan menggunakan algoritma untuk mengirim dan menerima pesan enkripsi/dekripsi

Algoritma kunci publik menggunakan 2 (dua) kunci yang berbeda untuk proses enkripsi dan dekripsinya. Ketika Alice akan mengenkripsi pesan, dia menggunakan kunci publik milik