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
BAB 2 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 melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
Tabel 2.1 Kelebihan dan Kelemahan Kriptografi Kunci Simetri Kelebihan Kelemahan Algoritma Kriptografi Simetri Kunci simetri harus dikirim melalui dirancang sehingga proses saluran yang aman, kedua entitas enkripsi/dekripsi membutuhkan yang berkomunikasi harus menjaga waktu yang singkat. kerahasiaan kunci ini Ukuran kunci simetri relative Kunci harus sering diubah, mungkin pendek. pada setiap sesi komunikasi 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
Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri Kelebihan Kelemahan Hanya kunci privat yang perlu Enkripsi dan dekripsi data umumnya dijaga kerahasiaannya oleh setiap lebih lambat daripada sistem simetri, entitas yang berkomunikasi (tetapi karena enkripsi dan dekripsi otentikasi kunci asimetri harus tetap menggunakan bilangan yang besar terjamin). dan melibatkan operasi perpangkatan yang besar Pasangan kunci publik dan kunci privat tidak perlu diubah, bahkan Ukuran cipherteks lebih besar dalam periode waktu yang panjang. daripada plainteks (bisa dua kali sampai empat kali ukuran plainteks) Dapat digunakan untuk
Ukuran kunci relatif lebih besar mengamankan pengiriman kunci simetri daripada ukuran kunci simetri Beberapa algoritma kunci asimetri Karena kunci publik diketahui secara dapat digunakan untuk member luas dan dapat digunakan setiap
Tabel 2.2 Kelebihan dan Kekurangan Kriptografi Kunci Asimetri (Lanjutan) Kelebihan Kelemahantanda 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 kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik.
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 plainteks- plainteks yang lebih mengarahkan penemuan kunci.
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 asal pesan (keabsahan pengirim), dan nirpenyangkalan.
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 menghitung message digest dari 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 dengan tanda tangan digital. Selanjutnya tandatangan digital dilekatkan ke pesan 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 dokumen M dengan memanggil algoritma sign sebagai berikut:
← ( , ) Untuk menghasilkan tandatangan. Alice kemudian mengirim (M, ) kepada Bob. Bob pada akhirnya memanggil algoritma verify sebagai berikut:
← ( , , ) Untuk memverifikasi tandatangan, Bob menerima pasangan (M, ) bila nilai terima adalah true (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 pesan M, 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 nilai True.
b. Keutuhan Data Selain otentikasi pesan, sistem tanda tangan digital yang ditambah fungsi hash dapat mewujudkan layanan keutuhan data beserta dengan proses sign/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 algoritma sign dengan masukan digest M.
← ( ( ), ) Alice mengirim (M, ) ke Bob. Setelah menerima (M, )Bob memverifikasi
digest M sebagai berikut:
← ( ( ), , ) Jika mengembalikan nilai True maka keutuhan data terjaga dan diterima.
c. Non-repudiation
Layanan keamanan yang juga disediakan oleh sistem tanda tangan digital adalah non-
repudiation . Layanan non-repudiation membuat 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 kunci publik pihak ketiga. Jika pada waktu yang akan datang Alice menolak telah menandatangani M, pihak ketiga memiliki salinan (M, ).
2.6. Fungsi Hash 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 hash H melalui persamaan:
h = H(M)
Pada persamaan h, nilai hash atau message digest dari fungsi H untuk 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 fungsi hash adalah:
1. Fungsi kompresi/kontraksi (compression function)
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 adalah MD5 dan SHA.
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, resistance atau 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
adalah fungsi hash satu-arah yang dibuat oleh Ron Rivest. MD5 merupakan
MD5
perbaikan dari MD4 setelah MD4 berhasil diserang oleh kriptanalis. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan
message digest yang panjangnya 128 bit.
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. Metode Bruce Force Metode bruce force merupakan metode sederhana dalam menentukan bilangan prima. Metode ini dilakukan dengan teknik mengecek seluruh bilangan ganjil sampai dengan batas bilangan yang ditentukan dan membandingkannya dengan bilangan prima yang telah dimasukkan ke dalam list. 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 list bilangan prima. Pengecekan hanya dilakukan hingga akar kuadrat dari batas nilai yang ditentukan.
b. Metode The 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 metode bruce force.
c. Metode Sieve 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, 2010). Lebih jelasnya, metode Sieve of Eratosthenes digambarkan pada langkah- langkah berikut:
1. Tuliskan daftar bilangan dari 2 sampai bilangan yang akan dicari bilangan primanya.
61
71
70
69
68
67
66
65
64
63
62
60
73
59
58
57
56
55
54
53
52
51
50
49
72
74
47
88
98 99 100 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
97
96
95
94
93
92
91
90
89
87
75
86
85
84
83
82
81
80
79
78
77
76
48
46
2. Tandai bilangan di dalam daftar yang mempunyai nilai kelipatan 2 dan bilangan 2 tidak ditandai
7
17
16
15
14
13
12
11
10
9
8
6
19
5
4
3
2
1. Buatlah daftar bilangan prima yang akan di tentukan, yaitu bilangan bulat lebih besar dari 1.
b. : Bukan bilangan prima
a. : Bilangan prima
Keterangan warna pada Gambar 2.12, Gambar 2.13, Gambar 2.14, Gambar 2.15, Gambar 2.16, Gambar 2.17 yaitu:
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 :
4. Kemudian ke bilangan berikutnya, bila bilangan tersebut sudah di tandai maka di lanjutkan ke bilangan berikutnya
3. Kemudian ke bilangan 3 dan tandai kelipatan setiap kelipatan 3 dan bilangan 3 tidak di tandai
18
20
45
34
44
43
42
41
40
39
38
37
36
35
33
21
32
31
30
29
28
27
26
25
24
23
22
Gambar 2.12 Proses 1 pembangkit bilangan prima The Sieve of Eratothenes2. Kemudian beri tanda pada bilangan yang mempunyai nilai kelipatan 2 kecuali 2.
39
30
31
32
33
34
35
36
37
38
40
28
41
42
43
44
45
46
47
48
49
29
27
51
14
5
6
7
8
9
10
11
12
13
15
26
16
17
18
19
20
21
22
23
24
25
50
52
3
88
79
80
81
82
83
84
85
86
87
89
77
90
91
92
93
94
95
96
97
98 99 100 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.14 Proses 3 pembangkit bilangan prima The Sieve of Eratothenes78
76
53
63
54
55
56
57
58
59
60
61
62
64
75
65
66
67
68
69
70
71
72
73
74
4
2
2
37
28
29
30
31
32
33
34
35
36
38
26
39
40
41
42
43
44
45
46
47
48
27
25
50
12
3
4
5
6
7
8
9
10
11
13
24
14
15
16
17
18
19
20
21
22
23
49
51
Gambar 2.13 Proses 2 pembangkit bilangan prima The Sieve of Eratothenes 3. Kemudian beri tanda bilangan kelipatan 3 kecuali 3.87
78
79
80
81
82
83
84
85
86
88
76
89
90
91
92
93
94
95
96
97
98 99 100 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
77
75
52
62
53
54
55
56
57
58
59
60
61
63
74
64
65
66
67
68
69
70
71
72
73
4. Kemudian ulangi langkah di atas untuk bilangan prima selanjutnya. Karena bilangan 4 sudah tertandai pada proses sebelumnya, lanjut ke bilangan 5. Beri tanda setiap bilangan kelipatan 5 kecuali 5.
2
39
30
31
32
33
34
35
36
37
38
40
28
41
42
43
44
45
46
47
48
49
29
27
51
14
5
6
7
8
9
10
11
12
13
15
26
16
17
18
19
20
21
22
23
24
25
50
52
3
88
79
80
81
82
83
84
85
86
87
89
77
90
91
92
93
94
95
96
97
98 99 100 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.16 Proses 5 pembangkit bilangan prima The Sieve of Eratothenes78
76
53
63
54
55
56
57
58
59
60
61
62
64
75
65
66
67
68
69
70
71
72
73
74
4
2
3
38
29
30
31
32
33
34
35
36
37
39
27
40
41
42
43
44
45
46
47
48
49
28
26
51
13
4
5
6
7
8
9
10
11
12
14
25
15
16
17
18
19
20
21
22
23
24
50
52
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.
88
79
80
81
82
83
84
85
86
87
89
77
90
91
92
93
94
95
96
97
98 99 100 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.15 Proses 4 pembangkit bilangan prima The Sieve of Eratothenes78
76
53
63
54
55
56
57
58
59
60
61
62
64
75
65
66
67
68
69
70
71
72
73
74
6. Karena kelipatan bilangan 8, 9 dan 10 sudah tertandai dari proses sebelumnya, maka langkah selanjutnya adalah menandai kelipatan bilangan 11 kecuali 11.
2
38
29
30
31
32
33
34
35
36
37
39
27
40
41
42
43
44
45
46
47
48
28
26
50
13
4
5
6
7
8
9
10
11
12
14
25
15
16
17
18
19
20
21
22
23
24
49
51
2
87
78
79
80
81
82
83
84
85
86
88
76
89
90
91
92
93
94
95
96
97
98 99 100 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
77
75
52
62
53
54
55
56
57
58
59
60
61
63
74
64
65
66
67
68
69
70
71
72
73
3
7. Kemudian tandai bilangan 12. Karena bilangan 12 sudah ditandai pada proses sebelumnya maka dilanjutkan menandai bilangan 13 kecuali 13.
3
38
29
30
31
32
33
34
35
36
37
39
27
40
41
42
43
44
45
46
47
48
28
26
50
13
4
5
6
7
8
9
10
11
12
14
25
15
16
17
18
19
20
21
22
23
24
49
51
Gambar 2.17 Proses 6 pembangkit bilangan prima The Sieve of Eratothenes87
78
79
80
81
82
83
84
85
86
88
76
89
90
91
92
93
94
95
96
97
98 99 100 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
77
75
52
62
53
54
55
56
57
58
59
60
61
63
74
64
65
66
67
68
69
70
71
72
73
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, 127, 131, 137 dan 139. Dan bilangan prima dengan metode The Sieve of Eratosthenes ini akan digunakan pada penerapan algoritma RSA.
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 metode Fast 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 serangan chosen-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 algoritma RSA, yaitu :
1. p dan q adalah 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 φ