Bab 2
LANDASAN TEORI
2.1 Kriptografi
Kriptografi (cryptography) berasal dari bahasa Yunani yaitu dari kata Crypto (tersembunyi) dan Graphia (tulisan). Kriptografi adalah suatu ilmu yang mempelajari penulisan secara rahasia. Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut cryptology. Kriptografi bertujuan menjaga kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah.
Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data dengan metode tertentu, dan pelakunya disebut cyptograper. Kriptografi disebut ilmu karena didalamnya terdapat rumusan (metode) yang digunakan, dan dikatakan sebagai seni karena dalam membuat suatu teknik kriptografi itu sendiri merupakan ciri tersendiri dari si pembuat dan memerlukan teknik khusus dalam mendesainnya. (Munir,2006) . Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana menyembunyikan pesan. Namun pada pengertian modern kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berususan dengan keamanan informasi seperti kerahasian, keutuhan data, dan otentikasi entitas. Jadi pengetian kriptografi modern adalah tidak hanya berurusan dengan penyembunyian pesan namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi.
Universitas Sumatera Utara
8
2.2 Sistem Kriptografi
Sistem kriptografi terdiri dari 5 bagian yaitu, (Stinson,2002): 1. Plaintext : pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. 2. Secret Key : secret key yang juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. 3. Chipertext : chipertext adalah keluaran algoritma enkripsi. Chipertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan chipertext yang terlihat acak. 4. Algoritma Enkripsi : Algoritma enkripsi memiliki dua masukan yaitu teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi. 5. Algoritma Deskripsi : Algoritma deskripsi memiliki dua masukan yaitu teks sandi dan kunci rahasia. Algoritma deskripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma deskripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.
2.2.1 Karakteristik Sistem Kriptografi
Sistem Kriptografi dapat dikarakteristikan berdasarkan : 1. Tipe operasi yang dipakai dalam enkripsi dan deskripsi. Dua tipe operasi yang dipakai dalam enkripsi dan deskripsi : subsitusi, elemen pada pesan (karakter, byte atau bit) ditukar atau disubsitusikan dengan elemen yang lain dari ruang pesan. Misalnya subsitusi sederhana Aditukar B, B ditukar D, dan C ditukar Z, pesan “BACA” menjadi “DBZB”. Tipe operasi lainnya adalah transposisi, elemen pada pesan berpindah posisi misalnya posisi 1 menjadi posisi 4 dan posisi 2 menjadi posisi 3, posisi 3 menjadi posisi 1 dan posisi 4 menjadi posisi
Universitas Sumatera Utara
9
2, pesan “KAMI” menjadi “MAIK”. Sistem kriptografi modern mencakup kedua tipe operasi ini.
2. Tipe kunci yang dipakai. Umumnya sistem kriptografi klasik dan beberapa sistem kriptografi modern menggunakan kunci yang sama pada sisi penyandi dan penyulih sandi. Sistem kriptografi seperti ini disebut dengan kriptografi dengan kunci simetri. Baru pada tahun 1976 sistem kriptografi yang memperbolehkan kunci yang tidak sama diusulkan oleh Whitfield Deffie dan Martin Hellman, (Deffie & Hellman, 1976). Sistem Kriptografi ini disebut dengan kriptografi dengan kunci asimetri.
3. Tipe pengolahan pesan. Ketika melakukan penyandian pesan yang akan dienkripsi ataupun dideskripsi diolah pesatuan blok elemen yang disebut blok cipher. Cara lain adalah dengan menganggap masukan untuk enkripsi dan deskripsi sebagai aliran elemen secara terus menerus disebut dengan stream cipher.
2.3 Algoritma Kriptografi
Defenisi terminologi algoritma adalah urutan langkah-langkah logis untuk menyelesaikan masalah yang disusun secara matematis. Algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orangorang yang tidak berhak atas pesan tersebut.
Berdasarkan jenis kunci yang digunakan, algoritma kriptografi dikelompokkan menjadi dua bagian, yaitu : 1. Algoritma Simetris (Algoritma Konvensional). 2. Algoritma Asimetris (Algoritma Kunci Publik).
Universitas Sumatera Utara
10
2.3.1 Algoritma Simetris
Algoritma ini disebut algoritma konvensional, yaitu algoritma yang menggunakan kunci yang sama pada proses enkripsi dan deskripsinya. Algoritma ini mengharuskan pengirim dan penerima menyetujui satu kunci tertentu.
Kelompok algoritma simetris adalah OTP, DES, RC2, RC4, RC5, RC6, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5 Kasumi dan lain-lain.
Kunci Chipertext Plaintext
Enkripsi
Deskripsi
Plaintext
Gambar 2.1 Algoritma simetris
2.3.2 Algoritma Asimetris
Masalah distribusi kunci pada algoritma simestris dapat diatasi dengan metode kriptografi asimetris atau disebut juga dengan kriptografi kunci publik (publik key algorithm). Sebutan asimetris (tidak simetris) memperlihatkan adanya perbedaan kunci yang digunakan antara proses enkripsi dan deskripsi. Kunci publik digunakan untuk proses enkripsi data sedangkan proses deskripsi menggunakan kunci yang biasa disebut dengan kunci rahasia (private key).
Algoritma yang memakai kunci umum diantaranya adalah Digital Signature Algorithm (DSA), RSA, Diffie-Hellman (DH), Elliptic Curve Cryptography (ECC), Crytography Quantum dan lain-lain.
Universitas Sumatera Utara
11
Kunci Publik
Plaintext
Enkripsi
Kunci Privat
Ciphertext
Deskripsi
Plaintext
Gambar 2.2 Algoritma asimetris
2.4 Aritmatika Modular
Aritmatika adalah matematika pertambahan dan perkalian dengan kemungkinan operasi inverse (pembalikan). Aritmatika modular digunakan agar operasi aritmatika selalu menghasilkan integer pada lingkup yang sama.
Aritmatika yang banyak digunakan dalam kriptografi adalah apa yang disebut aritmatika modular (modular arithmetic). Dalam aritmatika modular, domain yang digunakan adalah subset dari bilangan bulat dan bersifat finite (terbatas, besarnya domain merupakan bilangan bulat). Setiap bilangan mempunyai inverse pertambahan, dan jika setiap bilangan kecuali 0 mempunyai inverse perkalian maka struktur aritmatika disebut finite field.
Digunakannya aritmatika modular dalam kriptografi adalah karena adanya inverse perkalian (terutama jika struktur berupa field) dan domain yang bersifat finite. Karena finite field juga berupa field, konsep gcd tidak ada artinya dalam struktur finite field. Tetapi gcd dengan bilangan bulat (yang mempunyai struktur ring) banyak digunakan dalam membahas struktur finite field. Domain dari aritmatika modular adalah {0,1,2,3,…,n−1}, dimana n adalah besarnya domain. Aritmatika disebut aritmatika modulo n, dengan pertambahan dan perkalian seperti aritmatika biasa jika menghasilkan bilangan yang termasuk dalam domain. Jika hasil merupakan bilangan diluar domain, maka bilangan harus dikurangi dengan kelipatan n sampai menghasilkan bilangan dalam domain
Universitas Sumatera Utara
12
Operator modular
Operator modular memerlukan 2 masukan yaitu sebuah integer a dan sebuah bilangan positif yang disebut modulus n. Operasi modular mengembalikan r yang merupakan sisa bagi atas operasi a dibagi n. Notasi operasi modulus diberikan oleh persamaan : a mod n = r
Kongruen
Hasil operasi modular sembarang bilangan integer a dengan sebuah bilangan integer positif n selalu pada kisaran 0 sampai n−1. Dengan begitu operasi modular n terhadap sembarang bilangan integer a merupakan pemetaan dari himpunan bilangan integer (ℤ) ke himpunan bilangan {0,1,2,3,…,n−1} (dinotasikan sebagai ℤn ) atau dikenal dengan sebagai himpunan residu modular n.
Dua buah integer a dan b disebut kongruen pada modulus n apabila memiliki sisa bagi yang sama, definisi kongruen diberikan oleh 2.1. Definisi 2.1 Misal a dan b adalah integer dan n adalah integer positif. a ≡ b (mod n) jika n membagi habis b – a. Simbol “≡” digunakan untuk menandakan kongruen. Pernyataan a ≡ b (mod n) dapat dibaca a kongruen dengan b pada modulus n.
Kelas Residu Sembarang bilangan x ∈ ℤ dapat dipetakan ke satu anggota a pada himpunan residu modular n (ℤn), himpunan ini disebut dengan kelas residu dan dinotasikan dengan [a]. Contohnya pada operasi modular 5, {…,-8,-3,3,8,13,18,23,…} dapat dipetakan ke 3 ∈ ℤ5 , karena 3 mod 5 = 3, 8 mod 5 = 3, 13 mod 5 = 3, dan seterusnya. Jadi [3] = {…,-8,-3,3,8,13,18,23,…} pada modulus 5.
Universitas Sumatera Utara
13
2.5 Grup
Struktur aljabar yang paling sederhana adalah grup.Grup terdiri dari himpunan simbol dan sebuah operasi biner ∗. Sebuah grup harus memenuhi kondisi seperti yang diberikan oleh definsi 2.2. Definisi 2.2 Sebuah grup (G,∗) dengan G adalah himpunan simbol, dan ∗ adalah sebuah operator biner yang memenuhi kondisi berikut ini : 1. ∀ a, b ∈ G : a ∗ b ∈ G (Closure). 2. ∀ a, b, c ∈ G : a ∗( b ∗ c ) ∈ G : ( a ∗ b ) ∗ c (Asosiatif). 3. ∃ yang unik e ∈ G : ∀ a ∈ G : a ∗ e = e ∗ a = a. Elemen e disebut elemen identitas. 4. ∀ a ∈ G : ∃ a 1 ∈ G : a ∗ a 1 = a 1 ∗ a = e (Invers). Grup yang operator ∗ bersifat komutatif ( yaitu ∀ a, b ∈ G : a ∗ b = b ∗ a ) disebut Grup Abel.
2.6 Ring
Ring adalah struktur aljabar yang memiliki 2 operator untuk satu himpunan simbol. Untuk dapat disebut ring 2 operator itu harus memenuhi kondisi seperti yang disebut pada definisi 2.3. Definisi 2.3 (Ring) Sebuah ring adalah satu himpunan simbol R dan dua operasi : + (disebut penjumlahan) dan × (disebut perkalian) yang memenuhi kondisi berikut ini : 1. R dengan operasi + adalah grup Abel. Notasi 0 dipakai untuk merepresentasikan identitas penjumlahan. 2. Operasi × memenuhi aksioma closure, asosiatif, dan identitas. Identitas untuk perkalian dinotasikan sebagai 1.
Universitas Sumatera Utara
14
3. ∀ a, b ∈ R : a × b = b × a (Komutatif). 4. ∀ a, b, c ∈ R : a × ( b + c) = (a × b) +(a × c) (Distributif).
2.7 Field
Struktur aljabar field merupakan pengkhususan terhadap struktur aljabar ring. Kondisi operator untuk field adalah kondisi operator untuk ring dengan tambahan operator perkalian x memiliki invers untuk semua simbol yang bukan identitas penjumlahan (0). Secara formal sebuah field didefinisikan oleh definisi 2.4.
Definisi 2.4 Jika elemen non-zero (yang bukan identitas penjumlahan membentuk sebuah grup dengan operasi perkalian maka ring itu disebut field.
2.8 Finite Field
Finite field atau dikenal juga sebagai Galois field (untuk menghormati Evariste Galois) adalah field yang jumlah elemennya terbatas.
2.8.1 Finite Field Bilangan Prima (GF(p))
Finite field dengan struktur tersederhana adalah finite field yang nilai order nya adalah bilangan prima dinotasikan dengan GF(p). GF(p) terdiri dari himpunan bilangan Zp dengan p bilangan prima yaitu himpunan integer {0, 1, 2, … , 𝑝 − 1 dan 2 operasi aritmatika (penjumlahan dan perkalian) modular p.
Universitas Sumatera Utara
15
2.8.2 Finite Field dengan Elemen Polinomial (GF(pm))
Selain GF(p) yang berbasis bilangan prima p, tipe Galois field lain yang sering dipakai pada sistem kriptografi adalah GF(pm). GF(pm) berbasis aritmatika modular polinomial f(x) : f ( x) an x n an 1x n 1 ... a1x0 a0
Polinomial
f ( x) disebut dengan irreducible polynomial.
f ( x) adalah
polinomial berderajat n yang koefisiennya adalah pada GF(p). Koefisien ai adalah elemen GF(p) dan
an ≠ 0. Karakteristik irreducible polynomial m( x) mirip dengan
bilangan prima, yaitu tidak bisa dibagi habis kecuali oleh dirinya sendiri dan 1. Elemen pada GF(pm) merupakan semua polinomial yang berderajat antara 0 sampai dengan m 1 dengan koefisien merupakan elemen pada GF(pm) ditulis sebagai g ( x) maka g ( x) adalah : g ( x) an 1x n 1 an 2 x n 2 ... a1x0 a0
dengan koefisien ai berada pada GF(p). Variabel x dalam g(x) bersifat tidak ditentukan tapi nilai pangkat i pada xi menunjukkan posisi koefisien ai . Jika p = 2 maka terbentuk GF(2m) yang merupakan struktur aljabar yang sering dipakai di kriptografi karena elemen GF(2m) dapat direpresentasikan secara langsung sebagai nilai biner.
Universitas Sumatera Utara
16
2.8.3 Aritmatika Modular Polinomial Finite field GF(2m) terdiri dari himpunan semua polinomial yang berderajat lebih kecil dari n dan dua operator, yaitu operator penjumlahan (+) dan operator perkalian (×). Penjumlahan polinomial pada GF(2n) Penjumlahan polinomial pada GF(2m) sama dengan penjumlahan di polinomial biasa namun operasi penjumlahan koefisiennya dilakukan pada GF(2). Penjumlahan pada GF(2m) dapat dilakukan dengan gerbang logika ekslusif-or (xor) seperti yang diberikan pada tabel 2.1. Tabel 2.1 Penjumlahan pada GF(2) +
0
1
0
0
1
1
1
0
Contoh 2.1 : Apakah hasil penjumlahan dua polinomial f ( x) x3 x 2 1 dan g ( x) x 2 x pada GF(24) ?
Jawab: f ( x) g ( x) x3 x2 1 x2 x (1 0) x3 (1 1) x2 (0 1) x (1 0) (1) x3 (0) x2 (1) x (1) x3 x 1
Perkalian Polinomial pada GF(2m) Perkalian polinomial pada GF(2m) sama dengan perkalian pada polinomial biasa namun operasi perkalian koefisiennya dilakukan pada GF(2) seperti yang diberikan pada tabel 2.2.
Universitas Sumatera Utara
17
Tabel 2.2 Perkalian pada GF(2) ×
0
1
0
0
0
1
0
1
Perkalian dua polinomial f ( x) dan g ( x) dilakukan sama dengan perkalian polinomial biasa yaitu jumlah perkalian tiap suku perkalian polinomial pertama dengan polinomial kedua. Setiap perkalian x i dengan x j menghasilkan xi j . Perkalian elemen GF(2m) dapat menghasilkan polinomial yang derajatnya lebih dari
m 1 . Jika terjadi kasus derajat polinomial hasil perkalian lebih dari m 1 maka proses reduksi dengan modular polinomial irredusibel f ( x) dilakukan. Contoh 2.2 : Jika irreducible polynomial adalah f ( x) x8 x 4 x3 x 1 untuk GF(28) hitung hasil perkalian berikut ini: a. ( x3 1) ( x4 x 2 x) b. ( x6 x4 1) ( x7 x5 x2 x 1) Jawab: a. ( x3 1) ( x4 x2 x) x3 x4 x3 x2 x3 x 1.x 4 1.x 2 1.x x 7 x5 x 4 x 4 x 2 x x 7 x5 x 2 x
b. ( x6 x4 1) ( x7 x5 x2 x 1) x13 x11 x7 x6 x11 x9 x6 x5 x4 x7 x5 x2 x 1 x13 x9 x4 x2 x 1
Polinomial hasil perkalian terdapat x13 dan x 9 (melebihi derajat yang boleh pada GF(28) yaitu 7) diperlukan reduksi terhadap hasil perkalian. Perhatikanlah nilai irreducible polynomial adalah f ( x) x8 x 4 x3 x 1 karena f ( x) 0 maka 0 x8 x4 x3 x 1 sehingga x8 x4 x3 x 1
Universitas Sumatera Utara
18
Oleh karena itu, x 9 dapat direduksi menjadi: x9 x.x8
x.( x 4 x3 x 1) x5 x 4 x 2 x
Hasil setelah reduksi x 9 dapat dihitung sebagai berikut: x13 x9 x4 x2 x 1 x13 x5 x4 x2 x x 4 x 2 x 1 x13 x5 1
Sedangkan x13 dapat direduksi menjadi: x13 x5 .x8
x5 .( x4 x3 x 1) x9 x8 x6 x5 x5 x 4 x 2 x x 4 x 3 x 1 x 6 x 5 x 6 x3 x 2 1
Jadi hasil akhir didapatkan: ( x6 x4 1) ( x7 x5 x2 x 1) x13 x5 1 x 6 x3 x 2 1 x5 1
x 6 x5 x3 x 2
Invers Perkalian Invers perkalian untuk g ( x) ∈ GF(2m) adalah h( x) sehingga g ( x) h( x) mod f ( x) 1 dengan f ( x) adalah irreducible polynomial yang dipakai pada GF(2m).
Universitas Sumatera Utara
19
2.9 Fungsi Hash
Fungsi hash adalah sebuah fungsi yang masukannya adalah sebuah pesan dan keluaran sebuah sidik pesan (message fingerprint). Sidik pesan sering juga disebut message digest. Fungsi hash dapat digunakan untuk mewujudkan beberapa layanan keamanan jaringan misalnya untuk keutuhan data dan otentikasi pesan.
Fungsi hash yang dipakai dalam sistem kriptografi harus memenuhi beberapa syarat sehingga dapat dianggap aman, yaitu ketahanan terhadap serangan preimage, ketahanan terhadap serangan second preimage, dan ketahanan terhadap serangan collision. Ketahanan terhadap serangan preimage adalah jika diberikan pesan M, maka dapat dihitung dengan mudah y = h (M), namun jika diberikan y dan fungsi hash h maka sulit bagi penyerang menemukan M. Ketahanan terhadap serangan second preimage adalah jika diberikan sebuah pesan M dan fungsi hash h maka temukan h(M) = h(M’). Sebuah fungsi hash untuk sistem kriptografi harus tahan terhadap serangan second preimage atau dalam kata lain sulit bagi penyerang untuk menyelesaikan persoalan second preimage. Ketahanan terhadap serangan collision adalah jika diberikan sebuah fungsi hash h lalu penyerang berusaha menemukan sepasang M dan M’ dengan M ≠ M’ sehingga h(M) = h(M’).
Fungsi hash menerima masukan sebuah pesan dengan panjang sembarang dan membuat digest dengan panjang tetap. Salah satu cara untuk membuat digest adalah membagi pesan menjadi beberapa blok dengan ukuran n bit menghitung digest dengan ukuran m (m≤n) bit secara berulang dari blok awal sampai blok akhir pesan dengan menggunakan fungsi kompresi. Cara seperti ini disebut dengan fungsi hash dengan iterasi.
Merkle dan Damgard membuktikan fungsi hash dengan iterasi tahan terhadap serangan collision jika fungsi kompresi juga tahan terhadap serangan collision. Fungsi hash dengan iterasi disebut juga dengan skema Merkle dan Damgard (Menezes et al.,
Universitas Sumatera Utara
20
1996). Banyak fungsi hash yang berdasarkan skema Merkle dan Damgard diantaranya adalah fungsi hash MD5 dan SHA. Fungsi hash MD5 menghasilkan digest dengan ukuran 128 bit yang ternyata terlalu pendek sehingga bisa diserang dengan collision, sedangkan fungsi hash SHA (Secure Hash Algorithm) terdiri dari beberapa versi dan yang paling panjang memeliki digest berukuran 512 bit.
Fungsi Hash SHA-512
Fungsi hash SHA-512 merupakan versi SHA dengan ukuran digest 512 bit dan berbasis pada skema Merkle dan Damgard. SHA merupakan singkatan dari Secure Hash Algorithm merupakan fungsi hash standar yang dipublikasi oleh NIST (National Institute of Standard and Technology). SHA diterbitkan dengan beberapa versi diantaranya SHA-1 dengan ukuran digest 160 bit, SHA-256 dengan ukuran digest 256 bit dan SHA-512. Meskipun SHA terdiri dari beberapa versi, secara prinsip cara kerja fungsi hash SHA adalah sama, yaitu menggunakan skema Merkle-Damgard.
2.10 Kriptografi Kurva Eliptik
Sistem Kriptografi RSA dan Elgamal merupakan sistem kriptografi asimetrik yang banyak dipakai namun memiki kelemahan yaitu membutuhkan ukuran kunci yang besar. Sistem kriptografi kurva eliptik diperkenalkan oleh Neal Koblity dan Victor Miller pada tahun1985 dari universitas Washington. Sistem kriptografi kurva eliptik memberikan alternative untuk mewujudkan sistem kriptografi asimetrik dengan ukuran kunci yang kecil. Kriptografi kurva eliptik dengan panjang kunci 160 bit dipercaya mempunyai tingkat keamanan setara dengan RSA dengan panjang kunci 1024 bit.
Kriptografi kurva eliptik termasuk sistem kriptografi kunci publik yang mendasarkan keamanannya pada permasalahan matematika logaritma diskrit kurva eliptik (Elliptic curve discrete logarithm problem). Kriptografi kurva eliptik
Universitas Sumatera Utara
21
merupakan metode yang menggunakan titik-titik pada kurva eliptik. Kunci untuk kriptografi kurva eliptik terletak pada kurva tersebut. Kriptografi kurva eliptik menggunakan dua kunci yaitu kunci publik dan kunci privat. Kunci publik pada kriptografi kurva eliptik adalah sebuah titik pada kurva eliptik dan kunci privatnya sebuah angka random. Kunci publik diperoleh dengan melakukan operasi perkalian terhadap kunci privat dengan titik generator G pada kurva eliptik.
Kurva Eliptik adalah sehimpunan solusi yang memenuhi persamaan kubik yang melibatkan dua variabel. Kurva eliptik dapat didefenisikan pada sembarang medan (field). Kurva eliptik yang terdefenisi pada GF(p) dan GF(2m) dapat dipakai pada sistem kriptografi (Hankerson et al., 2003).
2.10.1 Kurva Eliptik pada Bilangan Real
Untuk memperoleh gambaran yang lebih dalam tentang kurva eliptik dibahas terlebih dahulu kurva eliptik pada bilangan real. Definisi kurva eliptik pada bilangan real diberikan oleh definisi 2.5.
Definisi 2.5 Kurva eliptik pada bilangan real. Misalkan a,b ∈ ℝ (ℝ adalah himpunan bilangan real) yang memenuhi 4a3 27b2 0 . Sebuah kurva eliptik yang yang bersifat non singular adalah himpunan E yang terdiri dari pasangan (x,y) ∈ R × R yang memenuhi : y 2 x3 ax b
bersama dengan titik khusus O yang disebut titik infinity.
Setiap perubahan nilai a dan b akan menghasilkan kurva eliptik yang berbeda. Contohnya kurva eliptik pada saat a = -12 dan b = 13 berbeda dengan kurva eliptik pada saat a = -10 dan b = 13. Hal ini diperlihatkan oleh gambar 2.3 dan gambar 2.4.
Universitas Sumatera Utara
22
Gambar 2.3 Kurva eliptik y 2 x3 12 x 13
Gambar 2.4 Kurva eliptik y 2 x3 10 x 13
2.10.2 Grup Abelian pada kurva eliptik
Himpunan
solusi
persamaan
kurva
eliptik
dan
titik
infinite,
E {( x0 , y0 ),...,( xn , yn ), O} ternyata membentuk grup Abelian dengan sebuah operasi
khusus yang disebut operasi penjumlahan (menggunakan simbol +) dinotasikan dengan 𝔾 = (E, +). Identitas penjumlahan pada grup 𝔾 = (E, +) adalah titik infinity O. Karena titik infinity O adalah identitas maka P O O P P untuk semua P ∈ E.
Universitas Sumatera Utara
23
Jika P,Q ∈ E dengan P adalah titik ( x1 , y1 ) dan Q adalah titik ( x2 , y2 ) , maka operasi penjumlahan P dan Q didefinisikan sebagai berikut : 1. Jika P dan Q adalah titik berbeda dengan x1 x2 , maka operasi penjumlahan dua titik pada kurva eliptik P Q R . R dapat dicari dengan menemukan garis L yang melalui P dan Q, garis L ini akan berpotongan dengan sebuah titik dikurva eliptik, titik ini adalah R . R adalah refleksi R pada sumbu x. Berdasarkan cara ini rumus untuk menghitung P Q R jika x1 x2 adalah ( x1 , y1 ) ( x2 , y2 ) ( x3 , y3 ) dengan
y2 y1 x2 x1
x3 2 x1 x2 y3 ( x1 x3 ) y1 2. Jika x1 x2 dan y1 y2 atau Q P sehingga dapat ditulis R P P dapat dihitung sebagai berikut:
3 x12 a 2 y1 x3 2 x1 x2 y3 ( x1 x3 ) y1 3. Jika x1 x2 dan y1 y2 atau Q P maka menghasilkan titik infinity P ( P) O.
Universitas Sumatera Utara
24
Gambar 2.5 Penjumlahan P Q R
Gambar 2.6 Penjumlahan P ( P) O
Universitas Sumatera Utara
25
Gambar 2.7 Penjumlahan 2P R
Jika diperhatikan operasi penjumlahan pada kurva eliptik memiliki sifat-sifat : 1. Penjumlahan menghasilkan titik yang merupakan anggota E (himpunan titik kurva eliptik dan titik infinity). Sifat ini disebut clousure. 2. Penjumlahan bersifat asosiatif, yaitu ( P Q) R P (Q R) . 3. Penjumlahan bersifat komutatif, yaitu P Q Q P . 4. Terdapat identitas, yaitu titik infinity. 5. Terdapat invers penjumlahan untuk tiap titik P ∈ E.
Oleh karena itu himpunan titik-titik pada kurva eliptik dan titik infinity beserta operasi penjumlahan membentuk grup Abelian.
2.10.3 Grup Siklik pada Kurva Eliptik Titik di kurva eliptik E (kecuali titik infinity (O )) dapat bertindak sebagai pembangkit (generator) sehingga membentuk grup siklik. Misalnya titik yang dipilih menjadi pembangkit adalah α maka operasi penjumlahan dapat dikenakan yaitu 2α = α + α dengan aturan penjumlahan pada kurva eliptik dengan titik yang sama menghasilkan
Universitas Sumatera Utara
26
sebuah titik baru 2α. Operasi penjumlahan ini dapat dilakukan secara berulang sehingga mendapatkan 3α,4α,…n𝛼 dengan n𝛼 = O sehingga (n + 1)α = O + α = α .
Order dari titik kurva eliptik adalah bilangan positif integer terkecil n sedemikian sehingga n𝛼 = O.
2.10.4 Kriptografi Kurva Eliptik pada GF( 2m ). Kurva eliptik dapat didefinisikan pada GF(2m). GF(2m) merupakan medan terbatas yang elemennya merupakan polinomial yang bisa direpresentasikan sebagai rangkaian bit. Dengan begitu operasi aritmatika pada GF(2m) dapat diterapkan secara efesien pada sebuah aplikasi komputer. Kurva eliptik pada GF(2m) mempunyai persamaan : y 2 xy x3 ax 2 b
dengan a, b F2m dan b 0 , bersama titik O yang disebut titik infinity. Parameter x, y, a dan b merupakan polinomial. Titik-titik kurva eliptik pada GF(2m) dapat ditemukan dengan menggunakan konsep generator untuk polinomial. Elemen GF(2m) dapat direpresentasikan sebagai m
himpunan {0,1, g , g 2 , ..., g 2
2
} kemudian dengan aritmatika polinomial dapat
ditemukan pasangan x dan y yang merupakan titik pada kurva eliptik.
Contoh 2.3 : Temukan titik kurva eliptik pada GF( 23 ) yang menggunakan irreducible polynomial f ( x) x3 x 1 dengan persamaan kurva eliptik a g 3 dan b 1 g 0 . y 2 xy x3 g 3 x 2 1
Universitas Sumatera Utara
27
Jawab : Jika g adalah generator maka himpunan elemen pada GF( 23 ) dapat direpresentasikan {0,1, g , g 2 ,..., g 6 } .
sebagai
Karena
nilai
irreducible
polynomial
adalah
f ( x) x3 x 1 maka dapat ditulis g 3 g 1 0 . Sehingga nilai g lain dapat
dihitung sebagai berikut : Tabel 2.3 Representasi biner dari g generator
representasi biner
generator
representasi biner
0
000
g3
011
1
001
g4
110
g
010
g5
111
g2
100
g6
101
Untuk menemukan titik (x,y) pada kurva eliptik ditetapkan terlebih dahulu sebagai salah satu elemen dari himpunan {0,1, g , g 2 ,..., g 6} . Setelah itu, y dapat dicari sehingga memenuhi: y 2 xy x3 g 3 x 2 1
Misalnya dipilih x g 5 . Hal pertama yang dihitung adalah nilai f ( x) x3 g 3 x 2 1 yaitu f ( x ) ( g 5 )3 g 3 ( g 5 ) 2 1 g g 6 1 g 4
Sekarang didapatkan persamaan berikut ini: y2 ( g 2 ) y g 4
Maka nilai yang memenuhi adalah
y 1 sebab 1 g 2 g 4 dan y g 4 . Jadi
didapatkan titik ( g 5 ,1) dan ( g 5 , g 4 ) . Setelah dilakukan perhitungan untuk semua nilai x yang mungkin didapatkan semua titik pada kurva eliptik y 2 xy x3 g 3 x 2 1 pada GF(23) dengan irreducible polynomial f ( x) x3 x 2 1 yaitu:
Universitas Sumatera Utara
28
Tabel 2.4 Titik kurva eliptik y 2 xy x3 g 3 x 2 1 pada GF(23) (0,1)
(0,1)
(1,g2)
(1,g6)
(g,g6)
(g,g4)
(g2,1)
(g2,g6)
(g3,g2)
(g3,g5)
(g4,0)
(g4,g4)
(g5,1)
(g5,g4)
(g6,g)
(g6,g5)
Bersama titik infinity O.
Invers Titik Kurva Eliptik Invers titik P ( x, y) kurva eliptik pada GF(2m) adalah P ( x, x y) . Contoh 2.4 : Temukan invers titik P ( g 3 , g 2 ) pada kurva eliptik pada contoh 2.3. Jawab: Invers P yaitu P adalah ( g 3 , g 3 g 2 ) ( g 3 , g 5 ) .
Aturan Penjumlahan Titik Aturan penjumlahan pada kurva eliptik y 2 xy x3 ax 2 b pada GF(2m) memiliki beberapa kasus, yaitu: 1. Jika P ( x1 , y1 ) dan Q ( x2 , y2 ) dan x1 x2 maka R ( x3 , y3 ) P Q dapat dihitung sebagai berikut:
( y2 y1 ) / ( x2 x1 ) x3 2 x1 x2 a y3 ( x1 x3 ) x3 y1
Universitas Sumatera Utara
29
2. Jika P Q maka R P P 2P dapat dihitung sebagai berikut:
x1 y1 / x1 x3 2 a y3 x12 ( 1) x3 Contoh 2.5 : Dengan menggunakan kurva eliptik pada contoh 2.3, jika P ( g 3 , g 5 ) dan Q ( g , g 6 ) temukan hasil penjumlahan:
1. P Q 2. 2P Jawab : Dengan menggunakan aturan penjumlahan titik kurva eliptik pada GF(2m) dapat dihitung, dengan x1 g 3 , y1 g 5 , x2 g dan y2 g 6 : 1. R ( x3 , y3 ) P Q
( g 6 g 5 ) / ( g g 3 ) = g × 11 g x3 ( g )2 g 3 g g 3 g 4 y3 g ( g 3 g 4 ) g 4 g 5 0 Jadi R ( x3 , y3 ) ( g 4 ,0) . 2. R ( x3 , y3 ) 2P
g3 g5 / g3 g3 g 2 g5 x3 ( g 5 )2 g 5 g 3 g 5
y3 ( g 3 )2 ( g 5 1) g 5 1
Jadi R 2P ( g 5 ,1) .
Universitas Sumatera Utara
30
2.10.5 Pemasalahan Logaritma Diskrit Kurva Eliptik
Kriptografi kurva eliptik menggunakan pemasalahan logaritma diskrit kurva eliptik (Eliptic Curve Disctrete Logarithm Problem) sebagai dasar matematikanya. Definisi 2.6 Jika kurva eliptik E pada Fq , titik P E ( Fq ) dengan order n dan titik Q E ( Fq ) maka pemasalahan logaritma diskrit kurva eliptik adalah masalah untuk
mencari bilangan integer k dimana 1 k n 1 sedemikian sehingga
Q kP
2.11 Tanda Tangan Digital
Tanda tangan digital (digital signature) merupakan mekanisme keamanan jaringan yang menyediakan cara bagi pengirim data untuk “menandatangani” secara elektronik sebuah data dan penerima dapat memverifikasi “tanda tangan” itu secara elektronik. Digital Signature ditambahkan pada data unit dan digunakan sebagai bukti sumber pengirim dan menghindari pemalsuan (forgency) tanda tangan. Cara kerja digital signature hampir sama dengan cara kerja “tanda tangan” dokumen biasa. Terdapat dua algoritma pada sistem digital signature, yaitu algoritma sign untuk menandatangani sebuah dokumen M dan menghasilkan sebuah tanda tangan (sign) ρ, dan algoritma verify yang mengembalikan nilai true bila tanda tangan ρ memang pemilik penandatangan dan untuk dokumen M. Sistem digital signature menggunakan kunci asimetris dengan algoritma sign menggunakan kunci privat dan algoritma verify menggunakan kunci publik.
Tanda tangan digital merupakan kumpulan bit yang bisa melakukan fungsi elektronik menggunakan fungsi hash satu arah. Pada dasarnya, tanda tangan digital dari setiap dokumen berbeda dengan dokumen lainnya karena diambil dari dokumen itu sendiri dan tentunya perubahan pada dokumen akan menciptakan tanda tangan
Universitas Sumatera Utara
31
berbeda. Tanda tangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tanda tangan itu hanya berlaku untuk dokumen yang bersangkutan saja.
Proses tanda tangan digital dapat ditunjukkan pada gambar di bawah ini:
Signer
Verify
Message
Message
Message
Signature
Signature
Fungsi Hash
Message
Signature Fungsi Hash
Message Digest Publik
Verify
Key Privat Sign
Signature
Key
Message Digest
? =
Message Digest
Gambar 2.8 Diagram Proses Tanda Tangan Digital
Universitas Sumatera Utara
32
Mekanisme kerja untuk menghasilkan tanda tangan digital tersebut adalah sebagai berikut : 1. Proses hashing algorithm akan mengambil nilai hash dari pesan yang akan dikirim dan menghasilkan message digest. Kemudian message digest tersebut dienkripsi menggunakan kunci privat dan menghasilkan tanda tangan digital. 2. Kemudian tanda tangan digital tersebut dikrim bersama isi pesan tersebut. 3. Sesampainya di penerima, akan dilakukan proses hashing algorithm terhadap pesan tersebut seperti yang dilakukan saat pengiriman. Dari proses tersebut menghasilkan message digest sekunder (MD’). 4.
Secara parallel digital signature yang diterima tadi langsung didekripsi oleh kunci publik. Hasil deskripsi tersebut akan memunculkan message digest sebelum dienkripsi oleh pengirim pesan. Message digest disebut message digest primer(MD).
5. Proses selanjutnya adalah membandingkan message digest primer dengan message digest sekunder. Jika saja saat diperjalanan ada hacker yang mengubah isi pesan, maka message digest sekunder akan berbeda dengan message digest primer. Segera mekanisme tanda tangan digital tersebut akan menyampaikan peringatan bahwa telah terjadi pengubahan isi pesan.
2.12 Pengertian Citra
Citra adalah representasi atau deskripsi tentang suatu objek. Citra juga dapat diartikan sebagai objek pada bidang dua dimensi. Citra dapat direpresentasikan ke dalam citra analog dan citra digital. Citra analog dihasilkan dari sistem optik, misalnya mata manusia, kamera, sedangkan citra digital dihasilkan dari hasil digitisasi citra analog.
Citra digital adalah representasi numerik dari objek-objek. Citra digital dibentuk oleh sekumpulan angka dalam array dua dimensi. Tiap angka menggambarkan warna dari tiap titik dalam gambar sesuai dengan mode warna yang
Universitas Sumatera Utara
33
digunakan. Titik-titik ini disebut pixel yang merupakan singkatan dari picture element (elemen gambar).
2.12.1 Model Citra Sederhana
Sensor optik yang terdapat didalam sistem pencitraan disusun sedemikian rupa sehingga membentuk bidang dua dimensi (x,y). Besarnya intensitas yang diterima sensor di setiap titik (x,y) disimbolkan oleh f(x,y) dan besarnya tergantung pada intensitas yang dipantulkan oleh objek. Ini berarti f(x,y) sebanding dengan energi yang dipancarkan oleh sumber cahaya. Konsekuensinya, besar intensitas f(x,y) tidak boleh nol dan harus berhingga, yaitu: 0 f ( x, y)
Fungsi f(x,y) dapat dipisahkan menjadi dua komponen yaitu: 1. Jumlah cahaya yang berasal dari sumbernya disimbolkan oleh i(x,y) (illumination), nilainya antara 0 dan ∞. 2. Derajat kemampuan objek memantulkan cahaya r(x,y) (reflection), nilainya antara 0 dan 1.
Besar f(x,y) merupakan kombinasi perkalian dari keduanya, yaitu: f ( x, y) i( x, y).r ( x, y)
dimana 0 i( x, y)
dan 0 r ( x, y) 1
Nilai i(x,y) ditentukan oleh sumber cahaya, sedangkan r(x,y) ditentukan oleh objek didalam gambar. Nilai r(x,y) = 0 mengindikasikan penyerapan total, sedangkan r(x,y) = 0 menyatakan pemantulan total. Jika permukaan mempunyai derajat pemantulan nol maka fungsi intensitas cahaya f(x,y) juga nol. Sebaliknya, jika
Universitas Sumatera Utara
34
permukaan mempunyai derajat pemantulan satu maka fungsi intensitas cahaya sama dengan iluminasi yang diterima oleh permukaan tersebut.
Intensitas f(x,y) dititik (x,y) disebut derajat keabuan (gray level), yang dalam hal ini derajat keabuan bergerak dari hitam ke puti, sedangkan citranya disebut citra skala keabuan (graysclale image). Derajat keabuan memiliki rentang nilai dari Imin < f(x,y) < Imax atau biasa ditulis dalam bentuk (Imin, Imax). Rentang nilai ini sering digeser untuk alasan-alasan praktis menjadi selanjutnya [0, L] yang dalam hal ini nilai intensitas 0 menyatakan hitam, nilai intensitas L menyatakan putih.
2.12.2 Representasi Citra Digital
Sebuah citra digital dapat diwakili oleh sebuah matriks yang terdiri dari M kolom dan N baris, dimana perpotongan antara kolom dan baris disebut piksel (picture element), yaitu elemen terkecil dari sebuah citra. Piksel mempunyai dua parameter, yaitu koordinat dan intensitas atau warna. Nilai yang terdapat pada (x,y) adalah f(x,y), yaitu besar intensitas atau warna dari piksel di titik itu. Oleh karena itu, sebuah citra digital dapat dituliskan dalam bentuk matriks berikut:
f (0, 0) f (1, 0) f ( x, y ) ... f ( N 1, 0)
f (0,1) ...
... ...
... ... f ( N 1,1) ...
f (0, M 1) f (1, M 1) ... f ( N 1, M 1)
Berdasarkan gambaran tersebut, secara matematis citra digital dapat dituliskan sebagai fungsi intensitas f(x,y), dimana harga x (baris) dan y (kolom) merupakan koordinat posisi dan f(x,y) adalah nilai fungsi pada setiap titik (x,y) yang menyatakan besar intensitas citra atau tingkat keabuan atau warna dari piksel di titik tersebut. Pada proses digitalisasi (sampling dan kuantisasi) diperoleh besar baris M dan kolom N
Universitas Sumatera Utara
35
hingga citra membentuk matriks M × N dan jumlah tingkat keabuan piksel G. Biasanya besar M, N, G adalah perpangkatan dari dua : M 2m , N 2n , dan G 2k
yang dalam hal ini m, n, dan k adalah bilangan bulat positif. Jika b menyatakan jumlah menyatakan bit yang diperlukan untuk menyimpan citra digital dalam memori, maka:
b m n k
2.12.3 Mode Warna
Menampilkan sebuah citra pada layar monitor diperlukan lebih informasi mengenai letak dari pixel-pixel pembentuk citra. Untuk memperoleh gambaran yang tepat dibutuhkan juga informasi tentang warna-warna yang dipakai untuk menggambarkan sebuah citra digital. Beberapa mode warna yang sering digunakan: 1. Bitmap Mode, memerlukan 1-bit data untuk menampilkan warna dan warna yang dapat ditampilkan hanya warna hitam dan putih (monokrom). 2. Indexed Color Mode, mengurutkan warna dalam jangkauan 0-255 (8-bit). 3. Grayscale Mode, menampilkan citra dalam 256 tingkat keabuan. 4. RGB Mode, menampilkan citra dalam kombinasi tiga warna dasar (red, green, dan blue), tiap warna dasar memiliki intensitas warna 0-255 (8-bit). 5. CMYK Mode, menampilkan citra dalam kombinasi empat warna dasar (cyan, magenta, yellow dan black), tiap warna memiliki intensitas 0-255 (8-bit).
2.12.4 Penyimpanan Citra
Menyimpan citra ke dalam media penyimpanan dalam bentuk digital memiliki bentuk yang beragam. Ada dua cara penyimpanan yang biasa dilakukan oleh perangkat lunak yaitu bitmap dan vector. Dalam hal ini sering juga digunakan istilah program paint dan program draw.
Universitas Sumatera Utara
36
Program paint atau program berbasis bitmap menyimpan citra sebagaimana ditampilkan di layar yaitu sebagai array dari pixel-pixel. Perubahan yang dilakukan pada citra dengan menggunakan program ini akan mengubah langsung tiap titik atau pixel pada citra. Kelebihan cara ini adalah kemudahannya untuk menampilkan gambar secara rinci dengan pola-pola yang kompleks atau gambar fotorealistik, yang tidak dapat dengan mudah direpresentasikan sebagai model matematika.
Program draw atau program berbasis vector menyimpan citra sebagai model matematika, dan setiap elemen citra disimpan secara terpisah. Perubahan yang dilakukan pada citra menggunakan program ini akan mengubah deskripsi matematika yang menyusun gambar dan program menghitung perubahan yang perlu pada warnawarna pixel secara tidak langsung. Kelebihan cara ini adalah kemampuannya untuk menciptakan gambar dalam resolusi yang berbeda tanpa kehilangan mutu gambar yang berarti.
Format File Citra BMP
Format file BMP merupakan format standar sistem operasi Windows dan IBM OS/2. Format ini mendukung mode warna dari Bitmap Mode hingga RGB Mode. BMP mudah dibuka dan disimpan, tetapi ada beberapa aturan khusus yang harus dicermati, diantaranya: 1. Format file ini menyimpan datanya secara terbalik, yaitu dari bawah ke atas. 2. Citra dengan resolusi warna 8-bit, lebar citra harus merupakan kelipatan dari 4, bila tidak maka pada saat penyimpanan akan ditambahkan beberapa byte pada data hingga merupakan kelipatan dari 4. 3. Citra dengan resolusi warna 24-bit, urutan penyimpanan tiga warna dasar adalah biru, hijau, merah (B, G, R). Lebar citra dikalikan dengan 3 harus merupakan kelipatan dari 4, bila tidak maka pada saat penyimpanan akan ditambahkan beberapa byte pada data hingga merupakan kelipatan dari 4. 4. BMP mendukung pemampatan run length encoding (RLE).
Universitas Sumatera Utara
37
Format File Citra GIF
Format file GIF ( Graphics Interchange Format) merupakan hasil rancangan CompuServe Incorporated. Format ini dirancang untuk memudahkan pertukaran citra bitmap antar komputer. GIF hanya mendukung resolusi warna sampai 256 warna (8bit).
Format file GIF memiliki dua versi yaitu GIF 87a dan GIF89a. Versi GIF89a diperkenalkan pada bulan Juli 1989 merupakan perbaikan dari versi GIF87a. Pada GIF89a ditambahkan kemampuan untuk menampilkan citra dengan latar belakang transparan (background transparency), penyimpanan data citra secara interlaced dan kemampuan untuk menampilkan citra animasi.
GIF menggunakan variable-length code yang merupakan modifikasi dari algoritma LZW (Lemple-Ziv Wetch) untuk memampatkan data citra. Teknik pemampatan data ini mampu menghasilkan pemampatan yang baik dan merupakan teknik pemampatan yang mampu mengembalikan data sama persis dengan aslinya (lossless data comperssion).
Format File Citra JPEG
Format file Joint Photographic Experts Group (JPEG) atau yang biasa disingkat JPG meningkat pesat penggunaannya. Format ini terkenal karena ukurannya yang mini dibandingkan dengan format-format lainnya. JPEG mendukung mode warna RGB, CMYK dan Grayscale, tetapi tidak mampu menampilkan citra dengan latar belakang transparan. Format JPEG menterjemahkan informasi tersebut menjadi komponen luminance (komponen cahaya) dan dua komponen chromatic (komponen perubahan warna dari hijau ke merah dan dari biru ke kuning). Untuk kompresinya format file citra ini menggunakan kompresi JPEG
Universitas Sumatera Utara