• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1. Kriptografi Kriptografi (cryptography) berasal dari Bahasa Yunani: “cryptos” (rahasia) dan - Sistem Tanda Tangan Digital Pada Pesan Teks Menggunakan Algoritma Kriptografi Kunci Publik Rsa

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1. Kriptografi Kriptografi (cryptography) berasal dari Bahasa Yunani: “cryptos” (rahasia) dan - Sistem Tanda Tangan Digital Pada Pesan Teks Menggunakan Algoritma Kriptografi Kunci Publik Rsa"

Copied!
39
0
0

Teks penuh

(1)

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.

(2)
(3)
(4)

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

(5)

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:

(6)
(7)
(8)

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

(9)

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

(10)

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)

(11)

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:

(12)

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:

← ( ( ), , )

(13)

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:

(14)
(15)

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

(16)
(17)

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

(18)

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

(19)

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,

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

(20)

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

(21)

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

(22)

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

(23)

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).

(24)

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.

(25)

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

(26)

30

= 2702mod 277 = 49

478mod 277 = 474. 474mod 277 = [ (474mod 277) (474mod 277) mod 277 ] = 492mod 277

= 185

4716mod 277 = 478. 478mod 277 = [ (478mod 277) (478mod 277) mod 277 ] = 1852mod 277

= 154

4732mod 277 = 4716. 4716mod 277 = [ (4716mod 277) (4716mod 277) mod 277 ] = 1542mod 277

= 171

4752mod 277 = [ (4732mod 277) (4716mod 277) (474mod 277) mod 277 ] = 171 . 154 . 49 mod 277

= 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)

(27)

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.

(28)
(29)

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.

(30)

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)

(31)

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

(32)

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.

(33)

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)

(34)

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.

(35)

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

(36)

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

(37)

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).

(38)

42

menembus kunci dari sebuahcipherteks, dengan kata lain akan memakan waktu yang sangat lama. Metode Rabin-Miller dapat digunakan untuk melakukan proses pengujian dan pembangkitan bilangan prima.

Pada Seminar Nasional Sistem dan Informatika 16 November 2007 di Bali, Rinaldi Munir, Youry Pardanus, Debby Paseru dan Prissilya Areros menganalisis dan merancang perangkat lunak digital signature signme menggunakan algoritma RSA dan fungsihashMD5 (Munir et. Al, 2007). Pengamanan atas sebuah dokumen digital yang dikirim melalui Internet sangatlah dibutuhkan karena dokumen tersebut dapat saja diubah tanpa sepengetahuan pemilik dan penerima dokumen. Keamanan sebuah dokumen digital dapat dijaga melalui sebuah tanda tangan digital yang dapat disisipkan ke dalam dokumen digital tersebut. Tanda tangan digital dapat menjaga keautentikan isi dokumen, sehingga apabila dokumen diubah maka tanda tangan digital tidak lagi sah. Tanda tangan digital juga dapat menjaga keautentikan pemilik dokumen, sehingga pemilik dokumen tidak dapat tidak mengakui dokumen yang telah dikirimkan. Untuk lebih mengoptimalkan penggunaan perangkat lunak, disarankan agar fitur dalam perangkat lunak ini dapat ditambah dengan suatu fungsi yang dapat memberikan enkripsi terhadap isi dokumen digital yang ditandatangani, sehingga dapat menjaga kerahasiaan isi dokumen. Algoritma RSA dan MD5 yang akan digunakan untuk pengembangan perangkat lunak disarankan untuk dapat dikembangkan sendiri.

(39)

Tabel 2.5 Penelitian Terdahulu (Lanjutan)

Gambar

Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri (Lanjutan)
Gambar 2.8 Skenario tanda tangan digital (Sadikin, 2012)
Gambar 2.12 Proses 1 pembangkit bilangan prima The Sieve of Eratothenes
Gambar 2.13 Proses 2 pembangkit bilangan prima The Sieve of Eratothenes
+7

Referensi

Dokumen terkait

Mata kuliah ini bertujuan agar mahasiswa dapat mengetahui dan mampu menganalisis fenomena Masyarakat Sipil, dan pengaruhnya dalam politik, ekonomi, dan mengapa

Berdasarkan uraian di atas, maka akan dibahas tentang perencanaan strategi sistem dan teknologi informasi dengan judul “Perencangan Strategi,Operasi, dan Teknologi

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

Prestasi yang besar, khususnya di sektor pertanian, telah mengubah posisi Indonesia dari negara pengimpor beras terbesar di dunia dalam tahun 1970-an menjadi negara yang

This study have limitations in studying this field, where the measurements to the media exposure variable using dummy variable where a value of 1 for companies that

Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan, maka dapat disimpulkan bahwa gaya kepemimpinan dan ketidakapastian lingkungan memiliki pengaruh terhadap

voli.html. Perencanaan yujuan pembelajaran. Motivasi belajar dalam penjaskes. Permainan bola voli..

Terdapat load cell yang terhubung dengan Weighing indicator XK3190-A12, Terdapat LCD sebagai penampil inputan berupa nomer plat truk, nama perusahaan, berat awal