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
15x1018
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/p1)(1 – 1/p2) … (1 – 1/pn), yang dalam hal ini p1, p2, …, pn 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 ak ≡ bk (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 md 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 = p2 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 Akan terdapat bilangan bulat k, yang memberi bilangan bulat d. 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 m1, m2, …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang (0, n - 1). 3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus ci = e
mi mod n. Dekripsi 1. Setiap blok ciphertext ci didekripsi kembali menjadi blok mi dengan rumus mi = ci d 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 : m1 = 726
m4 = 273
m2 = 582
m5 = 787
22 m3 = 733
m6 = 003
Nilai-nilai mi 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 : c1 = 72679 mod 3337 = 215;
c2 = 58279 mod 3337 = 776;
c3 = 73379 mod 3337 = 1743;
c4 = 27379 mod 3337 = 933;
c5 = 78779 mod 3337 = 1731;
c6 = 00379 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: m1 = 2151019 mod 3337 = 726 m2 = 7761019 mod 3337 = 582 m3 = 17431019 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 :
2.2.5
-
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
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 email, 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, Aritmatika
Fp. 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 y2(mod 23) = (x3 + x) (mod 23). Titik (9,5) merupakan himpunan dari E23(1,0) karena : 52 (mod 23)
=
(93 + 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 E23(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 E23(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
E29(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
(28,24) = Y
(∞,∞) = Z
(26,15) = W
(28,5) = X
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 : -
Cm = titik yang telah dienkripsi.
-
Pm = 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.
-
PA ditentukan dengan cara berikut : o Cari bilangan asli n sedemikian sehingga nG = 0. o Pilih secara acak bilangan asli nA, dimana nA < n. o PA = nA x G. Dengan demikian, berhasil diperoleh sebuah titik
terenkripsi,
Cm.
Sedangkan
untuk
proses
dilakukan dengan menggunakan perhitungan :
dekripsi,