Perancangan Aplikasi Kriptografi Kunci Publik Metode Rivest-Shamir-Adleman (RSA) dengan Metode The Sieve of Erathostenes pada File Text dengan PHP

(1)

PERANCANGAN APLIKASI KRIPTOGRAFI KUNCI PUBLIK

METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN

METODE THE SIEVE OF ERATHOSTENES PADA FILE

TEXT DENGAN PHP

SKRIPSI

RISSA RIFLIZA LUBIS 051401074

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2012


(2)

PERANCANGAN APLIKASI KRIPTOGRAFI KUNCI PUBLIK METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN METODE THE SIEVE OF

ERATHOSTENES PADA FILE TEXT DENGAN PHP

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

RISSA RIFLIZA LUBIS 051401074

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2012


(3)

(4)

PERSETUJUAN

Judul : PERANCANGAN APLIKASI KRIPTOGRAFI

KUNCI PUBLIK METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN METODE THE SIEVE OF ERATHOSTENES PADA FILE TEXT DENGAN PHP

Kategori : SKRIPSI

Nama : RISSA RIFLIZA LUBIS

Nomor Induk Mahasiswa : 051401074

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Diluluskan di

Medan, 17 Juli 2012

Komisi Pembimbing :

Pembimbing 1 Pembimbing 2

Drs.Sawaluddin,MIT M.Umar Saleh T., ST NIP. 195912311998021001 NIP. 196206242006041015

Diketahui/Disetujui oleh : Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991021001


(5)

PERNYATAAN

PERANCANGAN APLIKASI KRIPTOGRAFI KUNCI PUBLIK METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN METODE THE SIEVE OF

ERATHOSTENES PADA FILE TEXT DENGAN PHP

SKRIPSI

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

Medan, 17 Juli 2012

RISSA RIFLIZA LUBIS 051401074


(6)

PENGHARGAAN

Alhamdulillah, puji syukur saya sampaikan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatunya dalam hidup, sehingga saya dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Universitas Sumatera Utara. Shalawat beriring salam saya persembahkan kepada Nabi Besar Muhammad SAW.

Ucapan terima kasih saya sampaikan kepada bapak Drs. Sawaluddin, MIT sebagai Dosen Pembimbing I dan Bapak M.Umar T, ST sebagai Dosen Pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas, padat dan profesional telah diberikan kepada saya sehingga saya dapat menyelesaikan tugas ini. Selanjutnya kepada Dosen Penguji Bapak Syahril Efendi, S.Si, MIT dan Bapak M. Andri Budiman, ST, MSComp, MEM atas saran dan kritikan yang sangat berguna bagi saya. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Dr. Poltak Sihombing, M.Kom, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer FMIPA USU.

Skripsi ini terutama saya persembahkan untuk kedua orang tua dan keluarga saya yang telah memberikan dukungan dan motivasi, ayahanda Syaiful Adil Lubis, SH dan ibunda Ita Indriani yang selalu sabar dalam mendidik saya. Untuk kakak saya, Riani Sadilla Lubis, SH dan Kedua Adik saya, Jiwanda Maarif Lubis dan Aji Maarif Lubis. Juga untuk Suami saya, Robbi Hardi Saragih yang selalu menemani saya dalam menyelesaikan skripsi saya. Kepada Jaya Persad yang selalu memberikan dorongan dan bantuan kepada saya selama menyelesaikan skripsi ini. Kepada teman-teman terbaik yang selalu memberikan dukungan, Basuki, Bang Fadly, Bang Jawaher, Pak


(7)

per satu. Untuk teman-teman sekelas dan satu angkatan yang sedang berjuang tanpa patah semangat dan tiada putus harapan. Terima kasih pula kepada semua pihak-pihak yang tidak dapat saya sebutkan satu persatu, terima kasih atas ide, saran, dan kerjasama yang baik.

Saya menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh karena itu saya menerima saran dan kritik yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.


(8)

ABSTRAK

Masalah keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa pentingnya informasi tersebut dikirim dan diterima oleh orang yang berkepentingan. Informasi akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak. Untuk itu, saya menggunakan Algoritma Rivest-Shamir-Adleman (RSA) dengan Metode Erastosthenes untuk pembangkitan bilangan prima dalam pengamanan data file text.


(9)

THE DESIGN OF THE APPLICATION OF PUBLIC KEY CRYPTOGRAPHY METHOD RIVEST-SHAMIR-ADLEMAN (RSA) WITH THE SIEVE OF

ERATHOSTENES METHOD IN TEXT FILE WITH PHP

ABSTRACT

The issue of security and confidentiality of data is one important aspect of an information system. In this case, is related to how important the information is sent and received by a person of interest. Information would no longer useful in the middle of the road when it intercepted information or hijacked by unauthorized people. For that, I use the algorithm Rivest-Shamir-Adleman (RSA) with Erastosthenes method for generating prime numbers in a text file of data security.


(10)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab I Pendahuluan 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 2

1.3 Pembatasan Masalah 3

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

Bab II Tinjauan Pustaka 4

2.1 Pendahuluan 4

2.2 Teori Dasar Kriptografi 5

2.2.1 Subtitusi 5

2.2.2 Blocking 6

2.2.3 Permutasi 7

2.2.4 Ekspansi 8

2.2.5 Pemampatan 8

2.3 Teknologi Enkripsi Simetris Dengan Asimetris 9

2.4 Konsep Dasar Kriptografi Kunci Publik 10

2.5 Rivest-Shamir-Adleman (RSA) 11

2.6 Keamanan Algoritma RSA 13

2.7 Cryptographic Protocol 14

2.7.1 Fungsi Protokol 14

2.7.2 Penyerangan Terhadap Protokol 15

2.7.3 Berbagai Macam Basic Cryptanalytic Attacks 16 2.7.4 Analisis Berbagai Tipe Penyerangan Secara Matematis 17

2.7.5 Ciphertext-Only Attack 18

2.7.6 Known-Plaintext Attack 19

2.7.7 Brute-Force Attack 19

Bab III Analisis Permasalahan 20

3.1 Bilangan Prima 20


(11)

3.1.3 Distribusi Kunci 23

3.2 Analisis Metode Sieve of Eratosthenes 23

3.3 Rancangan Sistem 26

3.4 Prosedur Membuat Pasangan Kunci 28

3.5 Enkripsi 30

3.6 Dekripsi 30

3.7 Kekuatan dan Kelemahan RSA 32

Bab IV Implementasi dan Pengujian Sistem 36

4.1 Implementasi Sistem 36

4.1.1 Tampilan Aplikasi 37

Bab V 40

5.1 Kesimpulan 40

5.2 Saran 41

Daftar Pustaka 42


(12)

DAFTAR TABEL

Halaman

Tabel 2.1 Tabel Substitusi 5

Tabel 2.2 Enkripsi Dengan Bloking 6

Tabel 2.3 Enkripsi RSA 12


(13)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Permutasi 7

Gambar 2.2 Proses Enkripsi Dengan Permutasi 7

Gambar 2.3 Enkripsi Dengan Ekspansi 8

Gambar 2.4 Enkripsi Dengan Pemampatan 9

Gambar 2.5 Model Enkripsi Kunci Publik 10

Gambar 3.1 Rancangan Flowchart Algoritma Sieve of Eratosthenes 25 Gambar 3.1 Flowchart Inisialisasi Kunci Enkripsi 33

Gambar 3.2 Flowchart Kunci Enkripsi 34

Gambar 3.3 Flowchart Kunci Dekripsi 35

Gambar 4.1 Proses Import File rsa.sql Ke Dalam Database RSA 36

Gambar 4.2 Tampilan Form Utama 37

Gambar 4.3 Tampilan Setelah Memasukkan Bilangan Prima 38

Gambar 4.4 Tampilan Form Input Teks 38


(14)

ABSTRAK

Masalah keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa pentingnya informasi tersebut dikirim dan diterima oleh orang yang berkepentingan. Informasi akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak. Untuk itu, saya menggunakan Algoritma Rivest-Shamir-Adleman (RSA) dengan Metode Erastosthenes untuk pembangkitan bilangan prima dalam pengamanan data file text.


(15)

THE DESIGN OF THE APPLICATION OF PUBLIC KEY CRYPTOGRAPHY METHOD RIVEST-SHAMIR-ADLEMAN (RSA) WITH THE SIEVE OF

ERATHOSTENES METHOD IN TEXT FILE WITH PHP

ABSTRACT

The issue of security and confidentiality of data is one important aspect of an information system. In this case, is related to how important the information is sent and received by a person of interest. Information would no longer useful in the middle of the road when it intercepted information or hijacked by unauthorized people. For that, I use the algorithm Rivest-Shamir-Adleman (RSA) with Erastosthenes method for generating prime numbers in a text file of data security.


(16)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Masalah keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa pentingnya informasi tersebut dikirim dan diterima oleh orang yang berkepentingan. Informasi akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak.

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Ilmu sandi (kriptografi) sendiri telah ada sejak lama. Tercatat dalam sejarah bahwa Julius Caesar (kaisar romawi) menggunakan penyandian untuk menyampaikan pesan rahasia saat perang.

Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan dan atau alat khusus. Sedangkan dekripsi merupakan algoritma atau cara yang dapat digunakan untuk membaca informasi yang telah dienkripsi untuk kembali dapat dibaca.

Algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografis. Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi:

1. Kunci simetris / symetric key

Skema algoritma sandi akan disebut kunci simetris apabila untuk setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan kumci yang sama.


(17)

Contoh algoritma yang menggunakan kunci simetris: DES, MARS, IDEA, Triple DES, AES

2. Kunci asimetris / asymetric key

Skema ini adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Contoh algoritma yang menggunakan kunci asimetris : Knapsack, RSA, Diffie Hellman.

Saat ini terdapat berbagai algoritma penyandian dalam ilmu kriptografi, namun pada penulisan skripsi ini penulis memilih RSA dalam proses enkripsi dan dekripsi file teks. Metode ini merupakan metode yang paling banyak dipakai di dunia.

Dari sekian banyak algoritma kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Pada RSA, masalah pemfaktoran berbunyi : Faktorkan n menjadi dua factor primanya, p dan q, sedemikian sehingga n = p . q. Sekali n berhasil difaktorkan menjadi p dan q, maka φ(n) = (p - 1) (q - 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e .d ≡ 1 (mod φ(n)).

1.2 Perumusan Masalah

Perumusan masalah yang akan diteliti dalam tulisan ini adalah bagaimana mengimplementasikan algoritma RSA sebagai kriptografi kunci public pada file text untuk pembangkit bilangan prima.


(18)

1.3 Pembatasan Masalah

Dalam melakukan perancangan aplikasi kriptografi kunci publik terhadap text dilakukan batasan sebagai berikut :

1. Pada skripsi ini tidak membahas mengenai sulitnya dan cara-cara untuk memecahkan mekanisme penyandian.

2. File teks yang akan digunakan adalah file dokumen teks (*.txt).

3. Perbandingan yang dilakukan berdasarkan lama proses deskripsi diantara kedua algoritma tersebut, didalam implementasinya dalam suatu program sederhana.

1.4 Tujuan Penelitian

Penelitian ini bertujuan untuk pembuatan aplikasi kunci publik (key public) yang bertujuan untuk pengamanan sebuah file text atau dokumen text sehingga terjaga sifat rahasia dan keamanannya.

1.5 Manfaat Penelitian

Dengan pembuatan aplikasi metode RSA, kita dapat mengetahui bahwa, metode rsa mudah digunakan untuk menghindari pencurian, penyadapan, dan pemalsuan informasi. Dimana metode tersebut digunakan untuk mengamankan data dari kejadian – kejadian tersebut maka diperlukan penyandian terhadap data yang akan dikirim.

1.6 Metode Penelitian

Dalam penyusunan tulisan ini, penulis menggunakan tahapan sebagai berikut: 1. Membahas karakteristik Algoritma RSA


(19)

(20)

BAB 2

TINJAUAN PUSTAKA

2.1 Pendahuluan

Teknik pengacakan data yang disebut enkripsi, telah membentuk suatu bidang keilmuan yang disebut kriptografi. Prinsip dasar dari teknik enkripsi adalah menyembunyikan informasi dalam bentuk yang sedemikin rupa sehingga hanya orang yang berhak saja yang dapat mengetahui isi informasi yang disembunyikan itu. Keinginan untuk merahasiakan informasi sudah muncul sejak laman dahulu, bahkan Sebelum Masehi.

Pada tahun 475 S.M. bangsa Sparta , suatu bangsa militer pada jaman Yunani kuno, menggunakan teknik kriptografi yang disebut scytale, untuk kepentingan perang. Scytale terbuat dari tongkat dengan papyrus yang mengelilingi secara spiral. Pesan dituliskan secara melintang pada tongkat melintasi papyrus.

Kunci dari scytale adalah diameter tongkat yang digunakan pengiriman harus sama dengan diameter tongkat yang dimiliki penerima pesan, sehingga pesan yang disembunyikan dalam papyrus dapat dibaca dan dimengerti penerima.

Julius Caesar, seorang kaisar terkenal Romawi yang menaklukan banyak bangsa di Eropa dan Timur Tengah juga menggunakan suatu teknik kriptografi yang sekarang disebut Caesar Cipher untuk berkorespondensi sekitar tahun 60 S.M. Teknik yang digunakan oleh sang Caesar adalah mensubstitusikan alphabet secara beraturan, yaitu oleh alphabet ketiga yang mengikuti, misalnya, alphabet “A” digantikan oleh “D”,”B” oleh “E”, dan seterusnya. Sebagai contoh, suatu pesan berikut: “NXDVDLPHVLU” akan diterjemahkan menjadi “KUASAI MESIR”.


(21)

2.2 Teori Dasar Kriptografi

Suatu ilmu dan seni dalam menjaga kerahasiaan suatu pesan (kode) disebut dengan kriptografi yang dilakukan oleh seorang kriptografi. Kriptografi terdiri dari proses yaitu enkripsi dan dekripsi yang diibaratkan seperti dua sisi mata uang. Suatu pesan dibuat seolah tidak bermakna dengan merubahnya menurut prosedur tertentu maka disebut dengan Enkripsi, dan dibuat bermakna kembali dengan menggunakan prosedur yang biasanya bersifat kebalikannya, disebut juga dengan istilah Dekripsi.

Pesan atau dalam istilah kriptografi disebut message, yang akan dirahasiakan disebut plaintext, sedangkan bentuk pesan hasil proses di enkripsi disebut ciphertext. Cryptanalyst adalah orang yang mempelajari ilmu dan seni ilmu membongkar ciphertext. Menurut ISO 7498-2 istilah yang lebih tepat untuk

decryption adalah “decipher”.

Terdapat lima teknik yang mendasari kriptografi. Berikut ini dicontohkan procedure enkripsi dalam melakukan pengacakan data terhadap

plaintext yang sama, yaitu “5 teknik dasar kriptografi”.

2.2.1 Subtitusi

Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan di atas. Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memilki tabel yang sama untuk keperluan dekripsi. Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak.

Tabel 2.1 Subtitusi

A B C D E F G H I J K L M N O P Q R S T B F 1 K Q G A T P J 6 H Y D 2 X 5 M V 7 U V W X Y Z 1 2 3 4 5 6 7 8 9 0


(22)

Tabel substitusi di atas dibuat secara acak. Dengan menggunakan tabel tersebut, dari plaintext “5 teknik dasar kriptografi” dihasilkan ciphertext “L 7Q6DP6 KBVBM6MPX72AMBGP”. Dengan menggunakan tabel substitusi yang sama secara dengan arah yang terbalik, plaintext dapat diperoleh kembali dari ciphertext-nya.

2.2.2 Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian di enkripsi secara independent. Plaintext

yang dienkripsikan dengan menggunakan teknik blocking terdapat pada tabel 2.2.

Tabel 2.2 Enkripsi Dengan Blocking

5 D P Blok1

A T Blok2

T S O Blok3

E A G Blok4

K R R Blok5

N A Blok6

I K F Blok7

K R I Blok8

I Blok9

Dengan menggunakan enkripsi blocking dipilih jumlah jalur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext -nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan bloknya. Jadi ciphertext yang dihasilkan dengan teknik ini adalah “5DP ATTSOEAGKRRN AIKFKRI I”. Plaintext dapat pula ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara vertikal.


(23)

2.2.3 Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut tranposisi. Teknik ini memindahkan atau merotasiakan karakter dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang diacak,. Pada teknik permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama.

Untuk contoh di atas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan aturan permutasi sebagai berikut:

1 2 3 4 5 6

6 2 4 3 5 1

Gambar 2.1 Permutasi

Dengan menggunakan aturan di atas, maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut:

5 T E K N I K D A S A R K R I P T O G R A F I

N E T K 5 S K D A I I R K R A A T G O R P F 1

Gambar 2.2 Proses Enkripsi Dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah “N ETK5SKD AIIRK RAATGORP FI”.


(24)

2.2.4 Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan melebarkan pesan itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata akhir kata itu dan menambahkan akhiran “an”. Bila suatu kata dimulai dengan huruf hidup atau bilangan genap, ditambahkan akhiran “i”. Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K I P T O G R A F I

5 A N E K N I K T A N A S A R D A N R I P T O G

R A F I K A N

Gambar 2.3 Enkripsi Dengan Ekspansi

Ciphertextnya adalah “5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN”. Aturan ekspansi dapat dibuat lebih kompleks. Terkadang teknik ekspansi digabungkan dengan teknik lainnya, karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan.

2.2.5 Pemampatan

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan. Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ketiga secara berurutan. Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai “lampiran” dari pesan utama, dengan diawali oleh suatu karakter khusus, dalam contoh ini digunakan “&”. Proses yang terjadi untuk plaintext kita adalah:

5 T E K N I K = D A S A R = K R I P T O G R A F I

Plaintext

5 E K I K D A A R K R P T G R F I

Pesan yang dimampatkan


(25)

5 E K I K D A A R K R P & T G R F I T N S I O A Ciphertext

Gambar 2.4 Enkripsi Dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali.

Dengan menggunakan kelima teknik dasar kriptografi di atas, dapat diciptakan kombinasi teknik kriptografi yang amat banyak, dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita. Walaupun sekilas terlihat sederhana, kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks, dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern.

2.3 Teknologi Enkripsi Simetris dan Asimetris

Untuk menyandi informasi dan untuk menterjemahkan pesan tersandi sebuah algoritma penyandian memerlukan sebuah data binary yang disebut kunci atau key. Tanpa kunci yang cocok orang tidak bisa mendapatkan kembali pesan asli dari pesan tersandi. Ada dua jenis sistem tersandi yang dikenal dengan istilah sistem sandi simetris dan sistem sandi asimetris.

Sistem sandi simetris menggunakan kunci yang sama dalam proses enkripsi maupun proses dekripsi. Sedangkan sistem sandi asimetris dalam melakukan proses enkripsi menggunakan kunci yang berbeda dengan kunci yang digunakan dalam proses deskripsi. Contoh dari sistem sandi simetris adalah Data Encryption Standard (DES), sedangkan contoh sistem sandi asimetris adalah Ron Shamir Adleman (RSA).

Kedua sistem ini memiliki keuntungan dan kerugiannya sendiri. Sistem sandi simetris cenderung jauh lebih cepat sehingga lebih disukai oleh kalangan industri. Namun kelemahannya adalah bahwa pihak-pihak yang ingin berkomunikasi secara privat harus punya akses ke sebuah kunci bersama. Dan tidak menutup kemungkinan bahwa salah satu pihak akan ceroboh terhadap kunci tersebut hingga mudah jatuh ke tangan pihak ketiga.


(26)

2.4 Konsep Dasar Kriptografi Kunci Publik

Algoritma Kunci Publik menggunakan kunci yang berbeda untuk enkripsi dan deskripsi. Karena sifatnya ini maka algoritma ini termasuk ke dalam sistem sandi asimetris. Metode Kunci Publik ini menjadi penting karena meskipun kunci enkripsi sudah diketahui publik, namun ciphertext tersebut tidak dapat diterjemahkan tanpa menggunakan kunci deskripsi yang disebut kunci privat.

Plaintext

Ciphertext Plainteks

User A User B

Gambar 2.5 Model Enkripsi Kunci Publik

Gambar 2.5 menggambarkan model dari enkripsi kunci publik. Apabila user A akan mengirimkan pesan tersandi maka ia akan menyandi pesan itu (enkripsi) dengan menggunakan kunci publik user B. Kemudian user B mendeskripsikan pesan tersebut mengggunakan kunci privat miliknya.

Algortima dari proses komunikasi mengggunakan kriptografi kunci publik adalah seperti contoh berikut: 1). Feli dan Fajar akan menggunakan sistem kriptografi kunci publik. 2). Fajar mengirimkan kunci publik miliknya kepada Feli. 3). Feli meng-enkripsi pesan miliknya dengan menggunakan kunci publik milik Fajar dan mengirimkannya. 4). Fajar meng-deskripsikan pesan dari Feli dengan menggunakan kunci privat miliknya. Dalam prakteknya baik Feli maupun Fajar dapat mengakses kunci publik masing-masing yang tersedia dalam sebuah Data Base, yang disebut dengan Key Distribution Center (KDC).

Kunci publik dapat diketahui orang lain, kunci privat tetap hanya diketahui pemiliknya saja. Konsep Kunci Publik ini adalah prototype awal dari munculnya RSA.

KUNCI PUBLIK KUNCI PRIVAT

PROSES ENKRIPSI

PROSES DEKRIPSI


(27)

2.5 Rivest-Shamir-Adleman (RSA)

Penemu RSA adalah Ron Rivest, Adi Shamir, dan Leonard Adleman yang membuatnya di tahun 1978. RSA ini adalah sistem penyandian kunci publik yang popular.

Kepopuleran RSA terletak dari kemampuannya digunakan sebagai tanda tangan digital. Teknologi tanda tangan digital dibuat dengan memanfaatkan teknologi kunci publik. Sepasang kunci public-privat dibuat untuk keperluan seseorang. Kunci privat disimpan oleh pemiliknya, dan digunakan untuk membuat tanda tangan digital. Sedangkan kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen.

Saat ini satu-satunya cara yang diketahui untuk mendobrak sandi RSA adalah dengan mencoba satu-persatu berbagai kombinasi kunci dengan istilah

brute force attack. Karena itu, sebenarnya keamanan dari RSA banyak bergantung dari ukuran kunci yang digunakan yaitu dalam bit. Semakin lebar ukuran kunci maka banyaknya kemungkinan kombinasi kunci yang mungkin semakin besar. Selain itu keamanan RSA ini pun bergantung pada kesulitan dalam pemangkatan bilangan bulat dalam digit yang besar. Salah satu kelemahan RSA dibandingkan dengan sistem sandi simetris adalah lama proses yang dibutuhkannya.

Kepopuleran RSA saat ini ditandingi oleh kepopuleran Pretty Good Privacy (PGP), yang merupakan aplikasi pengamanan Surat Elektronik atau Electronic Mail (E-mail). Namun sebenarnya PGP sendiri masih menggunakan algoritma RSA dalam hal tanda tangan digital

RSA adalah sistem sandi yang barangkali paling mudah dimengerti cara kerjanya, tetapi juga sangat kokoh, baik untuk menyandi maupun menterjemahkan sandi, RSA hanya menggunakan operasi pemangkatan. Para pembuat RSA ini melihat

bahwa operasi mk mod n menghasilkan nilai yang relative acak hubungan terhadap

m. Berikut ini akan disampaikan pembentukan kunci privat dan kunci publik dengan RSA :

1. Pilih dua bilangan prima p dan q secara acak. Bilangan ini harus cukup besar yaitu minimal 100 digit, dan keduanya memiliki panjang digit yang sama.


(28)

2. Hitung n = pq. Untuk kemudian bilangan n disebut parameter sekuriti.

3. Pilih bilangan e secara acak di mana e tidak memiliki factor pembagi yang sama dengan (p-1)(q-1) selain bilangan 1. Atau dengan kata lain bersifat relative prima. 4. Hitung d sedemikian sehingga ed mod (p-1)(q-1) = 1. Dengan menggunakan sebuah algoritma yang disebut algoritma Euclid akan menghitung d sehingga,

d = e-1 mod ((p-1)(q-1))

5. Bilangan n dan e kita sebarkan ke public. e ini adalah yang akan menjadi kunci public. d menjadi kunci privat. Sementara itu bilangan p dan q dihilangkan, dan dicegah agar tidak pernah sampai bocor ke public.

Kini sudah didapatkan sebuah kunci publik dan kunci privat. Selanjutnya berikut ini adalah algoritma untuk menyandi dan menterjemahkan pesan :

1. Untuk menyandi sebuah pesan m dengan menggunakan kunci public e, kita

melakukan operasi me mod n, sementara untuk membuka pesan tersandi c dengan menggunakan kunci privat, kita lakukan cd mod n

2. Untuk memudahkan enkripsi dan dekripsi maka pesan m dibagi menjadi beberapa blok yang kecil.

Algoritma di atas adalah algoritma yang digunakan dalam penyandian RSA, maka hanya menggunakan operasi pemangkatan bilangan dan modulus bilangan, dalam melakukan proses enkripsi dan dekripsi sebuah pesan. Kesederhanaan inilah yang menjadikan RSA menjadi popular karena relatif mudah dimengerti. Adapun dari algoritma di atas dapat disederhanakan seperti pada tabel berikut.

Tabel 2.3 Enkripsi RSA Kunci Publik

n hasil perkalian dua bilangan prima p dan q

e relative prima (p-1)(q-1) Kunci Privat

d = e-1 mod ((p-1)(q-1)) Enkripsi

c = me mod n Dekripsi


(29)

2.6 Keamanan Algoritma RSA

Sistem kriptografi yang baik adalah sistem kriptografi yang memang dirancang sedemikian rupa sehingga sulit untuk dipecahkan atau dibongkar. Secara teori sebuah metode kriptografi dengan sebuah kunci akan dapat dipecahkan dengan mencoba semua kemungkinan rangkaian kunci. Maka semakin panjang ukuran kunci maka semakin sulit untuk dipecahkan.

Saat ini satu-satunya cara yang diketahui untuk mendobrak sandi RSA adalah dengan mencoba satu persatu berbagai kombinasi kunci dengan istilah

brute force attack. Karena itu, sebenarnya keamanan dari RSA banyak bergantung dari ukuran kunci yang digunakan yaitu dalam bit.

Selain itu keamanan RSA ini pun bergantung pada kesulitan dalam pemangkatan bilangan bulat dalam digit yang besar. Namun ada beberapa anggapan adalah mudah untuk membongkar sandi RSA. Sebagai contoh adalah dengan membangkitkan nilai n sehingga nantinya akan didapatkan nilai e dan d yang mungkin. Kemungkinan penyerangan terhadap RSA dilakukan pula dengan memperkirakan nilai (p-1)(q-1). Namun cara ini juga memberikan kemungkinan kecil untuk berhasil.

Sejauh ini belum seorang pun yang berhasil menemukan lubang sekuriti pada RSA, tetapi tak seorang pun juga berhasil memberikan pembuktian ilmiah yang memuaskan dari keamanan teknik sandi ini. Padahal, pemakaiannya sudah sangat meluas dan mencakup sektor-sektor strategis seperti perbankan, pemerintahan, dan telekomunikasi.

Sebetulnya tak satu pun sandi yang aman dari brute force attack. Persoalaannya lebih kepada seberapa ekonomisnya serangan tersebut bisa dilakukan. Perkecualiannya adalah sandi yang disebut One-time-pad yang dibuat oleh Mouborgne & Vernam, pada tahun 1917. Sandi ini adalah sandi ideal yang tidak mungkin dibongkar dengan cara apa pun. Sayangnya sandi ini tidak praktis karena membutuhkan kunci yang sama panjangnya dengan pesan yang disandi.


(30)

2.7 Cryptographic Protokol

Suatu protokol adalah serangkaian langkah yang melibatkan dua pihak atau lebih dan dirancang untuk menyelesaikan suatu tugas. Dari definisi ini dapat diambil beberapa arti sebagai berikut :

1. protokol memiliki urutan dari awal hingga akhir 2. setiap langkah harus dilaksanakan secara bergiliran

3. suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai 4. diperlukan dua pihak atau lebih untuk melaksanakan protokol

5. protokol harus mencapai suatu hasil

Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :

1. setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu

mengenai protokol dan seluruh langkah yang akan dilaksanakan

2. setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya

3. protokol tidak boleh menimbulkan kerancuan

4. protokol harus lengkap

Protocol kriptografi adalah suatu protokol yang menggunakan kriptografi. Protokol ini melibatkan sejumlah algoritma kriptografi, namun secara umum tujuan protokol lebih dari sekedar kerahasiaan. Pihak-pihak yang berpartisipasi mungkin saja ingin membagi sebagian rahasianya untuk menghitung sebuah nilai, menghasilkan urutan random, atau pun menandatangani kontrak secara bersamaan. Penggunaan kriptografi dalam sebuah protokol terutama ditujukan untuk mencegah atau pun mendeteksi adanya eavesdropping dan cheating.

2.7.1 Fungsi Protokol

Dalam kehidupan kita sehari-hari terdapat banyak sekali protokol tidak resmi, misalnya saja dalam permainan kartu, pemungutan suara dalam pemilihan umum. Akan tetapi tidak ada seorang pun yang memikirkan mengenai protokol-protokol ini,


(31)

protokol-protokol ini terus berkembang, semua orang mengetahui bagaimana menggunakannya.

Saat ini, semakin banyak interaksi antar manusia dilakukan melalui jaringan komputer. Komputer ini tentu saja memerlukan suatu protokol formal agar dapat melakukan hal yang biasa dilakukan manusia tanpa berpikir. Bila kita berpindah dari satu daerah ke daerah lain dan mengetahui bahwa kartu pemilihan suaranya berbeda dengan yang biasa kita gunakan, kita dapat beradaptasi dengan mudah. Akan tetapi kemampuan ini belum dimiliki oleh komputer, sehingga diperlukan suatu protokol. Protokol digunakan untuk mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang digunakan. Protokol komunikasi adalah sama meskipun diimplementasikan pada PC atau VAX. Bila kita yakin bahwa kita memiliki protokol yang baik, kita dapat mengimplementasikannya dalam segala benda mulai dari telepon hingga pemanggang roti cerdas.

2.7.2 Penyerangan Terhadap Protokol

Penyerangan kriptografi dapat ditujukan pada beberapa hal berikut :

1. algoritma kriptografi yang digunakan dalam protokol.

2. teknik kriptografi yang digunakan untuk mengimplementasikan algoritma dan protokol.

3. protokol itu sendiri.

Seseorang dapat mencoba berbagai cara untuk menyerang suatu protokol. Mereka yang tidak terlibat dalam protokol dapat menyadap sebagian atau seluruh protokol. Tindakan ini disebut penyerangan pasif, karena si penyerang tidak mempengaruhi atau mengubah protokol, ia hanya mengamati protokol dan berusaha untuk memperoleh informasi.

Selain itu, seorang penyerang dapat berusaha untuk mengubah protokol demi keuntungannya sendiri. Ia dapat mengirimkan pesan dalam protokol, menghapus pesan, atau bahkan mengubah informasi yang ada di dalam suatu komputer.


(32)

Tindakan-tindakan ini disebut sebagai penyerangan aktif, karena ia membutuhkan suatu campur tangan aktif.

Seorang penyerang tidaklah hanya berasal dari lingkungan luar protokol, namun ia mungkin juga berasal dari dalam protokol itu sendiri, ia dapat merupakan salah satu pihak yang terlibat dalam protokol. Tipe penyerang semacam ini disebut sebagai cheater. Passive cheater mengikuti protokol, tetapi berusaha memperoleh informasi lebih banyak daripada yang diperbolehkan protokol bagi dirinya. Active cheater mengubah protokol dalam usahanya untuk berbuat curang.

Usaha untuk menjaga keamanan protokol akan semakin sulit apabila pihak-pihak yang terlibat umumnya merupakan active cheater, oleh karena itu suatu protokol yang baik harus mampu atau pun harus aman terhadap kemungkinan passive cheating.

2.7.3 Berbagai Macam Basic Cryptanalytic Attacks

Tujuan cryptanalytic attack adalah untuk mengetahui beberapa plaintext yang sesuai dengan ciphertext yang ada dan berusaha menentukan kunci yang memetakan satu dengan yang lainnya. Plaintext ini dapat diketahui karena ia merupakan standar atau karena pendugaan. Jika suatu teks diduga berada di dalam suatu pesan, posisinya mungkin tidak diketahui, tetapi suatu pesan lazimnya cukup pendek sehingga memungkinkan cryptanalyst menduga plaintext yang diketahui dalam setiap posisi yang mungkin dan melakukan penyerangan pada setiap kasus secara paralel.

Suatu algoritma enkripsi yang kuat tidak hanya mampu bertahan terhadap serangan plaintext yang dikenal tetapi juga mampu bertahan terhadap adaptive chosen plaintext. Dalam penyerangan ini, cryptanalyst berkesempatan memilih plaintext yang digunakan dan dapat melakukannya secara berulang kali, memilih plaintext untuk tahap N+1 setelah menganalisis hasil tahap N.


(33)

ringkas terdapat tujuh macam basic cryptanalytic attacks berdasarkan tingkat kesulitannya bagi penyerang, dimulai dari yang paling sulit adalah :

1. Ciphertext-only attack. Dalam penyerangan ini, seorang cryptanalyst memiliki ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi menggunakan algoritma yang sama.

2. Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst memiliki akses tidak hanya ke ciphertext sejumlah pesan, namun ia juga memiliki plaintext pesan-pesan tersebut.

3. Chosen-plaintext attack. Pada penyerangan ini, cryptanalyst tidak hanya memiliki akses atas ciphertext dan plaintext untuk beberapa pesan, tetapi ia juga dapat memilih plaintext yang dienkripsi.

4. Adaptive-chosen-plaintext attack. Penyerangan tipe ini merupakan suatu kasus

khusus chosen-plaintext attack. Cryptanalyst tidak hanya dapat memilih plaintext yang dienkripsi, ia pun memiliki kemampuan untuk memodifikasi pilihan berdasarkan hasil enkripsi sebelumnya. Dalam chosen-plaintext attack, cryptanalyst mungkin hanya dapat memiliki plaintext dalam suatu blok besar untuk dienkripsi; dalam adaptive-chosen-plaintext attack ini ia dapat memilih blok plaintext yang lebih kecil dan kemudian memilih yang lain berdasarkan hasil yang pertama, proses ini dapat dilakukannya terus menerus hingga ia dapat memperoleh seluruh informasi.

5. Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih ciphertext yang berbeda untuk didekripsi dan memiliki akses atas plaintext yang didekripsi.

6. Chosen-key attack. Cryptanalyst pada tipe penyerangan ini memiliki pengetahuan tentang hubungan antara kunci-kunci yang berbeda.

7. Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst mengancam, memeras, atau bahkan memaksa seseorang hingga mereka memberikan kuncinya.

2.7.4 Analisis Berbagai Tipe Penyerangan Secara Matematis

Suatu penyerangan pasif atas cryptosystem adalah semua metode untuk mengungkapkan informasi tentang plaintext dan ciphertextnya dengan tanpa


(34)

mengetahui kunci. Secara matematis, diberikan fungsi F, G, dan H yang terdiri dari n variabel. Diberikan sistem enkripsi E. Diberikan suatu distribusi plaintext dan kunci.

Suatu penyerangan atas E dengan menggunakan G dengan mengasumsikan F membagi H dengan probabilitas p adalah suatu algoritma A dengan sepasang input f,g dan satu buah output h sedemikian hingga terdapat probabilitas p atas h = H(P1, …, Pn), jika kita memiliki f = F(P1, …, Pn) dan g = G(EK(P1), …, EK(Pn)). Perlu diperhatikan bahwa probabilitas ini tergantung pada distribusi vektor-vektor (K,P1,…,Pn).

Penyerangan akan merupakan suatu trivial bila terdapat probabilitas paling sedikir p untuk h = H(P1, …, Pn) jika f = F (P1,…,Pn) dan g = G (C1,…,Cn). Di sini C1,…,Cn terletak pada ciphertext yang mungkin, dan tidak memiliki hubungan tertentu dengan P1,…,Pn. Dengan kata lain, suatu serangan akan merupakan trivial bila ia tidak benar-benar menggunakan enkripsi EK(P1),…,EK(Pn).

Dengan merumuskan penyerangan secara matematis, kita dapat secara tepat memformulasikan dan bahkan membuktikan pernyataan bahwa suatu cryptosystem itu kuat. Kita katakan, sebagai contoh, bahwa suatu cryptosystem adalah aman terhadap seluruh penyerangan pasif jika sembarang penyerangan nontrivial terhadapnya tidak praktis. Jika kita dapat membuktikan pernyataan ini maka kita akan memiliki keyakinan bahwa cryptosystem kita akan bertahan terhadap seluruh teknik cryptanalytic pasif. Jika kita dapat mereduksi pernyataan ini hingga pada beberapa masalah yang tidak terpecahkan maka kita masih tetap memiliki keyakinan bahwa cryptosystem kita tidak mudah dibuka.

2.7.5 Ciphertext-only attack

Dengan menggunakan notasi di atas, suatu ciphertext-only attack adalah suatu penyerangan dengan F adalah konstanta. Diberikan hanya beberapa informasi G(EK(P1),..EK(Pn)) tentang n ciphertext, penyerangan harus memiliki kesempatan


(35)

merupakan suatu trivial bila ia hanya menghasilkan H(P1,…,Pn) ketika diberikan G(C1,…,Cn) untuk C1,…,Cn acak.

Sebagai contoh, misalkan G ( C ) = C dan misalkan H(P) adalah bit pertama P. Kita dapat secara mudah menulis suatu penyerangan, pendugaan, yang menduga bahwa H(P) adalah 1. Penyerangan ini adalah trivial karena tidak menggunakan ciphertext, probabilitas keberhasilannya adalah 50 %. Di lain pihak, terdapat penyerangan atas RSA yang memproduksi satu bit informasi tentang P, dengan probabilitas keberhasilan 100 %, menggunakan C. Jika diberikan suatu C acak maka tingkat kesuksesan turun menjadi 50%. Inilah yang disebut penyerangan nontrivial.

2.7.6 Known-Plaintext Attack

Penyerangan known-plaintext klasik memiliki F(P1,P2) = P1, G(C1,C2) = (C1,C2), dan H(P1,P2) tergantung hanya pada P2. Dengan kata lain, bila diberikan dua ciphertext C1 dan C2 dan satu dekripsi P1, penyerangan known-plaintext seharusnya menghasilkan informasi tentang dekripsi P2.

2.7.7 Brute-Force Attack

Umpamakan penyerangan known-plaintext berikut. Kita diberikan sejumlah plaintext P1,…,Pn-1 dan ciphertext C1,…,Cn-1. Kita juga diberikan sebuah ciphertext Cn. Kita jalankan seluruh kunci K. Bila kita temukan K sedemikian sehingga EK(P1) = Ci untuk setiap I<n, kita cetak DK(Cn).

Jika n cukup besar sehingga hanya satu kunci yang bekerja, penyerangan ini akan sukses untuk seluruh input yang valid pada setiap waktu, sementara ia akan menghasilkan hasil yang tepat hanya sekali untuk input acak. Penyerangan ini adalah


(36)

BAB 3

ANALISIS PERMASALAHAN

3.1 Bilangan Prima

Bilangan prima merupakan permasalahan yang serius di dalam ilmu komputer dan teori bilangan, itu sebabnya sangat cocok dipakai untuk bidang kriptografi. Saat protocol-protokol enkripsi kunci publik didasarkan pada penggunaan dari bilangan-bilangan prima dengan ukuran besar dan keamanannya didasarkan pada kesulitan untuk mendapatkan faktor-faktor prima dari suatu bilangan prima yang sangat besar.

Bilangan prima juga sangat bermanfaat untuk kegunaan-kegunaan yang lainnya. Contohnya antara lain adalah hash table, di mana hash table paling bagus jika diinisialisasi dengan bilangan prima agar dapat meminimumkan kolisi (collisions) yang akan terjadi.

Dalam dunia komputer sudah ditemukan beberapa cara untuk mencari bilangan prima, cara yang paling baik dan tercepat adalah menggunakan algoritma

Sieve of Eratosthenes, sesuai dengan nama orang yang menemukannya, yaitu

Eratosthenes, ahli matematika dari Kirene yang hidup pada 276 SM - 195 SM.

Bilangan prima (atau integer prima, sering disingkat "prima") adalah sebuah integer positif p > 1 yang tidak memiliki pembagi integer positif selain 1 dan p itu sendiri. Atau dengan kata lain, sebuah bilangan prima p adalah sebuah integer positif dengan tepat satu pembagi positif selain 1.

Sebagai contoh, satu-satunya pembagi 13 adalah 1 dan 13, hal ini membuat 13 adalah sebuah bilangan prima. Sementara itu angka 24 memiliki pembagi 1, 2, 3, 4, 6, 8, 12, 24 (sesuai dengan faktorisasi dari 24 = 23 .3), hal ini membuat 24 bukanlah


(37)

sebuah bilangan prima. Integer positif selain 1 yang bukan bilangan prima disebut dengan bilangan komposit (composite numbers).

Dengan demikian, bilangan prima adalah bilangan – bilangan yang tidak bisa difaktorkan, lebih singkatnya adalah bilangan-bilangan N yang pembaginya sedikit dan hanya 1 dan N.

Angka 1 sendiri adalah kasus spesial di mana 1 dianggap bukanlah prima dan bukan komposit. Walaupun angka 1 dulu dianggap sebagai bilangan prima, angka 1 membutuhkan perlakuan spesial dalam banyak definisi-definisi dan aplikasi-aplikasi yang melibatkan bilangan prima yang lebih besar atau sama dengan 2 yang biasanya dikelaskan sendiri.

Dengan angka 1 dikeluarkan, maka bilangan prima terkecil adalah 2. Karena 2 adalah satu – satunya bilangan prima yang genap, angka 2 juga menjadi spesial, dan keseluruhan bilangan prima tanpa 2 kemudian disebut sebagai “bilangan prima ganjil”.

3.1.1 Pembangkitan Kunci

Menemukan bilangan prima besar p dan q pada dasarnya didapatkan dengan mencobas erangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hamper semua bilangan bukan prima.

P dan q seharusnya tidak "saling-berdekatan", agar faktorisasi fermat pada N

berhasil. Selain itu pula, jika p-1 atau q-1 memiliki faktorisasi bilangan prima yang kecil, N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan.

Seseorang seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan memberikan informasi penting tentang bilangan prima tersebut kepada penyerang. Biasanya, pembangkit bilangan acak yang baik akan memulai nilai


(38)

bilangan yang digunakan. Harap diingat, bahwa kebutuhan disini ialah "acak" dan “tidak-terduga". Berikut ini mungkin tidak memenuhi kriteria, sebuah bilangan mungkin dapat dipilah dari proses acak (misal, tidak dari pola apapun), tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak), maka metode tersebut akan kehilangan kemampuan keamanannya. Misalnya, table bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak, tetapi dikarenakan diterbitkan secara umum, hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut. Jika penyerang dapat menebak separuh dari digit p atau q, para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997).

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar, Wiener menunjukkan pada tahun 1990 bahwa jika p di antara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N1/4/3, maka d akan dapat dihitung secara effisien dari N

dan e. Kunci enkripsi e = 2 sebaiknya tidak digunakan.

3.1.2 Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya. Pada prakteknya, Bob menyandikan pesan rahasia menggunakan algoritma simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice.

Prosedur ini menambah permasalahan akan keamanan. Singkatnya, sangatlah penting untuk menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang digunakan, karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci simetrik yang digunakan.


(39)

3.1.3 Distribusi Kunci

Sebagaimana halnya cipher, bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan. Distribusi kunci harus aman dari man-in-the-middle attack. Anggap Eve dengan suatu cara mampu memberikan kunci yang bukan sebenarnya kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice. Anggap Eve dapat "menghadang" sepenuhnya transmisi antara Alice dan Bob. Eve mengirim Bob

public key milik Eve, dimana Bob percaya bahwa public key tersebut milik Alice. Eve dapat menerima seluruh ciphertext yang dikirim oleh Bob, melakukan dekripsi dengan kunci rahasia milik Eve sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi menggunakan public key milik Alice, dan mengirimkan ciphertext yang baru kepada Alice. Secara prinsip, baik Alice atau Bob tidak menyadari kehadiran Eve di antara transmisi mereka. Pengamanan terhadap serangan semacam ini yaitu menggunakans ertifikat digital atau komponen laindari infrastuktur public key.

3.2 Analisis Metode Sieve of Eratosthenes

Algoritma Sieve of Eratosthenes bisa mengurutkan bilangan prima dengan cara cepat. Algoritma ini menggunakan Ø(N) operasi dan Ø(N1/2 (log log N)/log N) bit memori.

Kekurangan dari algoritma Sieve of Eratosthenes adalah kebutuhan memorinya yang besar, sehingga hanya dapat dipakai untuk N = 10.000.000. Walaupun kompleksitas waktunya masih cukup baik, akan tetapi kompleksitas memorinya tidak menunjang (karena jumlah memori yang diperlukan sudah berada dalam jenjang puluhan, bahkan ratusan Megabyte).

Apabila Sieve of Eratosthenes masih dirasa kurang cepat, bahkan setelah dioptimasi, maka masih ada cara lain yang lebih cepat lagi, yaitu Sieve of Atkin, ditemukan pada tahun 2003 oleh A. O. L. Atkin dan D. J. Bernstein. Ide dari algoritma ini juga mengacu pada Sieve of Eratosthenes, ini menunjukkan bahwa ide dari Sieve of Eratosthenes sudah sangat bagus.


(40)

Sieve Of Eratosthenes adalah sebuah algoritma klasik untuk menemukan seluruh bilangan prima sampai ke sebuah N yang ditentukan. Mulai dengan array of integer yang belum dicoret dari 2 ke N. Integer pertama yang belum dicoret yaitu 2, adalah bilangan prima pertama. Coret seluruh kelipatan dari bilangan prima ini. Ulangi pada integer selanjutnya yang belum dicoret.

Sebagai contoh, berikut adalah larik (array) pada awalnya:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Karena 2 belum dicoret, maka 2 adalah bilangan 2 pertama. Kita coret seluruh kelipatan 2, yaitu 4, 6, 8, 10, 12, dan seterusnya.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Integer selanjutnya yang belum dicoret adalah 3, maka 3 adalah prima dan kita coret seluruh kelipatan 3, seperti 6, 9. 12, dan seterusnya.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

5 adalah bilangan prima selanjutnya, maka kita harus mencoret seluruh kelipatan 5. Satu-satunya

bilangan yang dicoret dalam range ini adalah 25.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Maka akan didapat bilangan prima selanjutnya yaitu 7, 11, 13, 17, 19, dan 23. Pada prinsipnya, algoritma Sieve of Eratosthenes adalah sebagai berikut: 1. Buat daftar bilangan dari 2 sampai dengan N (2, 3, 4, …, N).

2. Ambil bilangan terkecil dalam daftar tersebut, misal X. X adalah bilangan prima yang dicari, keluarkan dari daftar dan masukkan ke tempat lain.


(41)

Berikut adalah rancangan flowchart algoritma Sieve of Eratosthenes :


(42)

3.3 Rancangan Sistem

Berdasarkan hasil analisis yang telah dilakukan di atas, maka penulis mendapatkan beberapa kesimpulan sebagai berikut :

1. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang efektif, maka selama itu pula keamanan algoritma RSA tetap terjamin.

2. Besaran-besaran yang digunakan pada algoritma RSA:

1. p dan q bilangan prima (rahasia)

2. r = pq (tidak rahasia)

3. φ(r) = (p – 1)(q – 1) (rahasia) 4. PK (kunci enkripsi) (tidak rahasia) 5. SK (kunci dekripsi) (rahasia)

6. X (plainteks) (rahasia)

7. Y (cipherteks) (tidak rahasia)

3. Algoritma RSA didasarkan pada teorema Euler (lihat bahan kuliah Teori Bilangan Bulat) yang menyatakan bahwa:

i. aφ(r)≡ 1 (mod r) (1)

yang dalam hal ini, a harus relatif prima terhadap r

φ(r) = r(1 – 1/p1)(1 – 1/p2) … (1 – 1/pn) yang dalam hal ini p1, p2, …, pn adalah faktor prima dari r.

4. φ(r) adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3, …, r yang relatif prima terhadap r.


(43)

5. Berdasarkan sifat ambm (mod r) untuk m bilangan bulat ≥ 1, maka persamaan (1) dapat ditulis menjadi

a mφ(r)≡ 1m (mod r) atau

amφ(r)≡ 1 (mod r) (2)

6. Bila a diganti dengan X, maka persamaan (2) menjadi

Xmφ(r)≡ 1 (mod r) (3)

7. Berdasarkan sifat acbc (mod r), maka bila persamaan (3) dikali dengan X

menjadi:

Xmφ(r) + 1≡X (mod r) (4)

yang dalam hal ini X relatif prima terhadap r.

8. Misalkan SK dan PK dipilih sedemikian sehingga

SKPK≡ 1 (mod φ(r)) (5)

atau

SKPK = mφ(r) + 1 (6)

9. Sulihkan (6) ke dalam persamaan (4) menjadi:


(44)

10.Persamaan (7) dapat ditulis kembali menjadi

(X PK)SKX (mod r) (8)

yang artinya, perpangkatan X dengan PK diikuti dengan perpangkatan dengan

SK menghasilkan kembali X semula.

11.Berdasarkan persamaan (8), maka enkripsi dan dekripsi dirumuskan sebagai berikut:

EPK(X) = YXPK mod r (9)

DSK(Y) = XYSK mod r (10)

12.Karena SKPK = PKSK, maka enkripsi diikuti dengan dekripsi ekivalen dengan dekripsi diikuti enkripsi:

ESK(DSK(X)) = DSK(EPK(X)) ≡XPK mod r (11)

Oleh karena XPK mod r ≡ (X + mr)PK mod r untuk sembarang bilangan bulat m, maka tiap plainteks X, X + r, X + 2r, …, menghasilkan cipherteks yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar transformasinya satu-ke-satu, maka X harus dibatasi dalam himpunan {0, 1, 2, …, r – 1} sehingga enkripsi dan dekripsi tetap benar seperti pada persamaan (9) dan (10).

3.4 Prosedur Membuat Pasangan Kunci

1. Pilih dua buah bilangan prima sembarang, p dan q.

2. Hitung r = pq. Sebaiknya pq, sebab jika p = q maka r = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari r.


(45)

3. Hitung φ(r) = (p – 1) (q – 1).

4. Pilih kunci publik, PK, yang relatif prima terhadap φ(r).

5. Bangkitkan kunci rahasia dengan menggunakan persamaan (5), yaitu SKPK≡ 1 (mod φ(r)).

Perhatikan bahwa SKPK ≡ 1 (mod φ(r)) ekivalen dengan SKPK = 1 + mφ(r), sehingga SK dapat dihitung dengan

PK r m

SK =1+ φ( ) (12)

Akan terdapat bilangan bulat m yang menyebabkan memberikan bilangan bulat SK. Catatan

Contoh 1. Misalkan p = 47 dan q = 71 (keduanya prima). Selanjutnya, hitung nilai : PK dan SK dapat dipertukarkan urutan pembangkitannya. Jika langkah 4 diganti dengan “Pilih kunci rahasia, SK, yang …”, maka pada langkah 5 kita menghitung kunci publik dengan rumus yang sama.

r = pq = 3337 dan

φ(r)= (p – 1)(q – 1) = 3220.

Pilih kunci publik SK = 79, karena 79 relatif prima dengan 3220. PK dan r dapat dipublikasikan ke umum.

Selanjutnya akan dihitung kunci dekripsi SK seperti yang dituliskan pada langkah instruksi 5 dengan menggunakan persamaan (11),

79 ) 3220 (

1+ ×

= m

SK

Dengan mencoba nilai-nilai m = 1, 2, 3, …, diperoleh nilai SK yang bulat adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan.


(46)

3.5Enkripsi

Plainteks disusun menjadi blok-blok x1, x2, …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai r – 1. Setiap blok xi dienkripsi menjadi blok yi dengan rumus.

yi = xi PK mod r

3.6 Dekripsi

Setiap blok cipherteks yididekripsi kembali menjadi blok xi dengan rumus

xi = yiSK mod r

Contoh 2. Misalkan plainteks yang akan dienkripsikan adalah

X = HARI INI

atau dalam sistem desimal (pengkodean ASCII) adalah

7265827332737873

Pecah X menjadi blok yang lebih kecil, misalnya X dipecah menjadi enam blok yang berukuran 3 digit:

x1 = 726 x4 = 273

x2 = 582 x5 = 787

x3 = 733 x6 = 003

Nilai-nilai xi ini masih terletak di dalam rentang 0 sampai 3337 – 1 (agar transformasi menjadi satu-ke-satu).


(47)

Blok-blok plainteks dienkripsikan sebagai berikut:

72679 mod 3337 = 215 = y1 58279 mod 3337 = 776 = y2 73379 mod 3337 = 1743 = y3 27379 mod 3337 = 933 = y4 78779 mod 3337 = 1731 = y5 00379 mod 3337 = 158 = y6

Jadi, cipherteks yang dihasilkan adalah

Y = 215 776 1743 933 1731 158.

Dekripsi dilakukan dengan menggunakan kunci rahasia

SK = 1019

Blok-blok cipherteks didekripsikan sebagai berikut:

2151019 mod 3337 = 726 = x1 7761019 mod 3337 = 582 = x2 17431019 mod 3337 = 733 = x3 …

Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula

P = 7265827332737873

yang dalam karakter ASCII adalah


(48)

3.7Kekuatan dan Keamanan RSA

1. Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini r = p×q.

2. Sekali r berhasil difaktorkan menjadi p dan q, maka φ(r) = (p – 1) (q – 1) dapat dihitung. Selanjutnya, karena kunci enkrispi PK diumumkan (tidak rahasia), maka kunci dekripsi SK dapat dihitung dari persamaan PKSK≡ 1 (mod φ(r)).

3. Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan demikian hasil kali r = p×q akan berukuran lebih dari 200 digit. Menurut Rivest dan kawan-kawan, uasaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).

4. Untunglah algoritma yang paling efektif untuk memfaktorkan bilangan yang besar belum ditemukan. Inilah yang membuat algoritma RSA tetap dipakai hingga saat ini. Selagi belum ditemukan algoritma yang efektif untuk memfaktorkan bilangan bulat menjadi faktor primanya, maka algoritma RSA tetap direkomendasikan untuk menyandikan pesan.


(49)

(50)

(51)

(52)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Implementasi dan pengujian system adalah tahapan berikutnya yang dilakukan setelah melakukan tahapan analisis dan perancangan sistem. Hasil analisis dan perancangan sistem yang telah diuraikan pada bab sebelumnya akan menjadi dasar pembuatan perangkat lunak yang diberi nama “Implementasi Metode The Sieve of Eratosthenes Untuk Membangkitkan Bilangan Prima”. Sebagaimana telah diuraikan pada bab-bab sebelumnya, perangkat lunak ini akan memiliki kemampuan untuk melakukan enkripsi dan dekripsi file teks (.txt) dengan gabungan dua metode, yaitu algoritma rsa dan Eratosthenes.

Berikut adalah petunjuk instalasi aplikasi, dengan menggunakan xampp-win32-1.7.7-vc9 sebagai aplikasi pendukung untuk menjalankan aplikasi ini.

1. pastikan xampp sudah ada/diinstal di laptop.

2. kemudian, jalankan windows explorer, masuk ke c:\xampp\htdocs

3. buat folder baru, misal "rsa", lalu copy-kan file-file aplikasi ke dalam folder rsa 4. check xampp control panel, pastikan service apache dan mysql sdh “running”, jalankan browser, ketik http://localhost/phpmyadmin.

5. create database baru dgn nama "rsa", klik menu import, lalu browse file rsa.sql di folder c:\xampp\htdocs\rsa, klik tombol go.


(53)

Gambar 4.1 Proses Import File rsa.sql Ke Dalam Database RSA

6. masih pada browser, buka tab baru (ctrl+t), ketik http://localhost/rsa

4.1.1 Tampilan Aplikasi

Gambar 4.2 adalah tampilan form utama dari perangkat lunak yang dihasilkan.

Form ini berisikan text box dan button sebagai interaksi kepada pengguna berupa masukan.


(54)

Gambar 4.3 Tampilan Setelah Memasukkan Bilangan Prima


(55)

(56)

BAB 5

PENUTUP

5.1Kesimpulan

Dari penulisan skripsi ini terdapat beberapa kesimpulan oleh penulis, yaitu sebagai berikut:

1. Algoritma RSA adalah algoritma kunci publik yang paling terkenal dan paling banyak aplikasinya.

2. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor – faktor prima

3. Rancangan pembangkitan kunci yang merupakan kombinasi antara algoritma RSA dengan Bilangan PRIMA metode Eratosthenes memiliki keamanan yang ganda, yaitu pada sulitnya memfaktorkan bilangan yang besar menjadi faktor – faktor prima dan juga sulitnya menghitung logaritma diskrit.

4. Kunci yang seharusnya digunakan pada algoritma RSA yang digunakan seharusnya memiliki panjang 1024 bit atau sama dengan 128 digit. Sedangkan pada skripsi ini hanya maksimal 5 digit. Jasi bisa disimpulkan hasil daripada skripsi ini bisa dikatakan belum aman.


(57)

5.2 Saran

Berikut adalah saran-saran untuk pengembangan lebih lanjut terhadap penelitian skripsi ini:

1. Untuk meningkatkan pemahaman pengguna tentang metoe erathostenes disarankan untuk menampilkan simulasi setiap proses yang terjadi pada saat enkripsi dan dekripsi.

2. Perlu dilakukan analisis terhadap penggunaan metode erathostenes pada algoritma RSA yang menjelaskan efektifitas dan efisiensi algoritma.

3. Untuk penelitian lebih lanjut, dapat digunakan data yang berbeda seperti gambar atau audio sebagai bahan uji algoritma.

4. Untuk pengembangan skripsi ini selanjutnya diharapkan menggunakan kunci yang memiliki bit yang lebih panjang agar memiliki hasil keamanan yang baik.


(58)

DAFTAR PUSTAKA

A Menezes, and. 1996. Handbook of Applied Cryptography. CRC Press.

Andrew S. Tanenbaum. 1997. Computer Network 3e. Alih bahasa Ir. Gurnita Priatna. Simon & Schuster Pte. Ltd. Jilid kedua.

Arrianto Mukti Wibowo, 1 9 9 8 , Mengenal Tanda Tangan & Sertifikat Digital, Majalah Info Komputer.

Bernard Sklar. 1998. Digital Communication, Fundamental and Application. USA: PTR Prentice Hall.

Bruce Schneier. 1996. Applied Cryptography. Canada: John Wiley & Sons, Inc. Second Edition.

Elang Ilik Martawijaya dan Anton Reinhard Pardede, 1995, Keamanan Data 2, Jakarta, PT. Elex Media Komputindo.

Gertrude Ehrlich. 1991. Fundamental Concept of Abstract Algebra. PWS-Kent Publishing Company.

Jimmie Gilbert, and. 1989. Element of Modern Algebra. The Pridel, Weber & Schmidt Press, Third Edition.

Jiri Adamek. 1991. Foundations of Coding. Canada: John Wiley & Sons, Inc.

Larry J. Gerstein. 1996. Introduction to Mathematical Structures and Proofs. Springer-Verlag New York, Inc.

Michael o Albertson, and. 1998. Discrete Mathematic with algorithm. Canada: john Wiley & Sons, Inc.

Mukodim, Didin, 2002, Tinjauan Tentang Enkripsi Dan Dekripsi, Suatu Teknik Pengamanan Data Dengan Penyandian RSA, Makalah, Jakarta. Universitas Gunadarma.

Munir, Rinaldi. 2006. Kriptografi. Cetakan Pertama. Bandung : Informatika Bandung Richard Johsonbaugh. 1998. Discrete Mathematict. Alih bahasa Drs. Didiek Djunaedi.

USA: Prentice Hall, Inc. Edisi keempat. Jilid kesatu. Rosen, Kenneth H. 2007. Discrete Mathematics

Ross A. Beaumont, and 1963. The Algebraic Foundations of Mathematics, Addison-Wesley Publishing Company, Inc.


(59)

Rasyid, Moh. Iqbal, 1999, Tinjauan Mengenai Kepopuleran Teknik Penyandian RSA, Skripsi, Depok : Universitas Gunadarma.

Rizal Akbar, 1997, Pengamanan Data dengan Enkripsi, Lab. Reliability & Security QRS, Artikel Internet.


(1)

Gambar 4.3 Tampilan Setelah Memasukkan Bilangan Prima

Gambar 4.4 Tampilan Form Input Teks


(2)

(3)

BAB 5

PENUTUP

5.1Kesimpulan

Dari penulisan skripsi ini terdapat beberapa kesimpulan oleh penulis, yaitu sebagai berikut:

1. Algoritma RSA adalah algoritma kunci publik yang paling terkenal dan paling banyak aplikasinya.

2. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor – faktor prima

3. Rancangan pembangkitan kunci yang merupakan kombinasi antara algoritma RSA dengan Bilangan PRIMA metode Eratosthenes memiliki keamanan yang ganda, yaitu pada sulitnya memfaktorkan bilangan yang besar menjadi faktor – faktor prima dan juga sulitnya menghitung logaritma diskrit.

4. Kunci yang seharusnya digunakan pada algoritma RSA yang digunakan seharusnya memiliki panjang 1024 bit atau sama dengan 128 digit. Sedangkan pada skripsi ini hanya maksimal 5 digit. Jasi bisa disimpulkan hasil daripada skripsi ini bisa dikatakan belum aman.


(4)

5.2 Saran

Berikut adalah saran-saran untuk pengembangan lebih lanjut terhadap penelitian skripsi ini:

1. Untuk meningkatkan pemahaman pengguna tentang metoe erathostenes disarankan untuk menampilkan simulasi setiap proses yang terjadi pada saat enkripsi dan dekripsi.

2. Perlu dilakukan analisis terhadap penggunaan metode erathostenes pada algoritma RSA yang menjelaskan efektifitas dan efisiensi algoritma.

3. Untuk penelitian lebih lanjut, dapat digunakan data yang berbeda seperti gambar atau audio sebagai bahan uji algoritma.

4. Untuk pengembangan skripsi ini selanjutnya diharapkan menggunakan kunci yang memiliki bit yang lebih panjang agar memiliki hasil keamanan yang baik.


(5)

DAFTAR PUSTAKA

A Menezes, and. 1996. Handbook of Applied Cryptography. CRC Press.

Andrew S. Tanenbaum. 1997. Computer Network 3e. Alih bahasa Ir. Gurnita Priatna. Simon & Schuster Pte. Ltd. Jilid kedua.

Arrianto Mukti Wibowo, 1 9 9 8 , Mengenal Tanda Tangan & Sertifikat Digital, Majalah Info Komputer.

Bernard Sklar. 1998. Digital Communication, Fundamental and Application. USA: PTR Prentice Hall.

Bruce Schneier. 1996. Applied Cryptography. Canada: John Wiley & Sons, Inc. Second Edition.

Elang Ilik Martawijaya dan Anton Reinhard Pardede, 1995, Keamanan Data 2, Jakarta, PT. Elex Media Komputindo.

Gertrude Ehrlich. 1991. Fundamental Concept of Abstract Algebra. PWS-Kent Publishing Company.

Jimmie Gilbert, and. 1989. Element of Modern Algebra. The Pridel, Weber & Schmidt Press, Third Edition.

Jiri Adamek. 1991. Foundations of Coding. Canada: John Wiley & Sons, Inc.

Larry J. Gerstein. 1996. Introduction to Mathematical Structures and Proofs. Springer-Verlag New York, Inc.

Michael o Albertson, and. 1998. Discrete Mathematic with algorithm. Canada: john Wiley & Sons, Inc.

Mukodim, Didin, 2002, Tinjauan Tentang Enkripsi Dan Dekripsi, Suatu Teknik Pengamanan Data Dengan Penyandian RSA, Makalah, Jakarta. Universitas Gunadarma.

Munir, Rinaldi. 2006. Kriptografi. Cetakan Pertama. Bandung : Informatika Bandung Richard Johsonbaugh. 1998. Discrete Mathematict. Alih bahasa Drs. Didiek Djunaedi.

USA: Prentice Hall, Inc. Edisi keempat. Jilid kesatu. Rosen, Kenneth H. 2007. Discrete Mathematics

Ross A. Beaumont, and 1963. The Algebraic Foundations of Mathematics, Addison-Wesley Publishing Company, Inc.


(6)

Rasyid, Moh. Iqbal, 1999, Tinjauan Mengenai Kepopuleran Teknik Penyandian RSA, Skripsi, Depok : Universitas Gunadarma.

Rizal Akbar, 1997, Pengamanan Data dengan Enkripsi, Lab. Reliability & Security QRS, Artikel Internet.