tugas computer security

32
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

Upload: panjulromero

Post on 01-Jan-2016

25 views

Category:

Documents


2 download

DESCRIPTION

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. 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.

TRANSCRIPT

Page 1: Tugas Computer Security

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

Page 2: Tugas Computer Security

Algoritma Deffie-Hellman

I Gede Muriarka (1291761018)[email protected]

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, p dan bilangan integer yang tidak melebihi dari nilai p,

g, biasa disebut bilangan basis atau generator. Kedua bilangan tersebut dapat diketahui

secara publik.

Page 3: Tugas Computer Security

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

dari Bob dan Alice.

Page 4: Tugas Computer Security

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

Page 5: Tugas Computer Security

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

Gambar 1. 3 Ilustrasi dalam pengkonversian kembali persamaan Diffie-Hellman

Page 6: Tugas Computer Security

KRIPTOGRAFI ELGAMAL

I Gusti Rai Agung Sugiartha (1291761017)[email protected]

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

γ ≡α b

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,

Page 7: Tugas Computer Security

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 Zp¿ , 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 Zp¿ 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 Zp¿

elemen identitasnya adalah 1. Untuk kunci publik pada algoritma ElGamal ini adalah tiga

pasangan bilangan yaitu (p, g, y), dengan

y = ga 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 = ga 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 ϵ Zp¿ , dan a ϵ {1, 2, 3, …,

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

y1 = ga mod p dan y2 = ga mod p

Page 8: Tugas Computer Security

Mulai

Bilangan prima > 255

Pilih a ϵ {1, 2, 3, …, p-2}

y = mod p

Selesai

Kunci publik ( p, g, y)

y = ga mod p, maka

ga= 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 = ga mod p

y = 2178 mod 257 = 4

Page 9: Tugas Computer Security

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.

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 plaintext m1, m2, m3, ..,

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

dengan menghitung:

B = gk mod p.......................................................................................(2)

β = ykmi 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 = gk mod p

c. Menghitung βi = ykimi mod p

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

Berikut ini diperlihatkan diagram alir enkripsi pesan, seperti gambar dibawah ini:

Page 10: Tugas Computer Security

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

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

Page 11: Tugas Computer Security

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 = 2k mod

257 dan nilai β dengan rumus (3) yaitu β = 178kmi 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 = 2k mod 257 β = 178kmi 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

Page 12: Tugas Computer Security

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 = β (Ba)−1 mod p.............................................................................(4)

dengan m adalah plaintext.

Plaintext juga dapat ditemukan kembali dengan

m = β (Bp−1−a)❑ 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 (Bia)−1 mod p

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

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

Berikut ini diperlihatkan diagram alir enkripsi pesan, seperti gambar dibawah ini:

Page 13: Tugas Computer Security

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

pesan

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 = β (B178)−1 mod 257

Page 14: Tugas Computer Security

Sebagai hasil perhitungannya, akan disajikan dalam tabel berikut ini:

Tabel 4 Dekripsi ciphertext menjadi pesan

i Bi βi m = β (B78)❑ 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

Page 15: Tugas Computer Security

modulus yang besar juga. Penggunaan tipe data yang disediakan oleh bahasa pemrograman

akan tidak bisa menampung hasil perhitungan.

Page 16: Tugas Computer Security

Algoritma RSA

Dandy Pramana Hostiadi (1291761019)[email protected]

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

Page 17: Tugas Computer Security

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.

Page 18: Tugas Computer Security

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

D = 68 a = 97 n = 110 d = 100 y = 121

Page 19: Tugas Computer Security

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

Page 20: Tugas Computer Security

◦ 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

Page 21: Tugas Computer Security

Digital Signature Algorithm (DSA)Muhammad Riza Hilmi (1291761010)

[email protected]

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.

Page 22: Tugas Computer Security

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.

Gambar 1. Alur Signing dan Verification dengan DSA

Page 23: Tugas Computer Security

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) / q mod p-1

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

4) Hitung kunci publik y = gx mod p.

Jadi, prosedur di atas menghasilkan:

Page 24: Tugas Computer Security

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 = gx mod p.

y = 29245

b. Pembangkitan Tanda-tangan (Signing)

1) Hitung nilai hash dari pesan, misalkan H(m) = 4321

Page 25: Tugas Computer Security

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.

Page 26: Tugas Computer Security

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.