TESIS
HERRI SIAGIAN
147038044
Pembimbing 2, Pembimbing 1,
Rahmat W Sembiring, SE., M.Sc. IT., Ph.D Prof. Dr. Muhammad Zarlis, M.Sc
Diketahui/disetujui oleh
Program Studi S2 Teknik Informatika
Ketua,
TESIS
Saya mengaku bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Herri Siagian
147038044
AKADEMIS
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan
dibawah ini:
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-
Ekslusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media,
memformat, mengelola dalam bentuk database, merawat dan mempublikasikan tesis
saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai
penulis dan sebagai pemegang dan/atau sebagai pemilik hak cipta.
Herri Siagian
NIM.147038044
DATA PRIBADI
DATA PENDIDIKAN
Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esaatas berkah,
rahmat dan karuniaNya berupa pengetahuan, kesehatan dan kesempatan yang
diberikan kepada penulis sehingga dapat menyelesaikan tesis dengan judul
“ANALISIS KINERJA KOMBINASI ALGORITMA TRANSPOSISI DAN RSA
DALAM PENGAMANAN DATA PADA STEGANOGRAFI”.
Dalam penyusunan untuk menyelesaikan tesis ini, penulis banyak mendapat pelajaran
yang besar, baik berupa saran maupun nasehat dari berbagai pihak terutama dari dosen
pembimbing serta dari dosen pembanding, sehingga pengerjaan tesis ini dapat
diselesaikan dengan baik. Untuk itu penulis ingin menyampaikan ucapan terima kasih
yang sebesar-besarnya kepada :
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum., selaku Rektor Universitas
Sumatera Utara atas kesempatan yang telah diberikan kepada penulis sehingga
bisa mengikuti dan menyelesaikan pendidikan Magister Teknik Informatika.
2. Bapak Prof. Dr. Opim Salim Sitompul, selaku Dekan Fakultas Ilmu Komputer
dan Teknologi Informasi Universitas Sumatera Utara Medan.
3. Bapak Prof. Dr. Muhammad Zarlis, M.Si., selaku Ketua Program Studi
Pascasarjana Teknik Informatika Fakultas Ilmu Komputer dan Teknologi
Informasi Universitas Sumatera Utara Medan.
4. Bapak Prof. Dr. Muhammad Zarlis, M.Si., Selaku Dosen Pembimbing I yang
telah bersedia memberikan bimbingan serta pengarahan hingga selesainya
penulisan tesis ini.
5. Bapak Rahmat Widia Sembiring, SE., M.Sc. IT., Ph.D Selaku Dosen
Pembimbing II yang telah bersedia memberikan bimbingan serta pengarahan
hingga selesainya penulisan tesis ini.
6. Bapak dan Ibu Dosen Pembanding/Penguji yang telah memberikan saran untuk
perbaikan dan penyelesaian tesis ini.
7. Bapak dan Ibu Dosen yang telah memberikan materi perkuliahan dan ilmu
pengetahuan selama penulis menyelesaikan Program Studi Pascasarjana Teknik
Informatika.
Akhir kata penulis berharap semoga karya ilmiah ini dapat bermanfaat bagi semua
pihak, khususnya dalam bidang pendidikan. Penulis menyadari bahwa masih ada
kekurangan dalam penulisan tesis ini, untuk itu, penulis mengharapkan kritik dan
saran dari pembaca demi kesempurnaan penelitian selanjutnya.
Herri Siagian
147038044
Halaman
PERSETUJUAN ......................................................................................................... II
PERNYATAAN..........................................................................................................III
PERNYATAAN PERSETUJUAN PUBLIKASI .................................................... IV
KARYA ILMIAH UNTUK KEPENTINGAN ........................................................ IV
AKADEMIS................................................................................................................ IV
DAFTAR RIWAYAT HIDUP .................................................................................. VI
UCAPAN TERIMA KASIH ................................................................................... VII
ABSTRAK .................................................................................................................. IX
ABSTRACT ................................................................................................................. X
DAFTAR TABEL ................................................................................................... XIV
DAFTAR GAMBAR ................................................................................................ XV
LAMPIRAN................................................................................................................ 56
PENDAHULUAN
Kriptografi telah digunakan sejak berabad-abad yang lalu dan dikenal dengan
istilah kriptografi klasik, kelemahan kriptografi klasik adalah mudah dipecahkan
dengan metode analis frekuensi (Robbi, H.W, 2010)hal ini disebabkan karena
keterbatasan kunci yang sedikit yaitu 26 kunci, salah satu teknik kriptografi klasik
adalah algoritma Transposisi Cipher.
Perkembangan teknologi yang pesat membuat algoritma kriptografi terus
berkembang, dipandang dari kunci, algoritma kriptografi terbagi menjadi 2 yaitu
simetri dan asimetri, dimana simetri menggunakan kunci tunggal dan asimetri
menggunakan dua buah kunci, yaitu kunci publik dan kunci private, salah satu teknik
kriptografi yang menggunakan metode asimetri adalah RSA, “kekuatan algoritma
RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor-
faktor prima” (Maureen, L.C, 2011).
Teknik menjaga kerahasiaan pesan tidak hanya menggunakan kriptografi,
tetapi dapat juga menggunakan teknik penyembuniyan pesan yaitu steganografi.
Steganografi adalah seni dan ilmu untuk menyembunyikan pesan rahasia didalam
pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui. Saat ini
implementasi steganografi telah menggunakan media digital sebagai media
penyembunyi pesan seperti gambar, audio, dsb. Pada gambar, steganografi membuat
pesan yang disembunyikan menjadi tidak tampak dan pihak lain tidak akan menyadari
keberadaan informasi yang ada didalam gambar tersebut sehingga pihak lain akan
memiliki persepsi bahwa gambar yang telah disisipkan pesan tadi adalah sama dengan
gambar aslinya. Kesamaan persepsitersebut sebatas kemampuan indera manusia
secara visual. Salah satu metode steganografi padagambar (citra digital) adalah Least
Significant Bit (LSB), dengan teknik penyembunyian pesan pada lokasi bit terendah
dalam citra digital. Pesan dikonversi kedalam bentuk bit biner dandisembunyikan
pada citra digital dengan metode LSB, metode ini akan mudah untuk dibongkar
melalui teknik pemecahan analisis frekuensi dengan membaca bit terendah jika tidak
dikombinasikan dengan metode kriptografi lainnya.
Beberapa penerapan system kriptografi RSA sebagai system pengamanan data
antara lain, meningkatkan keamanan informasi dalam pengaman kunci pada
kriptografi kunci public. Al-Anie et al menerapkan system enkripsi RSA pada proses
vote yang dilakukan untuk mencegah terjadinya penyadapan dan kecurangan (Al-Anie
et al., 2011), Rasool et al, menyadari bahwasanya dengan mengkombinasikan
Pengamanan dan penyembunyian data merupakan suatu hal yang sangat penting jika
data-data tersebut bersifat rahasia dan perlu dilindungi, maka diperlukan suatu
algoritma yang handal dan teruji keamanannya, oleh karena itupenulis mengambil
rumusan permasalahan bahwa diperlukannya analisis kinerja kombinasi algoritma
RSA dan Transposisi untuk meningkatkan keamanan pesan pada steganografi.
TINJAUAN PUSTAKA
Sekarang ini data atau informasi merupakan suatu aset yang sangat berharga dan harus
dilinduingi, perkembangan teknologi komputer yang semakin canggih membuat data
dan informasi semakin cepat dipertukarkan tanpa dibatasi jarak dan waktu,
perkembangan ini tidak hanya memberikan dampak yang baik, tetapi memunculkan
masalah yang baru yaitu masalah keamanan data dan informasi yang dipertukarkan,
perkembangan teknologi ini juga membuka peluang bagi orang-orang yang tidak
berkepentingan ataupun yang tidak berhak terhadap data dan informasi yang tersebut,
keamanan biasanya digambarkan sebagai kebebasan dari bahaya atau sebagi kondisi
keselamatan (Harod F.Tipon).
Keamanan data dalam penggunaan komputer tidak hanya tergantung dari
sebuah teknologi, melainkan bagian dari prosedur atau suatu kebijakan keamanan
yang digunakan serta cerdas dalam pemilihan sumber daya manusia. Jika firewall dan
perangkat keamanan lainnya bisa dibobol oleh individu yang tidak memiliki hak,
maka peran utama dari kriptografi untuk mengamankan data atau dokumen dengan
menggunakan teknik enkripsi sehingga data atau dokumen tidak bisa terbaca. (Ariyus,
2006 : 3)
2.2 Kriptografi
Secara etimologi kata kriptografi (Cryptography) berasal dari bahasa Yunani, yaitu
kryptos yang artinya yang tersembunyi dan graphein yang artinya tulisan (Prayudi,
2005). Awal mulakriptografi dipahami sebagai ilmu tentang menyembunyikan pesan
(Sadikin, 2012), tetapi seiring perkembangan zaman hingga saat ini pengertian
kriptografi berkembang menjadi ilmu tentang teknik matematis yang digunakan untuk
menyelesaikan persoalan keamanan berupa privasi dan otentikasi (Diffie, 1976).
Ada beberapa istilah yang penting dalam kriptografi yang perlu diketahui,
yaitu (Munir, 2006:3) :
a. Pesan, Plainteks dan Cipherteks
Pesan (message) adalah data atau informasi yang dapat dibaca dan dimngerti
maknanya.Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas
(cleartext). Pesan yangdisandikan kebentuk lain disebut cipherteks (ciphertext)
atau kriptogram (cryptogram).
b. Pengirim dan penerima
Komunikasi data melibatkan pertukaran pesan antara 2 (dua) entitas. Pengirim
(sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima
(receiver) adalahentitas yang menerima pesan.
c. Enkripsi dan Dekripsi
Proses penyandian plainteks menjadi cipherteks disebut enkripsi (encription)
atau enchipering (standar nama menurut ISO 7498-2). Sedangkan proses
pengembalian cipherteks menjadi plainteks semula dinamakan dekripsi
(decryption) atau deciphering (standar nama menurut ISO 7498-2).
d. Cipher dan kunci
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering
dandeciphering, atau fungsi matematika yang digunakan untuk enkripsi dan
dekripsi.Beberpa cipher memerlukan algoritma yang berbeda untuk
enciphering dan deciphering.Kunci (key) adalah parameter yang digunakan
untuk transformasi enciphering dandeciphering. Kunci biasanya berupa string
atau deretan bilangan.
e. Sistem Kriptografi
Kriptografi membentuk sebuah sistem yang dinamakan kriptografi. Sistem
kriptogradi(cryptosystem) adalah kumpulan yang terdiri dari algoritma
kriptografi, semua plainteksdan cipherteks yang mungkin dan kunci. Didalm
sistem kriptografi, cipher hanyalahsalah satu komponen saja.
f. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan
selamaditransmisikan.
g. Kriptanalisis dan Kriptoloogi
Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang
berlawananyaitu kriptanalisis. Kriptanalisis (cryptanalisys) adalah ilmu dan
seni untuk memecahkancipherteks menjadi plainteks tanpa mengetahui kunci
yang digunakan. Pelakunya disebutkriptanalis. Kriptologi (cryptology) adalah
studi mengenai kriptografi dan kriptanalisis.
Algoritma berasal dari nama penulis buku Arab yang terkenal, yaitu Abu Ja'far
MuhammadIbnu Musa al-Khuwarizmi (al-Khuwarizmi dibaca oleh orang barat
sebagai algorism). Kataalgorism lambat laun berubah menjadi algorithm.
Defenisi terminologi algoritma adalah urutan langkah-langkah logis untuk
menyelesaikanmasalah yang disusun secara sistematis, sedangkan algoritma
kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan atau
informasi dari orang-orang yang tidakberhak atas pesan tersebut. Algoritma
kriptografi terdiri dari tiga fungsi dasar yaitu:(Ariyus, 2008)
1. Enkripsi merupakan hal yang sangat penting dalam kriptografi, merupakan
pengamanandata yang dikirim agar terjaga kerahasiaanya. Pesan asli disebut
plaintext, yang diubahmenjadi kode-kode yang tidak dimengerti. Enkripsi bisa
diartikan dengan cipher ataukode, untuk mengubah teks asli ke bentuk teks
kode digunakan algoritma yang dapamengkodekan data.
2. Dekripsi merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi
dikembalikanke bentuk asalnya (teks asli/plaintext) disebut dengan dekripsi.
3. Kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi
menjadi duabagian yaitu kunci rahasia (private key) dan kunci umum (public
key)Pada umumnya algoritma kriptografi dapat dinotasikan sebagai berikut:
• Plaintext (M)
• Ciphertext (C)
• Enkripsi (Fungsi E)
• Dekripsi (Fungsi D)
Kriptografi itu sendiri terdiri dari dua proses utama, yakni proses enkripsi dan
proses dekripsi, seperti yang telah dijelaskan, proses enkripsi mengubah plaintext
menjadi ciphertext(dengan menggunakan kunci tertentu) sehingga isi informasi pada
pesan tersebut sukar untukdimengerti. Adapun alur dari proses enkripsi dan dekripsi
pada kriptografi dapat dilihat padagambar 2.1
E e (M) = C (2.1)
D d (C) = M (2.2)
2. Algoritma Asimetri
Algoritma Asimetri adalah algoritma menggunkaan kunci yang berbeda untuk
enkripsidan dekripsi, algoritma ini sering juga disebut sebagai algoritma kunci
publik, denganarti kata kunci yang digunakan untuk melakukan enkripsi dan
dekripsi berbeda. Adapunbeberapa algoritma yang menggunkaan kunci publik
adalah:
a. Digital Signature Algorithm (DSA)
b. RSA
c. Diffie-Hellman (DH)
3. Hash Function
Fungsi Hash sering disebut dengan fungsi Hash satu arah (one-way function),
algoritmafungsi hash akan mengubah pesan menjadi sederetan karakter acak
yang memiliki jumlahkarakter yang sama.
2.3 Steganorafi
Steganografi adalah seni dan ilmu menulis pesan tersembunyi atau menyembunyikan
pesandengan suatu cara sehingga selain pengirim dan peneria pesan, tidak ada
seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia.
Steganografi berasal dari bahasa Yunani, yaitu dari kata Stegos (Covered) yang berarti
tersebunyi dan Graptos (writing) yang berarti tulisan, dalam perang Dunia II, teknik
steganografi umum digunakan oleh tentara Jerman dalam mengirimkan pesan rahasia
dari atau menuju Jerman, (Morkel, dkk, 2005).
Teknik steganografi meliputi banyak sekali metode komunikasi untuk
menyembunyikan pesan yang dirahasiakan didalam berkas-berkas lain seperti berkas
teks, gambar, dan suara tanpa menunjukkan pesan yang dapat dilihat ataupun
dibedakan oleh pengelihatan manusia sehingga hal tersebut sesuai dengan tujuan dari
steganografi yaitu merahasiakan atau menyembunyikankeberadaan dari sebuah
informasi atau pesan yang dirahasiakan, penyembunyian data rahasia
kedalam media digital akan mengubah kualitas media tersebut, oleh karena itu
beberapa kriteria yang harus diperhatikan dalam penyembunyian pesan adalah sebagai
berikut:
a. Imperceptibility
Keberaadaan pesan rahasia tidak dapat dipersepsi oleh indra manusia,
misalnya jika mediapenampung berupa citra , maka penyisipan pesan membuat
stegotext sulit dibedakan oleh matadengan citra covertext-nya.
b. Fidelity
Mutu citra penampung tidak jauh berbeda dengan aslinya. Setelah penambahan
data rahasia,citra hasil steganografi masih terlihat dengan baik. Pengamat tidak
mengetahui kalau didalamcitra tersebut terdapat data rahasia.
c. Recovery
Data yang disembunyikan harus dapat diungkapkan kembali (recover), karena
tujuan steganografi adalah penyembunyian data, maka data rahasia didalam
citra penampung harusdapat diambil kembali untuk digunakan lebih lanjut.
yang paling kanan (LSB)pada data pixel yang menyusun gambar tersebut.
Bit atau binary digit adalah unit dasar penyimpanan data didalam komputer, nilai bit
suatudata adalah 0 dan 1, semua data yang ada pada komputer akan disimpan kedalam
satuan bit.Pengubahan LSB pada citra yang tidak terkompresi sangat sulit untuk
diketahui secara kasat mata,sehingga metode ini sangat banyak digunakan, metode ini
memanfaatkan ketidak mampuan matamanusia dalam menemukan perbedaan antara
citra asli dan citra yang sudah disisipkan pesan, setiappiksel dalam citra digital
berukuran 1 sampai 3 byte, pada susunan bit didalam sebuah byte ( 1 byte= 8 bit), ada
bit yang paling kiri (Most Significat Bit) dan bit yang papling kanan (Least
SignificatBit), misalnya pada byte 11010010, maka bit yang paling kiri adalah 1 dan
bit yang paling kananadalah 0, dari kedua bit ini bit yang paling tepat untuk dilakukan
perubahan adalah bit yang palingkanan (LSB) hal ini disebabkan karena perubahan
tersebut hanya akan mengubah nilai byte tersebutsatu lebih tinggi atau satu lebih
rendah dari nilai semula, apabila byte tersebut menyatakan warnatertentu, maka
perubahan satu bit LSB tidak akan mengubah warna tersebut secara berarti, selainitu,
indera pengelihatan manusia tidak dapat membedakan perubahan tersebut. Misalkan
pesan yangakan disembunyikan berupa teks “secret”, maka representasi pesan “secret”
dalam binary adalahsebagai berikut:
Maka hasil dari penyisipan binary pesan kedalam media adalah sebagai
berikut:
Tabel 2.3Hasil Penyisipan Pesan
00000000 00000000 00000001 00000001 00000001 00000001 00000001 00000001
1 2 3 4 5 6
3 5 1 6 4 2
6 kunci permutasi
1 2 3 4 5 6
3 6 1 5 2 4
6 kunci inversi
Dengan 6 kunci permutasi dan inversi akan dikalukan enkripsi terhadap teks
berikut : “SAYASENANG BELAJAR KEMANAN KOMPUTER”, maka terlebih
dahulu kalimat tersebut dibagimenjadi 6 blok dan apabila terjadi kekurangan dari blok
akan ditambahkan dengan huruf yangditentukan, pada contoh ini akan ditambahkan
dengan huruf “X”, dengan demikian akanmenhasilkan kalimat blok-blok kata sebagai
berikut : “SAYASE DANGBE LAJARK EAMANANKOMPU TERXXX”, maka
dengan kunci permutasi akan diperoleh cipher teks sebagai berikut:“YSSEAA
NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE” untuk mengembalikan keplain
teks, dilakukan dengan kunci inversi yang sudah dibuat.
Ada beberapa teknik permutasi padaalgoritma transposisi yaitu:
a. Zig-zag
Metode Zig-Zag akan memasukkan plain teks dengan pola yang zig-zag
seperti contohberikut ini:
Teks pesan asli :
TENTUKAN PRIORITAS ANDA.
Algoritma : 5 baris
Proses :
T – – – – – – – P – – – – – – – S – – – –
– E – – – – – N – R – – – – – A – A – – –
– – N – – – A – – – I – – – T – – – N – –
– – – T – K – – – – – O – I – – – – – D –
– – – – U – – – – – – – R – – – – – – – A
b. Segitiga
Metode Segitiga akan memasukkan plain teks dengan pola segitiga dan dibaca
secarakolom, berikut adalah contoh metode segitiga.
Teks pesan asli:
“SAYA BELAJAR KEAMANAN DATA”
Proses
S
AYA
BELAJ
RKEAMAN
ANDATAXXX
Ciphertext : “ARNBKDAEEASYLATAAMAJAXNXX”
c. Sprial
Metode Spiral akan memasukkan plain teks secara sprial atau melingkar dan
dibacasecara kolom, berikut adalah contoh metode Spiral.
Teks pesan asli:
“SAYA SEDANG BELAJAR KEAMANAN DATA”
Proses
S AY A S E
A M A N AD
E X X X NA
K X X X DN
R X A T AG
A J A L E B
d. Diagonal
Metode diagonal akan memasukkan plain teks menggunakan pola diagonal
atau scarakolom, berikut adalah contoh metode Diagonal.
Teks pesan asli:
“SAYA BELAJAR KEAMANAN DATA”
Proses
SDLEN
AAAAD
YNJMA
AGAAT
SBRNA
EEKAX
Algoritma Rivest Shamir Adleman dibuat oleh 3 (tiga) orang peniliti dari
MIT(Massachussets Institute of Technology) pada tahun 1976, yaitu Ron (R)ivest,
Adi (S)hamir, dan Leonard (A)dleman. Kemanan algoritma Rivest Shamir Adleman
terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima.
Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan
besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka
selama itu pula keamanan algoritma Rivest Shamir Adleman tertap terjamin (Munir,
2006 : 179).
Algoritma rivest Shamir Adleman memliki besaran-besaran sebagai berikut :
1. p dan q bilangan prima (rahasia)
2. n = p . q (tidak rahasia)
3. ( ɸ n) = (p – 1) . (q – 1) (rahasia)
4. e (kunci enkripsi) (tidak rahasia)
5. d (kunci dekripsi) (rahasia)
6. m (plainteks) (rahasia)
7. c (cipherteks) (tidak rahasia)
RSA adalah suatu blok sandi rahasia tempat teks asli dan teks rahasia
merupakan bilanganbulat antara 0 dan n-1 untuk beberapa n. Enkripsi dan dekripsi
berasal dari beberapa bentuk berikutini, untuk beberapa blok teks asli M dan blok teks
rahasia C.
C = M' mod n
C = C d mod n = (M e ) d mod n = M ed mod n
Blok pengirim maupun penerima harus mengetahui nilai n dan e, dan hanya
penerima saja yang mengetahui nilai d, ini merupakan algoritma enkripsi kunci umum
dengan kunci umumsebesar KU = {e,n} dan kunci khusus sebesar KR = {d,n}, agar
algoritma ini bisa memenuhi syaratsebagai enkripsi kunci umum yang baik, maka
harus memenuhi ketentuan-ketentuan seperti berikut:
1. Kemungkinan menemukan nilai e, d, n sedemikian rupa sehingga M ed = M
mod n untuksemua M < n
1. Memilih dua bilangan prima p dan q, bilangan ini harus cukup besar (minimal
100 digit)
2. Menghitung n = p . q, Bilangan n disebut parameter security (sebaliknya≠ pq,
sebab jika p = q maka n = p2 sehingga dapat diperoleh dengan menarik akar
pangkat dua dari n)
3. Menghitung ɸ (n) = (p-1)(q-1)
4. Memilih bilangan bulat e dengan algoritma Euclid yaitu gcd(ɸ(n),e) = 1; dimana
1 < e < ɸ(n)
5. Menghitung d dengan rumus d = e-1 mod ɸ(n)
Atau e . d ≡ 1 (mod ɸ (n)).
Perhatikan bahwa e . ≡
d 1 (mod ɸ(n)) ekivalen dengan e . d = 1 + k ɸ(n),
sehingga secara sederhana d dapat dihitung dengan: d = (1+k . ɸ(n)) / e
6. Kunci umum (kunci publik) adalah KU = {e,n}
7. Kunci pribadi (kunci privat) adalah KR = {d,n}.
8. n tidak bersifat rahasia, sebab n diperlukan pada perhitungan enkripsi/dekripsi
2.6.2 Enkripsi
Seseorang (sebut A) mengenkripsi pesan M untuk seseorang (sebut B), maka yang
harusdilakukan oleh orang pertama adalah:
1. Teks asli dengan syarat M < n
2. Ambil Kunci public B yang otentik (n,e)
3. Tampilkan pesan sebagai integer M dalam interval [0, n-1]
4. Teks rahasia didapat dari C = M e (mod n)
5. Kirim C ke B
2.6.3 Dekripsi
Pada penelitian ini, penulis merujuk pada beberapa penelitian yang telah dilakukan
oleh banyak peneliti yang berkaitan dengan penelitian yang penulis buat. Beberapa
penelitian yang berkaitan yang telah dilakukan oleh peneliti lain ditunjukkan pada
tabel 2.4 berikut ini:
Dalam beberapa penelitian yang telah ditampilkan pada tabel 2.4 terdapat beberapa
perbedaan dengan penelitian yang dilakukan oleh penulis kali ini. Pada penelitian
yang ditampilkan pada tabel 2.4, konsep pengamanan data dilakukan dengan suatu
algoritma kriptografi tertentu ataupun menggunakan teknik steganografi tertentu.
Sedangkan penelitian yang dilakukan penulis kali ini menitikberatkan pada
pengkombinasian dua buah algortima kriptografi RSA dan Transposisi dan melakukan
implementasi pada steganografi.
Penelitian ini memberikan kontribusi pemahaman tentang aspek keamanan data pada
steganografi, apalagi data yang dikirimkan bersifat rahasia, pengkombinasian
algoritma RSA dan Transposisi diharapkan dapat meningkatkan kerahasiaan data yang
dapat digunakan dimanapun.
METODOLOGI PENELITIAN
3.1 Pendahuluan
Data yang digunakan dalam penelitian ini adalah data teks yang mendukung standard
ASCII dan gambar mengunakan format png atau jpg.
sehingga nantinya dari kombinasi ini akan menghasilkan algoritma yang baru yang
mempunyai tingkat kesulitan pengamanan dan penyembunyian data yang tinggi dalam
proses enkripsi maupun dekripsi.
Proses transposisi plain teks menjadi cipher teks memerlukan sebuah kunci, dimana
kunci terdiri dari karakter-karakter yang terdapat pada ASCII, dimana nantinya
kunciini yang akan membentuk urutan tranposisi, dengan demikian dapat disimpulkan
bahwa kunci akan menghasilkan cipher teks. Misalkan kita mempunyai kunci ‘teknik’
yang akan digunakan untuk melakukan transposisi, maka langkah pertama adalah
menentukan urutannya, yaitu:
Kunci t e k n i k
Index 0 1 2 3 4 5
Kunci e i k k n t
Index 1 4 2 5 3 0
Setelah urutan index kunci didapat, maka urutan ini nantinya akan digunakan
untuk melakukan enkripsi dan dekripsi pada plain teks, yaitu dengan membagi urutan
plain tekssesuai dengan panjang kunci, kemudian lakukan perubahan urutan dengan
menggunakan index yang telah di hasilkan sebelumnya, yaitu :
plain a b c d e f
Index 0 1 2 3 4 5
plain b e c f e a
Index 1 4 2 5 3 0
Demikian seterusnya sampai didapatkan plain teks yang baru (cipher teks)
yang akan dikombinasikan dengan RSA untuk melakukan pengamanan data. Adapun
flowchart dari pembentukan urutan ASCII dapat dilihat pada gambar 3.1 berikut:
Start
Input Kunci
End
Proses pembentukan kunci dari algoritma RSA ini memerlukan dua buah bilangan
prima, yaitu nilai p dan q beserta sebuah bilangan acak d, output dari tahapan
pembentukan kunci ini adalah:
1. Kunci private, yaitu nilai p, q, d dan n.
2. Kunci publik, yaitu nilai e dan n
Flowchart dari proses pembentukan kunci algoritma RSA dapat dilihat pada
gambar3.2 berikut:
Start
Tidak Input
Manual
apakah Tidak
prima?
Ya
Hitung nilai
n=p*q
Hitung nilai
ɸ (n) = (p-1)*(q-1)
Tidak Input
Manual e
Ya
Ambil nilai d secara acak Input
nilai e
Tidak
gcd(ɸ(n),e) = 1
Ya
Hitung invers modulo
d = e-1 (mod ɸ(n))
Kunci Privat
Kunci Public
End
4. Pilih nilai e sedemikian sehingga relative prima terhadap Φ(n) = 160 dan kurang
dari Φ(n), misalkan pilih nilai e = 7
5. Hitung nilai d sehingga de≡1(mod 160) dan d< 160.
Nilai yang didapatkan d = 23, karena 23 x 7 = 161 = (1 x 160) + 1
6. Kunci Publik (e, n) = { 7, 187}, Kunci Privat (d, n) = {23, 187}
Flowchart dari proses enkripsi algoritma RSA dapat dilihat pada gambar
3.3berikut :
Start
Input
Plain teks
Tidak
n >= m
Ya
e
Ci = mi mod n
Cipher teks
End
Proses dekripsi pada algoritma RSA memerlukan kunci privat. Kunci privat
hanya diketahui oleh orang yang berhak atas informasi tersebut. Adapun flowchart
dari proses deskripsi pada algoritma RSA dapat dilihat pada gambar 3.4 berikut:
Start
Cipher teks
d
mi = ci mod n
m = mi+ mi+1
m -> ASCII
Plain teks
End
Prinsip dasar yang digunakan didalam penyisipan teknik steganografi LSB yaitu
menyisipkan bit-bit pesan dengan mengganti bit pada media yang digunakan dengan
bit pesan yang akan disisipkan. Teknik penyembunyian pesan yang akan digunakan
adalah teknik penyembunyian sekuensial (berurutan) yang berarti pesan rahasia
disisipkan secara berurutan dari data titik pertama yang ditemukan pada file gambar.
Penyisipan dilakukan dari indeks[0,0], dari kiri ke kanan, baris per baris, sepanjang
bit-bit pesan yang disembunyikan .
Algoritma penyisipan LSB sekuensial adalah sebagai berikut:
nilai bit pesan yang disisipkan. Algoritma proses ekstraksi pesan adalah sebagai
berikut:
Start
cp2 = RSA(cp1)
cp3 = transposisi(cp2)
Cipher cp3
End
1. Berikan sebuah kunci dan plain teks, dimana kunci ini nantinya akan digunakan
sebagai pembentuk permutasi pada algoritma transposisi.
2. Lakukan enkripsi pada plain teksdengan Transposisi (ch1).
3. Berikan / Bangkitkan kunci publik dan private algoritma RSA.
4. Lakukan enkripsi cp1 dengan RSA (cp2).
5. Lakukan enkripsi cp2 dengan Tranposisi (cp3).
6. Dihasilkan cipher teks hasil kombinasi algoritma.
Dari hasil penggabungan algoritma akan dihasilkan cipherteks yang lebih kuat,
hal ini didasarkan dari cipherteks yang dihasilkan menjadi lebih acak hal ini
dikarenakan terdapat penambahan lapisan keamanan, sehingga cryptanalis perlu
mememecahkan kunci transposisi terlebih dahulu.
Start
stego = cover(cipher)
End
Pertama sekali kunci transposisi, kunci RSA dan teks diberikan, kemudian
dilakukan enkripsi dengan algoritma kombinasi, hasil cipher dari algoritma kombinasi
disisipkan kedalam sebuah gambar dan dihasilkan sebuah gambar stego yang mirip
dengan gambar aslinya (cover).
Proses dari penyembunyian pesan yang telah dienkripsi adalah sebagai berikut:
1. Misalkan plainteks = ‘belajar algoritma ok’
2. Kunci transposisi = ‘teknik’
Kunci publik = {7, 23}, kunci private = {23, 187}
3. Coverimage adalah gambar berekstensi .jpg dengan resolusi 435 x 320
4. Hasil gambar sebelum dan sesudah penyembunyian pesan.
cover image
Stego image
4.1 Pengantar
Pada bab ini akan dibahas mengenai hasil-hasil yang diperoleh dalam penelitian ini
terhadap beberapa file teks dengan ukuran yang berbeda, dimana nantinya akan ditraik
suatu kesimpulan dari hasil penelitian ini, apakah sebuah file teks yang berukuran
besar dapat dienkripsikan dengan skema algoritma kombinasi yang hasilnya akan
disembunyikan dalam sebuah gambar dengan metode LSB.
Penelitian ini merupakan model dari kombinasi algoritma Transposisi dan
RSA, algoritma Transposisi akan menggunakan sebuah kunci, dimana kunci ini akan
menentukan pola transposisi yang akan dilakukan pada pesan, algoritma RSA yang
digunakan adalah RSA dengan panjang kunci 8 bit. Algoritma Transposisi digunakan
untuk pengamanan lapis ke-1 yang menghasilkan ciphertext1, kemudian pada
pengamanan lapis ke-2 ciphertext1 dienkripsikan dengan RSA dan menghasilkan
ciphertext2, kemudian pada pengamanan lapis ke-3 ciphertext2 dienkripsikan kembali
dengan Transposisi yang akan menghasilkan ciphertext3, hasil akhir dari ciphertext3
akan disajikan dalam format hexadesimal yang akan disisipkan dalam sebuah gambar
dengan algoritma LSB. Untuk melakukan implementasi dari penelitian ini, maka
penulis perlu melakukan analisis dan uji coba.
4.2 Simulasi
Program yang dibangun untuk mendukung penelitian ini menggunakan Python 3 yang
berjalan pada sistem operasi windows 10, program yang dibangun berbasis command
line, adapun tampilan program uji coba ini ditunjukkan pada gambar 4.1. Gambar 4.1
Percobaan pertama akan dilakukan proses enkripsi terhadap pesan yang terdapat
dalam file teks dengan algoritma Transposisi. Pesan yang akan dienkripsi adalah
“selamat belajar algoritma pemrograman” yang disimpan dalam file “pesan1.txt”
dan kuncinya adalah “magister usu” yang disimpan dalam file “trans_key.txt”
Hasil dari enkripsi teks “selamat belajar algoritma pemrograman” dengan kunci
“magister usu”adalah :aeam bltse aarlgjalo imaemtprrograman
Dari kunci transposisi akan dihasilkan pola enkripsi dan inversi dengan cara
sebagai berikut:
Index plain 0 1 2 3 4 5 6 7 8 9
Plain teks s e l a m a t b e
Pola Enkripsi 8 1 6 2 3 0 7 4 5 9
Hasil a e a m b l t s e
Pola Enkripsi 8 1 6 2 3 0 7 4 5 9
Index plain 0 1 2 3 4 5 6 7 8 9
Plain teks l a j a r a l g o
Hasil a a r l g j a l o
Pola Enkripsi 8 1 6 2 3 0 7 4 5 9
Index plain 0 1 2 3 4 5 6 7 8 9
Plain teks r i t m a p e m r
hasil i m a e m t p r r o
Pola Enkripsi 8 1 6 2 3 0 7 4 5 9
Index plain 0 1 2 3 4 5 6 7 8 9
Plain teks o g r a m a n
Hasil o g r a m a n
Pengamanan lapis – 2
Pengamanan Lapis-3
Penyembunyian Pesan
Hasil dari enkripsi kombinasi algoritma akan disisipkan kedalam sebuah file gambar,
metode yang penulis gunakan adalah LSB (Least Significant Bit) dengan pesan yang
telah dienkripsikan terlebih dahulu diharapkan akan dapat melindungi kerahasiaan
pesan dari pihak yang tidak berkepentingan.
File gambar asli sebelum ciphertext3 disisipkan adalah cover1.jpg yang
nantinya setelah proses penyisipkan pesan akan kita simpan dengan nama cover1-
stego.png.
Untuk melakukan dekripsi pesan, terlebih dahulu dilakukan ekstrak pesan dari stego
image (cover1-stego.png), hasil ekstrak akan kita beri nama cipher1.txt
Hasil dari proses ektrak teks (ciphertex1) dari gambar cover1-stego.png adalah:
“3237315f36345f3933392c363736393634322c34362c31332c323231393531362c323
6303932322c3334382c32323738372c2c393036343734363236393232363239352c2c3
636393239392c2c3434333731362c37383034332c2c343038333137323236342c39362
c37323930343838373132352c2c373231393330342c2c3036323233312c36343639313
92c363736313334322c36322c38323132332c313331323333362c2c3036333731362c3
82c303133323337382c313030333436393236343231392c2c3336313239392c2c34363
132373631”
Pola dekripsi / inversi dihasilkan dari kunci enkripsi pada saat melakukan
enkripsi, yaitu:Pertama sekali lakukan ekstrak kunci, kemudian hasilkan kunci
enkripsi, dari kunci enkripsi yang dihasilkan, hasilkan kunci dekripsi / inversi.
Hasil dari cipher1-pl2 didekripsikan dengan RSA menggunakan kunci private yang
telah dihasilkan sebelumnya.
Hasil dari cipher1-pl3 didekripsikan dengan algoritma Transposisi dengan kunci yang
sama pada saat melakukan enkripsi.
Pengujian ini dilakukan untuk mendapatkan hasil data dari keseluruhan proses, baik
proses enkripsi dan dekripsi maupun proses penyisipan dan ekstrak pesan.
Membandingkan secara manual dan menentukan waktu dan tingkat keamanan yang
dibutuhkan dari keseluruhan proses enkripsi, dekripsi algoritma kombinasi dan
penyisipan maupun ekstrak pesan.
Pada penelitian ini telah dilakukan uji coba dengan menggunakan file teks,
tabel berikut menunjukkan proses yang telah dilakukan dengan menggunakan
beberapa plain text yang akan dienkripsi menggunakan algoritma Transposisi, RSA
dan steganografi dengan metode LSB, untuk kunci RSA akan menggunakan panjang 8
bit yang dihasilkan secara otomatis dan kunci Transposisi adalah ‘magister usu’,
‘teknik informatika’, dan ‘magister usu 2014’
7024,2780,1507 32382c3437302c37
4,2780 333337313934332c
2c343139332c3034
41
42
43
Pada gambar cover 1 disisipkan file sebesar 1kb dengan jumlah karakter asil
25, ukuran gambar asli adalah 425 x 320 pixel, hasil yang diperoleh adalah:
Gambar 4.14Cover 1
Hasil analisa titik red, green, blue pada gambar terdapat perubahan di rata-rata
0.5 blok LSB.
Hasil analisa titik red, green, blue pada gambar terdapat perubahan di rata-rata
0.5 blok LSB.
Pada gambar cover 3 disisipkan file sebesar 6kb dengan jumlah karakter asli
5214, pada percobaan ini penulis gagal melakukan penyisipan dengan ukuran gambar
asli 425 x 320 pixel, hal ini dikarenakan dimensi gambar lebih kecil dari file teks yang
akan disisipkan, oleh karena itu penulis menggunakan gambar yang berbeda, dimana
ukuran gambar asli adalah : 1530 x 997 pixel, dengan demikian hasil yang diperoleh
adalah:
Hasil analisa titik red, green, blue pada gambar terdapat perubahan di rata-rata 0.5
blok LSB.
dilakukan pengamanan kembali melalui lapis kedua RSA (ciphertext2), hasil dari
enkripsi lapis kedua di Transposisi kembali (ciphertext3), kemudian hasil kombinasi
disisipkan kedalam sebuah gambar, dengan demikian data yang disisipkan kedalam
sebuah gambar dapat lebih ditingkatkan keamanannya.
5.1 Kesimpulan
Kesimpulan yang dapat diambil dari penelitian ini adalah sebagai berikut :
1. Penerapan algoritma kombinasi ini lebih optimal pada teks yang tidak terlalu
panjang, hal ini dapat dilihat dari waktu yang dihasilkan pada saat melakukan
enkripsi dan dekripsi dimana semakin panjang teks yang akan dienkripsi ataupun
didekripsi maka semakin lama waktu yang dibutuhkan, dengan demikian
penerapan algoritma ini sangat cocok untuk mengamankan kunci dari algoritma
kriptografi lainnya ataupun pada pesan-pesan yang singkat.
2. Semakin panjang kunci transposisi akan semakin menyulitkan cryptanlis pada saat
melakukan dekripsi dari algoritma ini. Hal ini dikarenakan semakin banyak pola
enkripsi yang akan diuji jika cryptanalis melakukan serangan metode bruteforce.
3. Jumlah karakter hasil enkripsi yang semakin panjang akan semakin menyulitkan
cryptanalis dalam melakukan dekripsi dari pesan yang telah enkripsi sebelumnya.
4. Terdapat perbedaan bit RGB pada cover image dengan stego image di sekitar 0.5
rata-rata blokLSB.
5.2 Saran
Adapun saran yang diberikan pada penelitian ini adalah sebagai berikut:
1. Penelitian ini dapat dikembangan lagi dengan melakukuan transposisi pada kode
biner dari plaintext sehingga dapat lebih meningkatkan keamanan pada plaintext.
2. Pada penelitian selanjutnya dapat dilakukan enkripsi dari kunci transposisi,
sehingga dapat meningkatkan keamanan pada data.
3. Pada penelitian selanjutnya perlunya pembangkit kunci RSA dengan panjang lebih
dari 1024bit, hal ini akan semakin menyulitkan dalam melakukan serangan
terhadap algoritma ini.
4. Untuk meningkatkan keamanan serangan pada stego image yang dihasilkan, dapat
digunakan metode-metode penyembunyian data selain dari LSB.
Arifin, Zainal. 2009, Studi kasus penggunaan algoritma RSA sebagai algoritma
kriptografi yang aman, Informatika Mulawarman4(3):7-4
Rivest R.L., Shamir A., Adleman L. 1977. “A Method for Obtaining Digital
Signatures and Public-Key Cryptosystems”. MIT: Massachusetts.
Semuil, T & Marvin, C.W, 2009. Seminar Nasional Aplikasi Tenkonolgi Informasi
2009 (SNATI 2009): ISSN:1907-5022, Yogyakarta
Schneier, B. 1996. Applied Cryptography, 2nd Ed. John Wiley & Sons, Inc: Canda.
Supriyanto, Aji. 2009. Pemakaian kriptografi kunci publik untuk proses enkripsi dan
tandatangan digital pada dokumen e-mail. Dinamika Informatika1(1): 14:19.
Susanto Ajib, Trianto Rico. 2011. “Kombinasi Algoritma RSA dan Algoritma Cipher
Transposisi Untuk Keamanan Database”. Jurnal Dian Vol. 11
Wafiyya Hably Robbi, 2010. “Vigenere Bit Shif : Sebuah Paradigma Baru”. Jurnal
ITB
Source Transposisi.py
"""Doc here."""
# import os
import base64
import binascii
import re
defekstrak_key(key):
"""Doc here."""
raw_keys =list()
for ch in key:
if ch notin raw_keys:
raw_keys.append(ch)
return raw_keys
defkey_enkrip(key_ekstrak):
"""Doc here."""
index_keys =[]
key_ekstrak = ekstrak_key(key_ekstrak)
sort_keys =sorted(key_ekstrak)
for x in range(len(sort_keys)):
for y in range(len(key_ekstrak)):
if sort_keys[x]== key_ekstrak[y]:
index_keys.append(y)
break
return index_keys
defkey_dekrip(raw_key):
"""Doc here."""
index_keys =[]
enkrip_key = key_enkrip(raw_key)
for x in range(len(enkrip_key)):
for y in range(len(enkrip_key)):
if x == enkrip_key[y]:
index_keys.append(y)
break
return index_keys
defbagi_teks(index_key, teks):
"""Doc here."""
n =len(index_key)
split_teks =[teks[i:i + n]for i in range(0, len(teks), n)]
# return re.findall('.'*len(index_key),teks)
return split_teks
defto_binary(plainteks):
"""Doc here."""
plain=''
temp=''
for c in plainteks:
temp= bin(ord(c))[2:]
if len(temp)<8:
plain+=((8- len(temp))*'0')+ temp
else:
plain+= temp
temp=''
return plain
defsplit_bin(plain_bin):
"""Doc here."""
return[plain_bin[i:i +8]for i in range(0, len(plain_bin),8)]
defbin_to_int(plain_bin):
"""Doc here."""
n =0
for char in plain_bin:
n*=2
if char =='1':
n +=1
return n
deftransposisi(key_i, plainteks):
"""Doc here."""
tmp=[]
data_dict ={}
data=[]
# plainteks = bagi_teks(key_i, to_binary(plainteks))
plainteks= bagi_teks(key_i, plainteks)
for x in range(len(plainteks)):
if len(key_i)== len(plainteks[x]):
for y in range(len(plainteks[x])):
tmp.append((key_i[y], plainteks[x][y]))
data_dict =dict(tmp)
data.append(''.join([p for p in data_dict.values()]))
else:
data.append(plainteks[x])
data_dict.clear()
# data = split_bin(''.join(data))
# return ''.join([chr(bin_to_int(ch)) for ch in data])
return''.join(data)
deftrans(key_i, plainteks):
"""Doc here."""
tmp=[]
data_dict ={}
data=[]
plainteks= bagi_teks(key_i, to_binary(plainteks))
# plainteks = bagi_teks(key_i, plainteks)
for x in range(len(plainteks)):
if len(key_i)== len(plainteks[x]):
for y in range(len(plainteks[x])):
tmp.append((key_i[y], plainteks[x][y]))
data_dict =dict(tmp)
data.append(''.join([p for p in data_dict.values()]))
else:
data.append(plainteks[x])
data_dict.clear()
# data = [ch[::-1] for ch in split_bin(''.join(data[::-1]))][::-1]
return''.join(data)
defto_base64(text=[]):
"""Doc here."""
cp=[str(ch).encode('ascii')for ch in text]
cp=[base64.b64encode(ch)for ch in cp]
cp=[ch.decode('ascii')for ch in cp]
return cp
defbase64_to_ascii(text=[]):
"""Doc here."""
pl=[base64.b64decode(ch)for ch in text]
pl=[int(ch)for ch in pl]
return pl
defto_hex(text=[]):
"""Dokumentasi."""
cp=[str(ch).encode('ascii')for ch in text]
cp=''.join([binascii.hexlify(ch).decode('ascii')for ch in cp])
return str(cp)
defhex_to(text):
"""Dokumentasi."""
pl= re.findall('.{1,2}', text)
pl=''.join([binascii.unhexlify(ch).decode('ascii')for ch in pl])
return pl
Source RsaCipher.py