Lucas Lehmer Primality Test Analisis

2.5 Lucas Lehmer Primality Test

Di dalam kriptografi, bilangan prima memiliki peranan yang sangat penting. Beberapa algoritma kriptografi, seperti RSA, menggantungkan kekuatannya pada sulitnya faktorisasi bilangan besar. Oleh karena itu, penggunaan bilangan prima yang besar menjadi sangat penting. Sebenarnya ada banyak cara untuk mengetahui suatu bilangan itu prima atau bukan, dan salah satu yang bisa digunakan adalah Lucas-Lehmer primality test. Metode ini pertama kali ditemukan oleh dua orang ilmuan yaitu Francois Edouard Lucas Anatole berkebangsaan Perancis dan Derrick Henry Lehmer berkebangsaan Amerika Serikat. Lucas Lehmer Primality Test bekerja dengan memanfaatkan bilangan Mersenne. Rumus bilangan Mersenne yaitu M p = 2 p – 1. Rumus ini ditemukan oleh Marin Mersenne seorang berkebangsaan Perancis yang hidup antara tahun 1588-1648. Untuk memperoleh bilangan Mersenne M p adalah prima, maka p juga haruslah sebuah bilangan prima. Akan tetapi M p belum tentu prima meskipun p adalah prima. Bilangan Mersenne biasanya digunakan untuk mencari bilangan prima yang sangat besar [7]. Berikut ini merupakan langkah-langkah untuk mengetahui keprimaan suatu bilangan dengan Lucas-Lehmer primality test. 1. Masukkan bilangan Mersenne M p = 2 p – 1 dimana p ≥ 3 2. Hitung S j = S 2 j-1 – 2 mod M p dengan S 1 = 4 untuk j = 2,3,…,n-1 3. Jika S p-1 = 0 mod M p maka dapat disimpulkan bahwa M p bilangan prima dan jika M p ≠ 0 maka M p adalah bilangan komposit. Universitas Sumatera Utara BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis

Sebelum merancang sebuah sistem, perlu dilakukan analisis terlebih dahulu. Analisis sistem adalah proses menentukan kebutuhan sistem, apa yang harus dilakukan sistem untuk memenuhi kebutuhan klien user. Tahapan analisis sistem merupakan tahapan yang sangat penting karena kesalahan di dalam tahapan ini akan menyebabkan kesalahan pada tahapan selanjutnya. Sistem yang dirancang akan lebih baik dan memudahkan pengembang sistem dalam perbaikan apabila pada kemudian hari ditemukan kesalahan atau kekurangan [11].

3.1.1 Analisis Permasalahan

Enkripsi merupakan proses dimana informasi atau data yang akan dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu. Sedangkan dekripsi merupakan kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal. Aplikasi enkripsi dan dekripsi SMS ini dibuat dan dirancang dengan menggunakan metode pendekatan atas-bawah Top-Down Aprroach sehingga perancangan akan dimulai dari bentuk yang paling global, yaitu diagram konteks, kemudian akan diturunkan bertahap menjadi bentuk yang lebih rinci. Sistem yang akan dirancang terdiri dari dua proses secara garis besar, yaitu pengiriman SMS melalui proses enkripsi dengan algoritma RSA, encoding kedalam Universitas Sumatera Utara format PDU Protocol Data Unit, dan penerimaan SMS yang di dalamnya terdapat proses decoding PDU, dekripsi dengan algoritma RSA. Skema global dari proses- proses tersebut dapat dilihat pada gambar 3.1 dan 3.2. Gambar 3.1 Skema Global Proses Enkripsi dan Encoding PDU Plainteks SMS Enkripsi RSA Cipherteks Encoding Format PDU Cipherteks dalam format PDU Universitas Sumatera Utara Gambar 3.2 Skema Global Proses Decoding PDU dan Dekripsi

3.1.2 Analisis Protocol Data Unit PDU

Dalam proses pengiriman atau penerimaan SMS, data yang dikirim maupun diterima oleh stasiun bergerak menggunakan salah satu dari 2 mode yang ada, yaitu mode teks atau mode PDU. Dalam mode PDU, pesan yang dikirim berupa informasi dalam bentuk data dengan beberapa bagian-bagian informasi. Hal ini akan memberikan kemudahan jika dalam pengiriman akan dilakukan kompresi data, atau akan dibentuk sistem penyandian data dari karakter dalam bentuk untaian bit-bit biner. PDU tidak hanya berisi pesan teks saja, tetapi terdapat beberapa meta informasi yang lainnya, seperti nomor pengirim, nomor SMS Center, waktu pengiriman dan sebagainya. Semua informasi yang terdapat dalam PDU, dituliskan dalam bentuk pasangan-pasangan bilangan heksadesimal. Jenis PDU SMS yang akan digunakan adalah PDU Pengiriman SMS Submit dan PDU Penerimaan SMS Deliver . Cipherteks dalam format PDU Decoding Format PDU Cipherteks Dekripsi RSA Plainteks SMS Universitas Sumatera Utara

3.1.2.1 PDU Pengiriman SMS Submit

PDU pengiriman SMS Submit adalah pesan yang dikirim dari ponsel ke terminal yang kemudian dikirimkan ke SMSC. Pesan yang akan dikirimkan oleh terminal masih berbentuk teks, sedangkan dalam pengiriman ke SMSC harus dalam bentuk PDU. Oleh karena itu sebelum dikirim, terminal atau ponsel akan melakukan perubahan format teks menjadi format PDU, proses ini disebut dengan encodec. Adapun skema dari format PDU pengiriman adalah sebagai berikut. Tabel 3.1 Skema Format PDU Pengiriman SCA PDU-Type MR DA PID DCS VP UDL UD Sebagai contoh bila kita mengirim pesan ke nomor 6285691511707 dengan isi pesan adalah “Info Jadwal” dengan validitas waktu selama 5 hari, 10 jam, 60 menit. Maka format PDU-nya adalah seperti pada tabel 3.2 berikut. Tabel 3.2 Contoh Pesan SMS Submit dalam Format PDU Pesan Asli Irfanspasi08 PDU 0011000D81265896511107F70000AB8B0BOB49B939EC6C170 Berikut ini merupakan penjelasan masing-masing dari format PDU Pengiriman di atas : 1. SCA Service Center Address SCA berisi informasi nomor SMS Center. SCA memiliki tiga komponen utama, yaitu len, type of number dan BCD digits. Pada pengiriman SMS, nomor SMSC operator pengirim tidak dicantumkan. Oleh karena panjang SMS adalah 00 hexa maka field- field yang lain dapat diabaikan. SMSC yang digunakan adalah SMSC yang terdapat pada SIM card berdasarkan perintah “AT+CSCA”. Universitas Sumatera Utara Tabel 3.3 SCA dari PDU Pengiriman Octet Keterangan Nilai Len Panjang informasi SMSC 00 Type of Number 81 H = format lokal 91 H = format internasional none BCD Digits Nomor SMSC. Jika panjangnya ganjil, maka pada akhir karakter ditambahkan 0F H none 2. Tipe PDU PDU-Type Nilai default dari PDU untuk SMS Submit adalah 11 H. Pada tabel 3.2, nilai PDU-nya adalah 11 H. Tabel 3.4 PDU- Type dari PDU Pengiriman Bit 7 6 5 4 3 2 1 Nama RP UDHI SRI VPF VPF RD MTI MTI Nilai 1 1 Keterangan : a RP Report Path adalah parameter yang menunjukkan bahwa ada alur jawaban. b UDHI User Data Header Indicator, bit ini bernilai 1 jika data pengirim dimulai dengan suatu judul atau tema. c SRI Status Report Indication, bit ini bernilai 1 jika suatu status laporan akan dikembalikan ke SME. Universitas Sumatera Utara d VPF Validity Period Format, format dari batas waktu pengiriman jika pesan gagal diterima. 00 : Jika pesan tidak sampai di SMSC. 10 : Format relatif satu octet. 01 : Format enhanced tujuh octet. 11 : Format absolut tujuh octet. e RD Reject Duplicates, parameter yang menandakan ya atau tidaknya Service Center akan menerima suatu pengiriman pesan SMS untuk suatu pesan yang masih disimpan dalam Service Center tersebut. RD mempunyai MR dan DA yang sama sebagai pesan dan dikirimkan dari OA yang sama. f MTI Message Type Indicator, bit ini bernilai 0 untuk menunjukkan bahwa PDU ini adalah suatu SMS Deliver. 3. MR Message Reference MR Message Reference adalah acuan dari pengaturan SMSC. Nilai yang diberikan adalah “00” dan pengaturan SMS dilakukan sendiri oleh ponsel tujuan. Pada tabel 3.2, nilai MR-nya adalah 00 H. 4. DA Destination Address DA berisi informasi nomor alamat yang dituju. DA memiliki tiga komponen utama, yaitu len, type of number dan destination number. Penulisan format destination number sama dengan originator address. Pada tabel 3.2, nilai len, type of number dan destination number berturut-turut adalah 0D81265896511107F7. Universitas Sumatera Utara Tabel 3.5 Destination Address DA Octet Keterangan Nilai Len Panjang nomor tujuan 0D Type of Number Type of address dari SMSC 81 H = format lokal 91 H = format internasional 81 Destination Number Nomor destination address. Jika panjangnya ganjil, maka pada akhir karakter ditambahkan 0F H 0D81265896511107F7 5. PID Protocol Identifier PID adalah tipe atau format dari cara pengiriman pesan, yang biasanya diatur dari ponsel pengirim. Misalnya tipe Standard Text, Fax, E-mail, Telex, X400 dan lain-lain. Nilai default dari PID adalah 00 Standard Text. Pada tabel 3.2, nilai PID adalah 00 H, sehingga pesan yang diterima berupa teks standar. 6. DCS Data Coding Scheme DCS merupakan skema pengkodean data yang digunakan untuk menentukan kelas dari pesan tersebut, apakah berupa SMS dengan teks standar, flash SMS atau blinking SMS. Pada tabel 3.2, DCS bernilai 00 H yang menunjukkan bahwa SMS yang dikirim berupa teks standar. Universitas Sumatera Utara 7. VP Validity Period VP berisi informasi jangka waktu validitas pesan SMS yang disimpan di SMSC apabila pesan tersebut gagal diterima oleh ponsel penerima. Pada tabel 3.2, nilai VP- nya adalah AB8B0B H. Tabel 3.6 Nilai Validitas Periode Waktu VP Nilai Validitas Periode 5 menit - 720 menit 12 jam Waktu VP 5 – 1 12.5 jam - 24 jam 143 + Waktu VP – 12 2 2 - 30 Hari 166 + Waktu VP Lebih dari 4 minggu 192 + Waktu VP Pada contoh di atas, waktu VP-nya adalah 5 hari, 10 jam, 60 menit. Maka nilai VP- nya adalah : Hari : 166 + 5 = 171 d = AB H, Jam : 143 + 10 - 12 2 = 139 d = 8B H, Menit : 60 5 - 1 = 11 d = 0B Jadi hasil VP-nya adalah AB8B0B H. 8. UDL User Data Length UDL berisi informasi mengenai panjang data yang diterima dalam bentuk teks standar. Pada contoh di atas, isi pesan yang dikirim adalah “Info Jadwal” yang memiliki 11 karakter, maka pada tabel 3.2 nilai UDL-nya adalah 0B H. Universitas Sumatera Utara 9. UD User Data Berisi informasi data utama yang dibawa. Pesan “Info Jadwal” yang dikodekan menjadi 7 bit default alphabet septet harus di-encode-kan menjadi 8 bit octet untuk SMS-Deliver. Pada tabel 3.2, nilai UD-nya adalah “49B939EC6C170”. Tabel 3.7 di bawah ini menunjukkan cara pengkodean dengan menggunakan bantuan tabel default alphabet 7 bit. Pada tiap octet jika jumlah bit kurang dari 8, maka diambil bit paling kanan pada septet selanjutnya dan ditambahkan pada bagian kiri septet sebelumnya. Tabel 3.7 User Data pada PDU Pengiriman Karakter Desimal Septet 7 bit Octet 8 bit Nilai hexa I 73 100 1001 0100 1001 49 r 114 111 0010 1011 1001 B9 f 102 110 0110 0011 1001 39 a 97 110 0001 1110 1100 EC n 110 110 1110 0000 0110 6 spasi 32 010 0000 1100 0001 C1 48 011 0000 0111 0000 70 8 56 011 1000 - -

3.1.2.2 PDU Penerimaan SMS Deliver

Aplikasi Server yang akan dibuat adalah menggunakan mode PDU dengan encoding 7 bit default alphabet. Berikut adalah contoh perubahan mode PDU menjadi teks biasa sehingga dapat kita mengerti. SMS Deliver PDU adalah terminal yang menerima pesan dari SMSC dalam format PDU. PDU Penerimaan memiliki format seperti pada tabel 3.8 di bawah ini. Pada PDU ini, terdapat beberapa meta-informasi yang dibawa, antara lain: Universitas Sumatera Utara Tabel 3.8 Skema Format PDU Penerimaan SCA PDU - Type OA PID DCS SCTS UDL UD Contoh : Kita menerima pesan dari 6285695316565 dengan isi pesan SMS “Poli Paru” pada tanggal 20 Oktober 2011 pukul 10:45:21 WIB. Maka format PDU adalah pada tabel 3.9 : Tabel 3.9 Contoh Pesan SMS Deliver dalam Format PDU Pesan Asli Irfan 08 Irfanspasi08 PDU 2681050000F0040D81265896356165F50000110102015 412820949B939EC6C170 Berikut merupakan penjelasan masing-masing dari format PDU. Penerimaan di atas : 1. SCA Service Center Address SCA berisi informasi SMS center. SCA memiliki tiga komponen utama, yaitu len, type of number dan Service Center Number, seperti pada tabel 3.10 berikut. Pada tabel 3.9, nilai SCA-nya adalah 2681050000F0. Tabel 3.10 SCA dari PDU Penerimaan Octet Keterangan Nilai Len Panjang informasi SMSC dalam octet 26 Type of Number Type of address dari SMSC 81 H = format lokal 91 H = format internasional 85 Service Center Number Nomor SMSC dari operator pengirim. Jika panjangnya ganjil, maka pada akhir karakter ditambahkan 0F H 05 00 00 F0 Universitas Sumatera Utara Tabel 3.11 Nomor SMS Center Operator Seluler Di Indonesia No. Operator Selular Nomor SMS Center Kode PDU 1. Telkomsel 081100000 62811000000 06818011000000 07912618010000F0 2. Satelindo 0816124 62816125 0581806121F4 079126181642 3. Excelcom 0818445009 6281445009 06818081440590 079126184885400F9 4. Indosat-M3 0855000000 62855000000 06818055000000 07912658050000F0 6. 3 089644000001 6289644000001 0681806944000010 0791269846040000F1 Contoh: untuk nomor SMS Center Indosat-M3 IM3 dapat ditulis dengan dua cara sebagai berikut: Cara I: 0855000000 diubah menjadi: a. 06  ada 6 pasang b. 81  1 pasang c. 80-55-00-00-00  5 pasang Digabung menjadi : 06818055000000 Cara II: 62855000000 diubah menjadi: a. 07  ada 7 pasang b. 91  1 pasang c. 26-58-05-00-00-F0  6 pasang Digabung menjadi : 07912658050000F0 Universitas Sumatera Utara Contoh: untuk nomor ponsel yang dituju adalah 6285275677333 dapat ditulis dengan dua cara sebagai berikut : Cara I: 085275677333 diubah menjadi : a. 0C  ada 12 angka b. 81 c. 80-25-57-76-37-33 Digabung menjadi : 0C81802557763733 Cara II: 6285275677333 diubah menjadi: a. 0D  ada 13 angka b. 91 c. 26-58-72-65-77-33-F3 Digabung menjadi : 0D91265872657733F3 2. Tipe PDU PDU Type Berisi informasi jenis dari PDU tersebut. Nilai default dari PDU untuk SMS Deliver adalah 04 H dan nilai PDU-type pada tabel 3.9 adalah 04 H. Tabel 3.12 PDU-Type dari PDU Penerimaan Bit 7 6 5 4 3 2 1 Nama RP UDHI SRI none none MMS MTI MTI Nilai 1 Keterangan : a RP Replay Path, alur yang menunjukkan bahwa ada alur jawaban. Universitas Sumatera Utara b UDHI User Data Header Indicator, bit ini bernilai 1 jika SMS menggunakan judul. c SRI Status Report Indication, bit ini bernilai 1 jika suatu status laporan akan dikembalikan. d MMS More Message to Send, bit ini bernilai 1 jika ada pesan lebih yang dikirim. e MTI Message Type Indicator, bit ini bernilai 0 untuk menunjukkan bahwa PDU ini adalah SMS Deliver. 3. OA Originator Address Berisi informasi nomor pengirim. OA memiliki tiga komponen utama, yaitu len panjangnya nomor pengirim, type of number format dari nomor pengirim dan originator number nomor pengirim. Nilai OA pada tabel 3.9 adalah 0D81265896356165F5. Tabel 3.13 Originator Address OA Octet Keterangan Nilai Len Panjang nomor Orginator Address 0D Type of Number Format dari nomor pengirim 81 H = format lokal 91H = format internasional 81 Orginator Number Nomor pengirim dari operator pengirim. Jika panjangnya ganjil, maka pada akhir karakter ditambahkan 0F H 265896356165F5 Universitas Sumatera Utara 4. PID Protocol Identifier PID adalah tipe atau format dari cara pengiriman pesan, yang biasanya diatur dari ponsel pengirim. Misalnya tipe Standard Text, Fax, E-mail, Telex, X400 dan lain-lain. Nilai default dari PID adalah 00 Standard Text. Pada tabel 3.9, nilai PID adalah 00 H. 5. DCS Data Coding Scheme DCS berisi informasi skema pengkodean data yang digunakan. Nilai default-nya adalah 00 H, dengan menggunakan character coding default 7 bit dan message class 0. Pada beberapa handphone, message class 0 dengan encoding 7 bit adalah berupa flash SMS. Sedangkan encoding 16 bit Unicode ucs2, message yang didahului “0001” dengan class 0 adalah berupa blinking flash SMS. Pada tabel 3.9, nilai DCS adalah 00 H. DCS juga menentukan message class seperti tabel di bawah ini. Tabel 3.14 Data Coding Scheme DCS Nilai hexa Character coding Message Class 00 Default 7 bit No class F0 Default 7 bit Class 0 immediate display F1 Default 7 bit Class 1 mobile equipment- specific F2 Default 7 bit Class 2 SIM specific message F3 Default 7 bit Class 3 terminate equipment- specific F4 8 – bit Class 0 immediate display F5 8 – bit Class 1 mobile equipment- specific F6 8 – bit Class 2 SIM specific message F7 8 – bit Class 3 terminate equipment- specific Universitas Sumatera Utara 6. SCTS Service Center Time Stamp Berisi informasi waktu dari penerimaan pesan oleh SMSC penerima. Pada tabel 3.9, nilai SCTS-nya adalah 11010201541282 yang berarti : Tabel 3.15 Nilai Service Center Time Stamp SCTS Tahun 11 menjadi 2011 Bulan 01 menjadi 10, Oktober Tanggal 02 menjadi 20 Jam 01 menjadi 10 Menit 54 menjadi 45 Detik 12 menjadi 21 Zona Waktu 82 menjadi 28, dimana 1 unit = 15 menit. 1528 60 = 7, menjadi GMT+7 = WIB. 7. UDL User Data Length UDL berisi informasi mengenai panjang data yang diterima dalam bentuk teks standar. Pada tabel 3.9, nilai UDL-nya adalah 09 H, yang berarti pesan yang diterima adalah sebanyak 9 karakter. 8. UD User Data Berisi informasi data utama yang dibawa. Pesan “Poli Paru” yang dikodekan menjadi 7 bit default alphabet Septet harus di-encode-kan menjadi 8 bit Octet untuk SMS- Transfer. Pada tabel 3.9 diatas, nilai UD-nya adalah “D0373B0D8286E575”. Tabel 3.16 di bawah ini menunjukkan cara pengkodean dengan menggunakan bantuan tabel default alphabet 7 bit tabel 3.7. Pada tiap octet jika jumlah bit kurang dari 8, maka diambil bit paling kanan pada septet selanjutnya dan ditambahkan pada bagian kiri septet sebelumnya. Universitas Sumatera Utara Tabel 3.16 User Data pada PDU Penerimaan Nilai hexa Octet 8 bit Septet 7 bit Desimal Karakter 49 0100 1001 100 1001 73 I B9 1011 1001 111 0010 114 r 39 0011 1001 110 0110 102 f EC 1110 1100 110 0001 97 a 6 0000 0110 110 1110 110 n C1 1100 0001 010 0000 32 spasi 70 0111 0000 011 0000 48 - - 011 1000 56 8

3.1.3 Analisis Lucas Lehmer Primality Test

Di dalam kriptografi, bilangan prima memiliki peranan yang sangat penting. Beberapa algoritma kriptografi, seperti RSA, menggantungkan kekuatannya pada sulitnya faktorisasi bilangan besar. Oleh karena itu, penggunaan bilangan prima yang besar menjadi sangat penting. Ada banyak cara untuk mengetahui suatu bilangan itu prima atau bukan, dan salah satu yang bisa digunakan adalah Lucas-Lehmer primality Test. Lucas Lehmer Primality Test bekerja dengan memanfaatkan bilangan Mersenne. Rumus bilangan Mersenne yaitu: Keterangan: M = Bilangan Mersenne P = Bilangan Prima M p = 2 p - 1 Universitas Sumatera Utara Untuk memperoleh bilangan Mersenne M p adalah bilangan prima, maka p yang dimasukkan juga haruslah sebuah bilangan prima dan p harus lebih besar sama dengan tiga. Akan tetapi M p belum tentu bilangan prima meskipun p adalah bilangan prima. Bilangan Mersenne biasanya digunakan untuk mencari bilangan prima yang sangat besar. Berikut ini merupakan langkah-langkah untuk mengetahui keprimaan suatu bilangan dengan Lucas-Lehmer primality test. 1. Masukkan bilangan Mersenne M p = 2 p – 1 dimana p ≥ 3 2. Hitung S j = S 2 j-1 – 2 mod M p dengan S 1 = 4 untuk j = 2,3,…,n-1 3. Jika S p-1 = 0 mod M p maka dapat disimpulkan bahwa M p bilangan prima dan jika M p ≠ 0 maka M p adalah bilangan komposit. Contoh 1 : Kita cari bilangan Mersenne dengan memasukkan p = 3 Maka M 3 = 2 3 – 1 = 8 – 1 = 7 Dengan S 1 = 4 maka S 2 = S 2 2-1 – 2 mod M 3 = 4 2 – 2 mod 7 = 16 – 2 mod 7 = 14 mod 7 = 0 Kita dapat S p-1 atau S 3-1 atau S 4 = 0 maka M 3 = 7 adalah bilangan prima. Contoh 2 : Kita cari bilangan Mersenne dengan memasukkan p = 5 Maka M 5 = 2 5 – 1 Universitas Sumatera Utara = 32 – 1 = 31 Dengan S 1 = 4 maka S 2 = S 2 2-1 – 2 mod M 5 = 4 2 – 2 mod 31 = 16 – 2 mod 31 = 14 mod 31 = 14 S 3 = S 2 3-1 – 2 mod M 5 = 14 2 – 2 mod 31 = 196 – 2 mod 31 = 194 mod 31 = 8 S 4 = S 2 4-1 – 2 mod M 5 = 8 2 – 2 mod 31 = 64 – 2 mod 31 = 62 mod 31 = 0 Kita dapat S p-1 atau S 5-1 atau S 4 = 0 maka M 5 = 31 adalah bilangan prima. Contoh 3 : Kita cari bilangan Mersenne dengan memasukkan p = 11 Maka M 11 = 2 11 – 1 = 2048 – 1 = 2047 Dengan S 1 = 4 maka S 2 = S 2 2-1 – 2 mod M 11 = 4 2 – 2 mod 2047 Universitas Sumatera Utara = 16 – 2 mod 2047 = 14 mod 2047 = 14 S 3 = S 2 3-1 – 2 mod M 11 = 14 2 – 2 mod 2047 = 196 – 2 mod 2047 = 194 mod 2047 = 194 S 4 = S 2 4-1 – 2 mod M 11 = 194 2 – 2 mod 2047 = 37676 – 2 mod 2047 = 37674 mod 2047 = 788 S 5 = S 2 5-1 – 2 mod M 11 = 788 2 – 2 mod 2047 = 620944 – 2 mod 2047 = 620942 mod 2047 = 701 S 6 = S 2 6-1 – 2 mod M 11 = 701 2 – 2 mod 2047 = 491401 – 2 mod 2047 = 491399 mod 2047 = 119 S 7 = S 2 7-1 – 2 mod M 11 = 119 2 – 2 mod 2047 = 14161 – 2 mod 2047 = 14159 mod 2047 = 1877 Universitas Sumatera Utara S 8 = S 2 8-1 – 2 mod M 11 = 1877 2 – 2 mod 2047 = 3523129 – 2 mod 2047 = 3523127 mod 2047 = 240 S 9 = S 2 9-1 – 2 mod M 11 = 240 2 – 2 mod 2047 = 57600 – 2 mod 2047 = 57598 mod 2047 = 282 S 10 = S 2 10-1 – 2 mod M 11 = 282 2 – 2 mod 2047 = 79524 – 2 mod 2047 = 79522 mod 2047 = 1736 Kita dapat S p-1 atau S 11-1 atau S 10 ≠ 0 maka M 11 = 2047 adalah bukan bilangan prima 23 x 89 = 2047. Dan terbukti bahwa tidak semua M p adalah bilangan prima meskipun p adalah bilangan prima. Bilangan prima yang dimasukkan ke dalam algoritma RSA adalah bilangan prima yang dapat menghasilkan bilangan mersenne, sehingga tidak semua bilangan prima dapat dimasukkan atau dibangkitkan dalam aplikasi.

3.1.4 Analisis Algoritma RSA

Algoritma RSA merupakan algoritma pertama yang cocok untuk digital signature. Namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi dan menjadi salah satu yang paling maju dalam bidang kriptografi. Prinsip kerja algoritma RSA ini terletak pada sulitnya memfaktorkan bilangan yang besar Universitas Sumatera Utara menjadi faktor-faktor prima. Pemfaktoran bertujuan untuk mendapatkan kunci privat. Jika bilangan tersebut tidak dapat difaktorkan, maka keamanan algoritma RSA tarsebut terjamin. Penjelasan metode RSA selengkapnya adalah sebagai berikut: 1. Pembangkitan Kunci RSA a. Dapatkan 2 buah bilangan prima p dan q. Bilangan prima p dan q ini harus dirahasiakan. Besar kecilnya bilangan prima ini menentukan tingkat keamanan data, semakin besar bilangan semakin banyak faktorialnya yang mengakibatkan semakin sulit data untuk dapat dipecahkan dalam waktu singkat. Pengujian suatu bilangan prima dilakukan dengan metode Lucas Lehmer Primality Test. Misal, diperoleh nilai: p =31 q =7 b. Dapatkan nilai n, dimana n= pq, dan n bersifat tidak rahasia n = 31 7 = 217 c. Dapatkan nilai Фn, dimana Фn= p-1q-1, dan m bersifat rahasia Фn = 31 - 17 - 1 = 30 6 = 180 d. Pilih sebuah bilangan bulat kecil e yang coprime terhadap Фn, dimana e merupakan kunci publik untuk proses enkripsi dan e tidak rahasia. e coprime terhadap Фn, maksudnya adalah bilangan terbesar yang dapat membagi e dan Фn untuk menghasilkan nilai 1 pembagi ini dinyatakan dengan gcd greatest common divisor. Algoritma Euclids digunakan untuk mencari gcd dua bilangan sebagai berikut: Universitas Sumatera Utara function Euclida, b Input: Two integers a and b with a ≥ b ≥ 0 Output: gcda, b if b = 0: return a return Euclidb, a mod b Sumber : Dasgupta, 2006 e = 2 = gcde, 180 = 2 no e = 3 = gcde, 180 = 3 no e = 4 = gcde, 180 = 4 no e = 5 = gcde, 180 = 5 no e = 6 = gcde, 180 = 6 no e = 7 = gcde, 180 = 1 yes e. Hitung kunci dekripsi, d, dengan kekongruenan ed ≡1 mod Фn Cari nilai d, dengan syarat de Фn ≡ 1 Фn. Kita dapat menuliskan kembali pernyataan tersebut dengan d = 1+k Фne sehingga nilai-nilai k dapat diselesaikan sampai didapat sebuah nilai yang integer seperti berikut: k = 0 = d = 1 7 = 0,14 no k = 1 = d = 181 7 = 25,86 no k = 2 = d = 361 7 = 51,57 no k = 3 = d = 481 7 = 68,71 no k = 4 = d = 721 7 = 103 yes Maka akan didapatkan: Kunci Publik n = 217 e = 7 Kunci Rahasia n = 217 d = 103 Universitas Sumatera Utara 2. Enkripsi a. Ambil kunci publik penerima pesan, e, dan n. Kemudian masukkan pesan yang ingin dienkripsi plaintext. Contoh: Plaintext: Irfan 08 Kode ASCII dalam desimal: I = 73 r = 114 f = 102 a = 97 n = 110 spasi = 32 0 = 48 8 = 56 Agar nantinya lebih mudah dalam proses dekripsi, yaitu dalam memisahkan kode ASCII desimal kedalam untuk mengembalikan kedalam Digabungkan menjadi : m = 7311410297110324856 b. Plaintext dinyatakan dengan blok-blok m1, m2, …, m i sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, n-1]. Kode ASCII dalam desimal dari plaintext di atas dipecah menjadi blok-blok m. Nilai-nilai m haruslah masih dalam selang [0, 133-1]. Misalkan dibagi menjadi 2 angka dalam 1 blok. Maka blok-blok yang terbentuk adalah : m1=73 m4=02 m7=03 m10=06 m2=11 m5=97 m8=24 m3=41 m6=11 m9=85 c. Setiap blok m i dienkripsi menjadi blok c i dengan rumus c i = m i e mod n. Bila nilai dari m i e terlalu besar sehingga tidak memungkinkan untuk ditampung kedalam sebuah variabel integer dan akan memperlambat proses perhitungan, maka digunakanlah fungsi modular eksponensiasi, yaitu: Universitas Sumatera Utara function modexpx, y,N Input: Two n-bit integers x and N, an integer exponent y Output: x y mod N if y = 0: return 1 z = modexpx, y2 , N if y is even: return z 2 mod N else: return x z 2 mod N Sumber : Dasgupta, 2006 Dengan kunci publik e = 7 dan n = 217, maka blok-blok m diatas dapat dienkripsi menjadi blok-blok c sebagai berikut: Tabel 3.17 Blok-Blok m i Dienkripsi Menjadi Blok-Blok c i i m i e n c i = m i e mod n 1 73 7 217 199 2 11 7 217 137 3 41 7 217 20 4 02 7 217 128 5 97 7 217 202 6 11 7 217 137 7 03 7 217 17 8 24 7 217 03 9 85 7 217 29 10 06 7 217 06 Jadi ciphertext yang dihasilkan adalah : 199 137 20 128 202 137 17 03 29 06 Universitas Sumatera Utara 3. Dekripsi Setiap blok ciphertext c i didekripsikan kembali menjadi blok m i dengan rumus: m i = c i d mod n Dengan kunci privat, d = 103 dan n =217, maka dapat dilakukan proses dekripsi sebagai berikut: Tabel 3.18 Blok-Blok c i Didekripsi Menjadi Blok-Blok m i i c i d n m i = c i d mod n 1 199 103 217 73 2 137 103 217 11 3 20 103 217 41 4 128 103 217 02 5 202 103 217 97 6 137 103 217 11 7 17 103 217 03 8 03 103 217 24 9 29 103 217 85 10 06 103 217 06 Maka dihasilkan kembali: m = 73114102971103248506 Dengan melakukan langkah di atas, dapat dilihat bahwa pesandata telah sama dengan data asli sebelum enkripsi yaitu bila diubah ke dalam karakter ASCII dapat dibaca sebagai berikut: Plaintext = Irfan 08 Universitas Sumatera Utara

3.2 Perancangan Sistem