• Tidak ada hasil yang ditemukan

Algoritma The Sieve Of Eratosthenes Dan Linear Congruential Generator (LCG) Dalam Perancangan Aplikasi Kriptografi RSA

N/A
N/A
Protected

Academic year: 2016

Membagikan "Algoritma The Sieve Of Eratosthenes Dan Linear Congruential Generator (LCG) Dalam Perancangan Aplikasi Kriptografi RSA"

Copied!
72
0
0

Teks penuh

(1)

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

(2)

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

(3)

PENGESAHAN TESIS

Judul Tesis

:

ALGORITMA THE SIEVE OF

ERATOSTHENES 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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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.

(9)

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,

(10)

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.

(11)

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.

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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.

(17)

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.

(18)

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.

(19)

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

(20)

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

(21)

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.

(22)

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.

(23)

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

(24)

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:

(25)

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.

(26)

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

(27)

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.

(28)

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 )

(29)

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

(30)

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

(31)

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 * (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:

(32)

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

(33)

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

(34)

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.

(35)

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 )

(36)

(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).

(37)

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.

(38)

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) :

(39)

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

(40)

Tabel 2.2. Contoh bilangan acak yang dihasilkan dari persamaan LCG

(41)
(42)

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

(43)
(44)

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 “ POTkemudian 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

(45)

Hal ini dapat dilakukan dengan cepat menggunakan metode

T kepada

Bob. Perancangan aplikasinya dapat dilihat pada flowchart berikut :

(46)

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 :

(47)

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.

)

(48)

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

(49)

Tabel 3.1 Konstanta yang bagus untuk LCG

Untuk membuktikannya dapat mengambil salah satu konstanta sebagai contoh. Misalkan :

a = 106 b = 1283 m = 6075

(50)
(51)
(52)
(53)

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.

(54)

Untuk perancangan aplikasinya dapat dilihat pada flowchart berikut :

(55)

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.

(56)

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.

(57)

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

(58)

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 :

(59)

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.

(60)

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

(61)

Gambar 4.4 Setelah Submit Berkali- kali

(62)

Berikut tampilan gambar menggunakan 10 karakter ( teks ) :

Gambar 4.5 Simulasi 10 karakter

Jika di “submit “ maka akan menghasilkan :

(63)

Dari tampilan sebelumnya dekripsi masih dapat dilakukan dengan sepuluh

karakter, pesan yang disampaikan masih sama hasilnya. Bagaimana jika lebih dari

sepuluh, berikut tampilannya simulasinya :

(64)

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 )

(65)

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.

(66)

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.

(67)

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)

{

(68)

{

for ($j = 0; $j<=count($chipnum)-1 ;$j++) {

(69)

else { $localtime_assoc = localtime(time(), true); $m = $localtime_assoc[tm_sec] ;

if ($m % 4 == 0) {

(70)

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>

(71)

<?php

<td>Kunci Publik</td> <td>:

(72)

?> </p>

<p><?php echo $plain; ?> &nbsp; </p> <p>&nbsp;</p>

Gambar

Gambar 1.1  Proses Enkripsi dan Dekripsi Kunci Publik
Gambar 2.1 Contoh Confidentiality
Gambar 2.2 Contoh Data Integrity
Gambar 2.4 Contoh Non – repudiation
+7

Referensi

Dokumen terkait

Proses pembangkitan kunci publik dan kunci privat pada proses enkripsi RSA dilakukan secara acak ( random ) menggunakan algoritma Monte-Carlo dan dimana kedua nilai acak

Implementasi algoritma kriptografi kunci publik dengan algoritma RSA-CRT pada aplikasi instant messaging , proses dekripsi menggunakan algoritma RSA-CRT untuk 1.800

Dalam sistem kriptografi kunci publik ini, proses enkripsi dan dekripsi menggunakan kunci yang berbeda, namun kedua kunci tersebut memiliki hubungan matematis

Pada sistem kriptografi kunci publik untuk proses tersebut diperlukan dua buah kunci, yaitu satu kunci untuk enkripsi data yang tidak dirahasiakan (disebut

Pembangkit Bilangan Acak Semu atau yang biasa disebut dengan Pseudo Random Number Generator (PRNG) adalah sebuah algoritma yang umum digunakan pada kriptografi.. Dengan

Suatu sistem kriptografi yang terdiri atas kumpulan transformasi enkripsi dan dekripsi disebut dengan sistem kriptografi kunci publik atau suatu sistem kriptografi asimetrik

Sistem akan memuat tiga menu inti yakni pembuatan pasangan kunci RSA sebelum melakukan proses kriptografi, mengenkripsi video dari file video asli (berformat AVI),

Teknik kriptografi merupakan teknik yang dapat digunakan untuk mengenkripsi naskah asli plaintext yang diacak menggunakan suatu kunci enkripsi menjadi naskah acak yang Ada begitu banyak