Kriptografi
Algoritma Kriptografi Modern |
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.
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:
Dengan mencoba nilai-nilai k = 1, 2, 3, …, diperoleh nilai d yang bulat adalah
1019. 1019 Ini adalah kunci privat (untuk dekripsi).
m1 = 726 m4 = 273
m2 = 582 m5 = 787
m3 = 733 m6 = 003
(Perhatikan, m i masih terletak di dalam antara 0 sampai n – 1)
c1 = 726^79 mod 3337 = 215
c2 = 582^79 mod 3337 = 776, dst
e x d = 1 (mod m) = => d = 1 + (k x 3220)
79
1019. 1019 Ini adalah kunci privat (untuk dekripsi).
Gambaran Tentang Enkripsi Deskripsi RSA |
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
1. Kekuatan algoritma RSA terletak pada
tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor
primanya, yang dalam hal ini n = a x b.
2. 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).
3. 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.
4. 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
Komentar
Posting Komentar