• Tidak ada hasil yang ditemukan

Sistem Tanda Tangan Digital Pada Pesan Teks Menggunakan Algoritma Kriptografi Kunci Publik Rsa

N/A
N/A
Protected

Academic year: 2016

Membagikan "Sistem Tanda Tangan Digital Pada Pesan Teks Menggunakan Algoritma Kriptografi Kunci Publik Rsa"

Copied!
110
0
0

Teks penuh

(1)
(2)
(3)

PERSETUJUAN

Judul : SISTEM TANDA TANGAN DIGITAL PADA

PESAN TEKS MENGGUNAKAN ALGORITMA

KRIPTOGRAFI KUNCI PUBLIK RSA

Kategori : SKRIPSI

Nama : LIA SILVIANA

Nomor Induk Mahasiswa : 071402051

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI (FASILKOMTI) UNIVERSITAS

SUMATERA UTARA

Diluluskan di Medan, 7 Mei 2013

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dra. Mardiningsih Drs. Sawaluddin, MIT.

NIP 19630405 198811 2 001 NIP 19591231 199802 1 001

Diketahui/Disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

(4)

iii

PERNYATAAN

PREDIKSI KURS RUPIAH TERHADAP DOLLAR AMERIKA SERIKAT

MENGGUNAKANEVOLVING FUZZY NEURAL NETWORK(EFUNN)

SKRIPSI

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

Medan, Januari 2013

(5)

UCAPAN TERIMA KASIH

Puji dan syukur penulis sampaikan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada Bapak Drs. Sawaluddin, MIT dan Ibu Dra. Mardiningsih, M.Sc selaku pembimbing yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis. Ucapan terima kasih juga ditujukan kepada Bapak Syahril Efendi, S.Si, M.IT dan Bapak Dedy Arisandi, S.T, M.Kom yang telah bersedia menjadi dosen pembanding. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Teknologi Informasi, Prof. Dr. Opim Salim Sitompul, M.Sc. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta seluruh pegawai biro Tata Usaha Fasilkomti usu yang telah membantu penulis memberikan pelayanan ketatausahaan selama penulis mengikuti perkuliahan di Program Studi S1 Teknologi Informasi.

(6)

v

ABSTRAK

Pengiriman pesan melalui e-mail semakin meningkat sehingga diperlukan sistem keamanan yang mampu menjaga kerahasiaan pesan yang dikirim melalui e-mail. Sering terjadinya penyadapan pesan oleh pihak-pihak yang tidak bertanggung jawab membuat penulis melakukan analisis dan membuat aplikasi tandan tangan digital yang mampu menjaga keamanan e-mail. Tanda tangan digital adalah sebuah tanda tangan yang berbasiskan skema kriptografi. Tanda tangan digital dibuat dengan memanfaatkan kriptografi kunci publik. Algoritma RSA adalah salah satu algoritma kunci publik yang dapat digunakan untuk sistem tanda tangan digital. Mekanisme kerja algoritma RSA cukup sederhana dan mudah dimengerti tetapi kokoh. Keamanan RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Perangkat lunak untuk sistem tanda tangan digital yang dibangun dengan menggunakan bahasa pemrograman web PHP dan database MySQL. Perangkat lunak yang dibangun akan menjelaskan proses tanda tangan digital. Aplikasi tersebut dibuat dengan menggunakan algoritma RSA (Ron Rivest, Adi Shamir, dan Leonard Adleman) untuk mengenkripsi dan mendekripsi pesan. Pada tulisan ini penulis akan menganalisis bagaimana implementasi algoritma RSA terhadap pengiriman pesan dan penerimaan pesan sehingga pengguna dapat menjaga kerahasiaan pesan.

(7)

DIGITAL SIGNATURE SYSTEM ON TEXT MESSAGE USING RSA PUBLIC KEY CRYPTOGRAPHY ALGORITHM

ABSTRACT

Sending messages via e-mail has increased so that the security system is needed that is able to maintain the confidentiality of messages sent through e-mail. Frequent occurrence intercepts messages by parties who are not responsible to make the authors analyze and make a bunch of digital signature applications are able to maintain the security of e-mail. Digital signature is a signature-based cryptographic schemes. Digital signature created by using public key cryptography. RSA algorithm is a public key algorithm that can be used for digital signature system. Mechanism of action of the RSA algorithm is quite simple and easy to understand but sturdy. RSA security lies in the difficulty of factoring large numbers into prime factors. Software for digital signature system is built using the PHP web programming language and MySQL database. The software is built to explain the process of digital signatures. The application is created using the RSA algorithm (Ron Rivest, Adi Shamir, and Leonard Adleman) to encrypt and decrypt messages. In this paper the author will analyze how the implementation of the RSA algorithm for message sending and receiving messages so that users can keep messages confidential.

(8)

vii

DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Ucapan Terima Kasih iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

BAB 1 Pendahuluan 1

1.1. Latar Belakang 1

1.2. Rumusan Masalah 2

1.3. Batasan Masalah 2

1.4. Tujuan Penelitian 3

1.5. Manfaat Penelitian 3

1.6. Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

BAB 2 Landasan Teori 5

2.1. Kriptografi 5

2.2.1. Tujuan Kriptografi 5

2.2.2. Proses Kriptografi 6

2.2. Kriptografi berdasarkan Kunci 7

2.2.1. Kriptografi Kunci Simetri (Symmetric-key Cryptography) 7 2.2.2. Kunci Asimetri (Asymmetric-key Cryptography)

7

2.3. Keamanan Sistem Kriptografi 9

2.3.1. Kriteria Keamanan Kriptografi 9 2.3.2. Jenis-Jenis Ancaman Keamanan 10 2.4. Jenis-Jenis Serangan Terhadap Sistem Kriptografi 12 2.4.1. Berdasarkan keterlibatan penyerang dalam komunikasi 12 2.4.2. Berdasarkan banyaknya informasi yang diketahui kriptanalis12 2.4.3. Berdasarkan teknik yang digunakan dalam menemukan kunci13

2.5. Tanda Tangan Digital 13

2.5.1. Sifat umum dari tanda tangan digital 14

2.5.2. Penandatanganan Pesan 14

2.5.3. Skenario tandatangan digital 15

2.6. Fungsi Hash 17

2.6.1. Fungsi hash satu-arah (One-way Hash) 18

2.6.2. Algoritma MD5 19

(9)

2.7. Bilangan Prima 21 2.7.1. Metode penentuan bilangan prima 21 2.7.2. Metode The Sieve of Eratothenes 22

2.8. Algoritma RSA 27

2.8.1. Konsep dasar perhitungan matematis algoritma RSA 27

2.9. Proses Enkripsi dan Dekripsi RSA 30

2.9.1. Proses pembentukan kunci 30

2.9.2. Proses enkripsi 31

2.9.3. Proses dekripsi 31

2.10. Kecepatan Algoritma RSA 31

2.11. RSA Digital Signature 32

2.11.1 Message Digest 32

2.11.2 Digital Signature 33

2.11.3 Verifikasi Digital Signature 33

2.12. Unified Modeling Language 34

2.12.1 Diagram Use case 35

2.12.2 Spesifikasi Use case (Use case specification) 36 2.12.3 Diagram Aktivitas(Activity Diagram) 37

2.13. Flowchart 38

2.14. Bahasa Pemrograman PHP 39

2.15. Penelitian Terdahulu 41

BAB 3 Analisis dan Perancangan 44

3.1. Analisis Sistem Enkripsi dan Dekripsi dengan Algoritma RSA 44 3.1.1. Algoritma membangkitkan pasangan kunci 44

3.1.2. Enkripsi 45

3.1.3. Dekripsi 45

3.1.4. Contoh perhitungan pembangkit kunci, enkripsi RSA dan

dekripsi RSA 45

3.2. Perancangan Flowchart Sistem 49

3.3. Use case Diagram 53

3.3.1.Model spesifikasi Use case 54

3.3.2.Diagram Aktivitas 59

3.4. Perancangan Antarmuka Pemakai 63

BAB 4 Implementasi dan Pengujian Sistem 68

4.1. Implementasi Sistem 68

4.2. Tahap-Tahap Implementasi 69

4.3. Komponen Utama Dalam Implementasi 69

4.4. Pengujian dan Tampilan 70

BAB 5 Kesimpulan dan Saran 77

5.1 Kesimpulan 77

5.2 Saran 77

Daftar Pustaka 79

(10)

ix

DAFTAR TABEL

Hal. Tabel 2.1 Kelebihan dan Kelemahan Kriptografi Kunci Simetri 8 Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri 8 Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri (Lanjutan) 9

Tabel 2.3 Simbol Aktivitas Diagram 37

Tabel 2.4 Fungsi simbol-simbol flowchart 38

Tabel 2.5 Penelitian Terdahulu 42

Tabel 2.5 Penelitian Terdahulu (Lanjutan) 43

Tabel 3.1 Nilai GCD 45

Tabel 3.1 Nilai GCD (Lanjutan) 46

Tabel 3.2 Perhitungan Kunci Privat 46

Tabel 3.3 Enkripsi 47

Tabel 3.4 Dekripsi 48

Tabel 3.5 Konversi Pesan Ke Karakter ASCII 49

Tabel 3.6 SpesifikasiUse caseUser Login 55

Tabel 3.7 SpesifikasiUse caseUser Daftar Akun 55

Tabel 3.7 SpesifikasiUse caseUser Daftar Akun (Lanjutan) 56

Tabel 3.8 SpesifikasiUse caseUser Lihat Profil 56

Tabel 3.9 SpesifikasiUse caseUser Lihat Email Masuk 57

Tabel 3.10 SpesifikasiUse caseUser Kirim Email 57

Tabel 3.10 SpesifikasiUse caseUser Kirim Email (Lanjutan) 58 Tabel 3.11 SpesifikasiUse caseUser Lihat Email Keluar 58

(11)

DAFTAR GAMBAR

Hal.

Gambar 2.1 Proses Kriptografi 6

Gambar 2.2 Skema Kriptografi Kunci Simetri 7

Gambar 2.3 Skema Kriptografi Kunci Asimetri 7

Gambar 2.4 Interruption 10

Gambar 2.5 Interception 11

Gambar 2.6 Modification 11

Gambar 2.7 Fabrication 11

Gambar 2.8 Skenario tanda tangan digital 15

Gambar 2.9 Fungsi hash satu-arah 18

Gambar 2.10 Pembuatan message digest dengan algoritma MD5 20

Gambar 2.11 Pengolahan blok 512 bit (Proses HMD5) 20

Gambar 2.12 Proses 1 pembangkit bilangan prima The Sieve of Eratothenes 23 Gambar 2.13 Proses 2 pembangkit bilangan prima The Sieve of Eratothenes 24 Gambar 2.14 Proses 3 pembangkit bilangan prima The Sieve of Eratothenes 24 Gambar 2.15 Proses 4 pembangkit bilangan prima The Sieve of Eratothenes 25 Gambar 2.16 Proses 5 pembangkit bilangan prima The Sieve of Eratothenes 25 Gambar 2.17 Proses 6 pembangkit bilangan prima The Sieve of Eratothenes 26 Gambar 2.18 Proses 7 pembangkit bilangan prima The Sieve of Eratothenes 26

Gambar 2.19 SkemaDigital Signature 32

Gambar 2.20 Skema proses untuk verifikasi dengan algoritma RSA 33

Gambar 2.21 Aktor-aktoruse case 35

Gambar 2.22 Aktor danuse case 36

Gambar 2.23 Keterhubungan 36

Gambar 3.1 Flowchart proses pembuatan tandatangan digital 50 Gambar 3.2 Flowchart proses verifikasi tandatangan digital 51

Gambar 3.3 Flowchart Enkripsi 52

Gambar 3.4 Flowchart Dekripsi 53

Gambar 3.5 Diagram Use case 54

Gambar 3.6 Diagram Aktivitas Login 60

Gambar 3.7 Diagram Aktivitas Daftar Email 60

Gambar 3.8 Diagram Aktivitas Pembuatan Kunci 61

Gambar 3.9 Diagram Aktivitas Kirim Pesan 61

Gambar 3.10 Diagram Aktivitas Inbox 62

Gambar 3.11 Diagram Aktivitas Cari User 62

Gambar 3.12 Rancangan Halaman Login 63

Gambar 3.13 Rancangan Halaman Daftar Email 64

Gambar 3.14 Rancangan Halaman Beranda 64

Gambar 3.15 Rancangan Halaman Pembangkit Kunci 65

Gambar 3.16 Tampilan Halaman Compose 65

Gambar 3.17 Rancangan Halaman Sent Email 66

(12)

xi

Gambar 3.19 Rancangan Halaman Cari User 67

Gambar 4.1 Tampilan utama 70

Gambar 4.2 Form daftar email 70

Gambar 4.3 Halaman Login 71

Gambar 4.4 Halaman Beranda (Home) 71

Gambar 4.5 Halaman Pembangkit Kunci 71

Gambar 4.6 Nilai p dan q 72

Gambar 4.7 Tampilan pasangan kunci publik dan private 72

Gambar 4.8 Halaman Compose 72

Gambar 4.9 Hasil Signature 73

Gambar 4.10 Halaman Sent Email 73

Gambar 4.11 Halaman Inbox 74

Gambar 4.12 Halaman Verifikasi 74

Gambar 4.13 Halaman Cari User 75

Gambar 4.14 Pasangan Kunci public (D, N) 75

Gambar 4.15 Input D dan N 75

Gambar 4.16 Hasil Verifikasi Benar 76

(13)

ABSTRAK

Pengiriman pesan melalui e-mail semakin meningkat sehingga diperlukan sistem keamanan yang mampu menjaga kerahasiaan pesan yang dikirim melalui e-mail. Sering terjadinya penyadapan pesan oleh pihak-pihak yang tidak bertanggung jawab membuat penulis melakukan analisis dan membuat aplikasi tandan tangan digital yang mampu menjaga keamanan e-mail. Tanda tangan digital adalah sebuah tanda tangan yang berbasiskan skema kriptografi. Tanda tangan digital dibuat dengan memanfaatkan kriptografi kunci publik. Algoritma RSA adalah salah satu algoritma kunci publik yang dapat digunakan untuk sistem tanda tangan digital. Mekanisme kerja algoritma RSA cukup sederhana dan mudah dimengerti tetapi kokoh. Keamanan RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Perangkat lunak untuk sistem tanda tangan digital yang dibangun dengan menggunakan bahasa pemrograman web PHP dan database MySQL. Perangkat lunak yang dibangun akan menjelaskan proses tanda tangan digital. Aplikasi tersebut dibuat dengan menggunakan algoritma RSA (Ron Rivest, Adi Shamir, dan Leonard Adleman) untuk mengenkripsi dan mendekripsi pesan. Pada tulisan ini penulis akan menganalisis bagaimana implementasi algoritma RSA terhadap pengiriman pesan dan penerimaan pesan sehingga pengguna dapat menjaga kerahasiaan pesan.

(14)

vi

DIGITAL SIGNATURE SYSTEM ON TEXT MESSAGE USING RSA PUBLIC KEY CRYPTOGRAPHY ALGORITHM

ABSTRACT

Sending messages via e-mail has increased so that the security system is needed that is able to maintain the confidentiality of messages sent through e-mail. Frequent occurrence intercepts messages by parties who are not responsible to make the authors analyze and make a bunch of digital signature applications are able to maintain the security of e-mail. Digital signature is a signature-based cryptographic schemes. Digital signature created by using public key cryptography. RSA algorithm is a public key algorithm that can be used for digital signature system. Mechanism of action of the RSA algorithm is quite simple and easy to understand but sturdy. RSA security lies in the difficulty of factoring large numbers into prime factors. Software for digital signature system is built using the PHP web programming language and MySQL database. The software is built to explain the process of digital signatures. The application is created using the RSA algorithm (Ron Rivest, Adi Shamir, and Leonard Adleman) to encrypt and decrypt messages. In this paper the author will analyze how the implementation of the RSA algorithm for message sending and receiving messages so that users can keep messages confidential.

(15)

PENDAHULUAN

1.1. Latar Belakang

Kemajuan sistem informasi semakin tak terbatas, saat ini banyak dokumen penting

yang dikirim menggunakan media internet. Namun, perkembangan teknologi yang

seperti itu pula yang menyebabkan informasi atau pesan yang dipertukarkan tersebut

menjadi tidak aman. Pelaku kejahatan memanfaatkan celah ketidakamanan tersebut

untuk dimasuki dan melakukan manipulasi.

Jika berbicara tentang keamanan pesan, maka kita tidak dapat memisahkannya

dengan kriptografi. Kriptografi adalah ilmu yang mempelajari teknik-teknik

matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan

(confidentiality), integritas data (data integrity) dan otentikasi (authentication). Sehingga informasi atau pesan yang dikirim akan terjaga kerahasiaannya.

Namun, kriptografi tidak dapat menyediakan aspek keamanan nirpenyangkalan

(non-repudiation), yaitu layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman

atau penerima pesan menyangkal telah menerima pesan (Munir, 2006). Untuk

menghindari hal tersebut diperlukan tanda tangan digital (Digital Signature).

Tanda tangan digital bukan merupakan hasil scan atau input tanda tangan

melalui interface tertentu. Tanda tangan digital adalah suatu nilai kriptografis yang

bergantung pada isi data itu sendiri serta kunci yang digunakan untuk membangkitkan

nilai kriptografisnya (Lutfi, 2010). Pesan ditandatangi oleh pengirim dan diverifikasi

oleh penerima. Pesan yang sudah ditandatangani menunjukkan bahwa pesan tersebut

(16)

2

Dalam implementasinya, tanda tangan digital bisa dibuat dengan menggunakan

beberapa algoritma. Algoritma-algoritma yang sering digunakan untuk tanda tangan

digital adalah RSA dan Elgamal. Selain itu, algoritma yang dikhususkan untuk

tandatangan digital adalah Digital Signature Algorithm (DSA), yang merupakan standar untuk Digital Signature Standart (DSS). Pada DSA algoritma signature dan verifikasi berbeda. Pembuat tanda tangan menggunakan kunci privat untuk membuat

tanda tangan sedangkan kunci publik, yang berkorespondensi dengan kunci privat

namun tidak sama, digunakan untuk memverifikasi tanda tangan.

Proses signature pada penelitian ini menggunakan fungsi hash MD5. Penulis menggunakan algoritma MD5 karena algoritmanya semakin kompleks. Walaupun

sudah ada algoritma MD terbaru yaitu MD6 tetapi belum ada penelitian yang lengkap

tentang keamanan dari algoritma ini dan apakah terdapat kolisi atau tidak.

Penulis juga menggunakan algoritma RSA untuk proses enkipsi dan dekripsi

karena keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang

besar menjadi faktor-faktor prima.

Untuk mengeneratebilangan prima, penulis menggunakan metodeThe Sieve of Erastohenes. Alasan penulis menggunakan metode The Sieve of Erastohenes adalah karena untuk menghasilkan bilangan prima metode ini menggunakan memori yang

lebih kecil (Atkin & Bernstein, 2003).

1.2. Rumusan Masalah

Bagaimana mencegah pengubahan dan penyangkalan pesan dengan menggunakan

tandatangan digital.

1.3. Batasan Masalah

Dalam perancangan sistem ini, terdapat beberapa batasan masalah yaitu:

1. Pembangkitan nilai hash dari dokumen teks menggunakan algoritma fungsi

hashing MD5

(17)

3. Algoritma yang dipakai untuk membangkitkan bilangan prima adalah The Sieve Eratosthenes

4. Perancangan sistem pada penelitian ini menggunakan PHP dan MySQL.

1.4. Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk menerapkan tandatangan digital pada pesan

teks untuk mengamankan pesan dari paengubahan atau penyangkalan pesan.

1.5. Manfaat Penelitian

Mencegah penyangkalan pesan oleh entitas yang berkomunikasi dan mencegah

pengubahan pesan oleh penyerang

1.6. Metodologi Penelitian

Dalam usaha memperoleh hasil yang diharapkan dari penelitian ini, akan diterapkan

beberapa metode dalam penelitian ini, yaitu:

a. Studi Literatur

Metode studi literatur ini dilakukan dengan mengumpulkan bahan-bahan yang

berkaitan dengan penelitian, baik dari buku-buku yang memuat pemecahan

masalah dari penelitian maupun informasi yang diperoleh melalui internet.

b. Metode Analisis

Menganalisa bagaimana algoritma RSA diimplementasikan dalam tandatangan

digital.

c. Pembuatan Sistem

Pembuatan sistem dengan menggunakan bahasa pemrograman berbasis web PHP

(18)

4

d. Pengujian

Pada tahap ini dilakukan proses pengujian dan percobaan terhadap perangkat

lunak sesuai dengan spesifikasi yang ditentukan sebelumnya serta memastikan

program yang dibuat dapat berjalan seperti yang diharapkan.

1.7. SISTEMATIKA PENULISAN

Sistematika penulisan tugas akhir ini dibagi menjadi lima bab, yaitu sebagai berikut:

BAB 1: Pendahuluan

Berisikan konsep dasar penyusunan laporan tugas akhir.

BAB 2: Tinjauan Pustaka

Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan pada bab

selanjutnya, implementasi tanda tangan digital dengan menggunakan algoritma RSA.

BAB 3: Analisis dan Perancangan Sistem

Berisikan analisa permasalahan algoritma RSA serta perancangan sistem secara

fungsional.

BAB 4: Implementasi Dan Pengujian Sistem

Berisikan gambaran dari struktur program dan memberikan rancang bangun yang

lengkap kepada user dan pemakai komputer lain serta implementasinya, yaitu menguji

untuk menemukan kesalahan.

BAB 5: Penutup

(19)

LANDASAN TEORI

2.1. Kriptografi

Kriptografi (cryptography) berasal dari Bahasa Yunani: “cryptos” (rahasia) dan

“graphein” (tulisan).Kriptografi (Cryptography) adalah suatu ilmu yang mempelajari sistem sandi untuk menjamin kerahasiaan dan keamanan data, dilakukan oleh seorang

kriptographer.

2.1.1. Tujuan Kriptografi

Adapun tujuan dari kriptografi yang didefenisikan dalam (Munir, 2006)

adalah:

1. Kerahasiaan (confidentiality), adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.

2. Integritas Data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman.

3. Otentikasi (authentication), adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user

authentication atau entity authentication) maupun mengidentifikasi kebenaran

sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber

pesan.

4. Nirpenyangkalan (non-repudiation), adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengiriman pesan menyangkal

(20)
(21)
(22)

8

Tabel 2.1 Kelebihan dan Kelemahan Kriptografi Kunci Simetri

Kelebihan Kelemahan

 Algoritma Kriptografi Simetri dirancang sehingga proses

enkripsi/dekripsi membutuhkan

waktu yang singkat.

 Ukuran kunci simetri relative pendek.

 Dapat digunakan untuk

membangkitkan bilangan acak

 Dapat disusun untuk menghasilkan chipper yang lebih kuat

 Otentikasi pengirim pesan langsung diketahui dari chipertext yang

diterima, karena kunci hanya

diketahui oleh pengirim dan

penerima saja

 Kunci simetri harus dikirim melalui saluran yang aman, kedua entitas

yang berkomunikasi harus menjaga

kerahasiaan kunci ini

 Kunci harus sering diubah, mungkin pada setiap sesi komunikasi

Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri

Kelebihan Kelemahan

 Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap

entitas yang berkomunikasi (tetapi

otentikasi kunci asimetri harus tetap

terjamin).

 Pasangan kunci publik dan kunci privat tidak perlu diubah, bahkan

dalam periode waktu yang panjang.

 Dapat digunakan untuk

mengamankan pengiriman kunci

simetri

 Beberapa algoritma kunci asimetri dapat digunakan untukmember

 Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri,

karena enkripsi dan dekripsi

menggunakan bilangan yang besar

dan melibatkan operasi

perpangkatan yang besar

 Ukuran cipherteks lebih besar daripada plainteks (bisa dua kali

sampai empat kali ukuran plainteks)

 Ukuran kunci relatif lebih besar daripada ukuran kunci simetri

(23)

Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri (Lanjutan)

Kelebihan Kelemahan

tanda tangan digital pada pesan. orang, maka cipherteks tidak

memberikan informasi mengenai

otentikasi pengirim

 Tidak ada algoritma kunci asimetri yang terbukti aman (sama seperti

blok chipper). Kebanyakan

algoritma mendasarkan

keamanannya pada sulitnya

memecahkan persoalan-persoalan

aritmetik (pemfaktoran, logaritmik,

dsb) yang menjadi dasar

pembangkitan kunci

Pada pengiriman pesan, terdapat dua masalah penting yang harus diatasi, yaitu

integritas dan otentikasi pesan. Tidak menutup kemungkinan bahwa pada saat

pengiriman pesan, ada pihak ketiga yang dengan sengaja merubah dan memodifikasi

isi pesan tersebut, sehingga dapat menimbulkan masalah yang serius. Masalah

integritas ini penting untuk diatasi.

2.3. Keamanan Sistem Kriptografi

Suatu sistem kriptografi merupakan sebuah himpunan algoritma, seluruh

kemungkinan plainteks, cipherteks, kunci, dan proses manajemen kunci yang

digunakan (Oppliger, 2005) .

2.3.1. Kriteria Keamanan Kriptografi

Sebuah algoritma kriptografi dikatakan aman (computationally secure) bila memenuhi tiga kriteria berikut:

1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat

(24)
(25)
(26)

12

2.4. Jenis-Jenis Serangan Terhadap Sistem Kriptografi

Berikut ini adalah jenis-jenis serangan terhadap sistem kriptografi yang didefenisikan

oleh (Munir ,2006) yaitu:

2.4.1. Berdasarkan keterlibatan penyerang dalam komunikasi 1. Serangan Pasif

Pada jenis serangan ini, penyerang tidak terlibat dalam komunikasi antara

pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan

antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak

mungkin informasi yang digunakan untuk kriptanalis.

2. Serangan Aktif

Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut

mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah

aliran pesan seperti menghapus sebagian cipherteks, mengubah cipherteks,

menyisipkan potongan cipherteks palsu, me-replay pesan lama, mengubah

informasi yang tersimpan dan sebagainya. Contoh dari serangan ini adalah man-in-the-middle attack

2.4.2. Berdasarkan banyaknya informasi yang diketahui kriptanalis 1. Chipertext-only attack

Ini adalah jenis serangan umum namun paling sulit karena informasi yang

tersedia hanyalah cipherteks saja. Kriptanalis memiliki beberapa cipherteks dari

beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Tugas

kriptanalis adalah menemukan plainteks sebanyak mungkin dari cipherteks

tersebut atau menemukan kunci yang digunakan untuk mendekripsi.

2. Known-plaintext attack

Ini adalah jenis serangan di mana kriptanalis memiliki pasangan plainteks dan

cipherteks yang berkoresponden.

3. Chosen-plaintext attack

Serangan jenis ini lebih hebat daripada known-plaintext attack, karena kriptanalis

dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu

(27)

4. Chosen-ciphertext attack

Ini adalah jenis serangan dimana kriptanalis memilih cipherteks untuk

didekripsikan dan memiliki akses ke plainteks hasil dekripsi. Jenis serangan ini

biasanya dipakai pada sistem kriptografi.

5. Chosen-text attack

Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext attack dan

chosen-ciphertext attack.

2.4.3. Berdasarkan teknik yang digunakan dalam menemukan kunci 1. Exhaustive attack atau brute force attack

Ini adalah serangan untuk mengungkap plainteks atau kunci dengan mencoba

semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma

kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis memiliki

sejumlah cipherteks dan/atau plainteks yang bersesuaian.

2. Analytical attack

Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua kemungkinan

kunci tetapi menganalisis kelemahan algoritma kriptografi untuk mengurangi

kemungkinan kunci yang tidak mungkin ada. Diasumsikan kriptanalis mengetahui

algoritma kriptografi yang digunakan oleh pengirim pesan.

2.5. Tandatangan Digital

Tanda tangan digital atau Digital Signature merupakan suatu tanda tangan (penanda) yang dibubuhkan pada data digital. Tanda tangan digital bukan merupakan hasil scan

atau input tanda tangan melalui interface tertentu. Tanda tangan digital adalah suatu nilai kriptografis yang bergantung pada isi data itu sendiri serta kunci yang digunakan

untuk membangkitkan nilai kriptografisnya. Sehingga nilai setiap tanda tangan digital

dapat selalu berbeda tergantung data yang ditandatangani (Lutfi, 2010). Dengan tanda

tangan digital maka integritas data terjamin, dan juga digunakan untuk membuktikan

(28)

14

2.5.1. Sifat umum dari tanda tangan digital

Beberapa sifat umum tandatangan digital adalah sebagai berikut:

1. Otentik (authenticity), tak bisa/sulit ditulis dan sulit ditiru oleh orang lain. Pesan dan tanda tangan pesan tersebut juga dapat menjadi barang bukti, sehingga

penandatangan tak bisa menyangkal bahwa dulu ia tidak pernah

menandatanganinya.

2. Sah(integrity)untuk dokumen (pesan) itu saja atau salinannya yang sama persis. Tanda tangan itu tidak bisa dipindahkan ke dokumen lainnya, meskipun dokumen

lain itu hanya berbeda sedikit. Ini juga berarti bahwa jika dokumen itu diubah,

tanda tangan digital dari pesan tersebut tidak lagi sah.

3. Nirpenyangkalan (Non Repudiation), non repudiation ini timbul dari keberadaan tanda tangan digital yang menggunakan enkripsi asimetris (asymmetric encryption). Enkripsi asimetris ini melibatkan keberadaan dari kunci privat dan kunci publik. Suatu pesan yang telah dienkripsi dengan menggunakan kunci privat

hanya dapat dekripsi dengan menggunakan kunci publik dari pengirim. Dengan

kata lain, pengirim tidak dapat menyangkal keberadaan pesan tersebut karena

terbukti bahwa pesan tersebut dapat didekripsi dengan kunci publiknya.

4. Dapat diperiksa dengan mudah, termasuk oleh pihak-pihak yang belum pernah

bertatap muka langsung dengan penandatangan.

2.5.2. Penandatanganan Pesan

Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara, yaitu:

1. Enkripsi pesan

Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan

yang terenkripsi juga sudah menyatakan bahwa pesan tersebut telah

ditandatangani.

2. Tanda tangan digital dengan fungsi hash (hash function)

Pengirim pesan mula-mula menghitungmessage digestdari pesan.Message digest diperoleh dengan mentransformasikan pesan dengan menggunakan fungsi hash 1

arah. Selanjutnya message digest dienkripsi dengan algoritma kriptografi kunci publik menggunakan kunci privat pengirim. Hasil enkripsi inilah yang disebut

(29)

dengan cara menyambung (append) lalu dikirim melalui saluran komunikasi. Kemudian di tempat penerima, tandatangan digital dibuktikan keotentikannya

dengan melakukan verifikasi pesan, yaitu dengan cara sebagai berikut:

1. Tandatangan digital didekripsi dengan menggunakan kunci publik pengirim pesan

yang menghasilkan message digest (MD) semula.

2. Penerima pesan mengubah pesan menjadi message digest (MD’) menggunakan

fungsi hash satu arah yang sama dengan fungsi hash yang digunakan pengirim.

3. Jika MD’ = MD, maka pesan dan tandatangan yang diterima memang benar

berasal dari pengirim pesan.

2.5.3 Skenario Tandatangan Digital

Gambar 2.8 Skenario tanda tangan digital (Sadikin, 2012)

Misalnya : Alice ingin mengirim dokumen bertandatangan digital pada Bob. Alice

terlebih dahulu membangkitkan sepasang kunci asimetrik miliknya, yaitu kunci privat

( ) dan kunci publik ( ). Kemudian Alice menandatangani

dokumenMdengan memanggil algoritmasignsebagai berikut:

(30)

16

Untuk menghasilkan tandatangan. Alice kemudian mengirim (M, ) kepada

Bob. Bob pada akhirnya memanggil algoritmaverifysebagai berikut:

← ( , , )

Untuk memverifikasi tandatangan, Bob menerima pasangan (M, ) bila nilai

terima adalahtrue(benar).

1. Layanan Keamanan

Tanda tangan digital dapat digunakan untuk mewujudkan 3 layanan keamanan yaitu

otentikasi pesan, keutuhan pesan dan nirpenyangkalan (sadikin 2012).

a. Otentikasi Pesan

Sistem tanda tangan digital dapat mewujudkan layanan otentikasi pesan dengan

ilustrasi berikut ini.

Alice mengirim pesanM, beserta tanda tangan yang dibuat dengan kunci privat Alice. Bob dapat mengotentikasi pesan dengan cara memverifikasi tanda tangan

dengan kunci publik Alice. Pesan terotentikasi bila algoritma verify mengembalikan nilaiTrue.

b. Keutuhan Data

Selain otentikasi pesan, sistem tanda tangan digital yang ditambah fungsi hash dapat

mewujudkan layanan keutuhan data beserta dengan prosessign/verify. Misalnya Alice ingin menandatangani pesan M dan mengirimnya ke Bob dengan menjaga keutuhan pesan. Alice dapat menggunakan fungsi hash h dan mendapatkan tanda tangan dengan cara memanggil algoritmasigndengan masukandigestM.

← ( ( ), )

Alice mengirim (M, ) ke Bob. Setelah menerima (M, )Bob memverifikasi

digestM sebagai berikut:

← ( ( ), , )

(31)

c. Non-repudiation

Layanan keamanan yang juga disediakan oleh sistem tanda tangan digital adalahnon -repudiation. Layanannon-repudiationmembuat penolakan terhadap pesan yang telah ditandatangani menjadi tidak mungkin. Misalnya Alice menolak kalau ia telah

menandatangi sebuah dokumen yang sebenarnya ditandatangani oleh Alice. Bob dapat

membuktikan bahwa Alice pernah menandatangani dokumen tersebut.

Untuk mewujudkan layanan non-repudiation diperlukan pihak ketiga yang terpercaya. Pihak ketiga ini berperan sebagai perantara antara Alice dan Bob. Pada

awalnya Alice menandatangani dokumen M dengan kunci privat Alice dan

mendapatkan tanda tangan . Kemudian alice mengirim pasangan (M, ) ke pihak

ketiga. Pihak ketiga memverifikasi (M, ) dengan kunci publik alice dan menyimpan

salinan (M, rho). Pihak ketiga menandatangani M dengan kunci privat pihak ketiga

dan mendapatkan ’. Pihak ketiga mengirimkan (M, rho’) ke Bob. Bob memverifikasi

(M, rho’) dengan kuncipublik pihak ketiga. Jika pada waktu yang akan datang Alice

menolak telah menandatangani M, pihak ketiga memiliki salinan (M, ).

2.6. FungsiHash

Fungsi hash adalah fungsi yang masukannya adalah sebuah pesan dan keluarannya

sebuah sidik pesan atau message fingerprint(Sadikin, 2012). Sidik pesan sering juga disebut message digest. Fungsi hash dapat menerima masukan string apa saja. Jika string menyatakan pesan (message), maka sembarang pesan M berukuran bebas dikompresi oleh fungsi hashHmelalui persamaan:

h=H(M)

Pada persamaanh,nilaihashataumessage digestdari fungsiHuntuk masukan M. Dengan kata lain, fungsi hash mengkompresi sembarang pesan yang berukuran berapa saja menjadi message digest yang ukurannya selalu tetap (dan lebih pendek dari panjang pesan semula).

Nama lain fungsihashadalah:

(32)
(33)

Fungsi hash adalah publik (tidak dirahasiakan), dan keamanannya terletak pada sifat satu arahnya. Contoh fungsi hash adalah MD, MD2, MD4, MD5, Secure Hash Function (SHA), Snefru, N-hash, RIPE-MD dan lain-lain. Fungsi hash yang banyak dipakai di dalam aplikasi kriptografi adalahMD5danSHA.

Algoritma MD4 (Message Diggest 4) merupakan salah satu seri algoritma Message Diggest yang dibuat oleh Ronald Rivest pada tahun 1990. Proses MD4 terdiri atas 3 buah putaran dengan masing-masing putaran terdiri atas 16 buah operasi

dasar (Nugraha, 2010). Pada tahun 1991, MD4 sudah tidak aman karena ada pihak

lain yang melakukan serangan terhadap putaran (round) terakhir pada operasi MD4. Kolisi pada MD4 ditemukan pada tahun 1995 oleh Hans Dobertin (Nugraha, 2010).

Kolisi merupakan kondisi dimana terdapat dua masukan string yang berbeda, namun memiliki message diggest keluaran fungsi hash yang sama (Widanarto, 2005). Dia dapat menemukan dokumen atau file tertentu dengan message diggest yang sama hanya dalam hitungan detik. Pada tahun 2008,resistanceatau tingkat keamanan MD4 benar-benar dipatahkan. Sejak saat itu algoritma MD4 sangat tidak aman digunakan.

Setelah diketahui kelemahan MD4, dibuatlah versi terbaru Message Diggest, yaitu MD5. Namun pada tahun 2009, resistance dari MD5 berhasil dipatahkan, sehingga MD5 pun sudah dianggap sangat tidak aman untuk digunakan.

Algoritma MD6 merupakan algoritma MD terbaru yang dibuat oleh Ronald

Rivest dan kawan-kawan pada tahun 2008. Algoritma ini merupakan perbaikan dari

MD5. Namun karena cenderung masih baru, belum ada penelitian yang lengkap

tentang keamanan dari algoritma ini dan apakah terdapat kolisi atau tidak.

2.6.2. Algoritma MD5

MD5 adalah fungsi hash satu-arah yang dibuat oleh Ron Rivest. MD5 merupakan perbaikan dari MD4setelah MD4 berhasil diserang oleh kriptanalis. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan

(34)
(35)

1. Terletak pada jumlah putaran (round) yang dilakukan untuk setiap operasi. Pada MD4 hanya operasi hanya dilakukan sebanyak 3 putaran, sedangkan

pada MD5 diperbaiki menjadi 4 putaran.

2. Untuk setiap putaran ditambahkan sebuah konstanta baru yang unik untuk

diproses/dioperasikan bersama-sama dengan string yang sudah ada. Hal ini

tidak ada pada MD4 yang tetap memakai variabel yang sudah ada.

3. Fungsi g pada putaran kedua. Fungsi g pada MD4 adalah (XY v XZ v YZ)

sedangkan pada MD5 adalah (XZ v Y not(Z)).

4. Pada MD5, hasil dari suatu putaran merupakan penambahan dari hasil putaran

sebelumnya, sehingga menambah kompleksitas algoritma.

5. Urutan operasi pada MD4 sedikit diubah pada MD5 untuk meniadakan pola

yang terjadi sehingga terkesan acak dan menambah keamanan.

2.7. Bilangan Prima

Bilangan prima adalah bilangan asli yang lebih besar dari 1, yang faktor pembaginya

adalah 1 dan bilangan itu sendiri, dimulai dari 2. Misalnya angka 5, karena 5 habis

dibagi 1 dan 5 tetapi tidak habis dibagi bilangan bulat positif yang lain, dapat

disimpulkan bahwa 5 merupakan bilangan prima. Angka 9 bisa dibagi 3, ini berarti 9

bukan bilangan prima melainkan bilangan komposit, yaitu bilangan yang mempunyai

lebih dari 2 faktor bilangan bulat positif.

Semua bilangan prima merupakan bilangan ganjil kecuali angka 2. 2 adalah

satu-satunya bilangan prima yang genap, karena bilangan genap selain 2 pasti habis

dibagi 2 yang menyebabkan bilangan tersebut tidak memenuhi syarat atau definisi

bilangan prima.

2.7.1. Metode penentuan bilangan prima

Kashogi (2007) menyatakan ada beberapa metode yang dapat digunakan untuk

menentukan bilangan prima, diantaranya adalah:

a. MetodeBruce Force

(36)

22

batas bilangan yang ditentukan dan membandingkannya dengan bilangan prima yang

telah dimasukkan ke dalamlist. Jika bilangan tersebut tidak dapat dibagi oleh seluruh bilangan prima yang ada dalam list maka bilangan tersebut adalah bilangan prima sehingga bilangan tersebut bisa dimasukkan ke dalam listbilangan prima. Pengecekan hanya dilakukan hingga akar kuadrat dari batas nilai yang ditentukan.

b. MetodeThe Sieve of Eratosthenes

Dalam metode ini, teknik yang digunakan adalah dengan membuat sebuah array sepanjang kandidat prima terbesar ditambah satu yang diberi tanda prima. Kemudian

untuk setiap bilangan prima yang ditemukan, setiap array pada indeks kelipatan dari bilangan tersebut akan ditandai sebagai bukan prima. Pada akhir proses, jika suatu

indeks masih memiliki penanda prima pada sel array yang ditunjuk berarti indeks tersebut bilangan prima. Waktu yang diperlukan dengan metode ini jauh lebih cepat

dibandingkan metodebruce force.

c.MetodeSieve of Atkins

Sieve of Atkins merupakan algoritma pengembangan dari Sieve of Eratosthenes. Algoritma ini ditemukan oleh A. O. L. Atkin dan Daniel J. Bernstein. Dalam

algoritma ini:

1. Semua sisa bilangan adalah hasil modulo bilangan tersebut dengan 60

2. Semua bilangan, termasuk x dan y, adalah bilangan bulat positif

3. Membalikkan sebuah entri dalam daftar “penyaringan” berarti membalikkan

penandaan tentang primalitas bilangan tersebut ke keadaan sebaliknya (prima ke

bukan prima, dan sebaliknya)

2.7.2. Metode The Sieve of Eratosthenes

The Sieve of Eratosthenes merupakan sebuah algoritma klasik untuk menentukan seluruh bilangan prima sampai bilangan N yang ditentukan. Cara kerja dari metode ini

adalah dengan melakukan eliminasi bilangan yang bukan bilangan prima untuk

menyaring suatu kumpulan bilangan menjadi kumpulan bilangan prima (Alghazali,

(37)

1. Tuliskan daftar bilangan dari 2 sampai bilangan yang akan dicari bilangan

primanya.

2. Tandai bilangan di dalam daftar yang mempunyai nilai kelipatan 2 dan

bilangan 2 tidak ditandai

3. Kemudian ke bilangan 3 dan tandai kelipatan setiap kelipatan 3 dan bilangan 3

tidak di tandai

4. Kemudian ke bilangan berikutnya, bila bilangan tersebut sudah di tandai maka

di lanjutkan ke bilangan berikutnya

5. Kemudian lakukan penandaan seperti bilangan di atas sampai bilangan yang di

tentukan. Semua bilangan yang tidak di tandai adalah bilangan prima

Sebagai contoh untuk menentukan bilangan prima atau tidak dari deret 2

sampai 150 dapat anda lakukan langkah–langkah sebagai berikut :

Keterangan warna pada Gambar 2.12, Gambar 2.13, Gambar 2.14, Gambar 2.15,

Gambar 2.16, Gambar 2.17 yaitu:

a. : Bilangan prima

b. : Bukan bilangan prima

1. Buatlah daftar bilangan prima yang akan di tentukan, yaitu bilangan bulat lebih

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

(38)

24

2. Kemudian beri tanda pada bilangan yang mempunyai nilai kelipatan 2 kecuali 2.

2 3 4 5 6 7 8 9 10

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Gambar 2.13Proses 2 pembangkit bilangan prima The Sieve of Eratothenes

3. Kemudian beri tanda bilangan kelipatan 3 kecuali 3.

2 3 4 5 6 7 8 9 10

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Gambar 2.14Proses 3 pembangkit bilangan prima The Sieve of Eratothenes

4. Kemudian ulangi langkah di atas untuk bilangan prima selanjutnya. Karena

bilangan 4 sudah tertandai pada proses sebelumnya, lanjut ke bilangan 5. Beri

(39)

2 3 4 5 6 7 8 9 10

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Gambar 2.15Proses 4 pembangkit bilangan prima The Sieve of Eratothenes

5. Kemudian menandai bilangan 6, karena bilangan 6 sudah ditandai pada proses

sebelumnya maka dilanjutkan ke bilangan 7. Karena bilangan 7 merupakan

bilangan prima beri tanda setiap bilangan kelipatan 7 kecuali 7.

2 3 4 5 6 7 8 9 10

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Gambar 2.16Proses 5 pembangkit bilangan prima The Sieve of Eratothenes

6. Karena kelipatan bilangan 8, 9 dan 10 sudah tertandai dari proses sebelumnya,

(40)

26

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Gambar 2.17Proses 6 pembangkit bilangan prima The Sieve of Eratothenes

7. Kemudian tandai bilangan 12. Karena bilangan 12 sudah ditandai pada proses

sebelumnya maka dilanjutkan menandai bilangan 13 kecuali 13.

2 3 4 5 6 7 8 9 10

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

8. Karena kelipatan bilangan 14 dan 15 sudah ditandai dari proses sebelumnya, maka

deretan bilangan prima yang dihasilkan antara lain 2, 3, 5, 7, 11, 13, 17, 19, 23, 29,

31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113,

(41)

2.8. Algoritma RSA

Algoritma kriptografi RSA dibuat oleh tiga orang peneliti dari MIT (Massachussets

Institute of Technology) pada tahun 1976, yaitu Ron Rivest, Adi Shamir dan Leonard

Adleman.

2.8.1. Konsep dasar perhitungan matematis Algoritma RSA

Dalam algoritma RSA terdapat perhitungan matematis dalam pembangkitan pasangan

kunci maupun enkripsi dan dekripsi pesan. Pada proses pembangkitan kunci

dibutuhkan perhitungan yang akan menentukan nilai dari φ n (Totient n) dan perhitungan yang menggunakan algortima Euclidean untuk menentukan dua buah bilangan yang relatif prima. Selain itu pada proses enkripsi dan dekripsi dilakukan

juga perhitungan dengan menggunakan metodeFast Exponentiation.

Algoritma kriptografi RSA merupakan algoritma yang termasuk dalam

kategori algoritma asimetri atau algoritma kunci publik. Algoritma kriptografi RSA

didesain sesuai fungsinya sehingga kunci yang digunakan untuk enkripsi berbeda dari

kunci yang digunakan untuk dekripsi. Algoritma RSA disebut algoritma kunci

publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh

mengetahuinya, namun hanya orang tertentu (si penerima pesan sekaligus pemilik

pasangan kunci publik) yang dapat melakukan dekripsi terhadap pesan tersebut.

Keamanan algoritma RSA adalah sulitnya memfaktorkan bilangan besar

menjadi faktor primanya (Munir, 2006). Hal itu dapat ditunjukkan dari beberapa

kriptosistem yang merupakan bukti konstruktif dari kesulitan untuk memfaktorkan

bilangan terhadap seranganchosen-chipertext attack(Rosen, 2007).

Kita telah melihat bahwa memfaktoran bilangan dalam algoritma RSA berarti

dapat memecahkan kriptosistem, tetapi dalam kenyataannya tidak seperti itu. Dengan

kata lain, belum ada metode untuk memecahkan RSA. Walaupun tidak mudah untuk

dibuktikan, hal itu menunjukkan bahwa komputasi eksponen pada RSA adalah

komputasi pemfaktoran modulus yang keduanya memiliki kompleksitas (Rosen,

2007).

Secara umum ada beberapa besaran-besaran yang harus diperhatikan dalam

(42)

28

1. pdanqadalah bilangan prima (rahasia)

2. n= p.q (tidak rahasia)

3. (n) = (p-1)(q-1) (rahasia)

4. e(kunci enkripsi) (tidak rahasia)

5. d(kunci dekripsi) (rahasia)

6. m(plaintext) (tidak rahasia)

7. c(chipertext) (rahasia)

A. Fungsi Totient Euler φ

Fungsi Totient Eulerφatau biasa disebut dengan fungsi Euler merupakan salah satu fungsi yang dipakai dalam perhitungan matematis pada algoritma RSA. Fungsi

Eulermendefinisikan φ(n) untuk n ≥ 1 yang menyatakan jumlah bilangan bulat positif <n yang relatif prima dengann (Munir, 2006). Dua bilangan bulat a dan b dikatakan relatif prima jika GCD (a, b) = 1 (pembagi bersama terbesar dari a dan b adalah 1).

Jika n = p . q (p dan q bilangan prima)

maka φ(n)= (p-1) (q-1)

Contoh 1.φ(15)= (3-1) (5-1) = 8 buah bilangan bulat yang relatif prima terhadap 15, yaitu 1,2,4,7,8,11,13,14.

B. Algoritma Euclidean

Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar atau

Greatest Common Divisor (GCD) dari dua bilangan bulat (Munir, 2006). Penemu algoritma Euclidean adalah Euclid, seorang matematikawan Yunani. Algoritma ini

didasarkan pada pernyataan bahwa ada dua buah bilangan bulat tak negatif yakni m danndimana nilaimn.

Adapun tahap-tahap pada algoritmaEuclideanadalah: 1. Jikan= 0 makamadalah GCD(m,n); stop.

(43)

3. Ganti nilai m dengan nilai n dan nilain dengan nilai r, lalu ulang kembali ke langkah nomor 1.

Algoritma Euclideandapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima. Dua buah bilangan bulat dikatakan relatif prima jika GCD dari

kedua bilangan bernilai 1.

Contoh 2. Hitung nilai GCD(277, 30) dan GCD(43, 19).

277 mod 30 43 mod 19

277 = 9 . 30 + 7 43 = 2 . 19 + 5

30 = 4 . 7 + 2 19 = 3 . 5 + 4

7 = 3 . 2 + 1 5 = 1 . 4 + 1

2 = 2 . 1 + 0 4 = 4 . 1 + 0

Nilai GCD(277, 30) = 1 Nilai GCD(43, 19) = 1

C. Metode Fast Exponentiation

Metode ini digunakan untuk menghitung operasi pemangkatan besar bilangan bulat

modulo dengan cepat (Munir, 2006). Metode ini berdasarkan pada pernyataan berikut

ini:

abmodm= [(amodm)(bmodm)] modm (2.1)

Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation dapat dilihat pada contoh dibawah ini.

Contoh 3.Hitung nilai dari 4752 mod 277.

Sebagai ilustrasi, untuk menghitung 4752mod 277 dapat dilakukan sebagai berikut.

4752 = 474. 4716. 4732

472mod 277 = 2209 mod 277 = 270

(44)

30

= 1290366 mod 277 = 100

Jadi nilai dari 4752mod 277 = 100

2.9. Proses Enkripsi dan Dekripsi RSA

Skema algoritma kunci publik sandi RSA terdiri dari tiga proses yaitu, proses

pembangkitan kunci, proses enkripsi, dan proses dekripsi (Mollin, 2002).

2.9.1. Proses pembentukan kunci

Dalam proses pembangkitan kunci baik kunci publik ataupun kunci privat, dapat

dilakukan dengan langkah-langkah seperti di bawah ini:

1. Memilih dua bilangan prima yang diberi simbol sebagaipdanq.

2. Hitung nilain=p.q(np, karena jikan =p, maka nilain=p2dan akan mudah mendapatkan nilain).

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

4. Memilih kunci publik e yang relatif prima terhadap (n)

5. Bangkitkan kunci privat dengan persamaan dimana1 < < ( )

≡ 1 ( ( )) ↔ = . ( ) (2.2)

Hasil dari algoritma di atas adalah :

(45)

b. Kunci privat adalah pasangan (d,n)

2.9.2. Proses enkripsi

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

2. Plainteks dinyatakan dengan blok-blok m1, m2, .., sedemikian sehingga setiap blok

merepresentasikan nilai [0,n-1].

3. Setiap blok midienkripsikan menjadi blok cidengan rumus

ci=miemodn (2.3)

2.9.3. Proses dekripsi

Setiap blok chiperteks cididekripsikan kembali menjadi blok midengan rumus :

mi =cidmodn

2.10. Kecepatan Algoritma RSA

Sebuah proses RSA, baik enkripsi, dekripsi, penandatanganan dan verifikasi intinya

adalah sebuah eksponensial terhadap modul. Proses perhitungan ini ditunjukkan oleh

sebuah rangkaian dari multiplikasi terhadap modul. Dalam aplikasi praktikal, adalah

umum untuk menentukan sebuah eksponen kecil yang umum sebagai kunci publik.

Faktanya, keseluruhan kelompok dari user (pemakai) bisa memakai eksponen yang sama, dengan modulus berbeda. Terdapat beberapa pembatasan pada faktor-faktor

prima dari eksponen publik. Hal ini menyebabkan proses enkripsi lebih cepat daripada

proses dekripsi dan verifikasi lebih cepat daripada penandatanganan.

Sebagai perbandingan, algoritma DES dan beberapachiperblok yang lain jauh lebih cepat daripada algoritma RSA. DES secara umum 100 kali lebih cepat pada

perangkat lunak dan antara 1.000 dan 10.000 kali lebih cepat pada perangkat keras,

tergantung dari implementasinya. Implementasi dari algoritma RSA mungkin akan

(46)
(47)

2.11.2. Digital Signature

Dalam tahapan ini string yang telah dirubah ke dalam message digest (hash), kemudian akan ditandatangani menggunakan private key. Dalam proses penandatanganan ini digunakan algoritma RSA. Message digest tersebut akan ditandatanganin dengan menggunakan persamaan matematis:

= ( ) (2.4)

nilai d merupakanprivate key.

2.11.3. Verifikasi Digital Signature

Membandingkan niai message digest string yang ditandatangani dengan nilai hasil deskripsi menggunakan persamaan = ( ) , nilai n dan e merupakan public key.

(48)

34

2.12. Unified Modeling Language

Unified Modeling Language (UML) adalah sebuah “bahasa” yang telah menjadi standard industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti

lunak (Dharwiyanti dan Wahono, 2003). Dengan menggunakan UML kita dapat

membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut

dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun serta ditulis

dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakanclassdan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan piranti

lunak dalam bahasa berorientasi objek.

Menurut Hariyanto (2004) tujuan perancangan UML adalah:

1. Menyediakan bahasa pemodelan visual yang ekspresif dan siap pakai untuk

mengembangkan dan pertukaran model yang berarti.

2. Menyediakan mekanisme perluasan dan spesialisasi untuk memperluas

konsep-konsep inti.

3. Mendukung spesifikasi independen bahasa pemograman dan pengembangan

tertentu.

4. Menyediakan basis formal untuk bahasa pemodelan.

5. Mendukung konsep-konsep pengembangan level lebih tinggi seperti

komponen, kolaborasi,frameworkdanpattern.

Unified Modelling Language (UML) menyediakan sejumlah diagram untuk menggambarkan pemodelan berorientasikan objek yang dilakukan. UML membagi

diagram menjadi dua tipe :

1. Diagram Struktur

Diagram ini memvisualisasi, menspesifikasi, membangun dan mendokumentasikan

aspek statik dari sistem. Diagram struktur UML terdiri dari :

a. Diagram Kelas (Class Diagram) b. Diagram Objek (Object Diagram)

(49)

2. Diagram perilaku

Diagram untuk memvisualisasi, menspesifikasi, membangun dan mendokumentasikan

aspek dinamis dari sistem. Diagram strukur di UML terdiri dari :

a. Diagramuse case(Use case diagram) b. Diagram sekuen (Sequence diagram)

c. Diagram kolaborasi (Collaboration diagram) d. Diagramstatechart(Statechart diagram) e. Diagram aktivitas (Activity diagram)

2.12.1. Diagram Use Case

Diagram Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat (Shalahuddin, 2011). Diagram Use case memodelkan aspek perilaku sistem atau digunakan untuk mendeskripsikan apa yang

seharusnya dilakukan oleh sistem. Beberapa elemen diagramuse caseyaitu : 1. Aktor

Aktor adalah pemakai sistem, dapat berupa manusia atau sistem terotomatisasi

lain. Aktor adalah seseorang atau sesuatu yang dapat berinteraksi dengan sistem,

yaitu siapa dan apa yang menggunakan sistem. Aktor adalah tipe (kelas) bukan

instan. Aktor akan mempresentasikan peran bukan pemakai individu dari sistem.

Gambar 2.21 Aktor-aktoruse case

2. Use case

(50)

36

Gambar 2.22 Aktor danuse case

3. Keterhubungan

Keterhubungan antaruse casedenganuse caselain berupa generalisasi antarause caseyaitu :

a. include, perilakuuse casemerupakan bagian dariuse caselain. b. extends, perilakuuse casememperluasuse caseyang lain.

Gambar 2.23 Keterhubungan

2.12.2. Spesifikasi Use Case (Use Case Spesification)

Use case spesifikasi merupakan perkembangan atau deskripsi dari use case diagram untuk setiap use case. Use case spesifikasi menjelaskan bagaimana sebuah use case itu bekerja (Muchtar, 2011).Spesifikasiuse casesistem tanda tangan digital dilakukan berdasarkancaseyang ada padause casediagram. Spesifikasiuse caseterdiri dari : a. Deskripsi singkatcase, yang menjelaskan apa yang terjadi padacase.

b. Pra kondisi yaitu keadaan apa yang terjadi sebelumcaseberlangsung. c. Karateristik yang dimiliki olehlow case.

(51)

e. Pasca kondisi yaitu keadaan apa atau output apa yang dihasilkan setelah case berlangsung.

2.12.3. Diagram Aktivitas (Activity Diagram)

Diagram aktivitas adalah diagramflowchartyang diperluas untuk menunjukkan aliran kendali satu aktivitas ke aktivitas lain. Diagram aktivitas berupa operasi-operasi dan

aktivitas-aktivitas di use case (Hariyanto, 2004). Diagram aktivitas dapat digunakan untuk :

Pandangan dalam yang dilakukan di operasi.

1. Pandangan dalam bagaimana objek-objek bekerja

2. Pandangan dalam di aksi-aksi dan pengaruhnya pada objek-objek

3. Pandangan dalam suatuuse case. 4. Logik dalam proses bisnis

Berikut adalah tabel simbol dari aktivasi diagram :

Tabel 2.3 Simbol Aktivitas Diagram

Simbol Keterangan

Start Point

End Point

Activities

Join (Penggabungan)

Fork (Percabangan)

Swimline Sebuah cara mengelompokkan aktifitas berdasarkan aktor (mengelompokkan

aktivitas dalam sebuah urutan yang

(52)

38

2.13. Flowchart

Flowchartadalah penggambaran secara grafik dari langkah-langkah dan urutan-urutan prosedur suatu program.Simbol-simbolflowchartmemiliki fungsi yang berbeda antara satu simbol dengan simbol lainnya. Fungsi dari simbol-simbol flowchart adalah sebagai berikut :

Tabel 2.4 Fungsi simbol-simbolflowchart

Simbol Fungsi

Simbol process, yaitu menyatakan suatu tindakan (proses) yang dilakukan didalam program.

Simbol offline connector yaitu menyatakan penghubung bila flowchart terputus disebabkan oleh

pergantian halaman (misalanya tidak cukup dalam satu

halaman).

Simbolonline connector, berfungsi untuk menyatakan sambungan dari prose ke proses yang lainnya dalam

halaman yang sama.

Simbol arus/flowline, yaitu menyatakan jalannya arus suatu proses.

Simbol decision yaitu menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan

jawaban yaitu : ya/ tidak.

(53)

2.14. Bahasa Pemograman PHP

PHP (Hypertext Preprocessor) adalah bahasa komputer yang dibuat untuk pengembangan web dinamis. Pada umumnya PHP digunakan di server namun juga dapat berdiri sendiri sebagai aplikasigraphical.

Penggunaan PHP dan MySQL dipilih karena PHP dan MySQL memiliki beberapa

kelebihan seperti dinyatakan oleh Nugroho, B (2008) kelebihan nya sebagai berikut:

1. Bahasa pemograman PHP adalah sebuah bahasa scriptyang tidak melakukan sebuah kompilasi dalam penggunaannya.

2. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan Apache dengan konfigurasi yang relatif mudah.

3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis milis dan

developeryang siap membantu dalam pengembangan.

4. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak.

5. PHP adalah bahasa opensource yang dapat digunakan di berbagai mesin (Linux, Unix, Windows) dan dapat dijalankan secara runtimemelaluiconsole serta juga dapat menjalankan perintah-perintah sistem.

Sedangkan database MySQL memiliki beberapa kelebihan, yaitu:

1. Portability

MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows,

Linux, FreeBSD, Mac Os X Server, Solaris, Amiga dan masih banyak lagi.

2. Open Source

MySQL dapat didistribusikan secaraopen source(gratis), dibawah lisensi GPL sehingga dapat digunakan secara cuma- cuma.

3. Multiuser

MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.

4. Performance tuning

MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat meproses lebih banyak SQL per satuan

(54)

40

5. Column types

MySQL memiliki tipe kolom yang sangat kompleks, sepertisigned/ unsigned integer,float,double,char,text,date,timestamp, dan lain-lain.

6. Commanddanfunctions

MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah

SelectdanWheredalamquery. 7. Security

MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang perizinan yang mendetail sertapasswordterenkripsi.

8. Scalabilitydanlimits

MySQL mampu mengani database dalam skala besar, dengan jumlah records lebih dari 50 juta dan 60 juta ribu serta 5 milyar baris. Selain itu batas indeks

yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.

9. Connectivity

MySQL dapat melakukan koneksi dengan client menggunakan protocol TCP/IP,Unix soket(UNIX), atauNamed Pipes(NT).

10.Localization

MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum

termasuk di dalamnya.

11.Interface

MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemograman dengan menggunakan fungsi API (Application Programming Interface).

12.Clientsdantools

MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk adminsitrasi database, dan pada setiap tool yang ada disertakan petunjuk online.

13. Struktur Tabel

(55)

2.15. Penelitian Terdahulu

Penelitian sebelumnya mengenai algoritma RSA untuk keamanan data yang di

lakukan oleh Sianturi (2008) yaitu Studi Dan Implementasi Keamanan Data Dengan

Tanda Tangan Digital. Hasil yang dicapai dari penelitian diatas, perangkat lunak tanda

tangan digital dapat dibangun dengan mengimplementasikan algoritma RSA. Hasil

pengujian menunjukkan tanda tangan digital mengidentifikasikan pesan yang

ditandatangani, sehingga pesan tidak mungkin dipalsukan ataupun diubah tanpa

diketahui. Perangkat lunak dapat mensimulasikan tujuan tanda tangan digital meliputi

integritas data dan otentitikasi. Input bilangan prima dalam pembangkitan kunci dapat

dikembangkan menjadi input data berupa teks yang selanjutnya akan diubah ke dalam

bilangan prima, sehingga input lebih mudah dilakukan tanpa harus mengetahui

bilangan prima. Bilangan prima yang diinput untuk pengembangan selanjutnya dapat

membuat bilangan yang besar untuk keamanan yang lebih baik.

Pada tahun 2011 Siregar melakukan pengujian untuk mengimplementasikan

algoritma RSA dan Tripel DES dalam hal lama proses dekripsi diantara kedua

algoritma tersebut. Hasil yang dicapai dari penelitian diatas bahwa algoritma RSA

memiliki waktu yang lebih lama daripada algoritma Triple Des, sehingga berdasarkan

penelitan diatas disimpulkan bahwa algoritma RSA lebih aman dibandingkan

algoritma Triple Des karena algoritma RSA menggunakan faktorisasi bilangan

berjumlah banyak (Siregar, 2011).

Pada tahun 2011, Nababan telah membuat kajian tentang Perbandingan antara

Metode Probabilistic Encryption dengan Metode RSA (Rivest-Shamir-Adleman)

(Nababan, 2011). Banyaknya algoritma yang digunakan dalam pembuatan kunci

enkripsi data, yang mengakibatkan sering kali bingung dalam menerapkan algoritma

yang tepat untuk merancang kunci enkripsi dan kunci dekripsi data. Untuk

menerapkan / menampilkan hasil dari suatu kajian diatas kedalam bentuk

implementasi sistem, maka dibangunlah sebuah sistem pendukung dari penerapan

algoritma diatas menggunakan salah satu bahasa pemrograman. Adapun algoritma

yang dipakai dalam perancangan program tersebut nantinya adalah algoritma

CSPRNG (Cryptographically Secure Pseudo Random Generator) berbasis RSA

(Rivest-Shamir-Adleman) dan algoritma Rabin-Miller. Dari penelitian diatas, RSA

Gambar

Gambar 2.12 Proses 1 pembangkit bilangan prima The Sieve of Eratothenes
Gambar 2.13 Proses 2 pembangkit bilangan prima The Sieve of Eratothenes
Gambar 2.15 Proses 4 pembangkit bilangan prima The Sieve of Eratothenes
Gambar 2.17 Proses 6 pembangkit bilangan prima The Sieve of Eratothenes
+7

Referensi

Dokumen terkait

FRINNA SHINTA 500644607 Magister Manajemen MM PENGARUH PELATIHAN, INTERAK.SI SOSIAL, DAN MOTIVASI KERJA TERHADAP KINERJA PENYULUH MELALUI KOMPETENSI Studi pada Kantor

Perubahan aksesibilitas petani terhadap sumber teknologi, lokasi usahtani padi, jalan raya dan pasar input akan mempengaruhi peluang petani dalam mengadopsi

Abstrak: Tujuan dari penelitian ini adalah untuk mengidentifikasi jenis dan tingkat kerusakan serta mengetahui nilai dari kondisi perkerasan jalan pada Jalan Tulus Besar

Pengkayaan hayati tanah dapat dilakukan dengan menambah jenis dan populasi organisme tanah melalui aplikasi biofertilizer yang merupakan jenis pupuk dengan kandungan

Tahniah dan syabas diucapkan kepada Jemaah Nazir Sekolah, Kementerian Pelajaran Malaysia atas inisiatif menerbitkan Standard Kualiti Pengurusan Dan Pengajaran Sains dan

a. Program kunjungan ini, kami menggunakan sistem full public transportation, artinya penggunaan transportasi lokal di area Jepang menggunakan transportasi umum, seperti

Mencatat waktu setiap kali pengamatan elemen- elemen pekerjaan dilapangan dan kemudian dimasukan dalam lembar time study untuk memperoleh nilai basic time dari

Hasil penelitan menunjukkan bahwa (1) aktivitas siswa pada kegiatan pembelajaran menggunakan strategi Predict- Observe-Explain (POE) termasuk dalam kriterika baik (2)