Kriptografi bertujuan menjaga
kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut
tidak dapat diketahui oleh pihak yang tidak sah. Dalam menjaga kerahasiaan
data, kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk
data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang
kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah
sampai di penerima, ciphertext tersebut ditransformasikan kembali ke dalam bentuk plaintext agar dapat
dikenali.
Proses
tranformasi dari plaintext menjadi ciphertext disebut proses Encipherment atau
enkripsi (encryption), sedangkan proses mentransformasikan kembali ciphertext
menjadi plaintext disebut proses dekripsi (decryption). Kriptografi menggunakan
suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang
digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan
sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data. Secara
sederhana istilahistilah di atas dapat digambarkan sebagai berikut.
Proses
Enkripsi/Dekripsi Sederhana Berdasarkan kunci yang digunakan, algoritma
kriptografi dapat dibedakan atas dua golongan, yaitu :
- Symmetric Algorithms Algoritma kriptografi simetris atau disebut juga algoritma kriptografi konvensional adalah algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi.
- Asymmetric Algorithms Algoritma kriptografi nirsimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini disebut juga algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat diketahui oleh setiap orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key).Contoh : algoritma terkenal yang menggunakan kunci asimetris adalah RSA dan ECC.
RSA Enkripsi Deskripsi
RSA adalah salah satu teknik
kriptografi dimana kunci untuk melakukan enkripsi berbeda dengan kunci untuk
melakukan dekripsi. Data transkrip akademik mahasiswa merupakan salah satu data
yang harus dijaga keamanannya sehingga perlu diterapkan suatu teknik pengamanan
dalam penyimpanannya. Pada makalah ini akan dibahas proses enkripsi (penyandian
data) nilai transkrip akademik mahasiswa menggunakan algoritma RSA, lalu akan
dibahas proses melakukan dekripsi (pengembalian data asli), serta akan dibahas
pula proses pembangkitan kunci pada algoritma RSA ini. Kinerja yang diukur dari
algoritma RSA ini waktu komputasi serta kompleksitas memori yang dibutuhkan
dalam melakukan enkripsi dan dekripsi data. Sebuah perangkat lunak berbasis
LabVIEW dibangun untuk implementasi algoritma RSA ini. Hasil pengujian
menunjukkan bahwa algoritma RSA berhasil diimplementasikan untuk pengamanan
data transkrip akademik mahasiswa. Berdasarkan pengujian diperoleh waktu
komputasi algoritma RSA adalah sebesar 15625 mikrodetik. Sedangkan kompleksitas
memori yang dibutuhkan algoritma RSA sebesar 3908 bytes.
Nama
RSA dinamai sesuai dengan nama-nama penciptanya yaitu Ron Rivest, Adi
Shamir, and Len Adleman. Cryptosystem RSA telah digunakan untuk e-commerce,
berbagai bentuk otentikasi, dan jaringan pribadi virtual. Pentingnya keamanan
yang tinggi dan implementasi yang lebih cepat membuka jalan untuk RSA
crypto-akselerator, implementasi perangkat keras dari algoritma RSA. Pekerjaan
ini terdiri dari penjelasan berbagai pendekatan untuk menerapkan RSA
crypto-akselerator berdasarkan versi “textbox” dari cryptosystem RSA dan
membandingkan kebutuhan area mereka. Banyak teknik yang dijelaskan di sini
memiliki aplikasi di tempat lain seperti dalam pemrosesan sinyal digital dan
kode kesalahan mengoreksi.
Tabel
ASCII
Pembangkitan pasangan kunci
1. Pilih dua bilangan
prima, a dan b (rahasia)
2. Hitung n = a.b Besaran n tidak
perlu dirahasiakan.
3. Hitung φ (n) = (a – 1)(b –
1).
4. Pilih sebuah bilangan
bulat untuk kunci publik, sebut namanya e, yang
relatif prima terhadap φ (n) .
relatif prima terhadap φ (n) .
5. Hitung kunci
dekripsi, d, melalui ed = 1 (mod m)
atau d = e-1 mod (φ(n) )
Hasil dari algoritma di atas:
- Kunci publik adalah pasangan (e, n)
- Kunci privat adalah pasangan (d, n)
Catatan: n tidak bersifat rahasia, namun ia diperlukan pada perhitungan enkripsi / dekripsi
Kunci Publik
1. Misalkan a =
47 dan b = 71 (keduanya prima), maka dapat dihitung:
n = a x b = 3337 φ(n) = (a – 1) x (b – 1) = 46 x 70 = 3220.
n = a x b = 3337 φ(n) = (a – 1) x (b – 1) = 46 x 70 = 3220.
2. Pilih kunci
publik e = 79 (yang relatif prima dengan 3220 karena pembagi
bersama terbesarnya adalah 1).
3. Hapus a dan b dan
kunci publiknya adalah n=3337 dan e=79
Kunci Privat
Selanjutnya akan dihitung kunci privat d
dengan kekongruenan:
e x d = 1 (mod m)
= => d = 1 + (k x 3220)
79
Dengan mencoba nilai-nilai k = 1, 2, 3,
…, diperoleh nilai d yang bulat adalah
1019. 1019 Ini adalah kunci privat (untuk dekripsi).
1019. 1019 Ini adalah kunci privat (untuk dekripsi).
Contoh
Misalkan plainteks M = HARI INI atau dalam ASCII: 7265827332737873
Pecah M menjadi blok yang lebih kecil (misal 3 digit):
Pecah M menjadi blok yang lebih kecil (misal 3 digit):
m1 = 726 m4 = 273
m2 = 582 m5 = 787
m3 = 733 m6 = 003
(Perhatikan, m i masih terletak di dalam antara 0 sampai n – 1)
Enkripsi setiap blok:
c1 = 726^79 mod 3337 = 215
c2 = 582^79 mod 3337 = 776, dst
Chiperteks C = 215 776 1743 933 1731 158.
Dekripsi (menggunakan kunci privat d = 1019)
m1 = 215^1019 mod 3337 = 726
m2 = 776^1019 mod 3337 = 582 dst untuk sisi blok lainnya
m2 = 776^1019 mod 3337 = 582 dst untuk sisi blok lainnya
Plainteks M = 7265827332737873 yang dalam
ASCII karakternya adalah HARI INI.
Kekuatan dan Keamanan RSA
- Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = a x b.
- Sekali n berhasil difaktorkan menjadi a dan b, maka φ (n) = (a – 1)x(b – 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan ed = 1 (mod n).
- Penemu algoritma RSA menyarankan nilai a dan b panjangnya lebih dari 100 digit. Dengan demikian hasil kali n = a x b akan berukuran lebih dari 200 digit.
- Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).
Referensi
https://jurnal.unikom.ac.id/_s/data/jurnal/v08-n01/volume-81-artikel-9.pdf/pdf/volume-81-artikel-9.pdf
http://dinus.ac.id/repository/docs/ajar/Kriptografi_-_Week12_-_RSA.pdf
Tidak ada komentar:
Posting Komentar