2.1. Pengenalan Kriptografi - Aplikasi Otentikasi Dokumen Menggunakan Algoritma Gost Digital Signature

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