Anda di halaman 1dari 6

ISU DAN PROTEKSI TI

Enkripsi S-Box

Dosen :
Gusti Made Arya Sasmita, ST., MT.

Oleh :
Kadek Andre Afrizza
1404505094

Jurusan Teknologi Informasi


Fakultas Teknik Universitas Udayana
2015

DES (Data Encryption Standart)


DES atau Singkatan dari Data Encryption Standard merupakan algoritma
penyandian yang diadopsi dan dibakukan oleh NBS (National Bureau Standard) yang
kini menjadi NIST (National Institute of Standards and Technology) pada tahun 1977
sebagai FIPS 46 (Federal Information Processing Standard).
DES bermula dari hasil riset Tuchman Meyer yang diajukan sebagai kandidat
Sandi Standard Nasional yang diusulkan oleh NBS. Konon katanya, algoritma yang
dikembangkan oleh Tuchman Meyer ini merupakan algoritma terbaik dari semua
kandidat Sandi Standard Nasional. Pada mulanya, algoritma yang kini disebut DES,
memiliki panjang kunci sandi 128 bit. Namun selama proses pengadopsian, NBS
melibatkan NSA (National Security Agency), dan algoritma sandi ini mengalami
pengurangan ukuran kunci sandi dari 128 bit menjadi 56 bit saja.
Kini algoritma DES sudah usang dan keamanannya pun sudah tidak dapat
dipertanggungjawabkan lagi. Kini komputer personal pun sudah cukup untuk
membobol algoritma DES, apalagi dengan adanya teknologi parallel computing dan
internet yang berkembang pesat. DES telah secara resmi digantikan fungsinya oleh
AES (Advanced Encryption Standard) dengan panjang kunci sandi 128, 192 dan 256
bit.
DES merupakan algoritma enkripsi blok simetris. DES dikatakan enkripsi
blok karena pemrosesan data baik enkripsi maupun dekripsi, diimplementasikan per
blok (dalam hal ini 8 byte). DES dikatakan enkripsi simetris karena algoritma yang
digunakan untuk enkripsi relatif atau bahkan sama persis dengan algoritma yang
digunakan dalam proses dekripsi.
Dalam algoritma penyandian DES, kunci yang digunakan dalam proses
enkripsi dan dekripsi haruslah sama, supaya data dapat dikembalikan ke bentuk
aslinya. Bisa jadi, karena kesamaan kunci inilah DES juga dinamakan algoritma
enkripsi simetris. Inti dari proses enkripsi adalah penyembunyian data dengan
mengaburkan data asli dan mengurangi keteraturan informasi, sehingga data

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.

Skema Global DES

Gambar diatas merupakan skema global atau tata cara dari algoritma DES.
1.
2.

Blok plaintext dipermutasi dengan menggunakan matriks permutasi awal


Hasil permutasi akan dilakukan en-ciphering sebanyak 16 kali putaran dengan

3.

menggunakan kunci yang berbeda-beda.


Hasil dari en-ciphering kemudian dipermutasi kembali dengan matriks invers
permutasi menjadi blok ciphertext.

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

bin2 = String.format ("%4s",Integer.toBinaryString(tabelArray[baris1]


[kolom1])).replace (' ','0');
System.out.println("Kontrol Bit Kiri Adalah : "+baris1);
System.out.println("Kontrol Bit Kanan Adalah : "+kolom1);
System.out.println("Nilai Perpotongan Tabel Adalah : "+tabelArray[baris1]
[kolom1]);
System.out.println("Hasil Substitusi S-Box : "+bin2);
}
}

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.

Anda mungkin juga menyukai