• Tidak ada hasil yang ditemukan

Algoritma Kunci Asimetris

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma Kunci Asimetris"

Copied!
26
0
0

Teks penuh

(1)

Tugas Computer Security

Algoritma Kunci Asimetris

Dandy Pramana Hostiadi (1291761009)

Muhammad Riza Hilmi (1291761010)

I Gusti Rai Agung Sugiartha (1291761017)

I Gede Muriarka (1291761018)

PROGRAM PASCASARJANA

MAGISTER SISTEM INFORMASI DAN KOMPUTER (MSIK)

UNIVERSITAS UDAYANA

DENPASAR

2013

(2)

Algoritma Deffie-Hellman

I Gede Muriarka (1291761018)

gm_obelix@yahoo.com

A.

SEJARAH

Algoritma ini pertama kali diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1975. Mereka berdua adalah peneliti pada universitas Stanford. Mereka memperkenalkan algoritma ini untuk memberi solusi atas pertukaran informasi secara rahasia.

Gambar 1. 1 Whitfield Diffie dan Martin Hellman

Algoritma ini tidak berdasarkan pada proses enkripsi dan dekripsi, melainkan lebih kepada proses matematika yang dilakukan untuk menghasilkan kunci rahasia yang dapat disebarkan secara bebas tanpa harus khawatir karena kunci rahasia tersebut hanya dapat

didekripsi hanya oleh pengirim dan penerima pesan. Dasar dari algoritma ini adalah matematika dasar dari aljabar eksponen dan aritmatika modulus.

B. Langkah-langkah pertukaran kunci

Langkah-langkah dalam pertukaran kunci dengan menggunakan algoritma Diffie-Hellman adalah sebagai berikut:

1.

Pilih bilangan prima yang besar, pdan bilangan integer yang tidak melebihi dari nilai p, g,

biasa disebut bilangan basis atau generator. Kedua bilangan tersebut dapat diketahui secara publik.

(3)

2.

Pilih sebuah bilangan acak oleh pengirim, x, bilangan ini tidak boleh diketahui oleh orang lain.

3.

Pilih sebuah bilangan acak oleh penerima, y, bilangan ini tidak boleh diketahui oleh orang lain.

4.

Pengirim menghitung A = gx mod p. Bilangan A ini dapat diketahui secara publik.

5.

Penerima menghitung B = gy mod p. Bilangan B ini dapat diketahui secara publik.

6.

Lakukan pertukaran bilangan A dan B terhadap pengirim dan penerima.

7.

Lalu Pengirim menghitung ka = Bx mod p.

8.

Penerima menghitung kb = Ay mod p.

9.

Berdasarkan hukum aljabar nilai ka sama dengan kb atau bisa disebut ka = kb = k. Sehingga pengirim dan penerima tersebut mengetahui kunci rahasia tersebut “k”. *note

Bukti dari ka = kb = k : ka = kb

Bx mod p = Ay mod p

(gy mod p)x mod p = (gx mod p)y mod p (gy)x mod p = (gx)y mod p

gyx mod p = gxy mod p

C. Contoh Algoritma Deffie - Hellman

1. Alice dan Bob menetapkan p = 23 dan g = 5. 2. Eve (penyadap) tahu nilai p dan g.

3. Alice memilih nilai x = 6 dan Bob memilih nilai y = 15. 4. Alice menghitung nilai A = 56 mod 23 = 8.

5. Bob menghitung nilai B = 5 15 mod 23 = 19. 6. Alice dan Bob bertukar nilai A dan B.

7. Eve menyadap mereka dan tahu nilai A dan B. 8. Alice melakukan perhitungan ka = 196 mod 23 = 2. 9. Bob melakukan perhitungan k b = 815 mod 23 = 2.

10. Eve mengetahui nilai p , g, A, dan B tetapi dia tidak dapat mengetahui kunci rahasia, k

(4)

Alice dan Bob dapat mengetahui kunci rahasia tersebut dan dapat bertukar pesan dengan aman tanpa harus diketahui oleh Eve. Eve hanya dapat mengetahui nilai p, g, A, dan B tetapi tidak dapat menghitung kunci rahasia dari mereka berdua. Sehingga Eve tidak dapat mengetahui pesan rahasia apa antara Alice dan Bob.

Hal ini dapat diilustrasikan seperti pada gambar di bawah ini

Gambar 1. 2 Ilustrasi penggunaan algoritma Diffie- Hellman

Algoritma ini tidak hanya terbatas pada 2 pengguna saja. Jumlah pengguna yang ingin menggunakan pertukaran kunci menggunakan algoritma Diffie-Hellman ini tidak dibatasi. Hal ini hanya berlaku jika memenuhi 2 prinsip yang harus dilakukan:

1. Bilangan p dan g yang telah disetujui oleh semua anggota.

2. Setiap anggota harus melakukan pertukaran data yang diperlukan oleh anggota lainnya sehingga

semua data dapat didapatkan secara merata gabc….n

(5)

D. Tingkat Keamanan Algoritma Deffie - Hellman

Tingkat keamanan dari algoritma ini tinggi, jika nilai p dan g dipilih secara benar. Karena untuk mengetahui atau menebak nilai rahasia yang dimiliki oleh penerima dan pengirim harus menyelesaikan persamaan Diffie-Hellman terlebih dahulu. Ini merupakan masalah logaritma diskrit yang perhitungan tersebut tidak dapat diselesaikan untuk nilai bilangan p yang sangat besar. Menghitung logaritma diskrit dari bilangan modulo p memakan waktu yang kurang lebih sama seperti dengan memfaktorkan bilangan non prima menjadi faktor primanya, seperti yang digunakan di algoritma RSA. Oleh karena itu, algoritma ini tingkat keamanannya setingkat dengan algoritma RSA. Ilustrasi dalam pengkonversian kembali persamaan Diffie-Hellman dapat dilihat pada gambar di bawah ini

(6)

KRIPTOGRAFI ELGAMAL

I Gusti Rai Agung Sugiartha (1291761017)

sugiarta_dek@yahoo.com

1. Pendahuluan

Algoritma ElGamal dibuat oleh ilmuwan Mesir Taher ElGamal pada tahun 1984. Algoritma ini mulanya digunakan untuk tanda tangan digital atau digital signature. Namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal digunakan dalam perangkat lunak yang dikembangkan oleh GNU (), program PGP, dan pada program keamanan jaringan lainnya. Keamanan ini terletak pada sulitnya menghitung algoritma diskrit.

Sebelum membahas ElGamal, akan dijelaskan sedikit tentang permasalahan algoritma diskrit. Misalkan G merupakan sebuah grup siklik dengan order n, α adalam pembangun G dan elemen identitas dari G adalah 1. Diberikan γ ϵ G. masalah yang muncul adalah bagaimana menentukan suatu bilangan bulat nonnegatif terkecil b sedemikian memenuhi

Bilangan bulat b seperti ini disebut dengan algoritma diskret dari γ dengan basis α. Masalah bagaimana untuk menentukan bilangan bulan b seperti ini disebut dengan masalah logaritma diskret.

Masalah komputasi algoritma diskret sangat penting dalam kriptografi. Banyak kegiatan kriptografi yang tumpuan utamanya menggunakan masalah aloritma diskret. Misalnya menggunakan dasar pembangkitan kunci pada kriptografi ElGamal.

2. Kriptografi ElGamal

Pada algoritma ElGamal ini terdiri dari tiga proses, yaitu pembangkitan pasangan kunci, proses enkripsi, dan proses dekripsi. Algoritma ini melakukan proses enkripsi pada blok-blok

plaintext dan kemudian menghasilkan blok-blok chippertext yang kemudian dilanjutkan oleh proses dekripsi, dimana hasilnya digabungkan kembali, sehingga menjadi pesan yang utuh dan mudah dipahami. Untuk pembentukan sistem kriptografi ElGamal, dibutuhkan bilangan prima

p dan elemen bilangan primitif.

2.1 Pembentukan Kunci

Pembentukan kunci merupakan proses penentuan suatu bilangan yang kemudian akan digunakan sebagai kunci pada proses enkripsi dan dekripsi pesan. Kunci terdiri dari nilai p, g,

(7)

dan y. sedangkan kunci untuk dekripsi terdiri dari nilai a dan p. masing-masing nilai mempunyai persyaratan yang harus dipenuhi.

Pada proses ini dibutuhkan sebuah bilangan prima p yang digunakan untuk membentuk grup , elemen primitif g dan sebarang a ϵ {1, 2, 3, …, p-2}. Dipilih a dalam rentang tersebut karena dalam ElGamal merupakan bilangan yang digunakan untuk operasi pangkat, padahal diketahui grup ber-order p-1, oleh karena itu pangkatnya dari {1, 2, …. , p-2}. Jika dipangkatkan dengan p-1 maka akan menghasilkan elemen identitas, dan pada grup

elemen identitasnya adalah 1. Untuk kunci publik pada algoritma ElGamal ini adalah tiga pasangan bilangan yaitu (p, g, y), dengan

y = mod p ... (1) sedangkan untuk kunci privatnya adalah a.

Karena algoritma ElGamal menggunakan bilangan bulat dalam proses perhitungannya, maka pesan yang akan dikirimkan harus dikonversikan ke dalam bilangan bulat. Sebagai pengkonversiannya, digunakan kode ASCII (American Standard for Information Interchange). Kode ini adalah representasi numerik dari karakter yang digunakan pada komputer, yang nilai minimalnya 0 dengan nilai maksimal 255. Berdasarkan sistem kriptografi ElGamal, maka bilangan prima yang digunakan adalah lebih besar dari 255. Kode ASCII berkorespodensi satu satu dengan karakter pesan yang akan dikirimkan. Berikut merupakan alur pembentukan kunci ElGamal

Alur pembentukan Kunci

Input : bilangan prima > 255, dan elemen primitif g, dimana g<p.

Output : kunci publik (p, g, y) dan kunci rahasia a. Langkah :

1. Pilih bilangan prima p.

2. Pilih dua buah bilangan acak g dan a, dengan a ϵ {1, 2, 3, …, p-2}. 3. Hitung y = mod p.

4. Publikasikan p, g, dan y tetapi a dirahasiakan.

Kunci publik yang dihasilkan pada pembentukan kunci sifat tunggal, karena ketiga nilai yang akan digunakan pada pembentukan kunci sudah ditetapkan, sehingga nilai y adalah tunggal. Terdapat y1 dan y2. Diambil bilangan prima p, bilangan acak g ϵ , dan a ϵ {1, 2, 3, …,

p-2}. Dengan y = mod p, maka

y1= mod p dan y2= mod p

(8)

= y1 mod p

Sehingga y2 = y1 mod p, dengan demikian y2=y1, terbukti bahwa kemunculan kunci y bersifat tunggal.

Berikut ini diperlihatkan diagram alir pembentukan kunci, seperti gambar dibawah ini:

Gambar 1 Diagram Alir Pembentukan Kunci

Pihak yang melakukan proses pembuatan kunci adalah pihak penerima. Jadi pihak penerima mengetahui kunci publik dan kunci privat. Kunci publik yang dia hasilkan, diberitahukan kepada pengirim pesan. Namun, pengirim pesan tidak mengetahui kunci privatnya. Berikut ini akan diberikan contoh proses pembentukan kunci dengan menggunakan algoritma ElGamal.

Budi memberikan pesan rahasia kepada Iwan. Iwan memilih bilangan prima p = 257, dan elemen primitif g = 2. Selanjutnya dipilih a = 178. Lalu dihitung

y = mod p y = mod 257 = 4

Jadi diperoleh kunci publik (p, g, y) adalah (4, 2, 257) dan kunci private a = 178. Iwan memberikan kunci publik (4, 2, 257) kepada Budi dan untuk kunci privatenya Iwan simpan sendiri. Mulai Bilangan prima > 255 Pilih a ϵ {1, 2, 3, …, p-2} y = 𝑔𝑎 mod p Selesai Kunci publik ( p, g, y)

(9)

2.2 Proses Enkripsi

Plaintext adalah himpunan dari {1, 2, 3, …, p-1}. Untuk mengenkripsi sebuah

plaintext m, dibutuhkan kunci publik (p, g, y) yang sebelumnya sudah dibuat oleh penerima pesan. Lalu dipilih sembarang bilangan rahasia acak k dimana k ϵ {1, 2, 3, 4, …,

p-2} Pesan yang akan disampaikan adalah m , lalu m akan dipecah tiap-tiap karakternya, yang dikonversikan ke dalam kode ASCII, sehingga pesan menjadi plaintextm1, m2, m3, ..,

mn dengan m1 ϵ {1, 2, 3, …, p-1}, i = 1, 2, .. , n. Proses enkripsi dilakukan tiap-tiap blok m dengan menghitung:

B = mod p ... (2) β = mi mod p ... (3)

dengan k ϵ {1, 2, 3, …, p-2} acak, sehingga diperoleh chipertext (B, β) untuk blok pesan m. jadi ukuran ciphertext menjadi dua kali lipat plaintext.

Proses penentuan bilangan acak k, pengirim pesan yang berperan, dan sifat bilangan acak k tadi adalah rahasia, jadi hanya pengirim pesan saja yang mengetahuinya. Berikut merupakan alur proses enkripsi:

Input : Pesan yang dikirimkan, kunci publik (p, g, y) Output : Ciphertext (B, β), i = 1, 2, …., n

Langkah :

1. Memotong pesan m menjadi blok-blok pesan, sehingga satu blok adalah satu karakter pesan.

2. Mengkonversikan masing-masing karakter yang telah diperoleh ke dalam kode ASCII, sehingga diperoleh plaintext sebanyak n bilangan, yaitu m1, m2, m3, …., mn.

3. Untuk i dari 1 sampai n :

a. Memilih sebarang bilangan acak ki ϵ {1, 2, 3, …, p-2}. b. Menghitung Bi = mod p

c. Menghitung βi = mi mod p

4. Diperoleh ciphertext (Bi, βi), i = 1, 2, 3, …, n

(10)

Gambar 2 Diagram Alir Enkripsi Pesan

Dari contoh pembentukan kunci publik sebelumnya, yaitu (p, g, y) = (257, 2, 4). Budi akan mengirimkan pesan “Udayana” kepada Iwan. Budi akan melakukan enkripsi dengan menggunakan kunci publik dari Iwan. Langkah pertama yaitu membagi pesan menjadi blok pesan, kemudian dikonversi menjadi kode ASCII. Hasil konversi ke dalam kode ASCII dapat dilihat dalam tabel berikut ini:

Tabel 1 Konversi Blok Pesan ke Kode ASCII

i mi Karakter Kode ASCII

1 m1 U 85

2 m2 D 100

Mulai

pesan(m), panjang blok(i) kunci publik(p, g, y)

Pemotongan pesan (m)

Konversi ke kode ASCII

Pilih ki ϵ {1, 2, 3, .., p-2} Bi = gk mod p βi = 𝑦𝑘𝑖mi mod p i = panjang m i= i+ 1 Selesai

(11)

Tabel 2 Konversi Blok Pesan ke Kode ASCII (Lanjutan)

i mi Karakter Kode ASCII

3 m3 a 97

4 m4 y 121

5 m5 a 97

6 m6 n 110

7 m7 a 97

Dari tabel diatas dapat kita lihat blok pesan yang terbentuk adalah sebanyak 7 buah. Langkah selanjutnya adalah membangkitkan bilangan k dimana ki ϵ {1, 2, 3, .., p-2} adalah ki ϵ {1, 2, 3, .., 255}, i = 1, 2, …., 7. Setelah itu mencari nilai B dengan rumus (2) yaitu : B = mod

257 dan nilai β dengan rumus (3) yaitu β = mi mod 257, dengan i = 1, 2, …., 7. Lebih jelasnya hasil enkripsi disajikan dalam tabel berikut ini:

Tabel 3 Enkripsi Pesan menjadi Ciphertext

i mi ki B = mod 257 β = mi mod 257 1 85 11 32 174 2 100 149 32 114 3 97 101 32 126 4 121 196 16 136 5 97 72 256 97 6 110 47 2 183 7 97 141 32 126

Dari tabel diatas dapat diperoleh ciphertext yang akan dikirimkan adalah sebagai berikut: (32,174) (32,114) (32,126) (16,136) (256,97) (2,183) (32,126)

Ciphertext itulah yang nantinya akan diterima oleh Iwan. Kelebihan dari penggunaan algoritma Elgamal ini adalah ciphertext yang dihasilkan berbeda-beda, meskipun huruf aslinya adalah sama, hal ini dikarenakan karena pemilihan bilangan k yang acak.

2.3 Proses Dekripsi

Proses selanjutnya adalah dekripsi. Setelah memperoleh ciphertext, maka penerima melakukan pengubahan ciphertext (Bi, βi) menjadi plaintext, sehingga dapat dengan mudah

(12)

membaca isi dari pesan tersebut. Untuk mendekripsi pesan, penerima membutuhkan kunci

private a.

Misalkan diberikan suatu kunci publik (p, g, y) dan kunci private a, serta ciphertext (B, β), maka:

m = β mod p ... (4) dengan m adalah plaintext.

Plaintext juga dapat ditemukan kembali dengan

m = β mod p ... (5) ini merupakan grup siklik berorder p-1, dan lambang “-1” menyatakan inversi modulo. Berikut merupakan alur proses dekripsi:

Input :ciphertext (Bi, βi), i = 1, 2, .., n. Kunci publik (p, g, y) dan kunci private a.

Output : pesan asli

Langkah:

1. Untuk i sampai dengan n : Menghitung : mi = βi mod p

2. Akan diperoleh plaintext m1, m2, m3, …, mn.

3. Konversi dari kode ASCII kemudian digabung menjadi pesan asli.

(13)

Gambar 3 Diagram Alir Dekripsi Pesan

Berdasarkan contoh sebelumnya. Iwan menerima ciphertext yang telah dikirimkan oleh Budi. Iwan harus melakukan proses dekripsi agar dapat membaca pesan yang terkirim. Adapun ciphertext yang diterima Iwan adalah :

(32,174) (32,114) (32,126) (16,136) (256,97) (2,183) (32,126)

Diperoleh kunci publik (p, g, y) = (257, 2, 4) dan kunci private a = 178. Iwan melakukan perhitungan sesuai dengan rumus (4), yaitu m = β mod 257

Mulai ciphertext(Bi, βi), kunci publik(p, g, y) kunci private a mi = βi 𝐵𝑖𝑎 mod p Pesan m

Konversi pesan m ke ASCII

i = panjang m i= i+ 1

Selesai

(14)

Sebagai hasil perhitungannya, akan disajikan dalam tabel berikut ini: Tabel 4 Dekripsi ciphertext menjadi pesan

i Bi βi m = β mod 257 Karakter

1 32 174 85 U 2 32 114 100 d 3 32 126 97 a 4 16 136 121 y 5 256 97 97 a 6 2 183 110 n 7 32 126 97 a

Setelah proses dekripsi, Iwan mengetahui pesan yang dikirim Budi adalah “Udayana”.

5. Penggunaan Kriptografi ElGamal

Kriptografi ElGamal sering digunakan dalam sistem kriptografi hibrid, pesan sendiri di enkripsi dengan sistem simetrik dan ElGamal kemudian digunakan untuk dekripsi dengan menggunakan kunci rahasia (private). Karena sistem kriptografi asimetrik seperti ElGamal biasanya membutuhkan waktu yang lama dikembangkan untuk mengenkripsi sistem kriptografi simetrik(yang berbanding lurus dengan panjang pesan yang dikirimkan). Sistem Kriptogafi ElGamal biasa digunakan pada pengiriman surat elektronik (E-mail), tanda tangan digital, citra.

6. Simpulan

Penerapan sistem kriptografi ElGamal dibagi menjadi proses pembentukan kunci, enkripsi pesan dan dekripsi pesan. Perhitungan ketiga proses menggunakan masalah logaritma diskret. Ciphertext yang terbentuk pada proses enkripsi sangat beragam, dipengaruhi oleh bilangan acak k yang dibangkitkan, sehingga pesan sangat aman untuk di kirimkan.

Penerapan kriptografi ElGamal harus menjaga keamanan kunci publik, pembangkitan kunci publik harus terus berbeda setiap komunikasi agar tidak di manipulasi oleh pihak yang tidak bertanggung jawab.

Penerapan kriptografi ElGamal dari tiga proses perhitungan, harus menggunakan beberapa algoritma tambahan, karena perhitungan terdiri dari eksponensial yang besar dan

(15)

modulus yang besar juga. Penggunaan tipe data yang disediakan oleh bahasa pemrograman akan tidak bisa menampung hasil perhitungan.

(16)

Algoritma RSA

Dandy Pramana Hostiadi (1291761019)

dan_ganx_cil@yahoo.co.id

RSA di bidang kriptografi adalah sebuah algoritma pada enkripsi public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamnkan dengan menggunakan kunci yang cukup panjang.

A. Sejarah RSA

Algortima RSA dijabarkan pada tahun 1977 oleh tiga orang : Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Huruf RSA itu sendiri berasal dari inisial nama mereka (Rivest—Shamir—Adleman). RSA adalah salah satu algoritma penyandian yang paling banyak mengundang kontroversi, selain DES (Data Encryption Standart). Sejauh ini belum seorang pun yang berhasil menemukan celah keamanan pada DES dan RSA, tetapi tak seorang pun juga yang berhasil memberikan pembuktian ilmiah yang memuaskan dari keamanan kedua teknik sandi ini.

RSA yang menggunakan algoritma asimetrik mempunyai dua kunci yang berbeda, disebut pasangan kunci (key pair) untuk proses enkripsi dan dekripsi. Kunci-kunci yang ada pada pasangan kunci mempunyai hubungan secara matematis, tetapi tidak dapat dilihat secara komputasi untuk mendeduksi kunci yang satu ke pasangannya. Algoritma ini disebut kunci publik, karena kunci enkripsi dapat disebarkan. Orang-orang dapat menggunakan kunci publik ini, tapi hanya orang yang mempunyai kunci privat sajalah yang bisa mendekripsi data tersebut.

B. Keunggulan dan Kelemahan RSA

Sisi keamanan pada sistem RSA terletak pada sulitnya memfaktorkan sebuah bilangan besar n yang dihasilkan dari perkalian dua buah bilangan prima p dan q. nilai n yang dihasilkan bersifat tidak rahasia, sementara nilai bilangan prima p dan q harus bersifat rahasia, sehingga hampir mustahil bagi seorang penyerang untuk mendapatkan nilai ϕ (n) (totien (n)atau disebut juga phi(n)) yang merupakan nilai bilangan dasar yang digunakan untuk menghasilkan

(17)

pasangan kunci publik e dengan kunci privat d. Secara umum, tipe serangan yang mungkin untuk algoritma RSA adalah:

Brute Force

Mathematical Attack

Man-In-The-Middle Attack

Choosen Ciphertext Attack

Sisi Kelemahan RSA adalah pada ukuran kunci privat yang terlalu besar akan mengakibatkan proses dekripsi yang cukup lambat, terutama untuk ukuran pesan yang besar. Oleh karena itu, RSA umumnya digunakan untuk meng-enkripsi pesan berukuran kecil seperti kata kunci dari enkripsi simetris seperti DES dan AES yang kemudian kunci tersebut dikirim secara bersamaan dengan pesan utama.

C. Implementasi RSA

RSA merupakan metode penyandian yang masih kokoh untuk mengatasi masalah keamanan dalam pengiriman data pada suatu jaringan pada media elektronik. Dari segi teknis penghitungan, system RSA mempunyai cara enkripsi yang mudah, tetapi jika sudah dienkripsi, data yang terenkripsi sulit untuk dibobol jika hanya mempunyai kunci publiknya saja. Dalam proses pembuatan kunci publik dan kunci privat, terdapat beberapa faktor yang menjadi pertimbangan, yaitu ukuran dari kunci, penentuan nilai p dan q agar sulit untuk dibobol, dan kemungkinan-kemungkinan kelemahan yang dapat diketahui saat data selesai dienkripsi. Pada kehidupan sehari-hari, aplikasi sisten RSA dapat ditemukan pada system autentikasi data dan pembuatan tanda tangan digital pada komputer, pada tingkat perangkat keras, RSA banyak digunakan pada telepon yang mempunyai system pengaman dari penyadapan, kartu jaringan ethernet, dan pada kartu cerdas. RSA juga dimasukkan ke dalam protokol internet yang mempunyai sistem pengaman, seperti S-HTTP, S/MIME dan lain-lain.

(18)

D. Pembangkitan RSA

Berikut merupakan perhitungan matematika dibalik enkripsi kunci publik RSA :  Pilih P dan Q, dua bilangan prima besar

 Pilih E dimana E lebih besar dari 1, E adalah kurang dari PQ dan E relatif prima terhadap (P-1)(Q-1) (tidak memiliki faktor prima yang sama). E tidak harus prima tetapi harus ganjil. (P-1)(Q-1) tidak dapat prima karena merupakan bilangan genap.  Hitung D dimana (DE-1) dibagi sempurna oleh (P-1)(Q-1). Ahli matematika menuliskan sebagai DE = 1 (mod(P-1)(Q-1)) dan mereka menyebut D multiplicative inverse dari E. Lebih mudahnya pilih integer X yang menghasilkan D = (X(P-1)(Q-1)+1)/E yang menghasilkan bilangan integer (bulat), gunakan nilai D.

 Fungsi Enkripsi adalah C = (T^E) mod PQ, dimana C adalah ciphertext (positive integer), T adalah plaintext (positive integer), dan ^ menunjukkan pangkat. Message yang dienkripsi, T, harus lebih kecil dari modulus PQ.

 Fungsi Dekripsi adalah T = (C^D) mod PQ, dimana C adalah ciphertext (positive integer), T adalah plaintext (positive integer), dan ^ menunjukkan pangkat.

 Public key adalah pasangan (PQ, E).  Private key adalah D.

 Perkalian PQ adalah modulus (biasa disebut N dalam literatur).  E adalah public exponent. D adalah secret exponent.

Contoh

Penghitungan Enkripsi dan Dekripsi dengan RSA dengan text “ Dandy” Dimana code ASCII

(19)

Pembangkitan nilai public key dan nilai private key Pemilihan nilai p = 7 dan q = 19

Mencari nilai n ==>> n = p.q = 7 x 19 = 133 Mencari nilai m ==>> m = (p-1) (q-1) = (7 -1)(19 – 1) = 108

Mencari nilai e dan d ==>> (e * d) mod 108 = 1

e = 5

d = 65

public key = (e,n) = (5,133) private key = (d,n) = (65,133)

Proses Enkripsi

Mencari nilai chipertext (Enkripsi) C = Me mod n

◦ = 685 mod 133 (karakter “D”)

◦ = 45 (karakter “-“)

◦ = 975 mod 133 (karakter “a”)

◦ = 130 (karakter “é “)

◦ = 1105 mod 133 (karakter “n”)

◦ = 59 (karakter “;” )

◦ = 1005 mod 133 (karakter “d”)

◦ = 123 (karakter “{“ )

◦ = 1215 mod 133 (karakter “y”)

◦ = 11 ( karakter “”)

Teks Dandy = -é;{♂

Proses Dekripsi

Mencari nilai plaintext (Dekripsi) D = Cd mod n

(20)

◦ 4565 mod 133 (karakter “-”) ◦ 68 (karakter “D”) ◦ 13065 mod 133 (karakter “é”) ◦ 97 (karakter “a”) ◦ 5965 mod 133 (karakter “;”) ◦ 110 (karakter “n”) ◦ 12365 mod 133 (karakter “{”) ◦ 100 (karakter “d”) ◦ 1165 mod 133 (karakter “”) ◦ 121 (karakter “y”) Teks -é;{♂= Dandy

(21)

Digital Signature Algorithm

(DSA)

Muhammad Riza Hilmi (1291761010)

rizahilmi@gmail.com

A.

Pendahuluan

Seiring dengan perkembangan teknologi informasi, pada tahun 1990 keamanan informasi menjadi bahan pembicaraan bagi banyak kalangan antaranya pemerintah, bisnis komersial, dan individu.

Informasi disimpan dalam bentuk elektronik karena medium ini lebih sederhana, ukurannya kompak, dan melayani transfer data yang cepat. Namun dengan terjadinya revolusi elektronik maka informasi menghadapi masalah yang serius yaitu keamanan informasi pada proses komunikasi. Proses komunikasi sendiri melibatkan dua pihak yaitu pihak pengirim (sender) dan penerima (receiver). Tentunya, yang dikirim adalah informasi atau pesan yang hanya boleh diketahui oleh kedua belah pihak. Namun jika pihak ketiga menyadap dan memodifikasi pesan atau berpurapura sebagai pengirim asli tentunya akan sangat merugikan.

Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita. Kata cryptography berasal dari kata Yunani kryptos (tersembunyi) dan graphein (menulis). Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Enkripsi adalah transformasi data kedalam bentuk yang tidak dapat terbaca tanpa sebuah kunci tertentu. Tujuannya adalah untuk meyakinkan privasi dengan menyembunyikan informasi dari orang-orang yang tidak ditujukan, bahkan mereka mereka yang memiliki akses ke data terenkripsi. Dekripsi merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula.

Kriptografi saat ini lebih dari enkripsi dan dekripsi saja. Otentikasi menjadi bagian dari kehidupan kita sama seperti privasi. Kita menggunakan otentikasi dalam kehidupan sehari-hari, sebagai contoh saat kita menandatangani sejumlah dokumen dan saat kita berpindah ke dunia dimana keputusan dan persetujuan kita dikomunikasikan secara elektronis, kita membutuhkan tekikteknik untuk otentikasi. Digital Signature Algorithm (DSA) adalah termasuk ke dalam sistem kriptografi kunci-publik.

(22)

B.

Digital Signature Algorithm(DSA)

Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology) mengumumkan algoritma sidik dijital yang disebut Digital Signature Algorithm (DSA). DSA dijadikan sebagai bakuan (standard) dari Digital Signature Standard (DSS).

Digital signature merupakan sistem keamanan kriptografi simetris (symetric crypthography/secret key crypthography) atau public key cryptography system yang dikenal sebagai kriptografi simetris, menggunakan kunci yang sama dalam melakukan enkripsi dan dekripsi terhadap suatu pesan (message), disini pengirim dan penerima menggunakan kunci yang sama sehingga mereka harus menjaga kerahasian (secret) terhadap kunci tersebut. Suatu digital signature sebenarnya bukan tanda tangan biasa, tapi tanda tangan dengan menggunakan cara yang berbeda untuk menandai suatu dokumen sehingga dokumen atau data tidak mengidentifikasi dari pengirim. Kriptografi simetris menggunakan dua kunci yaitu satu kunci untuk melakukan enkripsi terhadap suatu pesan (messages) dan kunci yang lain digunakan untuk melakukan dekripsi terhadap pesan tersebut. Tanda tangan secara digital adalah memberikan suatu ciri khas terhadap suatu pesan. Message digest adalah suatu besaran (value) yang berasal dari suatu data/pesan yang memiliki sifat yang unik dengan kata lain pesan tersebut mempunyai suatu besaran tertentu yang diciptakan dengan melakukan enkripsi terhadap suatu data dengan menggunakan kriptografi satu arah (one way crypthography), yaitu suatu tehnik kriptografi yang terhadapnya tidak dapat dilakukan proses pembalikan (reversed). Pada saat message digests dienkripsi dengan menggunakan kunci privat dari pengirim dan "ditambahkan" kepada data/pesan yang asli maka hasil yang didapat adalah digital signature dari pesan tersebut.

(23)

Gambar 1. Alur Signing dan Verification dengan DSA

Pada gambar 1 tersebut dijelaskan bagaimana data diubah ke hash yaitu bilangan biner dan diberikan kunci private key, kemudian ditambahkan certificate setelah itu data dikirimkan. Pada sisi penerima, data kembali dipecah menjadi datanya sendiri dan signature key-nya, kemudian hash dari data, dicocokkan dengan hash yang dimilik oleh penerima melalui public key, jika memiliki hash yang sama maka data akan ditampilkan.

DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi intisari pesan yang berukuran 160 bit. DSA dan algoritma tanda-tangan digital lainnya mempunyai tiga proses utama yaitu:

1. Pembangkitan pasangan kunci (Key Pair Generation)

2. Pembangkitan tanda-tangan digital (Digital Signature Generation) 3. Verifikasi tanda-tangan digital (Digital Signature Verification)

C.

Parameter DSA

DSA dikembangkan dari algoritma ElGamal. DSA mempunyai properti berupa parameter sebagai berikut:

1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 ≤ L ≤ 1024 dan L harus kelipatan 64. Parameter p bersifat publik dan dapat digunakan bersama oleh orang di dalam kelompok.

2. q, bilangan prima 160 bit, merupakan faktor dari p – 1. Dengan kata lain, (p – 1) mod q =0. Parameter q bersifat publik.

3. g=h (p -1) /q mod p, yang dalam hal ini h < p– 1 sedemikian sehingga h( p-1) / q mod p > 1. Parameter g bersifat publik.

4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci privat. 5. y = g x mod p , adalah kunci publik.

6. m, pesan yang akan diberi tanda-tangan.

D.

Prosedur Algoritma DSA

1. Prosedur Pembangkitan Sepasang Kunci

1) Pilih bilangan prima p dan q, yang dalam hal ini (p -1)mod q = 0

2) Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1>h>p -1dan h( p-1) / qmod p-1 3) Tentukan kunci privat x, yang dalam hal ini x< q.

(24)

Jadi, prosedur di atas menghasilkan:

kunci publik dinyatakan sebagai (p, q, g, y),kunci privat dinyatakan sebagai (p, q, g, x).

2. Prosedur Pembangkitan Tanda-tangan (Signing)

1) Ubah pesan m menjadi intisari pesan dengan fungsi hash SHA, H. 2) Tentukan bilangan acak k < q.

3) Tanda-tangan dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai berikut:

r = (g k mod p) mod q s =(k-1(H(m)+ x*r))mod q.

4) Kirim pesan m beserta tanda- tangan r dan s.

3. Prosedur Verifikasi Keabsahan Tanda-tangan (Verifying) 1) Hitung

w = s -1 mod q u1 =(H(m)*w) mod q u2 =(r *w)mod q

v = ((g u1 * yu2)mod p)mod q

2) Jika v = r, maka tanda-tangan sah, yang berarti bahwa pesan masih asli dan dikirim oleh pengirim yang benar.

E. Contoh Perhitungan

a. Pembangkitan Sepasang Kunci

1) Pilih bilangan prima p dan q, yang dalam hal ini (p – 1) mod q = 0.

p = 59419

q = 3301 (memenuhi 3301 * 18 = 59419 – 1)

2) Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h < p – 1 dan h(p – 1)/q mod p > 1.

g = 18870 (dengan h = 100)

3) Tentukan kunci rahasia x, yang dalam hal ini x < q.

x = 3223

4) Hitung kunci publik y = gxmod p.

y = 29245

(25)

1) Hitung nilai hash dari pesan, misalkan H(m) = 4321 2) Tentukan bilangan acak k < q.

k = 997

k– 1 = 2907 (mod 3301)

3) Hitung r dan s sebagai berikut:

r = (gk mod p) mod q = 848

s = (k– 1 (H(m) + x * r)) mod q = 7957694475 mod 3301 = 183

4) Kirim pesan m dan sidik dijital r dan s.

c. Verifikasi Keabsahan Tanda-tangan (Verifying)

1) Hitung

s– 1 = 469 (mod 3301)

w = s– 1 mod q = 469

u1= (H(m) * w) mod q 2026549 mod 3301 = 3036

u2= (r * w) mod q = 397712 mod 3301 = 1592

v = ((gu1 * yu2) mod p) mod q) = 848 mod 3301 = 848 2) Karena v = r, maka sidik dijital sah.

(26)

DAFTAR PUSTAKA

Arizka, Rininda Ulfa . 2011 . “Penerapan Sistem Kriptografi ElGamal Atas Z_p^* Dalam Pembuatan Tanda Tangan Digital”. Universitas Negeri Yogyakarta : Program Studi Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam

Brownawell, W. Dale . “Pseudo-Code for Integer Algorithms in Bressoud’s Factorization and Primality Tesing”. CSE/Math 467

ElGamal, Taher. 1985 . “A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms”. IEEE Transactions on Information Theory

Menezes, A. 1996 . “Handbook of Applied Cryptography” CRC Press. Hal : 294-296

Rochmat, Nur. Dkk. 2012 . “Implementasi Algoritma Kriptografi ElGamal untuk Keamanan Pesa (Message Security)”. Transient Vol. 1, No. 3. ISSN : 2302-9927, 83.

Gambar

Gambar 1. 1 Whitfield Diffie dan Martin Hellman
Gambar 1. 2 Ilustrasi penggunaan algoritma Diffie- Hellman
Gambar 1. 3 Ilustrasi dalam pengkonversian kembali persamaan Diffie-Hellman
Gambar 1 Diagram Alir Pembentukan Kunci
+4

Referensi

Dokumen terkait

[r]

Penelitian ini bertujuan untuk melakukan amplifikasi in vitro beberapa fragmen mtDNA pada lokus yang berbeda dan mengandung fragmen lebih besar dari 1,6 kb menggunakan

Metode bukan suatu tujuan, melainkan suatu cara untuk mencapai tujuan dengan sebaik-baiknya, dapat dipahami bahwa tujuan yang hendak dicapai dalam setiap kegiatan

v.. menerangkan materi, diskusi kelompok dan presentasi kelompok, terakhir guru mengajak do’a bersama, ketiga observasi peneliti meneliti kegiatan siswa dan guru

Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan, maka dapat disimpulkan bahwa gaya kepemimpinan dan ketidakapastian lingkungan memiliki pengaruh terhadap

Begitupun dengan Kualitas pelayanan pemberian kredit (X) dan kepuasan nasabah kredit (Y) memberikan pengaruh yang signifikan terhadap loyalitas nasabah kredit (Z),

Naik turunnya nilai tukar mata uang atau kurs valuta asing bisa terjadi dengan berbagai cara, yakni bisa dengan cara dilakukan secara resmi oleh pemerintah suatu negara yang

Karena proses pendataan yang dipakai di PT.Kharisma Prima Abadi sela ma ini masih menggunakan proses manual dan menggunakan Microsoft Office Excel, maka penulis ingin membuat