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