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 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 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 Eratothenes

  2. 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 Eratothenes

  78

  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 Eratothenes

  78

  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 Eratothenes

  78

  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 Eratothenes

  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

  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 φ