Langsung ke konten utama

Algoritma Kriptografi Modern (RSA)


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.

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) .
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
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).


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):

               m1 = 726        m4 = 273
               m2 = 582        m5 = 787
               m3 = 733        m6 = 003

(Perhatikan, 
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

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

Postingan populer dari blog ini

Perkembangan Teknologi Telekomunikasi

1.   Perkembangan Teknologi 1G, 2G, 3G, 3.5G, 4G Dan 5G Perkembangan Teknologi Telekomunikasi Huruf “G” pada setiap Teknologi pada1G, 2G, 3G, 3.5G, 4G Dan 5G adalah Generasi. Teknologi sekarang sudah sangat maju dan GPRS, EDGE, UMTS, HSDPA adalah generasinya. GPRS adalah generasi pertamanya disusul dengan Edge dengan memberikan layanan agak cepat lalu 3G dengan menghadirkan layanan tercepat dan akhirnya teknologi sekarang 3.5G menyingkirkan semua dengan menghadirkan layanan sangat cepat untuk mengakses data, dan mungkin akan hadir layanan 4G. 2.         Perjalanan Generasi G berarti Generation dan berhubungan dengan kecepatan transmisi data          1G – Original analog cellular for voice (AMPS, NMT, TACS) 14.4 kbps       2G – Digital narrowband circuit data (TDMA, CDMA) 9-14.4 kbps       3G – Digital broadband packet data (CDMA, EV-DO, UMTS, EDGE) 500-700 kbps       3.5G – Replacement for EDGE is HSPA 1-3 mbps and HSDPA up to 7.2Mbps       4G – Digit

Pengertian Domain dan Analisa Domain

Pengertian Domain Domain DNS yang merupakan singkatan dari Domain Name System atau Sistem Penamaan Domain adalah sebuah sistem yang menyimpan informasi tentang nama host maupun nama domain dari jaringan komputer di seluruh dunia. Nama domain adalah alamat internet penyelenggara negara, Orang, Badan Usaha, dan/atau masyarakat, yang dapat digunakan dalam berkomunikasi melalui internet, yang berupa kode atau susunan karakter yang bersifat unik untuk menunjukkan lokasi tertentu dalam internet. Bagi anda yang masih awam dan belum memahaminya, secara sederhana nama domain adalah nama unik anda di dunia internet atau alamat suatu situs/website internet seperti www.google.com, www.pajak.go.id. Nama domain biasanya terdiri dari dua bagian atau lebih yang dipisahkan dengan tanda titik dengan panjang hurufnya tidak boleh melebihi 63 karakter. Domain adalah sistem penamaan yang berformat atau biasa disebut dengan nama unik (unique name) yang digunakan untuk mengidentifikasi nama serv