Implementasi Program Algoritma RSA Untuk Enkripsi Dan Dekripsi File Teks

Sejarah Algoritma RSA

Algortima RSA pertama kali dijabarkan sekitar tahun 1976 oleh 3 orang dari Massachusetts Institute of Technology yaitu :

  1. Ron Rivest
  2. Adi Shamir
  3. Len Adleman
Huruf RSA itu sendiri berasal dari inisial nama mereka (Rivest - Shamir – Adleman). Clifford Cocks, seorang matematikawan Inggris yang bekerja untuk GCHQ, menjabarkan tentang sistem equivalen pada dokumen internal di tahun 1973.

Penemuan Clifford Cocks tidak terungkap hingga tahun 1997 karena alasan top-secret classification. Algoritma RSA dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat sebagai US patent 4405829. Paten tersebut berlaku hingga 21 September 2000. Setelah bulan September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas.


Apa itu algoritma RSA

RSA merupakan algoritma kriptografi asimetri, dimana kunci yang digunakan untuk mengenkripsi berbeda dengan yang digunakan untuk mendekripsi. Kunci yang digunakan untuk mengenkripsi disebut dengan kunci public atau Public Key, dan yang digunakan untuk mendekripsi disebut dengan kunci privat atau Private Key

RSA dikenal juga sebagai salah satu algoritma kriptografi yang menggunakan konsep kriptografi kunci publik. RSA membutuhkan tiga langkah dalam prosesnya, yaitu : pembangkitan kunci, enkripsi, dan dekripsi. Dimana proses enkripsi dan dekripsi merupakan proses yang hampir sama, maksudnya jika bilangan acak yang dibangkitkan kuat, maka akan lebih sulit untuk melakukan cracking terhadap pesan. Parameter yang dijadikan kuat tidaknya suatu kunci yaitu terdapat pada besarnya bilangan acak yang digunakan.


Contoh enkripsi dan dekripsi algoritma RSA

Berikut ini adalah contoh perhitungan manual enkripsi dan dekripsi menggunakkan algoritma RSA.

Dimana sebelum-nya kita harus menentukkan dulu Public Key Dan Private Key nya.

Dan berikut langkah-langkah algoritma RSA mendapatkan Public Key Dan Private Key :

  1. Pertama, menentukan 2 buah bilangan prima untuk p dan q :
    p = 11
    q = 13
  2.  

  3. Selanjutnya mendapatkan nilai n dimana rumus-nya :
    n = p * q

    dan akan menjadi seperti ini :
    n = 11 * 13
    n = 143
  4.  

  5. Mendapatkan nilai m dimana rumus-nya :
    m = (p - 1) * (q - 1)

    dan akan menjadi seperti ini :
    m = (11 - 1) * (13 - 1)
    m = (10) * (12)
    m = 120
  6.  

  7. Menentukan nilai e dengan syarat :
    e = e > 1 and GCD(m,e) = 1

    Dimana "17" adalah nilai yang memenuhi syarat untuk nilai e
    e = GCD(120,17) = 1
  8.  

  9. Menentukan nilai d dengan syarat :
    d = (d * e) mod m = 1

    Dimana "473" adalah nilai yang memenuhi syarat untuk nilai d
    d = (473 * 17) mod 120 = 1
  10.  

  11. Dari proses diatas, maka akan mendapatkan kunci public dan kunci privat dimana :
    public key = (e,n)
    private key = (d,n)

    Dan kunci akan menjadi seperti ini :
    public key = (17,143)
    private key = (473,143)
  12.  

  13. Setelah kita mendapatkan public key dan private key, proses selanjutnya melakukan Enkripsi dan Dekripsi, yaitu kata "INDONESIA". Berikut prosesnya :
    Text ASCII
    (A)
     Proses Enkripsi (X)
      C = A ^ e mod n
     Proses Dekripsi (Y)
     Y = C ^ d mod n
    I 73   = (7 ^ 17) mod 143 = 50
      = (3 ^ 17) mod 143 = 9
      = 50.9
      = (50 ^ 473) mod 143 = 7
      = (9 ^ 473) mod 143 = 3
      = 73 → I
    N 78   = (7 ^ 17) mod 143 = 50
      = (8 ^ 17) mod 143 = 112
      = 50.112
     = (50 ^ 473) mod 143 = 7
     = (112 ^ 473) mod 143 = 8
     = 78 → N
    D 68   = (6 ^ 17) mod 143 = 41
      = (8 ^ 17) mod 143 = 112
      = 41.112
     = (41 ^ 473) mod 143 = 6
     = (112 ^ 473) mod 143 = 8
     = 68 → D
    O 79   = (7 ^ 17) mod 143 = 50
      = (9 ^ 17) mod 143 = 81
      = 50.81
     = (50 ^ 473) mod 143 = 7
     = (81 ^ 473) mod 143 = 9
     = 79 → O
    N 78   = (7 ^ 17) mod 143 = 50
      = (8 ^ 17) mod 143 = 112
      = 50.112
     = (50 ^ 473) mod 143 = 7
     = (112 ^ 473) mod 143 = 8
     = 78 → N
    E 69   = (6 ^ 17) mod 143 = 41
      = (9 ^ 17) mod 143 = 81
      = 41.81
     = (41 ^ 473) mod 143 = 6
     = (81 ^ 473) mod 143 = 9
     = 69 → E
    S 83   = (8 ^ 17) mod 143 = 112
      = (3 ^ 17) mod 143 = 9
      = 112.9
     = (112 ^ 473) mod 143 = 8
     = (9 ^ 473) mod 143 = 3
     = 83 → S
    I 73   = (7 ^ 17) mod 143 = 50
      = (3 ^ 17) mod 143 = 9
      = 50.9
     = (50 ^ 473) mod 143 = 7
     = (9 ^ 473) mod 143 = 3
     = 73 → I
    A 65   = (6 ^ 17) mod 143 = 41
      = (5 ^ 17) mod 143 = 135
      = 41.135
     = (41 ^ 473) mod 143 = 6
     = (135 ^ 473) mod 143 = 5
     = 65 → A

Begitulah proses pembentukan kunci public dan private juga enkripsi dan dekripsi menggunakkan algoritma RSA


Screenshoot Program Proses Enkripsi Algoritma RSA

proses enkripsi menggunakkan algoritma rsa

Screenshoot Program Proses Dekripsi Algoritma RSA

proses dekripsi menggunakkan algoritma rsa

 



About PayahTidur
Jasa Konsultasi Dan Pembuatan Program. Sudah Berpengalaman Lebih Dari 10 Tahun Dalam Dunia Pemrograman. Pengerjaan Cepat dan Harga Terjangkau.



Contact : 0813 7027 3471


PayahTidur Products
Sistem Pakar
SPK (Sistem Pendukung Keputusan)
Data Minning
JST (Jaringan Syaraf Tiruan)
Images Proccesing (Pengolahan Citra)
Sistem Informasi Geografis (SIG)
E-Commerce Website
Sistem Informasi


PayahTidur Skills
PHP
Microsoft Visual Studio
Android Mobile
JST (Jaringan Syaraf Tiruan)
Maps Google
Laravel Framework / CI Framework
Matlab
Java