Breaking News

Pages

Minggu, 27 Maret 2016

Pengertian Dan Sistem Kerja Advanced Encryption Standard (AES)

Advance Encryption Standard (AES)

Advanced Encryption Standard (AES) merupakan algoritma cryptographic yang dapat digunakan untuk mengamankan data. Algoritma AES adalah blok chipertext simetrik yang dapat mengenkripsi  (encipher) dan dekripsi (decipher) info rmasi. Enkripsi merubah data yang tidak dapat lagi dibaca disebut ciphertext; sebaliknya dekripsi adalah merubah ciphertext data menjadi bentuk semula yang kita kenal sebagai plaintext.
AES (Advanced Encryption Standard) adalah lanjutan dari algoritma enkripsi standar DES (Data Encryption Standard) yang masa berlakunya dianggap telah usai karena faktor keamanan. Kecepatan komputer yang sangat pesat dianggap sangat membahayakan DES, sehingga pada tanggal 2 Maret tahun 2001 ditetapkanlah algoritma baru Rijndael sebagai AES.

Metode Algoritma AES
Algoritma Rijndael kemudian dikenal dengan Advanced Encryption Standard (AES). Setelah mengalami beberapa proses standardisasi oleh NIST, Rijndael kemudian diadopsi menjadi standard algoritma kriptografi secara resmi pada 22 Mei 2002. Pada 2006, AES merupakan salah satu algoritma terpopuler yang digunakan dalam kriptografi kunci simetrik.
AES ini merupakan algoritma block cipher dengan menggunakan sistem permutasi dan substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block cipher pada umumnya. Jenis AES terbagi 3, yaitu :
1.AES-128
2.AES-192
3.AES-256

Pengelompokkan jenis AES ini adalah berdasarkan panjang kunci yang digunakan. Angka-angka di belakang kata AES menggambarkan panjang kunci yang digunakan pada tipa-tiap AES. Selain itu, hal yang membedakan dari masing-masing AES ini adalah banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES-192 sebanyak 12 round, dan AES-256 sebanyak 14 round.
Garis besar Algoritma Rijndael yang beroperasi pada blok  128-bit dengan kunci 128-bit adalah sebagai berikut (di luar proses pembangkitan round key):
1.     AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round.
2.    Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah:
a.       SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).
b.      ShiftRows: pergeseran baris-baris array state secara wrapping.
c.       MixColumns: mengacak data di masing-masing kolom array state.
d.      AddRoundKey: melakukan XOR antara state sekarang round key.
3.      Final round: proses untuk putaran terakhir:
a.      SubBytes
b.      ShiftRows
c.       AddRoundKey

AES memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran kunci sepanjang 128, 192, atau 256 bit. Berdasarkan ukuran block yang tetap, AES bekerja pada matriks berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas 1 byte (8 bit). Sedangkan Rijndael sendiri dapat mempunyai ukuran matriks yang lebih dari itu dengan menambahkan kolom sebanyak yang diperlukan.
Blok chiper tersebut dalam pembahasan ini akan diasumsikan sebagai sebuah kotak. Setiap plainteks akan dikonversikan terlebih dahulu ke dalam blok-blok tersebut dalam bentuk heksadesimal. Barulah kemudian blok itu akan diproses dengan metode yang akan dijelaskan. Secara umum metode yang digunakan dalam pemrosesan enkripsi dalam algoritma ini dapat dilihat melalui gambar berikut:
Gambar diagram AES


1. ADD ROUND KEY
Add Round Key pada dasarnya adalah mengkombinasikan chiper teks yang sudah ada dengan chiper key yang chiper key dengan hubungan XOR. Bagannya bisa dilihat pada gambar 


Pada gambar tersebut di sebelah kiri adalah chiper teks dan sebelah kanan adalah round key nya. XOR dilakukan per kolom yaitu kolom-1 chiper teks di XOR dengan kolom-1 round key dan seterusnya.

2. SUB BYTES
Prinsip dari Sub Bytes adalah menukar isi matriks/tabel yang ada dengan matriks/tabel lain yang disebut dengan Rijndael S-Box. Di bawah ini adalah contoh Sub Bytes dan Rijndael S-Box.


Gambar ilustrasi Sub-Bytes


Pada ilustrasi Sub Bytes diatas, di sana terdapat nomor kolom dan nomor baris. Seperti yang telah disebutkan sebelumnya, tiap isi kotak dari blok chiper berisi informasi dalam bentuk heksadesimal yang terdiri dari dua digit, bisa angka-angka, angka-huruf, ataupun huruf-angka yang semuanya tercantum dalam Rijndael S-Box. Langkahnya adalah mengambil salah satu isi kotak matriks, mencocokkannya dengan digit kiri sebagai baris dan digit kanan sebagai kolom. Kemudian dengan mengetahui kolom dan baris, kita dapat mengambil sebuah isi tabel dari Rijndael S-Box. Langkah terakhir adalah mengubah keseluruhan blok chiper menjadi blok yang baru yang isinya adalah hasil penukaran semua isi blok dengan isi langkah yang disebutkan sebelumnya.

3. SHIFT ROWS
Shift Rows seperti namanya adalah sebuah proses yang melakukan shift atau pergeseran pada setiap elemen blok/tabel yang dilakukan per barisnya. Yaitu baris pertama tidak dilakukan pergeseran, baris kedua dilakukan pergeseran 1 byte, baris ketiga dilakukan pergeseran 2 byte, dan baris keempat dilakukan pergeseran 3 byte. Pergeseran tersebut terlihat dalam sebuah blok adalah sebuah pergeseran tiap elemen ke kiri tergantung berapa byte tergesernya, tiap pergeseran 1 byte berarti bergeser ke kiri sebanyak satu kali.

4. MIX COLUMNS
Yang terjadi saat Mix Column adalah mengalikan tiap elemen dari blok chiper dengan matriks yang ditunjukkan oleh Gambar 11. Tabel sudah ditentukan dan siap pakai. Pengalian dilakukan seperti perkalian matriks biasa yaitu menggunakan dot product lalu perkalian keduanya dimasukkan ke dalam sebuah blok chiper baru. Ilustrasi dalam gambar 12 akan menjelaskan mengenai bagaimana perkalian ini seharusnya dilakukan. Dengan begitu seluruh rangkaian proses yang terjadi pada AES telah dijelaskan dan selanjutnya adalah menerangkan mengenai penggunaan tiap-tiap proses tersebut.

Tabel untuk mix columns

Gambar ilustrasi mix columns

5. DIAGRAM ALIR AES
Kembali melihat diagram yang ditunjukkan oleh Gambar 6. Seperti yang terlihat semua proses yang telah dijelaskan sebelumnya terdapat pada diagram tersebut. Yang artinya adalah mulai dari ronde kedua, dilakukan pengulangan terus menerus dengan rangkaian proses Sub Bytes, Shift Rows, Mix Columns, dan Add Round Key, setelah itu hasil dari ronde tersebut akan digunakan pada ronde berikutnya dengan metode yang sama. Namun pada ronde kesepuluh, Proses Mix Columns tidak dilakukan, dengan kata lain urutan proses yang dilakukan adalah Sub Bytes, Shift Rows, dan Add Round Key, hasil dari Add Round Key inilah yang dijadikan sebagai chiperteks dari AES.

Dengan mengetahui semua proses yang ada pada AES, maka kita dapat menggunakannya dalam berbagai contoh kasus yang muncul di kehidupan sehari-hari.

Implementasi Advanced Encryption Standard
AES atau algoritma Rijndael sebagai salah satu algoritma yang penting tentu memiliki berbagai kegunaan yang sudah diaplikasikan atau diimplementasikan di kehidupan sehari-hari yang tentu saja membutuhkan suatu perlindungan atau penyembunyian informasi di dalam prosesnya.
Salah satu contoh penggunaan AES adalah pada kompresi 7-Zip. Salah satu proses di dalam 7-Zip adalah mengenkripsi isi dari data dengan menggunakan metode AES-256. Yang kuncinya dihasilkan melalui fungsi Hash. Perpaduan ini membuat suatu informasi yang terlindungi dan tidak mudah rusak terutama oleh virus yang merupakan salah satu musuh besar dalam dunia komputer dan informasi karena sifatnya adalah merusak sebuah data.
Hal yang serupa digunakan pada WinZip sebagai salah satu perangkat lunak yang digunakan untuk melakukan kompresi. Tapi prinsip kompresi pun tidak sama dengan prinsip enkripsi. Karena kompresi adalah mengecilkan ukuran suatu data, biasanya digunakan kode Huffman dalam melakukan hal tersebut. Contoh penggunaan lain adalah pada perangkat lunak DiskCryptor yang kegunaannya adalah mengenkripsi keseluruhan isi disk/partisi pada sebuah komputer. Metode enkripsi yang ditawarkan adalah menggunakan AES-256, Twofish, atau Serpent.
Read more ...

Penjelasan Dan Sistem Kerja International Data Encryption Algorithm (IDEA)

International Data Encryption Algorithm (IDEA)

Pengertian International Data Encryption Algorithm
International Data Encryption Algorithm (IDEA) adalah algoritma enkripsi blok kunci yang aman dan rahasia yang dikembangkan oleh James Massey dan Xuejia Lai. Algoritma ini berkembang pada 1992 dari algoritma semula yang disebut dengan Proposed Encryption Standard and The Inproved Proposed Encryption Standard. IDEA beroperasi pada blok plaintext 64 bit dan menggunakan kunci 128 bit. Algoritma IDEA menggunakan delapan round dan beroperasi pada subblok 16 bit dengan menggunakan kalkulasi aljabar yang dapat digunakan untuk implementasi hardware. Operasi ini adalah penjumlahan modulo 216, perkalian modulo 216 + 1, dan XOR. Dengan kunci 128 bitnya, cipher IDEA lebih sulit untuk dibobol daripada DES

Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut : 
1. Proses enkripsi : ek(M) = C 
2. Proses dekripsi : dk(C) = M 
Dimana : 
E = adalah fungsi enkripsi 
D = adalah fungsi dekripsi 
M = adalah pesan terbuka 
C = adalah pesan rahasia
K = adalah kunci enkripsi atau dekripsi 

IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka dengan lebar 64-bit. Dan menggunakan kunci yang sama , berukuran 128-bit, untuk proses enkripsi dan dekripsi. Pesan rahasia yang dihasilan oleh algoritma ini berupa blok pesan rahasia dengan lebar atu ukuran 64-bit. Pesan dekripsi menggunakan blok penyandi yang sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari dari kunci enkripsi.
Algoritma ini menggunakan operasi campuran dari tiga operasi aljabar yang berbeda, yaitu XOR, operasi penjumlahan modulo 216 dan operasi perkalian modulo ( 216 + 1 ) . Semua operasi ini digunakan dalam pengoperasian sub-blok 16-bit. Algoritma ini melakukan iterasi yang terdiri dari atas 8 putaran dan I transformasi keluaran pada putaran ke 9

Proses Enkripsi IDEA
Pada proses enkripsi, algoritma IDEA ini ditunjukkan oleh gambar di atas, terdapat tiga operasi yang berbeda untuk pasangan sub-blok 16-bit yang digunakan, sebagai berikut : 
  • XOR dua sub-blok 16-bit bir per bit, yang disimbolkan dengan tanda
  • Penjumlahan integer modulo (216 + 1) dua sub-blok 16-bit , dimana edua sub-blok itu dianggap sebagai representasi biner dari integer biasa, yang disimbolkan

Perkalian modulo (216 + 1) dua sub-blok 16-bit, dimana kedua sub-blok 16-bit itu dianggap sebagai representasi biner dari integer biasa kecuali sub-blok nol dianggap mewakili integer 216 , yang disimbolkan dengan tanda . Blok pesan terbuka dengan lebar 64-bit , X, dibagi menjadi 4 sub-blok 16-bit, X1, X2, X3, X4, sehingga X = (X1, X2, X3, X4). Keempat sub-blok 16-bit itu ditransformasikan menjadi sub-blok 16-bit, Y2, Y2, Y3, Y4, sebagai pesan rahasia 64-bit Y = (Y1, Y2, Y3, Y4) yang berada dibawah kendali 52 sub_blok kunci 16-bit yang dibentuk dari dari blok kunci 128 bit. Keempat sub-blok 16-bit, X1, X2, X3, X4, digunakan sebagai masukn untuk putaran pertama dari algoritma IDEA. Dalam setiap putaran dilakukan operasi XOR, penjumlahan, perkalian antara dua sub-blok 16-bit dan diikuti pertukaran antara sub-blok 16-bit putaran kedua dan ketiga. Keluaran putaran sebelumnya menjadi masukan putaran berikutnya. Setelah putaran kedelapan dilakukan transformasi keluara yang dikendalikan oleh 4 sub-blok unci 16-bit.

Pada setiap putaran dilakukan operasi-operasi sebagai berikut : 
1) Perkalian X1 dengan sub-kunci pertama 
2) Penjumlahan X2 dengan sub-kunci kedua 
3) Pejumlahan X3 dengan sub kunci ketiga
4) Perkalian X4 dengan sub kunci keempat 
5) Operasi XOR hasil langkah 1 dan 3
6) Operasi XOR hasil angkah 2 dan 4 
7) Perkalian hasil langkah 5 dengan sub-kunci kelima 
8) Penjumlahan hasil langkah 6 dengan langkah 7 
9) Perkalian hasil langkah 8 dengan sub-kunci keenam 
10) Penjumlahan hasil langah 7 dengan 9 
11) Operasi XOR hasil langkah 1 dan 9
12) Operasi XOR hasil langkah 3 dan 9 
13) Operasi XOR hasil langkah 2 dan 10 
14) Operasi XOR hasil langkah 4 dan 10 

Keluaran setiap putaran adalah 4 sub-blok yang dihasilkan pada langkah 11, 12, 13, dan 14 dan menjadi masukan putaran berikutnya. Setelah putaran kedelapan terdapat transformasi keluaran, yaitu : 
  1. Perkalian X1 dengan sub-kunci pertama
  2. Penjumlahan X2 dengan sub-kuci ketiga
  3. Penjumlahan X3 dengan sub-kunci kedua
  4. Perkalian X4 dengan sub-kunci keempat Terahir, keempat sub-blok 16-bit 16-bit yang merupakan hasil operasi 1), 2), 3), dan 4) ii digabung kembali menjadi blok pesan rahasia 64-bit. 

Proses Dekripsi IDEA 

Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi tatapi 52 buah sub-blok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah sub-blok kunci enkripsi. Tabel sub-blok kunci dekripsi yang diturunkan dari sub-blok kunci enkripsi dapat dilihat pada tabel berikut :



Sub-blok Kunci Enkripsi


Sub-blok kunci deskripsi


            Keterangan :
  • Z-1 merupakan invers perkalian modulo 216+1 dari Z, dimana Z Z-1 = 1
  • Z merupakan invers penjumlahan modulo 216 dri Z, dimana Z Z-1 = 0
Pembentukan sub-kunci
Sebanyak 52 sub-blok kunci 16-bit untuk proses enkripsi diperolah dari sebuah kunci 128-bit pilihan pemakai. Blok kunci 128-bit dipartisi menjadi 8 sub-blok kunci 16-bit yang lansung dipakai sebagai 8 sub-blok kunci pertama. Kemudian blok kunci 128-bit dirotasi dari kiri 25 poisi untk dipartisi lagi menjad 8 sub-blok kunci 16-bit berikutnya. Proses rotasi dan pertisi itu diulangi lagi smpai diperoleh 52 sub-blok kunci 16-bit, dengan urutan sebagai berikut : 




Contoh Komputansi Penggunaan Algoritma IDEA
Pada tabel berikut dapat dilihat data hasil enkripsi tiap putaran yang diproses dengan sebuah program yang mengimplementasikan algoritma IDEA utuk sebuah pesan terbuka dalam bentuk bilangan integer 11121314 yng telah dibagi-bagi menjadi empat yaitu X1 = Z11 11, X2 = 12, X3 = 13,dan
X4 = 14 , dan kunci telah dibagi-bagi menjadi Z11 = 2, Z21 = 4, Z31 = 6, Z41 = 8, Z51 = 10,
Z61 = 12, Z12 = 14, Z22 = 16 :

Data hasil enkripsi






















Dari tabel diatas dapat dilihat data hasl enkripsi tiap putaran untuk pesan rahasia, yaitu :

Y1 = 25112, Y2 = 33467, Y3 = 3103, Y4 = 35414

Yang dihasilkan oleh proses enkripsi, dengan mnggunakan kunci yang diturunkan dari kunci enkripsi dan dengan menggunakan blok dekripsi yang sama dengan proses enkripsi.Terlihat bahwa pesan rahasia telah didekripsi menjadi pesan terbuka sebenarnya seperti tabel berikut:






















Hasil dekripsi akan sesuai dengan pesan asli seperi terlihat pada tabel putaran kesembilan yaitu bilangan integer
Y1 Y2 Y3 Y4 = X1 X2 X3 X4 = 11121314

Klick Lanjutan pengertian  dan cara kerja : 

Advance Encryption Standard (AES)


Read more ...

Pengertian dan Cara Kerja DES,IDEA,AES

Pengertian Data Encrytion Standard

Data Encryption Standard (DES) adalah salah satu algoritma kriptografi simetris, artinya kunci yang digunakan untuk proses enkripsi sama dengan kunci yang digunakan untuk proses dekripsi. Algoritma DES ini juga merupakan algoritma enkripsi block-chiperdengan panjang blok 64 bit dan dengan panjang kunci 56 bit yang bersifat rahasia yang dibagi (shared secret). Shared secret sendiri merupakan sepenggal data yang hanya diketahui oleh pihak-pihak yang melakukan komunikasi, dalam hal ini yaitu pengirim pesan dan penerima pesan. Yang dimaksud sepenggal data di sini dapat berupa kata sandi (password), passphrase, atau kunci pada algoritma enkripsi. Saat ini DES sudah hampir tidak digunakan lagi karena panjang kunci yang hanya 56 bit itu amat dengan mudah dibongkar dengan serangan Brute Force. Menggunakan prosesor tercepat saat tulisan ini dibuat, DES dapat dibongkar hanya dalam waktu beberapa menit. Algoritma lain yang dianggap sebagai ganti dari algoritma DES ialah algoritma AES (Advanced Encryption Standard).


Cara Kerja Data Encryption Standard


Cara kerjanya adalah dengan mengubah pesan asli yang dapat dimengerti/dibaca manusia (plainteks) ke bentuk lain yang tidak dapat dimengerti/dibaca oleh manusia (cipherteks). Proses transformasi plainteks menjadi chiperteks diistilahkan dengan enkripsi.
Contohnya seperti ini :
plaintext : bayucaem
binary : 0110001001100001011110010111010101100011011000010110010101101101
jika sudah diacak oleh matriks IP akan menjadi:
1111111100001100
1100100011111110
0000000011111111
1000010000010001
begini code-nya dalam c#:
pertama jadikan plaintext ke binary :
setelah jadi tuh binary, dibagi-bagi tiap 64 bit.
jika sudah dibagi-bagi menjadi 64 bit maka di permutasikan dengan matriks IP
setelah tahap permutasi selesai dilakukan maka sekarang menuju ke tahap enchipering. disni butuh yang namanya kunci eksternal yang akan membentuk kunci internal. jadi gambarannya sang user jika ingin mengenkripsi maka ada dua yang harus diinputkan yaitu plaintextnya  dan kuncinya sepanjang 16 digit hexadesimal. kunci ini juga (selanjutnya disebut kunci eksternal) akan digunakan pada saat mendekripsi DES.
diperlukan 16 kunci internal untuk digunakan dalam putaran enchipering. untuk mendapatkannya pertama, kunci external yang diinputkan oleh user dalam bentuk hexadesimal diubah kebentuk biner kemudian dipermutasikan oleh matriks PC-1. ini matriksnya :
57494133251791585042342618
10259514335271911360524436
635547393123157625446383022
1466153453729211352820124
cara permutasinya sama dengan permutasi plaintext dan mengahsilkan 56 bit dari 64 bit kunci eksternal. setelah didapatkan hasil dari permutasi maka hasil permutasi tadi dibagi dua, yaitu bagian kiri dan kanan masing-masing 28 bit. Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrappingatau round-shift. Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 1 sbb:
Putaran, iJumlah pergeseran bit
11
21
32
42
52
62
72
82
91
102
112
122
132
142
152
161
setelah digeser, masing-masing digabungkan kembali dan kembali lagi dipermutasikan. tetapi matriks yang digunakan adalah matriks pc-2 :
14171124153281562110
23191242681672720132
415231374755304051453348
444939563453464250362932
ilustrasinya begini:
key eksternal inputan user : ab12781bac253987
binernya:
1010101100010010
0111100000011011
1010110000100101
0011100110000111
setelah dipermutasikan dengan pc-1 dan dibagi menjadi dua bagian (L0 dan R0)
L0
10010001000001
00011101010100
R0
10001011101100
00010111011110
karena ini adalah putaran pertama maka L0 dan R0 masing-masing digeser kekiri 1 kali menurut tabel pergeseran diatas, hasilnya begini setelah L0 dan R0 digeser dan digabung kembali kemudian dipermutasikan dengan pc-2
010000110010
110000010010
010010001101
011111000101
dalam hexadecimal : 432c1248d7c5
itulah key internal pertama yang didapatkan. untuk mendapatkan key/kunci internal yang kedua  cukup key yang pertama dibagi masing-masing 24 bit kiri dan kanan setelah itu digeser menurut table pergesaran  dan dipermutasikan dengan pc-2. berikut key internal lengkapnya :
Key eksternal : ab12781bac253987
nokey
1432c1248d7c5
250422d7cb8e8
381912420fc7f
4800ae72fbcb2
5b17220ad4d73
68017e00fca56
7d05255d5c5d4
805d3408986cd
9e621187136f8
100e861139b82f
114f181a267cb6
122ea0c82d29f7
131a4c0aa7c8d3
14682918478757
1504ac0d9f85cc
169805c455366e
implementasi pembentukan kunci dalam bahasa c# sebagai berikut :
pertama adalah menerima input dari user berupa hexadesimal kemudian inputan tersebut dijadikan biner:
bilangan biner yang di dapat akan dilakukan permutasi dengan pc-1. fungsi yang digunakan adalah fungsi permutasi yang dilakukan pada plaintext hanya berbeda array matriksnya saja. setelah itu dibagi dua masing-masing menjadi L0 dan R0:
setelah itu adalah pergesaran pada kedua bagian tersebut




Setelah digeser proses terakhir adalah menggabungkan L0 dan R0 lalu dilakukan permutasi pada matriks pc-2. nah untuk fungsi permutasi yang digunakan adalah fungsi pada permutasi pada plaintext, hanya saja array yang digunakan adalah array matriks pc-2.
Nah sekarang masuk ke proses 16 kali enchipering karena kunci internalnya dan hasil permutasi matriks IP  sudah didapatkan.
secara lengkap bagan DES adalah seperti ini :
ini dia bagian terumit dari DES. gambar diatas ada dua bagian, yang kanan tuh proses DES lengkap sedangkan yang kiri adalah rincian dari proses fungsi F. proses enchipering dimulai pada saat hasil dari permutasi matriks IP dibagi dua yaitu Lo dan Ro masing-masing 32 bit. setelah itu dilakukan rumus dibawah ini untuk hasil putaran pertama (disebut L1 dan R1):
Li R– 1
Ri L– 1 xor f(R– 1Ki)
misalnya hasil dari permutasi IP adalah 1111111111111111111111111111111100000000000000000000000000000000 maka begini jika di pisah menjadi L0 dan R0
jadi untuk mendapatkan L1 itu tinggal copas dari R0. sedangkan R1 di dapatkan dari L0 di-xor-kan dengan fungsi F. bagan fungsi F bisa dilihat diatas. fungsi F ini memerlukan R0 dan kunci internal pertama (K1).
didalam fungsi F ini nantinya R0 akan diekspansi dari 32 bit menjadi 48 bit. cara mengekspansinya adalah dengan melakukan permutasi oleh matriks E :
3212345456789
8910111213121314151617
161718192021202122232425
24252627282928293031321
cara permutasi sudah ada di episode 1. hasil dari permutasi matriks E di-xor-kan oleh kunci internal pertama. hasil xor ini nantinya di sebut oleh vektor A. selanjutnya vektor A ini bagi-bagi menjadi 8 bagian masing-masing 6 bit. dari bagian yang paling kiri disebut A1 dan paling kanan A8.  nah nanti A1-A8 ini disubtitusikan oleh S-box yang banyaknya juga ada 8 kotak. berikut adalah S-box urut dari S1-S8 :
S1
1441312151183106125907
0157414213110612119538
4114813621115129731050
1512824917511314100613
S2
1518146113497213120510
3134715281412011069115
0147111041315812693215
1381013154211671205149
S3
1009146315511312711428
1370934610285141211151
1364981530111212510147
1101306987415143115212
S4
7131430691012851112415
1381156150347212110149
1069012117131513145284
3150610113894511127214
S5
2124171011685315130149
1411212471315015103986
4211110137815912563014
1181271142136150910453
S6
1211015926801334147511
1015427129561131401138
9141552812370410113116
4321295151011141760813
S7
4112141508133129751061
1301174911014351221586
1411131237141015680592
6111381410795015142312
S8
1328461511110931450127
1151381037412561101492
7114191214206101315358
2114741081315129035611
bisa diliat bahwa masing-masing S-box memiliki 4 baris (baris ke 0 sampai baris ke 3) dan 16 kolom (kolom ke 0 sampai kolom ke 15). vektor A yang sudah dibagi menjadi 8 masing-masing 6 bit akan disubsitusikan dengan S-box dengan cara berikut :
misal A1 adalah 010011 maka dapat dilihat seperti gambar diatas dikonversi menjadi baris 01 (dalam desimal 1) dan kolom 1001 (dalam desimal 9). maka cari pada S1 baris 1 dan kolom 9 maka hasilnya adalah 6 (dirubah menjadi 4 bit = 0110). begitu seterusnya untuk A2 dan S2, dst. setelah semua bagian disubtitusi dan dirubah menjadi bit-bit maka digabungkan akan menjadi 32 bit yang disebut vektor B. nah nanti vektor B ini akan dipermutasikan oleh matriks P :
1672021291228171152326583110
28241432273919133062211425
hasil dari permutasi inilah keluaran dari fungsi F yang nantinya akan di-xor-kan dengan L0 untuk menghasilkan R1.
untuk mengahsilkan L2 dan R2  maka ulangi proses tadi dengan data yang sudah di peroleh yaitu L1,R1, dan K2. proses ini diulang sampai didapatkan L16 dan R16. nah setelah mendapatkan L16 dan R16, dua bagian ini akan digabungkan, namun posisinya dipertukarkan. pemisalan enchipering akhir sebagai berikut :
selesai sudah proses enchipering, inti dari proses DES. proses enchipering tidak diberikan contoh karena sangat panjang, nih pseudo codenya aja
fungsi enkirpsides menerima variable Lo, R0,dan kunci yang nantinya fungsi ini akan diputar 16 kali.
fungsi funsif yang dipanggil oleh fungsi enkirpsides yang menerima inputan R dan kunci internal
fungsi-fungsi yang dipanggil oleh fungsi fungsif
selesai sudah tahap dari enchipering DES. sekarang keluaran dari tahap enchipering ini akan di invers. caranya yaitu dilakukan permutasi oleh matriks IP-1
408481656246432397471555236331
386461454226230375451353216129
364441252206028353431151195927
34242105018582633141949175725
selesai sudah enkripsi DES.

Klick Lanjutan pengertian  dan cara kerja : International Data Encryption Algorithm (IDEA )
Read more ...
Designed By