- Back to Home »
- IMPLEMENTASI KEGUNAAN ALGORITMA DES, RSA, PGP di BIDANG KEMANANAN DATA JARINGAN
Posted by : satria
Sabtu, 20 Oktober 2018
MATA KULIAH : SISTEM KEAMANAN TEK.INFORMASI
AKHMAD DANU SATRIA
10115429 / 4KA06
DES (Data
Encryption Standard)
Data Encryption Standard (DES) adalah suatu blok cipher
(salah satu bentuk enkripsi rahasia bersama) yang dipilih oleh National Bureau
of Standar sebagai seorang pejabat Federal Information Processing Standard
(FIPS) untuk Amerika Serikat pada tahun 1976 dan yang kemudian dinikmati secara
luas gunakan internasional. Hal ini didasarkan pada algoritma kunci simetris
yang menggunakan 56-bit key. Algoritma awalnya diklasifikasikan kontroversial
dengan elemen desain, kunci yang relatif pendek panjang, dan kecurigaan tentang
National Security Agency (NSA) backdoor. DES akibatnya datang di bawah
pengawasan intens akademis yang memotivasi pemahaman modern dan blok cipher
kriptoanalisis mereka.
Algoritma
DES
Skema global dari algoritma DES adalah sebagai berikut :
Pertama blok plainteks dipermutasi dengan matriks permutasi
awal (initial permutation atau IP). Lalu, hasil permutasi awal kemudian di
-enciphering-sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci
internal yang berbeda dan hasil enciphering kemudian dipermutasi dengan matriks
permutasi balikan (invers initial permutation atau IP-1) menjadi blok
cipherteks.
Implementasi
DES
Untuk mengenkrip atau mendekripsi lebih dari 64 bit ada 4
model resmi yang telah ditetapkan oleh FIPS PUB 81. Salah satu model yang
digunakan adalah untuk memeriksa proses deakripsi di atas untuk masing-masing
blok secara berurutan. Model ini disebut model Electronic Code Book (ECB).
Kelebihan dari metode ini adalah melakukan XOR masing-masing blok plaintext
dengan blok ciphertext sebelumnya untuk proses enkripsi. Model ini dinamakan
Cipher Block Chaining (CBC). Dua model yang lain adalah Output Feedback (OFB)
dan Cipher Feedback (CFB).
Algoritma DES juga dapat digunakan untuk menghitung checksum
sampai panjang 64 bit. Jika jumlah data dalam bit dikenai checksum bukan
perkalian 64 bit, maka blok data yang terakhir diberi angka 0. Jika data itu
berupa data ASCII, maka bit pertama dari beberapa bit yang lain diberi nilai 0.
RSA
RSA di bidang kriptografi adalah
sebuah algoritme pada enkripsi public key. RSA merupakan algoritme
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.
Sejarah
Singkat
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).
Clifford Cocks,
seorang matematikawan Inggris yang bekerja untuk GCHQ, menjabarkan tentang sistem ekuivalen
pada dokumen internal pada tahun 1973. Penemuan Clifford
Cocks tidak terungkap hingga tahun 1997 karena
alasan top-secret classification.
Algoritme tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika
Serikat sebagai U.S. Patent 4.405.829.
Paten tersebut berlaku hingga 21 September 2000. Semenjak Algoritme
RSA dipublikasikan sebagai aplikasi paten, regulasi di sebagian besar
negara-negara lain tidak memungkinkan penggunaan paten. Hal ini menyebabkan
hasil temuan Clifford Cocks di kenal
secara umum, paten di Amerika Serikat tidak dapat mematenkannya.
Algoritma
dan Implementasi RSA
Skema RSA sendiri mengadopsi dari skema block cipher, dimana
sebelum dilakukan enkripsi, plainteks yang ada dibagi – bagi menjadi blok –
blok dengan panjang yang sama, dimana plainteks dan cipherteksnya berupa
integer(bilangan bulat) antara 1 hingga n, dimana n berukuran biasanya sebesar
1024 bit, dan panjang bloknya sendiri berukuran lebih kecil atau sama dengan
log(n) +1 dengan basis 2. Fungsi enkripsi dan dekripsinya dijabarkan dalam
fungsi berikut :
C = Me mod n
(fungsi enkripsi)
M = Cd mod n
(fungsi dekripsi)
C
= Cipherteks
M
= Message / Plainteks
e
= kunci publik
d=
kunci privat
n
= modulo pembagi
Kedua pihak harus mengetahui nilai e dan nilai n ini, dan salah
satu pihak harus memilki d untuk melakukan dekripsi terhadap hasil enkripsi
dengan menggunakan public key e. Penggunaan algoritma ini harus memenuhi
kriteria berikut :
1. Memungkinkan untuk mencari
nilai e, d, n sedemikian rupa sehingga Med mod n = M untuk semua M < n.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.
Syarat nilai e dan d ini, gcd(d,e)=1
Sebelum memulai penggunaan RSA ini, terlebih dahulu kita harus
memiliki bahan – bahan dasar sebagai berikut :
1.
p, q = 2 bilangan prima yang dirahasiakan
2.
n, dari hasil p.q
3.
e, dengan ketentuan gcd (Φ(n), e) =1
4. d, e-1 (mod
Φ(n))
Contoh:
1. Pilih 2 bilangan prima, misalnya p = 17 dan q = 11.
2. Hitung n = pq = 17 × 11 = 187.
3. Hitung Φ(n) = (p – 1)(q – 1) = 16 × 10 = 160.
4. Pilih nilai e sedemikian sehingga relatif prima terhadap Φ(n) = 160 dan kurang dari Φ(n); kita pilih e = 7.
5. Hitung d sedemikian sehingga de ≡ 1 (mod 160) dan d < 160.Nilai yang didapatkan d = 23,karena 23 × 7 = 161 = (1 × 160) + 1; d dapat dihitung dengan Extended Euclidean Algorithm.
2. Hitung n = pq = 17 × 11 = 187.
3. Hitung Φ(n) = (p – 1)(q – 1) = 16 × 10 = 160.
4. Pilih nilai e sedemikian sehingga relatif prima terhadap Φ(n) = 160 dan kurang dari Φ(n); kita pilih e = 7.
5. Hitung d sedemikian sehingga de ≡ 1 (mod 160) dan d < 160.Nilai yang didapatkan d = 23,karena 23 × 7 = 161 = (1 × 160) + 1; d dapat dihitung dengan Extended Euclidean Algorithm.
Nah,
nilai e dan d inilah yang kita sebut sebagai Public Key(e) dan Private
Key(d). Pasangan Kunci Publiknya ={7,187} dan Kunci Privatnya = {23, 187}
Sekarang
kita aplikasikan dalam proses enkripsi.
Misalnya kita punya M 88. Untuk
proses enkripsi, kita akan menghitung C = 887 mod 187.
= 887 mod 187.
=894,432
mod 187
=11
Nah,
kita mendapatkan nilai C =11.
Selanjutnya,
nilai C ini dikirimkan kepada penerima untuk didekripsi dengan kunci privat
miliknya.
M = Cd mod n
= 1123 mod 187
=79,720,245
mod187
=
88
PGP
PGP adalah
singkatan dari Pretty Good Privacy, dan merupakan program enkripsi yang
memiliki tingkat keamanan cukup tinggi dengan menggunakan “private-public key”
sebagai dasar autentifikasinya. PGP pertama diperkenalkan pada tahun 1991 oleh
Philip Zimmermann untuk menyandikan data dalam pengiriman surat elektronik.
Dalam proses penyandian data ini, PGP mengikuti standar RFC 4880.
PGP memiliki
dua versi, yaitu USA version dan International version. PGP veris USA hanya
dapat digunakan di wilayah Amerika dan hanya berlaku untuk warganegara Amerika
saja. Versi USA ini menggunakan algoritma asimetrik, yaitu RSA algorithm dalam
proses enkripsi dan dekripsinya. Sedangkan untuk versi internasional, PGP dapat
digunakan oleh semua warganegara di seluruh penjuru dunia. Algoritma penyandian
yang digunakan adalah algoritma MPILIB yang merupakan algoritma buatan Phill
Zimmermann. Untuk membedakan antara versi USA dan internasional, dapat dengan
cara melihat penulisannya.
PGP versi
internasional menambahkan akhiran “i” pada nomor seri PGP. Contohnya, nomor
versi PGP terakhir adalah 7.0.3 untuk versi USA dan 7.0.3i untuk versi
internasional. Beberapa tahun belakangan ini, penggemar dan pengguna PGP
semakin meningkat sehingga PGP telah menjadi standar de-facto program enkripsi
untuk electronic mail. Versi International lebih banyak digunakan oleh
masyarakat dunia karena kapabilitasnya . Layanan PGP versi ini dapat berlaku ke
seluruh mancanegara. Jadi, ketika seseorang mengirim e-mail menggunakan PGP
versi ini, maka penerima dapat mambaca e-mail tersebut karena versi yang
digunakan bersifat universal.
Implementasi PGP
PGP (Pretty Good Privacy), seperti yang telah dijelaskan sebelumnya, menggunakan teknik yang disebut public-key encryption dengan dua kode. Kode-kode ini berhubungan secara intrinsik, namun tidak mungkin untuk memecahkan satu dan yang lainnya.
Bila suatu ketika kita membuat suatu kunci, maka secara otomatis
akan dihasilkan sepasang kunci yaitu public key and secret key. Kita dapat
memberikan public key ke manapun tujuan yang kita inginkan, melalui telephone,
internet, keyserver, dsb. Secret key yang disimpan pada mesin kita dan
menggunakan messager decipher akan dikirimkan ke kita. Jadi orang yang akan
menggunakan public key kita (yang hanya dapat didekripsi oleh oleh secret key
kita), mengirimkan messages kepada kita , dan kita akan menggunakan secret key
untuk membacanya.
Sumber :
