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,
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 ( Rivest-Shamir-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
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.
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.
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.
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
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.
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:
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.
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 = mod p, adalah kunci publik.
6. m, pesan yang akan diberi tanda tangan.
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.
y = mod p (2.1)
5. 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 = (akmod p) mod q (2.2)
1. Hitung tanda tangan s, dengan rumus:
s = (xr + k(H(m))) mod q (2.3)
4. 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. Hitung nilai v, dengan rumus:
v = H(m)q-2 mod q (2.4)
2. Hitung nilai Z1, dengan rumus:
Z1 = (sv) mod q (2.5)
3. Hitung nilai Z2, dengan rumus:
Z2 = ((q – r) * v) mod q (2.6)
u = ((a z1 * y z2) mod p) mod q (2.7)
5. 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
kunci publik untuk proses
enkripsi dan tanda tangan
digital pada dokumen email.
Aji Supriyanto 2009 Memberikan keamanan
otentikasi dokumen e-mail,
untuk menghindari
jebolnya atau tembusnya
keamanan yang diterapkakn
2. Penerapan tanda tangan
digital untuk otentikasi
SMS-Banking.
Budiono 2011 Algoritma RSA yang
berhasil diimplementasikan
pada tanda tangan digital
SMS telah terbukti dengan
kemampuan perangkat
lunak client dalam
mengoperasikan bilangan