: 1304505014 (Genap)
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.
2.
3.
4.
5.
6.
7.
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 seharihari, 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.
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
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.
Start
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. Input (key)
Y Input (plaintext)
1 4 2 3 5
S A Y A C
I N T A D
E N G A N
For I <- 0 to
kolom do
For j <- 0 to
baris do
C A N D R
A H E H E
Matriks[j][i] = "Z";
V.
End
VI.
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) {
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
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.
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.
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.
Setelah anda memasukkan keyword anda bisa menekan tombol enter, kemudian
akan muncul perintah masukkan plaintext. Pada gambar dibawah plaintext yang
digunakkan ialah akucintasamacandrahehe.
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.
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