Pengujian Tingkat Keamanan Rsa Dengan Metode Universal Exponent Factoring

(1)

PENGUJIAN TINGKAT KEAMANAN RSA DENGAN METODE

UNIVERSAL EXPONENT FACTORING

DRAFT SKRIPSI

FITHRI RIZQI KHAIRANI NASUTION

091401025

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2013


(2)

PENGUJIAN TINGKAT KEAMANAN RSA DENGAN METODE

UNIVERSAL EXPONENT FACTORING

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer

FITHRI RIZQI KHAIRANI NASUTION 091401025

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(3)

PERSETUJUAN

Judul : PENGUJIAN TINGKAT KEAMANAN RSA

DENGAN METODE UNIVERSAL EXPONENT FACTORING

Kategori : SKRIPSI

Nama : FITHRI RIZQI KHAIRANI NASUTION

Nomor Induk Mahasiswa : 091401025

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Diluluskan di

Medan, 27 Agustus 2013

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Amer Sharif,S.Si,M.Kom M. Andri Budiman, ST, M.Comp.Sc, MEM

NIP. - NIP. 197510082008011011

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP.196203171991031001


(4)

PERNYATAAN

PENGUJIAN TINGKAT KEAMANAN RSA DENGAN METODE UNIVERSAL EXPONENT FACTORING

SKRIPSI

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

Medan, Agustus 2013

Fithri Rizqi Khairani Nasution 091401025


(5)

PENGHARGAAN

Puji dan syukur kehadirat Allah SWT, yang hanya dengan rahmat dan izin-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada:

1. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

2. Bapak M. Andri Budiman, ST, M.CompSc, MEM selaku Dosen Pembimbing

3. Bapak Amer Sharef, S.Si, M. Kom selaku Dosen Pembimbing.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1IlmuKomputer Universitas Sumatera Utara dan Dosen Pembanding.

5. Bapak Ade Candra S.T, M.Kom selaku Dosen Pembanding.

6. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruh tenaga pengajar dan pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

7. Ayahanda Drs. Khairuddin Nasution dan ibunda Serliani Lubis, abangda Muhammad Sai Al-Arafah Nasution, S.T dan adinda Rizqi Fadhilah Nasution serta seluruh keluarga besar yang selalu memberikan kasih sayang dan dukungannya kepada penulis.

8. Seluruh sahabat dan teman-teman S1 ilmu Komputer khususnya stambuk 2009, terutama kepada Ismail Fata Lubis, Fauzana S, Dewi Ayu Pratami, Pocut Rizky, Nadya Soraya Hardiyana, Lydia Andiny, Murni Novita Sari yang selalu memberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini.

9. Rekan-rekan Demisioner Imilkom 2012-2013 yang telah memberikan banyak dukungan dan ilmu kepada penulis.

10. Sahabat tersayang kak Dianatul Habibah, Saidah Hoiriyah, Puspita dan Hanifah yang selalu memberikan motivasi dan dukungan kepada penulis.

11. Rekan-rekan di Kost 15 Gang Sipirok, Endang Lestari, Kak hafsah, Kak Lisda, Cici, Fitri dan semua yang tidak dapat disebutkan namanya satu per satu.

12. Pihak-pihak yang terlibat langsung maupun tidak langsung yang membantu penyelesaian laporan ini.


(6)

Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Medan, Agustus 2013


(7)

ABSTRAK

Algoritma RSA(Rivest, 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.


(8)

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 Fermat's 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.


(9)

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


(10)

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


(11)

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


(12)

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


(13)

DAFTAR LAMPIRAN

Halaman

A. Listing Program A-1

B. Daftar Bilangan Prima B-1


(14)

ABSTRAK

Algoritma RSA(Rivest, 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.


(15)

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 Fermat's 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.


(16)

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


(17)

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 LSB(Least 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


(18)

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.


(19)

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.


(20)

BAB II LANDASAN TEORI

Bab ini menjelasakan landasan teori dari penelitian yang dilakukan. Teori yang diangkat yaitu kriptografi dan keamanannya, algoritma RSA(Rivest, 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.


(21)

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.


(22)

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


(23)

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.


(24)

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 = Pxmod Q .

3. Bob membangkitkan bilangan bulat acak y yang besar dan mengirim hasil perhitungan berikut kepada Alice :

Y = Py mod Q .

4. Alice menghitung K = Yx mod Q . 5. Bob menghitung K’ = Xy 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:


(25)

ALICE

P,Q

BOB

Bangkitkan Bilangan x Bangkitkan Bilangan y

Hitung X = Px mod Q Hitung X = Py mod Q

Hitung Key = Yx mod Q Hitung Key = Xy 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-1)(q-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].


(26)

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-1)x(q-1)

4. Hitung nilai kunci publik e berupa bilangan dengan rentang 1< e < Φ(n), dengan gcd(e, Φ(n)) = 1

5. Hitung nilai kunci private d, dengan rumus d e-1 (mod Φ(n)) 6. Kpublik = (e, n) , Kprivat = d

Kita memilih kunci enkripsi secara random seperti e, dan (p-1) (q-1) yang relatif prima, dikatakan relatif prima karena gcd(e, ((p-1)(q-1)) = 1, yang maknanya bagi bilangan e, (p-1)(q-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 = Pe mod n ……… (1)


(27)

P = Cdmod 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-1)x(q-1)

= (5-1)x(11-1) = 40

Untuk menentukan e harus memenuhi syarat gcd(e, Φ(n)) = 1, maka didapat e = 7 dimana gcd(7, 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


(28)

Tabel 2.1 Tabel Encoding Base 64

Value Char Value Char Value Char Value Char

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

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 = Pe 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.


(29)

Tabel 2.3 Tabel Dekripsi Pesan

C P = Cd 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, ap ≡ a(mod p) dan jika a

tidak dapat dibagi oleh p, maka ap-1≡ 1 (mod p) [8].

Teorema ini dapat digunakan untuk mempermudah kalkulasi perpangkatan modulo bilangan prima. Sebagai contoh, kita coba kalkulasi 274 (mod 13). Karena 13 adalah bilangan prima dan 2 tidak dapat dibagi 13, maka teorema ini dapat digunakan untuk mengkalkulasi

212≡ 213-1 (mod 13) ≡ 1 (mod 13). Jadi

274 = (212)6 × 22≡ 16 × 22≡ 4 (mod 13).

Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptografi, 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 xe ≡ 1(mod n) untuk xN dan gcd(x, n) = 1


(30)

kemudian dihitung e = 2bm dimana b > 0 dan m bernilai bebas. Maka akan dilakukan langkah berikut:

1. Pilih nilai random a dengan 1 < a < n-1, jika gcd(a,n) > 1 dan a adalah faktor dari n kita dapat mengakhiri algoritma. Jika tidak, dapat dilanjutkan pada langkah berikutnya.

2. Hitung x0 = am(mod n). Jika x0≡ 1 (mod n), lakukan langkah 1. Jika tidak hitung

xj≡�� −2 1(mod n) untuk semua j = 1, 2, …, b . Jika xj ≡ -1 (mod n) lakukan

langkah 1. Jika xj ≡ 1 (mod n) dan Jika xj-1 ≠ ±1 (mod n) dan gcd(xj-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 = 23.5. maka dilakukan langkah-langkah sebagai berikut:

1. x0 = 25(mod 55) = 32 mod 55 = 32 2. x1 = 322(mod 55) = 34

3. x2 = 342 (mod 55) = 1

Maka dari hasil x2 = 1, maka gcd(xj-1 - 1, n) = gcd(33, 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-1)x(q-1)

= (5-1)x(11-1) = 40

e didapat dengan syarat gcd(e(n)) = 1, maka e = 7 dengan gcd(7, 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:


(31)

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


(32)

kriptografi RSA dengan metode tambahan lain yaitu modified LSB(Least 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].


(33)

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.


(34)

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.1Analisis 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.


(35)

3.1.2.2Analisis 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.3Pemodelan 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.


(36)

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


(37)

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


(38)

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


(39)

3.1.3 Analisis Sistem Proses

Pada pengujian tingkat keamanan ini kita menggunakan algoritma RSA sebagai algoritma kriptografi yang diuji. Sedangkan untuk mengujinya digunakan metode

Universal Exponent Factoring. Pada diagram gambar 3.6 dapat dilihat sequence diagram untuk proses enkripsi pesan.

User Sistem

enkripsi pesan

browse tempat menyimpan ciphertext

Simpan ciphertext Input bilangan prima

input plaintext

Gambar 3.5 Sequence Diagram Proses Enkripsi

Hasil dari enkripsi akan disimpan di tempat yang diinginkan dan untuk proses pemecahan kunci dan dekripsi pesan dapat dilihat pada gambar 3.6.


(40)

User Sistem

browse tempat menyimpan hasil dekripsi Simpan hasil dekripsi

input ciphertext

munculkan kunci publik dan privat serta waktu pemecahan kunci

Simpan file di tempat dan nama file yang diinginkan

Gambar 3.6 Sequence Diagram untuk Proses Pemecahan Kunci dan Dekripsi Pesan

Dari sequnce diagram pada gambar 3.6 dapat dilihat bahwa hasil yang didapat oleh user adalah text hasil dekripsi dan waktu yang dibutuhkan untuk memecahkan kunci dengan hanya memasukkan nilai n.

3.2 Perancangan Sistem

3.2.1 Flowchart Sistem

3.2.1.1Flowchart Gambar Umum

Secara umum ada tiga proses yang dilakukan. Proses ini dapat dilihat pada


(41)

Start

Enkripsi pesan

Pemecahan kunci

Dekripsi pesan

End

Gambar 3.7 Gambaran Umum Sistem Keterangan :

Dari flowchart pada gambar 3.8 dapat dilihat gambaran umum sistem yang akan dibuat. Pertama file akan dienkripsi dengan algoritma RSA. Kemudian sistem dengan hanya menginput nilai n akan memecahkan kunci yang telah diberikan pada file yang dienkripsi. Setelah kunci didapat, maka sistem akan mengembalikan file tersebut kedalam bentuk asli.

3.2.1.2Flowchart Proses Enkripsi

Proses enkripsi pada sistem ini menngunakan algoritma RSA. Berikut ini


(42)

start

Input bilangan prima p, q

Hitung perkalian bilangan prima

n = p x q

Hitung nilai d

file

Hitung nilai ciphertext

Enkripted file

End Hitung nilai

Hitung nilai e

Gambar 3.8 Flowchart untuk Proses Enkripsi

Keterangan :

Dari flowchart pada gambar 3.8 dapat dilihat proses dari terbentuknya kunci publik e dan n, dari input bilangan prima p dan q, serta mendapatkan kunci private


(43)

d yang akan dipakai untuk membuka file yang telah dienkripsi. Perhitungan yang yang dilakukan untuk mengenkripsi pesan sesuai dengan algoritma RSA.

3.2.1.3Flowchart Pemecahan Kunci

Pemecahan kunci yang dilakukan menggunakan metode Universal Exponent Factoring. Langkah-langkah pemecahan kunci dapat dilihat pada gambar 3. 9 berikut ini.


(44)

Keterangan :

Dari flowchart pada gambar 3.9 dapat dilihat, nilai n yang dimasukkan adalah kunci publik yang diketahui. Dari kunci inilah didapatkan nilai p dan q untuk kemudian digunakan untuk menghitung kembali kunci private d yang akan digunakan untuk mengembalikan file yang telah dienkripsi kedalam bentuk semula.

3.2.1.4Flowchart Pengujian Bilangan Prima

Untuk pengujian bilangan prima digunakan Fermat’s Little Theorem. Berikut langkah-langkah pengujian bilangan prima digambarkan dalam gambar 3.10.

Start

Masukkan bilangan p

For i=0; i<p.length, i++

If ap-1≡ 1 (mod p)

true

False

End

Yes

Yes

No

Gambar 3. 10 Flowchart Pengujian Bilangan Prima menggunakan Fermat Little’s Theorem


(45)

Keterangan :

Flowchart pada gambar 3.10 menggambarkan proses pengujian bilangan prima yang digunakan pada sistem. Bilangan akan diuji sebanyak digitnya, jika semua nilai ap-1≡ 1 (mod p) bernilai true maka nilai tersebut adalah bilangan prima.

3.2.1.5Flowchart Proses Dekripsi

Proses dekripsi akan dilakukan setelah kunci dipecahkan. Dekripsi pesan juga menggunaka algoritma RSA, sama seperti proses enkripsi. Pada gambar 3. 11 akan digambarkan flowchart proses dekripsi.

File yang telah dienkripsi

file Start

End

Hitung nilai plaintext

Gambar 3.11 Flowchart untuk Dekripsi Pesan Keterangan :

Flowchart pada gambar 3.11 memperlihatkan alur untuk mendekripsi pesan yang kunci telah didapat dari flowchart 3.9. Perhitungan untuk pengembalian pesan dilakukan sesuai algoritma RSA.


(46)

3.2.2 Rancangan Antar Muka

Sistem akan dibangun menggunakan bahasa pemrograman C# dengan menggunakan software Microsoft Visual Studio. Rancangan antar muka akan disesuaikan dengan kebutuhan dan software yang digunakan. Antar muka menggunakan tiga form, form utama atau form login untuk masuk sebagai

encryptor atau cryptanalyst, form enkripsi berfungsi untuk mengenkripsi pesan sedangkan form dekripsi digunakan untuk memecahkan kunci dan proses dekripsi pesan.

3.2.2.1Antar Muka Mainform

Pada Mainform user harus memilih akan masuk sebagai encryptor atau

cryptanalyst. Jika user masuk sebagai encryptor, maka user akan masuk ke form

enkripsi, sedangkan jika masuk sebagai cryptanalyst, user akan masuk ke form

dekripsi.

Gambar 3. 12 Rancangan Form Login

Komponen yang dipakai untuk membangun antar muka Mainform pada gambar 3.13 adalah sebagai berikut:

1. Label (‘Login’) : label yang digunakan sebagai judul utama dari form yang sedang terbuka yaitu Login.


(47)

2. Label (‘Login As’) : label yang digunakan sebagai menunjukkan tempat user

untuk memilih akan masuk ke sistem sebagai encryptor atau cryptanalyst.

3. Combobox : combobox yang digunakan untuk memilih encryptor atau

cryptanalyst.

4. Tombol (‘login’) : tombol yang akan membawa user masuk ke sistem sesuai

user yang dipilh.

3.2.2.2Antar Muka Form Enkripsi

Pada form enkripsi user akan menginputkan bilangan prima yang nantinya akan dijadikan kunci publik dan privat yang akan dihitung oleh sistem.

Gambar 3.13 Rancangan Form Enkripsi

Komponen yang dipakai untuk membangun antar muka form enkripsi pada gambar 3.14 adalah sebagai berikut:

5. Label (‘Enkripsi’) : sebagai judul utama dari form yang sedang terbuka yaitu enkripsi, form untuk mengenkripsikan pesan.

6. Label (‘Bilangan Prima1 (p)’) : label yang menunjukkan tempat user untuk memasukkan bilangan prima.

7. Label (‘Bilangan Prima2 (q)’) : label yang menunjukkan tempat user untuk memasukkan bilangan prima.


(48)

8. Textbox 1 : texbox yang digunakan sebagai tempat user memasukkan bilangan prima1 (p) yang nantinya akan dijadikan kunci setelah nilai kunci publik dan privatnya dihitung oleh sistem.

9. Textbox 2 : textbox yang digunakan tempat user memasukkan bilangan prima2 (q) yang nantinya akan dijadikan kunci setelah nilai kunci publik dan privatnya dihitung oleh sistem nilai bilangan prima1 dan bilangan prima 2 harus berbeda.

10. Tombol 1 (‘Buka File’) : tombol ini berfungsi untuk memilih file text yang akan dienkripsi.

11. Textbox 3 : textbox ini berfungsi menampilkan isi file yang akan dienkripsi. 12. Tombol 2 (‘Enkripsi’) : tombol ini berfungsi mengenkripsi pesan dengan

terlebih dahulu menghitung kunci publik dan privat dari bilangan-bilangan prima yang telah diinputkan.

13. Label (‘nilai n’) : label yang menunjukkan nilai n yang merupakan kunci publik yang didapat dari perhitungan bilangan prima yang diinputkan.

14. Label (‘nilai e’) : label yang menunjukkan nilai e yang merupakan kunci publik yang didapat dari perhitungan bilangan prima yang diinputkan.

15. Label (‘nilai d’) : label yang menunjukkan nilai d yang merupakan kunci

private yang didapat dari perhitungan bilangan prima yang diinputkan. 16. Textbox 4 : textbox ini menampilkan bilangan nilai n yang dihasilkan. 17. Textbox 5 : textbox ini menampilkan bilangan nilai e yang dihasilkan. 18. Textbox 6 : textbox ini menampilkan bilangan nilai d yang dihasilkan.

19. Grup Box(‘info file) : berisi informasi mengenai file yang diinputkan meliputi nama file, ukuran file, panjang karakter, lokasi file.

3.2.2.3Antar Muka Form Pemecahan Kunci dan Dekripsi

Pemecahan kunci dan dekripsi terdapat pada form yang sama. Pada form ini user


(49)

gambar 3. 14 : Rancangan Form Pemecahan Kunci dan Dekripsi

Komponen yang dipakai untuk membangun antar muka form pemecahan kunci dan dekripsi pada gambar 3.15 adalah sebagai berikut:

1. Label (‘Pemecahan Kunci’) : sebagai judul utama dari form yang sedang terbuka yaitu pemecahan kunci, form untuk memecahkan kunci dan mendekripsi pesan.

2. Label (Nilai n ) : label yang menunjukkan tempat user memasukkan nilai n. 3. Texbox 1 : textbox yang berfungsi sebagai tempat menginputkan nilai n. 4. Tombol 1 (‘Buka File’) : tombol ini berfungsi untuk memilih file text yang

akan didekripsi.

5. Grup Box(‘info file) : berisi informasi mengenai file yang diinputkan meliputi nama file, ukuran file, panjang karakter dan lokasi file.

6. Tombol 2 (‘Dekripsi’) : tombol ini berfungsi mendekripsi pesan dengan terlebih dahulu menghitung kunci publik dan privat dari nilai n yang diinputkan.

7. Textbox 2 : textbox ini berfungsi menampilkan isi file hasil dekripsi..

8. Label (‘Bilangan Prima1 (p)’) : label yang bilangan prima 1 yang dipecahkan oleh sistem dengan nilai n yang diinputkan.

9. Textbox 3 : textbox ini berfungsi menampilkan bilangan prima 1 yang dihasilkan.


(50)

10. Label (‘Bilangan Prima2 (q)’) : label yang bilangan prima 2 yang dipecahkan oleh sistem dengan nilai n yang diinputkan.

11. Textbox 4 : textbox ini berfungsi menampilkan prima 2 yang dihasilkan. 12. Label (‘nilai e’) : label yang menunjukkan nilai e yang merupakan kunci

publik yang didapat dari perhitungan bilangan prima yang diinputkan. 13. Textbox 5 : textbox ini menampilkan bilangan nilai e yang dihasilkan.

14. Label (‘nilai d’) : label yang menunjukkan nilai d yang merupakan kunci

private yang didapat dari perhitungan bilangan prima yang diinputkan. 15. Textbox 6 : textbox ini menampilkan bilangan nilai d yang dihasilkan.

16. Label (‘Waktu pemecahan kunci’) : label yang akan memunculkan waktu pemecahan kunci.

3.2.3 Tahapan Sistem

3.2.3.1Tahapan Algoritma RSA (Rivest, Shamir, Adleman) untuk Enkripsi Pesan

Algoritma RSA adalah salah satu algoritma kriptografi yang sering dipakai untuk berbagai bidang. Algoritma kriptografi memiliki keunggulan pada susahnya memcahkan bilangan untuk mendapatkan kunci privat yang dipakai. Algoritma RSA memiliki dua tahapan secara umum, yaitu proses enkripsi dan dekripsi. Sebelum proses enkripsi terlebih dahulu kunci dibangkitkan. Berikut ini proses untuk membangkitkan kunci publik dan kunci privat:

1. Bangkitkan bilangan prima p dan q. 2. n = p x q.

3. Φ(n) = (p-1)x(q-1)

4. e adalah bilangan dengan rentang 1< e < Φ(n), dengan gcd(e, Φ(n)) = 1

5. d = e-1 mod Φ(n)


(51)

Untuk implementasi dari pembangkit kunci RSA, maka dilakukan langkah berikut:

1. Dipilh bilangan prima p = 79, dan q = 97 dengan catatan nilai p dan q harus berbeda.

2. n = p x qn = 79 x 97 ⇒n = 7663.

3. Φ(n) = (p-1)x(q-1) ⇒Φ(n) = (79-1)x(97-1) ⇒Φ(n) = 7488

4. e dipilih antara 1 < e < 7488, dengan gcd(e, 7488) = 1, didapat e = 5. 5. d = e-1 mod Φ(n)d = 4494

6. Maka kunci publik yang didapat adalah e = 5 dan n = 7663 dan kunci privat

d = 4494.

Proses selanjutnya adalah mengenkripsi pesan. Pesan asli (plaintext) akan dienkripsi menggunakan rumus :

C = Pe mod n ……… (1)

Plaintext yang akan dienkripsi adalah : ILMU KOMPUTER

Maka terlebih dahulu huruf-huruf tersebut dikonversikan ke dalam desimal sesuai dengan tabel ASCII. Berdasarkan tabel ASCII, nilai dari kalimat plaintext adalah: I = 73

L = 76 M = 77 U = 85 (spasi) = 32 K = 75 O = 79 M = 77 P = 80 U = 85 T = 84 E = 69 R = 82


(52)

Untuk karakter “I” dengan nilai 73:

C = 735 mod 7663 = 203

Untuk karakter “L” dengan nilai 76:

C = 765 mod 7663 = 7262

Untuk karakter “M” dengan nilai 77:

C = 775 mod 7663 = 5656

Untuk karakter “U” dengan nilai 85:

C = 855 mod 7663 = 7359

Untuk karakter “(spasi)” dengan nilai 32:

C = 325 mod 7663 = 5818

Untuk karakter “K” dengan nilai 75:

C = 755 mod 7663 = 7350

Untuk karakter “O” dengan nilai 79:

C = 795 mod 7663 = 1738

Untuk karakter “M” dengan nilai 77:

C = 775 mod 7663 = 5656

Untuk karakter “P” dengan nilai 80:

C = 805 mod 7663 = 1581

Untuk karakter “U” dengan nilai 85:

C = 855 mod 7663 = 7539


(53)

Untuk karakter “T” dengan nilai 84:

C = 845 mod 7663 = 6522

Untuk karakter “E” dengan nilai 69:

C = 695 mod 7663 = 5386

Untuk karakter “R” dengan nilai 82:

C = 825 mod 7663 = 717

Maka didapat ciphertext :

203 7262 5656 7539 5818 7350 1738 5656 1581 7539 6522 5386 717

3.2.3.2Pemecahan Kunci Menggunakan Metode Universal Exponent Factoring

Metode Universal Exponent Factoring berfungsi untuk memecahkan bilangan prima dengan menginputkan nilai n. Pada sistem ini nilai n akan tersimpan secara otomatis pada bagian akhir ciphertext yang disimpan oleh user. Langkah-langkah dari metode Universal ExponentFactoring telah dijelaskan pada bab sebelumnya. Implementasi dari metode ini adalah sebagai berikut :

Dalam implementasi ini kita ambil nilai n = 7663, dari implementasi enkripsi RSA sebelumnya.

Ambil nilai e dengan syarat 1 < e< n-1, maka didapat e = 7488 dan didapat

e = 2b*me = 26 *117

Dari nilai yang telah didapat akan dilanjutkan perhitungan berikut dengan nilai a

yang diambil = 2:

x0 = am(mod n) ⇒ x0 = 2117(mod 7663) ⇒ x0 = 7190 karena nilai x0 ≠ 1 (mod

7663), maka perhitungan akan dilanjutkan dengan rumus: xj≡�� −2 1(mod n) dengan

j = 1, 2, …, b.


(54)

x2≡�22−1(mod 7663) ⇒x1≡ 3082

x3≡�32−1(mod 7663) ⇒x1≡ 4267

x4≡�42−1(mod 7663) ⇒x1≡ 1

karena nilai x4 ≡ 1, maka gcd(xj-1 - 1, n) ⇒ gcd(x3 - 1, 7663) ⇒ 79 maka p = 79 dan q = 7663/79 = 97

3.2.3.3Tahapan Algoritma RSA (Rivest, Shamir, Adleman) untuk Dekripsi Pesan

Dengan nilai p dan q yang didapat dari proses pemecahan kunci sebelumnya, maka untuk mendekripsi ciphertext yang telah disimpan. Proses pembangkitan kunci untuk dekripsi sama dengan proses pembangkitan kunci untuk enkripsi. 1. p = 79, dan q = 97 dari proses pemecahn kunci sebelumnya.

2. n = 7663 didapat karena merupakan kunci publiki yang dipakai untuk memecahkan kunci..

3. Φ(n) = (p-1)x(q-1) ⇒Φ(n) = (79-1)x(97-1) ⇒Φ(n) = 7488

4. e dipilih antara 1 < e < 7488, dengan gcd(e, 7488) = 1, didapat e = 5. 5. d = e-1 mod Φ(n)d = 4494

6. Maka didapat kunci privat d = 4494.

Cipertext akan diedekripsi menggunakan rumus :

P = Cdmod n ……… (2)

Untuk nilai 203:

P = 2034494 mod 7663 = 73

P =73 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “I”

Untuk nilai 7262:

P = 72624494 mod 7663 = 76


(55)

P = 76 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “L”

Untuk nilai 5656:

P = 56564494 mod 7663 = 77

P = 77 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “M”

Untuk nilai 7539:

P = 75394494 mod 7663 = 85

P = 85 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “U”

Untuk nilai 5818:

P = 58184494 mod 7663 = 32

P = 32 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “(spasi)”

Untuk nilai 7350:

P = 73504494 mod 7663 = 75

P = 75 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “K”

Untuk nilai 1738:

P = 17384494 mod 7663 = 79

P = 79 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “O”

Untuk nilai 5656:

P = 56564494 mod 7663 = 77

P = 77 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “M” Untuk nilai 1581:


(56)

P = 15814494 mod 7663 = 80

P = 80 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “P”

Untuk nilai 7539:

P = 75394494 mod 7663 = 85

P = 85 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “U”

Untuk nilai 6522:

P = 65224494 mod 7663 = 84

P = 84 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “T”

Untuk nilai 5386:

P = 53864494 mod 7663 = 69

P = 69 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “E”

Untuk nilai 717:

P = 7174494 mod 7663 = 82

P = 82 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “R”

Hasil akhir yang diperoleh yaitu “ILMU KOMPUTER” sesuai dengan plaintext


(57)

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Implementasi sistem dibangun dengan menggunakan bahasa pemrograman C#, dengan memakai Software Microsof Visual Studi 2010. Terdapat 3 form dalam sistem ini, form Mainform digunakan untuk memilih user yang akan menggunakan sistem, form enkripsi digunakan oleh user yang masuk sebagai

encryptor untuk mengenkripsi pesan, form pemecahan kunci digunakan oleh user

yang masuk sebagai cryptanalyst untuk memecahkan kunci dan mendekripsi pesan.

4.1.1 Mainform

Pada mainform ini user harus memilih akun log in yang terdiri atas encryptor atau

cryptanalyst. Encryptor hanya dapat melakukan enkripsi pesan, sedangkan

cryptanalyst dapat mendekripsi pesan dengan terlebih dahulu memecahkan nilai n

untuk mendapatkan kunci private yang digunakan.


(58)

4.1.2 Form Enkripsi

Form ini hanya dapat diakses oleh encryptor. Encryptor yang akan menenkripsi pesan dapat menginputkan 2 bilangan prima yang digunakan untuk kemudian dijadikan kunci publik dan kunci privat. Encryptor juga bebas memilih file yang akan didekripsi, dengan file berekstensi .txt atau file text.

Gambar 4.2 Form enkripsi pesan

Jika encryptor memasukkan bilangan yang bukan prima maka akan muncul dialog box


(59)

4.1.3 Form Pemecahan Kunci dan Dekripsi

Form ini hanya dapat diakses oleh cryptanalys. Cryptanalyst akan memecahkan kunci dengan menginputkan nilai n dari perkalian dua bilangan prima yang digunakan sebagi kunci dari proses enkripsi pesan. Cryptanalyst juga dapat menginputkan pesan yang akan didekripsi. Output yang dihasilkan yaitu form ini menampilkan bilangan prima yang digunakan, dan waktu yang dibutuhkan untuk memecahkan kunci. Untuk menyimpan pesan hasil dekripsi, dialog box akan muncul setelah kunci dipecahkan dan pesan didekripsi dengan benar, sehingga

cryptanalyst dapat menyimpan hasil dari dekripsi pesan.

Gambar 4.4 Form pemecahan kunci dan dekripsi

4.2 Pengujian

Pengujian untuk sistem pengujian tingkat kemanan RSA ini dilakukan untuk mendapatkan waktu yang dibutuhkan untuk memecahkan kunci dengan


(60)

menginputkan nilai n. Pengujian ini dilakukan dengan erlebih dahulu mengenkripsi pesan. Kriteria pengujian sistem sebagi berikut:

1. Plaintext berupa file text yang telah terlebih dahulu disimpan didalam komputer dan kemudian ciphertext juga akan disimpan dalam bentuk file text.

2. Bilangan prima dipilih oleh user dan dinputkan sesuai pilihan.

3. Nilai n yang diinputkan telah disimpan pada akhir ciphertext yang disimpan. 4. Pengujian ini dilakukan dengan dengan perangkat keras yang memilki

spesifikasi notebook dengan prosesor AMD C-50 Processor (2 CPUs), 1 GHz dan RAM 2GB.

4.2.1 Proses Enkripsi

Dalam proses enkripsi, pesan yang akan dienkripsi adalah “ILMU KOMPUTER”. Dimisalkan bilangan prima yang dipilih untuk dijadikan kunci adalah 3557 dan 1777. Setelah dienkripsi ciphertext yang dihasilkan dapat dilihat pada tabel1.

Tabel 4.1 Tabel Enkripsi Pengujian Sistem P P (dalam desimal ASCII) C = Pe mod n

I 73 6173590

L 76 888987

M 77 1486465

U 85 6180036

(spasi) 32 1950487

K 75 2751000

O 79 5152945

M 77 1486465

P 80 2631298

U 85 6180036

T 84 4077895

E 69 2796466


(61)

Kunci privat dan kunci publik yang diperoleh pada pengujian ini dapat dilihat pada gambar 4.4.

Gambar 4.5 Form Enkripsi Pengujian Sistem

Maka ciphertext yang tersimpan dengan nama ciphertext.txt dapat dilihat pada gambar 4.5.

Gambar 4.6 Ciphertext Hasil Enkripsi Pengujian Sistem


(62)

Untuk memecahkan kunci dan mendekripsi pesan, maka cryptanalyst harus menginputkan nilai n serta ciphertext yang akan didekripsi. Nilai n diperoleh dari

ciphertext yang tersimpan dimana nilai n berada di bagian akhir dari ciphertext

tersebut.

Untuk pemecahan kunci, dalam pengujian cryptanalyst mendapat nilai n =

6320789. Maka dihasilkan pesan hasil dekripsi dan bilangan prima serta kunci yang dipakai seperti pada gambar 4.6.

Gambar 4.7 Form Pemecahan Kunci pada Pengujian

Dari gambar 4.5 dan gambar 4.7 dapat dilihat pada pengujian ini, bilangan prima, kunci publik dan kunci privat yang digunakan sama dan file dapat didekripsi dengan baik.


(63)

Untuk enkripsi dan pengujian pemecahan kunci dilakukan 10 kali percobaan dalam kelompok digit nilai n. Kelompok digit nilai n dimulai dari 3 digit sampai 20 digit nilai n. Masing-masing melalui 10 kali percobaan dengan nilai n yang berbeda-beda. Berikut hasil pengujian masing-masing kelompok digit nilai n.

1. Nilai n sebanyak 3 digit

Hasil pengujian dapat dilihat pada tabel 4.2 dan 4.3.

Tabel 4.2 Pengujian Enkripsi Pesan dengan nilai n sebanyak 3 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu

1 413 7 59 00:00:00.0045868

2 667 23 29 00:00:00.0020933

3 989 23 43 00:00:00.0013370

4 427 7 61 00:00:00.0012087

5 341 11 31 00:00:00.0015043

6 371 7 53 00:00:00.0040224

7 781 11 71 00:00:00.0016838

8 611 47 13 00:00:00.0013750

9 583 53 11 00:00:00.0017485

10 527 31 17 00:00:00.0015309

Waktu rata-rata enkripsi pesan dengan 3 digit nilai n adalah 0.00210907 detik.

Tabel 4.3 Pengujian pemecahan kunci dengan nilai n sebanyak 3 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu

1 413 7 59 00:00:00.0239581

2 667 23 29 00:00:00.0084727

3 989 23 43 00:00:00.0124285

4 427 7 61 00:00:00.0050024

5 341 11 31 00:00:00.0168121

6 371 7 53 00:00:00.0058838


(64)

8 611 47 13 00:00:00.0039434

9 649 59 11 00:00:00.0198813

10 527 31 17 00:00:00.0055996

Waktu rata-rata pemecahan kunci dengan 3 digit nilai n adalah 0.01117229 detik. detik.

2. Nilai n sebanyak 4 digit

Hasil pengujian dapat dilihat pada tabel 4.4 dan 4.5.

Tabel 4.4 : Pengujian Enkripsi Pesan dengan nilai n sebanyak 4 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu

1 1207 17 71 00:00:00.0018470

2 2881 67 43 00:00:00.0023672

3 3827 43 89 00:00:00.0042984

4 6499 67 97 00:00:00.0065067

5 1111 11 101 00:00:00.0018860

6 8579 23 373 00:00:00.0029983

7 8051 83 97 00:00:00.0044585

8 7063 7 1009 00:00:00.0051101

9 9797 101 97 00:00:00.0041661

10 3937 127 31 00:00:00.0022379

Waktu rata-rata enkripsi pesan dengan 4 digit nilai n adalah 0.00358762 detik.

Tabel 4.5 : Pengujian pemecahan kunci dengan nilai n sebanyak 4 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu

1 1207 17 71 00:00:00.0209013

2 2881 67 43 00:00:00.0211116

3 3827 43 89 00:00:00.0255220

4 6499 67 97 00:00:00.1089693


(65)

6 8579 23 373 00:00:00.0176166

7 8051 83 97 00:00:00.0547165

8 7063 7 1009 00:00:00.0252613

9 9797 101 97 00:00:00.0532050

10 3937 127 31 00:00:00.0114906

Waktu rata-rata pemecahan kunci dengan 4 digit nilai n adalah 0.03455287 detik.

3. Nilai n sebanyak 5 digit

Hasil pengujian dapat dilihat pada tabel 4.6 dan 4.7.

Tabel 4.6 Pengujian Enkripsi Pesan dengan nilai n sebanyak 5 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu

1 10349 131 79 00:00:00.0126913

2 33283 83 401 00:00:00.0290932

3 21731 701 31 00:00:00.0225013

4 26483 373 71 00:00:00.0187507

5 43249 61 709 00:00:00.0333456

6 60499 101 599 00:00:00.0435136

7 35579 757 47 00:00:00.0306314

8 83327 103 809 00:00:00.0707270

9 73793 109 677 00:00:00.0482339

10 98503 719 137 00:00:00.0712124

Waktu rata-rata enkripsi dengan 5 digit nilai n adalah 0.03807004 detik.

Tabel 4.7 Pengujian pemecahan kunci dengan nilai n sebanyak 5 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu

1 10349 131 79 00:00:00.0728645

2 33283 83 401 00:00:00.2503558

3 21731 701 31 00:00:00.1445171


(66)

5 43249 61 709 00:00:00.4035910

6 60499 101 599 00:00:00.3466574

7 35579 757 47 00:00:00.3724783

8 83327 103 809 00:00:00.4891551

9 73793 109 677 00:00:00.3319364

10 98503 719 137 00:00:00.8762735

Waktu rata-rata pemecahan kunci dengan 5 digit nilai n adalah 0.35762682 detik.

4. Nilai n sebanyak 6 digit

Hasil pengujian dapat dilihat pada tabel 4.8 dan 4.9.

Tabel 4.8 Pengujian Enkripsi Pesan dengan nilai n sebanyak 6 digit

Percobaan

ke- Nilai n

Bilangan prima1

Bilangan

prima2 Waktu

1 196253 857 229 00:00:00.1273682

2 207913 809 257 00:00:00.1500470

3 252353 617 409 00:00:00.1600591

4 609187 1447 421 00:00:00.0593676 5 681353 1459 467 00:00:00.4312723 6 334163 151 2213 00:00:00.0969830 7 620167 2207 281 00:00:00.4334765 8 774259 3323 233 00:00:00.5454649 9 892453 1013 881 00:00:00.6269336 10 926047 907 1021 00:00:00.8343699

Waktu rata-rata enkripsi dengan 6 digit nilai n adalah 0.34653421 detik.

Tabel 4.9 Pengujian pemecahan kunci dengan nilai n sebanyak 6 digit

Percobaan

ke- Nilai n

Bilangan prima1

Bilangan

prima2 Waktu

1 196253 857 229 00:00:00.8876063

2 207913 809 257 00:00:02.1164726


(67)

4 609187 1447 421 00:00:03.0803184

5 681353 1459 467 00:00:03.9708349

6 334163 151 2213 00:00:00.6051978

7 620167 2207 281 00:00:03.2676525

8 774259 3323 233 00:00:06.8348819

9 892453 1013 881 00:00:03.7178788

10 926047 907 1021 00:00:05.9892275

Waktu rata-rata pemecahan kunci dengan 6 digit nilai n adalah 3.39931717 detik.

5. Nilai n sebanyak 7 digit

Hasil pengujian dapat dilihat pada tabel 4.10 dan 4.11.

Tabel 4.10 Pengujian Enkripsi Pesan dengan nilai n sebanyak 7 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu 1 1727053 1091 1583 00:00:01.2170471 2 2131861 2237 953 00:00:01.5026223 3 2469253 971 2543 00:00:01.7309160 4 2391677 1433 1669 00:00:02.0097966 5 4479271 1997 2447 00:00:03.4487804 6 3789091 1667 2273 00:00:02.6576010 7 7079621 3389 2089 00:00:01.4900735 8 6296111 2287 2753 00:00:02.6451867 9 3523127 857 4111 00:00:01.6218973 10 9954523 3559 2797 00:00:06.3271381

Waktu rata-rata enkripsi pesan dengan 7 digit nilai n adalah 2.4651059 detik.

Tabel 4.11 Pengujian pemecahan kunci dengan nilai n sebanyak 7 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu 1 1727053 1091 1583 00:00:49.3489365 2 2131861 2237 953 00:00:35.8842467


(68)

3 2469253 971 2543 00:01:10.0445439 4 2391677 1433 1669 00:00:14.4076525 5 4479271 1997 2443 00:00:38.8025871 6 3902711 1847 2113 00:00:49.1729598 7 7079621 3389 2089 00:00:38.5979204 8 6296111 2287 2753 00:01:10.8592703 9 3523127 857 4111 00:00:18.8410234 10 9954523 3559 2797 00:00:41.7515784

Waktu rata-rata pemecahan kunci dengan 7 digit nilai n adalah 42.7710719 detik.

6. Nilai n sebanyak 8 digit

Hasil pengujian dapat dilihat pada tabel 4.12 dan 4.13.

Tabel 4.12 Pengujian Enkripsi Pesan dengan nilai n sebanyak 8 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu 1 23643589 5077 4657 00:00:14.9833301 2 36581747 5791 6317 00:00:12.4709726 3 47361023 6599 7177 00:00:22.4895409 4 58185559 8069 7211 00:00:30.6789661 5 61300979 7919 7741 00:00:27.6696240 6 70153393 8521 8233 00:00:25.2434728 7 82621211 9173 9007 00:00:26.1487474 8 90679829 9311 9739 00:01:05.1897833 9 60231989 991 60779 00:00:27.2077226 10 94303477 9001 10477 00:00:10.6554579

Waktu rata-rata enkripsi pesan dengan 8 digit nilai n adalah 26.27376177 detik.

Tabel 4.13 Pengujian pemecahan kunci dengan nilai n sebanyak 8 digit

Percobaan ke- Nilai n Bilangan

prima1

Bilangan

prima2 Waktu 1 23643589 5077 4657 00:00:09.6703621


(1)

}

else if(t==105) {

Mainform frm = new Mainform(); this.Dispose();

frm.ShowDialog(); }

} } }


(2)

B-1 11 13 17 19 23 29 31 37 41 59 71 97 113 127 211 223 389 397 401 599 601 607 787 797 809 811 1291 1297 3877 3881 3889 3907 4421 4423 4441 4447 5981 5987 6007 6011 6029 6037 6043 6047 6053 6067 6073 6079 6089 6091 6101 6113 6121 6131 7151 7159 7177 9931 9941 9949 9967 9973 10007 10009 10037 10039 10061 11311 11317 11321 11329 11351 11353 11369 11383 28813 28817 29599 29611 29629 49891 49919 49921 49927 49937 49939 49943 49957 49991 49993 49999 50021 50023 50033 50047 50051 50053 50069 50077 50087 54251 54269 54277 54287 54293 59957 59971 59981 59999 60013 60017 60029 60037 60041 60077 60083 60089 60091 71089 71119 71129 71143 71147 71153 71161 71167 71171 71191 71209 71233 71237 71249 71257 71261 72223 72227 72229 72251 72253 72269 72271 79829 79841 79843 79847 79861 79867 79873 79889 79901 79903 79907 79939 79943 79967 79973 79979 79987 79997 79999 80021 80039 80051 80071 80077 89983 89989 90001 90007 90011 90017 90019 90023 90031 90053 90059 90067 90071 90073 90089 90107 90121 90127 90149 90163 94447 94463 94477 94483 95539 95549 95561 99871 99877 99881 99901 99907 99923 99929 99961 99971 99989 99991 100003 100019 100043 100049 100057 100069 100103 100109 100129 100151 100153 100169 100183 100189 100193 100207 100213 155593 155599 155609 155621 155627 155653 215833 215843 215851


(3)

215857 215863 236053 236063 352543 352549 352579 352589 352601 395023 395027 395039 406649 406661 406673 406697 406699 406717 406729 406739 457057 457087 457091 457097 502171 502181 502217 502237 540989 541001 541007 541027 541049 569003 569011 569021 569047 599999 600011 600043 600053 600071 600073 600091 600101 600109 600167 600169 600203 600217 600221 600233 600239 600241 600247 600269 600283 600289 646411 646421 646423 646433 708161 708163 708179 708199 708221 708223 708229 708251 708269 708283 708287 708293 708311 708329 708343 708347 708353 708359 708361 708371 708403 708437 708457 708473 708479 723587 723589 723601 723607 723617 723623 723661 723721 723727 723739 723761 723791 723797 723799 780953 780961 780971 780973 780991 811193 811199 811207 811231 811241 811253 811259 811273 811277 811289 811297 811337 811351 811379 811387 811411 811429 811441 811457 811469 811493 811501 811511 811519 811523 811553 811561 811583 811607 811619 811627 811637 811649 811651 811667 811691 811697 811703 849839 849857 849869 849883 849917 849923 849931 849943 849967 849973 849991 849997 850009 850021 850027 850033 850043 850049 850061 850063 850081 850093 850121 850133 850139 850147 850177 906121 906133 906179 906187 906197 906203 906211 906229 906233 906259 906263 906289 906293 906313 906317 906329 906331 906343 906349 906371 906377 906383 906391 906403 906421 906427 906431 906461 906473 906481 906487 906497 906517 906523 906539 965171 965177 965179 965189 975151 975157 975181 975187 975193 975199 981979 981983 982021 982057 982061 982063 999863 999883 999907 999917 999931 999953 999959 999961 999979


(4)

(5)

(FITHRI RIZQI KHAIRANI NASUTION)

DATA PRIBADI

Nama Lengkap : Fithri Rizqi Khairani Nasution Nama Panggilan : Fithri

Tempat/Tanggal Lahir: Takengon / 19 April 1991 Jenis Kelamin : Perempuan

Agama : Islam

Warga Negara : Indonesia

Alamat : Jl. Dr. Mansyur gg. Sipirok No.15 P. Bulan

HP : 081264460987

E-mail : fithri.khairani@gmail.com Status : belum menikah

RIWAYAT PENDIDIKAN

Perguruan Tinggi

Universitas Sumatera Utara

Fakultas Ilmu Komputer dan Teknologi Informasi 2009 - Sekarang

Sekolah Menengah Atas

SMA Negeri 2 Padang Sidimpuan 2006-2009

Sekolah Menengah Pertama

SMP Negeri 1 Panyabungan 2003-2006

Sekolah Dasar

SD Negeri 1 No 142554 Lumban Dolok, Kec. Siabu , Mandailing Natal 1997-2003

Programming: C++, C#,Pascal Database : MySQL

IDE : Microsoft Visual Studio 2010 Software : Ms. Office, Adobe Photoshop


(6)

C-2

PENGALAMAN KERJA

No Instansi/Lembaga Jabatan/Posisi Tahun

1 Program Studi S1 Ilmu Komputer

Fasilkom-TI USU Asisten Laboratorium 2011-2012

PENGALAMAN PELATIHAN

No. Pelatihan Tahun

1 Training Islami Ceria dan Kreatif (TRICK) 2010

2 Pelatihan Dasar Organisasi (PDO) 2009

PENGALAMAN ORGANISASI/KEPANITIAAN

No Organisasi Jabatan Tahun

1 BKM Al-Khuwarizmi Anggota Bidang Pembinaan Anggota 2010-2011

2 Pekan Olahraga dan Seni

(PORSENI) IMILKOM USU Anggota Seksi Konsumsi 2011

3 Penerimaan Mahasiswa Baru

(PMB) IMILKOM USU Administrator 2011

4 Ikatan Mahasiswa S1 Ilmu

Komputer (IMILKOM)

Sekretaris Departemen Dana dan

Usaha 2011-2012

5 Ikatan Mahasiswa S1 Ilmu

Komputer (IMILKOM) Sekretaris Umum 2012-2013

SEMINAR

No. Seminar Tahun

1 Seminar Android 2011