Implementasi Digital Signature dengan Algoritma RSA dan Lehmann Prime Generator

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Ditinjau dari segi terminologinya, kata kriptografi berasal dari bahasa Yunani yaitu crypto
yang berarti secret (rahasia) dan graphia yang berarti writing (tulisan). Jadi kriptografi
adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu
tempat ke tempat lain. Maka secara termonologi kriptografi merupakan langkah-langkah
logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan
tersebut [1].

Kriptografi terdiri dari dua proses, yaitu enkripsi dan dekripsi. Sebuah pesan
seolah tidak bermakna dengan merubahnya menurut prosedur tertentu maka disebut
dengan enkripsi, dan dibuat bermakna kembali dengan prosedure yang disebut dengan
istilah dekripsi. Pesan dalam istilah kriptografi disebut message, yang akak dirahasiakan
disebut plaintext, sedangkan bentuk pesan hasil proses enkripsi disebut chipertext.

Kunci yang digunakan dalam kriptografi terbagi menjadi 2 bagian yaitu kunci
rahasia (private key) dan kunci publik (public key) [2]. Proses enkripsi dan dekripsi

diatur oleh satu atau beberapa kunci kriptografi.

Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci
enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut
juga sebagai single-key algorithm. Algoritma asimetris (asymmetric algorithm) adalah
suatu algoritma dimana kunci enkripsi yang digunakan tidak sama dengan kunci
dekripsi. Algoritma RSA menggunakan dua kunci, yaitu kunci publik dan kunci
privat . Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara

Universitas Sumatera Utara

rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar
mengetahui kunci privat yang digunakan.

Kriptografi bertujuan untuk memberi layanan keamanan sebagai berikut[8] :
1. Kerahasiaan (confidentiality), adalah layanan yang ditujukan untuk menjaga agar
pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2. Integritas data (data integrity), adalah layanan yang menjamin bahwa pesan masih
asli/utuh 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
pensubstitusian data lain ke dalam data yang sebenarnya.
3. Otentikasi (authentication), adalah layanan yang berhubungan dengan identifikasi
baik mengidentifikasi pihak-pihak yang berkomunikasi maupun mengidentifikasi
kebenaran sumber pesan.
4. Nirpenyangkalan (non-repudiation), adalah layanan untuk mencegah etintas yang
berkomusikasi melakukan penyangkalan, yaitu pengiriman pesan menyangkal
melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.

Berdasarkan tujuan kriptografi yang telah dipaparkan sebelumnya, maka dapat
diketahui bahwa digital signature atau tanda tangan digital memiliki konstribusi
penting dalam integritas data, otentikasi, dan nirpenyangkalan.

2.2 Digital Signature

Digital signature atau tanda tangan digital merupakan tanda tangan yang dilakukan
memakai alat elektronik yang berfungsi sama dengan tanda tangan manual, tetapi
berbeda dalam penerapannya. Tanda tangan digital yang dimaksud bukanlah tanda
tangan yang di-digitasi dengan menggunakan alat scanner, tetapi suatu nilai
kriptografis yang bergantung pada pesan dan pengirim pesan. Dengan tanda tangan

digital, maka integritas data dapat dijamin, disamping itu digunakan juga untuk
membuktikan asal pesan dan nirpenyangkalan[8].

Universitas Sumatera Utara

Tanda tangan digital adalah suatu bagian dari aspek keamanan dalam
kriptografi yang dibuat untuk mengatasi masalah otentikasi dan anti-penyangkalan.
Seperti pada pesan atau data dalam bentuk cetak, tanda tangan digunakan sebagai
otentikasi pesan atau data tersebut, pesan cetak yang ditandatangani juga menjamin
keaslian pesan dan tidak bisa disangkal. Sejak berabad-abad lamanya, tanda tangan
telah digunakan sebagai pembuktian keaslian pesan atau dokumen. Hal-hal yang
menyebabkan tanda tangan menjadi sebagai bukti keabsahan suatu dokumen adalah
sebagai berikut[13] :
1. Tanda tangan adalah asli. Tanda tangan meyakinkan penerima dokumen bahwa
benar adanya pengirim pesan telah menandatangani dokumen tersebut.
2. Tanda tangan jarang terlupakan. Tanda tangan adalah bukti bahwa pengirim pesan,
tidak ada orang lain, yang sengaja menandatangani pesan tersebut.
3. Tanda tangan tidak dapat digunakan ulang. Tanda tangan merupakan bagian dari
dokumen, dimana tidak dapat dipindahkan ke dokumen yang berbeda.
4. Dokumen yang telah ditanda-tangani tidak dapat diubah. Setelah dokumen

ditanda-tangani, maka dokumen tidak dapat diubah.
5. Tanda tangan tidak dapat disangkal.

Walaupun begitu tanda tangan pada pesan atau data cetak tidak bisa menjamin
seutuhnya. Tanda tangan cetak merupakan representasi dari pembuat pesan sedangkan
tanda tangan digital adalah representasi dari isi pesan itu sendiri. Jadi tanda tangan
cetak akan sama untuk pembuat pesan yang sama sedangkan tanda tangan digital akan
berbeda walaupun pembuat pesan adalah orang yang sama, tanda tangan digital
bergantung pada isi pesan bukan pada pembuat pesan.

Kunci Publik

Kunci Privat

Plainteks

Cipherteks

enkripsi


dekripsi

Plainteks

Gambar 2.1 Proses enkripsi dan dekripsi tanda tangan digital

Universitas Sumatera Utara

Ada dua buah cara dalam menandatangani suatu pesan secara digital. Yang
pertama adalah dengan menggunakan enkripsi pesan. Dan yang kedua adalah dengan
menggunakan kombinasi fungsi hash dan kriptografi kunci publik[12].

Jika kriptografi kunci publik digunakan, maka enkripsi pesan dengan kunci
publik tidak dapat digunakan untuk otentikasi, karena setiap orang berpotensial
mengetahui kunci publik. Tetapi jika enkripsi pesan menggunakan kunci privat si
pengirim dan dekripsi pesan menggunakan kunci publik si pengirim, maka
kerahasiaan pesan (secrecy) dan otentikasi keduanya dicapai sekaligus. Ide ini
ditemukan oleh diffie dan Hellman[8].

Beberapa algoritma kunci publik dapat digunakan untuk menandatangani

pesan dengan cara mengenkripsikannya, asalkan algoritma tersebut memenuhi sifat :
D SeK (E PK (M)) = M

(2.1)

D PK (E SK (M)) = M

(2.2)

Dimana PK = kunci publik dan SK = kunci privat.

Misalkan M adalah pesan yang akan dikirim. Pesan M ditandatangani menjadi
pesan terenkripsi S dengan menggunakan kunci privat SK si pengirim.
S = E SK (M)

(2.3)

Kemudian pesan dikirimkan dengan menggunakan kunci publik (PK) pengirim.
M = D PK (S)


(2.4)

dimana D adalah fungsi enkripsi dari algoritma kunci-publik. S dikatakan absah
apabila pesan M mempunyai makna.

Universitas Sumatera Utara

Untuk lebih jelasnya dapat dilihat pada diagram di bawah :
Pengirim pesan

Dokumen

Kunci privat

Penerima pesan

Dokumen

Enkripsi
dokumen

dengan RSA

ya

Kunci publik

Dokumen yang
telah
ditandatangani

tidak
Pesan valid

Dekripsi pesan

Pesan
disadap / eror

Gambar 2.2 Diagram Pengiriman dan Penerimaan Pesan


2.3 Lehmann Prime Generator

Sebagian besar algoritma kunci publik menggunakan bilangan prima sebagai salah
satu nilai parameternya. Bilangan prima yang disarankan berukuran besar sehingga
penggunaan tipe data bilangan bulat yang besar mutlak diperlukan [2]. Lehmann
adalah salah satu cara untuk mencari bilangan prima. Syarat-syarat pembangkit
bilangan prima Lehmann :
1.

Ditentukan bilangan a dengan syarat 1 < a < p, dimana p adalah bilangan prima.

2.

Hitung nilai L (Legendre), dimana :
L ≡ a (p-1)/2 mod p

(2.5)

3.


Jika nilai L ≠ 1 dan L ≠ -1, maka p bukanlah bilangan prima.

4.

Jika a (p- 1)/2 ≡ 1 atau - 1 (mod p), maka p kemungkinan prima lebih besar 50%.

5.

Perhitungan nilai L akan diulang sampai seberapa banyak digit nilai prima yang
dimasukkan. Misalnya 231 ( terdapat 3 digit bilangan, maka pencarian nilai L

Universitas Sumatera Utara

sebanyak 3 kali) yang apabila langkah ini diulang dan lolos sebanyak t kali maka
akan menghasilkan sebuah bilangan prima p yang mempunyai kesalahan tidak
lebih dari 1/2t.
Contohnya :
1. Misalnya untuk mencari apakah nilai 2337 adalah prima?
Ambil nilai a dengan syarat 1