APLIKSASI TES BILANGAN PRIMA MENGUNAKAN RABIN- MILLER, GCD, FAST EXPONENSIAL DAN FAKTORISASI PRIMA UNTUK DASAR MATEMATIS KRIPTOGRAFI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

Perancangan Perangkat Lunak Bantu Bantu Pemahaman Kritografi Menggunakan Metode MMB (MODULAR MULTIPLICATION-BASED BLOCK CIPHER)

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda

Aplikasi Merkle-Hellman Knapsack Untuk Kriptografi File Teks

BAB 2 TINJAUAN PUSTAKA

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

Sistem Bilangan Riil

IMPLEMENTASI ALGORITMA TEA DAN FUNGSI HASH MD4 UNTUK ENKRIPSI DAN DEKRIPSI DATA

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

Perangkat Lunak Pembelajaran Protokol Secret Sharing Dengan Algoritma Asmuth Bloom

PERANCANGAN APLIKASI ENKRIPSI MENGGUNAKAN ALGORITMA IDEA (INTERNATIONAL DATA ENCRYPTION ALGORITHM)

Sifat Prima Terhadap Fungsionalitas Algoritma RSA

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

DAFTAR ISI. Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA)

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

Bab 2: Kriptografi. Landasan Matematika. Fungsi

ENKRIPSI DATA KUNCI SIMETRIS DENGAN ALGORITMA KRIPTOGRAFI LOKI97

BAB 1 PENDAHULUAN Latar belakang

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

Kriptografi Elliptic Curve Dalam Digital Signature

Bab 2 Tinjauan Pustaka

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

LANDASAN TEORI. bilangan coprima, bilangan kuadrat sempurna (perfect square), kuadrat bebas

Algoritma Pendukung Kriptografi

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

Penerapan Metode Adaptif Dalam Penyembunyian Pesan Pada Citra

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

ELLIPTIC CURVE CRYPTOGRAPHY. Disarikan oleh: Dinisfu Sya ban ( )

R. Rosnawati Jurusan Pendidikan Matematika FMIPA UNY

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

IMPLEMENTASI METODE KRIPTOGRAFI IDEA DENGAN FUNGSI HASH DALAM PENGAMANAN INFORMASI

KOMBINASI ALGORITMA ONE TIME PAD CIPHER DAN ALGORITMA BLUM BLUM SHUB DALAM PENGAMANAN FILE

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

Perbandingan Penggunaan Bilangan Prima Aman Dan Tidak Aman Pada Proses Pembentukan Kunci Algoritma Elgamal

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

BAB I PENDAHULUAN. 1.1 Latar Belakang

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

II. TINJAUAN PUSTAKA. Pada bab ini akan diberikan konsep dasar (pengertian) tentang bilangan sempurna,

II. TINJAUAN PUSTAKA. Pada bab ini akan diberikan konsep dasar (pengertian) tentang bilangan sempurna,

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

FAST EXPONENTIATION. 1. Konsep Modulo 2. Perpangkatan Cepat

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB II TINJAUAN PUSTAKA

Modifikasi Algoritma RSA dengan Chinese Reamainder Theorem dan Hensel Lifting

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

MODUL PERKULIAHAN EDISI 1 MATEMATIKA DISKRIT

BAB III ANALISIS DAN PERANCANGAN

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

II. TINJAUAN PUSTAKA. Pada bab ini akan dibahas konsep-konsep yang mendasari konsep representasi

BAB III METODOLOGI PENELITIAN. ditemukan oleh Rivest, Shamir dan Adleman (RSA) pada tahun

BAB 3 KRIPTOGRAFI RSA

II. TINJAUAN PUSTAKA. bilangan yang mendukung proses penelitian. Dalam penyelesaian bilangan

Teori Bilangan (Number Theory)

ANALISA KRIPTOGRAFI KUNCI PUBLIK RSA DAN SIMULASI PENCEGAHAN MAN-IN-THE-MIDDLE ATTACK DENGAN MENGGUNAKAN INTERLOCK PROTOCOL

Kongruen Lanjar dan Berbagai Aplikasi dari Kongruen Lanjar


KRIPTOGRAFI TEKS DE GA ME GGU AKA ALGORITMA LUC

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

BAB IV KURVA ELIPTIK DAN ID BASED CRYPTOSYSTEM

BAB 2 LANDASAN TEORI

KOMPLEKSITAS DAN ANALISIS SANDI LINEAR ALGORITMA ENKRIPSI SUBTITUSI PERMUTASI SEDERHANA 128 BIT

SISTEM PENGAMANAN PESAN SMS MENGGUNAKAN INTERNASIONAL DATA ENCRYPTION ALGORITHM

Studi dan Implementasi Sistem Kriptografi Rabin

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Enkripsi Teks dengan Algoritma Affine Cipher

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB 2 LANDASAN TEORI

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

Perbandingan Algoritma RSA dan Rabin

PENGGUNAAN DETERMINAN POLINOMIAL MATRIKS DALAM MODIFIKASI KRIPTOGRAFI HILL CHIPER

Elliptic Curve Cryptography (Ecc) Pada Proses Pertukaran Kunci Publik Diffie-Hellman. Metrilitna Br Sembiring 1

ANALISIS KOMBINASI METODE CAESAR CIPHER, VERNAM CIPHER, DAN HILL CIPHER DALAM PROSES KRIPTOGRAFI

BAB II LANDASAN TEORI

IMPLEMENTASI SANDI HILL UNTUK PENYANDIAN CITRA

PENGAMANAN DOKUMEN MENGGUNAKAN METODE RSA (RIVEST SHAMIR ADLEMAN)BERBASIS WEB

SISTEM PENGAMBILAN KEPUTUSAN PERMOHONAN KREDIT SEPEDA MOTOR DENGAN MENGGUNAKAN METODE DECISION TREE

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

METODE SOLOVAY-STRASSEN UNTUK PENGUJIAN BILANGAN PRIMA

Proses enkripsi disetiap putarannya menggunakan fungsi linear yang memiliki bentuk umum seperti berikut : ( ) ( ) (3) ( ) ( ) ( )

Transkripsi:

APLIKSASI TES BILANGAN PRIMA MENGUNAKAN RABIN- MILLER, GCD, FAST EXPONENSIAL DAN FAKTORISASI PRIMA UNTUK DASAR MATEMATIS KRIPTOGRAFI Budi Triandi STMIK Potensi Utama, Jl. K.L Yos Sudarso Km.6.5 No.3A Tanjung Mulia Medan buditriandi@gmail.com Abstrak Keamanan data merupakan suatu hal yang sangat penting dan merupakan kebutuhan bagi setiap orang yang melakukan transaksi data melalui media online. Dalam kriptografi terdapat beberapa model untuk melakukan pengamanan data, salah satunya adalah penggunaan kunci dalam mengamankan data, kunci yang digunakan dalam teknik penyandian terbagi menjadi dua yaitu public key dan private key. Penggunaan kunci pablik pada kriptografi dihadapkan pada permasalahan yang sulit seperti faktorialisasi, algoritma diskrit, kurva elips, problema Knapsack dan lainnya. Perpangkatan modulo, faktorialisasi dan penggunaan bilangan prima merupakan hal yang sangat mendasar dalam matematika kriptografi dalam pembentukan kunci pablik. Makalah ini membahas tentang implementasi algoritma Rabin Miller, Fast Exponentiation, GCD (Greatest Common Divisor) dan faktorisasi prima kedalam alpikasi bantu yang dapat membantu dalam proses pemahaman untuk dasar perhitungan matematis kriptografi untuk proses pembelajaran. Algoritma Tes bilangan prima Rabin Miller, Fast Exponentiation dan GCD (Greatest Common Divisor) dapat digunakan untuk bilangan yang besar hingga 15 digit. Kata Kunci : GCD, Fast Exponentiation, Rabin Miller, faktorisasi prima 1. Pendahuluan Keamanan data saat ini sudah menjadi kebutuhan bagi setiap orang yang melakukan transaksi data melalui media online, banyak teknik keamanan yang dirancang sedemikian rupa sehingga memunculkan bebagai asfek kerumitan dalam hal pemahaman konsep dan teknik pengamana data. Dalam kriptografi terdapat beberapa model dalam melakukan pengamanan data, salah satunya adalah penggunaan kunci dalam mengamankan data, kunci dalam kriptografi digunakan untuk melakukan otentikasi data pada saat melakukan enkripsi dan depkripsi data, kunci yang digunakan dalam teknik penyandian terbagi menjadi dua yaitu public key dan private key. Penggunaan kunci pablik pada kriptografi dihadapkan pada permasalahan yang sulit seperti faktorialisasi, algoritma diskrit, kurva elips, problema Knapsack dan lainnya. Perpangkatan modulo, faktorialisasi dan penggunaan bilangan prima merupakan hal yang sangat mendasar dalam matematika kriptografi dalam pembentukan kunci pablik. Dalam hal pemahaman faktorialisasi, perpangkatan modulo dan pengujian bilangan prima dengan mengunakan teknik perhitungan manual dan konversi oral terkadang sering mengalami hambatan, sebagai contoh mencari hasil dari 4 10000 dan 3 500 berdasarkan permasalahan tersebut dalam hal ini dibutuhkan aplikasi bantu yang dapat menguraikan tahap demi tahap untuk menentukan dan menjelaskan langka pencarian faktorialisasi, perpangkatan modulo dan pengujian bilangan prima. Proses kerja dari aplikasi bantu tersebut akan dibahas secara terperinci dan diakhir pembahasan akan diuraikan hasil kinerja aplikasi bantu, dari hasil tersebut nantinya diharapkan dapat dijadikan bahan dalam pengembangan ilmu pengetahuan dalam bidang teknologi keamanan data yang dapat mendukung dalam proses belajar mengajar. 2. Landasan Teori 2.1. Bilangan Di antara sistem bilangan, yang paling sederhana adalah bilangan-bilangan asli yaitu 1, 2, 3, 4, 5,. Dengan bilangan ini kita dapat menghitung buku-buku kita, teman-teman kita, dan uang kita. Jika menggandengkan negatifnya dan nol, diperoleh bilangan-bilangan bulat yaitu, -3, -2, -1, 0, 1, 2, 3,. Dalam pengukuran panjang, berat atau tegangan listrik, bilangan-bilangan bulat tidak memadai. Bilangan ini terlalu kurang untuk memberikan ketelitian yang cukup. Oleh karena itu dituntun juga untuk mempertimbangkan hasil bagi (rasio) dari bilangan-bilangan bulat yaitu ¾, ½, dan sebagainya. Bilangan-bilangan yang dapat dituliskan dalam bentuk m/n dimana m dan n adalah bilangan-bilangan bulat dengan n 0, disebut bilangan-bilangan rasional. 227

Bilangan-bilangan rasional tidak berfungsi untuk mengukur semua panjang. Fakta yang mengejutkan ini ditemukan oleh orang Yunani kuno beberapa abad sebelum Masehi. Mereka memperlihatkan bahwa meskipun 2 merupakan panjang sisi miring sebuah segitiga siku-siku dengan sisi-sisi 1, bilangan ini tidak dapat dituliskan sebagai suatu hasil bagi dari dua bilangan bulat. Jadi 2 adalah suatu bilangan tak rasional. Demikian juga bentuk-bentuk akar lainnya. Sekumpulan bilangan (rasional dan tak rasional) yang dapat mengukur panjang, bersamasama dengan negatifnya dan nol dinamakan bilangan-bilangan riil. Bilangan-bilangan riil dapat dipandang sebagai pengenal (label) untuk titik-titik sepanjang sebuah garis mendatar. Di sana bilangan-bilangan ini mengukur jarak ke kanan atau ke kiri (jarak berarah) dari suatu titik tetap yang disebut titik asal dan diberi label 0. Walaupun tidak mungkin memperlihatkan semua label itu, tiap titik memang mempunyai sebuah label tunggal bilangan riil. Bilangan ini disebut koordinat titik tersebut. Dan garis koordinat yang dihasilkan diacu sebagai garis riil. Gambar 1. Sistem Bilangan Sistem bilangan masih dapat diperluas lebih jauh lagi ke bilangan yang disebut bilangan kompleks. Bilangan-bilangan ini berbentuk a + b -1, dimana a dan b adalah bilangan-bilangan riil. 2.2. Konsep Dasar Matematis Kriptografi Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu himpunan berisi elemen plaintext dan himpunan berisi elemen ciphertext. Enkripsi dan dekripsi merupakan fungsi tranformasi antara dua himpunan tersebut. Bila himpunan plaintext dinotasikan dengan P dan himpunan ciphertext dinotasikan dengan C, sedang fungsi enkripsi dinotasikan dengan E dan fungsi dekripsi dengan D maka proses enkripsi-dekripsi dapat dinyatakan dalam notasi matematis dengan : E(P) = C dan D(C) = P Karena proses enkripsi-dekripsi bertujuan memperoleh kembali data asal, maka : D(E(P)) = P Relasi antara himpunan plaintext dengan himpunan ciphertext harus merupakan fungsi korespondensi satu-satu (one to one relation). Hal ini merupakan keharusan untuk mencegah terjadinya ambigu dalam dekripsi yaitu satu elemen ciphertext menyatakan lebih dari satu elemen plaintext. Pada metode kriptografi simetris atau konvensional digunakan satu buah kunci. Bila kunci dinotasikan dengan K maka proses enkripsi-dekripsi metode kriptografi simetris dapat dinotasikan dengan : E k (P) = C dan D k (C) = P Dan keseluruhan sistem dinyatakan sebagai : D k (E k (P))=P Pada metode kriptografi asimetris digunakan kunci umum untuk enkripsi dan kunci pribadi untuk dekripsi. Bila kunci umum dinotasikan dengan PK dan kunci pribadi dinotasikan dengan SK maka proses enkripsi-dekripsi metode kriptografi asimetris dapat dinotasikan dengan : E PK (P) = C dan D SK (C) =P Dan keseluruhan sistem dinyatakan sebagai : D SK (E PK (P)) = P 3. Pembahasan Secara garis besar, proses penyelesaian aplikasi dapat dibagi menjadi tiga bagian besar yaitu : 1. Melakukan Perpangkatan Modulo dengan Fast Exponentiation. 2. Melakukan Faktorisasi Persekutuan Terbesar dengan GCD (Greatest Common Divisor). 3. Tes Prima dengan Metoda Rabin Miller. 4. Faktorisasi Prima dari Bilangan Selain itu, aplikasi yang dibuat mampu membangkitkan bilangan acak prima dengan bantuan algoritma tes prima dengan metoda Rabin Miller dan perhitungan perpangkatan modulo dengan Fast Exponentiation. 3.1. Menghitung Perpangkatan Modulo dengan Fast Exponentiation Sebelum mempelajari proses pembangkitan bilangan acak prima dengan metoda Rabin Miller, pada bagian ini akan diuraikan proses pencarian tahap demi tahap dengan perhitungan manual. Agar lebih memahami proses perhitungan perpangkatan modulo dengan Fast Exponentiation, diambil contoh kasus 11 23829 mod 95317 dengan proses sebagai berikut : A1 = 11 B1 = 23829 Product = 1 While 23829 <> 0 True While 23829 mod 2 = 0 False B1 = 23829-1 = 23828 228

Product = (1 * 11) mod 95317 = 11 While 23828 <> 0 True While 23828 mod 2 = 0 True B1 = 23828 div 2 = 11914 A1 = (11 * 11) mod 2 = 121 While 11914 mod 2 = 0 True B1 = 11914 div 2 = 5957 A1 = (121 * 121) mod 2 = 14641 While 5957 mod 2 = 0 False B1 = 5957-1 = 5956 Product = (11 * 14641) mod 95317 = 65734 While 5956 <> 0 True While 5956 mod 2 = 0 True B1 = 5956 div 2 = 2978 A1 = (14641 * 14641) mod 2 = 86265 While 2978 mod 2 = 0 True B1 = 2978 div 2 = 1489 A1 = (86265 * 86265) mod 2 = 61401 While 1489 mod 2 = 0 False B1 = 1489-1 = 1488 Product = (65734 * 61401) mod 95317 = 30286 While 1488 <> 0 True While 1488 mod 2 = 0 True B1 = 1488 div 2 = 744 A1 = (61401 * 61401) mod 2 = 9500 While 744 mod 2 = 0 True B1 = 744 div 2 = 372 A1 = (9500 * 9500) mod 2 = 80118 While 372 mod 2 = 0 True B1 = 372 div 2 = 186 A1 = (80118 * 80118) mod 2 = 56510 While 186 mod 2 = 0 True B1 = 186 div 2 = 93 A1 = (56510 * 56510) mod 2 = 69966 While 93 mod 2 = 0 False B1 = 93-1 = 92 Product = (30286 * 69966) mod 95317 = 93366 While 92 <> 0 True While 92 mod 2 = 0 True B1 = 92 div 2 = 46 A1 = (69966 * 69966) mod 2 = 45987 While 46 mod 2 = 0 True B1 = 46 div 2 = 23 A1 = (45987 * 45987) mod 2 = 5890 While 23 mod 2 = 0 False B1 = 23-1 = 22 Product = (93366 * 5890) mod 95317 = 41967 While 22 <> 0 True While 22 mod 2 = 0 True B1 = 22 div 2 = 11 A1 = (5890 * 5890) mod 2 = 92029 While 11 mod 2 = 0 False B1 = 11-1 = 10 Product = (41967 * 92029) mod 95317 = 31520 While 10 <> 0 True While 10 mod 2 = 0 True B1 = 10 div 2 = 5 A1 = (92029 * 92029) mod 2 = 40123 While 5 mod 2 = 0 False B1 = 5-1 = 4 Product = (31520 * 40123) mod 95317 = 11004 While 4 <> 0 True While 4 mod 2 = 0 True B1 = 4 div 2 = 2 A1 = (40123 * 40123) mod 2 = 46316 While 2 mod 2 = 0 True B1 = 2 div 2 = 1 A1 = (46316 * 46316) mod 2 = 62771 While 1 mod 2 = 0 False B1 = 1-1 = 0 Product = (11004 * 62771) mod 95317 = 65102 While 0 <> 0 False FastExp(11, 23829, 95317) = 65102 3.2. Menghitung Faktorisasi Persekutuan Terbesar dengan GCD Untuk menghitung faktorisasi persekutuan terbesar antara dua buah bilangan dapat digunakan algoritma GCD. Proses perhitungannya dapat dilihat pada contoh berikut ini : GCD(4356, 6538) P = 4356 Q = 6538 While 6538 <> 0 True R = 4356 mod 6538 = 4356 P = 6538 Q = 4356 While 4356 <> 0 True R = 6538 mod 4356 = 2182 P = 4356 Q = 2182 While 2182 <> 0 True R = 4356 mod 2182 = 2174 P = 2182 Q = 2174 While 2174 <> 0 True R = 2182 mod 2174 = 8 P = 2174 Q = 8 While 8 <> 0 True R = 2174 mod 8 = 6 P = 8 Q = 6 While 6 <> 0 True R = 8 mod 6 = 2 P = 6 Q = 2 While 2 <> 0 True R = 6 mod 2 = 0 P = 2 Q = 0 While 0 <> 0 False GCD(4356, 6538) = 2 3.3. Tes Prima dengan Metoda Rabin Miller Inti dari proses pembangkitan bilangan acak prima adalah melakukan pengetesan apakah 229

bilangan acak yang dibangkitkan tersebut merupakan bilangan prima atau bukan. Agar lebih memahami proses pembangkitan bilangan acak prima, diambil contoh untuk bilangan 95317 dengan A = 11, maka proses penyelesaiannya adalah sebagai berikut : C = 95317-1 = 95316 ntemp = 0 95316 mod (2^0) = 0 And ((2^0) < 95317) - True ntemp = 0 + 1 = 1 95316 mod (2^1) = 0 And ((2^1) < 95317) - True ntemp = 1 + 1 = 2 95316 mod (2^2) = 0 And ((2^2) < 95317) - True ntemp = 2 + 1 = 3 95316 mod (2^3) = 0 And ((2^3) < 95317) - False B = 3-1 = 2 M = 95316 / (2^2) = 23829 J = 0 Z = FastExp(11, 23829, 95317) = 65102 (65102 = 1) Or (65102 = (95317-1)) = False (0 > 0) And (65102 = 1) = False J = 0 + 1 = 1 (1 < 2) And (65102 <> (95317-1)) = True Z = FastExp(65102, 2, 95317) = 95316 (1 > 0) And (95316 = 1) = False J = 1 + 1 = 2 (2 < 2) And (95316 <> (95317-1)) = False (95316 = (95317-1)) = True TesRabinMiller = True Dari hasil proses penetuan maka dapat disimpulkan bahwa 95317 lulus Tes Prima Rabin Miller untuk A = 11. 3.4. Implementasi Pembangkit Bilangan Prima Dalam dunia nyata, implementasi pembangkitan bilangan prima dapat berlangsung dengan sangat cepat. Salah satu implementasinya adalah sebagai berikut : 1. Bangkitkan bilangan acak p sepanjang n bit. 2. Set bit MSB (Most Significant Bit) dan LSB (Least Significant Bit) nya ke 1. Atau set bit paling kiri dan kanannya ke bit satu. Pengesetan bit MSB menjamin panjang bit bilangan prima yang dihasilkan sesuai dengan yang diinginkan. Pengesetan bit LSB menjamin agar bilangan acak adalah bilangan ganjil, karena bilangan prima pasti harus bilangan ganjil. 3. Periksa apakah p tidak dapat dibagi bilangan prima kecil : 2,3,5,7,11, dan seterusnya hingga bilangan prima tertinggi yang lebih kecil dari 256. Pemeriksaan ini akan mengurangi 80 % peluang bahwa bilangan yang dipilih bukan bilangan prima. Artinya bila bilangan yang dipilih tidak dapat dibagi bilangan prima kecil di atas, peluang bilangan yang dipilih merupakan bilangan prima adalah 80 %. 4. Lakukan tes Rabin Miller untuk beberapa nilai a. Bila p lolos tes untuk satu nilai a, bangkitkan nilai a lainnya. Pilih nilai a yang kecil agar perhitungan lebih cepat. Lakukan tes dengan minimal 5 macam nilai a. Bila p gagal dalam proses uji coba, bangkitkan p lainnya dan ulangi langkah (2). Agar lebih memahami proses kerja dari pembangkit bilangan prima, berikut ini contoh proses pembangkitan bilangan prima : 1. Bilangan Acak P = 95316 2. P = 95316 genap, P = 95316 + 1 = 95317 3. P = 95317 tidak dapat dibagi oleh bilangan prima kecil dari 3, 5... 251. 95317 lolos tes 80% dan merupakan prima. Tes dilanjutkan. 4. Tes Rabin-Miller untuk beberapa nilai A. TES-1. Tes Rabin Miller untuk P = 95317 dengan A = 11, telah dirincikan pada bagian Tes Prima Rabin Miller di atas, dan hasilnya bilangan 95317 lolos tes. TES-2. Tes Rabin Miller untuk P = 95317 dengan A = 12 C = 95317-1 = 95316 ntemp = 0 95316 mod (2^0) = 0 And ((2^0) < 95317) - True ntemp = 0 + 1 = 1 95316 mod (2^1) = 0 And ((2^1) < 95317) - True ntemp = 1 + 1 = 2 95316 mod (2^2) = 0 And ((2^2) < 95317) - True ntemp = 2 + 1 = 3 95316 mod (2^3) = 0 And ((2^3) < 95317) - False B = 3-1 = 2 M = 95316 / (2^2) = 23829 J = 0 Z = FastExp(12, 23829, 95317) = 1 (1 = 1) Or (1 = (95317-1)) = True TesRabinMiller = True Hasilnya bilangan 95317 juga lulus tes, sehingga bilangan 95317 kemungkinan besar merupakan bilangan prima. 3.5. Faktorisasi Prima dari Bilangan Suatu bilangan dapat dituliskan dalam bentuk produk dari unsur pokok primanya. Proses ini disebut dengan faktorisasi prima. Faktorisasi prima dari suatu bilangan dapat dihasilkan dengan melakukan proses berikut ini : 1. Set nilai X = bilangan yang akan difaktorkan. 2. Set nilai I = 2. 3. Jika I merupakan bilangan prima maka : a. Jika X habis dibagi I maka : i. Set nilai X = X / I. 230

ii. Simpan nilai I sebagai faktor prima dari bilangan. b. Ulangi langkah (4) hingga X tidak habis dibagi I. 4. Jika X = 1 maka proses selesai. 5. Jika X merupakan bilangan prima maka simpan X sebagai faktor prima dari bilangan dan proses selesai. 6. Set nilai I = I + 1. 7. Jika nilai I lebih kecil dari nilai X maka kembali ke langkah (3). Agar lebih jelas mengenai proses di atas, simaklah contoh berikut ini : Misalkan akan dicari faktor prima dari bilangan 252, maka proses penyelesaiannya adalah sebagai berikut : 1. Set X = 252. 2. Set I = 2. 3. 2 merupakan bilangan prima, maka : a. 252 habis dibagi 2, maka : i. X = 252 / 2 = 126. ii. Faktor prima = 2 b. 126 habis dibagi 2, maka : i. X = 126 / 2 = 63. ii. Faktor prima = 2 x 2 4. Set I = 2 + 1 = 3. 5. 3 merupakan bilangan prima, maka : a. 63 habis dibagi 3, maka : i. X = 63 / 3 = 21. ii. Faktor prima = 2 x 2 x 3 b. 21 habis dibagi 3, maka : i. X = 21 / 3 = 7. ii. Faktor prima = 2 x 2 x 3 x 3 6. 7 merupakan bilangan prima maka faktor prima = 2 x 2 x 3 x 3 x 7, dan proses selesai. Dari proses diatas didapatkan faktor prima dari bilangan 252 adalah 2 x 2 x 3 x 3 x 7. 4. Hasil Pengujian Program Algoritma Tes Prima Rabin Miller dengan bilangan yang dites = 739 Algoritma Tes Prima Rabin Miller dengan bilangan yang dites = 739. Gambar 3. Bilangan 1551 tidak lulus tes prima Algoritma Pembangkit Bilangan Prima Acak Rabin Miller menghasilkan bilangan acak prima (5 digit) yaitu bilangan 46181. Gambar 4. Algoritma pembangkit bilangan prima acak menghasilkan bilangan prima 46181 Algoritma Pembangkit Bilangan Prima Acak Rabin Miller menghasilkan bilangan acak prima (8 digit) yaitu bilangan 55184879. Gambar 5. Algoritma pembangkit bilangan prima acak menghasilkan bilangan prima 55184879 Algoritma Fast Exponentiation dengan a = 10123, b = 230402 dan c = 349384. Gambar 2. Bilangan 739 lulus tes prima Rabin Miller untuk A = 6 Algoritma Tes Prima Rabin Miller dengan angka yang dites = 1551. Gambar 6. Algoritma Fast Exponentiation dengan a = 10123, b = 230402 dan c = 349384, didapat hasil 13273 231

Algoritma Fast Exponentiation dengan a = 7287342, b = 5327543 dan c = 2394992. bilangan prima berdasrkan prosedur kerja algoritma tersebut. 5. Simpulan Gambar 7. Algoritma Fast Exponentiation dengan a = 7287342, b = 5327543 dan c = 2394992, didapat hasil 862400 Algoritma GCD dengan a = 151654 dan b = 1252. Aplikasi tes bilangan prima mengunakan rabin-miller, fast exponentiation, dan GCD dapat dijadikan alternatip pengujian bilangan prima yang besar, aplikasi ini dapat menampilkan hasil proses perhitungan (analisa) algoritma sehingga dapat membantu dalam proses pemahaman untuk dasar matematika kriptografi. Aplikasi ini juga dapat digunakan untuk pemahaman masalah faktorisasi, perpangkatan modulo dan bilangan prima Dari pembahasan diatas dapat disimpulkan pada dasarnya pengujian bilangan prima dapat dilakukan dan dipahami dengan mudah dengan mengunakan aplikasi bantu. 6. Pustaka Gambar 8. Algoritma GCD dengan a = 151654, b = 1252, didapat hasil 2 Algoritma GCD dengan a = 426995712 dan b = 56. Gambar 9. Algoritma GCD dengan a = 426995712, b = 56, didapat hasil 8 Aplikasi Tes Bilangan Prima adalah implementasi prosedur kerja algoritma Rabin Miller dalam menentukan apakah suatu bilangan yang di-input merupakan bilangan prima atau bukan. Dari hasil pengujian yang dilakukan algoritma Rabin-Miller dapat menetukan apakah bilangan yang diinputkan kedalam aplikasi merupakan bilangan prima atau bukan merupakan 1. Bruce Schneier, Applied Crytography, Second Edition, John Willey and Sons Inc., 1996. 2. Jennifer Seberpy, Jojef Pieprzyk, Cryptography : An Introduction to Computer Security. 3. K. Jusuf Ir, M.T., Kriptografi, Keamanan Internet dan Jaringan Komunikasi, Penerbit Informatika Bandung, 2002 4. Security Algorithms Group of Experts (SAGE), Report on the Evaluation of 3GPP Standard Confidentialty and Integrity Algorithms, 2000. 5. Matsui, Mitsuru, Toshio Tokita, MISTY, KASUMI and Camellia CipherAlgorithm Development, 2002. 6. William Stallings, Cryptography and Network Security, Third Edition, 2003. 7. David Cereso s Weblog, On GSM Security, URL:http://www.cerezo.name/weblog/ 8. Encryption security.com/directory/international-dataencryption-algorithm. 9. http://www.cs.nps.navy.mil/curricula/tracks/s ecurity/notes/chap04_43.html. 10. http://wwwunix.ecs.umass.edu/~ccowell/projects/vlsi %20Projects/ IDEA%20overview.htm. 11. http://eprint.iacr.org/2001/065.pdf, tanggal 11 Juli 2010. 12. www.cs.ru.nl/~petervr/library/ html/security/gb_2001_cryptography.pdf (Tanggal akses: 28 Juli 2010). 232