BAB 2 LANDASAN TEORI Interaksi Manusia dan Komputer. interaktif untuk digunakan oleh manusia. Golden Rules of Interaction Design, yaitu:

dokumen-dokumen yang mirip
Algoritma RSA dan ElGamal

BAB 2 LANDASAN TEORI

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

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

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

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

BAB 2 LANDASAN TEORI

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

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

Perhitungan dan Implementasi Algoritma RSA pada PHP

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

Adi Shamir, one of the authors of RSA: Rivest, Shamir and Adleman

BAB II LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN

Properti Algoritma RSA

BAB III ANALISIS. Pada tahap analisis, dilakukan penguraian terhadap topik penelitian untuk

BAB 3 KRIPTOGRAFI RSA

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

VISUALISASI ALGORITMA RSA DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

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

Implementasi dan Perbandingan Algoritma Kriptografi Kunci Publik

BAB I PENDAHULUAN 1.1. Latar Belakang

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB 1 PENDAHULUAN Latar Belakang

RSA (Rivest, Shamir, Adleman) Encryption

BAB I PENDAHULUAN 1.1 Latar Belakang

RUANG LINGKUP KRIPTOGRAFI UNTUK MENGAMANKAN DATA Oleh: Budi Hartono

Bab 2: Kriptografi. Landasan Matematika. Fungsi

Sistem Kriptografi Kunci Publik Multivariat

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

BAB 2 LANDASAN TEORI

KRIPTOGRAFI KURVA ELIPTIK ELGAMAL UNTUK PROSES ENKRIPSI-DEKRIPSI CITRA DIGITAL BERWARNA

Enkripsi Dan Deskripsi Menggunakan Algoritma RSA

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

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

BAB II TINJAUAN PUSTAKA

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

BAB 1. Pendahuluan. 1.1 Latar Belakang Masalah

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

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

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

KRIPTOGRAFI KUNCI PUBLIK

Kajian Perhitungan dan Penerapan Algoritma RSA pada Proses Pengamanan Data

APLIKASI ENKRIPSI DAN DEKRIPSI MENGGUNAKAN ALGORITMA RSA BERBASIS WEB

BAB Kriptografi

Kriptografi Elliptic Curve Dalam Digital Signature

BAB 1 PENDAHULUAN Latar Belakang

BAB II TINJAUAN PUSTAKA

Perbandingan Algoritma RSA dan Rabin

Public Key Cryptography

Kriptografi. A. Kriptografi. B. Enkripsi

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

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

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

BAB II LANDASAN TEORI

Pengenalan Kriptografi

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

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

Pemampatan Data Sebagai Bagian Dari Kriptografi

BAB III ANALISIS DAN PERANCANGAN

BAB 2 TINJAUAN PUSTAKA

KRIPTOGRAFI SISTEM KEAMANAN KOMPUTER


MODUL PERKULIAHAN EDISI 1 MATEMATIKA DISKRIT

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

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

Tanda Tangan Digital Majemuk dengan Kunci Publik Tunggal dengan Algoritma RSA dan El Gamal

BAB I PENDAHULUAN. 1.1 Latar Belakang

Algoritma Kriptografi Modern (AES, RSA, MD5)

Modifikasi Algoritma RSA dengan Chinese Reamainder Theorem dan Hensel Lifting

Security Sistem Informasi.

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

Cryptography. Lisa Anisah. Abstrak. Pendahuluan. ::

1.1 Latar Belakang BAB I PENDAHULUAN

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

Penerapan ECC untuk Enkripsi Pesan Berjangka Waktu

BAB II TINJAUAN PUSTAKA

Bab 1 PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB 1 PENDAHULUAN 1.1. Latar belakang

(pencurian, penyadapan) data. Pengamanan data dapat dilakukan dengan dua cara, yaitu steganography dan cryptography.

Penerapan algoritma RSA dan Rabin dalam Digital Signature

PENERAPAN ALGORITMA RSA DAN DES PADA PENGAMANAN FILE TEKS

BAB 2 LANDASAN TEORI

KRIPTOGRAFI MATERI KE-2

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

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

Transkripsi:

BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Interaksi Manusia dan Komputer Interaksi manusia dan komputer adalah ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia. Dalam merancang suatu sistem Interaksi Manusia dan Komputer haruslah memperhatikan delapan aturan emas yang juga disebut Eight Golden Rules of Interaction Design, yaitu: 1. Berusaha untuk konsisten. Desainer harus selalu berusaha konsisten dalam merancang tampilan. Contoh : penggunaan teknologi yang konsisten pada menu. Yang perlu diperhatikan adalah warna, font, dan tampilan juga harus konsisten. 2. Memungkinkan pengguna yang sering menggunakan shortcuts. Penggunaan shortcuts untuk mengurangi jumlah interaksi dan meningkatkan kecepatan tampilan. Umumnya user yang sudah sering menggunakan aplikasi lebih menginginkan kecepatan dalam mengakses fungsi yang diinginkan. Jadi interaksi yang diminta pendek dan langsung menuju fungsi tersebut. 6

7 3. Memberikan umpan balik yang informatif. Respon balik harus diberikan untuk memberikan informasi kepada user sesuai dengan action yang dilakukannya. User akan mengetahui action apa yang telah dan akan dilakukan dengan adanya respon balik ini. Respon bisa berupa konfirmasi atau informasi atas suatu action. Misalnya setelah melakukan fungsi simpan dapat diberikan konfirmasi bahwa data telah berhasil disimpan. 4. Merancang dialog yang memberikan penutupan (keadaan akhir). Respon balik atas akhir dari suatu proses dan action akan sangat membantu dan juga user akan mendapat signal untuk melanjutkan action lainnya. Misalnya pada saat akan menutup suatu program akan ditampilkan konfirmasi penutupan. 5. Memberikan penanganan kesalahan yang sederhana. Sistem harus dirancang agar pemakai tidak membuat kesalahan yang serius. Jika pemakai melakukan kesalahan, sistem harus bisa mendeteksi kesalahan dan memberikan instruksi yang sederhana, membangun dan khusus untuk melakukan perbaikan. 6. Mengijinkan pembalikan aksi (undo) dengan mudah. Terkadang user tidak sengaja melakukan suatu action yang tidak diinginkan untuk itu user ingin melakukan pembatalan. Sistem harus sebanyak mungkin memberikan fungsi pembatalan ini. User akan merasa lebih aman dan tidak takut dalam mencoba sistem tersebut karena user tahu bahwa kesalahan dapat diperbaiki sehingga mendorong penjelajahan pilihan yang biasa dipakai.

8 7. Mendukung Internal Focus of Control. User berinisiatif dalam melakukan aksi daripada menunggu respon dari sistem untuk beraksi. 8. Mengurangi beban ingatan jangka pendek. 2.1.2 STD (State Transition Diagram) State Transition Diagram (STD) adalah suatu modelling tool yang menggambarkan sifat ketergantungan terhadap waktu pada sistem. STD digunakan untuk mengidentifikasikan sebagaimana sistem harus berperilaku seperti resiko dari kejadian eksternal. Untuk mencapai hal ini STD menampilkan berbagai jenis model perilaku dan hasil dan tingkah laku yang mana transisi dibuat dari state satu ke state yang lain. Penyajian STD merupakan landasan dasar untuk menentukan perilaku. Biasanya dalam STD digunakan notasi seperti: 1. Active. State, simbolnya persegi panjang State adalah kumpulan keadaan atau atribut yang memberi perincian seseorang atau benda pada waktu dan kondisi tertentu. Contohnya seperti proses user mengisi password, menentukan instruksi berikutnya. Simbol state:

9 Transition State / Perubahan state, simbolnya tanda panah berarah. Condition Kejadian pada lingkungan eksternal yang bisa terdeteksi oleh sistem. Hal ini akan mengakibatkan perubahan terhadap state dari keadaan state menunggu X ke state menunggu Y. Contohnya seperti: interrupt signal maupun data. 2. Passive. Sistem ini tidak melakukan kontrol terhadap lingkungan, akan tetapi lebih bersifat menerima data atau memberikan reaksi saja ( sistem yang menerima atau mengumpulkan data melalui signal yang dikirimkan oleh satelit ). Berikut adalah gambar STD sederhana: State X Condition Action State Y Gambar 2.1 State Transition Diagram

10 2.2 Teori-teori Khusus Yang Berhubungan Dengan Topik Yang Dibahas 2.2.1 Enkripsi dan Dekripsi Enkripsi adalah proses mengubah suatu informasi asli (plaintext) menjadi informasi dalam bahasa sandi (ciphertext). Sedangkan dekripsi adalah proses mengubah informasi bersandi (chipertext) menjadi informasi asli (plaintext). Bila proses enkripsi dimisalkan dengan C, maka proses enkripsi dapat dituliskan sebagai berikut : C = E (M) dimana M = pesan asli E = proses enkripsi C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi) Sedangkan bila proses dekripsi dimisalkan dengan M, maka proses dekripsi dapat dituliskan sebagai berikut : M = D (C) dimana M = pesan asli C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi) D = proses dekripsi Teknik enkripsi dan dekripsi ini digunakan oleh banyak orang dalam sistem pengamanan informasi. Tiga aspek yang dipertimbangkan dalam pengamanan data adalah :

11 1. Serangan keamanan (security attack). Adalah suatu tindakan yang dilakukan untuk mengetahui informasi yang dilakukan oleh pihak yang tidak berhak. 2. Mekanisme keamanan (security mechanism). Adalah mekanisme yang didisain untuk melakukan pendeteksian, pencegahan, atau pemulihan dari suatu serangan keamanan. 3. Pelayanan keamanan (security service). Adalah suatu pelayanan yang mampu meningkatkan keamanan dari sistem pemrosesan data dan transfer informasi dalam suatu organisasi. Ada dua jenis serangan terhadap data atau informasi yang diamankan berdasarkan keterlibatan penyerang dalam komunikasi data adalah : 1. Serangan pasif (passive attack). Penyerang tidak terlibat aktif dalam pertukaran informasi. Penyerang melakukan aktifitas menguping atau memonitor transmisi. Tujuannya adalah untuk mendapatkan informasi yang sedang dikirim. Jenis serangan ini dibedakan menjadi dua, yaitu : a. Pengeluaran isi informasi. b. Analisis lalu lintas data. Passive attack sangat sukar untuk dideteksi, karena penyerang tidak melakukan perubahan informasi yang ditransmisikan. 2. Serangan aktif (active attack). Penyerang aktif melibatkan diri dalam pertukaran informasi. Penyerang dilakukan dengan interupsi, dan perubahan atau

12 penggandaan informasi. Jenis serangan ini dibedakan menjadi empat macam, yaitu : a. Pemalsuan identitas. b. Modifikasi informasi. c. Pengiriman ulang informasi. d. Pembantahan informasi. Serangan aktif memiliki sifat yang berlawanan dengan serangan pasif, serangan aktif lebih sulit dicegah karena akan melibatkan proteksi fisik dari semua jaringan komunikasi dan jalurnya pada setiap waktu. 2.2.2 Kriptografi Kriptografi berasal dari bahasa Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan. Sehingga definisi dari kriptografi adalah ilmu yang mempelajari teknik teknik matematika yang berhubungan dengan aspek keamanan. Tetapi tidak semua aspek keamanan informasi dapat diselesaikan dengan kriptografi. Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk menjaga keamanan informasi. Kriptoanalisis (cryptanalysis) adalah kebalikan dari kriptografi, yaitu suatu ilmu untuk memecahkan mekanisme kriptografi dengan cara mendapatkan kunci dari informasi bersandi (ciphertext) yang digunakan untuk mendapatkan informasi asli (plaintext). Sedangkan kriptologi

13 (cryptology) adalah ilmu yang mencakup keduanya (kriptografi dan kriptoanalisis). Ada empat tujuan mendasar dari kriptografi, yaitu : 1. Kerahasiaan (confidentiality), digunakan untuk menjaga isi informasi dari siapapun kecuali yang memiliki key atau hak untuk membuka informasi atau yang telah disandikan. 2. Keutuhan (integrity), digunakan untuk menjaga isi informasi dari perubahan oleh pihak-pihak yang tidak mempunyai hak dalam penghapusan, penyisipan atau pendistribusian informasi lain ke dalam informasi asli. 3. Jaminan identitas dan keabsahan (authenticity), digunakan untuk memberikan autentifikasi terhadap informasi yang akan dikirim. Informasi yang dikirim harus diautentikasi keasliannya, isinya, waktu pengiriman, dan lain sebagainya. 4. Non-repudiasi, digunakan untuk mencegah terjadinya penyangkalan terhadap pengiriman atau terciptanya suatu informasi oleh pengirim atau pembuat pesan. 2.2.2.1 Sejarah Kriptografi Kriptografi sudah digunakan sekitar abad 40 yang lalu oleh orang-orang Mesir untuk pengiriman pesan ke pasukan yang berada di medan perang dan agar pesan tersebut tidak terbaca oleh pihak musuh walaupun pembawa pesan tersebut tertangkap oleh musuh. Sedangkan pada jaman Romawi kuno ketika Julius Caesar

14 ingin mengirimkan pesan rahasianya kepada salah seorang jendral di medan perang adalah dengan mengacak isi pesan tersebut menjadi suatu pesan yang tidak dapat dipahami oleh siapapun kecuali hanya dapat dipahami oleh jendralnya saja. Tentu sang jendral diberi tahu sebelumnya bagaimana cara membaca pesan yang teracak tersebut, karena telah mengetahui kuncinya. Pada perang dunia kedua, Jerman menggunakan mesin enigma atau juga disebut dengan mesin rotor yang digunakan Hitler untuk mengirim pesan kepada tentaranya di medan perang. Jerman sangat percaya bahwa pesan yang dienkripsi dengan menggunakan enigma tidak dapat dipecahkan. Tapi anggapan itu keliru, setelah bertahun-tahun sekutu mempelajarinya dan berhasil memecahkan kode-kode tersebut. Setelah Jerman mengetahui bahwa enigma dapat dipecahkan, maka enigma mengalami beberapa kali perubahan. Enigma yang digunakan Jerman dapat mengenkripsi suatu pesan sehingga mempunyai 15x10 18 kemungkinan untuk dapat mengenkripsi. 2.2.2.2 Algoritma Kriptografi Algoritma kriptografi dibedakan menjadi dua macam, yaitu : 1. Algoritma kriptografi simetri. Pada algoritma simetri ini proses enkripsi dan dekripsi menggunakan kunci (key) yang sama. Jadi, pengirim dan

15 penerima sebelumnya harus menyetujui suatu kunci rahasia (private key) tertentu. Keamanan algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Algoritma simetri sering juga disebut dengan algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci. Contohnya : DES (Data Encryption Standard), AES (Advanced Encryption Standard) atau Rijndael, Blowfish, dan lain sebagainya. Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah aman. 2. Algoritma kriptografi asimetri. Pada algoritma asimetri ini kunci (key) enkripsi dan dekripsi berbeda. Kunci (key) yang digunakan untuk enkripsi disebut kunci publik (public key) yang dapat diketahui orang lain. Sedangkan kunci untuk dekripsi dinamakan kunci rahasia (private key) yang hanya diketahui oleh pemiliknya. Algoritma asimetri ini sering juga disebut algoritma kunci publik. Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal sama satu sama lainnya.

16 Contohnya : ElGamal, RSA (Rivest-Shamir-Adleman), ECC (Elliptic Curve Cryptography), dan lain sebagainya. 2.2.3 RSA (Rivest-Shamir-Adleman) Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan, maka selama itu pula keamanan algoritma RSA tetap terjamin. 2.2.3.1 Teknik Kerja RSA Tingkat keamanan algoritma RSA sangat bergantung pada ukuran kunci sandi tersebut (dalam bit), karena makin besar ukuran kunci, maka makin besar juga kemungkinan kombinasi kunci yang bisa dijebol dengan metode mencoba satu persatu semua kemungkinan kunci atau dengan istilah brute-force attack. Jika dibuat suatu sandi RSA dengan panjang 256-bit, maka metode brute-force attack akan menjadi sia-sia dan tidak akan sanggup untuk dijebol.

17 2.2.3.2 Properti Algoritma RSA Besaran-besaran yang digunakan pada algoritma RSA: 1. p dan q bilangan prima 2. n = p q 3. φ(n) = (p 1)(q 1) 4. e (kunci enkripsi) 5. d (kunci dekripsi) 6. m (plainteks) 7. c (cipherteks) 2.2.3.3 Perumusan Algoritma RSA Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa : yang dalam hal ini, 1. a harus relatif prima terhadap n. 2. φ(n) = n(1 1/p 1 )(1 1/p 2 ) (1 1/p n ), yang dalam hal ini p 1, p 2,, p n adalah faktor prima dari n. φ(n) adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3,, n yang relatif prima terhadap n. Berdasarkan sifat a k b k (mod n) untuk k bilangan bulat 1, maka persamaan (1) dapat ditulis menjadi : (1) atau...(2)

18 Bila a diganti dengan m, maka persamaan (2) menjadi : (3) Berdasarkan sifat ac bc (mod n), maka bila persamaan (3) dikali dengan m menjadi : (4) yang dalam hal ini m relatif prima terhadap n. Misalkan e dan d dipilih sedemikian sehingga : (5) atau (6) Masukkan persamaan (6) dalam persamaan (4) menjadi : (7) Persamaan (7) dapat ditulis lagi menjadi : (8) yang artinya, perpangkatan m dengan e diikuti dengan perpangkatan dengan d, menghasilkan kembali m semula. Berdasarkan persamaan (8), maka enkripsi dan dekripsi dirumuskan menjadi : (9) (10) Karena e. d = d. e, maka enkripsi diikuti dengan dekripsi ekivalen dengan dekripsi diikuti dengan enkripsi :

19 (11) Oleh karena m d mod n (m + jn) d mod n untuk sembarang bilangan bulat j, maka tiap plaintext m, m + n, m + 2n,, menghasilkan ciphertext yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar transformasinya satu-ke-satu, maka m harus dibatasi dalam himpunan {0, 1, 2,, n - 1} sehingga enkripsi dan dekripsi tetap benar seperti pada persamaan (8) dan (9). 2.2.3.4 Algoritma Membangkitkan Pasangan Kunci 1. Pilih dua buah bilangan prima sembarang, p dan q. 2. Hitung n = p q. Sebaiknya p q, sebab jika p = q maka n = p 2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n. 3. Hitung φ(n) = (p 1)(q 1). 4. Pilih kunci publik, e, yang relatif prima terhadap φ(n). 5. Bangkitkan kunci rahasia dengan menggunakan persamaan (5), yaitu e d 1 (mod φ(n)). Perhatikan bahwa e d 1 (mod φ(n)) ekivalen e d = 1 + kφ(n), sehingga d dapat dihitung dengan : (12)

20 bulat d. Akan terdapat bilangan bulat k, yang memberi bilangan Hasil dari algoritma diatas : - Kunci publik adalah pasangan (e, n). - Kunci privat adalah pasangan (d, n). Catatan: n tidak bersifat rahasia, namun ia diperlukan pada perhitungan enkripsi/dekripsi. Contoh : Misalkan A membangkitkan kunci publik dan kunci privat miliknya. A memilih p = 47 dan q = 71 (keduanya prima). Selanjutnya, A menghitung : n = p. q = 3337 dan φ(n) = (p 1)(q 1) = 3220 A memilih kunci publik e = 79, karena 79 relatif prima dengan 3220. A mengumumkan nilai e dan n. Selanjutnya A menghitung kunci dekripsi d seperti yang dituliskan pada langkah instruksi 5 dengan menggunakan persamaan (12). Dengan mencoba nilai k = 1, 2, 3,, diperoleh nilai d yang bulat adalah 1019. ini adalah kunci privat untuk mendekripsi pesan. Kunci ini harus dirahasiakan oleh A. Kunci publik : (e = 79, n = 3337)

21 Kunci privat : (d = 1019, n = 3337) 2.2.3.5 Algoritma Enkripsi dan Dekripsi dengan RSA Enkripsi 1. Ambil kunci publik penerima pesan, e, dan modulus n. 2. Nyatakan plaintext m menjadi blok-blok m 1, m 2,, sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang (0, n - 1). 3. Setiap blok m i dienkripsi menjadi blok c i dengan rumus c i = e m i mod n. Dekripsi 1. Setiap blok ciphertext c i didekripsi kembali menjadi blok m i dengan rumus m i = c d i mod n. Contoh : Misalkan B mengirim pesan kepada A. Pesan plaintext yang akan dikirim oleh A adalah : m = HARI INI atau dalam sistem desimal (pengkodean ASCII) adalah : 7265827332737873 B memecah m menjadi blok yang lebih kecil, misalkan m dipecah menjadi enam blok yang berukuran 3 digit : m 1 = 726 m 4 = 273 m 2 = 582 m 5 = 787

22 m 3 = 733 m 6 = 003 Nilai-nilai m i ini masih terletak di dalam selang [0, 3337-1] agar transformasi menjadi satu-ke-satu. B mengetahui kunci publik A adalah e = 79 dan n = 3337. A dapat mengenkripsikan setiap blok plaintext sebagai berikut : c 1 = 726 79 mod 3337 = 215; c 2 = 582 79 mod 3337 = 776; c 3 = 733 79 mod 3337 = 1743; c 4 = 273 79 mod 3337 = 933; c 5 = 787 79 mod 3337 = 1731; c 6 = 003 79 mod 3337 = 158 Jadi, ciphertext yang dihasilkan adalah c = 215 776 1743 933 1731 158. Dekripsi dilakukan dengan menggunakan kunci private d = 1019 Blok-blok ciphertext didekripsikan sebagai berikut: m 1 = 215 1019 mod 3337 = 726 m 2 = 776 1019 mod 3337 = 582 m 3 = 1743 1019 mod 3337 = 733 Blok plaintext yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula m = 7265827332737873 yang dalam sistem pengkodean ASCII adalah m = HARI INI.

23 2.2.3.6 Keamanan RSA Kamanan algoritma RSA didasarkan pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor primanya. Masalah pemfaktoran : Faktorkan n, yang dalam hal ini n adalah hasil kali dari dua atau lebih bilangan prima. Pada RSA, masalah pemfaktoran berbunyi: Faktorkan n menjadi dua faktor primanya, p dan q, sedemikian sehingga n = p. q. Sekali n berhasil difaktorkan menjadi p dan q, maka φ(n) = (p 1) (q 1) dapat dihitung. Selanjutnya, karena kunci enkrispi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e d 1 + kφ(n). Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit. Dengan demikian hasil kali n = p. q akan berukuran lebih dari 200 digit. Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor prima dari bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun, sedangkan untuk bilangan 500 digit membutuhkan waktu 1025 tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik). Untunglah algoritma yang paling bagus untuk memfaktorkan bilangan yang besar belum ditemukan. Selama 300 tahun para matematikawan mencoba mencari faktor bilangan yang

24 besar namun tidak banyak membuahkan hasil. Semua bukti yang diketahui menunjukkan bahwa upaya pemfaktoran itu luar biasa sulit. Fakta inilah yang membuat algoritma RSA tetap dipakai hingga saat ini. Selagi belum ditemukan algoritma yang bagus untuk memfaktorkan bilangan bulat menjadi faktor primanya, maka algoritma RSA tetap direkomendasikan untuk mengenkripsi pesan. 2.2.4 Finite Field (Fp) Suatu finite field (atau Galois Field) adalah suatu himpunan dengan jumlah elemen terbatas dan dapat dilakukan operasi-operasi aljabar seperti pengurangan, perkalian, penambahan, dan pembagian dengan elemen tidak nol terhadap elemen-elemen yang ada. Selain itu dalam finite field, hukum-hukum aljabar seperti asosiatif, komutatif, dan distributif berlaku. Orde finite field menyatakan banyaknya elemen yang terdapat di dalamnya. Untuk menyatakan finite field berorde q dapat ditulis dengan Fq atau GF(q), dengan q dapat berupa bilangan prima. Ketika q merupakan suatu bilangan prima, maka field GF(p) disebut finite prime field. Field GF(p) umumnya dinyatakan sebagai himpunan integer modulo p. Dimisalkan p adalah suatu bilangan prima. Finite field Fp terdiri dari sekumpulan integer {0,1, 2,..., p-1} dengan operasi-operasi aritmatika sebagai berikut :

25 - Penambahan (addition) : Jika a, b є Fp maka a + b = r, dengan r adalah sisa pembagian ketika a+b dibagi dengan p dan 0 r p-1. Operasi ini dikenal sebagai operasi penambahan modulo p. - Pengurangan (subtraction) : Jika a, b є Fp maka a - b = r, dengan r adalah sisa pembagian ketika a-b dibagi dengan p bila a-b > 0, sedangkan bila a-b < 0, r adalah (a-b) + p. Operasi ini dikenal sebagai operasi pengurangan modulo p. - Perkalian (multiplication) : Jika a, b є Fp maka a * b = s, dengan s adalah sisa pembagian ketika a*b dibagi dengan p dan 0 s < p. Operasi ini dikenal sebagai operasi perkalian modulo p. - Inversi (inversion) : Jika a adalah elemen tidak nol dalam Fp, inversi a modulo p, yang dinyatakan sebagai a -1, adalah suatu integer unik c є Fp dengan a*c = 1 mod p. Sebuah contoh Finite Field adalah F13, elemen-elemen finite field ini adalah {0,1, 2,...,12}. Contoh operasi aritmatika dalam field ini adalah : - 10 + 5 = 15 mod 13 = 2. - 3-5 = -2 = -2 + (1)*13 = 11 mod 13. - 2 * 12 = 24 mod 13 = 11. - 7-1 = 2 mod 13 2.2.5 Relatif Prima Sebuah bilangan disebut relatif prima bila FPB dari bilangan tersebut adalah 1. Contoh :

26-20 dan 3 relatif prima sebab FPB(20,3) = 1. - 7 dan 11 relatif prima sebab FPB(7,11) = 1. - 20 dan 5 tidak relatif prima sebab FPB(20,5) 1. 2.2.6 ECC (Elliptic Curve Cryptography) 2.2.6.1 Sejarah ECC Kurva elliptic telah dipelajari secara intensif dalam bidang teori bilangan dan geometri aljabar oleh para ahli matematika selama lebih dari satu abad. Teori-teori telah banyak dikembangkan mengenai kurva elliptic, dan telah menjadi dasar bagi perkembangan baru dalam ilmu matematika. Salah satu perkembangan baru tersebut adalah penggunaan kurva elliptic untuk kriptografi. Algoritma Elliptic Curve Cryptography diusulkan secara independent masing-masing oleh Victor Miller dan Neil Koblitz pada tahun 1985. Sejak tahun tersebut, Elliptic Curve Cryptography telah dievaluasi secara menyeluruh oleh para ahli kriptografi, ahli matematika, dan ahli komputer di seluruh dunia, sehingga timbul kepercayaan terhadap sistem baru ini. Beberapa tahun terakhir ini, implementasi komersial pertama telah muncul, baik sebagai tool kit maupun sebagai aplikasi seperti keamanan e- mail, keamanan web, dan lain sebagainya.

27 2.2.6.2 Kurva Elliptic 2.2.6.2.1Kurva Elliptic Dalam Finite Field Fp Finite Field Fp adalah sebuah finite field dimana anggota himpunannya merupakan bilangan bulat yang besarnya berkisar antara 0 sampai dengan p 1 dengan operasi penjumlahan dan perkalian modulo p (p adalah bilangan prima). Supaya titik-titik koordinat kurva elliptic berada di dalam finite field Fp, maka bentuk persamaan kurva elliptic yang digunakan adalah : dimana x, y, a, b, Fp. Aritmatika modular cocok digunakan untuk kriptografi karena dua alasan berikut ini : - Nilai-nilai pada aritmatika modular berada dalam himpunan berhingga (0 sampai modulus p 1), maka tidak perlu khawatir hasil perhitungan berada diluar himpunan. - Karena nilai-nilai pada aritmatik modular berbentuk bilangan bulat, maka tidak perlu khawatir kehilangan informasi akibat pembulatan (round off) sebagaimana pada operasi bilangan yang mempunyai pecahan desimal.

28 Sekarang anggap bahwa Ep(a,b) merupakan suatu himpunan yang terdiri dari titik-titik koordinat bilangan bulat (x,y) yang memenuhi persamaan tersebut diatas, bersama satu titik infinitas O(, ). Misal, apabila pada persamaan diatas ditentukan nilai dari a = 1, b = 0, dan p = 23. Maka didapat persamaan y 2 (mod 23) = (x 3 + x) (mod 23). Titik (9,5) merupakan himpunan dari E 23 (1,0) karena : 5 2 (mod 23) = (9 3 + 9) (mod 23) 25 (mod 23) = (729 + 9) (mod 23) 25 (mod 23) = 738 (mod 23) 2 = 2 Lebih lengkapnya titik-titik yang memenuhi himpunan E 23 (1,0) antara lain : (0,0), (1,5), (1,18), (9,5), (9,18), (11,10), (11,13), (13,5), (13,18), (15,3), (15,20), (16,8), (16,15), (17,10), (17,13), (18,10), (18,13), (19,1), (19,22), (20,4), (20,19), (21,6), (21,17), dan (, ). Sebaran titik ini dapat dilihat dari gambar dibawah ini :

29 Gambar 2.2 Sebaran titik-titik pada kurva elliptic E 23 (1,0). 2.2.6.3 Algoritma Elliptic Curve Cryptography 2.2.6.3.1Representasi Text Karakter-karakter yang terdapat pada pesan asli (plaintext) direpresentasikan oleh titik-titik koordinat yang memenuhi persamaan kurva elliptic yang telah ditentukan. Misal, titik-titik pada himpunan E 29 (3,0) dapat merepresentasikan karakter-karakter sebagai berikut : (0,0) = A (1,2) = B (1,27) = C (3,6) = D (3,23) = E (5,13) = F (5,16) = G (7,4) = H (7,25) = I (11,1) = J (11,28) = K (12,13) = L (12,16) = M (17,11) = N (17,18) = O (18,12) = P (18,17) = Q (22,10) = R (22,19) = S (24,11) = T

30 (24,18) = U (26,14) = V (26,15) = W (28,5) = X (28,24) = Y (, ) = Z Pada program aplikasi yang dibuat, ada 256 jenis karakter yang dipakai. Jenis karakter tersebut mengacu pada standard internasional yaitu ASCII (American Standard Code for Information Interchange). Oleh karena itu nilai p, a, dan b pada persamaan kurva elliptic harus ditentukan sedemikian sehingga jumlah anggota himpunan Ep(a,b) adalah sebanyak 256 titik. 2.2.6.3.2Proses Enkripsi dan Dekripsi Algoritma Elliptic Curve Cryptography menggunakan prinsip kurva elliptic dimana yang menjadi permasalahan adalah kesulitan untuk menghitung nilai dari k, pada operasi Q = kp, dimana Q dan P merupakan titik yang terletak pada bidang kurva Ep(a,b). Walaupun sebenarnya tidak begitu sulit untuk menghitung harga Q apabila diketahui k dan P, tetapi sangat sulit untuk menghitung k, apabila hanya diberikan nilai P dan Q. Langkah awal yang harus dilakukan adalah menentukan nilai p, a, dan b, untuk membentuk himpunan Ep(a,b). Anggota himpunan Ep(a,b) merepresentasikan karakter-karakter yang akan dienkripsi dan didekripsi.

31 Selanjutnya, proses enkripsi dilakukan dengan menggunakan perhitungan berikut : Keterangan : - C m = titik yang telah dienkripsi. - P m = titik yang akan dienkripsi. - k merupakan sebuah bilangan asli lebih kecil dari p 1. Besarnya k ditentukan secara acak untuk setiap karakter. - G merupakan titik basis, dimana G merupakan salah satu anggota himpunan Ep(a,b) selain titik O yang dipilih secara acak. Nilai G konstan untuk setiap karakter dalam file yang sama. - P A ditentukan dengan cara berikut : o Cari bilangan asli n sedemikian sehingga ng = 0. o Pilih secara acak bilangan asli na, dimana n A < n. o P A = n A x G. Dengan demikian, berhasil diperoleh sebuah titik terenkripsi, C m. Sedangkan untuk proses dekripsi, dilakukan dengan menggunakan perhitungan :