Kriptografi Kunci Publik Authentication

Algoritma menggunakan kunci publik pada umumnya mempunyai banyak kelebihan dan secara umum memiliki dua karakteristik : 1. Komputasi untuk enkripsidekripsi pesan mudah dilakukan. 2. Secara komputasi hampir tidak mungkin menurunkan kunci privat, bila pasangan kunci publik telah diketahui.

2.3 Kriptografi Kunci Publik

Kriptografi kunci publik merupakan bagian dari kriptografi modern yang sering digunakan dalam hal komunikasi menggunakan alat elektronik seperti mengirim e-mail dengan komputer. Kriptografi kunci publik dapat dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukan surat. Setiap orang dapat memasukkan surat kedalam kotak tersebut, tetapi hanya pemilik kotak yang dapat membuka kotak dan membaca surat di dalamnya karena hanya dia yang memiliki kunci. Diffie dan Heliman merupakan pencetus dari sistem kriptografi ini sekitar tahun 1976 [3]. Tetapi yang pertama kali merealisasikannya sekitar tahun 1977 adalah Rivest, Shamir, dan Adleman, atau lebih dikenal dengan sistem kriptografi RSA [3]. Semenjak itu beberapa sistem kunci publik diajukan dengan tingkat keamanan yang berbeda-beda dalam hal permasalahan komputasinya antara lain, yaitu RSA, Markle-Hellman Knapsack, McEliece, ElGamal, Chor-Rivest, Eliptic Curve, Ong-Schnorr-Shamir. 15 Gambar 2.2 Klasifikasi Kriptografi Secara Umum

2.4 Konsep Dasar Matematika

Konsep ini sangat diperlukan dalam mempelajari sistem maupun komputasi kriptografi, karena merupakan teori-teori mendasar yang berguna untuk pemahaman dari suatu kajian teori. Jika teori-teori mendasar tersebut telah dikuasai, maka tidak akan terlalu sulit untuk memahami sistem dan komputasi kriptografi tersebut.

2.4.1 Integer

Misalkan diberikan himpunan semua bilangan bulat integer yang dinotasikan dengan Z dan N menyatakan himpunan semua bilangan bulat positif. Untuk himpuan berhingga A, jumlah elemen pada himpunan A dinotasikan dengan A. Sebuah relasi ekuivalen pada A adalah sebuah relasi binary ~ pada himpunan A, untuk setiap x, y, z A terdiri dari : 1. Refleksif : x ~ x 2. Simetris : jika x ~ y, maka y ~ x 3. Transitif : jika x ~ y dan y ~ z , maka x ~ z 16 Bilangan bulat pada kuliah teori bilangan merupakan konsep mendasar dalam memahami kriptografi, khususnya pada sistem kriptografi kunci publik. Bilangan bulat adalah bilangan yang tidak mempunyai pecahan desimal, seperti 8, 11, 297, -30, 0. Menurut definisi tentang elemen identitas terhadap penjumlahan dan sifat-sifat dari bilangan bulat adalah sebagai berikut : Definisi 2.1 : Jika N bilangan bulat, maka n + -n – -n + n = 0. -n disebut lawan dari inverse penjumlahan dari n, dan 0 disebut elemen identitas terhadap penjumlahan. Definisi 2.2 : Sistem bilangan bulat terdiri atas himpunan Z = { ..., -3,-2,-1, 0, 1, 2, 3, ...}dengan operasi biner penjumlahan + dan perkalian .. Untuk a, b, dan c bilangan-bilangan bulat sembarang, sistem tersebut mempunyai sifat-sifat sebagai berikut : 1. Tertutup terhadap penjumlahan dan perkalian a, b Z a + b z dan a.b z. 2. Komutatif a + b = b + a dan a.b = b.a 3. Assosiatif a + b + c = a + b + c dan a .b . c = a . b . c 4. Untuk setiap a, ada dengan tunggal elemen 0 dan Z, sedemikian sehingga a + 0 = 0 + a = a dan a .1 = 1 .a = a. 17 Elemen identitas dari penjumlahan dan perkalian yaitu 0 dan 1. 5. Untuk setiap a, ada dengan tunggal elemen b dalam Z, sedemikian sehingga a + b = 0, b disebut invers dari a terhadap operasi penjumlahan yang dinotasikan dengan –a . 6. Distributif a . b + c = a . b + a . c dan a + b . c = a . c + b . c

2.4.2 Group Ring dan Field

Group , ring dan field merupakan elemen mendasar dari cabang matematika yang dikenal dengan aljabar abstrak atau aljabar modern[5]. Aljabar abstrak merupakan suatu kajian yang lebih mengarah ke suatu himpunan elemen-elemennya dapat dioperasikan secara aljabar. Operasi yang dilakukan tergantung dari peraturan yang telah dibuat, misalnya notasi yang telah umum dikenal, yaitu penjumlahan dan perkalian dalam bilangan. Adapun sifat-sifat dari group, ring dan field yang akan dijelaskan pada sub bab 2.4.2.1 sampai dengan sub bab 2.4.2.3 bahasan selanjutnya.

2.4.2.1 Group

Sebuah group G, dinotasikan dengan {G, } adalah himpunan dari elemen-elemen dengan operasi binernya dan memenuhi beberapa aksioma berikut : 1. Tertutup : jika a dan b G, maka a b G 2. Asosiatif : a bc = a b c untuk setiap a, b, 18 c G. 3. Elemen Identitas : ada suatu elemen c G, sehingga ae=ea=a untuk setiap a G. 4. Elemen Inverse : untuk setiap a G ada suatu elemen a’ G, sehingga a a’= a’a = c Suatu grup dinyatakan abelian jika memenuhi kondisi tambahan seperti di bawah ini : 5. Komutatif : a b = b a untuk setiap a, b G. Suatu grup G dikatakan siklis jika tedapat g G sedemikian sehingga setiap elemen G dapat ditemukan dengan perpangkatan bilangan bulat k atau g k . Bilangan g disebut generator dari grup tersebut, ditulis G = {g}.

2.4.2.2 Ring

Suatu ring R, dinotasikan dengan R, +, , adalah himpunan dari elemen-elemen dengan dua operasi biner seperti + dan serta memenuhi aksioma-aksioma berikut : 1-5. R adalah group komutatif dengan operasi penjumlahan. Berarti bahwa, R memenuhi aksioma 1 sampai dengan 5. 6. Tertutup terhadap perkalian : jika a dan b R, maka a b R. 7. Asosiatif terhadap perkalian : a b c = a b c untuk setiap a,b, c R. 19 10. Perkalian identitas : 11. Tidak ada pembagi 0 : 8. Distributif : a b + c = a b + a c untuk setiap a,b,c R. a+b c = a c + b c untuk setiap a,b,c R. Suatu ring dikatakan komutatif jika memenuhi kondisi tambahan berikut : 9. Komutatif terhadap perkalian : a b = b a untuk setiap a, b R. Selanjutnya definisi integral domain, yakni merupakan ring yang komutatif dan memenuhi aksioma-aksioma berikut : Ada elemen 1 pada R, sehingga a 1 = 1 a = a untuk setiap a R. Jika a,b R dan a b = 0 Maka a = 0 atau b = 0.

2.4.2.3 Field

Sebuah field F, dinotasikan dengan {F, +, }, adalah sebuah himpunan dari elemen-elemen dengan dua operasi biner yaitu + dan , sehingga untuk setiap a, b, c F memenuhi beberapa aksioma berikut : 1-11 F adalah suatu integral domain, berarti bahwa F memenuhi aksioma-aksioma mulai dari 1-5 dan 6-11. 12. Inverse perkalian : untuk setiap a F, kecuali 0, ada 20 suatu elemen a -1 F. Sehingga a a -1 = a -1 a = 1. Dari penjelasan mengenai group, Ring, dan field di atas dapat diambil kesimpulan bahwa group merupakan bagian dari ring dan ring merupakan bagian dari field, sehingga group merupakan elemen terkecil dari sebuah field. Penjelasan mengenai group, Ring, dan field dapat dilihat menggunakan skema yang terdapat pada lampiran 2.

2.4.3 Finite Field

Lapangan berhingga finite fields adalah field sederhana yang elemennya terbatas[5]. Finite field order p dapat didefinisikan dengan menggunakan aritmatika modulo p. Dalam dunia kriptografi finite field telah menjadi sesuatu yang penting. Sebuah bilangan dari algoritma kriptografi sangat bergantung pada ruang lingkup dari finite field, sebagai contoh pada algoritma kriptografi advanced encryption standard AES dan elliptic curve. Untuk suatu bilangan prima p, maka F p adalah finite fields berorder p dengan anggotanya adalah {0,1,2,..,p-1} serta operasi penjumlahan dan perkalian dilakukan dalam modulus p. Aritmatika finite fields dengan operasi penjumlahan dan perkalian yang dilakukan dalam modulus 2 dan modulus 7 dapat dilihat 21 • 1 1 1 menggunakan tabel Cayley[10], seperti tabel 2.2 dan tabel 2.3 berikut ini: Tabel 2.2 Contoh tabel Cayley F 2 perkalian dan penjumlahan + 1 1 1 1 Tabel 2.3 Contoh tabel Cayley F 7 perkalian dan penjumlahan + 1 2 3 4 5 6 1 2 3 4 5 6 1 1 2 3 4 5 6 2 2 3 4 5 6 1 3 3 4 5 6 1 2 4 4 5 6 1 2 3 5 5 6 1 2 3 4 6 6 1 2 3 4 5 • 1 2 3 4 5 6 1 1 2 3 4 5 6 2 2 4 6 1 3 5 3 3 6 2 5 1 4 4 4 1 5 2 6 3 5 5 3 1 6 4 2 6 6 5 4 3 2 1 22

2.4.4 Bilangan Prima

Bilangan bulat positif p p 1 disebut bilangan prima jika pembaginya hanya 1 dan p [5]. Sebagai contoh 101 adalah bilangan prima karena ia hanya habis dibagi 1 dan 101. Seluruh bilangan prima adalah ganjil, kecuali 2 yang merupakan bilangan genap. Teorema-teorema dan definisi berikut ini akan memperjelas pembahasan mengenai bilangan prima. Teorema 2.1 The Fundamental theorem of arithmetic : Setiap bilangan bulat positif yang lebih besar atau sama dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima. Definisi 2.3 : Bilangan bulat positif yang lebih besar dari 1 dan tidak memunyai faktor positif kecuali 1 dan bilangan itu sendiri disebut bilangan prima . Bilangan bulat positif yang lebih besar dari 1 dan bukan bilangan prima disebut bilangan komposit[6]. Teorema 2.2 : Jika n suatu bilangan komposit, maka n memiliki faktor k dengan 1 k n [6]. 23 Untuk menguji apakah n merupakan bilangan prima atau komposit, cukup membagi n dengan sejumlah bilangan prima, mulai dari 2,3,..., bilangan prima n. Jika n habis dibagi dari salah satu bilangan prima tersebut, maka n adalah bilangan komposit, tetapi jika n tidak habis dibagi oleh semua bilangan prima tersebut, maka n adalah bilangan prima.

2.4.5 Aritmatika Modulo

Misalkan a dan m adalah bilangan bulat dan m 0. Operasi a mod m dibaca “a modulo m” akan menghasilkan sisa dari pembagian, jika a dibagi dengan m[5]. Bilangan m disebut modulus atau modulo, dan hasil aritmatika modulo m terletak didalam himpunan {0,1,2,..,m-1}. Notasi yang digunakan yaitu : a mod m = r sedemikian sehingga a = mq + r, dengan 0 r m. Menurut [1] alasan menggunakan aritmatika modulo, yaitu : 1. Karena nilai-nilai aritmatika modulo berada dalam himpunan berhingga 0 sampai modulus m-1 , maka tidak perlu khawatir hasil perhitungan berada di luar himpunan. 2. Karena komputasi dalam lingkup bilangan bulat, maka tidak perlu khawatir juga akan kehilangan informasi akibat pembulatan round off sebagaimana pada operasi bilangan rill. 24

2.4.6 Kekongruenan

Kekongruenan adalah suatu teknik untuk mengetahui keterbagian dalam himpunan bilangan bulat. Definisi-definisi berikut akan memperjelas mengenai kekongruenan. Definisi 2.4 Kekongruenan : Misalkan a, b, m adalah bilangan bulat dan m 0, maka a b mod m jika m habis membagi a – b. Jika m tidak habis membagi a–b maka ditulis a b mod m . Definisi 2.5 : Pada a r mod m dengan 0 r m, maka r disebut residu terkecil dari a modulo m. Untuk kongruen ini, {0,1,2..,m-1} disebut himpunan residu terkecil modulo m .

2.4.7 Teorema Fermat

Teorema Fermat memiliki banyak kegunaan, diantaranya untuk mendeteksi apakah suatu bilangan merupakan bilangan prima atau bukan. Pierre de Fermat adalah orang yang menemukan teorema ini pada tahun 1640 dan merupakan teorema fundamental dalam teori bilangan. Jika a dan p adalah bilangan bulat lebih besar dari nol, maka faktor persekutuan terbesar dari a dan p ditulis a,p[5]. 25 Teorema 2.3 Teorema Fermat : Jika p suatu bilangan prima dan a,p=1, maka a p -1 1 mod p .

2.4.8 Teorema Euler

Teorema Euler merupakan kelanjutan dari teorema Fermat karena jika dalam teorema Fermat lebih dikhususkan pada bilangan prima, sedangkan pada teorema Euler lebih umum, yaitu untuk semua bilangan bulat positif. Leonhard Euler menggunakan fungsi aritmatik yang terkenal dengan fungsi bilangan, teorema dan fungsi phi Euler ini ternyata konsep-konsep dalam struktur-struktur aljabar seperti teori Group dan Ring. Definisi dan teorema mengenai Euler dapat dilihat sebagai berikut[5] : Definisi 2.6 Fungsi Euler : Misalkan m suatu bilangan bulat positif, maka m menyatakan banyaknya elemen dari himpunan residu sederhana modulo m [6]. Teorema 2.4 teorema Euler : Jika m suatu bilangan bulat positif dan a, m = 1, maka a m 1 mod m [6]. 26

2.4.9 Algoritma Euclidean

Algoritma Euclidean adalah suatu algoritma untuk mencari gcd greatest common divisor atau pembagi bersama terbesar [5]. Euclid, penemu dari algoritma ini, adalah seorang matematikawan yunani yang menuliskan algoritmanya tersebut dalam bukunya yang terkenal, yaitu Elemen [3]. Suatu positif integer c dikatakan gcd dari a dan b, jika : 1. c adalah pembagi dari a dan b. 2. Setiap pembagi dari a dan b adalah pembagi dari c. Seperti pada persamaan berikut ini : gcd a, b = max k, sedemikian sehingga k|a dan k|b 2.5 Teorema 2.5 Teorema Euclidean : Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n 0. jika m dibagi dengan n maka ada dua buah bilangan bulat unik q quotient dan rremainder, m = nq + r dengan 0 r n [1].

2.4.10 Fungsi Hash Satu-Arah

Fungsi hash satu-arah adalah fungsi hash yang bekerja dalam satu arah. Pesan yang telah dilakukan fungsi hash dinamakan pesan ringkas Message Diggest. Dua pesan yang berbeda akan selalu menghasilkan nilai hash yang berbeda pula. Sifat-sifat fungsi hash satu- arah, H[5], adalah sebagai berikut : 27 1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja. 2. H menghasilkan nilai hash dengan panjang tetap. 3. H x mudah dihitung untuk setiap nilai x yang diberikan. 4. Untuk setiap h yang diberikan, tidak mungkin menemukan x sedemikian sehingga Hx = h. Itulah sebabnya fungsi H dikatakan fungsi hash satu-arah. 5. Untuk setiap x yang diberikan tidak mungkin mencari y x sedemikian sehingga Hy = Hx. 6. Tidak mungkin secara komputasi mencari pasangan x dan y sedemikian sehingga Hx = Hy. Keterangan : h = Nilai hash x dan y = Pesan Hx = Fungsi hash terhadap pesan x Hy = Fungsi hash terhadap pesan y Koalisi atau benturan dari hash merupakan hal-hal yang dapat terjadi dalam melakukan fungsi hash. Ada yang disebut dengan koalisi lemah dan koalisi kuat seperti pada penjelasan sifat-sifat fungsi hash diatas terutama pada sifat 4, 5, dan 6. 28 Gambar 2.3 Proses Hash Beberapa rekomendasi mengenai algoritma fungsi hash dan ciri-cirinya[1], seperti pada tabel 2.4 berikut ini : Tabel 2.4 Beberapa algoritma Fungsi Hash No Algoritma Ukuran MD bit Ukuran blok pesan Kolisi 1 MD2 128 128 ya 2 MD4 128 512 Hampir 3 MD5 128 512 ya 4 RIPEMD 128 512 ya 5 RIPEMD-128256 128256 512 tidak 6 RIPEMD-160320 160320 512 tidak 7 SHA-0 160 512 ya 8 SHA-1 160 512 ada cacat 9 SHA-256224 256224 512 tidak 10 SHA-512384 512384 1024 tidak 11 WHIRLPOOL 512 512 tidak 29

2.5 Authentication

Authentication otentikasi berasal dari Bahasa Yunani, yaitu “authentes” yang artinya pengarang. Salah satu layanan yang paling penting dari semua masalah keamanan informasi, yaitu otentikasi. Otentikasi adalah suatu hal yang berhubungan dengan identifikasi, baik pelaku maupun pesan itu sendiri. Dua pelaku yang berkomunikasi harus melakukan otentikasi. Fungsi untuk melakukan otentikasi ada tiga kelas[5], yaitu : 1. Message Encryption, ciphertext dari keseluruhan pesan dapat berfungsi untuk otentikasi. 2. Message Authentication Codes MAC, fungsi dari pesan dengan kunci rahasia yang menghasilkan nilai dengan panjang tetap dapat juga berfungsi untuk otentikasi. 3. Hash Function, fungsi yang memetakan pesan dengan panjang berapapun menjadi nilai hash yang memiliki panjang tetap juga berfungsi untuk otentikasi. Untuk membuktikan keaslian suatu pesan dapat dilakukan dengan teknologi watermarking dan digital signature tanda tangan digital. Penjelasan lebih lanjut mengenai tanda tangan digital pada sub bab 2.6. 30

2.6 Tanda Tangan Digital