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