Kriptografi Cipher Transposisi Dalam Bahasa Java


Dalam kriptografi, cipher transposisi yaitu metode enkripsi dimana posisi yang dimiliki oleh unit plaintext (yang umumnya karakter atau kelompok karakter) dialihkan sesuai dengan sistem yang teratur, sehingga ciphertext merupakan permutasi dari plaintext. Artinya, urutan unit berubah (plaintext yang diatur ulang / kembali). Secara matematis fungsi bijektif dipakai pada posisi karakter untuk mengenkripsi dan fungsi invers untuk mendekripsi.

Salah satu dari cipher transposisi yang populer yaitu Transposisi Columnar. Dalam transposisi columnar, pesan ditulis dalam formasi yang panjangnya tetap, dan lalu membaca lagi kolom per kolom. Kemudian dibaca per kolom sesuai dengan urutan angka yang didapat dari kata kunci yang dipilih. Lebar baris dan permutasi dari kolom biasanya ditentukan oleh kata kunci. Misalnya, kata ZEBRAS berarti jumlah kolom yaitu sepanjang 6, dan permutasi didefinisikan oleh urutan huruf dari huruf-huruf dalam kata kunci. Dalam hal ini, order akan "6 3 2 4 1 5". A yaitu urutan yang pertama, lalu B diurutan kedua, selanjutnya E diurutan ketiga, dan seterusnya, hingga Z diurutan ke 6 atau terakhir.

Dalam columnar transposisi cipher biasa, spasi cadang diisi dengan nulls, artinya, spasi dihilangkan sehingga kalimat menjadi sedikit susah dibaca. Akhirnya, pesan dibaca sesuai urutan kolom, dalam urutan yang ditentukan oleh kata kunci. Misalnya, kita memakai ZEBRAS kata kunci dan pesan WE ARE DISCOVERED. FLEE AT ONCE. Kata tersebut menjadi : WEAREDISCOVEREDFLEEATONCEQKJEU. Kaliamat ini yang akan dimasukan dalam code java. Kalimat ini merupakan hasil dari kalimat orisinil , dikurangi spasi dan ditambah QKJEU semoga jumlahnya kelipatan dari 6. QKJEU sanggup diganti apa saja sesuai impian pembuat kalimat.

Contoh dalam java, ibarat dalam code berikut ini :

Baca Juga

import java.awt.event.*;
import java.util.*;
public class transpositionCipher
{

public static void main(String args[])
{
String key;
String message;
String encryptedMessage;
// Letters in the x-axis
int x=0;
// Letters in the y-axis
int y=0;

key = "ZEBRAS";
message = "WEAREDISCOVEREDFLEEATONCEQKJEU";
encryptedMessage = "";
// To set the temp as [x][y]
char temp[][]=new char [key.length()][message.length()];
char msg[] = message.toCharArray();
// To populate the array
x=0;
y=0;
// To convert the message into an array of char
for (int i=0; i< msg.length;i++)
{
temp[x][y]=msg[i];
if (x==(key.length()-1))
{
x=0;
y=y+1;
} // Close if
else
{
x++;
}
} // Close for loop
// To sort the key
char t[]=new char [key.length()];
t=key.toCharArray();
Arrays.sort(t);

for (int j=0;j<y;j++)
{
for (int i=0;i<key.length();i++)
{
System.out.print(temp[i][j]);
}
System.out.println();
}
System.out.println();
// To print out row by row (i.e. y)
for (int j=0;j<y;j++){
// To compare the the sorted Key with the key
// For char in the key
for (int i=0;i<key.length();i++){
int pos=0;
// To get the position of key.charAt(i) from sorted key
for (pos=0;pos<t.length;pos++){
if (key.charAt(i)==t[pos]){
// To break the for loop once the key is found
break;
}
}
System.out.print(temp[pos][j]);
encryptedMessage+=temp[pos][j];
}
System.out.println();
}
System.out.println(encryptedMessage);
System.exit(0);
}
}


Sehingga sesudah dikenai fungsi cipher tersebut, kalimat menjadi “EVLNA CDTES EAROF ODEEC WIREE

Artikel Terkait

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel