• Tidak ada hasil yang ditemukan

Digital Signature Halim Agung* 1 , Ferry

2. TINJAUAN PUSTAKA 1 Kriptograf

Menurut Kromodimoedjo [7], Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi mendapatkan kembali data asli. Proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter. Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan.

2.2 Hybrid Cryptosystem

Menurut Ronald Cramer dan Victor Shoup, skema hybrid encryption menggunakan teknik mengenkripsi public key untuk memperoleh shared key yang digunakan untuk enkripsi pesan yang asli dengan menggunakan enkripsi symmetric key [4]. Kelebihan memakai hybrid cryptosystem : (1) Kombinasi dari symmetric encryption dan asymmetric encryption memberikan kemudahan asymmetric encryption dengan kecepatan symmetric encryption. (2) Dengan menggunakan symmetric encryption yang 100 – 1000 kali cepat daripada asymmetric encryption, memberikan pemecahan masalah terhadap waktu enkripsi yang lama oleh asymmetric encryption. (3) Asymmetric encryption menyediakan solusi pendistribusian kunci dan masalah transmisi data ketika memakai symmetric encryption. (4) Ketika digunakan bersama-sama, performa dan pendistribusian kunci meningkat tanpa adanya pengurangan dalam keamanan. Kekurangan dari hybrid cryptosystem : (1) Hybrid cryptosystem mewarisi kekurangan dari symmetric encryption dan asymmetric encryption. (2) Lebih rumit.

JCCS Vol. x, No. x, July201x : first_page–end_page

2.3 RC4

Algoritma kriptografi Rivest Cipher 4 (RC4) (Gambar 1) merupakan salah satu algoritma kunci simetris dibuat oleh Rivest Shamir Adleman Data Security Inc (RSADSI) yang berbentuk stream chipher. Algoritma ini ditemukan pada tahun 1987 oleh Ronald Rivest dan menjadi simbol keamanan RSA (merupakan singkatan dari tiga nama penemu yaitu Rivest, Shamir dan Adleman). Algoritma ini dibuat berdasarkan penggunaan permutasi acak [3].

Gambar 1. Proses Algoritma RC4

Tahap pertama, state yang diberi nilai awal berupa array yang merepresentasikan suatu permutasi dengan 256 elemen. Array yang mempunyai 256 elemen ini (dengan indeks 0 sampai dengan 255) dinamakan S. Proses inisialisasi S :

Kode 1 . Proses inisialisasi S For i = 0 to 255 do

S[i] = I;

T[i] = K[I mod length];

Tahap kedua menggunakan T untuk membuat awal permutasi untuk dari S. Dimulai dari S[0] sampai S[255] dan untuk setiap S[i], S[i] ditukar dengan byte didalam S sesuai dengan skema yang diperintahkan oleh T[i].

Kode 2 . Proses permutasi awal J = 0;

For i = 0 to 255 do

j = (j + S[i] + T[i] ) mod 256; swap (S[i], S[j]);

Dikarenakan operasi yang digunakan untuk S adalah permutasi. S masih mengandung semua nomor dari 0 sampai 255. Dengan demikian berakhirlah proses persiapan kunci RC4. Untuk membangkitkan kunci enkripsi, dilakukan proses berikut:

Jatisi, Vol. 3 No. 1 September 2016  37 Kode 3 . Proses persiapan kunci RC4

i = j = 0; i = (i + 1) mod 256; j = (j + S[i]) mod 256; swap (S[i], S[j]); t = (S[i] + S[j]) mod 256; k = S [t];

Untuk mengenkripsi, XOR nilai k dengan byte plain text dan untuk mendekripsi, XOR nilai k dengan byte cipher text.

2.4 Rivest Shamir Adleman (RSA)

Algoritma ini ditemukan oleh Ron Rivest, Adi Shamir dan Leonard Aldeman. RSA adalah singkatan dari huruf depan 3 orang yang menemukannya pada tahun 1977 di MIT (Massachussets Insitute of Technology). RSA adalah blok cipher yang terdiri dari plain text dan cipher text berupa integer diantara 0 dan n – 1 dimana tipikal size untuk n adalah 1024 bits (21024) atau 309 digit desimal [3]. Menurut Sentot Kromodimoeljo [7], keamanan RSA mengandalkan sukarnya menguraikan bilangan yang sangat besar.

Setiap pengguna memilih, menggunakan random number generator (Gambar 2), dua bilangan prima yang sangat besar p dan q. Untuk produk n = pq, jika p dan q diketahui, fungsi Euler dapat dengan mudah dikomputasi yaitu ∅(n) = (p-1)(q-1). Kemudian pengguna memilih, menggunakan random number generator, suatu bilangan e antara 1 dan ∅(n) yang koprima dengan ∅ (n). Berikutnya pengguna mengkomputasi inverse dari e modulo ∅ (n): 𝑑≡𝑒−1 (𝑚𝑜𝑑 ∅(𝑛)). Kemudian pengguna mempublikasi kunci publiknya 𝐾𝐸 = (n, e), dan merahasiakan kunci pribadinya 𝐾𝐷 = (n, d), rumus untuk mengenkripsi menggunakan kunci publik adalah 𝑀𝑒 mod n, dimana M adalah representasi naskah asli ketika mengenkripsi. Rumus untuk mendekripsi menggunakan kunci pribadi adalah 𝑀𝑑 mod n, dimana M adalah representasi naskah asli (menggunakan bilangan bulat) ketika mendekripsi.

JCCS Vol. x, No. x, July201x : first_page–end_page

2.5 Digital Signature

Digital signature adalah mekanisme otentikasi yang memungkinkan pembuat pesan dapat melampirkan sebuah kode yang bertindak sebagai tanda tangan. Tanda tangan digital dibuat dengan menggunakan fungsi hash pada pesan, lalu mengenkripsi hash tersebut dengan private key pembuat. Tanda tangan tersebut menjamin sumber dan integritas pesan [3].

Gambar 3. Proses Digital Signature

Untuk proses tanda tangan (Gambar 3), pesan terlebih dahulu dienkripsi dengan kriptografi fungsi hash dan kemudian hasil dari fungsi hash tersebut dienkripsi dengan private key user pengirim. Setelah itu pesan dan tanda tangan diberikan kepada user penerima. Untuk proses verifikasi, pesan yang dikirim akan dienkripsi dengan fungsi hash dan untuk tanda tangan yang diterima akan dienkripsi dengan menggunakan kunci publik user pengirim. Kemudian hasil dari keduanya dicocokkan, apabila kedua hasil tersebut sama maka tanda tangan itu sah, jika sebaliknya maka tidak sah. Dalam Digital Signature Standard (DSS), fungsi hash yang dipakai pada umumnya adalah SHA-1, tetapi berdasarkan standar Federal Information Processing Standard Publications diumumkan bahwa fungsi hash SHA-1 pada akhir tahun 2013 tidak akan digunakan, tetapi fungsi hash SHA-2 telah disetujui pemakaiannya untuk Digital Signature Standard. Output dari fungsi hash SHA-2 diperbolehkan untuk dipotong ukurannya hingga sama seperti ukuran keypair.

2.6 SHA-512 (Secure Hash Algorithm)

Algoritma SHA dirancang oleh National Security Agency (NSA) dan dijadikan standard FIPS (Federal Information Processing Standard) pada tahun 1993. SHA dibuat berdasarkan fungsi hash MD4 dan desain modelnya menyerupai MD4. Pada tahun 2005, NIST memberikan pengumuman dengan tujuan menghapus setahap demi setahap penggunaan SHA-1 dan mengharapkan pindah pada SHA-2 pada tahun 2010.

Algoritma SHA-512 (Gambar 4) menerima input pesan dengan panjang maksimum kurang dari 2128 bits dan akan menghasilkan keluaran berupa 512 bit message digest. Input pesan akan diproses dalam blok 1024 bit. Proses terbagi menjadi beberapa tahap, yaitu [3]: (1) Menambah jumlah bits. pesan diberi lapisan sehingga panjang pesan menjadi sama dengan 896 modulo 1021 ( panjang ≡ 896(mod 1024)). (2) Menambahkan panjang bits. blok sebanyak 128 bit ditambahkan pada akhir pesan. (3) Inisialisasi hash buffer. Buffer sebesar 512 bit dipakai untuk penyangga dan menghasilkan fungsi hash. Buffer tersebut direpresentasikan menjadi delapan 64 bit integer, yaitu : a = 6A09E667F3BCC908, b = BB67AE8584CAA73B, c = 3C6EF372FE94F82B, d = A54FF53A5F1D36F1, e = 510E527FADE682D1, f =

Jatisi, Vol. 3 No. 1 September 2016  39 9B05688C2B3E6C1F, g = 1F83D9ABFB41BD6B, h = 5BE0CD19137E2179. (4) Memproses pesan dalam blok 1024 bit (128 karakter).

Gambar 4. Proses 1 Algoritma SHA-512

Modul ini merupakan bagian utama dan terbagi menjadi 80 babak (Gambar 5). Modul ini direpresentasikan sebagai F pada Gambar 4. Setiap babak menerima input sebanyak 512 bit nilai buffer, abcdefgh dan memperbarui konten buffer. Pada input babak pertama, buffer memiliki nilai hash penyangga, 𝐻𝑖−1. Setiap babak (round) t memakai 64 bit nilai 𝑊𝑡, diperoleh dari 1024 bit blok yang sekarang ini diproses (𝑀𝑖). Nilai-nilai ini diperoleh dengan menggunakan message schedule yang akan dijelaskan kemudian. Setiap babak juga menggunakan konstanta tambahan 𝐾𝑡, dimana 0 ≤𝑡≤79. Hasil dari babak ke-80 menjadi input babak pertama (𝐻𝑖) untuk dihitung di blok selanjutnya.

JCCS Vol. x, No. x, July201x : first_page–end_page

(5) Output. Setelah semua 1024 bit blok sudah diproses, hasil dari babak terakhir adalah 512 bit message digest. Rangkuman dari proses SHA-512 adalah seperti berikut:

Kode 4 . Proses SHA-512 𝐻0= IV

𝐻𝑖= SUM64 (𝐻𝑖−1 , abcdefgh𝑖) MD = 𝐻𝑁

dimana : IV = Initial value dari buffer abcdefgh, yang tercantum dalam tahap ketiga, abcdefgh𝑖 = hasil dari babak terakhir dari proses tahap keempat, N = jumlah blok dalam pesan (termasuk pesan yang bit-nya sudah ditambah), SUM64 = penambahan modulo 264, MD = Hasil message digest.

3. METODE PENELITIAN