BAB 2 LANDASAN TEORI
Pada bab ini, akan dibahas landasan teori mengenai teori-teori yang digunakan dan konsep yang mendukung pembahasan, serta penjelasan mengenai metode yang digunakan.
2.1. Pengenalan Kriptografi Menurut Sadikin (2012), kriptografi adalah ilmu yang bersandarkan pada teknik matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Dalam kriptografi, pesan yang mempunyai makna disebut plaintext, dan pesan yang tidak bermakna lagi disebut ciphertext. Dua proses utama dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah transformasi plaintext menjadi ciphertext, sedangkan transformasi sebaliknya dari cipherteks menjadi plainteks semula
disebut
dekripsi.
Baik
enkripsi maupun dekripsi,
proses
keduanya melibatkan penggunaan kunci (key). Sistem kriptografi (yang terdiri atas algoritma kriptografi, kunci, plaintext, dan ciphertext) dapat digolongkan menjadi dua kelompok: sistem kriptografi simetri dan sistem kriptografi asimetris (kunci-publik). Pada sistem kriptografi simetri yang ditunjukkan pada gambar 2.1. (Munir, 2006), kunci untuk enkripsi sama dengan kunci untuk dekripsi. Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini harus sangat rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga sebagai algoritma kunci rahasia (secret-key algorithm). Contoh algoritma kriptografi simetri diantaranya adalah DES, Blowfish, Twofish, Triple-DES, IDEA, AES, LOKI, GOST, dan lain-lain.
Universitas Sumatera Utara
6
Gambar 2.1. Kriptografi Simetris
Sedangkan pada sistem kriptografi kunci-publik seperti yang terlihat pada gambar 2.2. (Munir, 2006), kunci untuk enkripsi tidak sama dengan kunci untuk dekripsi. Kunci untuk enkripsi tidak rahasia, sehingga dinamakan juga kunci publik (public key), sedangkan kunci untuk dekripsi rahasia, sehingga dinamakan kunci
privat
(privat key).
Pengirim
pesan
mengenkripsi
pesan
dengan
menggunakan kunci publik si penerima pesan, hanya penerima pesan yang dapat mendekripsi
pesan menjadi
plainteks
semula
dengan
menggunakan kunci
privatnya. Contoh algoritma kriptografi asimetris diantaranya adalah RSA (RivestShamir-Adleman), DSA, dan ElGamal.
Gambar 2.2. Kriptografi Asimetris
Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian kunci simetris dan menggunakan metode subtitusi (pergantian huruf) atau transposisi (pertukaran tempat). Dan kriptografi modern adalah sistem kriptografi yang menggunakan penyandian kunci asimetris (Sadikin, 2012). Ada 4 (empat) aspek-aspek keamanan yang disediakan oleh kriptografi (Munir, 2006), yaitu: 1.
Kerahasiaan Kerahasiaan (Confidentiality) merupakan layanan yang digunakan untuk menjaga isi pesan dari siapapun yang tidak berhak untuk membacanya. Didalam
Universitas Sumatera Utara
7
kriptografi, layanan ini umumnya direalisasikan dengan cara menyandikan pesan menjadi bentuk yang tidak dapat dimengerti. 2.
Integritas Data Integritas data (integrity) merupakan layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan
oleh
pihak-pihak
yang
tidak
berhak,
antara
lain
penyisipan,
penghapusan,dan pengsubsitusian data lain kedalam pesan yang sebenarnya. 3.
Otentikasi Otentikasi (Authentication) merupakan layanan yang berhubungan dengan identifikasi. Baik mengidentifikasi benaran pihak-pihak yang berkomunikasi (user authentication dan entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan.
4.
Anti Penyangkalan Anti Penyangkalan (non-repudiation) merupakan layanan untuk mencegah entitas yang
berkomunikasi
melakukan
penyangkalan,
yaitu
pengiriman
pesan
menyangkal melakukan pengiriman atau penerimaan pesan menyangkal telah menerima pesan.
2.2. Tanda Tangan Digital Tanda tangan digital adalah mekanisme otentikasi yang mengijinkan pemilik pesan membubuhkan sebuah sandi pada pesannya yang bertindak sebagai tanda tangan. Tanda tangan dibentuk dengan mengambil nilai hash dari pesan dan mengenkripsi nilai hash pesan tersebut dengan kunci privat pemilik pesan (Stallings, 2005).
Universitas Sumatera Utara
8
Prinsip yang digunakan dalam tanda tangan digital ini adalah dokumen yang dikirimkan harus ditandatangani oleh pengirim dan tanda tangan bisa diperiksa oleh penerima untuk memastikan keaslian dokumen yang dikirimkan. Fungsinya adalah untuk melakukan validasi terhadap data yang dikirim. Tanda tangan digital menggunakan algoritma yang disebut dengan istilah hashing algorithm. Fungsi tersebut akan menghasilkan sebuah kombinasi karakter yang yang unik yang disebut Message Digest. dengan cara ini pengirim bertanggungjawab terhadap isi dokumen dan dapat di cek keaslian dokumen oleh penerima. Keunikannya adalah jika di tengah perjalanan data mengalami modifikasi, penghapusan maupun di sadap diam-diam oleh hacker walaupun hanya 1 karakter saja, maka message digest yang berada pada si penerima akan berbeda dengan yang dikirimkan pada awalnya. Keunikan lainnya adalah message digest tersebut tidak bisa dikembalikan lagi ke dalam bentuk awal seperti sebelum disentuh dengan fungsi algoritma, sehingga disebutlah sebagai one-way hash (Sianturi, 2008). Fungsi utama dari tanda tangan digital pada pada aspek keamanan kriptografi adalah non-repudiation atau anti penyangkalan dimana apabila dokumen valid maka pengirim tidak bisa menyangkal bahwa keberadaan dokumen benar dikirim oleh pengirim yang bersangkutan. Suatu tanda tangan digital dapat digunakan di segala macam pesan, apakah itu terenkripsi maupun tidak, sehingga penerima dapat memastikan identitas pengirim itu dan pesan tiba secara utuh.
Gambar 2.3. Skema tanda tangan digital
Universitas Sumatera Utara
9
Cara kerja tanda tangan digital seperti yang terlihat pada gambar 2.3. (Tulu et all, 2004) adalah sebagai berikut: 1.
Si A menggunakan proses hashing algorithm untuk mengambil nilai hash dari sebuah pesan yang terdapat dalam sebuah dokumen yang dikirim dan menghasilkan Message Digest.
2.
Setelah dilakukan hashing, Si A melakukan sign terhadap message digest dengan menggunakan kunci privat yang hanya diketahui oleh penandatangan dan digunakan untuk membentuk tanda tangan digital.
3.
Kemudian Si A mengirimkan tanda tangan digital bersama dokumen tersebut.
4.
Si B penerima pesan yang dikirimkan oleh Si A.
5.
Setelah itu Si B mengverifikasi pesan yang dikirimkan oleh Si A. Pada proses verifikasi tersebut pesan di hashing terlebih dahulu sehingga menghasilkan message digest dan tanda tangan digital akan di unsign menggunakan kunci publik Si A. Jika message digest dan tanda tangan digital-nya sama, maka pesan ini adalah asli dan pesan berasal dari pengirim yang sebenarnya. Bila pesan telah diubah oleh pihak luar, maka tanda tangan digital juga ikut berubah sehingga kunci publik yang ada tidak akan bisa di unsign.
Proses diatas mampu membuktikan bahwasanya pesan adalah asli (message authentication) dan orang yang mengirim adalah orang yang sebenarnya (user authentication). Ini berarti tanda tangan digital memenuhi salah satu syarat keamanan jaringan yaitu non-repudiation atau anti-penyanggahan.
2.3. Fungsi Hash Fungsi hash merupakan suatu fungsi yang menerima masukan berupa string yang panjangnya sembarang dan mengonversi masukan tersebut menjadi string yang mempunyai panjang tetap (fixed) dan umumnya menjadi lebih kecil dari panjang semula. Keluaran dari fungsi hash disebut juga nilai hash atau pesan-ringkas (message digest). Fungsi hash sering juga disebut fungsi satu arah (one way function), message digest, fingerprint, fungsi kompresi, dan message authentication code (MAC). Fungsi ini biasanya diperlukan bila kita menginginkan pengambilan sidik jari suatu pesan. Dinamakan fungsi kompresi karena biasanya masukan fungsi satu arah ini selalu lebih
Universitas Sumatera Utara
10
besar dari keluarannya, sehingga seolah-olah mengalami kompresi. Namun kompresi hasil fungsi ini tidak dapat dikembalikan ke asalnya sehingga disebut sebagai fungsi satu arah. Dinamakan sebagai message digest karena seolah-olah merupakan inti sari pesan mestinya merupakan ringkasan pesan yang masih dipahami maknanya, sedangkan disini justru sebaliknya, malahan dengan diketahuinya sidik jari ini, justru orang diharapkan tidak tahu pesan aslinya (Kurniawan, 2004). Masukan
Nilai Hash
Halo
Aa6df57fb6fe377d80b4a2 57b4a92cba
Nomor teleponku 08122113451
09c88f091d74b292e6f895 87ab63921
“Tsunami” menjadi kata yang populer diindonesia saat ini
A996de118c61eac496398 9aa2d73e67e
Gambar 2.4. Contoh Penggunaan Fungsi Hash
Pada gambar 2.4. (Munir, 2004) memperlihatkan fungsi hash yang mengubah suatu string dengan panjang berapapun menjadi sebuah message digest yang memiliki panjang tetap. Fungsi hash pada dasarnya bekerja satu arah, berarti pesan asli atau pesan semula akan diubah menjadi sebuah message digest, namun message digest yang dihasilkan tidak dapat dikembalikan menjadi pesan asli atau pesan semula kembali. Fungsi hash satu arah merupakan fungsi satu arah (one way function) yang dapat menghasilkan ciri (signature) dari data (berkas, stream). Perubahan satu bit saja akan mengubah keluaran hash secara drastis. Fungsi hash biasanya digunakan untuk menjamin integritas dan tanda tangan digital. Salah satu fungsi hash yang sudah terstandardisasi dan banyak digunakan adalah SHA (Secure Hash Algorithm) yang dikeluarkan oleh NIST (National Institute of Standard and Technology).
Universitas Sumatera Utara
11
Saat ini sudah terdapat tiga generasi dari SHA dimana dari generasi tersebut juga terdapat beberapa varian lagi berdasarkan panjang bit yang dihasilkan. Ketiga varian itu adalah SHA-0 (atau yang biasa disebut SHA saja), SHA-1, dan SHA-2. Algoritma SHA-2 merupakan pengembangan dari algoritma SHA-1 yang memuat banyak perubahan. Algoritma ini didesain oleh National Security Agency (NSA) of United States dan dipublikasikan pada tahun 2001 oleh NIST sebagai standar bagi pemrosesan informasi federal bagi Amerika Serikat atau yang biasa disebut Federal Information Processing Standard (FIPS). Algoritma SHA-2 ini terdiri dari beberapa algoritma berdasarkan panjang bit yang digunakan/ dihasilkan sebagai nilainya yaitu SHA-224, SHA-256, SHA-384, SHA-512. Algoritma SHA-2 ini menggunakan beberapa operasi dasar dalam teknik kriptografi, yaitu fungsi AND, OR, XOR, SHIFT (right), dan ROTATE (right). Sifat-Sifat Fungsi Hash Kriptografi: a.
Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
b.
Tahan preimej kedua (Second preimage resistant): bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2).
c.
Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)
2.4. Algoritma GOST Digital Signature GOST atau Gosudarstvenny Standard yang artinya standard pemerintah, adalah algoritma kriptografi dari negara Uni Soviet dahulu (sekarang sudah terpecah menjadi sejumlah negara dengan Rusia sebagai negara terbesar) (Munir, 2004). Algoritma ini dikembangkan pada tahun 1970 yang merupakan sebuah algoritma block chiper dengan panjang 64 bit, sedangkan panjang kuncinya 256 bit. GOST dibuat oleh Soviet sebagai alternatif terhadap algoritma enkripsi standard Amerika Serikat, DES. GOST secara struktural mirip dengan DES. Masyarakat perbankan Prancis telah menstadardisasi RSA. National Institute of Standardization Technology (NIST) mengusulkan suatu modifikasi ElGamal dan Schnorr sebagai standar tanda tangan digital (Digital Signature Standard [DSS])
Universitas Sumatera Utara
12
mereka dan skema tanda tangan didasarkan pada kurva elips yang sampai saat ini menjadi standar IEEE. Pada tahun 1999 federasi Rusia mengeluarkan standar tanda tangan digital GOST Digital Signature atau sering disebut GOST 34,10-94. Algoritma ini sangat mirip dengan Digital Signature Algorithm (DSA). GOST Digital Signature dan algoritma tanda tangan digital lainnya memiliki tiga proses utama yaitu: 1.
Pembentukan sepasang kunci (Key Pair Generation)
2.
Pembentukan tanda-tangan digital (Digital Signature Generation)
3.
Verifikasi tanda-tangan digital (Digital Signature Verification)
2.4.1. Parameter GOST digital signature GOST Digital Signature merupakan sebuah standar Russia digital signature yang dikembangkan dari DSA yang telah dimodifikasi dimana menggunakan parameter dibawah ini (Schneier, 1996): 1.
p, adalah bilangan prima dengan panjang antara 509 ≤ p ≥ 512 bit, atau 1020 ≤ p ≥ 1024 bit. Parameter p bersifat publik.
2.
q, adalah bilangan prima dengan panjang 254 ≤ q ≥ 256 bit, dan q merupakan faktor dari p - 1. Parameter q bersifat publik.
3.
a, merupakan bilangan yang lebih kecil dari p - 1 dimana
mod p = 1.
Parameter a bersifat publik. 4.
x, adalah bilangan acak yang lebih kecil dari q. Parameter x adalah kunci privat.
5.
y=
6.
m, pesan yang akan diberi tanda tangan.
mod p, adalah kunci publik.
2.4.2. Pembentukan sepasang kunci Proses pembentukan kunci pada GOST Digital Signature adalah sebagai berikut (Schneier, 1996): 1.
Pilih bilangan prima p dan q dimana (p–1) mod q = 0.
2.
Hitung a dimana aq mod p = 1 dan a < p-1.
3.
Tentukan kunci privat x dimana x < q.
4.
Hitung kunci publik y, dengan rumus:
Universitas Sumatera Utara
13
y= 5.
mod p
(2.1)
Kunci publik (p, q, a, y) dan kunci privat (p, q, a, x).
2.4.3. Pembentukan tanda tangan digital Diketahui kunci publik (p, q, a, y) dan kunci privat (p, q, a, x) (Schneier, 1996): 1.
Ubah pesan m menjadi message digest dengan fungsi Hash SHA menghasilkan SHA (M).
2.
Tentukan bilangan acak k dimana k < q.
3.
Hitung tanda tangan r, dengan rumus: r = (ak mod p) mod q
1.
Hitung tanda tangan s, dengan rumus: s = (xr + k(H(m))) mod q
4.
(2.2)
(2.3)
Kirim pesan beserta tanda tangan r dan s.
2.4.4. Verifikasi tanda tangan digital Sebelum diverifikasi, harus dipastikan tersedia kunci publik pengirim (y), nilai p, q dan a beserta pesan yang bertandatangan r dan s. Penerima memeriksa terlebih dahulu apakah 0 < r < q dan 0 < s < q, kemudian hitung: 1.
2.
3.
4.
Hitung nilai v, dengan rumus: v = H(m)q-2 mod q
(2.4)
Z1 = (sv) mod q
(2.5)
Z2 = ((q – r) * v) mod q
(2.6)
Hitung nilai Z1, dengan rumus:
Hitung nilai Z2, dengan rumus:
Hitung nilai u, dengan rumus:
Universitas Sumatera Utara
14
u = ((a z1 * y z2) mod p) mod q 5.
(2.7)
Jika u = r, maka proses verifikasi berhasil.
2.5. Penelitian Sebelumnya Beberapa penelitian dari peneliti sebelumnya yang menjadi bahan pembelajaran penulis tentang tanda tangan digital. Supriyanto (2009) menggunakan algoritma kunci publik RSA yang mampu memberikan sistem keamanan dokumen attachment pada sebuah e-mail untuk menghindari jebolnya keamanan yang diterapkan e-mail standard seperti PGP. Pada penelitian ini pengujian validitas dilakukan berdasarkan elemen dokumen XML dengan cara membandingkan “data valid” dengan perubahan data yang menghasilkan “data invalid”. Budiono (2011) telah melakukan penerapan tanda tangan digital untuk otentikasi
SMS-Banking.
Algoritma
RSA
telah
berhasil
diimplementasikan
menggunakan teknologi tanda tangan digital untuk transaksi SMS-Banking yang tersimulasikan dalam perangkat lunak yang telah dibangun diatas telepon seluler sebagai client dan perangkat lunak yang dibangun diatas komputer sebagai server.
Table 2.1. Tabel penelitian terdahulu No
Judul
Pengarang
Tahun Kelebihan
1.
Pemakaian kriptografi
Aji Supriyanto
2009
Memberikan keamanan
kunci publik untuk proses
otentikasi dokumen e-mail,
enkripsi dan tanda tangan
untuk menghindari
digital pada dokumen
jebolnya atau tembusnya
email.
keamanan yang diterapkakn oleh e-mail standar.
Universitas Sumatera Utara
15
2.
Penerapan tanda tangan
Budiono
2011
Algoritma RSA yang
digital untuk otentikasi
berhasil diimplementasikan
SMS-Banking.
pada tanda tangan digital SMS telah terbukti dengan kemampuan perangkat lunak client dalam mengoperasikan bilangan bigintiger.
Universitas Sumatera Utara