Steganography |
- Kriptografi di "tomb incription" 1900 SM
- Steganography dari Mesopotamia 1500 SM
- Skytale oleh bangsa Spartan 475 SM
- Kriptografi Caesar 50 SM
- Chiper disc tahun 1400
- On time pad tahun 1917
- Enigma oleh Jerman di tahun 1920
- Enkripsi Lucifer oleh IBM di tahun 1971.
dan masih banyak lagi ...
Sky Tale |
Cipher Disk |
Dalam Kriptografi dikenal istilah enkripsi dan dekripsi, enkripsi adalah proses penyandian pesan agar tidak dapat dibaca pihak lain, sedangkan dekripsi adalah kebalikan dari enkripsi yaitu mengembalikan pesan hasil penyandian menjadi pesan awal. kedua proses tersebut memerlukan informasi rahasia yang disebut kunci. Terdapat 2 jenis kriptografi, yaitu menggunakan algoritma kunci Simetris (kunci enkripsi dan dekripsi sama) serta algoritma kunci Asimetris (kunci enkripsi dan dekripsi berbeda).
Dalam algoritma kunci Asimetris, kunci untuk meng-enkripsi pesan adalah kunci publik (dapat diketahui siapa saja), namun kunci dekripsi adalah kunci rahasia. Kelebihan dari algoritma kunci Asimetris yaitu pengguna dapat berkomunikasi dengan banyak pihak tanpa membuat banyak kunci. Berbeda dengan algoritma kunci Simetris yang setiap kuncinya hanya untuk komunikasi 2 pihak. Algoritma kunci Asimetris dianalogikan seperti kotak amal di masjid. Setiap orang bisa memasukkan uang kedalamnya (enkripsi), tapi hanya pemegang kunci saja yang bisa membuka kotaknya (dekripsi).
Salah satu algoritma kunci Asimetris yang terkenal adalah algoritma RSA. Algoritma ini ditemukan tahun 1977 oleh Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Dasar dari algoritma ini adalah Teorema Fundamental Aritmatika tentang Bilangan Prima yang telah ditemukan 200 SM. Dalam teorema tersebut dijelaskan bahwa setiap bilangan bulat yang lebih dari 1 dapat dinyatakan sebagai perkalian bilangan prima secara unik. Nah kekuatan dari algoritma RSA terletak pada proses eksponensial dalam memfaktorkan sebuah bilangan menjadi 2 bilangan prima. Untuk lebih jelasnya langsung saja kita lihat prosesnya.
Penentuan public key dan private key.
- Pilih dua bilangan Prima. Misalkan p=13 dan q=17.
- Hitung n = p*q = 13*17 = 221
- Hitung Φ(n) = (p-1)(q-1) = 12*16 = 192
- Pilih e yang relatif prima dengan Φ(n) dan kurang dari Φ(n).
misalkan e=5 ----> karena FPB(5,192)=1 ---> arti dari relatif prima.
- Cari d sehingga e*d mod Φ(n) = 1
maka d=77 ---> karena 5*77 mod 192 = 1 ---> artinya 5*77 = 192*2 + 1
(nilai d dapat dicari menggunakan extended euclidean algorithm)
Dengan demikian didapatkan public key = (n,e) = (221,5)
private key = (n,d) = (221,77)
- Pilih e yang relatif prima dengan Φ(n) dan kurang dari Φ(n).
misalkan e=5 ----> karena FPB(5,192)=1 ---> arti dari relatif prima.
- Cari d sehingga e*d mod Φ(n) = 1
maka d=77 ---> karena 5*77 mod 192 = 1 ---> artinya 5*77 = 192*2 + 1
(nilai d dapat dicari menggunakan extended euclidean algorithm)
Dengan demikian didapatkan public key = (n,e) = (221,5)
private key = (n,d) = (221,77)
Proses Enkripsi
Sekarang waktunya kita enkripsi pesan. Misalkan kita ingin mengenkripsi pesan TAMAN, maka pertama ubah setiap huruf menjadi bilangan bulat (A=01, B=02 .... Z=26). Maka diperoleh:
T A M A N = 20 01 13 01 14
lalu gunakan teknik block cipher (membagi pesan menjadi blok-blok dengan panjang sama). Misalkan
menggunakan blok dengan panjang 3 digit.
200-113-011-4
lalu dimulailah proses penyandian menggunakan public key (n,e) = (221,5):
(kode)e mod n
(200)5 mod 221 = 200
(113)5 mod 221 = 146
(11)5 mod 221 = 163
(4)5 mod 221 = 140
Dengan demikian pesan hasil enkripsi adalah: 200-146-163-140.
Pesan rahasia siap dikirim.
Dengan demikian pesan hasil enkripsi adalah: 200-146-163-140.
Pesan rahasia siap dikirim.
Proses Dekripsi
Proses dekripsi membutuhkan private key (n,d) = (221,77). Prosesnya:
(kode)d mod n
(kode)d mod n
(200)77 mod 221 = 200
(146)77 mod 221 = 113
(163)77 mod 221 = 11 = 011
(140)77 mod 221 = 4
didapatkan pesan hasil dekripsi 200-113-011-4
lalu ubah menjadi blok dua digit 20 01 13 01 14
lalu kembalikan ke bentuk huruf T A M A N *Tadaa...!!*
Oke, balik lagi ke teorinya. Bagi si pembuat kunci, dengan memilih p dan q maka dengan mudah diperoleh nilai n. Namun bagi orang lain yang ingin mendekripnya, ia harus mencari p dan q dari kunci publik n. Nah, kekuatan algoritma RSA terletak pada kesulitannya dalam memfaktorkan bilangan n menjadi p dan q. Sekali n berhasil difaktorkan, p dan q telah diketahui pihak lain dan e juga diketahui (memang kunci publik), maka tidak sulit mencari nilai d. Karena n dan d diketahui, maka semua pesan yang kita enkripsi dengan kunci publik (n,e) akan dapat di dekripsi oleh pihak lain.
Umumnya untuk menjamin keamanan algoritma RSA, nilai p dan q minimal panjangnya 100 digit. Rivest, Shamir dan Adleman telah mencoba mengenkripsi pesan menggunakan bilangan bulat n = 129 digit pada tahun 1977 dan pesan tersebut baru berhasil dipecahkan orang 17 tahun kemudian dengan menggunakan 87 unit komputer dual processor dan 30 unit komputer 4 processor. Rekor terakhir dalam pemfaktoran dua bilangan prima dipecahkan tanggal 12 Desember 2009 dengan n = 232 digit setara dengan komputasi selama 2000 tahun. Ada hadiah 200.000 dollar buat yang bisa memfaktorkan RSA dengan n = 617 digit. Waaa. Mau tau gimana susahnya? coba faktorkan bilangan 943 (n = 3 digit) menjadi pekalian 2 bilangan prima. Butuh waktu berapa lama memfaktorkannya?
Kekurangan dari algoritma RSA adalah kunci privatnya yang sangat panjang sehingga berimbas pada lambatnya proses dekripsi. Sehingga algoritma ini lebih umum digunakan dalam enkripsi pesan pendek.
"In the real world if your cryptography fails, you lose a million dollars or your secret agent gets killed. In academia, if you write about a cryptosystem and then a few months later find a way to break it, you’ve got two new papers to add to your résumé!"
(Neil Koblitz: The Uneasy Relationship Between Mathematics and Cryptography)
Sumber: J. J. Siang BILANGAN PRIMA : PERKEMBANGAN DAN APLIKASINYA
didapatkan pesan hasil dekripsi 200-113-011-4
lalu ubah menjadi blok dua digit 20 01 13 01 14
lalu kembalikan ke bentuk huruf T A M A N *Tadaa...!!*
Oke, balik lagi ke teorinya. Bagi si pembuat kunci, dengan memilih p dan q maka dengan mudah diperoleh nilai n. Namun bagi orang lain yang ingin mendekripnya, ia harus mencari p dan q dari kunci publik n. Nah, kekuatan algoritma RSA terletak pada kesulitannya dalam memfaktorkan bilangan n menjadi p dan q. Sekali n berhasil difaktorkan, p dan q telah diketahui pihak lain dan e juga diketahui (memang kunci publik), maka tidak sulit mencari nilai d. Karena n dan d diketahui, maka semua pesan yang kita enkripsi dengan kunci publik (n,e) akan dapat di dekripsi oleh pihak lain.
Umumnya untuk menjamin keamanan algoritma RSA, nilai p dan q minimal panjangnya 100 digit. Rivest, Shamir dan Adleman telah mencoba mengenkripsi pesan menggunakan bilangan bulat n = 129 digit pada tahun 1977 dan pesan tersebut baru berhasil dipecahkan orang 17 tahun kemudian dengan menggunakan 87 unit komputer dual processor dan 30 unit komputer 4 processor. Rekor terakhir dalam pemfaktoran dua bilangan prima dipecahkan tanggal 12 Desember 2009 dengan n = 232 digit setara dengan komputasi selama 2000 tahun. Ada hadiah 200.000 dollar buat yang bisa memfaktorkan RSA dengan n = 617 digit. Waaa. Mau tau gimana susahnya? coba faktorkan bilangan 943 (n = 3 digit) menjadi pekalian 2 bilangan prima. Butuh waktu berapa lama memfaktorkannya?
Kekurangan dari algoritma RSA adalah kunci privatnya yang sangat panjang sehingga berimbas pada lambatnya proses dekripsi. Sehingga algoritma ini lebih umum digunakan dalam enkripsi pesan pendek.
"In the real world if your cryptography fails, you lose a million dollars or your secret agent gets killed. In academia, if you write about a cryptosystem and then a few months later find a way to break it, you’ve got two new papers to add to your résumé!"
(Neil Koblitz: The Uneasy Relationship Between Mathematics and Cryptography)
Sumber: J. J. Siang BILANGAN PRIMA : PERKEMBANGAN DAN APLIKASINYA
Wah mantap ni bro penjelasannya hehe...:)
BalasHapusSip, makasih bro buat kunjungannya..!
HapusMantap broo ...
BalasHapusYoo, makasih kunjungannya..!
Hapusbekal buat tugas akhir gw nih :D
BalasHapusizin copas ya masbro
BalasHapusSilahkan disebarluaskan :)
Hapus