Kriptografi
description
Transcript of Kriptografi
KRIPTOGRAFI DENGAN MENGGUNAKAN ALGORITMA
SUBTITUSI KARAKTER
Ditujukan untuk memenuhi tugas matakuliah Keamanan Sistem Informasi
Program Studi Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
DENNY SANTOSO 10110645
FAKHRIZAL AHADIAT 10110655
FIRMAN
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2014
DAFTAR ISI
DAFTAR ISI......................................................................................................................................... i
DAFTAR GAMBAR........................................................................................................................... ii
DAFTAR TABEL............................................................................................................................... iii
1.1 Teori Kriptografi.................................................................................................................1
1.2 Macam – macam Algoritma Kriptografi...........................................................................1
1.2.1 Algoritma Simetri........................................................................................................2
1.2.2 Algoritma Asimetri......................................................................................................2
1.2.3 Fungsi Hash..................................................................................................................3
1.3 Kriptografi Klasik...............................................................................................................3
1.3.1 Teknik Subtitusi...........................................................................................................3
1.3.2 Teknik Transposisi.......................................................................................................5
2. Algoritma Kriptografi yang digunakan.....................................................................................6
2.1 Implementasi Kriptografi pada Program..........................................................................6
7. Hasil Deskripsi Algoritma Kelompok Lain..............................................................................10
Daftar Pustaka.................................................................................................................................... iv
i
DAFTAR GAMBAR
Gambar 1 Caesar Cipher....................................................................................................................3
Gambar 2 Karakter Plain teks [1]......................................................................................................4
Gambar 3 Karakter Cipher Teks menggunakan Kode Kaisar [1]..................................................4
Gambar 4 Contoh Kunci Permutasi Teknik Transposisi [1]............................................................5
Gambar 5 Contoh Kunci Inversi Permutasi [1]................................................................................5
ii
DAFTAR TABEL
Tabel 1 Cipher Text pada Huruf Vokal.............................................................................................6
Tabel 2 Cipher Text pada Huruf Konsonan......................................................................................7
iii
1. Pendahuluan
Informasi pada saat ini sangat diperlukan oleh para khalayak ramai karena informasi sudah
menjadi komoditi utama bagi berkembangnya suatu organisasi. Informasi yang sangat cepat
memberikan dampak pengaruh pada perusahaan terhadap pandangan dunia. Karena dengan sangat
pentingnya nilai sebuah informasi menyebabkan seringkali informasi jatuh ketangan yang salah
dapat menimbulkan kerugian bagi pemilik informasi.
Keamanan informasi saat ini sangat dibutuhkan karena keamanan sistem informasi menjadi
faktor penting yang perlu dipertimbangkan. Tujuan keamanan sistem informasi tersebut ialah
untuk mencegah terjadinya ancaman terhadap sistem serta untuk mendeteksi dan memperbaiki
kerusakan yang disebabkan oleh threat yang menyerang sistem. Ancaman terhadap sistem
informasi dapat dibagi menjadi dua macam yaitu ancaman yang aktif dan pasif. Ancaman aktif
mencakup kecurangan dan kejahatan terhadap dunia komputer, sedangkan ancaman pasif mecakup
kegagalan sistem, kesalahan manusia (Human Error), dan bencana alam.
1.1 Teori Kriptografi
Kriptografi berasal dari bahasa Yunani, cryto dan graphia. Crypto berarti secret (rahasia) dan
graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk
menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain.
Algoritma kriptografi memiliki tiga fungsi dasar, yaitu :
1. Enkripsi : merupakan hal yang sangat penting dalam kriptografi, merupakan pengamanan data
yang dikirimkan agar terjaga kerahasiaannya. Pesan yang berasal dari plaintext diubah
menjadi ciphertext. Enkripsi dapat disebut juga cipher atau kode. Sama halnya dengan
merubah teks biasa menjadi teks yang tidak dapat dimengerti pada saat dilihat.
2. Deskripsi : merupakan hal kebalikan dari enkripsi. Deskripsi ini mengembalikan keadaan teks
yang sudah berubah menjadi cipher teks menjadi plain teks atau teks biasa yang dapat kita
mengerti.
3. Key : kunci untuk melakukan enkripsi dan deskripsi atau keyword pada pesan yang akan
dienkripsi dan deskripsi. Kunci terdiri dari 2 bagian yaitu public key dan private key.
1.2 Macam – macam Algoritma Kriptografi
Algoritma Kriptografi dibagi menjadi tiga bagian berdasarkan kunci yang dipakainya, yaitu :
1. Algoritma Simetri (menggunakan satu kunci untuk enkripsi dan deskripsinya/kunci yang
digunakan sama).
2. Algoritma Asimetri (menggunakan kunci yang berbeda untuk enkripsi dan deskripsinya /
memakai kunci public lalu menggunakan kunci private)
1
3. Fungsi Hash (fungsi enkripsi satu arah). [1]
1.2.1 Algoritma Simetri
Algoritma ini sering disebut juga algoritma klasik karena memakai kunci yang sama untuk
kegiatan enkripsi dan deskripsinya. Algoritma ini sudah ada sejak lebih dari 4000 tahun yang lalu.
Bila mengirim pesan dengan menggunakan algoritma ini, si penerima pesan haru diberitahu kunci dari
pesan tersebut agar bisa mendeskripsikan pesan yang dikirim. Keamanan dari pesan yang
menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut diketahui oleh orang lain maka
orang tersebut akan dapat melakukan enkripsi dan deskripsi pesan. Algoritma yang memakai kunci
simetri ini ialah: [1]
1. Data Encryption Standard (DES).
2. RC2, RC4, RC5, RC6.
3. International Data Encryption Algorithm (IDEA).
4. Advanced Encryption Standard (AES).
5. One Time Pad (OTP).
6. A5, dan lain-lain.
1.2.2 Algoritma Asimetri
Algoritma asimetri sering juga disebut dengan algoritma kunci publik, dengan arti kata kunci
yang digunakan untuk melakukan enkripsi dan deskripsi berbeda. Pada algoritma asimetri kunci
terbagi menjadi dua bagian yaitu :
1. Kunci umum (Public Key) : Kunci yang boleh semua orang tahu.
2. Kunci rahasia (private key) : Kunci yang dirahasikan (hanya boleh diketahui oleh satu orang).
Kunci-kunci tersebut berhubungan satu sama lain. Dengan kunci publik orang dapat
mengenkripsi pesan tetapi tidak bisa mendeskripsinya. Hanya orang yang memiliki kunci rahasia yang
dapat mendeskripsi pesan tersebut. Algoritma asimetri bisa mengirimkan pesan dengan lebih aman
daripada algoritma simetri. [1]
Algoritma yang memakai kunci publik diantaranya adalah :
1. Digital Signature Algorithm (DSA).
2. RSA.
3. Diffie-Hellman (DH).
4. Elliptic Curve Cryptography (ECC).
5. Kriptografi Quantum, dan lain-lain.
2
1.2.3 Fungsi Hash
Fungsi Hash sering disebut juga dengan fungsi Hash satu arah (one-way function), message
client, fingeprint, fungsi kompresi dan message authentication code (MAC), merupakan suatu fungsi
matematika yang mengambil masukan panjang variabel dan mengubahnya kedalam urutan biner
dengan panjang yang tetap. Fungsi Hash biasanya diperlukan bila ingin membuat sidik jari dari suatu
pesan. Sidik jari pada pesan merupakan suatu tanda bahwa pesan tersebut benar-benar berasal dari
orang yang diinginkan. [1]
1.3 Kriptografi Klasik
Kriptografi klasik merupakan suatu algoritma yang menggunakan satu kunvi untuk
mengamankan data. Teknik ini sudah digunakan beberapa abad yang lalu. Dua teknik dasar yang
biasa digunakan pada algoritma jenis ini adalah sebagai berikut :
1. Teknik Subtitusi : Penggantian setiap karakter teks asli dengan karakter lain.
2. Teknik transposisi : dilakukan dengan menggunakan permutasi karakter.
1.3.1 Teknik Subtitusi
Subtitusi merupakan penggantian setiap karakter teks asli dengan karakter lain. Terdapat
empat istilah subtitusi kode, antara lain:
1. Monoalphabet : setiap karakter teks kode menggantikan salah satu karakter teks-asli.
2. Polyalphabet : setiap karakter teks-kode dapat menggantikan lebih dari satu macam karakter
teks-asli.
3. Monograf : satu enkripsi dilakukan terhadap satu karakter teks-asli.
4. Polygraph : satu enkripsi dilakukan terhadap lebih dari satu karakter teks-asli.
1.3.1.1 Kode Kaisar (Caesar Cipher)
Subtitusi kode yang pertama dalam dunia penyandian yang diciptakan oleh pemerintahan
Julius Caesar yang dikenal dengan kode Kaisar, dengan mengganti huruf awal dari alfabet menjadi
huruf ketiga alfabet. [1]
Gambar 1 Caesar Cipher
3
Secara lebih detail, lihat contoh berikut :
Gambar 2 Karakter Plain teks [1]
Menjadi :
Gambar 3 Karakter Cipher Teks menggunakan Kode Kaisar [1]
1.3.1.2 ROT 13
Pada sistem ini sebuah huruf digantikan dengan huruf alfabet yang letaknya 13 posisi dari
huruf alfabet awal. Sebagai contoh huruf “A” digantikan dengan huruf “N”, huruf “B” digantikan
dengan huruf “O” dan seterusnya. Secara matematis, hal ini dapat dituliskan sebagai berikut :
C ROT13=(M)
Untuk mengembalikan kembali ke bentuk semula dilakukan enkripsi ROT13 dua kali.
M = ROT13(ROT13(M))
1.3.1.3 VIGENNERE
Kode Vigennere merupakan sistem sandi poli-alfabetik yang sederhana. Sistem sandi poli-
alfabetik mengenkripsi sekaligus sebuah teks yang terdiri dari beberapa huruf. Sandi Vigennere
menggunakan subtitusi dengan fungsi shift seperti pada Kode Caisar. [2]
Contoh menggunakan kode Vigennere mengubah teks “sayamakan” menjadi cipher text
dengan himpunan kunci (2,4,5).
Jawab :
c[0]= 18 + 2 mod 26 = 20
c[1]= 0 + 4 mod 26 = 4
c[2]= 24 + 5 mod 26 = 3
c[3]= 0 + 2 mod 26 = 2
c[4]= 12 + 4 mod 26 = 16
4
c[5]= 0 + 5 mod 26 = 5
c[6]= 10 + 2 mod 26 = 12
c[7]= 0 + 4 mod 26 = 4
c[8]= 13 + 5 mod 26 = 18
Maka hasil angka tersebut ditransformasi ke huruf didapatkan teks sandi : “UEDCQFMES”
1.3.2 Teknik Transposisi
Teknik Transposisi adalah teknik yang menggunakan permutasi karakter, yang mana dengan
menggunakan teknik ini pesan yang asli tidak dapat dibaca kecuali oleh orang yang memiliki kunci
untuk mengembalikan pesan tersebut ke bentuk semula. Sebagai contoh :
Ada 6 kunci untuk melakukan permutasi kode :
Gambar 4 Contoh Kunci Permutasi Teknik Transposisi [1]
Dan 6 kunci untuk inversi dari permutasi tersebut :
Gambar 5 Contoh Kunci Inversi Permutasi [1]
Seadainya melakukan permutasi terhadap kalimat dibawah ini :
“SAYA SEDANG BELAJAR KEAMANAN KOMPUTER”
Terlebih dahulu kalimat tersebut dibagi menjadi 6 blok dan apabila terjadi kekurangan dari
blok bisa ditambah dengan huruf yang disukai. Dalam contoh ini ditambah dengan huruf X. Hal ini
berguna untuk mempersulit analisis dari kode tersebut. [1]
“SAYASE DANGBE LAJARK EAMANA NKOMPU TERXXX”
5
Setelah dibagi menjadi 6 blok maka dengan menggunakan kunci diatas setiap blok akan
berubha menjadi seperti dibawah ini :
“YSSEAA NBDEGA JRLKAA MNEAAA OPNUMK RXTXXE”
Untuk mengembalikan kebentuk teks asli maka dilakukan inversi terhadap chipertext dengan
mengikuti kunci nomor dua diatas. Ada banyak teknik untuk permutasi ini, seperti zig zag, segitiga,
spiral dan diagonal. [1]
2. Algoritma Kriptografi yang digunakan
Dalam pengerjaan tugas Kriptografi ini kelompok kami menggunakan teknik subtitusi yang
diantaranya yaitu :
1. Teknik Subtitusi Caisar Cipher
2. Teknik Subtitusi ROT13
3. Teknik Subtitusi Vigennere
4. Teknik Transposisi Columnar
2.1 Implementasi Kriptografi pada Program
Dalam proses enkripsi untuk huruf vokal kelompok kami menggunakan teknik subtitusi
ROT13, Caisar Cipher, dan Vigennere. Proses Enkripsi dapat dilihat dibawah ini :
Tabel 1 Cipher Text pada Huruf Vokal
Proses EnkripsiA E I O U
1 2 3 4 5
Enkripsi 1 = (ROT13) N R V B H
Enkripsi 2 = (Vigennere Himpunan (3,7,11)) U C Y I O
Enkripsi 3 = (Caisar 9 huruf(Hasil Enkripsi 1)) W A E K Q
Enkripsi 4 = (Vigennere(Hasil Enkripsi 3)) D D L R X
1. Proses enkripsi pertama menggunakan teknik subtitusi ROT13 sehingga didapatkan :
Huruf “A” menjadi “N”,
Huruf “E” menjadi “R”,
Huruf “I” menjadi “V”,
Huruf “O” menjadi “B”,
Huruf “U” menjadi “H”.
6
2. Proses enkripsi kedua menggunakan teknik Vigennere Himpunan (3,7,11) sehingga didapatkan :
Huruf “A” menjadi “U”,
Huruf “E” menjadi “C”,
Huruf “I” menjadi “Y”,
Huruf “O” menjadi “I”,
Huruf “U” menjadi “O”.
3. Proses enkripsi ketiga menggunakan teknik caisar 9 huruf pada hasil dari enkripsi pertama
sehingga didapatkan :
Huruf “N” menjadi “W”,
Huruf “R” menjadi “A”,
Huruf “V” menjadi “E”,
Huruf “B” menjadi “K”,
Huruf “H” menjadi “Q”.
4. Proses enkripsi keempat menggunakan teknik vigennere himpunan (3,7,11) pada hasil dari
enkripsi ketiga sehingga didapatkan :
Huruf “W” menjadi “D”,
Huruf “A” menjadi “D”,
Huruf “E” menjadi “L”,
Huruf “K” menjadi “R”,
Huruf “Q” menjadi “X”.
Dalam proses enkripsi untuk huruf Konsonan kelompok kami menggunakan teknik subtitusi
ROT13, Caisar Cipher, Vigennere, dan metode Transposisi Columnar. Proses Enkripsi dapat dilihat
dibawah ini :
Tabel 2 Cipher Text pada Huruf Konsonan
Proses EnkripsiB C D F G H J K L M N P Q R S T V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Enkripsi 1 = (Caisar
9 huruf)K L M O P Q S T U V W Y Z A B C E F G H I
Enkripsi 2 = ROT13 X Y Z B C D F G H I J L M N O P R S T U V
7
(Hasil Enkripsi 1)
Enkripsi 3 =
Vigennere (Hasil
Enkripsi 1)
R W P Z S X V B F Y D B G D I N L Q J O T
Enkripsi 4 =
Vigennere (Hasil
Enkripsi 2)
I B G I N G Q J O T M W P U Z S C V B F Y
Enkripsi 5 =
Transposisi
Columnar (Hasil
Enkripsi 3)
Z D Q X G O W F N S B J P Y L R B I V D T
Enkripsi 6 =
Transposisi
Columnar (Hasil
Enkripsi 4)
I M V G P F B O S N W B G T C I J Z Q U Y
8
1. Proses enkripsi pertama menggunakan teknik subtitusi Caisar 9 huruf sehingga didapatkan :
Huruf “B” menjadi “K”
Huruf “C” menjadi “L”
Huruf “D” menjadi
“M”
Huruf “F” menjadi “O”
Huruf “G” menjadi “P”
Huruf “H” menjadi “Q”
Huruf “J” menjadi “S”
Huruf “K” menjadi “T”
Huruf “L” menjadi “U”
Huruf “M” menjadi
“V”
Huruf “N” menjadi “W”
Huruf “P” menjadi “Y”
Huruf “Q” menjadi “Z”
Huruf “R” menjadi “A”
Huruf “S” menjadi “B”
Huruf “T” menjadi “C”
Huruf “V” menjadi “E”
Huruf “W” menjadi “F”
Huruf “X” menjadi “G”
Huruf “Y” menjadi “H”
Huruf “Z” menjadi “I”
2. Proses enkripsi kedua menggunakan teknik ROT13 pada hasil dari enkripsi pertama sehingga
didapatkan :
Huruf “K” menjadi “X”
Huruf “L” menjadi “Y”
Huruf “M”menjadi “Z”
Huruf “O” menjadi “B”
Huruf “P” menjadi “C”
Huruf “Q” menjadi “D”
Huruf “S” menjadi “F”
Huruf “T” menjadi “G”
Huruf “U” menjadi “H”
Huruf “V” menjadi “I”
Huruf “W” menjadi “J”
Huruf “Y” menjadi “L”
Huruf “Z” menjadi “M”
Huruf “A” menjadi “N”
Huruf “B” menjadi “O”
Huruf “C” menjadi “P”
Huruf “E” menjadi “R”
Huruf “F” menjadi “S”
Huruf “G” menjadi “T”
Huruf “H” menjadi “U”
Huruf “I” menjadi “V”
3. Proses enkripsi ketiga menggunakan teknik Vigennere himpunan (3,7,11) pada hasil dari enkripsi
pertama sehingga didapatkan :
Huruf “K” menjadi “R”
Huruf “L” menjadi
“W”
Huruf “M”menjadi “P”
Huruf “O” menjadi “Z”
Huruf “P” menjadi “S”
Huruf “Q” menjadi “X”
Huruf “S” menjadi “V”
Huruf “T” menjadi “B”
Huruf “U” menjadi “F”
Huruf “V” menjadi “Y”
Huruf “W” menjadi “D”
Huruf “Y” menjadi “B”
Huruf “Z” menjadi “G”
Huruf “A” menjadi “D”
Huruf “B” menjadi “I”
Huruf “C” menjadi “N”
Huruf “E” menjadi “L”
Huruf “F” menjadi “Q”
Huruf “G” menjadi “J”
Huruf “H” menjadi “O”
Huruf “I” menjadi “T”
4. Proses enkripsi keempat menggunakan teknik vigennere himpunan (3,7,11) pada hasil dari
enkripsi kedua sehingga didapatkan :
Huruf “X” menjadi “I”
Huruf “Y” menjadi “B”
Huruf “Z”menjadi “G”
Huruf “B” menjadi “I”
Huruf “C” menjadi “N”
Huruf “D” menjadi “G”
Huruf “F” menjadi “Q”
Huruf “G” menjadi “J”
Huruf “H” menjadi “O”
Huruf “I” menjadi “T”
Huruf “J” menjadi “M”
Huruf “L” menjadi “W”
Huruf “M” menjadi “P”
Huruf “N” menjadi “U”
Huruf “O” menjadi “Z”
Huruf “P” menjadi “S”
Huruf “R” menjadi “C”
Huruf “S” menjadi “V”
Huruf “T” menjadi “B”
Huruf “U” menjadi “F”
Huruf “V” menjadi “Y”
9
5. Proses enkripsi kelima menggunakan teknik transposisi columnar dengan kunci (6,3,5,1,4,2,7)
pada hasil dari enkripsi ketiga sehingga didapatkan :
Huruf “R” menjadi “Z”
Huruf “W” menjadi
“D”
Huruf “P”menjadi “Q”
Huruf “Z” menjadi “X”
Huruf “S” menjadi “G”
Huruf “X” menjadi “O”
Huruf “V” menjadi
“W”
Huruf “B” menjadi “F”
Huruf “F” menjadi “N”
Huruf “Y” menjadi “S”
Huruf “D” menjadi “B”
Huruf “B” menjadi “J”
Huruf “G” menjadi “P”
Huruf “D” menjadi “Y”
Huruf “I” menjadi “L”
Huruf “N” menjadi “R”
Huruf “L” menjadi “B”
Huruf “Q” menjadi “I”
Huruf “J” menjadi “V”
Huruf “O” menjadi “D”
Huruf “T” menjadi “T”
6. Proses enkripsi keenam menggunakan teknik transposisi columnar dengan kunci (6,3,5,1,4,2,7)
pada hasil dari enkripsi keempat sehingga didapatkan :
Huruf “I” menjadi “I”
Huruf “B” menjadi
“M”
Huruf “G”menjadi “V”
Huruf “I” menjadi “G”
Huruf “N” menjadi “P”
Huruf “G” menjadi “F”
Huruf “Q” menjadi “B”
Huruf “J” menjadi “O”
Huruf “O” menjadi “S”
Huruf “T” menjadi “N”
Huruf “M” menjadi “W”
Huruf “W” menjadi “B”
Huruf “P” menjadi “G”
Huruf “U” menjadi “T”
Huruf “Z” menjadi “C”
Huruf “S” menjadi “I”
Huruf “C” menjadi “J”
Huruf “V” menjadi “Z”
Huruf “B” menjadi “Q”
Huruf “F” menjadi “U”
Huruf “Y” menjadi “Y”
7. Hasil Deskripsi Algoritma Kelompok Lain
10
Daftar Pustaka
[1] D. Ariyus, Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi, 1st penyunt., Yogyakarta:
ANDI, 2008.
[2] R. Sadikin, kriptografi untuk keamanan jaringan, Yogyakarta: ANDI, 2012.