Analisis Masalah 18 Analisis Masalah Analisis Kebutuhan Requirement Analysis

DAFTAR ISI Halaman Persetujuan ii Pernyataan iii Penghargaan iv Abstrak vi Abstract vii Daftar Isi viii Daftar Tabel x Daftar Gambar xi Daftar Lampiran xii Bab I Pendahuluan 1.1 Latar Belakang 1 1.2 Rumusan Masalah 2 1.3 Tujuan Penelitian 2 1.4 Batasan Masalah 2 1.5 Manfaat Penelitian 3 1.6 Metode Penelitian 4 1.7 Sistematika Penulisan 4 Bab II Landasan Teori 2.1 Kriptografi 6 2.2 Tujuan Kriptografi 7 2.3 Ancaman Kriptografi 8 2.4 Kriptografi Asimetris 9 2.5 Algoritma RSA 10 2.6 Fermat’s Little Theorem 14 2.7 Metode Universal Exponent Factoring 14 2.8 Penelitian Terdahulu 15 Bab III Analisis dan Perancangan 3.1 Analisis Sistem 18

3.1.1 Analisis Masalah 18

3.1.2 Analisis Kebutuhan 19 3.1.2.1 Analisis Fungsional 19 3.1.2.2 Analisis Nonfungsional 20 3.1.2.3 Pemodelan Persyaratan dengan Use Case 20 3.1.3 Analisis Sistem Proses 24 3.2 Perancangan Sistem 25 3.2.1 Flowchart 25 3.2.1.1 Flowchart Gambaran Umum 25 3.2.1.2 Flowchart Proses Enkripsi 26 3.2.1.3 Flowchart Pemecahan Kunci 28 3.2.1.4 Flowchart Pengujian Bilangan Prima 29 Universitas Sumatera Utara 3.2.1.5 Flowchart Proses Dekripsi 30 3.2.2 Rancangan Antar Muka 31 3.2.2.1 Antar Muka Mainform 31 3.2.2.2 Antar Muka Form Dekripsi 32 3.2.2.3 Antar Muka Pemecahan Kunci dan Dekripsi 33 3.2.3 Tahapan Sistem 35 3.2.3.1 Tahapan Algoritma RSA untuk Enkripsi 35 3.2.3.2 Pemecahan Kunci Menggunakan Metode Universal Exponent Factoring 38 3.2.3.3 Tahapan Algoritma RSA untuk Dekripsi 39 Bab IV Implementasi dan Pengujian 4.1 Implementasi 42

4.1.1 Mainform 42

4.1.2 Form Enkripsi 43 4.1.3 Form Pemecahan Kunci dan Dekripsi 44 4.2 Pengujian 44 4.2.1 Pengujian Proses Enkripsi 45 4.2.2 Pengujian Pemecahan Kunci dan Dekripsi 46 4.2.3 Pengujian Pemecahan Kunci 47 4.2.4 Grafik Hubungan Panjang Nilai n terhadap Waktu 56 4.3 Perhitungan Kompleksitas Metode Universal Exponent Factoring 58 Bab V Kesimpulan dan Saran 5.1 Kesimpulan 61 5.2 Saran 62 Daftar Pustaka 63 Universitas Sumatera Utara DAFTAR TABEL Nomor Tabel Nama Tabel Halaman 2.1 2.2 2.3 3.1 3.2 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 Tabel Encoding Base 64 Tabel Enkripsi Pesan Tabel Dekripsi Pesan Spesifikasi Use Case Enkripsi Spesifikasi Use Case Pemecahan Kunci dan Dekripsi Tabel Enkripsi Pengujian Sistem Pengujian Enkripsi Pesan dengan nilai n sebanyak 3 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 3 digit Pengujian Enkripsi Pesan dengan nilai n sebanyak 4 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 4 digit Pengujian Enkripsi Pesan dengan nilai n sebanyak 5 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 5 digit Pengujian Enkripsi Pesan dengan nilai n sebanyak 6 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 6 digit Pengujian Enkripsi Pesan dengan nilai n sebanyak 7 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 7 digit Pengujian Enkripsi Pesan dengan nilai n sebanyak 8 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 8 digit Pengujian Enkripsi Pesan dengan nilai n sebanyak 9 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 9 digit Pengujian Enkripsi Pesan dengan nilai n sebanyak 10 digit Pengujian Pemecahan Kunci dengan nilai n sebanyak 10 digit Waktu Rata-rata Enkripsi Waktu Rata-rata Pemecahan Kunci Perhitungan Running Time 13 13 14 21 22 45 48 48 49 49 50 50 51 51 52 52 53 53 54 54 55 55 56 57 59 Universitas Sumatera Utara DAFTAR GAMBAR Nomor Gambar Nama Gambar Halaman 2.1 2.2 2.3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Sistem Kriptografi Konvensional Pertukaran Kunci Deffie-Hellman Sistem Kriptografi dengan Kunci Publik RSA Diagram Ishikawa untuk Analisa Masalah Use Case Diagram Sistem Activity Diagram untuk Proses Enkripsi Activity Diagram untuk Proses Pemecahan Kunci dan Dekripsi Sequence Diagram Proses Enkripsi Sequence Diagram Proses Pemecahan Kunci dan Dekripsi Gambaran Umum Sistem Flowchart untuk Proses Enkripsi Flowchart untuk Proses Pemecahan Kunci Flowchart Pengujian Bilangan Prima Flowchart untuk Proses Dekripsi Pesan Rancangan Form Login Rancangan Form Enkripsi Rancangan Form Pemecahan Kunci dan Dekripsi Mainform Form Enkripsi Pesan Dialog Box Bilangan Bukan Prima Form Pemecahan Kunci dan Dekripsi Form Enkripsi Pengujian Pesan Ciphertext Hasil Enkripsi Pengujian Sistem Form Pemecahan Kunci pada Pengujian Grafik Hubungan Panjang Nilai n terhadap Waktu Enkripsi Grafik Hubungan Panjang Nilai n terhadap Waktu Pemecahan Kunci 6 10 11 19 21 22 23 24 25 26 27 28 29 30 31 32 34 42 43 43 44 46 46 47 57 58 Universitas Sumatera Utara DAFTAR LAMPIRAN Halaman A. Listing Program A-1 B. Daftar Bilangan Prima B-1 C. Curriculum Vitae C-1 Universitas Sumatera Utara ABSTRAK Algoritma RSARivest, Shamir, Adleman adalah salah satu algoritma kriptografi asimetris yang paling umum digunakan. Kelebihan dari algoritma ini adalah sulitnya menemukan faktor bilangan prima yang digunakan. Untuk menguji keamanan dari algoritma RSA ini digunakan metode Universal Exponent Factoring. Metode ini bekerja dengan memperoleh input bilangan n yang akan difaktorkan. Bilangan prima yang diperoleh akan diuji dengan Fermat’s Little Theorem. Sistem diuji dengan mengenkripsi pesan, memecahkan kunci serta mendekripsi pesan. Pengujian dimulai dari 3 digit nilai n sampai 10 digit nilai n. Dari pengujian didapat grafik yang menunjukkan panjang nilai n berbanding lurus dengan waktu yang dibutuhkan untuk enkripsi dan pemecahan kunci. Dari pengujian pemecahan kunci untuk nilai n sebanyak 6 digit waktu rata-rata adalah 3.39931717 detik, untuk nilai n sebanyak 7 digit waktu rata-rata adalah 42.7710719 detik, untuk nilai n sebanyak 8 digit waktu rata-rata adalah 8 menit 42. 5008628 detik, untuk nilai n sebanyak 9 digit waktu rata- rata adalah 52 menit 13.528554 detik, untuk nilai n sebanyak 10 digit waktu rata-rata adalah 2 jam 25 menit 35.70644 detik. Sementara untuk kompleksitas dari metode Universal Exponent Factoring diperoleh θ |n| 4 . Dapat disimpulkan dari segi waktu pemecahan kunci, tingkat keamanan akan meningkat bila kunci yang digunakan menggunakan bilangan dengan digit yang besar. Kata Kunci : Kriptografi, RSA, Universal Exponent Factoring, Fermat’s Little Theorem, Kompleksitas waktu. Universitas Sumatera Utara RSA SECURITY LEVEL TESTING WITH UNIVERSAL EXPONENT FACTORING ABSTRACT RSA Rivest, Shamir, Adleman is one of the asymmetric cryptography algorithm most commonly used. The advantage of this algorithm is the difficulty in determining the prime factors used. To test the security of the RSA algorithm, we use Universal Exponent Factoring method. This method works by obtaining input number n. The primes obtained are tested by Fermats Little Theorem. The system was tested by encrypting a message, obtaining the key and decrypting the message using the obtained key. Testing began on the 3-digit to 10-digit value of n. Testing resulted in a graph which indicated that the length of the value of n is proportional to the time required for encryption and obtained the key. The average time was took to obtain a key from 6-digit value of n was 3.39931717 seconds, for a 7-digit value of n the average time was 42.7710719 seconds, for a 8-digit value of n the average time was 8 minutes 42. 5008628 seconds, for a 9-digit value of n the average time was 52 minutes 13.528554 seconds, for a 10-digit value of n the average time was 2 hours 25 minutes 35.70644 seconds. And for the complexity of the Universal Exponent Factoring method we have θ |n| 4 . We may conclude that the security level will increase if the key used have more digits. Keyword : Cryptography, RSA, Universal Exponent Factoring, Fermat’s Little Theorem, time complexity. Universitas Sumatera Utara BAB I PENDAHULUAN

1.1 Latar Belakang

Kriptografi pada awalnya merupakan ilmu yang mempelajari penyembunyian pesan. Namun, seiring berkembangnya teknologi, kriptografi ini juga berkembang, perkembangan teknologi ini dapat dilihat dengan adanya internet yang menghubungkan komputer satu sama lain. Dengan adanya perkembangan ini kriptografi sangat dibutuhkan untuk keamanan data yang dikirim kepada komputer lain. Kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan autentikasi entitas [5]. Ada empat tujuan utama dari kriptografi. Kerahasiaan confidentiality di mana kriptografi digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah disandi. Kerahasiaan dijaga dengan melakukan enkripsi penyandian. Keutuhan integrity yang berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak [13]. Fungsi kriptografi yang lain adalah autentikasi yang berhubungan dengan identifikasi atau pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui jaringan harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain. Non-repudiation adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman dengan kata lain, terciptanya suatu informasi oleh yang mengirimkan [13]. Universitas Sumatera Utara Kriptografi juga dibagi atas dua: kriptografi klasik dan kriptografi modern. Yang masing-masing memiliki algoritma tersendiri. Algoritma RSA merupakan algoritma yang dikembangkan pada kriptografi modern. Algoritma ini bersifat asimetrik di mana kunci dari masing-masing algoritma ini dibangkitkan dengan menggunakan pembangkit bilangan acak dan dalam proses enkripsi dan dekripsinya menggunakan kunci yang berbeda. Pada penelitian sebelumnya telah dilakukan penelitian untuk keamanan data dengan kriptografi RSA dengan metode tambahan lain yaitu modified LSBLeast Significant Bit. RSA digunakan untuk mengenkripsi pesan asli plainteks menjadi pesan terenkrip cipherteks, selanjutnya cipherteks disembunyikan dalam media citra digital agar keberadaan pesan tidak dicurigai oleh pihak lain. Penggabungan dua algoritma tersebut dapat menjaga kerahasiaan pesan, dimana pesan hanya dapat diakses oleh orang yang berwenang dan memiliki kunci. Penelitian diatas dibuat oleh Sisca Anggraini dengan judul “Sistem Keamanan Data dengan RSA dan Modified LSB” [1]. Selain itu pada penelitian yang dibuat oleh Beny dengan judul “Analisis dan Perancangan Sistem Kriptografi Simetris Triple DES dan Kriptografi Simetris RSA”, didapatkan bahwa dengan penggabungan Triple DES dan RSA dapat menambah tingkat keamanan pesan [3]. Untuk itu, penulis mengangkat judul ini untuk menguji keamanan dari algoritma RSA ini dengan menggunakan metode Universal Exponent Factoring dengan menganalisis waktu untuk mendapatkan bilangan prima yang dibangkitkan untuk kunci private pada algoritma RSA tersebut.

1.2 Perumusan Masalah

Berdasarkan latar belakang diatas maka yang menjadi rumusan masalah adalah bagaimana menganalisis waktu yang dibutuhkan untuk memecahkan kunci private dengan menggunakan metode Universal Exponent Factoring. Universitas Sumatera Utara

1.3 Batasan Masalah

Batasan masalah yang diangkat pada pengujian tingkat keamanan RSA ini adalah sebagai berikut : 1. Pengujian dilakukan dengan metode Universal Exponent Factoring yang menganalisis waktu yang dibutuhkan untuk memecahkan kunci private. 2. Dilakukan perhitungan Big O, Big Ω dan Big θ pada metode Universal Exponent Factoring. 3. Pengujian bilangan prima yang dipakai adalah Fermat’s Little Theorem. 4. Nilai n dibatasi hanya sampai 10 digit. 5. Sistem ini dibangun dengan bahasa pemrograman C.

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah sebagai berikut: 1. Untuk mengetahui bagaimana tingkat keamanan algoritma RSA dengan menghitung lama waktu untuk memperoleh kunci private dengan metode Universal Exponent Factoring. 2. Menghitung Big O, Big Ω dan Big θ dari metode Universal Exponent Factoring.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini sebagai berikut: 1. Manfaat untuk penulis adalah: a. Penulis dapat mengetahui tingkat keamanan RSA jika diuji dengan metode Universal Exponent Factoring. b. Menambah pengetahuan penulis dibidang kriptografi khususnya algoritma RSA. 2. Manfaat untuk bidang ilmu adalah: Menjadi referensi untuk penelitian selanjutnya di bidang kriptografi. 3. Manfaat untuk masyarakat: Dengan pengujian tingkat keamanan ini diharapkan penggunaan algoritma RSA dalam berbagai bidang dapat diterapkan dengan baik. Universitas Sumatera Utara

1.6 Metode Penelitian

Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur Penelitian ini terlebih dahulu dipelajari literatur yang didapat melalui buku, jurnal, artikel, makalah maupun situs internet yang membahas kriptografi dengan algoritma RSA dan metode Universal Exponent Factoring. 2. Analisis dan Perancangan Sistem Pada tahap ini akan dilakukan analisis terhadap masalah sesuai dengan batasan masalah dan tujuan yang akan dicapai dari pengujian tingkat keamanan RSA ini. Setelah itu dilakukan perancangan flowchart, antar muka dan perancangan sistem untuk dapat menguji tingkat keamanan algoritma RSA dengan metode Universal Exponent Factoring. 3. Implementasi Sistem Pada tahap ini akan dilaksanakan pengkodean coding dalam bahasa pemrograman c untuk membuat aplikasi untuk pengujian tingkat keamanan RSA dengan metode Universal Exponent Factoring. 4. Pengujian Sistem Dalam tahap ini dilakukan pengujian terhadap sistem yang telah dibangun, dengan melihat waktu yang dibutuhkan sistem untuk mendapatkan kunci private RSA sesuai nilai yang dimasukkan. 5. Dokumentasi Dalam tahapan ini dilakukan penyusunan laporan dari hasil analisis dan perancangan sistem dalam format penulisan penelitian.

1.7 Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri atas bagian-bagian berikut:

BAB I PENDAHULUAN

Bab ini menjelaskan latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematikan penulisan dari skripsi ini. Universitas Sumatera Utara

BAB II LANDASAN TEORI

Bab ini menjelasakan landasan teori dari penelitian yang dilakukan. Teori yang diangkat yaitu kriptografi dan keamanannya, algoritma RSARivest, Shamir, Adleman dan metode Universal Exponent Factoring.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini akan dijelaskan analisis terhadap metode Universal Exponent Factoring yang digunakan untuk menguji RSA dan akan dilakukan analisis terhadap waktu yang dibutuhkan untuk mencapai tujuan dari sistem. Pada bab ini juga akan dijelaskan perancangan dari sistem yang akan dibuat.

BAB IV IMPLEMNTASI SISTEM

Pada bab ini akan menguraikan hasil pengujian tingkat keamanan RSA dengan metode Universal Exponent Factoring yang dapat dilihat dari sistem yang dibuat.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang didapat dari hasil pengujian yang dilakukan serta saran-saran yang diberikan untuk penelitian selanjutnya. Universitas Sumatera Utara BAB II LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata kriptografi dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti secret rahasia dan graphia berarti writing tulisan. Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Dalam perkembangannya, kriptografi juga digunakan untuk mengindentifikasi pengiriman pesan dengan tanda tangan digital dan keaslian pesan dengan sidik jari digital fingerprint [2]. Berikut adalah gambar sistem kriptografi konvensional: Gambar 2.1 Sistem Kriptografi Konvensional [10] Sistem kriptografi seperti yang ditunjukkan pada gambar di atas terdiri dari 5 bagian yaitu [10]: 1. Plaintext adalah pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. Universitas Sumatera Utara 2. Secret key juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. 3. Ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma yang baik akan manghasilkan ciphertext yang terlihat acak. 4. Algoritma enkripsi memiliki 2 masukan, teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap plaintext sehingga menghasilkan ciphertext. 5. Algoritma dekripsi memiliki 2 masukan yaitu ciphertext dan kunci rahasia. Algoritma dekripsi memulihkan kembali ciphertext menjadi plaintext bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi. Dalam sistem kriptografi klasik selalu mengasumsikan pihak pengirim dan pihak penerima memiliki kunci rahasia yang sama. Sistem kriptografi ini disebut sistem kriptografi simetris. Kunci rahasia harus dibangkitkan secara rahasia dan didistribusikan ke pengirim dan penerima melalui saluran yang diasumsikan aman. Kebutuhan saluran untuk mendapatkan kunci rahasia menjadi kelemahan utama sistem simetris. Sistem kriptografi kunci publik mengatasi asumsi ini, yaitu tidak dibutuhkan saluran aman untuk distribusi kunci [10]. Sistem kriptografi kunci asimentis memiliki kunci untuk enkripsi dan kunci untuk dekripsi yang berbeda. Kunci untuk enkripsi disebut juga sebagai kunci publik bersifat tidak rahasia sehingga dapat didistribusikan melalui saluran tidak aman. Sedangkan kunci dekripsi disebut kunci private bersifat rahasia dan harus dijaga kerahasiaannya oleh pemegang kunci [10].

2.2 Tujuan Kriptografi

Berikut ini adalah tujuan adanya kriptografi : 1. Kerahasiaan Data Universitas Sumatera Utara Dengan adanya kriptografi, kerahasiaan data dapat ditingkatkan. Data penting yang dimiliki hanya akan dapat dibuka atau dibaca oleh orang-ornag tertentu yang memilki akses untuk membukanya. 2. Data Integrity Data yang benar atau asli tanpa ada rekayasa dari pihak ketiga atau pihak yang tidak memiliki akses terhadap data tersebut. 3. Autentikasi Autentikasi dilakukan untuk membuktikan data yang dikirim adalah data asli atau data yang benar. Autentikasi mencegah adanya data palsu. 4. Non-repudiation Non-repudiation atau nir-penyangkalan adalah salah satu tujuan kriptografi. Dengan ini si pengirim tidak dapat menolak bahwa pesan tersebut benar berasal dari si pengirim.

2.3 Ancaman Keamanan

Berikut beberapa ancaman yang dapat mempengaruhi kemanan data : 1. Interruption Interruption merupakan ancaman yang dilakukan dengan merusak dan menghapus data sehingga data tidak dapat ditemukan lagi. 2. Interception Interception adalah ancaman yang dilakukan pihak ketiga dengan menyadap ataupun mengakses data. Data yang seharusnya rahasia dapat diakses oleh pihak yang tidak memiliki akses. 3. Modification Modification adalah ancaman yang lebih berbahaya, pihak yang tidak memiliki akses tidak hanya dapat mengakses data namun dapat memodifikasi atau mengubah data. 4. Fabrication Universitas Sumatera Utara Fabrication merupakan ancaman yang paling berbahaya, pihak yang tidak memiliki akses tidak hanya dapat membaca data, juga dapat mengubah dan memalsukan data, sehingga data seolah berasal dari pengirim sebenarnya.

2.4 Kriptografi Asimetris

Sistem kriptografi kunci publik atau sering disebut sebagai kunci asimetrik pertama kali diusulkan oleh Deffie dan Hellman pada tahun 1976. Ide kriptografi kunci publik sebenarnya mirip dengan cara kerja kunci gembok. Dimisalkan terdapat sebuah peti yang berisi pesan rahasia, lalu peti dikunci dengan gembok, kemudian dikirim kepada penerima. Penerima hanya dapat membuka gembok apabila kunci yang dipegang olehnya merupakan pasangan gembok[10]. Algoritma pertukaran kunci Diffie-Hellman protokol Diffie-Hellman berguna untuk mempertukarkan kunci rahasia untuk komunikasi menggunakan kriptografi simetris. Langkah-langkahnya adalah sebagai berikut [9]: 1. Misalkan Alice dan Bob adalah pihak-pihak yang berkomunikasi. Mula-mula Alice dan Bob menyepakati 2 buah bilangan yang besar sebaiknya prima P dan Q, sedemikian sehingga P Q. Nilai P dan Q tidak perlu rahasia, bahkan Alice dan Bob dapat membicarakannya melalui saluran yang tidak aman sekalipun. 2. Alice membangkitkan bilangan bulat acak x yang besar dan mengirim hasil perhitungan berikut kepada Bob: X = P x mod Q . 3. Bob membangkitkan bilangan bulat acak y yang besar dan mengirim hasil perhitungan berikut kepada Alice : Y = P y mod Q . 4. Alice menghitung K = Y x mod Q . 5. Bob menghitung K’ = X y mod Q . Jika berhitungan dilakukan dengan benar maka K = K’. Dengan demikian Alice dan Bob telah memiliki sebuah kunci yang sama tanpa diketahui pihak lain. Gambar 2.2 mendeskripsikan diagram protokol pertukaran kunci Diffie-Hellman: Universitas Sumatera Utara ALICE P,Q BOB Bangkitkan Bilangan x Bangkitkan Bilangan y Hitung X = P x mod Q Hitung X = P y mod Q Hitung Key = Y x mod Q Hitung Key = X y mod Q X Y Gambar 2.2 Pertukaran Kunci Deffie –Hellman[9] Kriptografi asimetris memiliki kunci enkripsi dan kunci dekripsi yang berbeda. Salah satu algoritma yang dikembangkan sesuai kriptografi asimetris adalah algoritma RSA. Algoritma ini memiliki kelebihan melakukan pemfaktoran bilangan yang besar.

2.5 Algoritma RSA

Pada tahun 1977, Rivest, Shamir dan Adleman merumuskan algoritma praktis yang mengimplementasikan sistem kriptografi kunci publik disebut dengan sistem kriptografi RSA[8]. Algoritma ini adalah sistem yang sangat penting dan banyak keamanan yang tergantung pada algoritma ini.[4] Algoritma enkripsi dan dekripsi memiliki komponen n = p x q, p, q adalah bilangan prima dan Φ n = p-1q-1. Pada paper yang dipublikasikan oleh Rivest, Shamir dan Adleman untuk mengenalkan algoritma RSA yang mereka bangun, mereka menjelaskan kriptosistem kunci publik, termasuk generator kunci dan public-key cipher dan kekuatan keamanan yang diasumsikan dengan sulitnya memfaktorkan bilangan integer menjadi bilangan prima [7]. Universitas Sumatera Utara Gambar 2.3 Sistem Kriptografi dengan Kunci Publik RSA[10] Berikut adalah algoritma pembangkit kunci RSA : 1. Bangkitkan bilangan prima p dan q. 2. Hitung perkalian bilangan prima, n = p x q. 3. Hitung banyaknya bilangan bilangan asli dibawah n, atau disimbolkan dengan Φn dengan rumus Φn = p-1xq-1 4. Hitung nilai kunci publik e berupa bilangan dengan rentang 1 e Φ n, dengan gcde, Φ n = 1 5. Hitung nilai kunci private d, dengan rumus d ≡ e -1 mod Φ n 6. K publik = e, n , K privat = d Kita memilih kunci enkripsi secara random seperti e, dan p-1 q-1 yang relatif prima, dikatakan relatif prima karena gcde, p-1q-1 = 1, yang maknanya bagi bilangan e, p-1q-1 adalah prima, begitu pula sebaliknya meskipun keduanya bukan bilangan prima. Dan d di dapat dengan ed = 1 mod p-1 q-1, dapat di tulis dengan d = e -1 mod p-1 q-1 seperti yang dilakukan pada langkah 5. [9] Untuk mengenkripsi pesan maka dilakukan perhitungan berikut: C = P e mod n ……………………………………………………………… 1 Untuk mendekripsi pesan yang telah dienkripsi maka dilakukan perhitungan berikut: Universitas Sumatera Utara P = C d mod n ……………………………………………………………… 2 Dimana: P = pesan atau data asli C = pesan atau data yang telah dienkripsi e = kunci publik yang digunakan untuk mengenkripsi pesan n = kunci publik yang digunakan mengenkripsi pesan dan untuk mengembalikan pesan kedalam bentuk asal d = kunci private yang dimiliki penerima Contoh penggunaan algoritma RSA: Diambil bilangan prima p = 5 dan q = 11 Berdasarkan algoritma, n = p x q Maka n = 5 x 11 = 55 Φ n = p-1xq-1 = 5-1x11-1 = 40 Untuk menentukan e harus memenuhi syarat gcde, Φ n = 1, maka didapat e = 7 dimana gcd7, 40 = 1.Sedangkan d adalah e -1 mod Φ n maka didapat d = 23. Maka kunci publik yang didapat adalah 7 dan 55, sedangkan kunci private adalah 23. Pengirim ingin mengirimkan kata ILKOM yang nilainya diambil dari tabel encoding di bawah ini. Dengan nilai I = 8, L = 11, K = 10, O = 14 dan M = 12. Plaintext yang dikirim adalah 811101412 Universitas Sumatera Utara Tabel 2.1 Tabel Encoding Base 64 Value Char Value Char Value Char Value Char A 16 Q 32 G 48 W 1 B 17 R 33 H 49 X 2 C 18 S 34 I 50 Y 3 D 19 T 35 J 51 Z 4 E 20 U 36 K 52 5 F 21 V 37 L 53 1 6 G 22 W 38 M 54 2 7 H 23 X 39 N 55 3 8 I 24 Y 40 O 56 4 9 J 25 Z 41 P 57 5 10 K 26 A 42 Q 58 6 11 L 27 B 43 R 59 7 12 M 28 C 44 S 60 8 13 N 29 D 45 T 61 9 14 O 30 E 46 U 62 15 P 31 F 47 V 63 Maka enkripsi yang dilakukan dengan nilai e = 7, n = 55 dan d = 23 sebagai berikut: Tabel 2.2 Tabel Enkripsi Pesan P C = P e mod n 8 2 11 11 10 10 14 9 12 23 Si penerima akan menerima teks 21110923, maka dengan kunci private yang dimiliki maka akan dilakukan dekripsi terhadap ciphertext yang didapat. Maka dekripsi yang dilakukan adalah: Universitas Sumatera Utara Tabel 2.3 Tabel Dekripsi Pesan C P = C d mod n 2 8 11 11 10 10 9 14 23 12 Maka, si penerima akan menemukan teks asli dari pengirim dengan kunci private yang ia miliki. Maka di dapat hasil 811101412 yang hasilnya sama dengan plaintext yang dimilki pengirim.

2.6 Fermat’s Little Theorem

Teorema : Untuk bilangan prima p dan bilangan bulat a, a p ≡ amod p dan jika a tidak dapat dibagi oleh p, maka a p-1 ≡ 1 mod p [8]. Teorema ini dapat digunakan untuk mempermudah kalkulasi perpangkatan modulo bilangan prima. Sebagai contoh, kita coba kalkulasi 2 74 mod 13. Karena 13 adalah bilangan prima dan 2 tidak dapat dibagi 13, maka teorema ini dapat digunakan untuk mengkalkulasi 2 12 ≡ 2 13-1 mod 13 ≡ 1 mod 13. Jadi 2 74 = 2 12 6 × 2 2 ≡ 1 6 × 2 2 ≡ 4 mod 13. Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptogra fi, peran terpenting dari Fermat’s little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris [6].

2.7 Metode Universal Exponent Factoring

Pada metode Universal Exponent Factoring ini, e adalah salah satu variabel yang diketahui nilainya dengan syarat x e ≡ 1mod n untuk x ∈ N dan gcdx, n = 1 Universitas Sumatera Utara kemudian dihitung e = 2 b m dimana b 0 dan m bernilai bebas. Maka akan dilakukan langkah berikut: 1. Pilih nilai random a dengan 1 a n-1, jika gcda,n 1 dan a adalah faktor dari n kita dapat mengakhiri algoritma. Jika tidak, dapat dilanjutkan pada langkah berikutnya. 2. Hitung x = a m mod n. Jika x ≡ 1 mod n, lakukan langkah 1. Jika tidak hitung x j ≡� � −1 2 mod n untuk semua j = 1, 2, …, b . Jika x j ≡ -1 mod n lakukan langkah 1. Jika x j ≡ 1 mod n dan Jika x j-1 ≠ ± 1 mod n dan gcdx j-1 - 1 , n adalah faktor dari n maka algoritma dapat diakhiri [8]. Contoh penggunaan Universal Exponent Factoring: Kita ambil nilai n = 55 dari contoh algoritma RSA diatas dan kita ambil nilai e = 40, dimana e = 2 3. 5. maka dilakukan langkah-langkah sebagai berikut: 1. x = 2 5 mod 55 = 32 mod 55 = 32 2. x 1 = 32 2 mod 55 = 34 3. x 2 = 34 2 mod 55 = 1 Maka dari hasil x 2 = 1, maka gcdx j-1 - 1 , n = gcd33, 55 = 11 dan 11 adalah faktor dari 55, maka di simpulkan n = 55, p = 11, dan q = 5. Setelah didapat nilai p dan q, maka untuk mendapatkan kunci private, maka dilakukan perhitungan sesuai algoritma RSA. p = 5 q = 11 Φ n = p-1xq-1 = 5-1x11-1 = 40 e didapat dengan syarat gcde, Φ n = 1, maka e = 7 dengan gcd7, 40 = 1. Dari nilai e yang telah didapat maka kita dapat menghitung nilai d dengan perhitungan d = e -1 mod Φ n, maka dengan e = 7, Φ n = 40 didapat d = 23.

2.8 Penelitian Terdahulu

Beberapa penelitian yang telah dilakukan sebelumnya yang berkaitan dengan penelitian ini adalah: Universitas Sumatera Utara 1. Penelitian oleh Imani Prasasti dengan judul “Analisis keamanan kriptosistem kunci publik RSA” disimpulkan bahwa inti dari keamanan RSA terletak pada faktorisasi bilangan yang besar. Dengan menghindari kemungkinan dari algoritma faktorisasi maka didapat algoritma yang cukup tahan dan aman dalam jalur komunikasi umum. Pada penelitian ini dilakukan analisis terhadap RSA dan algoritma untuk memfaktorkan bilangan komposit untuk keamanan data juga menganalisis serangan terhadap kriptosistem. Berdasarkan hasil analisis dengan Fermat’s Little Theorem bilangan prima yang dibangkitkan harus besar, sedangkan berdasarkan kurva elliptic kunci p dan q harus memilki panjang digit yang hampir sama. Untuk menghindari serangan terhadap kriptosistem kita juga harus membangkitkan kunci e dengan nilai yang besar [5]. 2. Penelitian Andy Tandiyono dengan judul “Simulasi Pemanfaatan Metode Interlock Protocol Untuk Mengatasi Man-In-The-Middle-Attack”. Pada penelitian ini dibahas mengenai bagaimana memanfaatkan metode interlock protocol untuk mengatasi terjadinya man-in-the-middle-attack, dimana bilangan prima pada algoritma kriptografi RSA digunakan untuk mengamankan pesan, dan bagaimana keamanan dari algoritma RSA untuk melindungi pesan yang dipertukarkan. Pada sistem ini disimulasikan terdapat 3 pihak yang terkait dengan sistem. Dimana ada pengirim, penerima dan penyadap dengan masing-masing pihak harus menginputkan kunci yang dimiliki kedalam sistem. Pada saat pengiriman pesan, penyadap mengambil pesan yang dikirim dan mengubah isinya dengan kunci yang telah ia temukan, kemudian mengirim pesan palsu kepada penerima. Untuk simulasi ini diberikan dua solusi yaitu membagi pesan menjadi dua bagian pesan, dimana jika salah satu bagian pesan dibaca tidak mengandung arti, yang kedua yaitu mengenkripsi pesan menggunaka fungsi hash SH1, kemudian hasil enkripsi dengan fungsi hash dikirim sebagai bagian pertama dan pesan dikirm sebagai bagian kedua, jika memilki nilai yang sama maka pesan benar berasal dari pengirim yang dimaksud [12]. 3. Penelitian sebelumnya telah dilakukan oleh Sisca Anggraini dengan judul “Sistem Keamanan Data dengan RSA dan Modified LSB” penelitian ini untuk meningkatkan keamanan data. Untuk meningkatkan keamanan data digunakan Universitas Sumatera Utara kriptografi RSA dengan metode tambahan lain yaitu modified LSBLeast Significant Bit. RSA digunakan untuk mengenkripsi pesan asli plaintext menjadi pesan terenkrip ciphertext, selanjutnya cipherteks disembunyikan dalam media citra digital agar keberadaan pesan tidak dicurigai oleh pihak lain. Penggabungan dua algoritma tersebut dapat menjaga kerahasiaan pesan, dimana pesan hanya dapat diakses oleh orang yang berwenang dan memiliki kunci [1]. Universitas Sumatera Utara BAB III ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Tahap ini bertujuan memberikan gambaran yang jelas terhadap sistem yang akan dibangun. Tahap ini menjabarkan kebutuhan-kebutuhan yang berguna untuk perancangan sistem agar sistem yang dibangun sesuai dengan masalah yang akan diselesaikan.

3.1.1 Analisis Masalah

Masalah utama yang diangkat adalah pembuat sistem kriptografi tidak mengetahui seberapa amankah sistem kriptografi yang mereka buat. Sistem kriptografi ini menggunakan algoritma RSA. Seperti diketahui, kelebihan RSA adalah bilangan prima yang dipakai sulit dipecahkan. Namun, tanpa diketahui seberapa aman bilangan prima yang dipakai. Analisis masalah digambarkan dengan Diagram Ishikawa fishbone Diagram berikut ini. Bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah. Sementara di bagian tulang-tulangnya merupakan penyebab. Universitas Sumatera Utara Pengujian Tingkat Keamanan User Metode Algoritma RSA Metode yang mampu memecahkan kunci publik User butuh keamanan untuk data rahasia Kunci Publik dapat Digunakan oleh siapapun Gambar 3.1 Diagram Ishikawa Untuk Analisa Masalah

3.1.2 Analisis Kebutuhan Requirement Analysis

Analisis persyaratan terdiri atas dua bagian yaitu analisis fungsional dan analisis nonfungsional. Kedua analisis ini merupakan hal penting untuk menentukan hal- hal yang harus dimiliki sistem.

3.1.2.1 Analisis Fungsional

Analisis fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Berikut dijabarkan fungsi-fungsi yang dapat dikerjakan oleh sistem. 1. Sistem melakukan enkripsi pesan awal plaintext dengan bilangan prima diinputkan oleh user yang nantinya sistem yang akan melakukan perhitungan untuk mendapatkan kunci. 2. Untuk menguji tingkat kemanannya, sistem akan mendekripsi pesan dengan menginputkan pesan yang telah dienkripsi ciphertext. 3. Sistem akan menghitung berapa lama waktu yang dibutuhkan untuk memecahkan kunci pesan. 4. Sistem akan mengenkripsi ciphertext ke plaintext. 5. Plaintext dan ciphertext disimpan dalam bentuk dokumen dengan ekstensi .txt . Universitas Sumatera Utara

3.1.2.2 Analisis Nonfungsional

Analisis nonfungsional berhubungan dengan hal-hal berikut ini: 1. Performa Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari proses enkripsi dan dekripsi serta pemecahan yang dilakukan oleh sistem. 2. Mudah dipelajari dan digunakan Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan responsif. 3. Hemat biaya Perangkat lunak yang dibangun akan menggunakan teknologi yang bebas digunakan free to use. 4. Dokumentasi Perangkat lunak yang akan dibangun dapat menyimpan hasil enkripsi dan dekripsi serta memiliki panduan penggunaan. 5. Manajemen kualitas Perangkat lunak yang akan dibangun akan memiliki kualitas yang baik. 6. Kontrol Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai.

3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case

Use case adalah salah satu pemodelan yang digunakan untuk memodelkan persyaratan sistem. Dengan use case ini digambarkan siapa saja yang berinteraksi dengan sistem dan apa saja yang dapat dilakukan dengan sistem. Aktor yang berinteraksi dengan sistem ini adalah user yang terdiri atas dua jenis encryptor, cryptanalyst dan decryptor. Sesuai dengan analisis fungsional sistem dapat melakukan enkripsi, pemecahan kunci dan dekripsi seperti diagram pada gambar 3.2. Universitas Sumatera Utara Encyptor Sistem Enkripsi Pemecahan Kunci Dekripsi Cryptanalyst Decryptor Gambar 3.2 Use case Diagram yang akan Dikembangkan Diagram pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user, user melakukan enkripsi dengan menggunakan algoritma RSA. Untuk menguji tingkat keamanan dari kunci yang dipakai, user melakukan pemecahan kunci dan dekripsi pesan yang menghasilkan waktu untuk memperoleh kunci dan pesan yang telah didekripsi kembali. Berikut ini merupakan spesifikasi use case untuk enkripsi Tabel 3.1 Spesifikasi Use Case Enkripsi Name Enkripsi Actors Encryptor Trigger User menginputkan plaintext yang akan dienkripsi dan nilai bilangan prima yang akan dihitung dan dijadikan kunci Preconditions User telah menyimpan plaintext yang akan dienkripsi Post Conditions User dapat melihat cipherteks hasil proses enkripsi Success Scenario 1. User telah menginputkan plainteks yang akan dienkripsi dan bilangan primanya. 2. User mengakses tombol enkripsi. Universitas Sumatera Utara 3. Sistem akan melakukan proses enkripsi terhadap plainteks yang diinputkan dan menampilkan dialog box untuk menyimpan file hasil enkripsi ciphertext. 4. User dapat melihat ciphertext hasil proses enkripsi. Alternative Flows - Berikut ini adalah activity diagram untuk proses enkripsi: Sistem Aktor user memasukkan bilangan prima user memasukkan plaintext Sistem melakukan enkripsi pesan Sistem memberikan dialog box untuk penyimpanan pesan user memilih tempat penyimpanan pesan sistem menyimpan pesan Gambar 3.3 Activity Diagram untuk Proses Enkripsi Berikut ini adalah spesifikasi untuk use case pemecahan kunci Tabel 3.2 Spesifikasi Use Case Pemecahan Kunci Name Pemecahan Kunci dan Dekripsi Actors Cryptanalyst Trigger User menginputkan ciphertext Universitas Sumatera Utara Preconditions Bilangan n tersimpan diakhir ciphertext dan ciphertext telah disimpan sebelumnya Post Conditions Bilangan n akan menghasilkan kunci yang dapat mendekripsi pesan dan akan melekukan dekripsi sehingga menghasilkan pesan yang sama dengan plaintext Success Scenario 1. User memasukkan ciphertext. 2. sistem akan menghitung kunci yang digunakan untuk mengenkripsi dan mendekripsi pesan 3. Sistem akan mendekripsi pesan dengan kunci yang dihasilkan Alternative Flows - berikut ini adalah activity diagram untuk proses pemecahan kunci Sistem Aktor user memasukkan ciphertext Sistem mendekripsi pesan User mengambil nilai n dan menghitung kunci publik dan privat Sistem memberikan dialog box bahwa dekripsi selesai User menyimpan pesan hasil dekripsi user memilih tempat penyimpanan pesan -YES -NO Sistem menyimpan pesan -YES -YES Gambar 3.4 Activity Diagram untuk Proses Pemecahan Kunci dan Dekripsi Universitas Sumatera Utara

3.1.3 Analisis Sistem Proses