Kriptografi - Transposisi Kolom
-
Upload
andis-indrawan -
Category
Documents
-
view
403 -
download
51
description
Transcript of Kriptografi - Transposisi Kolom
Isu dan Prinsip Proteksi Teknologi Informasi
“Enkripsi Transposisi Kolom menggunakan Software Netbeans (java)”
Nama : I Wayan Andis Indrawan
NIM : 1304505014 (Genap)
Kelas : Isu dan Prinsip Proteksi TI (A)
Jurusan Teknologi Informasi
Fakultas Teknik
Universitas Udayana
2015
BAB I
PENDAHULUAN
I. Latar Belakang
Ilmu kriptografi adalah ilmu yang mempelajari tentang penyembunyian huruf atau
tulisan sehingga membuat tulisan tersebut tidak dapat dibaca oleh orang yang tidak
berkepentingan. Kriptografi sudah dipakai sejak jaman Julius Caesar dimana akan
mengirimkan pesan kepada panglimanya tetapi tidak mempercayai kurir pembawa pesan
tersebut. Kriptografi mempunyai 2 (dua) bagian yang penting, yaitu enkripsi dan dekripsi.
Enkripsi adalah proses dari penyandian pesan asli menjadi pesan yang tidak dapat diartikan
seperti aslinya. Sedangkan deskripsi adalah merubah pesan yang sudah disandikan menjadi
pesan aslinya. Pesan asli biasanya disebut plaintext, sedangkan pesan yang sudah disandika
disebut ciphertext. Pada kesempatan kali ini akan dibahas secara spesifik mengenai
pembuatan program enkripsi transposisi kolom menggunakan bahasa java. Selain itu juga
akan dijelaskan mengenai flow chart dari program, pembuatan program serta bagaimana
program tersebut berjalan.
II. Rumusan Masalah
Beranjak dari latar belakang diatas, dapat diangkat beberapa permasalah yang
nantinya akan di bahas pada BAB II. Masalah tersebut antara lain,
1. Apa itu kriptografi?
2. Apa itu enkripsi dan deskripsi?
3. Apa yang dimaksud dengan transposisi?
4. Apa itu transposisi kolom?
5. Bagaimana flow chart dari program transposisi kolom?
6. Bagaimana source code dari program transposisi kolom dengan bahasa java?
7. Bagaimana teknis kerja dari program tersebut?
BAB II
PEMBAHASAN
I. Kriptografi
Kriptografi berasal dari bahasa yunani, menurut bahasa dibagi menjadi dua kripto dan
graphia, kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut
teminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan
di kirim dari suatu tempat ketempat yang lain.
Implementasi dari kriptografi sangat banyak bisa kita temui dalam kehidupan sehari-
hari, seperti Automatic Teller Machine (ATM),Penggunaan ATM untuk banking, bahkan
mulai meningkat menjadi Internet Banking, Mobile Banking, Komunikasi elektronik seperti
telepon tetap, cellular, SMS, MMS. 3G, Komunikasi via Internet seperti email, messaging,
chatting, Voice Call dan E-Government , E-Commence.
Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000
tahun yang lalu oleh raja-raja Mesir pada saat perang untuk mengirimkan pesan rahasia
kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini
disebut kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau
memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya
disebut kriptanalis.
II. Enkripsi dan Deskripsi
Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan proses
dekripsi. Proses “enkripsi” adalah proses penyandian pesan terbuka menjadi pesan rahasia
(ciphertext). Ciphertext inilah yang nantinya akan dikirimkan melalui saluran komunikasi
terbuka. Pada saat ciphertext diterima oleh penerima pesan, maka pesan rahasia tersebut
diubah lagi menjadi pesan terbuka melalui proses “dekripsi” sehingga pesan tadi dapat dibaca
kembali oleh penerima pesan.
III. Transposisi
Kriptografi klasik terbagi menjadi dua kategori utama, yaitu metode penyandian
transposisi dan metode penyandian substitusi. Metode penyandian transposisi adalah metode
penyandian dengan cara mengubah letak dari teks pesan yang akan disandikan. Dan untuk
membaca pesan aslinya kembali, cukup dengan mengembalikan letak dari pesan tersebut
berdasarkan kunci dan algoritma pergeseran huruf yang telah disepakati.
Terdapat beberapa algoritma dalam metode penyandian transposisi yaitu :
1. Penyandian transposisi rail fence
2. Penyandian transposisi route
3. Penyandian transposisi kolom
4. Penyandian transposisi ganda
5. Penyandian transposisi Myszkowski
IV. Transposisi Kolom
Penyandian Transposisi Kolom dituliskan secara baris dengan panjang yang telah
ditentukan sebagai kunci-nya. Teks sandi-nya dibaca secara kolom demi kolom dengan
pengacakan melalui permutasian angka kuncinya. Panjang baris dan permutasian kolomnya
disebut sebagai “kata kunci”.
Dalam prosesnya, kata kunci tersebut didefinisikan dahulu dengan angka sesuai
urutan abjad. Sedangkan proses untuk mengembalikan ke teks sandi ke teks aslinya dilakukan
langkah kebalikan darinya.
Lebih mudahnya dapat dilihat dalam contoh berikut :
Teks pesan asli : SAYA CINTA DENGAN CANDRA HEHE
Kata kunci : ANDIS yang berarti 5 kolom
Proses : ANDIS didefinisikan sesuai urutan abjad menjadi 1 4 2 3 5
1 4 2 3 5
S A Y A C
I N T A D
E N G A N
C A N D R
A H E H E
Hasil penyandian (teks sandi) :
ANMDH UACAX CSAHY KTARE IANEZ
V. Flow Chart Transposisi Kolom
Berikut merupakan flow chart dari program transposisi kolom yang dibuat sesuai
algoritma pengerjaan enkripsi dari transposisi kolom tersebut.
Y
T
Output (matriks[i][j])
End
For I <- 0 to baris doFor j <- 0 to kolom do
Matriks[j][i] = plaintext.charAt(posisi);
Posisi++
Matriks[j][i] = "Z"; If posisi < panjang (plaintext) ;
For I <- 0 to kolom doFor j <- 0 to baris do
Int posisi <- 0;
Matriks [baris][kolom]
Baris <- roundup ( panjang (plaintext/key)Kolom <- key
Input (key)
Input (plaintext)
Start
Gambar 1. Flow Chart Program Transposisi Kolom
VI. Source Code Transposisi Kolom
Berikut merupakan source code yang digunakan untuk membuat program transposisi
kolom dengan menggunakan bahasa java pada aplikasi netbeans. Terdapat 2 class yang
tersimpan dalam 1 package yakni class mainkriptoclass dan class transposisikolom. Dibawah
ini akan dipaparkan kode programnya.
package mainkripto;
import java.util.ArrayList;
/**
*
* @author IWayanAndisIndrawan
*/
class transposisikolom {
public ArrayList<String> keyWords = new ArrayList<String>();
public char[][] plainText;
public char[] chipperText;
public void transKolom(String msgInput){
int[] intKW = new int[keyWords.size()];
int temp;
if(msgInput.length()%keyWords.size() != 0){
plainText = new char[msgInput.length()/keyWords.size()+1]
[keyWords.size()];
} else {
plainText = new char[msgInput.length()/keyWords.size()]
[keyWords.size()];
}
chipperText = new char[plainText.length*plainText[0].length];
for(int indexPTX = 0; indexPTX < plainText.length; indexPTX++){
for(int indexPTY = 0; indexPTY < plainText[0].length;
indexPTY++){
if((indexPTX*plainText[0].length+indexPTY) <
msgInput.length()){
plainText[indexPTX][indexPTY] =
msgInput.toUpperCase().charAt(indexPTX*plainText[0].length+indexPTY);
} else{
plainText[indexPTX][indexPTY] = (char) (90 -
(plainText[0].length - indexPTY - 1));
}
}
}
for(int indexKW = 0; indexKW < keyWords.size(); indexKW++){
intKW[indexKW] = keyWords.get(indexKW).charAt(0);
}
for(int indexINTKW = 0; indexINTKW < intKW.length - 1;
indexINTKW++){
int pos = 1;
for(int indexINTKW2 = indexINTKW + 1; indexINTKW2 <
intKW.length; indexINTKW2++){
if(intKW[indexINTKW] > intKW[indexINTKW2]){
pos = indexINTKW2;
temp = intKW[indexINTKW];
intKW[indexINTKW] = intKW[pos];
intKW[pos] = temp;
} else{
pos = indexINTKW;
}
}
}
for(int indexPTY = 0; indexPTY < plainText[0].length; indexPTY++)
{
char kW = (char) intKW[indexPTY];
int indexCTY = keyWords.indexOf(Character.toString(kW));
for(int indexPTX = 0; indexPTX < plainText.length; indexPTX+
+){
chipperText[indexPTX*plainText[0].length + indexPTY] =
plainText[indexPTX][indexCTY];
System.out.print(chipperText[indexPTX*plainText[0].length
+ indexPTY]);
}
keyWords.set(indexCTY, null);
}
}
public transposisikolom (String keyWordsInput) {
for(int indexKW = 0; indexKW < keyWordsInput.length(); indexKW+
+){
keyWords.add(Character.toString(keyWordsInput.charAt(indexKW)).toUpperCas
e());
}
}
}
Kode Program 1. Class Transposisikolom
Kode program diatas merupakan sebuah class yang memiliki fungsi utama dari
transposisi kolom. Segala konversi konsep dasar teori transposisi kolom di deklarasikan
dalam sebuah program yang mana class ini nantinya dipanggil oleh main class yakni dengan
nama mainkriptoclass. Untuk lebih jelasnya, dibawah ini merupakan kode program dari
mainkriptoclass.
package mainkripto;
import java.util.Scanner;
/**
*
* @author IWayanAndisIndrawan
*/
public class mainkriptoclass {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
// TODO code application logic here
System.out.print("TRANSPOSISI KOLOM \n");
System.out.print("Masukkan KeyWord : ");
String key = input.next().toString();
System.out.print("Masukkan PlainText (tanpa spasi) : ");
String msg = input.next().toString();
System.out.print("\nBerikut adalah Hasil dari Enkripsi
Transposisi Kolom anda : \n");
transposisikolom myTra = new transposisikolom(key);
myTra.transKolom(msg);
}
static void test(){
String key = input.next().toString();
String msg = input.next().toString();
transposisikolom myTra = new transposisikolom (key);
myTra.transKolom(msg);
System.out.print("\n");
for(int j = 0; j < myTra.plainText.length; j++){
for(int k = 0; k < myTra.plainText[0].length; k++){
System.out.print(myTra.plainText[j][k]+" "); }
System.out.print("\n");
}
}
}
Kode Program 2. Class Mainkripto Class
Mainkriptoclass ini difungsikan untuk menjadi class utama atau main class dari
program ini. Input kata kunci dan plaintext pemanggilan proses class transposisikolom untuk
memproses data yang ingin di enkripsi serta output yang berupa chippertext semua terdapat
pada class ini.
VII. Teknis Kerja Program Transposisi Kolom
Setelah berhasil membuat source code dari program enkripsi transposisi kolom dan
berhasil di-build pada aplikasi netbeans dengan bahasa java, maka kita bisa mencoba
melakukan run program. Berikut adalah tampilan awal dari program yang sudah di-run.
Gambar 2. Tampilan Awal
Pada halaman awal seperti gambar diatas terdapat judul transposisi kolom dan
perintah masukkan keyword. Kemudian anda bisa memasukkan keyword atau kata
kunci yang diinginkan. Gambar dibawah menggunakan contoh kata andis sebagai
keyword.
Gambar 3. Memasukkan Keyword
Setelah anda memasukkan keyword anda bisa menekan tombol enter, kemudian
akan muncul perintah masukkan plaintext. Pada gambar dibawah plaintext yang
digunakkan ialah akucintasamacandrahehe.
Gambar 4. Memasukkan Plaintext
Setelah keyword dan plaintext diinputkan, tekan enter untuk melihat hasil
enkripsi yang berbentuk chippertext. Gambar dibawah merupakan hasil dari enkripsi
tersebut. Terlihat hasil dari enkripsi ialah ANMDHUACAXCSAHYKTAREIANEZ.
Gambar 5. Hasil enkripsi transposisi kolom
Dengan didapatkannya hasil dari enkripsi dari program transposisi kolom ini,
maka dapat dipastikan program ini berjalan dengan baik dan sesuai prosedur.
BAB III
PENUTUP
I. Kesimpulan
Di zaman yang sudah merambah dunia komputerisasi membuat segala aspek yang ada
didalamnya juga mau tidak mau harus menyesuaikan dengan zaman. Dengan sebuah aplikasi
netbean yang menggunakan bahasa java sekiranya mampu melahirkan sebuah program yang
menganut konsep dasar enkripsi data dengan metode tranposisi kolom. Program tersebut
berjalan dengan baik sesuai prosedur.
II. Saran
Program transposisi kolom ini masih sangat sederhana, masih dapat dikembangkan
agar menjadi program yang lebih baik dari segi tampilan maupun jika nantinya ingin dibuat
dalam bentuk portable. Lebih bagus lagi jika dalam satu program tersebut terdapat berbagai
macam jenis enkripsi dan deskripsi. Sehingga program ini nantinya diharapkan bisa berguna
untuk orang banyak.
III. Daftar Pustaka
http://www.scribd.com/doc/226738432/KRIPTOGRAFI#scribd
https://www.hadiwibowo.wordpress.com/2007/03/28/metode-penyandian-transposisi/
https://www.dwiputrimeilatii.blogspot.com/2014/10/artikel-kriptografi.html