ALGORITMA THE SIEVE OF ERATOSTHENES DAN
LINEAR CONGRUENTIAL GENERATOR ( LCG )
DALAM PERANCANGAN APLIKASI
KRIPTOGRAFI RSA
TESIS
Oleh
M FAKHRIZA
097038035/TINF
PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
ALGORITMA THE SIEVE OF ERATOSTHENES DAN
LINEAR CONGRUENTIAL GENERATOR ( LCG )
DALAM PERANCANGAN APLIKASI
KRIPTOGRAFI RSA
TESIS
Diajukan sebagai salah satu syarat untuk memperoleh gelar
Magister Komputer dalam Program Studi Magister
Teknik Informatika pada Program Pascasarjana
Fasilkom -TI Universitas Sumatera Utara
Oleh
M FAKHRIZA
097038035/TINF
PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PENGESAHAN TESIS
Judul Tesis
:
ALGORITMA THE SIEVE OFERATOSTHENES DAN LINEAR
CONGRUENTIAL GENERATOR ( LCG )
DALAM PERANCANGAN APLIKASI
KRIPTOGRAFI RSA
Nama Mahasiswa
: M Fakhriza
NIM
: 097038035
Program Studi
: Magister Teknik Informatika
Fakultas
: Ilmu Komputer dan Teknologi Informasi
Menyetujui Komisi Pembimbing
M.Andri Budiman,ST, M.Comp.Sc, MEM
Ketua Program Studi
Prof. Dr. Muhammad Zarlis
Anggota Ketua
Dekan
Prof. Dr. Muhammad Zarlis NIP : 195707011986011003
PERNYATAAN ORISINALITAS
ALGORITMA THE SIEVE OF ERATOSTHENES DAN
LINEAR CONGRUENTIAL GENERATOR ( LCG )
DALAM PERANCANGAN APLIKASI
KRIPTOGRAFI RSA
TESIS
Dengan ini saya nyatakan bahwa saya mengakui semua karya tesis ini adalah hasil kerja saya sendiri kecuali kutipan dan ringkasan yang tiap bagiannya telah di jelaskan sumbernya dengan benar.
Medan, 22 Februari 2012
PERNYATAAN PERSETUJUAN PUBLIKASI
KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Sebagai civitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini:
Nama : M FAKHRIZA Nim : 097038035
Program Studi : Magister ( S2) Teknik Informatika Jenis Karya Ilmiah : TESIS
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalty free Right) atas Tesis saya yang berjudul:
ALGORITMA THE SIEVE OF ERATOSTHENES DAN
LINEAR CONGRUENTIAL GENERATOR ( LCG ) DALAM
PERANCANGAN APLIKASI KRIPTOGRAFI RSA
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat dan mempublikasikan Tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan atau sebagai pemilik hak cipta.
Demikian pernyataan ini dibuat dengan sebenarnya.
Medan, 22 Februari 2012
Telah diuji pada Tanggal : 24 Januari 2012
PANITIA PENGUJI TESIS
Pembimbing Utama : Prof. Dr. Muhammad Zarlis
Pembimbing Anggota : M. Andri Budiman, ST,M.Comp.Sc,MEM
Ketua Penguji : Prof. Dr. Herman Mawengkang
Anggota Penguji : Dr. Erna Budhiarti Nababan
Anggota Penguji : Ade Candra, ST, M.Kom
RIWAYAT HIDUP
DATA PRIBADI
Nama lengkap berikut gelar : M Fakhriza
Tempat dan Tanggal Lahir : Medan 12 Februari 1985 Alamat Rumah : Jl Seto, No. 92 Medan Telepon / HP : 085296550077
Email : bk1211za@ymail.com
DATA PENDIDIKAN
SD : SD Mamiyai Medan Tamat : 1997 SMP : Pesantren Modern Nurul Hakim Tembung Tamat : 2000 SMU : SMU Swasta Harapan Medan Tamat : 2003 Strata-1 : Universitas Islam Sumatera Utara Tamat : 2009
KATA PENGANTAR
Bismillahhirahmanirahim. Dengan menyebut Nama Allah yang Maha Pengasih dan Penyayang,. Serta rahmat dan hidayah-NYA, Alhamdulillahi rabbil ‘alamin, puji dan syukur atas segala yang telah diberikan Allah SWT kepada penulis melalui Ridha dan Karunia-Nya sehingga tesis ini dapat diselesaikan, dengan judul “Algoritma The Sieve Of Eratosthenes Dan Linear Congruential Generator (LCG) Dalam Perancangan Aplikasi Kriptografi RSA”.
Tesis merupakan salah satu syarat yang harus dipenuhi oleh setiap mahasiswa untuk mendapat gelar Magister Komputer pada Program Studi Teknik Informatika Sekolah Pascasarjana Universitas Sumatera Utara Medan.
Pada kesempatan ini pula penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada berbagai pihak yang telah banyak membantu peneliti baik secara moril maupun material, langsung dan tidak langsung sehingga penulisan tesis ini selesai tepat pada waktunya. Untuk itu semua saya ingin mengucapkan terima kasih kepada :
1. Bapak Prof. Dr. H. Muhammad Zarlis, selaku Pembimbing utama, Ketua Program Studi Magister Teknik Informatika dan Dekan Fakultas Ilmu Komputer dan Teknologi Informasi.
2. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku sekretaris Program studi Magister Teknik Informatika dan pembimbing anggota.
3. Bapak Prof. Dr. Herman Mawengkang selaku ketua komisi pembanding. 4. Dr. Erna Budhiarti Nababan selaku anggota komisi pambanding.
5. Bapak Ade Candra, ST, M.Kom, selaku anggota komisi pembanding.
6. Kedua Orang Tua penulis ( Papa dan Mama ) yang selalu memberikan dukungan moril, materil serta do’a kepada penulis sampai saat ini. Isteri (maya) dan anak tercinta (Alief Sandro), Beserta adik Rika, Ima, Rozi dan Koko yang selalu menyayangi penulis.
8. Bapak Ir. Suhaimi Batubara beserta isteri selaku guru, dosen, dan orang tua yang telah memberikan banyak inspirasi serta dorongan moril kepada penulis. 9. Rekan-rekan sesama mahasiswa, terutama buat : Pak Kapten, Pak Udin, Pak
Husni, Pak Marlin, Pak Sayed, Pak Nurdin, Razi, Maries, Tessa dan lainnya. 10.Seluruh Pegawai administrasi Program Studi Magister Teknik Informatika
USU terutama buat : Bang Jawa, Citra, Bang ewin, widya dan lainnya. 11.Seluruh keluarga besar ADA FC dan sahabat-sahabat tercinta.
12.Semua pihak yang telah memberikan bantuan dalam penyelesaian tesis ini.
Penulis menyadari bahwa kemampuan dan pengalaman penulis masih sangat terbatas. Oleh karena itu, semoga kekurangan yang ada pada penulis dapat diperbaiki bersama dan berharap Tesis ini bermanfaat bagi semua pihak, Amin. Wabillahi taufik walhidayah Wassalamu’alaikum warahmatullahi wabarakatuh
Medan, 22 Februari 2012 Penulis,
ALGORITMA THE SIEVE OF ERATOSTHENES DAN LINEAR CONGRUENTIAL GENERATOR (LCG) DALAM PERANCANGAN
APLIKASI KRIPTOGRAFI RSA
ABSTRAK
Kriptografi adalah ilmu untuk menyamarkan pesan agar hanya dikenal baik oleh penyedia dan penerima pesan. Algoritma kunci publik RSA adalah salah satu metode dalam ilmu kriptografi. Dalam algoritma kunci publik RSA, ada kunci privat dan publik, di mana masing-masing kunci menggunakan bilangan acak yang merupakan bilangan prima untuk melakukan enkripsi dan dekripsi.Bilangan acak yang dihasilkan sebenarnya adalah bilangan pseudo-random ('hampir' acak). Linear Congruential Generator (LCG) algoritma yang digunakan untuk menghasilkan bilangan acak, dan The Sieve Of Eratosthenes diterapkan untuk menentukan apakah bilangan acak yang dihasilkan adalah bilangan prima.
THE SIEVE OF ERATOSTHENES ALGORITHM AND LINEAR
CONGRUENTIAL GENERATOR ( LCG ) IN THE DESIGN
OF RSA CRYPTOGRAPHY APPLICATIONS
ABSTRACT
Cryptography is a science for disguising message in order that it is only known by both the provider and the receiver of the message. RSA Public key algorithm is a method in the science of cryptography. In RSA public key algorithm, there are private and public keys, in which each of the keys uses random number which is a prime in order to do encryption and decryption. The random number generated is actually a pseudo-random numbers (‘almost’ random). Linear Congruential Generator ( LCG ) algorithm is used to generate random numbers, and the Sieve of Eratosthenes is applied to determine whether the random numbers generated are primes.
DAFTAR ISI
2.1.1. Kriptografi Kunci Simetris dan Asimetris ... 9
2.2. Algoritma RSA ... 12
2.3. Pembangkit Bilangan Prima ... 17
2.3.1. ALgoritma The Sieve Of Eratosthenes ... 17
2.4. Bilangan Acak ... 19
2.4.1. Pembangkit Bilangan Acak (Crytographically Pseudo- Random Number Generator ... 19
2.4.2. Algoritma Pembangkit Bilangan Acak Semu ... 20
2.5. Probabilistic Encryption ... 20
2.6. Pembangkit Bilangan Acak Linera Congruential Generator (LCG) ... 21
BAB III METODOLOGI PENELITIAN ... 25
3.1. Perumusan Algoritma Kunci Publik RSA ... 25
3.2.1. Enkripsi ... 27
3.2.2. Dekripsi ... 29
3.3. Membangkit Bilangan Acak Dengan Linear Congruential Generator ... 31
3.4.. Pengujian Bilangan Prima dengan The Sieve of Eratosthenes 38
BAB IV ANALISIS DAN PEMBAHASAN ... 41
4.1. Pendahuluan ... 41
4.2. Perancangan Program ... 41
BAB V KESIMPULAN DAN SARAN ... 47
5.1. Kesimpulan ... 47
5.2. Saran ... 47
DAFTAR PUSTAKA
DAFTAR TABEL
Tabel 2.1. Perbandingan Kecepatan Waktu Penghasilan Angka ... 22
Tabel 2.2. Contoh Bilangan Acak Yang Dihasilkan Dari Persamaan LCG... 23
Tabel 3.1. Konstanta Yang Bagus Untuk LCG ... 32
DAFTAR GAMBAR
Gambar 1.1. Proses Enkripsi dan Dekripsi Kunci Publik ... 2
Gambar 2.1. Contoh Confidentiality ... 6
Gambar 2.2. Contoh Data Integrity ... 7
Gambar 2.3. Contoh Authentication ... 7
Gambar 2.4. Contoh Non-repudiation ... 8
Gambar 2.5. Diagram Proses Enkripsi dan Dekripsi Algoritma Simetris ... 10
Gambar 2.6. Diagram Proses Enkripsi dan Dekripsi Algoritma Asimetris ... 11
Gambar 3.1. Main Flowchart ... 26
Gambar 3.2. Flowchart Proses Enkripsi ... 28
Gambar 3.3. Flowchart Proses Dekripsi ... 29
Gambar 3.4. Flowchart LCG ... 37
Gambar 3.5. Eksekusi Bilangan Kelipatan Dua ... 38
Gambar 3.6. Eksekusi Bilangan Kelipatan Tiga ... 39
Gambar 3.7. Eksekusi Bilangan Kelipatan Lima ... 3
Gambar 3.8. Eksekusi Bilangan Kelipatan Tujuh ... 40
Gambar 4.1. Tampilan Utama Program ... 41
Gambar 4.2. Input Teks ... 42
Gambar 4.3. Setelah Submit ... 43
Gambar 4.4. Setelah Submit Berkali-kali ... 44
Gambar 4.5. Simulasi 10 karakter ... 45
Gambar 4.4. Simulasi 10 karakter setelah submit ... 45
ALGORITMA THE SIEVE OF ERATOSTHENES DAN LINEAR CONGRUENTIAL GENERATOR (LCG) DALAM PERANCANGAN
APLIKASI KRIPTOGRAFI RSA
ABSTRAK
Kriptografi adalah ilmu untuk menyamarkan pesan agar hanya dikenal baik oleh penyedia dan penerima pesan. Algoritma kunci publik RSA adalah salah satu metode dalam ilmu kriptografi. Dalam algoritma kunci publik RSA, ada kunci privat dan publik, di mana masing-masing kunci menggunakan bilangan acak yang merupakan bilangan prima untuk melakukan enkripsi dan dekripsi.Bilangan acak yang dihasilkan sebenarnya adalah bilangan pseudo-random ('hampir' acak). Linear Congruential Generator (LCG) algoritma yang digunakan untuk menghasilkan bilangan acak, dan The Sieve Of Eratosthenes diterapkan untuk menentukan apakah bilangan acak yang dihasilkan adalah bilangan prima.
THE SIEVE OF ERATOSTHENES ALGORITHM AND LINEAR
CONGRUENTIAL GENERATOR ( LCG ) IN THE DESIGN
OF RSA CRYPTOGRAPHY APPLICATIONS
ABSTRACT
Cryptography is a science for disguising message in order that it is only known by both the provider and the receiver of the message. RSA Public key algorithm is a method in the science of cryptography. In RSA public key algorithm, there are private and public keys, in which each of the keys uses random number which is a prime in order to do encryption and decryption. The random number generated is actually a pseudo-random numbers (‘almost’ random). Linear Congruential Generator ( LCG ) algorithm is used to generate random numbers, and the Sieve of Eratosthenes is applied to determine whether the random numbers generated are primes.
BAB I
PENDAHULUAN
1.1.Latar Belakang Masalah
Perkembangan teknologi yang begitu pesat memungkinkan manusia dapat berkomunikasi dan saling bertukar informasi/data secara jarak jauh. Antar kota antar wilayah antar negara bahkan antar benua, bukan merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring dengan itu tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi yang saling dipertukarkan tersebut semakin meningkat. Begitu banyak pengguna seperti departemen pertahanan, suatu perusahaan atau bahkan individu-individu tidak ingin informasi yang disampaikannya diketahui oleh orang lain atau kompetitornya atau negara lain. Oleh karena itu dikembangkanlah cabang ilmu yang mempelajari tentang cara pengamanan data atau dikenal dengan istilah Kriptografi.
Dalampenelitian ini penulis tertarik untuk membahas tentang kriptografi kunci publik RSA serta bagaimana merancang aplikasinya. Sebagaimana yang telah dilakukan oleh Arifin, ( 2009 ) disimpulkan bahwa, RSA merupakan salah satu solusi yang baik untuk mengatasi masalah keamanan dan kerahasiaan data yang pada umumnya diterapkan dalam pengiriman dan penyimpanan data melalui media elektronik. Dan dianggap sebagai algoritma kriptografi yang paling aman saat ini. Hal ini dikarenakan belum ditemukannya algoritma yang mangkus (efisien) untuk memecahkan sistem keamanan yang diberikan oleh sistem RSA.
Dalam kriptografi kunci publik terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi adalah proses dimana informasi/data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal, prosesnya dapat dilihat pada gambar 1.1. Munir, ( 2006 )
Gambar 1.1 Proses Enkripsi dan Dekripsi Kunci Publik
Sebagaimana yang telah disimpulkan oleh Siang, ( 2002 ) bahwa semakin pesat perkembangan komputer, semakin terasalah pentingnya peranan bilangan prima. Bilangan prima yang dulunya dianggap sebagai sesuatu yang tidak memiliki manfaat, kini menjadi bagian yang tak terpisahkan dalam keamanan data. Kriptografi dewasa ini lebih dari sekedar enkripsi dan dekripsi. Tanda tangan digital (digital signature) mulai banyak dipakai untuk mencegah pemalsuan dokumen elektronik. Semuanya itu membutuhkan bilangan prima. Dalam hal ini penulis menggunakan algoritma The Sieve of Eratosthenes.
Pada hasil penelitian Oni, ( 2011 ) disimpulkan bahwa algoritma Linear Congruential Generators (LCG), algoritma Well Equidistributed Long-period Linear (WELL) dan SIMD-oriented Fast Mersenne Twister (SFMT) dapat digunakan untuk menghasilkan bilangan acak semu (pseudorandom). Dari segi kecepatan LCG membutuhkan waktu yang paling pendek dalam menghasilkan bilangan acak. Sedangkan dari sisi periode WELL mempunyai periode yang paling panjang hal ini membuat WELL mempunyai tingkat keamanan paling tinggi.
Meningkatnya tingkat keamanan akan berbanding terbalik dengan kecepatan. Sehingga bila diingiinkan keamanan yang lebih tinggi maka kecepatan akan berkurang dan bila menginginkan kecepatan yang tinggi maka keamanan akan berkurang. Karena mempunyai tingkat keamanan yang cukup tinggi dan kecepatan yang cukup cepat, memungkinkan Algoritma Well Equidistributed Long-period Linear (WELL) dan SIMD-oriented Fast Mersenne Twister (SFMT) untuk digunakan dalam berbagai algoritma untuk fungsi-fungsi kriptografi. Selain itu algoritma Algoritma Well Equidistributed Long-period Linear (WELL) dan SIMD-oriented Fast Mersenne Twister (SFMT) tergolong cryptographically secure pseudorandom generator (CSPRNG).
diprediksi urutan kemunculannya. Oleh karena itu penulis tertarik untuk menganalisa bagaimana cara mendapatkan bilangan yang cukup acak dengan LCG yang nantinya bilangan tersebut digunakan sebagai kunci dalam aplikasi RSA.
1.2. Perumusan Masalah
Berdasarkan uraian yang telah dijelaskan sebelumnya yang menjadi perumusan masalah adalah bagaimana mengamankan data dengan algoritma The Sieve Of Eratosthenes dan LCG pada RSA.
1.3. Batasan Masalah
Batasan masalah dalam penelitian ini adalah :
1. Tidak diteliti tentang serangan terhadap Kriptografi.
2. Tidak membandingkan dengan metode Kriptografi lain.
3. Tidak membandingkan dengan algoritma pembangkitan acak dan prima lain.
4. Hasil enkripsi tidak dikonversi kedalam ASCII (dalam bentuk angka – angka).
5. Pengambilan bilangan m berdasarkan hitungan detik keberapa saat transaksi.
6. Pengambilan bilangan acak b dibatasi 1 s/d 100.
7. Dalam simulasi program, jenis pesan yang digunakan dalam bentuk text yang dimasukkan secara manual.
1.4. Tujuan Penelitian
Tujuan penelitian ini adalah sebagai berikut :
1. Untuk mengamankan data atau pesan dengan kombinasi algoritma The Sieve of Eratosthenes dan Linear Congruential Generator (LCG) berbasis RSA, kedalam bentuk aplikasi komputer.
2. Memodifikasi variabel algoritma Linear Congruential Generator (LCG) sehingga bilangan yang dihasilkan cukup acak untuk RSA.
1.5. Manfaat Penelitian
Manfaat penelitian ini adalah sebagai berikut :
1. Mengetahui bahwa dalam algoritma kunci publik RSA dapat menggunakan metode Linear Congruential Generator (LCG) untuk membangkitkan bilagan acak dan The Sieve of Eratosthenes untuk membangkitkan bilangan prima.
BAB II
TINJAUAN PUSTAKA
2.1. Kriptografi
Kriptografi adalah ilmu yang mempelajari bagaimana membuat suatu pesan yang dikirim pengirim dapat disampaikan kepada penerima dengan aman Schneier, (1996).
Prinsip-prinsip yang mendasari kriptografi yakni:
• Confidentiality (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatualgoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami. Dapat dilihat pada gambar berikut :
Gambar 2.1 Contoh Confidentiality
• Data integrity (keutuhan data) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan)data yang tidak sah (oleh pihak lain). Dapat dilihat pada gambar berikut:
Gambar 2.2 Contoh Data Integrity Sumbe
• Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi. Dapat dilihat pada gambar berikut:
• Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya). Dapat dilihat pada gambar berikut:
Gambar 2.4 Contoh Non – repudiation Sumbe
Berbeda dengan kriptografi klasik yang menitikberatkan kekuatan pada kerahasiaan algoritma yang digunakan (yang artinya apabila algoritma yang digunakan telah diketahui maka pesan sudah jelas "bocor" dan dapat diketahui isinya oleh siapa saja yang mengetahui algoritma tersebut), kriptografi modern lebih menitikberatkan pada kerahasiaan kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.
Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :
• Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).
• Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.
• Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext, sehingga berupa data awal/asli.
• Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.
Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan , proses enkripsi mengubah plaintext menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti. Dapat dilihat pada gambar 1.1.
2.1.1. Kriptografi Kunci Simetris dan Asimetris
Selain berdasarkan sejarah yang membagi kritografi menjadi kriptografi klasik dan kriptografi modern, maka berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan lagi menjadi kriptografi Kunci-Simetris (Symmetric-key Cryptography) dan kriptografi Kunci-Asimetris (Asymmetric-key Cryptography).
a) Kriptografi Kunci-Simetris
Algoritma yang memakai kunci simetris diantaranya adalah :
1. Data Encryption Standard (DES) 2. RC2, RC4, RC5, RC6
3. International Data Encrytion Algorithm (IDEA) 4. Advanced Encryption Standard (AES)
5. One Time Pad (OTP) 6. Dan lain-lain
Berikut ilustrasi penggunaan algoritma simetris :
Kunci Dekripsi Kunci Dekripsi
Gambar 2.5 Diagram proses enkripsi dan dekripsi algoritma simetris
Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia (secret-key algorithm).
Kelebihan Algoritma Simetris:
• Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritmaasimetrik.
Kelemahan Algoritma Simetris :
• Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.
• Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”
b) Kriptografi Kunci-Asimetris
Kriptografi asimetris juga disebut dengan kriptografi kunci-publik.Dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsi adalah berbeda. Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci yaitu:
1. Kunci umum (public key) : yaitu kunci yang boleh semua orang tahu. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan.
2. Kunci rahasia (private key) : yaitu kunci yang dirahasiakan atau diketahui oleh satu orang saja. Hanya penerima pesan yang dapat mendekripsi pesan, karena hanya ia yang mengetahui kunci privatenya sendiri
Kunci-kunci tersebut berhubungan satu sama lain. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci private yang digunakan. Contoh algoritma kriptografi kunci-publik diantaranya RSA, Elgamal, DSA dll. Berikut ilustrasi penggunaan algoritma Asimetris :
Kunci Dekripsi ( K1 )
( Tidak Rahasia )
Kunci Dekripsi ( K2 )
( Rahasia )
Kelebihan Algoritma Asimetris:
• Masalah keamanan pada distribusi kunci dapat lebih baik
• Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit
Kelemahan Algoritma Asimetris:
• Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris • Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang
dibandingkan dengan algoritma simetris.
Kriptografi kunci-publik mempunyai kontribusi yang luar biasa dibandingkan
dengan sistem kriptografi simetri.Kontribusi yang paling penting adalah tandatangan
digital pada pesan untuk memberikan aspek keamanan otentikasi, integritas data, dan
nir-penyangkalan.Tandatangan digital adalah nilai kriptografis yang bergantung pada
isi pesan dan kunci yang digunakan.Pengirim pesan mengenkripsi pesan (yang sudah
diringkas) dengan kunci private nya, kemudian hasil enkripsi inilah yang dinamakan
tandatangan digital.Tandatangan digital dilekatkan pada pesan asli.Penerima pesan
memverifikasi tandatangan digital dengan menggunakan kunci publik.Kristanto,
(2003)
2.2. Algoritma RSA
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 (Massachusetts Institute of Technology) pada tahun 1976, yaitu: Ron
Algoritma RSA memiliki besaran-besaran sebagai berikut: 1. p dan q, bilangan prima (rahasia)
2. n = p . q (tidak rahasia) 3. Φ(n) = (p-1)(q-1) (rahasia) 4. e (kunci enkripsi ) (tidak rahasia) 5. d (kunci dekripsi) (rahasia) 6. m (plainteks) (rahasia) 7. c (cipherteks) (tidak rahasia)
Fungsi totientΦ(n), Juga disebut fungsi totient Euler, didefinisikan sebagai
jumlah nyang
mengandung faktor kesamaan dengan) n, Di mana 1 dihitung sebagai untuk semua nomor. Karena jumlah kurang dari atau sama dengan da
Φ(n)bisa
dengan sederhana didefinisikan sebagai jumlan. Misalnya, ada
delapaΦ(24) = 8.
Ada metode lain untuk menghitung invers modulo n, tapi mungkin tidak selalu bisa digunakan.Set mengurangi residu mod n adalah subset dari set lengkap residu yang relatifprima dengan n. Sebagaicontoh,himpunan mengurangi residu mod 12 adalah {1, 5, 7, 11}. Jika n adalah bilangan prima, maka dikurangi set residu mod n adalah himpunan semua bilangan dari 1 sampai n-1. 0 (nol)bukan bagian dari set pengurangan residu untuk setiap n tidak sama dengan 1.
Fungsi Euler totient, juga disebut fungsi Euler phi dan ditulis sebagaiΦ(n), adalahjumlahelemen dalam set mengurangi residu modulo n. Dengan kata lain,Φ(n)adalahjumlahpositifkurang dari n yang relatif prima terhadap n (untuk nlebihbesardari1)bilanganbulat.(LeonhardEuler, menyebutkan "kapal tangki," adalah seorang ahli matematika Swiss yang hidup pada 1707-1783). Mollin, (2002).
dalam beberapa algoritma kunci publik.Menurut generalisasi dari teorema Euler (2.2)Misalnya, apa kebalikan 5, modulo 7? jika 7 adalah bilangan prima, Φ(7) = 7
–1= 6. Jadi, kebalikan 5, modulo 7, adalah :
56-1 mod 7 = 55 mod 7 = 3 ..………..
(2.3)Kedua metode untuk menghitung invers dapat diperpanjang untuk
menyelesaikan x dalam masalah umum (jika FPB(a, n) = 1)Schneier, ( 1996 ) : (a*x) mod n = b………(2.4) Menggunakan generalisasi Euler, Schneier, ( 1996 ) :
x = (b * aΦ(n) -1)) mod n ………(2.5) Menggunakan algoritma Euclid, Schneier, ( 1996 ) :
x= (b * (a-1 mod n)) mod n ………(2.6)
Secara umum, algoritma Euclid 'slebih cepat darigeneralisasiEuleruntukmenghitunginvers, terutamauntuk digitdi
kisaran500-bit. JikaFPB (a, n)≠ 1, semua tidak hilang. secara umum,(a* x) mod n =b, dapat memiliki beberapa solusiatautidak.
1. Pilih 2 buah bilangan prima p dan q.Untuk tujuan keamanan, bilanganinteger p dan q dipilihsecara random, dan harus memiliki panjang bityang sama. Biasanya panjang bit yang dipilih untukbilangan p dan q ukurannya besar, agar kunci semakinaman.
Schneier, ( 1996 ) Proses pembangkitan kunci RSA adalah sebagaiberikut:
3. Hitung Φ(n)= (p – 1)(q – 1), dimana Φ adalah fungsitotient Euler.
4. Pilih bilangan integer e, dimana 1 <e <Φ(n), fpb(e,Φ(n) )= 1, e dan Φ(n)adalah coprime (e relatif primaterhadap Φ(n) ).Bilangan e adalah bilangan yang menjadikunci publik.
5. Hitung kunci dekripsi d, dengan persamaanMollin, ( 2007 ) : ed= 1 (mod Φ(n)) atau d = e-1
- Kunci publik adalah pasangan (e, n)
mod (Φ(n) )…………..( 2.7
)Dari perhitungan di atas didapatkan kunci publik dankunci privat:
- Kunci privat adalah pasangan (d, n)
Proses enkripsi dan dekripsi algoritma RSA:
1. Nyatakan pesan menjadi blok-blok plainteks m1, m2, m3, ..., mn, dengan
syarat 0 <mi
2. Hitung blok chiperteks c < n-1.
iuntuk blok plainteks pi c
4. encode pesan ke ASCII
misalkanplaintext yang dikirim adalah “ POT“ plainchar (1) = “P” → P1 = 80………. (P1)
plainchar (2) = “O” → P2 = 79………. (P2)
plainchar (3) = “T” → P3 = 84……….(P3
5. Enkripsi pesan dengan rumus (Mollin, 2007): )
c = pe (mod n)
8017 mod 65 =45 ……….(C1)
79 17 mod65 = 14 ……….(C2)
8417 mod65 = 54 ……….(C3
6. Hitunglah kunci privat d, dengan rumus berikut (Mollin, 2007): )
d = e
1 + k modΦ(n)
Untuk mencari nilai k Dapat dicari dengan menggunakan Microsoft Excel. Dengan syarat k dan d adalah bilangan bulat positif. Menghasilkand = 113.
Kunci Privat adalah ( n = 65, d = 113 ) 7. Deskripsikan pesan terenkripsi dengan rumus :
P = cd (mod n)
Penemu algoritma RSA menyarankan untuk nilai p dan q agar panjangnya lebih dari 100 digit. Dengan demikian hasil kali dari n = p x q akan berukuran lebih dari 200 digit. Maka waktu yang dibutuhkan untuk mencari faktor prima dari bilangan 200 digit adalah selama 4 milayar tahun, sedangkan untuk bilangan 500
Secara umum dapat disimpulkan bahwa RSA hanya aman jika n cukup besar. Jika panjang n hanya 256 bit atau kurang, maka ia dapat difaktorkan dalam beberapa jam saja dengan sebuah komputer PC dan program yang tersedia secara bebas.
Jika sebuah bilangan prima acak yang memiliki nilai kecil bukanlah sebuah masalah untuk membentuk sebuah kunci, akan tetapi menentukan sebuah bilangan yang sudah terlalu besar prima atau tidak, maka perlu dilakukan pengujian berulang-ulang kali (sebanyak t kali). Maka untuk melakukan pengujian tersebut, penulis mencoba menggunakan pengujian bilangan prima menggunakan algoritma The Sieve of Eratosthenes.
2.3. Pembangkit Bilangan Prima
Ada berbagai metode yang dapat digunakan untuk menghasilkan sebuah bilangan prima.Untuk menghasilkan bilangan prima yang besar dengan menggunakan ruang memori dan waktu.
Secara umum pembangkitan bilangan prima dapat dikelompokkan menjadi dua, yaitu dengan membangkitkan bilangan prima dari bilangan prima terkecil dengan pengujian yang menghasilkan 100% bilangan prima atau dengan membangkitkan bilangan acak dan menguji kemungkinan bilangan tersebut prima.
2.3.1 Algoritma The Sieve of Eratosthenes
Eratosthenes (276-194 S.M) adalah seorang petugas perpustakaanketiga dari perpustakaan terkenal di Alexandria dan adalahseorang sarjana yang sangat hebat. Eratosthenes dikenangdengan pengukurannya terhadap keliling dari dari bumi,memperkirakan jarak antara bumi dengan matahari dan bulan,dalam matematika, untuk penemuan dari sebuah algoritmauntuk mencari bilangan-bilangan prima, yang dikenal sebagaiAlgoritma Sieve of Eratosthenes.
yaitu 2,adalah bilangan prima pertama. Coret seluruh kelipatan daribilangan prima ini. Ulangi pada integer selanjutnya yang belumdicoret.
Sebagai contoh, berikut adalah 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 2526 27
Karena 2 belum dicoret, maka 2 adalah bilangan pertama.Coret seluruh kelipatan 2, yaitu 4, 6, 8, 10, 12,dst.
23 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2526 27
Integer selanjutnya yang belum dicoret adalah 3, maka 3adalah prima dan coret seluruh kelipatan 3, seperti 6, 9. 12,dst.
2 34 5 6 7 8910 11 12 13 141516 17 18 19 202122 23 24 252627
5 adalah bilangan prima selanjutnya dan coretseluruh kelipatan 5. Satu-satunya bilangan yang dicoret dalamrangeini adalah 25.
2 34567891011121314151617181920212223
2.4. Bilangan Acak
24252627
Maka bilangan prima setelah 2,3 dan 5 yaitu7, 11, 13, 17, 19, dan 23.
Metode Sieve of Eratosthenes sangat cepat, sehingga tidak ada alasan untuk menyimpan daftar bilangan prima yangbesar pada komputer, karena implementasi yang efisien darialgoritma ini dapat mendapatkan bilangan-bilangan tersebutlebih cepat daripada komputer harus membacanya dari mediapenyimpanan. Pada faktanya permasalahan dengan algoritmaseperti yang disajikan di atas tidaklah selalu tentang kecepatan,tetapi lebih ke penggunaan tempat.Mollin, ( 2007 )
(Cryptographically-secure Pseudo-Random Number Generator = CPRNG) mempunyai beberapa bagian yang dapat diprediksi dan berhubungan.
Kebanyakan CPRNG mengulang string yang sama setelah melakukan n putaran. Sedangkan ada beberapa CPRNG lainnya menghasilkan nilai acak dengan berfokus pada suatu area tertentu dan mendistribusikannya secara seragam.
2.4.1. Pembangkit Bilangan Acak (Cryptographically-secure Pseudo-Random
Number Generator)
Cryptographically-secure Pseudo-Random Number Generator (CPRNG) adalah suatu peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai yang tidak dapat ditebak polanya dengan mudah, sehingga urutan nilai tersebut dapat dianggap sebagai suatu keadaan acak (random).
CPRNG ini tidak dapat diterapkan dalam prakteknya.Bilangan acak yang dihasilkan oleh komputer sekalipun tidak benar-benar acak dan kebanyakan bilangan acak yang diterapkan dalam kriptografi juga tidak benar-benar acak, tetapi hanya berupa acak semu.Ini berarti bahwa bilangan acak yang dihasilkan itu dapat ditebak susunan atau urutan nilainya.Dalam kriptografi, bilangan acak sering dibangkitkan dengan menggunakan pembangkit bilangan acak semu (Cryptographically-secure Pseudo-Random Number Generator).
2.4.2. Algoritma Pembangkit Bilangan Acak Semu
Semua deretan bilangan acak yang dibangkitkan dari rumus matematika, serumit apapun, dianggap sebagai deret acak semu, karena dapat diulang pembangkitannya Sementara itu, banyak produk software yang dinyatakan
sebagai produk yang aman karena menggunakan bilangan acak semacam OTP (One Time Programmable). Namun karena OTP ini dibangkitkan dari bilangan acak semu, maka keamanan yang diperoleh juga semu.
Pembangkit bilangan acak yang sering diimplementasikan adalah Linier Congruential Generator (LCG) dan Linear Feedback Shift Register (LFSR). Beberapa algoritma lainnya yang dapat digunakan untuk membangkitkan deretan bilangan acak semu selain Linier Congruential Generator (LCG) adalah sebagai berikut :
1. Non Linear Feedback Shift Register (NLFSR).
2. Indirection, Shift, Accumulate, Add and Count (ISAAC). 3. Lagged Fibonacci Generator (LFG).
4. Mersenne - Twister. 5. Fortuna.
6. Blum-Blum Shub.
2.5 Probabilistic Encryption
Probabilistic encryption adalah penggunaan keadaan acak pada sebuah algoritma kriptografi, sehingga ketika mengenkripsi pesan yang sama beberapa kali, secara umum, akan menghasilkan ciphertext yang berbeda. Bentuk ‘probabilistic encryption’ secara khusus digunakan pada algoritma kriptografi kunci publik, ide dari probabilistic encryption pertama kali ditemukan oleh Shafi Goldwasser dan Silvio Micali.
pesan dari ciphertext yang diperolehnya, karena setiap kali proses percobaan akan selalu menghasilkan nilai yang berbeda-beda.
Algoritma enkripsi kunci publik probabilistic yang ditemukan oleh Shafi Goldwasser dan Silvio Micali ini memiliki teori yang membuatnya menjadi kriptosistem yang paling aman, yaitu berdasarkan pada kesulitan dari problema kuadratik residu dan memiliki sebuah faktor ekspansi pesan yang sama dengan ukuran kunci publik. Problema ini adalah untuk menemukan apakah x merupakan kuadrat modulo sebuah bilangan integer n. Problema ini dapat diselesaikan jika faktor dari n diketahui, tetapi tidak dapat diselesaikan jika tidak diketahui.Micali, (1984 ).
Algoritma probabilistic encryption memiliki proses kerja yang sama dengan algoritma kriptografi lainnya, dimana dapat dibagi menjadi tiga bagian besar, yaitu:
1. Proses pembentukan kunci, yang berfungsi untuk menghasilkan kunci yang akan digunakan pada proses enkripsi dan dekripsi.
2. Proses enkripsi, yang berfungsi untuk menghasilkan ciphertext dari pesan dengan menggunakan kunci publik.
3. Proses dekripsi, yang berfungsi untuk mengubah ciphertext menjadi pesan semula dengan menggunakan kunci private.
2.6. Pembangkit Bilangan Acak Linear Congruential Generator (LCG)
Bilangan acak adalah bilangan yang tidak dapat diprediksi kemunculannya. Tidak ada komputasi yang benar – benar menghasilkan deret bilangan acak secara sempurna. Banyak algoritma atau metode yang dapat digunakan untuk membangkitkan bilangan acak salah satunya adalah pembangkit bilangan acak Linear Congruential Generator (LCG).LCG adalah salah satu pembangkit bilangan acak tertua dan sangat terkenal.LCG didefinisikan dalam relasi rekurens yaituSchneier, (1996) :
Yang dalam hal ini:
xn = bilangan acak ke-n dari deretnya xn- 1 = bilangan acak sebelumnya
a = faktor pengali
b = penambah (increment) m = modulus
( a, b , dan m semuanya konstanta)
Sebagaimana yang telah dilakukan Oni (2011) Jika dilihat dari sisi kecepatan, Linear Congruential Generator (LCG) mempunyai waktu yang lebih cepat dibandingkan dengan algoritma SIMD- Oriented Fast Mersenne Twister(SFMT) dan Well Equidistributed Long-Period Linear (WELL) dapat dilihat pada tabel 2.1.
Tabel 2.1. Perbandingan Kecepatan Waktu Penghasilan Angka Algoritma LCG SFMT WELL
Waktu Penghasilan Angka 0,527 1.017 1.970
Jika dilihat dari angka yang dihasilkan, algoritma Linear Congruential Generator (LCG) memiliki kelemahan.Sebab angka (bilangan acak) yang dihasilkan dapat diprediksi urutan kemunculannya. Dapat dilihat pada contoh berikut :
Misalkan : a = 5 b = 13 m = 19
Tabel 2.2. Contoh bilangan acak yang dihasilkan dari persamaan LCG
BAB III
METODOLOGI PENELITIAN
3.1. Perumusan Algoritma Kunci Publik RSA
RSA melibatkan kunci publik da semua orang dan digunakan untuk mengenkripsi pesan. Pesan dienkripsi dengan kunci publik hanya dapat didekripsi menggunakan kunci privat. Kunci untuk algoritma RSA yang dihasilkan dengan cara berikut:
1. Pilih dua yang berbedap dan q.
Untuk tujuan keamanan, bilangan bulat p dan q harus dipilih secara acak dengan menggunakan metode LCG dan menggunaka dengan metode The Sieve Of Eratosthenes.
2. Hitung n = pq. (n). dengan rumus berikut Mollin, (2007) :
………(3.1)
d adalah eksponen disimpan sebagai kunci pribadi.
Kunci publik terdiri dari modulus n dan e (atau enkripsi) eksponen publik. Kunci privat terdiri dari modulus n dan (atau dekripsi) swasta eksponen d yang harus dirahasiakan. Untuk perancangan aplikasinya dapat dilihat pada flowchart berikut :
d =
e
3.2. Enkripsi dan Dekripsi RSA Kunci Publik
3.2.1 Enkripsi
Bob mengirimkan kunci publik nya
(n, e) unt
pribadi. Alice mengirim pesan “POT” ke Bob. Dia pertama kali merubah pesan “POT” kedalam bentuk ASCII, sehingga pesan yang disampaikan menjadi plainchar yang sudah dikonversi kedalam ASCII. Hal ini dapat dilakukan dengan
cepat menggunakan metode
rumus Mollin, (2007) :
C = p e (mod n) ……… (3.2)
Alice kemudian mengirimkan hasil c kepada Bob. Misalkan,
Plaintext yang dikirim adalah “ POT“ kemudian dikonversi ke ASCII maka :
plainchar (1) = “P” → P1 = 80 ………. (P1)
plainchar (2) = “O” → P2 = 79………. (P2)
plainchar (3) = “T” → P3 = 84 ……….(P3
Bob mengirimkan kunci publik nya
)
setelah dikonversi ke ASCII yaitu : ( 80, 79, 84 ). Hasil inilah yang di enkripsi Alice dengan persamaan (3.2)kemudian dikirim kepada Bob.
(n, e) unt
kunci pribadi Bob, maka keinginan untuk mengirim pesan T (plainchar) ke Bob, Alice pertama kali merubah menjadi T bilangan bulat, sedemikian sehingga 0 <m <n dengan menggunakan protokol yang disepakati reversibel dikenal sebagai
c sesuai dengan rumus
Hal ini dapat dilakukan dengan cepat menggunakan metode
T kepada
Bob. Perancangan aplikasinya dapat dilihat pada flowchart berikut :
3.2.2 Dekripsi
Bob dapat memulihkan
P (plaintext) dari C (chipertext) dengan menggunakan
kunci pribadinya d eksponen melalui komputasi (3.1) Kunci pribadi Bob adalah ( d , n ).
Untuk melakukan enkripsi RSA, teks asli disusun menajdi blok x1, x2, ….. sedemikian sehingga setiap blok mempresentasikan nilai di dalam rentang 0 sampai r-1. Setiap blok x1 di enkripsi menjadi blok y1 dengan rumus (Mollin, 2007) :
P = c d (mod n).………... (3.3)
Perancangan aplikasinya dapat dilihat pada flowchart berikut :
Contoh:
Setelah dilakukan kombinasi pembangkitan bilangan acak dengan metode LCG dan The Sieve of Eratosthenes, maka bilangan yang akan muncul akan acak pula. Misalkan bilangan yang muncul adalah :
p = 13
misalkan plaintext yang dikirim adalah “ POT“ plainchar (1) = “P” → P1 = 80 ………. (P1)
plainchar (2) = “O” → P2 = 79………. (P2)
plainchar (3) = “T” → P3 = 84 ……….(P3
13.Enkripsi pesan dengan rumus (3.2) maka :
)
80 17 mod 65 = 45 ……….(C1)
79 17 mod 65 = 14 ……….(C2)
84 17 mod 65 = 54 ……….(C3
14.Hitunglah kunci privat d, dengan rumus (3.1). Untuk mencari nilai k Dapat dicari dengan menggunakan Microsoft Excel. Dengan syarat k dan d adalah bilangan bulat positif. Menghasilkan d = 113.
)
15.Deskripsikan pesan terenkripsi dengan rumus (3.3) maka : P1 = 45 113 mod 65 = 80
P2 = 14 113 mod 65 = 79
P1 = 54 113
16.Hasil Dekripsi adalah ( “80”, “79”, “84” ) = (“POT’’) mod 65 = 84
3.3. Membangkitkan Bilangan Acak Dengan Linear Congruential Generator
Bilangan acak adalah bilangan yang tidak dapat diprediksi kemunculannya. Tidak ada komputasi yang benar – benar menghasilkan deret bilangan acak secara sempurna. Banyak algoritma atau metode yang dapat digunakan untuk membangkitkan bilangan acak salah satunya adalah pembangkit bilangan acak Linear Congruential Generator (LCG).
Dapat dilihat pada tabel (2.2) terjadi pengulangan pada periode tertentu atau setelah sekian kali pembangkitan. LCG mempunyai periode tidak lebih besar dari m, dan pada kebanyakan kasus periodenya kurang dari itu.
LCG mempunyai periode penuh (m – 1) jika memenuhi syarat sebagai berikut :
1. b relatif prima terhadap m
2. a-1 dapat dibagi dengan semua faktor prima dari m 3. a-1 adalah kelipatan 4 jika m adalah kelipatan 4 4. m > maks ( a, b, x0 )
5. a > 0, b > 0
Tabel 3.1 Konstanta yang bagus untuk LCG
Untuk membuktikannya dapat mengambil salah satu konstanta sebagai contoh. Misalkan :
a = 106 b = 1283 m = 6075
78 3144
79 422
80 3490
81 648
82 3146
83 634
84 1662
85 1280
Dari tabel tersebut dapat dilihat bahwa tidak ada perulangan angka pada periode 85 , dan angka yang dihasilkan cukup besar. Mengingat pada penelitian ini penulis membatasi bilangan acak yang digunakan adalah 1 s/d 100 untuk menghindari kesalahan perhitungan pada aplikasi. Dan mengacu pada tujuan penelitian adalah mencari dan memunculkan bilangan yang cukup acak sehingga tidak dapat diprediksi, ada beberapa cara yang dilakukan yaitu :
1. Pada syarat b relatif prima terhadap m, penulis menggunakan bilangan prima pada konstanta b, karena suatu bilangan bulat sudah pasti relatif prima dengan bilangan prima.
2. Konstanta a adalah memiliki faktor pembagi yang sama dengan m yaitu kelipatan 4.
Untuk perancangan aplikasinya dapat dilihat pada flowchart berikut :
3.4. Pengujian Bilangan Prima Dengan The Sieve of Eratosthenes
Berikut langkah-langkah sederhanal untuk menentukan bilangan prima melalui pengeksekusian. Ilustrasi langkah-langkah ini di kemukakan dari teori The Sieve of Eratosthenes. Adapun eksekusi bilangan prima tersebut dimulai dari 2 sampai seterusnya hingga secara keseluruhan bilangan tersebut menjadi prima untuk seluruh bilangan sisanya. Berikut tahapan eksekusi yang dilakukan yaitu:
Eksekusi 1:
Dimulai dari bilangan prima 2, kemudian kelipatannya di nonaktifkan untuk menentukan bilangan prima selanjutnya. Sehingga menjadi tabel seperti berikut. Pada kondisi ini banyaknya angka nonaktif kelipatan 2 adalah sebanyak 49 bilangan.
Gambar 3.5 Eksekusi Bilangan Kelipatan Dua
Eksekusi 2:
Dimulai dari bilangan prima 3, kemudian kelipatannya di nonaktifkan untuk menentukan bilangan prima selanjutnya. Sehingga menjadi tabel berikut. Pada kondisi ini banyaknya angka nonaktif kelipatan 3 adalah sebanyak 16 bilangan.
Gambar 3.6 Eksekusi Bilangan Kelipatan Tiga
Eksekusi 3
Gambar 3.7 Eksekusi Bilangan Kelipatan Lima :
Dimulai dari bilangan prima 5, kemudian kelipatannya di nonaktifkan untuk menentukan bilangan prima selanjutnya. Sehingga menjadi tabel berikut. Pada kondisi ini banyaknya angka nonaktif kelipatan 5 adalah sebanyak 6 bilangan.
Eksekusi 4
.
Gambar 3.8 Eksekusi Bilangan Kelipatan Tujuh
Dari 4 kali eksekusi yang dilakukan dan setelah dianalisa bilangan dari 1 sampai 100 telah ditemukan atau ditetapkan sebagai bilangan prima, maka eksekusi dihentikan. Adapun bilangan tersisa yang dinyatakan prima yakni :
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97. Sehingga dapat disimpulkan bahwa untuk menentukan bilangan prima dari 1 sampai x (tak terhingga) eksekusi yang dilakukan cukup sebanyak 4 kali eksekusi.
:
Dimulai dari bilangan prima 7, kemudian kelipatannya di nonaktifkan untuk menentukan bilangan prima selanjutnya. Sehingga menjadi tabel berikut. Pada kondisi ini banyaknya angka nonaktif kelipatan 7 adalah sebanyak 3 bilangan.
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 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
BAB IV
HASIL DAN PEMBAHASAN
4.1. Pendahuluan
Pada bagian ini akan disajikan teknik implementasi cara menentukan bilangan prima dan acak, dalam hal ini penulis menggunakan teori The Sieve of Eratosthenes sebagai pembangkit bilangan prima dan teori Linear Congruential generator (LCG) sebagai pembangkit bilangan acak. Dan menampilkan hasil aplikasinya dalam bentuk simulasi program.
4.2. Perancangan Program
Adapun rancangan program yang penulis buat guna memberikan gambaran tentang sistem yang dibangun adalah sebagai berikut :
Pada saat progam aplikasi dijalankan, maka terlebih dahulu muncul tampilan menu seperti pada gambar berikut :
Untuk memasukkan teks pada simulasi ini dilakukan secara manual, misalkan dimasukkan teks “TESIS” pada kolom “ Text” maka simulasi program akan menampilkan bilangan prima yang acak pada p dan q, dan bilangan prima akan selalu menghasilkan bilangan-bilangan yang berbeda jika “Submit” ditekan berkali-kali. Berikut gambar tampilannya.
Sebelum “Submit” ditekan, maka seluruh kolom data dalam keadaan kosong. Setelah menekan “Submit” maka akan tampil seluruh hasil enkripsi dan dekripsi, berikut gambar tampilannya.
Gambar 4.3 Setelah Submit
Gambar 4.4 Setelah Submit Berkali- kali
Berikut tampilan gambar menggunakan 10 karakter ( teks ) :
Gambar 4.5 Simulasi 10 karakter
Jika di “submit “ maka akan menghasilkan :
Dari tampilan sebelumnya dekripsi masih dapat dilakukan dengan sepuluh
karakter, pesan yang disampaikan masih sama hasilnya. Bagaimana jika lebih dari
sepuluh, berikut tampilannya simulasinya :
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Tesis ini menghasilkan beberapa kesimpulan sebagai berikut :
1. Pembangkitan bilangan prima acak didalam kriptografi RSA dapat dilakukan dengan mengkombinasikan algoritma Linear Congruential Generator (LCG) dan The Sieve of Eratosthenes.
2. Konstanta m pada LCG dapat menggunakan fungsi waktu yaitu detik dalam pembangkitan bilangan acak pada aplikasi simulasi berbasis RSA, sehingga tidak dapat diprediksi kemunculannya.
3. Untuk hasil yang maksimal simulasi hanya mampu menyelesaikan sepuluh pesan teks ( karakter ) saja.
5.2 Saran
Saran penulis terhadap tesis ini adalah sebagai berikut :
1. Untuk memperoleh hasil yang lebih mungkin penelitian ini dapat menggunakan bahasa pemrograman Phyton agar saat melakukan perhitungan pada proses enkripsi dan dekripsi dapat menggunakan bilangan yang besar.
2. Dalam penelitian lebih lanjut, penggunaan fungsi waktu pada konstanta m dalam LCG dapat menambahkan parameter jam dan menit, sehingga untuk memprediksi bilangan acak yang muncul akan lebih sulit.
3. Memasukkan teks pada aplikasi secara manual, untuk penelitian lanjutan diharapkan data atau teks yang diambil bisa dari file.
4. Untuk penelitian lanjutan diharapkan bisa menggunakan lebih dari sepuluh pesan teks ( karakter )
DAFTAR PUSTAKA
Abrarov, R.M. and Abrarov, S.M. 2011. Sieve Procedure For The M¨ Obius Prime-Functions, The Infinitude Of Primes And The Prime Number Theorem. Cornell University.
Arifin, Zainal. 2009. StudiKasusPenggunaanAlgoritma RSA SebagaiAlgoritmaKriptografi yang Aman.Program StudiIlmuKomputer, FMIPA UniversitasMulawarman.
Demchik, Vadim. 2010. Pseudo-random number generators for Monte Carlo simulations on Graphics Processing Units. Dnepropetrovsk National University, Dnepropetrovsk, Ukraine.
Probabilistic Encryption, Journal of
Computer and System Sciences, Volume 28(2), pp. 270 - 299, Elsevier, 1984.
Haro, GokAsido. 2007. AlgoritmaPencarianBilangan Prima. Bandung, TeknikInformatika ITB.
Holt, Fred B. 2007. Expected Gaps Between Prime Numbers.
Mahmudi, Kamal. 2010.Sifat Prima TerhadapFungsionalitasAlgoritma RSA. Bandung STEI ITB.
Mollin, Richard A. 2002. RSA and Public-Key Cryptography. Florida, Boca Raton: CRC Press LLC.
Mollin, Richard A. 2007. An Introduction to Cryptography 2nd edition. New York, Chapman& Hall/CRC is an imprint of the Taylor & Francis Group, an informa business.
Munir, Rinaldi. 2006. Kriptografi. Bandung Informatika
Oni, Marvello. 2011. Comparison Between Linear CongruentialGenerators,WellEquidistributed Long-Period Linear (WELL), And SIMD-Oriented Fast Mersenne Twister(SFMT) Algorithm To Generate Pseudo Random Number. Bandung, Program StudiTeknikInformatika STEI InstitutTeknologi Bandung.
Saito, Mutsuo. 2010. A Variant OfMersenne Twister Suitable For Graphic Processors. Cornell University.
Schneier, Bruce. 1996. Applied Cryptography, 2nd Edition :Foreword By Whitfield Diffie Mountain View, CA.
CryptMail User's Guide, Utimaco. Belgium.
Siang , J, J. 2002. Bilangan Prima PerkembangandanAplikasinya. Yogyakarta, Fakultas MIPA Universitas Kristen Immanuel.
Smart, Nigel Paul. 2003. Cryptography an Introduction. University of California.McGraw-Hill.
Stallings, William. 2006. Cryptography and Network Security Principles and Practice Fifth Edition. United States of America.Pearson Education, Inc.
LIST PROGRAM
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>RSA</title> function enkrip($text,$e,$n)
{
{
for ($j = 0; $j<=count($chipnum)-1 ;$j++) {
else { $localtime_assoc = localtime(time(), true); $m = $localtime_assoc[tm_sec] ;
if ($m % 4 == 0) {
do {
<p class="style1">SIMULASI RSA DENGAN PEMBANGKITAN KUNCI RANDOM<br />
METODE MARSENNE TWISTER DAN BILANGAN PRIMA THE SIEVE OF ERATOS THENES</p>
<form id="form1" name="form1" method="post" action= "<?php $_SERVER['PHP_SELF'] ?>" >
<label><span class="style2">Text </span>
<input name="text" type="text" id="text" value="" /> </label>
<p> <label>
<input type="submit" name="sub" id="sub" value="Submit" /> </label>
</p> </form>
<p class="style1">Key yang dibangkitkan</p>
<table width="267" border="0" cellspacing="0" cellpadding="0"> <tr>
<?php
<td>Kunci Publik</td> <td>:
?> </p>
<p><?php echo $plain; ?> </p> <p> </p>