Kriptografi - Transposisi Kolom

15
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

description

Tugas Isu & Prinsip Proteksi TI

Transcript of Kriptografi - Transposisi Kolom

Page 1: 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

Page 2: Kriptografi - Transposisi Kolom

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?

Page 3: Kriptografi - Transposisi Kolom

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

Page 4: Kriptografi - Transposisi Kolom

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

Page 5: Kriptografi - Transposisi Kolom

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

Page 6: Kriptografi - Transposisi Kolom

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()){

Page 7: Kriptografi - Transposisi Kolom

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]);

Page 8: Kriptografi - Transposisi Kolom

}

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) : ");

Page 9: Kriptografi - Transposisi Kolom

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.

Page 10: Kriptografi - Transposisi Kolom

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

Page 11: Kriptografi - Transposisi Kolom

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.

Page 12: Kriptografi - Transposisi Kolom

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