Enkripsi S-Box
Dosen :
Gusti Made Arya Sasmita, ST., MT.
Oleh :
Kadek Andre Afrizza
1404505094
tersebut tidak dapat dibaca kecuali oleh pihak yang berhak. Berbagai algoritma
enkripsi sengaja dibuat untuk melindungi informasi dari penyadapan, karena ada
kemungkinan terjadinya penyadapan saat data melewati media hantar (media hantar
dapat berupa suara, surat, email, kabel, kertas, frekwensi radio atau apapun itu).
Seandainya penyadap dapat menyadap semua informasi yang melalui media hantar,
idealnya hasil sadapan tersebut hanya menghasilkan data sampah yang tidak
berguna. Semua algoritma kriptografi diciptakan untuk mewujudkan kondisi ideal
tersebut, tapi sayangya kondisi tersebut sangat sulit dicapai, karena selalu ada cara
untuk membalikkan informasi sadapan ke bentuk aslinya.
Gambar diatas merupakan skema global atau tata cara dari algoritma DES.
1.
2.
3.
Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri
(L) dan kanan R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke
dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk
fungsi transformasi yang ;isebut f. Pada fungsi f, blok R dikombinasikan dengan
kunci internal K,. Keluaran dai =angsi f di-XOR-kan dengan blok L untuk
mendapatkan blok R yang baru. Sedangkan blok - yang baru langsung diambil dari
blok R sebelumnya.
Kode Program
Berikut adalah kode program dari program enkripsi s-box yang dibuat.
import java.util.Scanner;
public class Coba1 {
public static void main(String[] args) {
Scanner parsing = new Scanner (System.in);
Integer input;
char [] inputBinner = new char [100];
int tabelArray [][] =
{{14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7},
{0,15,7,4,14,2,13,1,10,6,12,11,4,5,3,8},
{4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0},
{15,12,8,2,4,9,1,7,6,11,3,14,14,10,0,6,13}};
String bin1, bin2;
System.out.print ("Masukkan 6 Digit Nilai Biner : ");
input = parsing.nextInt ();
bin1 = String.format ("%6s",
Integer.toBinaryString(input)).replace (' ','0');
int indeks = 0;
while(indeks < bin1.length ()){
inputBinner[indeks] = bin1.charAt(indeks);
indeks++;
}
char [] baris = {inputBinner[0],inputBinner[5]};
char [] kolom =
{inputBinner[1],inputBinner[2],inputBinner[3],inputBinner[4]};
String barisbaru = new String (baris);
String kolombaru = new String (kolom);
int baris1 = Integer.parseInt(barisbaru, 2);
int kolom1 = Integer.parseInt(kolombaru,2);
Uji Coba
Gambar diatas merupakan hasil dari run program enkripsi s-box yang telah
dibuat. Terlihat bahwa 6 digit biner yang diinputkan adalah 000000, dan control bit
kanan dan juga kiri adalah 0. Lalu setelah diinputkan, proses selanjutnya adalah
mencocokan angka biner dengan table s-box sehingga didapatkan hasil seperti pada
gambar di atas.