IMPLEMENTASI ALGORITMA RIVEST-SHAMIR-ADLEMAN (RSA) DAN METODE LEAST SIGNIFICANT BIT(LSB) UNTUK KEAMANAN FILE TEKS DAN DOKUMEN MENGGUNAKAN VISUAL C#
Kemal Ade Sekarwati 1 Ariep Budiman 2
Teknik Informatika, Universitas Gunadarma 1 ade@staff.gunadarma.ac.id
2 ariepbudiman26@gmail.com

## Abstrak
Kebutuhan akan keamanan dan kerahasiaan file dokumen yang begitu penting pada era informasi dan komunikasi digital seperti saat ini, melahirkan ilmu yang dikenal dengan nama  kriptografi.  Informasi  yang  terdapat  di  dalam  sebuah  file  di  enkripsi  sehingga informasi  tersebut  hanya  dapat  dibaca  oleh  pihak  yang  berhak  untuk  mengetahui informasi tersebut. Akan tetapi kriptografi sering menimbulkan kecurigaan pihak ketiga, sebab  file  dokumen  yang  sulit  dimengerti  dapat  menunjukkan  bahwa  file  dokumen  itu berisi  informasi  penting.  Untuk  menghindari  permasalahan  tersebut  maka  lahir  ilmu yang  dikenal  dengan  nama  steganografi.  Tulisan  ini  bertujuan  untuk  membuat  sebuah program  aplikasi  yang  mengimplementasikan  teknik  kriptografi  dengan  menggunakan algoritma  Rivest-Shamir-Adleman  (RSA)  dan  teknik  steganografi  dengan  metode  Least Significant  Bit(LSB)  untuk  memberikan  keamanan  ganda  pada  file  teks  dan  dokumen. Aplikasi  ini  dibuat  menggunakan  visual  C#.  Pengembangan  aplikasi  dilakukan menggunakan  metode  SDLC  dengan  metode  Waterfall.Hasil  uji  coba  enkripsi  dan dekripsi  didapat  bahwa  jumlah  karakter  hasil  enkripsi  lebih  banyak  dari  karakter  yang dienkripsi. Ukuran file setelah dienkripsi lebih besar dari sebelum dilakukan enkripsi dan ukuran file setelah dekripsi lebih kecil dari sebelum dilakukan dekripsi.
Kata Kunci : Kriptografi, Steganografi, RSA, LSB

## RIVEST-SHAMIR-ADLEMAN (RSA) ALGORITHM AND LEAST SIGNIFICANT BIT (LSB) METHOD IMPLEMENTATION FOR TEXT AND
DOCUMENT FILE SECURITY USING VISUAL C#

## Abstract
The needs for document file security and confidentiality is so important in the information and digital communication era nowadays, so it utter cryptography science. Information in a  file  is  been  encrypted  so  it  only  can  be  read  by  who  have  the  right  to  access. Cryptography  often  caused  the  third  party  suspicion,  because  the  difficulties  of  the document  file  to  be  understandable  shows  that  the  document  files  contain  important information. To avoid such problems, therefore utter a science known as stegnography. The  purpose  of  this  research  is  to  make  an  application  program  that  implements cryptography  techniques  by  using  Rivest-Shamir-Adleman  (RSA)  algorithm  and stegnography technique with the use of Least Significant Bit(LSB)for double security on the  text  and  document  files.  This  application  is  been  made  by  using  visual  C#.  The application development is been done by using SDLC method with Waterfall method.  The encryption  test  result  and  decryption  shows  that  the  amount  of  the  encrypted  character result is more from the encrypted character. The file size after encrypted is bigger that before  its  being  encrypt  and  the  file  size  after  decrypted  smaller  than  before  it  is decrypted.
Keywords: Cryptography, Steganography, RSA, LSB

## PENDAHULUAN
Salah  satu  algoritma  kriptografi yang  masih  populer  sampai  saat  ini adalah  algoritma Rivest-Shamir-Adleman (RSA).  Algoritma  RSA  termasuk  ke dalam jenis algoritma kriptografi asimetri. Algoritma  RSA  melakukan  pemfaktoran bilangan  yang  sangat  besar  sehingga algoritma  RSA  dianggap  aman.  Kea- manan  algoritma  RSA  terletak  pada tingkat  kesulitan  dalam  memfaktorkan bilangan non-prima menjadi faktor prima lainnya.  Kriptografi  sering  menimbulkan kecurigaan  pihak  ketiga,  sebab file dokumen  yang  sulit  dimengerti  dapat menunjukkan  bahwa file dokumen  itu berisi  informasi  penting  [1].  Untuk menghindari permasalahan tersebut maka lahir  ilmu  yang  dikenal  dengan  nama steganografi.
Salah  satu  metode  steganografi yang  banyak  digunakan  yaitu  metode Least Significant Bit (LSB). Metode LSB memiliki  kelebihan  pada  proses embed- ding (encoding) dan extracting(decoding) yang lebih cepat dari metode steganografi lainnya.  Metode  LSB  hanya  mengubah nilai byte satu lebih tinggi atau satu lebih rendah  dari  nilai  sebelumnya  sehingga tidak  berpengaruh  terhadap  persepsi visual [2].
Penelitian  ini  akan  membuat  se- buah  aplikasi  yang  mengimplementasi- kan  teknik  kriptografi  dengan  algoritma RSA  dan  teknik  steganografi  dengan metode Least Significant Bit (LSB) untuk keamanan file dokumen  menggunakan bahasa pemrograman C#.NET.

## METODE PENELITIAN
Metode  penelitian  yang  digunakan pada  penulisan  ini  adalah  metode  SDLC ( System  Development  Life  Cycle ),  yaitu pendefinisian  masalah  yaitu  keamanan informasi  pada  sebuah file dokumen dengan  format  *.txt  dan  *.doc.  Selan-
jutnya  fase  analisa  dengan  mengumpul- kan  berbagai  informasi  dan  bahan-bahan yang  digunakan  untuk  menyelesaikan masalah  dan  menunjang  penulisan  serta pembuatan  aplikasi,  yaitu  mempelajari berbagai  sumber  pustaka  yang  berhu- bungan  dengan  Kriptografi,  Algoritma RSA, Steganografi, metode Least
Significant  Bit (LSB)  dan  bahasa pemrograman C#.NET.
Fase  perancangan,  pada  fase  ini dibuat  rancangan  aplikasi  yang  terdiri dari  beberapa  tahapan,  seperti  peran- cangan  struktur  navigasi,  perancangan diagram UML ( Unified Modeling Langu- age ) dan perancangan tampilan atau user interface aplikasi.  Fase  implementasi dilakukan  implementasi  dengan  mem- bangun aplikasi dengan menuliskan kode program  menggunakan  bahasa  pemro- graman C#.NET.
Fase  uji  coba  yaitu  melakukan pengujian  terhadap  aplikasi  yang  telah dibangun  dengan  mencoba  melakukan enkripsi pada file dokumen penting yang didapat  melalui  internet  dan  kemudian hasil enkripsi disembunyikan dengan cara disisipkan  ( encoding )  pada  sebuah  citra gambar.  Kemudian  citra  gambar  hasil encoding dilakukan decoding untuk men- dapatkan  informasi  yang  telah  dienkripsi sebelumnya  dan  pada  informasi  tersebut dilakukan  dekripsi  untuk  mendapatkan informasi yang dapat dibaca.

## PEMBAHASAN

## Rivest-Shamir-Adleman (RSA)
Algoritma RSA melakukan pemfak- toran  bilangan  yang  sangat  besar,  oleh karena  alasan  tersebut  RSA  dianggap aman.  Untuk  membangkitkan  dua  kunci, dipilih  dua  bilangan  prima  acak  yang besar.  Algoritma  RSA  dibuat  oleh  3 orang peneliti dari Massachussets Institute of Technology (MIT) pada tahun 1976,  yaitu:  Ron  (R)ivest,  Adi  (S)hamir, dan  Leonard  (A)dleman  [1].  Berikut
adalah algoritma RSA :
1. Pilih 2 buah bilangan prima.
2. Hitung  nilai  n  dengan  mengalikan  p dan q.
3. Hitung nilai phi dengan cara phi = (p – 1) * (q – 1).
4. Pilih  sebuah  bilangan  sebagai  kunci enkripsi  (e)  dimana  bilangan  tersebut lebih besar dari 1 dan lebih kecil dari phi. 5. Hitung  nilai  untuk  kunci  dekripsi dengan rumus (d * e) % phi = 1.
6. Kemudian pilih sebuah pesan (M).
Enkripsi dari M adalah C = M e % n. Dekripsi dari C adalah M = C d % n. Dengan, p dan q bilangan prima (rahasia), n = p.q (tidak rahasia), phi(n) = (p - 1)(q - 1)  (rahasia),  e  (kunci  enkripsi)  (tidak rahasia),  d  (kunci  dekripsi)  (rahasia),  M (plainteks)  (rahasia),  dan  C  (cipherteks) (tidak rahasia).
Least Significant Bit (LSB) Metode Least Significant Bit (LSB) merupakan  metode  steganografi  yang paling  sederhana  dan  paling  mudah diimplementasikan.  Untuk  menjelaskan metode  LSB  digunakan  citra  dijital sebagai covertext .  Setiap pixel di  dalam citra  berukuran  1  sampai  3 byte .  Pada susunan bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti ( Most Significant  Bit atau  MSB)  dan  bit  yang paling  kurang  berarti  ( Least  Significant Bit atau  LSB).  Misalnya  pada byte 11010010, bit 1 yang pertama adalah bit MSB  dan  bit  0  yang  terakhir  adalah  bit LSB.  Bit  yang  cocok  untuk  diganti dengan  bit  pesan  adalah  bit  LSB,  sebab modifikasi  hanya  mengubah  nilai byte tersebut  satu  lebih  tinggi  atau  satu  lebih rendah  dari  nilai  sebelumnya.  Misalkan byte tersebut di dalam gambar
memberikan persepsi warna merah, maka perubahan satu bit LSB hanya mengubah persepsi  warna  merah  tidak  terlalu berarti.  Mata  manusia  tidak  dapat membedakan  perubahan  yang  kecil  ini [3].
Untuk  membuat hiddentext tidak dapat  dilacak,  bit-bit  pesan  tidak mengganti byte-byte yang  berurutan, namun  dipilih  susunan byte secara  acak. Misalnya  jika  terdapat  50 byte dan  6  bit data  yang  akan  disembunyikan,  maka byte yang  diganti  bit  LSB  nya  dipilih secara acak. Pembangkitan bilangan acak seperti  LCG  dapat  digunakan  sebagai
Pseudo-Random-Number-Generator
(PNRG).  Dalam  hal  ini,  nilai  umpan untuk  LCG  berlaku  sebagai  kunci stegano.  Pada  citra  8  bit  yang  berukuran 256  x  256 pixel terdapat  65536 pixel , setiap pixel berukuran  1 byte sehingga hanya  dapat  menyisipkan  1  bit  pada setiap pixel .  Pada  citra  24  bit  yang berukuran  256  x  256 pixel ,  satu pixel berukuran 3 byte (atau 1 byte untuk setiap komponen  R,  G  dan  B),  sehingga  dapat disisipkan  pesan  sebanyak  65536  x  3  bit =  196608  bit  atau  196608/8  =  24576
byte .
Pesan  yang  disembunyikan  di dalam  citra  dapat  diungkap  kembali dengan  mengekstraksinya.  Posisi byte yang  menyimpan  bit  pesan  dapat diketahui  dari  bilangan  acak  yang dibangkitkan  oleh  PNRG.  Jika  kunci yang  digunakan  pada  waktu  ekstraksi sama  dengan  kunci  pada  waktu penyisipan,  maka  bilangan  acak  yang dibangkitkan  juga  sama.  Bit-bit  data rahasia  yang  bertaburan  di  dalam  citra dapat  dikumpulkan  kembali.  Berikut  ini langkah-langkah menyisipkan data dengan metode LSB : 1. Mengubah  setiap pixel gambar  asli menjadi raster data .
2. Mengubah  pesan  rahasia  (bertipe karakter) menjadi bit-bit
3. Mengganti  setiap  bit  rendah  dan  bit pesan.
Jika  bit  rendah  =  bit  pesan,  maka raster  data tidak  berubah.  Jika  bit rendah  lebih  kecil  dari  (<)  bit  pesan, maka raster data ditambah 1. Dan jika bit  rendah  lebih  besar  dari  (>)  bit pesan, maka raster data dikurang 1.
4. Menulis pixel yang baru sesuai dengan raster data .
Use Case Diagram Gambar 1 menggambarkan interak- si antara pengguna dan aplikasi. Pada use case tersebut  terdapat  satu  aktor  yaitu pengguna  dan  kegiatan  yang  dapat  dila- kukan pengguna yaitu melakukan enkrip- si dan penyisipan ( encoding ), melakukan ekstraksi  ( decoding )  dan  dekripsi,  dan mencari bilangan prima.

## Skenario Uji Coba Enkripsi
Tabel  1  merupakan  tabel  uji  coba enkripsi  dengan  menggunakan  bilangan prima antara 1-10 yaitu bilangan prima 3, 7 dan 5 dan bilangan prima antara 11-20 yaitu bilangan prima 13,19 dan 17.
Pada  Tabel  1  terlihat  bahwa  pan- jang  karakter  setelah  enkripsi  lebih
panjang  dari  panjang  karakter  sebelum enkripsi.  Perbedaan  panjang  karakter  ini berpengaruh  terhadap  ukuran  file  setelah dienkripsi.  Semakin  panjang  karakter yang  dihasilkan  maka  ukuran  file  juga akan  semakin  besar.  Panjang  karakter yang  dihasilkan  dipengaruhi  oleh key yang digunakan. Semakin besar key yang digunakan, maka semakin panjang karak- ter  yang  akan  dihasilkan.  Satu  karakter yang  dihasilkan  setelah  enkripsi  sama dengan 1 bytes. Hasil enkripsi untuk kata “RAHASIA.”  dengan key 3,  7  dan  5 menghasilkan  44  karakter  sehingga ukuran  file  yang  dihasilkan  sebesar  44 bytes.  Begitu  juga  untuk  kalimat  dan paragraf  ukuran  file  yang  dihasilkan sesuai  dengan  panjang  karakter  yang dihasilkan setelah enkripsi.
Gambar 1. Use Case Diagram
Tabel 1. Uji Coba Enkripsi dengan Bilangan Prima antara 1-10
Tabel 2. Uji Coba Enkripsi dengan Bilangan Prima antara 11-20
Dengan melakukan uji coba dengan file  yang  sama  seperti  pada  Tabel  1 dengan  menggunakan key yang  lebih besar  maka  ukuran  file  hasil  enkripsi menjadi  lebih  besar  seperti  yang  terlihat pada  Tabel  2.  Hal  ini  dikarenakan panjang karakter yang dihasilkan menjadi lebih  panjang  dengan  menggunakan key yang  lebih  besar.  Satu  karakter  yang dihasilkan  setelah  enkripsi  sama  dengan 1  bytes.  Hasil  enkripsi  untuk  kata “RAHASIA.”  dengan  menggunakan key 13,  19  dan  17  menghasilkan  51  karakter sehingga  ukuran  file  yang  dihasilkan sebesar  51  bytes.  Begitu  juga  untuk kalimat  dan  paragraf  ukuran  file  yang dihasilkan sesuai dengan panjang karakter yang dihasilkan setelah enkripsi. Perbedaan key yang  digunakan mempengaruhi  panjang  karakter  yang dihasilkan  setelah  dienkripsi.  Semakin besar key yang  digunakan  maka  akan semakin  besar  panjang  karakter  yang dihasilkan setelah dienkripsi. Satu karak- ter yang dihasilkan sama dengan 1 bytes sehingga  semakin  banyak  karakter  yang dihasilkan  maka  ukuran  file  akan  sema- kin  besar.  Semakin  besar key yang
digunakan  maka  karakter  enkripsi  yang dihasilkan  akan  semakin  banyak  dan ukuran file yang dihasilkan akan semakin besar.

## Skenario Uji Coba Dekripsi
Berikut  ini  adalah  tabel  uji  coba Dekripsi  dengan  menggunakan  bilangan prima antara 1-10 yaitu bilangan prima 3, 7 dan 5 dan bilangan prima antara 11-20 yaitu bilangan prima 13,19 dan 17.
Sama  halnya  dengan  setelah  dien- kripsi  ukuran  file  setelah  didekripsi  juga bergantung  pada  panjang  karakter  yang dihasilkan. Satu karakter yang dihasilkan sama dengan 1 bytes. Ukuran file setelah didekripsi  akan  menjadi  lebih  kecil karena  panjang  karakter  yang  dihasilkan lebih  sedikit.  Panjang  karakter  setelah dienkripsi  akan  menjadi  lebih  banyak sehingga setelah didekripsi akan kembali seperti  semula  (lebih  sedikit).  Pada  tabel 3  hasil  dekripsi  yang  dihasilkan  berupa kata  “RAHASIA.”  memiliki  panjang karakter  8  sehingga  ukuran  file  yang dihasilkan  8  bytes.  Begitu  juga  untuk kalimat dan paragraf.
Tabel 3. Uji Coba Dekripsi dengan Bilangan Prima antara 1-10
Tabel 4. Uji Coba Dekripsi dengan Bilangan Prima antara 11-20
Sama  halnya  dengan  setelah dienkripsi  ukuran  file  bergantung  pada panjang  karakter  yang  dihasilkan.  Satu karakter  yang  dihasilkan  sama  dengan  1 bytes. Ukuran file setelah didekripsi akan menjadi  lebih  kecil  karena  panjang karakter  yang  dihasilkan  lebih  sedikit. Panjang  karakter  setelah  dienkripsi  akan menjadi  lebih  banyak  sehingga  setelah didekripsi  akan  kembali  seperti  semula (lebih sedikit). Pada tabel 4 hasil dekripsi
yang dihasilkan berupa kata “RAHASIA.” memiliki  panjang  karakter  8  sehingga ukuran  file  yang  dihasilkan  8  bytes. Begitu juga untuk kalimat dan paragraf.
Skenario  Uji  Coba Encoding dan

## Decoding
Berikut  ini  adalah  tabel  uji  coba Encoding dan Decoding dengan
menggunakan  gambar  dengan  tipe  yang berbeda yaitu *.bmp, *.jpg dan *.png.
Tabel 5. Uji Coba Encoding
Pada  Tabel  5  penyisipan  file  do- kumen  dengan  menggunakan  gambar dengan  format  *.bmp  lebih  baik  diban- dingkan  dengan  menggunakan  gambar dengan  format  *.jpg  dan  *.png.  Hal  ini dapat dilihat dari kualitas ukuran gambar yang dihasilkan setelah melakukan enco- ding atau penyisipan. Pada saat menggu- nakan  gambar  dengan  format  *.bmp ukuran  gambar  asli  atau cover sama dengan  gambar  yang  telah  disisipi  atau stego .  Hal  ini  dikarenakan  gambar dengan  format  *.bmp  terdiri  dari pixel yang  berdiri  sendiri  dan  mempunyai warna  sendiri.  Berdasarkan  hal  tersebut penggunaan  gambar  dengan  format *.bmp  lebih  baik  untuk  melakukan encoding atau  penyisipan  karena  ukuran gambar  asli  dengan  gambar  yang  telah disisipi  sama  sehingga  tidak  menimbul- kan  kecurigaan.  Pada  saat  menggunakan
gambar  dengan  format  *.jpg  terjadi penurunan  ukuran  gambar  yang  telah disisipi.  Hal  ini  dikarenakan  gambar dengan format *.jpg menggunakan teknik kompresi yang menghilangkan data. Pada saat menggunakan gambar dengan format *.png  terjadi  kenaikan  ukuran  gambar yang  telah  disisipi.  Hal  ini  dikarenakan gambar  dengan  format  *.png  menggu- nakan  kompresi powerfull berbeda dengan gambar dengan format *.jpg yang menghilangkan  data  sehingga  ukuran gambar  yang  telah  disisipi  merupakan ukuran  gambar  asli  ditambah  dengan ukuran  file  dokumen  yang  disisipi. Penggunaan gambar dengan format *.jpg dan *.png dapat menimbulkan kecurigaan karena  terjadi  perubahan  ukuran  gambar setelah  dilakukan encoding atau  penyi- sipan.
Tabel 6. Uji Coba Decoding
Pada  Tabel  6 decoding atau ekstraksi file dokumen dari gambar yang telah disisipkan sebelumnya terlihat bah- wa  untuk  gambar  dengan  format  *.bmp dan  *.png  berhasil  diekstraksi.  Ukuran file  dokumen  sebelum  disisipkan  dan setelah diekstraksi memiliki ukuran yang sama untuk gambar dengan format *.bmp dan *.png. Untuk gambar dengan format *.jpg  ukuran  file  dokumen  sebelum disisipkan  berbeda  dengan  ukuran  file dokumen  setelah  diekstraksi  bahkan ukuran  file  dokumen  berubah  menjadi  0 bytes  yang  berarti  tidak  terdapat  teks ataupun  karakter  di  dalam  file  dokumen yang  telah  di  ekstraksi  tersebut.  Hal  ini menandakan  bahwa  file  dokumen  gagal di encoding atau  disisipkan  yang dikarenakan  file  gambar  dengan  format *.jpg  merupakan  gambar  dengan  teknik kompresi yang menghilangkan data.

## SIMPULAN DAN SARAN
Dari  hasil  uji  coba  aplikasi  yang telah  dilakukan  dapat  dilihat  bahwa proses enkrispi dan penyisipan ( encoding ) dapat berjalan dengan baik pada file teks maupun  dokumen.  Pada  proses  ekstraksi ( decoding )  dan  dekripsi,  aplikasi  juga dapat berjalan dengan baik. Dari skenario uji  coba  enkripsi  dan  dekripsi  dapat dilihat  bahwa  jumlah  karakter  hasil enkripsi  lebih  banyak  dari  karakter  yang dienkripsi. Ukuran file setelah dienkripsi lebih  besar  dari  sebelum  dilakukan
enkripsi  dan  ukuran  file  setelah  dekripsi lebih  kecil  dari  sebelum  dilakukan dekripsi.  Semakin  besar  bilangan  prima yang  digunakan  untuk  enkripsi  maka semakin  banyak  karakter  hasil  enkripsi yang  dihasilkan.  Pada  skenario  uji  coba encoding dan decoding tidak  terjadi perubahan  ukuran  pada  gambar  dengan format  *.bmp  yang  disisipi  baik  setelah dilakukan encoding maupun decoding . Sehingga  penggunaan  gambar  dengan format *.bmp dapat dikatakan lebih baik. Aplikasi  ini  masih  dapat  dikem- bangkan kembali. Pengembangan aplika- si selanjutnya diharapkan terdapat banyak pilihan  algoritma  untuk  kriptografi  dan banyak  pilihan  metode  untuk  stegano- grafi  agar  pengguna  dapat  memilih algoritma  dan  metode  sesuai  dengan keinginan. User interface dari aplikasi ini juga  masih  terlihat  polos  sehingga  diha- rapkan  untuk  pengembangan  selanjutnya agar  dapat  dibuat user  interface yang lebih menarik.

## DAFTAR PUSTAKA
[1] Ariyus,D.  2008.  Pengantar  Ilmu Kriptografi  Teori  Analisis  dan Implementasi. Yogyakarta: Andi.
[2] Basuki,  R.S.,  Maranggani,  E.N., 2011.  Embeding  Pesan  Rahasia Dalam  Suatu  Gambar  Dengan Metode  Least  Significant  Bit Insertion  (LSB).  Seminar  Nasional Teknologi Informasi & Komunikasi
Terapan 2011/Semantik 2011. ISBN 979 [3] Munir,  R.  2006.  Kriptografi. Bandung : Informatika [4] Binanto,  I.  2010.  Multimedia Digital Dasar Teori dan Pengembangannya. Yogyakarta: Andi. [5] Booch,  G.  1999.  Visual  Modeling With  Rational  Rose  2000  And UML. Addison Wesley. [6] Jogiyanto.  2005.  Analisis  dan Desain Sistem Informasi. Yogyakarta: Andi. [7] Solution, C. Cara Mudah Menguasai  Microsoft  C#  2008. Yogyakarta. SmitDev.