ENKRIPSI DAN DESKRIPSI METODE DES DATA E (2)

ENKRIPSI DAN DESKRIPSI METODE DES (DATAENCRYPTIONSTANDART)
DENGAN MENGGUNAKAN BAHASA PEMROGRAMANPHP

1

Wahyu Angga Saputra (1412120031)

2

Wahyu Retno Wulan Suryawati (1412120022)
3

1

2

Lina PuspitaSari (1412120017)

TeknikInformatika,UniversitasPGRIRonggolaweTuban,[email protected],

TeknikInformatika,UniversitasPGRIRonggolaweTuban,[email protected],

3

TeknikInformatika,UniversitasPGRIRonggolaweTuban,[email protected],

ABSTRAK
Manusia hidup saling berkomunikasi antara satu dengan yang lain, di antara informasi-informasi
tersebut, pastilah ada informasi yang bersifat rahasia, artinya hanya boleh diketahui oleh orang-orang tertentu
saja..Contoh lainnya banyak sekali ditemukan, seperti rahasia dagang antar perusahaan, strategi perang, hingga
rahasia negara yang hanya boleh diketahui oleh petinggi suatu negara. Akan sangat berbahaya apabila rahasiarahasia tersebut diketahui oleh pihak lain, apalagi pihak tersebut adalah musuh yang berusaha untuk mencari
kekurangan dan kelemahan suatu pihak.
Dalam perkembangannya, ada berbagai metode yang digunakan dalam kriptanalisis, sesuai dengan
algoritma kriptografi yang ingin dipecahkannya. Teori matematika yang digunakan dalam kriptanalisis lebih
banyak daripada kriptografi, ditambahkan dengan teori probabilitas, statistika, geometri, bahasa (sastra), bahkan
ada yang sampai menggunakan matematika analisis yang mempelajari konsep limit, turunan dan integral.
Maka dari itu berbagai metode encrypt data semakin berkembang,dari kata sandi Caesar sampai
sekarang yang banyak variasi metode enkripsi-deskripsi. Salah satu metode enkrips-dekripsi data adalah DES
(DataEncryptionStandard ). Yaitu proses penyandian data dengan menggunakan metode aritmatika kode binner.
Dengan adanya jurnal enkripsi-dekripsi ini diharapkan dapat menambah pengetahuan dengan berbagai
metode peyandian data dan dapat mengantisi keamanan kata sandi dari para Hacker.


Katakunci: DES,Enkripsi,KataSandi, Unirow

ABSTRACT

People always communicate with each other, such an information an the other, there must be
information that is confidential, meaning that should only be known by certain people only. example is
information about the exam was also included secret if before the test took place, it should only be known by
the lecturer and course exam committee. Look one of example, such as inter-company trade secrets, war
strategy, to state secrets that should only be known by the top brass of a country. It would be very dangerous if
these secrets are known by other parties, especially the party is an enemy that is trying to find flaws and
weaknesses of a party.
In the process, there are a variety of methods used in cryptanalysis, in accordance with a
cryptographic algorithm that want solved. Mathematical theories used in cryptanalysis more than
cryptography, is added to the theory of probability, statistics, geometry, language (literature), and some even
use mathematical analysis to studied the concept of limits, derivatives and integrals.
So that various methods of growing encrypt the data ,from the cipher said until no wthat many
different methods of encryption and description. One method enkrips decrypt the data DES (Data Encryption
Standard). It is the process of encoding data using arithmetic Binner code.
With journal DES encryption and decryption is expected to increase the knowledge of various
methods of data password and is expected to anticipate Hacker password security.


Keyword: DES, Encrypt, Password, Unirow

dalam waktu 22 hari. Pada tanggal 16 Juni 1998,

PENDAHULUAN

sebuah mesin seharga
Kriptografi (atau kriptologi; dari Bahasa
Yunani Kriptos, “tersembunyi, rahasia”) merupakan
keahlian dan ilmu dari cara-cara untuk komunikasi
dengan aman pada kehadirannya dipihak ketiga.

250

yang dapat dibaca menjadi kelihatan tidak masuk
akal.
dienkrip

dengan


suatu

kunci

dinamakan ciphertext. Keamanan suatu informasi
agar tidak jatuh ketangan orang-orang yang tidak
berkepentingan sangatlah
gunakan.

penting

Informasi

ini

agar tidak

dapat


berupa

password, nomor kartu kredit, ataupun informasi
pribadi lainnya.
Bentuk

dengan

mudah

2,3 hari atau diperkirakan dapat memecahkan kunci
DES dalam waktu 4,5hari.
Adanya

kenyataan

bahwa

algoritma


kriptografi DES tidak lagi aman,maka NIST mulai
memikirkan

sebuah

Internasional

algoritma

kriptografi

lain

dari

penulisan

rahasia

banyak


Penggunaan

orang

awal

tidak

dapat

kriptografi

yang

membaca.
diketahui

merupak teks sandi yang diukir pada batu di Mesir
(1900 sebelum Masehi).

Berbagai

algoritma

pesertanya

adalah

ahli

secara terbuka dimaksudkan agar algoritma yang
baru bukan dari produk badan pemerintah yang
dapat dengan sengaja menanamkan backdoor pada
algoritmanya. Backdoor ini dicurigai membuat
plaintext

awal

dimana


kriptografi dari seluruh dunia. Adapun diadakan

dapat

langsung

dibaca

tanpa

harus

menggunakan kunci.

membutuhkan lebih sedikit implementasi penulisan
sejak

dapat

sebagai pengganti DES. Untuk itu diadakan kontes

Setelah

disalah

dolar

memecahkan 25% kunci DES dalam waktu kira-kira

Kriptografi sebelum pada termodernisasi merupakan
sinonim dari enkripsi, konversi dari kalimat-kalimat

ribu

Pada tahun 1997 kontes pemilihan suatu
standar algoritma kriptografi baru pengganti DES
dimulai dan diikuti oleh 21 peserta dari seluruh
dunia. Algoritma yang akan dipilih selain harus
memenuhi beberapa kriteria, yaitu:

kriptografi


telah

diciptakan oleh para ahli kriptografi, namun

a)

Faktor keamanan, yang berarti algoritma

berbagai usaha dilakukan oleh cracker untuk

tersebut

harus tidak mudah dipecahkan

memecahkannya tidak sedikit yang membawa

oleh cracker, bersifat acak

atau tidak

keberhasilan. Hal ini mendorong para kriptografi

mudah

dan

untuk menciptakan algoritma-algoritma yang lebih

berdasarkan algoritma matematika tertentu.

diterka

b) Faktor

aman.

biaya,

outputnya,

dimana

tidak

diperhitungkan

kecepatan prosesing baik pada hardware
dan software, dan besarnya memory yang

DATA ENCRYPTION STANDART

dipakai.
DES adalah

tipikal

blok

chiper

suatu

c)

Faktor karakteristik implementasi, yakni

algoritma yang membutuhkan tetap serangkaian

meliputi kesederhanaan algoritma yang

panang dan mengubah bit plaint text melalui
serangkaian operasi rumit ke bitstring cipherteks lain
yang sama panjang.

memadai lagi. Pada tahun 1998, 70 ribu computer di
Internet berhasil membobol satu kunci DES dalam
waktu 96 hari. Tahun 1999 kejadian yang sama
terjadi lagi dalam waktu lebih cepat yaitu hanya

dan

dalam

dihardware

implementasi

keamanan
dan

software.

Seiring dengan perkembangan teknologi,
kunci DES yang sebesar 56-bit dianggap sudah tidak

digunakan,kemudahan

DES
enkripsi

seharusnya

data

yang

terdiri

dari

algoritma

diimplementasikan

dalam

peralatan elektronik untuk tujuan tertentu. Peralatan
ini dirancang menurut cara yang mereka gunakan
dalam

sistem

atau

jaringan

computer

untuk

melengkapi perlindungan cryptographic pada data
biner.

Metode implementasi

akan tergantung

oleh bit R. Kemudian menyusul urutan bit yang

pada aplikasi dan lingkungan disekitar sistem itu.

saling berhubungan yaitu: B1, B2,….,B8. Artinya bit

Peralatan itu diimplementasikan tetapi sebelumnya

yang terdiri dari B1diikuti B2dan akhirnya diikuti

diuji

B8.

dan

divalidkan

secara

akurat

untuk

menampilkan transformasi dalam bentuk algoritma.
Pada bahasan kali ini,algoritma DES akan
digunakan

untuk

diimplementasikan

mengenkripsi

data

Didalam algoritma DES dijabarkan menjadi 2
bagian, yaitu penulisan pesan dan penguraian pesan.

dan

64bit dari blok input yang dienkripsi adalah subjek

dengan menggunakan bahasa

pertama dari permutasi yang disebut permutasi

pemrograman PHP.

dengan inisial IP. Perhatikan tabel permutasi inisial
IP.

DESKRIPSI ALGORITMA DES
Secara

umum,

algoritma

DES

terbagi

menjadi 3 kelompok dimana kelompok yang satu
dengan yang lain saling berinteraksi dan terkait
antara satu dengan yang lain.
Kelompok-kelompok

tersebut

adalah:

Pemrosesan kunci, enkripsi data 64bit, dan dekripsi
data 64bit Algoritma DES dirancang untuk menulis
dan membaca berita blok data yang terdiri dari
64bit di bawah control kunci 64bit. Dalam
pembacaan

berita

harus

dikerjakan

dengan

menggunakan kunci yang sama dengan waktu

Input yang mengalami permutasi mempunyai
bit 58 dari input bit pertamanya, bit 50 sebagai bit
kedua dan bit ke 7 sebagai bit terakhir. Blok input
yang mengalami permutasi kemudian menjadi input
pada perhitungan dan tergantung pada kunci
kompleks.

menulis berita, dengan penjadualan alamat kunci bit
yang diubah sehingga proses membaca adalah
kebalikan dari proses menulis.

output

ini

berikutnya

Sebuah blok ditulis dan ditujukan pada
permutasi dengan inisial IP, kemudian melewati
perhitungan dan perhitungan tersebut

Output perhitungan ini, disebut preoutput dan
akan

diteruskan

pada

permutasi

yang

merupakan

kebalikan

dari

permutasi inisial. Perhatikan tabel kebalikan dari
permutasi inisial IP yaitu IP –1.

sangat

tergantung pada kunci kompleks dan pada akhirnya
melewati permutasi yang invers dari permutasi
dengan inisial IP-1.
Perhitungan yang tergantung pada kunci
tersebut dapat didefinisikan sebagai fungsif, yang
disebut fungsi cipher dan fungsi KS, yang disebut
Key Schedule.
Sebuah dekripsi perhitungan diberikan pada
awal, sepanjang algoritma yang digunakan dalam
penulisan pesan. Berikutnya,penggunaan algoritma
untuk pembacaan pesan didekripsikan. Akhirnya,
definisi dari fungsi cipher menjadi fungsi seleksi Si
dan fungsi permutasi adalah P.
Perhatikan contoh berikut :
Diberikan 2 blok yaitu L dan R dari bit. L R
merupakan blok yang terdiri dari bit L dan diikuti

Output dari algoritma di atas mempunyai bit
40 dari blok preoutput sebagai bit pertamanya, bit 8
sebagai bit kedua sampai bit 25 sebagai bit terakhir.
Perhitungan yang menggunakan blok input
dikenakan

permutasi

menghasilkan

blok

sebagai
preoutput.

inputnya

untuk

Tetapi

untuk

pertukaran blok akhir,dari 16 iterasi dari kalkulasi
yang dijelaskan dibawah ini merupakan fungsi
cipher yang mengoperasikan 2 blok, yaitu salah satu
dari 32 bit dan salah satu dari 48 bit. Kalkulasi
tersebut akan menghasilkan blok sepanjang 32 bit.

64 bit dari blok input terdiri dari 32 bit blok L dan

Untuk algoritma secara rinci dapat dilihat pada

diikuti oleh 32 bit blok R. Input blok ini

bahasan enkripsi 64bit yang akan dibahas pada

didefinisikan sebagai L R.

bagian bawah bab ini.

K menjadi input blok dari 48 bit yang dipilih dari 64
bit kunci. Kemudian output L’R’ dari iterasi dengan
input L R menghasilkan persamaan berikut ini : (1)
L’= R

PermutasiIP-1 menerapkan blok

preoutput yang

merupakan kebalikan dari permutasi dengan inisial
IP. Adapun persamaan berikut ini (4) merupakan

R’=L(+)f(R,K)

kelanjutan dari persamaan 1.

Dimana (+) merupakan penambahan bit demi bit
kemudian dibagi 2.
Input iterasi pertama dari perhitungan tadi
adalah

Penguraian Pesan

blok

input

yang

mengalami

permutasi.L’R’adalah output dari iterasi ke16,
kemudian R’L’ adalah blok preoutput. Pada masingmasing iterasi sebuah blok yang berbeda, K
merupakan kunci bit yang dipilih dari 64 kunci yang
ditunjukkan oleh KEY.
Dengan notasi diatas, kita bisa menjelaskan

R’ = L
L’= R (+) f (L’,K)
Akibatnya,penguraian pesan ini harus menerapkan
algoritma yang sama pada waktu pesan ditulis.
Dengan mengambil masing-masing iterasi dari
perhitungan blok yang sama dari kunci bit K maka
penguraian itu dilakukan. Dengan menggunakan
notasi-notasi dari persamaan berikut ini menjelaskan
kondisi berikut: (5)

iterasi menjadi lebih rinci. KS menjadi sebuah
fungsi yang menggunakan bilangan bulat dengan
jangkauan dari bilangan 1 sampai bilangan 16 dan

Rn-1= Ln
Ln-1= Rn (+) f (Ln,Kn)

blok 64 bit KEY sebagai input serta hasilnya sebagai
output blok 48 bit Kn, dimana bisa dilihat pada

Setelah adanya persamaan diatas,sekarang R16 L16

persamaan berikut ini: (2)

adalah blok input dari permutasi dalam perhitungan
penguraian dan L0 dan R0 adalah blok preoutput.

Kn = KS (n, KEY)

Untuk penguraian perhitungan dengan R16 L16

Dengan Kn ditentukan oleh bit dalam posisi bit

sebagai input permutasi. K16 digunakan dalam

yang berbeda dengan KEY. KS disebut kunci

iterasi yang pertama, K15 sebagai yang kedua dan

schedule karena blok K digunakan dalam iterasi ke-

seterusnya sampai dengan K1 digunakan dalam

n (persamaan 1) dan blok Kn ditentukan oleh

iterasi ke-16.

persamaan 2.

Untuk algoritma secara rinci dapat dilihat pada

Karena sebelumnya blok input dipermutasikan

bahasan dekripsi 64bit yang akan dibahas pada

dengan L R, akhirnya L 0 dan R 0 berubah menjadi

bagian bawah bab ini.

L dan R, sedangkan Ln dan Rn berubah menjadi L’
dan R’ (persamaan 1). Selanjutnya L dan R berubah
menjadi Ln-1 dan Rn-1. K adalah Kn, yaitu ketikan
dalam jangkauan bilangan 1 sampai bilangan 16.
Perhatikan persamaan berikut ini: (3)
Ln= Rn-1Rnn = Ln-1 (+) f (Rn-1, Kn)
Blok preoutput dari persamaan di atas adalah
R16
L16.

FUNGSI CIPHERF

sampai dengan 15. Angka tersebut didefinisikan
sebagai j. Lihat tabel diatas,angka dalam baris ke-I

Perhitungan dari fungsi f (R,K) dapat dilihat pada
gambar berikut ini.

dan kolom ke-j. Angka dalam jangkauan 0 sampai
dengan 15 dan diwakili oleh 4bit blok. Blok itu
adalah output S1(B) dari S1untuk input B.
Sebagai contoh, untuk input 011011 baris
01, baris 1 dan kolom ditentukan oleh 1101, kolom
13. Pada barus 1 kolom 13 kelihatan 5 sehingga
outputnya adalah 0101.
Hasil fungsi permutasi P output 32bit dari input
32bit dengan permutasi bit dari input blok dapat
dilihat pada tabel berikut ini:

E merupakan fungsi yang mengambil blok
32bit sebagai input dan hasil blok 48bit sebagai
output.E yang 48bit sebagai output ditulis sebagai 8
blok dari 6bit yang masing-masing diperoleh dengan
cara menyeleksi bit dalam input. Perhatikan gambar
tabel berikut ini.

Output P(L) untuk fungsi P didefinisikan
oleh tabel di atas dan diperoleh dari input L dengan
mengambil bit ke-16 dari L sebagai bit pertama
P(L), bitke-7 sebagai bit ke-2 dari P(L), dan
seterusnya sampai bit ke-25 dari L diambil sebagai
bit ke-32 dari P(L).
S1, S2,…..,S8 menjadi fungsi seleksi yang berbeda
dari P menjadi fungsi permutasi sekaligus E

3bit pertama dari E adalah bit dalam posisi 32,
kemudian 1 disusul 2 dari R dan 2bit E yang terakhir

menjadi fungsi yang telah didefinisikan di atas.
Untuk

mendefinisikan

f(R,K),

langkah

adalah bit dalam posisi 32 dan 1.

pertama adalah mendefinisikan B1,…B8 menjadi

Masing-masing fungsi seleksi untuk S1, S2,….S8

blok dari 6bit masing-masing untuk persamaan

mengambil blok 6bit sebagai input dan hasil blok

dibawah ini: (6) B1,B2,…,B8 = K (+) E (R)

4bit sebagai output dan diilustrasikan dengan

Blok f(R,K)

menggunakan tabel yang berisi S1.

persamaan berikut ini: (7) P(S1(B1)(S2(B2)….

kemudian didefinisikan

menjadi

(S8(B8)).
Jadi K(+) E(R) adalah hasil pertama yang
dibagi dalam 8 blok input yang dapat dilihat pada
persamaan

(6).

Kemudian

masing-masing

B1

diambil sebagai input untuk S1 dan 8 blok
Jika S1 adalah fungsi yang didefinisikan

(S1(B1)(S2(B2)…. (S8(B8)) dari 4bit masing-

dalam tabel dan B adalah blok dari 6bit, kemudian

masing digabungkan menjadi blok tunggal dari 32bit

S1 (B) ditentukan sebagai berikut: bit pertama dan

yang membentuk input P. Output pada persamaan

terakhir dari B mewakili dalam base-2 sebuah angka

(7) kemudian menjadi input bagi R dan K.

dalam jangkauan 0 sampai dengan 3. Angka tersebut
didefinisikan sebagai 4bit ditengah dari B mewakili
dalam base-2 sebuah angka dalam jangkauan 0

menunjukkan

PEMROSESAN KUNCI

dahulu

algoritma

yang

menunjang

adanya

pemrosesan kunci. Algoritma ini nantinya akan
sangat berguna sekali pada waktu implementasi pada
program. Adapun algoritmanya adalah sebagai
berikut:

 Pengguna memasukkan sebuah kunci

64bit atau 8 karakter, dimana nantinya setiap bit
dalam kunci ini akan digunakan bit paritasSebelum dilakukan permutasi terhadap kunci
tersebut, perlu diadakan penjadwalan kunci
rahasia (secret

rotasi

yang

Iterasi ke
1 2 34 5 6 7 8 9 10 11 12 13 14 15 16
Jumlah Step
1 1 22 22 22 12 22 22 21
-

sebesar

setiap

diterapkan pada setiap iterasinya.

Sebelum kita membuat diagram blok tentang alur
pemrosesan kunci, sebelumnya disusun terlebih

langkah

Untuk setiap hasil C(j) dan D(j), kunci pada
iterasi ke j didapatkan dengan cara melakukan
permutasi

kembali

pada

C(j)

dan

D(j).

Permutasi itu dikenal dengan nama Permuted
Choice (PC-2). Perhatikan hasilnya berikut ini:
Permuted Choice 1 (PC-1)

key- schedulling). Hal ini

dilakukan untuk menyusun 16 buah kunci yang
akan dimasukkan pada setiap iterasi DES, baik
pada enkripsi maupun dekripsi.

 Setelah langkah ke-2 selesai, dilanjutkan dengan
permutasi. Permutasi dilakukan pada kunci 64bit
tadi. Pada tahapan ini, bit-bit paritas tidak
dilibatkan sehingga bit kunci berkurang menjadi

 Iterasi dilakukan terus menerus hingga ke-16
kunci berhasil disusun.

56bit. Bit1 pada kunci ke-56 merupakan bit 57
pada

kunci awalnya, bit2 adalah bit49, dan

seterusnya hingga bit56 adalah bit4 kunci64.
Posisi bit hasil permutasi pada langkah pertama
ini

diberi

nama

Permuted

Adapun diagram blok dari pemrosesan kunci
yang sudah dibuat algoritma diatas,dapat dilihat
pada gambar dibawah ini.

Choice1(PC-1).

Adapun hasilnya dapat dilihat pada keterangan
dibawah ini:

 Dari permutasi ini kemudian output PC-1 dibagi
menjadi 2 bagian yaitu 28bit pertama disebut
C(0) dan 28bit terakhir disebut D(0).

 Dari C(0) dan D(0) kemudian dihitung sub-sub

Contoh Enkripsi Data Dengan Algoritma DES

kunci untuk setiap iterasi,yang dimulai dengan

Langkah-langkah mengenkripsi data menggunakan

j= 1.

algoritma DES (DataEncryptionSystem) yaitu:

 Untuk setiap iterasi, yaitu j rotasi kekiri 1 kali
atau sebanyak 2 kali untuk setiap C(j–1) dan
D(j–1). Dari hasil rotasi ini akan didapatkan
hasil C(j) dan D(j). Tabel berikut ini akan

Diberikan contoh:
Plaintext (x) = COMPUTER

Key (k) = 1334 57799BBCDFF1

Urutan bit pada plaintext urutan ke 58 ditaruh
diposisi 1,

Langkah Pertama:
Ubahlah plaintext kedalam bentuk biner

Urutan bit pada plaintext urutan ke50 ditaruh di
posisi 2,

C : 01000011
O : 01001111

Urutan bit pada plaintext urutan ke42 ditaruh di
posisi 3, dst

M : 01001101

Sehingga hasil outputnya adalah:

P : 01010000

IP(x) : 11111111101110000111011001010111
00000000000000000000011010000011

U : 01010101

Pecah bit pada IP(x) menjadi 2 bagian yaitu:

T : 01010100

L0:11111111101110000111011001010111(tabel
IP dengan warna kuning)
R0:00000000000000000000011010000011(tabel
IP dengan warna hijau)

E : 01000101
R : 01010010

Langkah Ketiga:
Ubahlah key kedalam bentuk biner

Generate

akan

digunakan

untuk

permutasi kompresi PC-1, pada langkah ini terjadi

34 : 00110100

kompresi dengan membuang 1bit masing-masing

57 : 01010111

blok kunci dari 64bit menjadi 56bit.

79 : 01111001

Tabel PC-1

9B:1001101
1
BC:1011110
0
DF:1101111
1
F1:1111000
1
Langkah
Kedua:

57
1
10

49
58
2

41
50
59

33
42
51

25
34
43

17
26
35

9
18
27

19
63
7
14
21

11
55
62
6
13

3
47
54
61
5

60
39
45
53
28

52
31
38
45
20

44
23
30
37
12

36
15
22
29
4

Dapat kita lihat pada tabel diatas, tidak terdapat
urutan bit 8, 16, 24, 32, 40, 48, 56, 64 karena telah
dikompress. Berikut hasil outpunya:

Lakukan Initial Permutation (IP) pada bit
plaintext menggunakan tabel IP berikut:

CD(k) : 1111000 0110011 0010101 0101111
0101010
1011001
1001111
0001111

Tabel Initial Permutation
(IP)
50
52
54
56
49
51
53
55

yang

mengenkripsi plaintext dengan menggunakan tabel

13 : 00010011

58
60
62
64
57
59
61
63

kunci

42
44
46
48
41
43
45
47

34
36
38
40
33
35
37
39

26
28
30
32
25
27
29
31

18
20
22
24
17
19
21
23

10
12
14
16
9
11
13
15

2
4
6
8
1
3
5
7

Pecah CD(k) menjadi dua bagian kiri dan kanan,
sehingga menjadi
C0:1111000011001100101010101111

(tabelPC-1

warna kuning)
D0:0101010101100110011110001111 (tabelPC-1
warna hijau)

Langkah Keempat:

Digeser bit kekiri

Lakukan pergeseran kiri (LeftShift) pada C0 dan D0,

C4:0011001100101010101111111100

sebanyak 1 atau 2 kali berdasarkan kali putaran yang

D4:0101100110011110001111010101

ada pada tabel putaran sebagai berikut:
Tabel Left Shift
Putaran ke- i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Digeser 2bit kekiri
C5:1100110010101010111111110000

Jumlah Pergeseran (Left
1
1
2
2
2
2
2
2
1
2
2
2
2
2
2
1

Untuk putaran ke1, dilakukan pegeseran 1bit kekiri

D5:0110011001111000111101010101
Digeser 2bit kekiri
C6:0011001010101011111111000011
D6:1001100111100011110101010101
Digeser 2bit kekiri
C7:1100101010101111111100001100
D7:0110011110001111010101010110

Digeser 2bit kekiri
C8:0010101010111111110000110011
D8:1001111000111101010101011001
Digeser 1bit kekiri

Untuk putaran ke 2, dilakukan pergeseran 1 bit

C9:0101010101111111100001100110

kekiri.

D9:0011110001111010101010110011

Untuk putaranke 3, dilakukan pergeseran 2bit
kekiri,dst
Berikut hasil outputnya:

Digeser 2bit kekiri
C10:0101010111111110000110011001
D10:1111000111101010101011001100

C0:1111000011001100101010101111
D0:0101010101100110011110001111

Digeser 2bit kekiri
C11:0101011111111000011001100101

Digeser 1bit kekiri

D11:1100011110101010101100110011

C1:1110000110011001010101011111
D1:1010101011001100111100011110

Digeser 2bit kekiri
C12:0101111111100001100110010101

Digeser bit kekiri

D12:0001111010101010110011001111

C2:1100001100110010101010111111
D2:0101010110011001111000111101

Digeser 2bit kekiri
C13:0111111110000110011001010101

Digeser 2bit kekiri

D13:0111101010101011001100111100

C3:0000110011001010101011111111
D3:0101011001100111100011110101

Digeser 2bit kekiri
C14:1111111000011001100101010101

D14:1110101010101100110011110001

C7D7 = 1100101 0101011 1111110 0001100
0110011110001111010101010110

Digeser 2bit kekiri
K7 = 111011001000 010010 110111 111101

C15:1111100001100110010101010111

100001100010111100

D15:1010101010110011001111000111
C8D8 = 0010101 0101111 1111000 0110011
Digeser 1bit kekiri

1001111000111101010101011001

C16:1111000011001100101010101111

K8 = 111101111000 101000 111010 110000
010011101111111011

D16:0101010101100110011110001111

C9D9 = 0101010 1011111 1110000 1100110
Setiap hasil putaran digabungkan kembali menjadi
CiDi dan

diinput

kedalam

tabel

0011110001111010101010110011

Permutation

Compression 2(PC-2) dan terjadi kompresi data CiDi

K9 = 111000001101 101111 101011 111011

56bit menjadi CiDi 48bit.

011110011110000001

TabelP-2

C10D10 = 01010101111111 1000011 0011001

14
3
23

17
28
19

11
15
12

24
6
4

1
21
26

5
1
08

16
41
30
44
46

7
52
40
49
42

27
31
51
39
50

20
37
45
56
36

13
47
33
34
29

2
5
5
4
8
5
3
3
2

1111000111101010101011001100
K10 = 101100011111 001101 000111 101110
100100011001001111
C11D11 = 01010111111110 0001100 1100101
1100011110101010101100110011
K11 = 001000010101 111111 010011 110111
101101001110000110

Berikut hasil outputnya:
C1D1 = 1110000 1100110 0101010 1011111

C12D12 = 01011111111000 0110011 0010101

1010101011001100111100011110

0001111010101010110011001111

K1 = 000110 110000 001011 101111 111111

K12 = 011101010111 000111 110101 100101

000111000001110010

000110011111101001

K4 = 011100101010 110111 010110 110110
110011010100011101

C13D13 = 01111111100001 1001100 1010101
0111101010101011001100111100

C5D5 = 1100110 0101010 1011111 1110000
0110011001111000111101010101

K13 = 100101111100 010111 010001 111110
101011101001000001

K5 = 011111001110 110000 000111 111010
110101001110101000

C14D14 = 11111110000110 0110010 1010101
1110101010101100110011110001

C6D6 = 0011001 0101010 1111111 1000011
1001100111100011110101010101

K14 = 010111110100 001110 110111 111100
101110011100111010

K6 = 011000111010 010100 111110 010100
000111101100101111

C15D15 = 11111000011001 1001010 1010111
1010101010110011001111000111

K15 = 101111111001 000110 001101 001111

B1 kemudian akan dipermutasikan lagi dengan tabel

010011111100001010

P-Box dan menghasilkan nilai PB1 yang kemudian
di XOR-kan dengan L0 dan menghasilkan nilai R1.

C16D16 = 11110000110011 0010101 0101111

Nilai R1 ini digunakan untuk melanjutkan iterasi ke-

0101010101100110011110001111

2.

K16 = 110010110011 110110 001011 000011
Iterasi–2

100001011111110101

E(R(2)-1) = 011010101110100001010110100110

Langkah Kelima:

100101010000001101
Pada langkah ini ,kita akan meng-ekspansi data Ri-1
32bit menjadi Ri 48bit sebanyak 16 kali putaran
dengan nilai perputaran 1< = I < =16 menggunakan
Tabel Ekspansi (E).
32
4
8
12
16
20
24
28

1
5
9
13
17
21
25
29

K2 = 011110011010111011011001110110
111100100111100101
-------------------------------------------------------XOR

2
6
10
14
18
22
26
30

3
7
11
15
19
23
27
31

4
8
12
16
20
24
28
32

5
9
13
17
21
25
29
1

A2 = 000100110100011010001111010000
011001110111101000
Iterasi–3
E(R(3)-1)=010001010111111011110011110001
010101010010100001
K3 = 010101011111110010001010010000

Hasil E(Ri-1) kemudian di XOR dengan Kidan

101100111110011001

menghasilkan Vektor Matriks Ai.
---------------------------------------------------XOR
Berikut hasil outputnya:
A3 = 000100001000001001111001100001
Iterasi 1

111001101100111000

E(R(1)-1)=100000000000000000000000000000
001101010000000110
K1

=000110110000001011101111111111

000111000001110010
------------------------------------------------------- XOR
A1

=100110110000001011101111111111

001010010001110100
Berhubung bagian dibawah ini yang paling
ribet, maka saya tambahkan keterangan ditengahtengah proses iterasi. Bisa kita lihat pada iterasi 1

Iterasi–4
E(R(4)-1)=010111110001010111110011110101
011100001111110001
K4 = 011100101010110111010110110110
110011010100011101
-------------------------------------------------------XOR
A4 = 001011011011100000100101000011
1011110110111011
Iterasi–5

diatas setelah kita dapat kan hasil XOR antara
E(R(1)-1) dengan K1 dan menghasilkan A1, maka
proses berikutnya langsung masuk ke LANGKAH
KEENAM terlebih dahulu,

dimana

A1 akan

dimasukan kedalam S-Box dan menghasilkan output
B1.

E(R(5)-1)=110110101001011100000101011001
011010100110100011
K5

=011111001110110000000111111010

110101001110101000
---------------------------------------------------XOR

110001101011010000
A5

=101001100111101100000010100011

101111101000001011

Iterasi– 10

Iterasi–6

E(R(10)-1)= 100111 111000 001110 100010
100111110111111000001010

E(R(6)-1)=100101011011110001010110101110
101100000111111010

K10

=101100011111001101000111101110

100100011001001111
K6

=011000111010010100111110010100

000111101100101111

------------------------------------------------------XOR

-----------------------------------------------------XOR A6

A10

=001011100111000011100101001001

010011100001000101
=111101100001100101101000111010
101011101011010101
Iterasi–7

Iterasi– 11
E(R(11)-1)= 010011 110111 111010 101010
101111110011110001011001

E(R(7)-1)=110010100001011111110010100111
111101011001010011

K11

=001000010101111111010011110111

101101001110000110
K7

=111011001000010010110111111101

100001100010111100

----------------------------------------------------XOR

-----------------------------------------------------XOR

A11 = 011011100010000101111001011000
011110111111011111

A7 = 001001101001001101000101011010
011100111011101111
Iterasi–8
E(R(8)-1)=111100001010101001010101010011
110000001010100011
K8 = 111101111000101000111010110000

Iterasi– 12
E(R(12)-1)= 001001 011010 101001 011111
110001010111110010101100
K12

=011101010111000111110101100101

000110011111101001
-----------------------------------------------------XOR

010011101111111011
A12
----------------------------------------------------XOR
A8 = 000001110010000001101111100011

=010100001101101110101010010100

010001101101000101
Iterasi– 13

100011100101011000
E(R(13)-1)= 100110 100111 110111 111011
Iterasi–9

111110101110101100001010

E(R(9)-1)=010010101111111000000000000010

K13

101111110101010001

101011101001000001

K9 = 111000001101101111101011111011

-------------------------------------------------------XOR

=100101111100010111010001111110

011110011110000001
A13
-----------------------------------------------------XOR
A9

=101010100010010111101011111001

=000011011011100000101010000000

000101000101001011

Iterasi– 14
E(R(14)-1)= 111001 010111 110000 001000
001000001000001011111011
K14

=010111110100001110110111111100

101110011100111010
------------------------------------------------------XOR
A14

=101110100011111110111111110100

100110010111000001
Iterasi– 15
E(R(15)-1)=
000001

000110

101100

001100

0110010110101001010
10100
K15
=101111111001000110001101001111
010011111100
001010
Cara menggunakan S-Box :
----------------------------------------------------XOR
(Untuk detail penggunaan S-Box, silahkan lihat dihalaman
A15 = 101001010101001010001100010110

http://en.wikipedia.org/wiki/S-box)

001001011001
011110

Kita ambil contoh S1, kemudian konversi setiap angka
didalam tabel S1 yang berwarna putih menjadi biner,

Iterasi– 16

sehingga menjadi bentuk seperti dibawah:

E(R(16)-1) = 101101 011101 010100 000101
010101010001010110100010
K16 =110010110011110110001011000011
100001011111110101
Kemudian kita ambil sampel blok bit pertama dari A1 yaitu
------------------------------------------------------XOR

100110

A16 = 011111101110100010001110010110

Kita pisahkan blok menjadi 2 yaitu:

110000001001010111

 Bitpertamadanterakhiryaitu1dan0digabungkan menjadi 10
 Bitkeduahingga ke lima0011

Langkah Keenam:
Setiap Vektor Ai disubstitusikan kedelapan buah SBox(Substitution

Box),

dimana

blok

pertama

disubstitusikan dengan S1, blok kedua dengan S2 dan
seterusnya dan menghasilkan output vector B i 32bit.

B13=11111001110110110010010010110011
Kemudian dibandingkan dengan memeriksa
perpotongan antara keduanya didapatkan nilai 1000

B14=10111000011111101100010111000001

(warna merah) dan seterusnya untuk blok kedua

B15=01000001001110011111011100100111

hingga blok kedelapan kita bandingkan dengan S2
hingga S8.
Berdasarkan cara diatas diperoleh hasil
sebagai berikut:
B1= 1000 0101 0100 1000 0011 0010 1110 1010

B16=10000001011010101111011101001011
Langkah Ketujuh:
Setelah didapatkan nilai vector Bi, langkah selanjutnya
adalah memutasikan bit vector Bi menggunakan tabel PBox, kemudian dikelompokkan menjadi 4 blok dimana

B2= 1101 1100 0100 0011 1000 0000 1111 1001

tiap-tiap blok memiliki 32 bit data.

B3= 1101 0110 0011 1100 1011 0110 0111 1111

Tabel P-Box

B4= 0010 1001 1101 0000 1011 1010 1111 1110
B5= 0100 0001 0011 1101 1000 1010 1100 0011
B6= 0110 1101 1101 1100 0011 0101 0100 0110

16
1

7
15

20
23

21
26

29
5

12
18

28
31

17
10

2
19

8
13

24
30

14
6

32
22

27
11

3
4

9
25

B7= 1110 0011 0110 1011 0000 0101 0010 1101
Sehingga hasil yang didapat adalah sebagai berikut:
B8= 0000 1000 1101 1000 1000 0011 1101 0101
P(B1)= 00101000101100110100010011010001
B9= 0110 1110 1110 0001 1010 1011 0100 1010
P(B2)= 10001011110110011000110000010011
B10=00100001011100000100000101101101
P(B3)= 01101111101100101001110011111110
B11=01011110000011001101101111000010
P(B4)= 00111111001110110100011110100001
B12=01101000000010110011011010101101

P(B5)=10010101001100101101100001000000
P(B6)= 00100100000110111111001111111000
P(B7)= 11001000110000011110111001101100

Hasil P(Bi) kemudian di XOR kan dengan Li-1 untuk
mendapatkan nilai Ri.

P(B8)= 00000111001110010010100101100001
Sedangkan nilai Li sendiri diperoleh dari Nilai Ri-1
P(B9)= 11011001001110111010001110010100

untuk nilai 1 < = I < = 16.

P(B10)= 00001100000101010110111000100100

L0

P(B11)= 01110001001111101011000001010011

R0 = 00000000000000000000011010000011

P(B12)= 10101000011010001000111011101001

P(B1) = 0010100010110011 01000100

= 11111111101110000111011001010111

11010001
P(B13)= 10000110110010111100111111001011
L(1)-1 =11111111101110000111011001010111
P(B14)= 00000101110111010011101001001111
------------------------------------------------------XOR
P(B15)= 10100101001001101110110011101100
R1 = 11010111000010110011001010000110
P(B16)= 00101001111101110110100011001100
P(B2) = 1000101111011001 10001100

00010011
L(8)-1 =10010000111110010011111011001001
L(2)-1 =00000000000000000000011010000011
------------------------------------------------------XOR
------------------------------------------------------R8 = 10010111110000000001011110101000
XOR
R2 = 10001011110110011000101010010000

P(B9) = 1101100100111011 10100011
10010100

P(B3) = 0110111110110010 10011100
11111110

L(9)-1 =11100101010010101001100001010001

L(3)-1 =11010111000010110011001010000110

--------------------------------------------------------XOR

-------------------------------------------------------XOR

R9 = 00111100011100010011101111000101

R3 = 10111000101110011010111001111000

P(B10)=00001100000101010110111000100100
L(10)-1

P(B4) = 0011111100111011 01000111

= 10010111 11000000 00010111

10101000

10100001
-------------------------------------------------------XOR
L(4)-1 =10001011110110011000101010010000
R10 = 10011011110101010111100110001100
--------------------------------------------------------XOR
P(B11)=01110001001111101011000001010011
R4 = 10110100111000101100110100110001
L(11)-1 = 00111100 01110001 00111011
P(B5) = 1001010100110010 11011000

11000101

01000101
------------------------------------------------------XOR
L(5)-1 =10111000101110011010111001111000
R11 = 01001101010011111000101110010110
-------------------------------------------------------XOR
P(B12)=10101000011010001000111011101001
R5 = 00101101100010110111011000111101
L(12)-1
P(B6) = 0010010000011011 11110011

= 10011011 11010101 01111001

10001100

11111000
L(6)-1 =10110100111000101100110100110001

-------------------------------------------------------XOR
R12 = 00110011101111011111011101100101

-------------------------------------------------------XOR
R6 = 10010000111110010011111011001001
P(B7) = 1100100011000001 11101110

P(B13)=10000110110010111100111111001011
L(13)-1

= 01001101 01001111 10001011

01101100

10010110

L(7)-1 =00101101100010110111011000111101

--------------------------------------------------------XOR
R13 = 11001011100001000100010001011101

----------------------------------------------------XOR
R7 = 11100101010010101001100001010001

P(B14)=00000101110111010011101001001111
L(14)-1 = 00110011 10111101 11110111

P(B8) = 0000011100111001 00101001
01100001

01100101

--------------------------------------------------------XOR
R14 = 00110110011000001100110100101010
P(B15)=10100101001001101110110011101100
L(15)-1

TEXT:

= 11001011 10000100 01000100

01011101
--------------------------------------------------------XOR
R15 =01101110101000101010100010110001
P(B16)=00101001111101110110100011001100
L(16)-1

= 00110110 01100000 11001101

00101010
--------------------------------------------------------XOR
R16 =00011111100101111010010111100110
L16 =01101110101000101010100010110001

Langkah Kedelapan:
Langkah terakhir adalah menggabungkan R16
dengan L16 kemudian dipermutasikan untuk terakhir
kali dengan tabel Invers Initial Permutasi (IP -1).
TabelIP

KEY:


-1



40
39

8
7

48
47

16
15

56
55

24
23

64
63

32
31

38
37
36

6
5
4

46
45
44

14
13
12

54
53
52

22
21
20

62
61
60

30
29
28

35
34
33

3
2
1

43
42
41

11
10
9

51
50
49

19
18
17

59
58
57

27
26
25




enkripsi.php


$des=crypt($str,$key);
$base64enkripsi=base64_encode($str);

Referensi

$base64dekripsi=base64_decode($base64enkripsi);

Liddell and Scott’s Greek-English Lexicon. Oxford

echo"$crypt";

University Press. 1984
Kurniawan,Ivan.2012.http://studyinformatics.blogsp

echo"$des";

http://www.britannica.com/topic/Data-EncryptionStandard

ot.co.id/2012/07/des-data-encryption- standard.html