• Tidak ada hasil yang ditemukan

Implementasi Digital Signature dengan Algoritma RSA dan Lehmann Prime Generator

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Digital Signature dengan Algoritma RSA dan Lehmann Prime Generator"

Copied!
15
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1Kriptografi

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.

(2)

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.2Digital Signature

(3)

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.

enkripsi dekripsi

Plainteks Cipherteks Plainteks

Kunci Privat Kunci Publik

(4)

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 :

DSeK(EPK

D

(M)) = M (2.1)

PK(ESK

Dimana PK = kunci publik dan SK = kunci privat.

(M)) = M (2.2)

Misalkan M adalah pesan yang akan dikirim. Pesan M ditandatangani menjadi

pesan terenkripsi S dengan menggunakan kunci privat SK si pengirim. S = ESK

Kemudian pesan dikirimkan dengan menggunakan kunci publik (PK) pengirim.

(M) (2.3)

M = DPK

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

(5)

Untuk lebih jelasnya dapat dilihat pada diagram di bawah :

Dokumen

Kunci privat

Enkripsi dokumen dengan RSA

Dokumen yang telah ditandatangani

Pengirim pesan Penerima pesan

Dekripsi pesan

Kunci publik Pesan valid Dokumen

ya

tidak

Pesan disadap / eror

Gambar 2.2 Diagram Pengiriman dan Penerimaan Pesan

2.3Lehmann 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

5. Perhitungan nilai L akan diulang sampai seberapa banyak digit nilai prima yang

dimasukkan. Misalnya 231 ( terdapat 3 digit bilangan, maka pencarian nilai L

(6)

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<a<2337 Misal a = 2 , maka

L = 2 (2337-1)/2

L = 1240 (bukan bilangan prima) mod 2337

2. Apakah 971 bilangan prima?

Ambil nilai a, misal a = 5 L = 5 (971-1)

Kemudian bangkitkan nilai a untuk mencari kepastian dari bilangan tersebut, misal a = 10

mod 971 = 1

L =10 (971-1)/2 = 970

mod 971

Kemudian dicari apakah nilai L ≡ -1 dengan cara mencari hasil L – p = -1 970-971 = -1

Maka nilai L= -1

Sehingga dapat dibuktikan bahwa L adalah bilangan prima.

Maka dengan menggunakan metode Lehmann, dapat dicari bilangan prima yang akan digunakan pada algoritma yang digunakan penulis untuk menandatangani pesan teks menggunakan RSA.

2.4Algoritma RSA

(7)

menggunakan operasi pemangkatan. RSA termasuk algoritma asimetri, yang berarti memiliki dua kunci, yaitu kunci publik dan kunci privat [4].

Berikut ini akan disampaikan pembentukan kunci privat dan kunci publik dengan RSA :

1. Pilih dua bilangan prima acak yang sangat besar, p dan q. kemudian hitung

nilai n dan Ф(n)

n = pq (2.6)

Ф(n) = (p-1)(q-1) (2.7)

2. Kemudian secara acak pilih kunci enkripsi e, sehingga e dan Ф(n) relative

prima. Relatif prima artinya faktor pembagi terbesar keduanya adalah 1. Relatif prima berarti :

GCD(e, Ф(n)) = 1 (2.8)

dengan syarat e ≠ (p-1), e ≠ (q-1) dan e < n. 3. Hitung nilai d, sehingga :

d ≡ e-1 (mod Ф(n)) (2.9)

dimana ekivalen dengan :

e . d = 1 + k Ф(n) (2.10)

Hasil algortima di atas menghasilkan kunci publik (e,n) dan kunci privat (d,n).

Penurunan rumus RSA menggunakan prinsip teorema Euler Ф(n). Syarat-syarat yang harus dipenuhi dalam penggunaan teorema Euler dalam penurunan rumus RSA adalah sebagai berikut :

1. a harus relatif prima terhadap n

2. Nyatakan pesan menjadi blok-blok plainteks m1, m2, m3, ..., mn, dengan syarat 0 < mi < n-1.

(8)

Proses enkripsi dapat dilakukan dengan : Ci = Pie

Sedangkan proses dekripsi dilakukan dengan :

mod n (2.11)

Pi = Cid mod n (2.12)

Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor-faktor prima, dalam hal ini n = p * q. Bila p dan q diketahui, dan karena kunci enkripsi e tidak rahasia, maka kunci dekripsi d dapat diketahui. Mollin (2002) menyarankan nilai p dan q panjangnya lebih dari 100 digit, dengan demikian hasil n = pq bisa berukuran lebih dari 308 digit. Usaha untuk mencari faktor dari bilangan 308 digit membutuhkan waktu komputasi yang sangat lama, hinga bermilyar - milyar tahun. Oleh karena itu, RSA hanya aman jika nilai n cukup besar.

Contoh algoritma RSA:

Misalkan pesan yang akan dienkripsi dapat dinyatakan sebagai bilangan dalam pengkodean ASCII adalah sebagai berikut :

m = 38901794325

karena m harus lebih kecil dari n dan n 3 digit, maka diambil 2 digit per blok pesan, sehingga :

kemudian setelah mengetahui nilai m, kemudian ditentukan berapa nilai dari c, sehingga :

(9)

c1 = m1e mod n = 38 79

Proses dekripsi akan menjadi sebagai berikut : m1 = c1d mod n = 304 391

maka pesan akan menjadi seperti semula, yaitu 38901794325 mod 437 = 5

2.4.1 Algoritma Euclidean

Teorema Euclidean :

Misalkan m dan b adalah dua buah bilangan bulat dengan syarat n > 0. Jika m dibagi dengan n maka terdapat dua buah bilangan bulat unik q (quotient) dan r (remainder) sedemikian sehingga m = nq + r dengan 0 ≤ r < n.

Contoh :

1987 = 97 × 20 + 47, yaitu 1987 dibagi dengan 97 memberikan hasil 20 dan sisa 47 7420 = 391 × 18 + 382 , yaitu 7420 dibagi dengan 391 memberikan hasil 18 dan sisa

(10)

Dengan dasar Theorem Euclidean sebelumnya, dikembangkan sebuah algoritma (yang disebut dengan algoritma Euclidean) untuk mencari gcd dari dua buah bilangan bulat.

Definisi :

Diberikan dua buah bilangan bulat tak negative a dan b (a ≥ b). Maka terdapat q i, ri

a = q

Dihitung dengan menggunakan algoritma Euclidean sbb. :

80 = 6 × 12 + 8 12 = 1 × 8 + 4

8 = 2 × 4

Jadi gcd (80, 12) = gcd (12, 8) = gcd (8,4) = 4

Algoritma Euclidean yang diperluas dapat digunakan untuk menentukan bilangan bulat positif b < a memiliki invers (terhadap operasi perkalian) modulo a dengan memeriksa jika rm+1

Definisi :

= 1.

(11)

Berdasarkan pada qj hasil algoritma Euclidean dan pendefinisian tj dan sj diperoleh hubungan rj, tj, dan sj yang diberikan oleh :

Jika j = 0, 1, 2, …, m maka r Teorema :

j = sja + tjb dengan tj dan sj seperti yang didefinisikan dan rj

Akibat : Jika gcd (a, b) = 1, maka b

diperoleh di Algoritma Euclidean.

-1 = tj

Contoh : a = 111, b = 25

Dengan menggunakan algoritma Euclidean dicari j dan dihitung apakah gcd (111, 25) = 1.

111 = 4 × 25 + 11 j=1

25 = 2 × 11 + 3 j=2

11 = 3 × 3 + 2 j=3

3 = 1 × 2 + 1 j=4

2 = 1 × 2 j=5

Dari algoritma Euclidean sebelumnya diketahui jika gcd (111, 25) = 1, maka :

t0

t = 0

1

t = 1

2 = t0 – q1t1

t

= 0 – 4 × 1 = -4

(12)

t4 = t2 – q3t3

t

= -4 – 3 × 9 = -31

5 = t3 – q4t4

Maka 25

= 9 – 1 × (-31) = 40

-1

terhadap modulo 111 adalah 40.

2.4.2 Fungsi Totient Euler Ф

Fungsi Totient Euler Ф mendefinisikan Ф(n) untuk n 1 yang menyatakan jumlah bilangan bulat positif < n yang relatif prima n [4].

Contoh :

1. Ф(8) = 4; Perhitungannya adalah sebagai berikut : bilangan bulat positif yang lebih

kecil dari 8 adalah 1 sampai 7. Diantara bilangan-bilangan tersebut, terdapat Ф(8) = 4 yang relatif prima dengan 20, yaitu 1, 3, 5, 7.

2. Ф(25) = 9; Perhitungannya adalah sebagai berikut : bilangan bulat positif yang

lebih kecil dari 25 adalah 1 sampai 24. Diantara bilangan-bilangan tersebut, terdapat Ф(25) = 9 yang relatif prima dengan 25, yaitu 1, 3, 5, 7, 11, 13. 17. 19. 23.

3. Ф(40) = 12 ; Perhitungannya adalah sebagai berikut : bilangan bulat positif yang

lebih kecil dari 40 adalah 1 sampai 39. Diantara bilangan-bilangan tersebut, terdapat Ф(40) = 9 yang relatif prima dengan 40, yaitu 1, 3, 5, 7, 11, 13. 17. 19. 23, 29, 31, 37.

Jika n prima, maka setiap bilangan bulat yang lebih kecil dari n relatif prima terhadap n. Dengan kata lain, Ф(n) = n- 1 hanya jika n prima.

(13)

2.4.3 Modulo Eksponensial

Untuk melakukan komputasi sesuai dengan algoritma RSA ada salah satu bagian penting, yaitu eksponensiasi modulo. Dalam Eksponensiasi Modular, C = Me mod n tidak dihitung dengan memangkatkan M dengan e yang dilanjutkan dengan melakukan pembagian untuk memperoleh sisanya. Hal ini akan membutuhkan space yang sangat besar. Cara yang efisien adalah dengan mereduksi nilai sementara modulo n pada setiap langkah eksponensiasi. Dalam melakukan eksponensiasi harus diperhatikan berapa banyak perkalian modular untuk mencapai C = Me mod n. Semakin sedikit operasi perkalian modular yang dilakukan maka hal itu semakin baik.

Untuk menghitung C = Me mod n , dapat menggunakan memory efficient-method. Langkah awalnya dengan menetapkan nilai awal C= M mod n dan terus melakukan operasi perkalian modular C = C. M (mod n), sebanyak e kali sampai mencapai C = Me mod n, untuk lebih jelasnya dapat dilihat berikut ini:

Sebagai contoh dengan menggunakan algoritma di atas, maka untuk mencari

nilai dari 412

Ditentukan nilai dari b = 4, e = 12, dan m = 497, maka : mod 497 adalah sebagai berikut :

e' = 1, c = (1 *4) mod 497 = 4 mod 497 = 4 e' = 2 , c =(4*4) mod 497 = 16 mod 497 = 16 e' = 3, c = (16*4) mod 497 = 64 mod 497 = 64 e' = 4 , c= (64 *4) mod 497 = 256 mod 497 = 256 e' = 5, c = (256 * 4) mod 497 = 1024 mod 497 = 30 e' = 6, c = (30 *4) mod 497 = 120 mod 497 = 120 e' = 7, c = (120*4) mod 497 = 480 mod 497 = 480 e' = 8, c = (480 * 4) mod 497 = 1920 mod 497 =429

function modular_pow(base, exponent, modulus)

c:=1

for e_prime = 1 to exponent

c:= (c* base) mod modulus

(14)

e' = 9, c = (429 * 4) mod 497 = 1716 mod 497 = 225 e' = 10, c = (225 * 4) mod 497 = 900 mod 497 = 403 e' = 11, c =( 403 * 4) mod 497 = 1612 mod 497 = 121 e'= 12, c = (121 *4) mod 497 = 484 mod 497= 484 Maka nilai c yang dihasilkan adalah 484.

Sehingga dapat diketahui bahwa hasil dari 412 mod 497 adalah 484.

2.5Use Case Diagram

Use case adalah deskripsi fungsi dari sebuah sistem dari perspektif pengguna. Use case bekerja dengan cara mendeskripsikan tipikal interaksi antar pengguna sebuah sistem dengan sistemnya sendiri. Use case terdiri dari sekumpulan skenario yang dilakukan oleh seorang actor (orang/pengguna, perangkat keras, urutan waktu, atau

sistem yang lain). Sedangkan use case diagram memfasilitasi komunikasi antara analis dan pengguna serta diantara analis dan klien[6].

Actor1

UseCase

Actor2

Sistem

Gambar 2.3Pemodelan Use Case

(15)

resepsionis

catat booking

tampilkan booking <<include>>

Gambar 2.4 Use Case Inclusion

Pelayan

Catat yang langsung datang

catat kedatangan <<extends>>

Gambar

Gambar 2.1 Proses enkripsi dan dekripsi tanda tangan digital
Gambar 2.2 Diagram Pengiriman dan Penerimaan Pesan
Gambar 2.3 Pemodelan Use Case
Gambar 2.5 Use Case Extension

Referensi

Dokumen terkait

Dalam kasus yang menimpa Demokrat, meskipun Anas belum dijadikan sebagai tersangka namun hal ini justru menjadi polemik bagi publik yang tak kunjung selesai dan menyebabkan

Pada penelitian ini wajah dapat dikenali melalui kamera sebanyak 4 orang yang dikenali dari sejumlah keseluruhan sebanyak 5 orang dengan ketentuan penchayaan dan

Pada penelitian ini peneliti akan mencoba memamfaatkan kombinasi energi angin dan enegi matahari sebagai penghasil tenaga listrik, yang mana saat siang hari energi

Berdasarkan uraian di atas, maka akan dibahas tentang perencanaan strategi sistem dan teknologi informasi dengan judul “Perencangan Strategi,Operasi, dan Teknologi

Pada proses pengujian yang dilakukan dapat diketahui kemampuan dari system yang dibuat mampu mengenali segala aktifitas yang dilakukan intruder dalam usaha untuk menyusup

4.1 Kesimpulan Berdasarkan pembahasan yang ada, maka dapat diambil kesimpulan fomula eksentrisitas total dan indeks konektivitas eksentrik dari komplemen graf konjugasi dari

Waktu tempuh perjalanan rata-rata 6-10 menit dan kebutuhan fasilitas pendukung pejalan kaki di dalam Kampus Universitas Sriwijaya Inderalaya yaitu Rute eksisting

[r]