Implementasi
Algoritma DES, RSA, dan PGP.
DES
(Data Encryption Algorithm)
DES
adalah algoritma cipher blok yang populer karena dijadikan standard algoritma
enkripsi kunci-simetri, meskipun saat ini standard tersebut telah digantikan
dengan algoritma yang baru, AES, karena DES sudah dianggap tidak aman lagi.
DES termasuk
ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok.
DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks
menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal
key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari
kunci eksternal (external key) yang panjangnya 64 bit.
1. Blok plainteks dipermutasi dengan matriks
permutasi awal (initial permutation atau IP).
2. Hasil permutasi awal kemudian di-enciphering- sebanyak
16 kaH (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.
3. Hasil enciphering kemudian
dipermutasi dengan matriks permutasi balikan (invers initial permutation) menjadi blok
cipherteks.
Cara membaca tabel: dua entry ujung kiri atas (58 dan 50)
artinya :
Pindahkan bit ke-58 ke
posisi bit 1.
Pindahkan bit ke-50 ke
posisi bit 2.
RSA
(Rivest-Shamir-Adleman)
Algoritma RSA merupakan salah satu algoritma public
key yang populer dipakai dan bahkan masih dipakai hingga saat ini. Kekuatan
algoritma ini terletak pada proses eksponensial, dan pemfaktoran bilangan
menjadi 2 bilangan prima yang hingga kini perlu waktu yang lama untuk melakukan
pemfaktorannya.
Algoritma ini dinamakan sesuai dengan nama penemunya, Ron Rivest, Adi Shamir dan Adleman(Rivest-Shamir-Adleman) yang dipublikasikan pada tahun 1977 di MIT, menjawab tantangan yang diberikan algoritma pertukaran kunci Diffie Hellman.
Algoritma ini dinamakan sesuai dengan nama penemunya, Ron Rivest, Adi Shamir dan Adleman(Rivest-Shamir-Adleman) yang dipublikasikan pada tahun 1977 di MIT, menjawab tantangan yang diberikan algoritma pertukaran kunci Diffie Hellman.
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(akan dijelaskan lebih lanjut )
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))
Saya akan berikan satu 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 (Pretty Good Privacy)
PGP adalah pengaman
kriptografi yang cukup tinggi performasinya. PGP dibuat berdasarkan pada konsep
metode “Public key Cyptography” yaitu suatu metode kriptografi yang sangat
sophisticate. Sekarang PGP dapat digunakan untuk mengamankan semua jenis file
program dan data.
Pada dasarnya PGP dapat melakukan
autentikasi, kerahasiaan, kompresi, kompabilitas email, dan segmentasi. Namun
pembahasan terbatas PGP sebagai fungsi penjaga kerahasiaan. Dimana PGP
mengggunakan IDE dengan kunci 128 bit untuk menyediakan data dan dideskrip
menggunakan kunci private RSA.
PGP menciptakan suatu
kunci sesi, yaitu suatu kunci rahasia one-time-only. Kunci ini bersifat acak,
saat di enkripsi akan menciptakan plaintext dan kemudian menghasilkan ciphertext.
Note : this going to be copyright so i'll delete immediaetly, until 28 Oct 2018. Let me know if you have problem about it vhicoputra.vp@gmail.com
Sumber :
Tidak ada komentar:
Posting Komentar